{
    "script": "var SwiperModule=(()=>{var ue=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var Je=(s,e)=>{for(var t in e)ue(s,t,{get:e[t],enumerable:!0})},et=(s,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of Ze(e))!Qe.call(s,a)&&a!==t&&ue(s,a,{get:()=>e[a],enumerable:!(i=Ke(e,a))||i.enumerable});return s};var tt=s=>et(ue({},\"__esModule\",{value:!0}),s);var gs={};Je(gs,{default:()=>hs});function ze(s){return s!==null&&typeof s==\"object\"&&\"constructor\"in s&&s.constructor===Object}function pe(s,e){s===void 0&&(s={}),e===void 0&&(e={});let t=[\"__proto__\",\"constructor\",\"prototype\"];Object.keys(e).filter(i=>t.indexOf(i)<0).forEach(i=>{typeof s[i]==\"undefined\"?s[i]=e[i]:ze(e[i])&&ze(s[i])&&Object.keys(e[i]).length>0&&pe(s[i],e[i])})}var Oe={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:\"\"},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"}};function B(){let s=typeof document!=\"undefined\"?document:{};return pe(s,Oe),s}var st={document:Oe,navigator:{userAgent:\"\"},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return\"\"}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(s){return typeof setTimeout==\"undefined\"?(s(),null):setTimeout(s,0)},cancelAnimationFrame(s){typeof setTimeout!=\"undefined\"&&clearTimeout(s)}};function H(){let s=typeof window!=\"undefined\"?window:{};return pe(s,st),s}function De(s){return s===void 0&&(s=\"\"),s.trim().split(\" \").filter(e=>!!e.trim())}function $e(s){let e=s;Object.keys(e).forEach(t=>{try{e[t]=null}catch(i){}try{delete e[t]}catch(i){}})}function J(s,e){return e===void 0&&(e=0),setTimeout(s,e)}function K(){return Date.now()}function it(s){let e=H(),t;return e.getComputedStyle&&(t=e.getComputedStyle(s,null)),!t&&s.currentStyle&&(t=s.currentStyle),t||(t=s.style),t}function me(s,e){e===void 0&&(e=\"x\");let t=H(),i,a,r,l=it(s);return t.WebKitCSSMatrix?(a=l.transform||l.webkitTransform,a.split(\",\").length>6&&(a=a.split(\", \").map(n=>n.replace(\",\",\".\")).join(\", \")),r=new t.WebKitCSSMatrix(a===\"none\"?\"\":a)):(r=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue(\"transform\").replace(\"translate(\",\"matrix(1, 0, 0, 1,\"),i=r.toString().split(\",\")),e===\"x\"&&(t.WebKitCSSMatrix?a=r.m41:i.length===16?a=parseFloat(i[12]):a=parseFloat(i[4])),e===\"y\"&&(t.WebKitCSSMatrix?a=r.m42:i.length===16?a=parseFloat(i[13]):a=parseFloat(i[5])),a||0}function ie(s){return typeof s==\"object\"&&s!==null&&s.constructor&&Object.prototype.toString.call(s).slice(8,-1)===\"Object\"}function rt(s){return typeof window!=\"undefined\"&&typeof window.HTMLElement!=\"undefined\"?s instanceof HTMLElement:s&&(s.nodeType===1||s.nodeType===11)}function Y(){let s=Object(arguments.length<=0?void 0:arguments[0]),e=[\"__proto__\",\"constructor\",\"prototype\"];for(let t=1;t<arguments.length;t+=1){let i=t<0||arguments.length<=t?void 0:arguments[t];if(i!=null&&!rt(i)){let a=Object.keys(Object(i)).filter(r=>e.indexOf(r)<0);for(let r=0,l=a.length;r<l;r+=1){let n=a[r],d=Object.getOwnPropertyDescriptor(i,n);d!==void 0&&d.enumerable&&(ie(s[n])&&ie(i[n])?i[n].__swiper__?s[n]=i[n]:Y(s[n],i[n]):!ie(s[n])&&ie(i[n])?(s[n]={},i[n].__swiper__?s[n]=i[n]:Y(s[n],i[n])):s[n]=i[n])}}}return s}function ee(s,e,t){s.style.setProperty(e,t)}function he(s){let{swiper:e,targetPosition:t,side:i}=s,a=H(),r=-e.translate,l=null,n,d=e.params.speed;e.wrapperEl.style.scrollSnapType=\"none\",a.cancelAnimationFrame(e.cssModeFrameID);let o=t>r?\"next\":\"prev\",u=(g,y)=>o===\"next\"&&g>=y||o===\"prev\"&&g<=y,p=()=>{n=new Date().getTime(),l===null&&(l=n);let g=Math.max(Math.min((n-l)\/d,1),0),y=.5-Math.cos(g*Math.PI)\/2,m=r+y*(t-r);if(u(m,t)&&(m=t),e.wrapperEl.scrollTo({[i]:m}),u(m,t)){e.wrapperEl.style.overflow=\"hidden\",e.wrapperEl.style.scrollSnapType=\"\",setTimeout(()=>{e.wrapperEl.style.overflow=\"\",e.wrapperEl.scrollTo({[i]:m})}),a.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=a.requestAnimationFrame(p)};p()}function F(s){return s.querySelector(\".swiper-slide-transform\")||s.shadowRoot&&s.shadowRoot.querySelector(\".swiper-slide-transform\")||s}function R(s,e){e===void 0&&(e=\"\");let t=H(),i=[...s.children];return t.HTMLSlotElement&&s instanceof HTMLSlotElement&&i.push(...s.assignedElements()),e?i.filter(a=>a.matches(e)):i}function at(s,e){let t=[e];for(;t.length>0;){let i=t.shift();if(s===i)return!0;t.push(...i.children,...i.shadowRoot?i.shadowRoot.children:[],...i.assignedElements?i.assignedElements():[])}}function ke(s,e){let t=H(),i=e.contains(s);return!i&&t.HTMLSlotElement&&e instanceof HTMLSlotElement&&(i=[...e.assignedElements()].includes(s),i||(i=at(s,e))),i}function re(s){try{console.warn(s);return}catch(e){}}function V(s,e){e===void 0&&(e=[]);let t=document.createElement(s);return t.classList.add(...Array.isArray(e)?e:De(e)),t}function Ge(s,e){let t=[];for(;s.previousElementSibling;){let i=s.previousElementSibling;e?i.matches(e)&&t.push(i):t.push(i),s=i}return t}function He(s,e){let t=[];for(;s.nextElementSibling;){let i=s.nextElementSibling;e?i.matches(e)&&t.push(i):t.push(i),s=i}return t}function W(s,e){return H().getComputedStyle(s,null).getPropertyValue(e)}function U(s){let e=s,t;if(e){for(t=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(t+=1);return t}}function te(s,e){let t=[],i=s.parentElement;for(;i;)e?i.matches(e)&&t.push(i):t.push(i),i=i.parentElement;return t}function ce(s,e){function t(i){i.target===s&&(e.call(s,i),s.removeEventListener(\"transitionend\",t))}e&&s.addEventListener(\"transitionend\",t)}function ae(s,e,t){let i=H();return t?s[e===\"width\"?\"offsetWidth\":\"offsetHeight\"]+parseFloat(i.getComputedStyle(s,null).getPropertyValue(e===\"width\"?\"margin-right\":\"margin-top\"))+parseFloat(i.getComputedStyle(s,null).getPropertyValue(e===\"width\"?\"margin-left\":\"margin-bottom\")):s.offsetWidth}function D(s){return(Array.isArray(s)?s:[s]).filter(e=>!!e)}function Z(s,e){e===void 0&&(e=\"\"),typeof trustedTypes!=\"undefined\"?s.innerHTML=trustedTypes.createPolicy(\"html\",{createHTML:t=>t}).createHTML(e):s.innerHTML=e}var ge;function nt(){let s=H(),e=B();return{smoothScroll:e.documentElement&&e.documentElement.style&&\"scrollBehavior\"in e.documentElement.style,touch:!!(\"ontouchstart\"in s||s.DocumentTouch&&e instanceof s.DocumentTouch)}}function Ne(){return ge||(ge=nt()),ge}var ve;function lt(s){let{userAgent:e}=s===void 0?{}:s,t=Ne(),i=H(),a=i.navigator.platform,r=e||i.navigator.userAgent,l={ios:!1,android:!1},n=i.screen.width,d=i.screen.height,o=r.match(\/(Android);?[\\s\\\/]+([\\d.]+)?\/),u=r.match(\/(iPad).*OS\\s([\\d_]+)\/),p=r.match(\/(iPod)(.*OS\\s([\\d_]+))?\/),g=!u&&r.match(\/(iPhone\\sOS|iOS)\\s([\\d_]+)\/),y=a===\"Win32\",m=a===\"MacIntel\",h=[\"1024x1366\",\"1366x1024\",\"834x1194\",\"1194x834\",\"834x1112\",\"1112x834\",\"768x1024\",\"1024x768\",\"820x1180\",\"1180x820\",\"810x1080\",\"1080x810\"];return!u&&m&&t.touch&&h.indexOf(`${n}x${d}`)>=0&&(u=r.match(\/(Version)\\\/([\\d.]+)\/),u||(u=[0,1,\"13_0_0\"]),m=!1),o&&!y&&(l.os=\"android\",l.android=!0),(u||g||p)&&(l.os=\"ios\",l.ios=!0),l}function Fe(s){return s===void 0&&(s={}),ve||(ve=lt(s)),ve}var we;function ot(){let s=H(),e=Fe(),t=!1;function i(){let n=s.navigator.userAgent.toLowerCase();return n.indexOf(\"safari\")>=0&&n.indexOf(\"chrome\")<0&&n.indexOf(\"android\")<0}if(i()){let n=String(s.navigator.userAgent);if(n.includes(\"Version\/\")){let[d,o]=n.split(\"Version\/\")[1].split(\" \")[0].split(\".\").map(u=>Number(u));t=d<16||d===16&&o<2}}let a=\/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)\/i.test(s.navigator.userAgent),r=i(),l=r||a&&e.ios;return{isSafari:t||r,needPerspectiveFix:t,need3dFix:l,isWebView:a}}function We(){return we||(we=ot()),we}function dt(s){let{swiper:e,on:t,emit:i}=s,a=H(),r=null,l=null,n=()=>{!e||e.destroyed||!e.initialized||(i(\"beforeResize\"),i(\"resize\"))},d=()=>{!e||e.destroyed||!e.initialized||(r=new ResizeObserver(p=>{l=a.requestAnimationFrame(()=>{let{width:g,height:y}=e,m=g,h=y;p.forEach(x=>{let{contentBoxSize:b,contentRect:c,target:f}=x;f&&f!==e.el||(m=c?c.width:(b[0]||b).inlineSize,h=c?c.height:(b[0]||b).blockSize)}),(m!==g||h!==y)&&n()})}),r.observe(e.el))},o=()=>{l&&a.cancelAnimationFrame(l),r&&r.unobserve&&e.el&&(r.unobserve(e.el),r=null)},u=()=>{!e||e.destroyed||!e.initialized||i(\"orientationchange\")};t(\"init\",()=>{if(e.params.resizeObserver&&typeof a.ResizeObserver!=\"undefined\"){d();return}a.addEventListener(\"resize\",n),a.addEventListener(\"orientationchange\",u)}),t(\"destroy\",()=>{o(),a.removeEventListener(\"resize\",n),a.removeEventListener(\"orientationchange\",u)})}function ct(s){let{swiper:e,extendParams:t,on:i,emit:a}=s,r=[],l=H(),n=function(u,p){p===void 0&&(p={});let g=l.MutationObserver||l.WebkitMutationObserver,y=new g(m=>{if(e.__preventObserver__)return;if(m.length===1){a(\"observerUpdate\",m[0]);return}let h=function(){a(\"observerUpdate\",m[0])};l.requestAnimationFrame?l.requestAnimationFrame(h):l.setTimeout(h,0)});y.observe(u,{attributes:typeof p.attributes==\"undefined\"?!0:p.attributes,childList:e.isElement||(typeof p.childList==\"undefined\"?!0:p).childList,characterData:typeof p.characterData==\"undefined\"?!0:p.characterData}),r.push(y)},d=()=>{if(e.params.observer){if(e.params.observeParents){let u=te(e.hostEl);for(let p=0;p<u.length;p+=1)n(u[p])}n(e.hostEl,{childList:e.params.observeSlideChildren}),n(e.wrapperEl,{attributes:!1})}},o=()=>{r.forEach(u=>{u.disconnect()}),r.splice(0,r.length)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),i(\"init\",d),i(\"destroy\",o)}var ft={on(s,e,t){let i=this;if(!i.eventsListeners||i.destroyed||typeof e!=\"function\")return i;let a=t?\"unshift\":\"push\";return s.split(\" \").forEach(r=>{i.eventsListeners[r]||(i.eventsListeners[r]=[]),i.eventsListeners[r][a](e)}),i},once(s,e,t){let i=this;if(!i.eventsListeners||i.destroyed||typeof e!=\"function\")return i;function a(){i.off(s,a),a.__emitterProxy&&delete a.__emitterProxy;for(var r=arguments.length,l=new Array(r),n=0;n<r;n++)l[n]=arguments[n];e.apply(i,l)}return a.__emitterProxy=e,i.on(s,a,t)},onAny(s,e){let t=this;if(!t.eventsListeners||t.destroyed||typeof s!=\"function\")return t;let i=e?\"unshift\":\"push\";return t.eventsAnyListeners.indexOf(s)<0&&t.eventsAnyListeners[i](s),t},offAny(s){let e=this;if(!e.eventsListeners||e.destroyed||!e.eventsAnyListeners)return e;let t=e.eventsAnyListeners.indexOf(s);return t>=0&&e.eventsAnyListeners.splice(t,1),e},off(s,e){let t=this;return!t.eventsListeners||t.destroyed||!t.eventsListeners||s.split(\" \").forEach(i=>{typeof e==\"undefined\"?t.eventsListeners[i]=[]:t.eventsListeners[i]&&t.eventsListeners[i].forEach((a,r)=>{(a===e||a.__emitterProxy&&a.__emitterProxy===e)&&t.eventsListeners[i].splice(r,1)})}),t},emit(){let s=this;if(!s.eventsListeners||s.destroyed||!s.eventsListeners)return s;let e,t,i;for(var a=arguments.length,r=new Array(a),l=0;l<a;l++)r[l]=arguments[l];return typeof r[0]==\"string\"||Array.isArray(r[0])?(e=r[0],t=r.slice(1,r.length),i=s):(e=r[0].events,t=r[0].data,i=r[0].context||s),t.unshift(i),(Array.isArray(e)?e:e.split(\" \")).forEach(d=>{s.eventsAnyListeners&&s.eventsAnyListeners.length&&s.eventsAnyListeners.forEach(o=>{o.apply(i,[d,...t])}),s.eventsListeners&&s.eventsListeners[d]&&s.eventsListeners[d].forEach(o=>{o.apply(i,t)})}),s}};function ut(){let s=this,e,t,i=s.el;typeof s.params.width!=\"undefined\"&&s.params.width!==null?e=s.params.width:e=i.clientWidth,typeof s.params.height!=\"undefined\"&&s.params.height!==null?t=s.params.height:t=i.clientHeight,!(e===0&&s.isHorizontal()||t===0&&s.isVertical())&&(e=e-parseInt(W(i,\"padding-left\")||0,10)-parseInt(W(i,\"padding-right\")||0,10),t=t-parseInt(W(i,\"padding-top\")||0,10)-parseInt(W(i,\"padding-bottom\")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Object.assign(s,{width:e,height:t,size:s.isHorizontal()?e:t}))}function pt(){let s=this;function e(T,M){return parseFloat(T.getPropertyValue(s.getDirectionLabel(M))||0)}let t=s.params,{wrapperEl:i,slidesEl:a,size:r,rtlTranslate:l,wrongRTL:n}=s,d=s.virtual&&t.virtual.enabled,o=d?s.virtual.slides.length:s.slides.length,u=R(a,`.${s.params.slideClass}, swiper-slide`),p=d?s.virtual.slides.length:u.length,g=[],y=[],m=[],h=t.slidesOffsetBefore;typeof h==\"function\"&&(h=t.slidesOffsetBefore.call(s));let x=t.slidesOffsetAfter;typeof x==\"function\"&&(x=t.slidesOffsetAfter.call(s));let b=s.snapGrid.length,c=s.slidesGrid.length,f=t.spaceBetween,v=-h,S=0,C=0;if(typeof r==\"undefined\")return;typeof f==\"string\"&&f.indexOf(\"%\")>=0?f=parseFloat(f.replace(\"%\",\"\"))\/100*r:typeof f==\"string\"&&(f=parseFloat(f)),s.virtualSize=-f,u.forEach(T=>{l?T.style.marginLeft=\"\":T.style.marginRight=\"\",T.style.marginBottom=\"\",T.style.marginTop=\"\"}),t.centeredSlides&&t.cssMode&&(ee(i,\"--swiper-centered-offset-before\",\"\"),ee(i,\"--swiper-centered-offset-after\",\"\"));let I=t.grid&&t.grid.rows>1&&s.grid;I?s.grid.initSlides(u):s.grid&&s.grid.unsetSlides();let P,L=t.slidesPerView===\"auto\"&&t.breakpoints&&Object.keys(t.breakpoints).filter(T=>typeof t.breakpoints[T].slidesPerView!=\"undefined\").length>0;for(let T=0;T<p;T+=1){P=0;let M;if(u[T]&&(M=u[T]),I&&s.grid.updateSlide(T,M,u),!(u[T]&&W(M,\"display\")===\"none\")){if(t.slidesPerView===\"auto\"){L&&(u[T].style[s.getDirectionLabel(\"width\")]=\"\");let A=getComputedStyle(M),O=M.style.transform,k=M.style.webkitTransform;if(O&&(M.style.transform=\"none\"),k&&(M.style.webkitTransform=\"none\"),t.roundLengths)P=s.isHorizontal()?ae(M,\"width\",!0):ae(M,\"height\",!0);else{let G=e(A,\"width\"),z=e(A,\"padding-left\"),w=e(A,\"padding-right\"),E=e(A,\"margin-left\"),$=e(A,\"margin-right\"),X=A.getPropertyValue(\"box-sizing\");if(X&&X===\"border-box\")P=G+E+$;else{let{clientWidth:q,offsetWidth:j}=M;P=G+z+w+E+$+(j-q)}}O&&(M.style.transform=O),k&&(M.style.webkitTransform=k),t.roundLengths&&(P=Math.floor(P))}else P=(r-(t.slidesPerView-1)*f)\/t.slidesPerView,t.roundLengths&&(P=Math.floor(P)),u[T]&&(u[T].style[s.getDirectionLabel(\"width\")]=`${P}px`);u[T]&&(u[T].swiperSlideSize=P),m.push(P),t.centeredSlides?(v=v+P\/2+S\/2+f,S===0&&T!==0&&(v=v-r\/2-f),T===0&&(v=v-r\/2-f),Math.abs(v)<1\/1e3&&(v=0),t.roundLengths&&(v=Math.floor(v)),C%t.slidesPerGroup===0&&g.push(v),y.push(v)):(t.roundLengths&&(v=Math.floor(v)),(C-Math.min(s.params.slidesPerGroupSkip,C))%s.params.slidesPerGroup===0&&g.push(v),y.push(v),v=v+P+f),s.virtualSize+=P+f,S=P,C+=1}}if(s.virtualSize=Math.max(s.virtualSize,r)+x,l&&n&&(t.effect===\"slide\"||t.effect===\"coverflow\")&&(i.style.width=`${s.virtualSize+f}px`),t.setWrapperSize&&(i.style[s.getDirectionLabel(\"width\")]=`${s.virtualSize+f}px`),I&&s.grid.updateWrapperSize(P,g),!t.centeredSlides){let T=[];for(let M=0;M<g.length;M+=1){let A=g[M];t.roundLengths&&(A=Math.floor(A)),g[M]<=s.virtualSize-r&&T.push(A)}g=T,Math.floor(s.virtualSize-r)-Math.floor(g[g.length-1])>1&&g.push(s.virtualSize-r)}if(d&&t.loop){let T=m[0]+f;if(t.slidesPerGroup>1){let M=Math.ceil((s.virtual.slidesBefore+s.virtual.slidesAfter)\/t.slidesPerGroup),A=T*t.slidesPerGroup;for(let O=0;O<M;O+=1)g.push(g[g.length-1]+A)}for(let M=0;M<s.virtual.slidesBefore+s.virtual.slidesAfter;M+=1)t.slidesPerGroup===1&&g.push(g[g.length-1]+T),y.push(y[y.length-1]+T),s.virtualSize+=T}if(g.length===0&&(g=[0]),f!==0){let T=s.isHorizontal()&&l?\"marginLeft\":s.getDirectionLabel(\"marginRight\");u.filter((M,A)=>!t.cssMode||t.loop?!0:A!==u.length-1).forEach(M=>{M.style[T]=`${f}px`})}if(t.centeredSlides&&t.centeredSlidesBounds){let T=0;m.forEach(A=>{T+=A+(f||0)}),T-=f;let M=T>r?T-r:0;g=g.map(A=>A<=0?-h:A>M?M+x:A)}if(t.centerInsufficientSlides){let T=0;m.forEach(A=>{T+=A+(f||0)}),T-=f;let M=(t.slidesOffsetBefore||0)+(t.slidesOffsetAfter||0);if(T+M<r){let A=(r-T-M)\/2;g.forEach((O,k)=>{g[k]=O-A}),y.forEach((O,k)=>{y[k]=O+A})}}if(Object.assign(s,{slides:u,snapGrid:g,slidesGrid:y,slidesSizesGrid:m}),t.centeredSlides&&t.cssMode&&!t.centeredSlidesBounds){ee(i,\"--swiper-centered-offset-before\",`${-g[0]}px`),ee(i,\"--swiper-centered-offset-after\",`${s.size\/2-m[m.length-1]\/2}px`);let T=-s.snapGrid[0],M=-s.slidesGrid[0];s.snapGrid=s.snapGrid.map(A=>A+T),s.slidesGrid=s.slidesGrid.map(A=>A+M)}if(p!==o&&s.emit(\"slidesLengthChange\"),g.length!==b&&(s.params.watchOverflow&&s.checkOverflow(),s.emit(\"snapGridLengthChange\")),y.length!==c&&s.emit(\"slidesGridLengthChange\"),t.watchSlidesProgress&&s.updateSlidesOffset(),s.emit(\"slidesUpdated\"),!d&&!t.cssMode&&(t.effect===\"slide\"||t.effect===\"fade\")){let T=`${t.containerModifierClass}backface-hidden`,M=s.el.classList.contains(T);p<=t.maxBackfaceHiddenSlides?M||s.el.classList.add(T):M&&s.el.classList.remove(T)}}function mt(s){let e=this,t=[],i=e.virtual&&e.params.virtual.enabled,a=0,r;typeof s==\"number\"?e.setTransition(s):s===!0&&e.setTransition(e.params.speed);let l=n=>i?e.slides[e.getSlideIndexByData(n)]:e.slides[n];if(e.params.slidesPerView!==\"auto\"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(n=>{t.push(n)});else for(r=0;r<Math.ceil(e.params.slidesPerView);r+=1){let n=e.activeIndex+r;if(n>e.slides.length&&!i)break;t.push(l(n))}else t.push(l(e.activeIndex));for(r=0;r<t.length;r+=1)if(typeof t[r]!=\"undefined\"){let n=t[r].offsetHeight;a=n>a?n:a}(a||a===0)&&(e.wrapperEl.style.height=`${a}px`)}function ht(){let s=this,e=s.slides,t=s.isElement?s.isHorizontal()?s.wrapperEl.offsetLeft:s.wrapperEl.offsetTop:0;for(let i=0;i<e.length;i+=1)e[i].swiperSlideOffset=(s.isHorizontal()?e[i].offsetLeft:e[i].offsetTop)-t-s.cssOverflowAdjustment()}var Be=(s,e,t)=>{e&&!s.classList.contains(t)?s.classList.add(t):!e&&s.classList.contains(t)&&s.classList.remove(t)};function gt(s){s===void 0&&(s=this&&this.translate||0);let e=this,t=e.params,{slides:i,rtlTranslate:a,snapGrid:r}=e;if(i.length===0)return;typeof i[0].swiperSlideOffset==\"undefined\"&&e.updateSlidesOffset();let l=-s;a&&(l=s),e.visibleSlidesIndexes=[],e.visibleSlides=[];let n=t.spaceBetween;typeof n==\"string\"&&n.indexOf(\"%\")>=0?n=parseFloat(n.replace(\"%\",\"\"))\/100*e.size:typeof n==\"string\"&&(n=parseFloat(n));for(let d=0;d<i.length;d+=1){let o=i[d],u=o.swiperSlideOffset;t.cssMode&&t.centeredSlides&&(u-=i[0].swiperSlideOffset);let p=(l+(t.centeredSlides?e.minTranslate():0)-u)\/(o.swiperSlideSize+n),g=(l-r[0]+(t.centeredSlides?e.minTranslate():0)-u)\/(o.swiperSlideSize+n),y=-(l-u),m=y+e.slidesSizesGrid[d],h=y>=0&&y<=e.size-e.slidesSizesGrid[d],x=y>=0&&y<e.size-1||m>1&&m<=e.size||y<=0&&m>=e.size;x&&(e.visibleSlides.push(o),e.visibleSlidesIndexes.push(d)),Be(o,x,t.slideVisibleClass),Be(o,h,t.slideFullyVisibleClass),o.progress=a?-p:p,o.originalProgress=a?-g:g}}function vt(s){let e=this;if(typeof s==\"undefined\"){let u=e.rtlTranslate?-1:1;s=e&&e.translate&&e.translate*u||0}let t=e.params,i=e.maxTranslate()-e.minTranslate(),{progress:a,isBeginning:r,isEnd:l,progressLoop:n}=e,d=r,o=l;if(i===0)a=0,r=!0,l=!0;else{a=(s-e.minTranslate())\/i;let u=Math.abs(s-e.minTranslate())<1,p=Math.abs(s-e.maxTranslate())<1;r=u||a<=0,l=p||a>=1,u&&(a=0),p&&(a=1)}if(t.loop){let u=e.getSlideIndexByData(0),p=e.getSlideIndexByData(e.slides.length-1),g=e.slidesGrid[u],y=e.slidesGrid[p],m=e.slidesGrid[e.slidesGrid.length-1],h=Math.abs(s);h>=g?n=(h-g)\/m:n=(h+m-y)\/m,n>1&&(n-=1)}Object.assign(e,{progress:a,progressLoop:n,isBeginning:r,isEnd:l}),(t.watchSlidesProgress||t.centeredSlides&&t.autoHeight)&&e.updateSlidesProgress(s),r&&!d&&e.emit(\"reachBeginning toEdge\"),l&&!o&&e.emit(\"reachEnd toEdge\"),(d&&!r||o&&!l)&&e.emit(\"fromEdge\"),e.emit(\"progress\",a)}var ye=(s,e,t)=>{e&&!s.classList.contains(t)?s.classList.add(t):!e&&s.classList.contains(t)&&s.classList.remove(t)};function wt(){let s=this,{slides:e,params:t,slidesEl:i,activeIndex:a}=s,r=s.virtual&&t.virtual.enabled,l=s.grid&&t.grid&&t.grid.rows>1,n=p=>R(i,`.${t.slideClass}${p}, swiper-slide${p}`)[0],d,o,u;if(r)if(t.loop){let p=a-s.virtual.slidesBefore;p<0&&(p=s.virtual.slides.length+p),p>=s.virtual.slides.length&&(p-=s.virtual.slides.length),d=n(`[data-swiper-slide-index=\"${p}\"]`)}else d=n(`[data-swiper-slide-index=\"${a}\"]`);else l?(d=e.find(p=>p.column===a),u=e.find(p=>p.column===a+1),o=e.find(p=>p.column===a-1)):d=e[a];d&&(l||(u=He(d,`.${t.slideClass}, swiper-slide`)[0],t.loop&&!u&&(u=e[0]),o=Ge(d,`.${t.slideClass}, swiper-slide`)[0],t.loop&&!o===0&&(o=e[e.length-1]))),e.forEach(p=>{ye(p,p===d,t.slideActiveClass),ye(p,p===u,t.slideNextClass),ye(p,p===o,t.slidePrevClass)}),s.emitSlidesClasses()}var fe=(s,e)=>{if(!s||s.destroyed||!s.params)return;let t=()=>s.isElement?\"swiper-slide\":`.${s.params.slideClass}`,i=e.closest(t());if(i){let a=i.querySelector(`.${s.params.lazyPreloaderClass}`);!a&&s.isElement&&(i.shadowRoot?a=i.shadowRoot.querySelector(`.${s.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{i.shadowRoot&&(a=i.shadowRoot.querySelector(`.${s.params.lazyPreloaderClass}`),a&&a.remove())})),a&&a.remove()}},be=(s,e)=>{if(!s.slides[e])return;let t=s.slides[e].querySelector('[loading=\"lazy\"]');t&&t.removeAttribute(\"loading\")},Ee=s=>{if(!s||s.destroyed||!s.params)return;let e=s.params.lazyPreloadPrevNext,t=s.slides.length;if(!t||!e||e<0)return;e=Math.min(e,t);let i=s.params.slidesPerView===\"auto\"?s.slidesPerViewDynamic():Math.ceil(s.params.slidesPerView),a=s.activeIndex;if(s.params.grid&&s.params.grid.rows>1){let l=a,n=[l-e];n.push(...Array.from({length:e}).map((d,o)=>l+i+o)),s.slides.forEach((d,o)=>{n.includes(d.column)&&be(s,o)});return}let r=a+i-1;if(s.params.rewind||s.params.loop)for(let l=a-e;l<=r+e;l+=1){let n=(l%t+t)%t;(n<a||n>r)&&be(s,n)}else for(let l=Math.max(a-e,0);l<=Math.min(r+e,t-1);l+=1)l!==a&&(l>r||l<a)&&be(s,l)};function yt(s){let{slidesGrid:e,params:t}=s,i=s.rtlTranslate?s.translate:-s.translate,a;for(let r=0;r<e.length;r+=1)typeof e[r+1]!=\"undefined\"?i>=e[r]&&i<e[r+1]-(e[r+1]-e[r])\/2?a=r:i>=e[r]&&i<e[r+1]&&(a=r+1):i>=e[r]&&(a=r);return t.normalizeSlideIndex&&(a<0||typeof a==\"undefined\")&&(a=0),a}function bt(s){let e=this,t=e.rtlTranslate?e.translate:-e.translate,{snapGrid:i,params:a,activeIndex:r,realIndex:l,snapIndex:n}=e,d=s,o,u=y=>{let m=y-e.virtual.slidesBefore;return m<0&&(m=e.virtual.slides.length+m),m>=e.virtual.slides.length&&(m-=e.virtual.slides.length),m};if(typeof d==\"undefined\"&&(d=yt(e)),i.indexOf(t)>=0)o=i.indexOf(t);else{let y=Math.min(a.slidesPerGroupSkip,d);o=y+Math.floor((d-y)\/a.slidesPerGroup)}if(o>=i.length&&(o=i.length-1),d===r&&!e.params.loop){o!==n&&(e.snapIndex=o,e.emit(\"snapIndexChange\"));return}if(d===r&&e.params.loop&&e.virtual&&e.params.virtual.enabled){e.realIndex=u(d);return}let p=e.grid&&a.grid&&a.grid.rows>1,g;if(e.virtual&&a.virtual.enabled&&a.loop)g=u(d);else if(p){let y=e.slides.find(h=>h.column===d),m=parseInt(y.getAttribute(\"data-swiper-slide-index\"),10);Number.isNaN(m)&&(m=Math.max(e.slides.indexOf(y),0)),g=Math.floor(m\/a.grid.rows)}else if(e.slides[d]){let y=e.slides[d].getAttribute(\"data-swiper-slide-index\");y?g=parseInt(y,10):g=d}else g=d;Object.assign(e,{previousSnapIndex:n,snapIndex:o,previousRealIndex:l,realIndex:g,previousIndex:r,activeIndex:d}),e.initialized&&Ee(e),e.emit(\"activeIndexChange\"),e.emit(\"snapIndexChange\"),(e.initialized||e.params.runCallbacksOnInit)&&(l!==g&&e.emit(\"realIndexChange\"),e.emit(\"slideChange\"))}function St(s,e){let t=this,i=t.params,a=s.closest(`.${i.slideClass}, swiper-slide`);!a&&t.isElement&&e&&e.length>1&&e.includes(s)&&[...e.slice(e.indexOf(s)+1,e.length)].forEach(n=>{!a&&n.matches&&n.matches(`.${i.slideClass}, swiper-slide`)&&(a=n)});let r=!1,l;if(a){for(let n=0;n<t.slides.length;n+=1)if(t.slides[n]===a){r=!0,l=n;break}}if(a&&r)t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(a.getAttribute(\"data-swiper-slide-index\"),10):t.clickedIndex=l;else{t.clickedSlide=void 0,t.clickedIndex=void 0;return}i.slideToClickedSlide&&t.clickedIndex!==void 0&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}var xt={updateSize:ut,updateSlides:pt,updateAutoHeight:mt,updateSlidesOffset:ht,updateSlidesProgress:gt,updateProgress:vt,updateSlidesClasses:wt,updateActiveIndex:bt,updateClickedSlide:St};function Et(s){s===void 0&&(s=this.isHorizontal()?\"x\":\"y\");let e=this,{params:t,rtlTranslate:i,translate:a,wrapperEl:r}=e;if(t.virtualTranslate)return i?-a:a;if(t.cssMode)return a;let l=me(r,s);return l+=e.cssOverflowAdjustment(),i&&(l=-l),l||0}function Tt(s,e){let t=this,{rtlTranslate:i,params:a,wrapperEl:r,progress:l}=t,n=0,d=0,o=0;t.isHorizontal()?n=i?-s:s:d=s,a.roundLengths&&(n=Math.floor(n),d=Math.floor(d)),t.previousTranslate=t.translate,t.translate=t.isHorizontal()?n:d,a.cssMode?r[t.isHorizontal()?\"scrollLeft\":\"scrollTop\"]=t.isHorizontal()?-n:-d:a.virtualTranslate||(t.isHorizontal()?n-=t.cssOverflowAdjustment():d-=t.cssOverflowAdjustment(),r.style.transform=`translate3d(${n}px, ${d}px, ${o}px)`);let u,p=t.maxTranslate()-t.minTranslate();p===0?u=0:u=(s-t.minTranslate())\/p,u!==l&&t.updateProgress(s),t.emit(\"setTranslate\",t.translate,e)}function Mt(){return-this.snapGrid[0]}function Ct(){return-this.snapGrid[this.snapGrid.length-1]}function Pt(s,e,t,i,a){s===void 0&&(s=0),e===void 0&&(e=this.params.speed),t===void 0&&(t=!0),i===void 0&&(i=!0);let r=this,{params:l,wrapperEl:n}=r;if(r.animating&&l.preventInteractionOnTransition)return!1;let d=r.minTranslate(),o=r.maxTranslate(),u;if(i&&s>d?u=d:i&&s<o?u=o:u=s,r.updateProgress(u),l.cssMode){let p=r.isHorizontal();if(e===0)n[p?\"scrollLeft\":\"scrollTop\"]=-u;else{if(!r.support.smoothScroll)return he({swiper:r,targetPosition:-u,side:p?\"left\":\"top\"}),!0;n.scrollTo({[p?\"left\":\"top\"]:-u,behavior:\"smooth\"})}return!0}return e===0?(r.setTransition(0),r.setTranslate(u),t&&(r.emit(\"beforeTransitionStart\",e,a),r.emit(\"transitionEnd\"))):(r.setTransition(e),r.setTranslate(u),t&&(r.emit(\"beforeTransitionStart\",e,a),r.emit(\"transitionStart\")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(g){!r||r.destroyed||g.target===this&&(r.wrapperEl.removeEventListener(\"transitionend\",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,r.animating=!1,t&&r.emit(\"transitionEnd\"))}),r.wrapperEl.addEventListener(\"transitionend\",r.onTranslateToWrapperTransitionEnd))),!0}var Lt={getTranslate:Et,setTranslate:Tt,minTranslate:Mt,maxTranslate:Ct,translateTo:Pt};function It(s,e){let t=this;t.params.cssMode||(t.wrapperEl.style.transitionDuration=`${s}ms`,t.wrapperEl.style.transitionDelay=s===0?\"0ms\":\"\"),t.emit(\"setTransition\",s,e)}function _e(s){let{swiper:e,runCallbacks:t,direction:i,step:a}=s,{activeIndex:r,previousIndex:l}=e,n=i;n||(r>l?n=\"next\":r<l?n=\"prev\":n=\"reset\"),e.emit(`transition${a}`),t&&n===\"reset\"?e.emit(`slideResetTransition${a}`):t&&r!==l&&(e.emit(`slideChangeTransition${a}`),n===\"next\"?e.emit(`slideNextTransition${a}`):e.emit(`slidePrevTransition${a}`))}function At(s,e){s===void 0&&(s=!0);let t=this,{params:i}=t;i.cssMode||(i.autoHeight&&t.updateAutoHeight(),_e({swiper:t,runCallbacks:s,direction:e,step:\"Start\"}))}function zt(s,e){s===void 0&&(s=!0);let t=this,{params:i}=t;t.animating=!1,!i.cssMode&&(t.setTransition(0),_e({swiper:t,runCallbacks:s,direction:e,step:\"End\"}))}var Ot={setTransition:It,transitionStart:At,transitionEnd:zt};function Dt(s,e,t,i,a){s===void 0&&(s=0),t===void 0&&(t=!0),typeof s==\"string\"&&(s=parseInt(s,10));let r=this,l=s;l<0&&(l=0);let{params:n,snapGrid:d,slidesGrid:o,previousIndex:u,activeIndex:p,rtlTranslate:g,wrapperEl:y,enabled:m}=r;if(!m&&!i&&!a||r.destroyed||r.animating&&n.preventInteractionOnTransition)return!1;typeof e==\"undefined\"&&(e=r.params.speed);let h=Math.min(r.params.slidesPerGroupSkip,l),x=h+Math.floor((l-h)\/r.params.slidesPerGroup);x>=d.length&&(x=d.length-1);let b=-d[x];if(n.normalizeSlideIndex)for(let I=0;I<o.length;I+=1){let P=-Math.floor(b*100),L=Math.floor(o[I]*100),T=Math.floor(o[I+1]*100);typeof o[I+1]!=\"undefined\"?P>=L&&P<T-(T-L)\/2?l=I:P>=L&&P<T&&(l=I+1):P>=L&&(l=I)}if(r.initialized&&l!==p&&(!r.allowSlideNext&&(g?b>r.translate&&b>r.minTranslate():b<r.translate&&b<r.minTranslate())||!r.allowSlidePrev&&b>r.translate&&b>r.maxTranslate()&&(p||0)!==l))return!1;l!==(u||0)&&t&&r.emit(\"beforeSlideChangeStart\"),r.updateProgress(b);let c;l>p?c=\"next\":l<p?c=\"prev\":c=\"reset\";let f=r.virtual&&r.params.virtual.enabled;if(!(f&&a)&&(g&&-b===r.translate||!g&&b===r.translate))return r.updateActiveIndex(l),n.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),n.effect!==\"slide\"&&r.setTranslate(b),c!==\"reset\"&&(r.transitionStart(t,c),r.transitionEnd(t,c)),!1;if(n.cssMode){let I=r.isHorizontal(),P=g?b:-b;if(e===0)f&&(r.wrapperEl.style.scrollSnapType=\"none\",r._immediateVirtual=!0),f&&!r._cssModeVirtualInitialSet&&r.params.initialSlide>0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{y[I?\"scrollLeft\":\"scrollTop\"]=P})):y[I?\"scrollLeft\":\"scrollTop\"]=P,f&&requestAnimationFrame(()=>{r.wrapperEl.style.scrollSnapType=\"\",r._immediateVirtual=!1});else{if(!r.support.smoothScroll)return he({swiper:r,targetPosition:P,side:I?\"left\":\"top\"}),!0;y.scrollTo({[I?\"left\":\"top\"]:P,behavior:\"smooth\"})}return!0}let C=We().isSafari;return f&&!a&&C&&r.isElement&&r.virtual.update(!1,!1,l),r.setTransition(e),r.setTranslate(b),r.updateActiveIndex(l),r.updateSlidesClasses(),r.emit(\"beforeTransitionStart\",e,i),r.transitionStart(t,c),e===0?r.transitionEnd(t,c):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(P){!r||r.destroyed||P.target===this&&(r.wrapperEl.removeEventListener(\"transitionend\",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(t,c))}),r.wrapperEl.addEventListener(\"transitionend\",r.onSlideToWrapperTransitionEnd)),!0}function $t(s,e,t,i){s===void 0&&(s=0),t===void 0&&(t=!0),typeof s==\"string\"&&(s=parseInt(s,10));let a=this;if(a.destroyed)return;typeof e==\"undefined\"&&(e=a.params.speed);let r=a.grid&&a.params.grid&&a.params.grid.rows>1,l=s;if(a.params.loop)if(a.virtual&&a.params.virtual.enabled)l=l+a.virtual.slidesBefore;else{let n;if(r){let g=l*a.params.grid.rows;n=a.slides.find(y=>y.getAttribute(\"data-swiper-slide-index\")*1===g).column}else n=a.getSlideIndexByData(l);let d=r?Math.ceil(a.slides.length\/a.params.grid.rows):a.slides.length,{centeredSlides:o}=a.params,u=a.params.slidesPerView;u===\"auto\"?u=a.slidesPerViewDynamic():(u=Math.ceil(parseFloat(a.params.slidesPerView,10)),o&&u%2===0&&(u=u+1));let p=d-n<u;if(o&&(p=p||n<Math.ceil(u\/2)),i&&o&&a.params.slidesPerView!==\"auto\"&&!r&&(p=!1),p){let g=o?n<a.activeIndex?\"prev\":\"next\":n-a.activeIndex-1<a.params.slidesPerView?\"next\":\"prev\";a.loopFix({direction:g,slideTo:!0,activeSlideIndex:g===\"next\"?n+1:n-d+1,slideRealIndex:g===\"next\"?a.realIndex:void 0})}if(r){let g=l*a.params.grid.rows;l=a.slides.find(y=>y.getAttribute(\"data-swiper-slide-index\")*1===g).column}else l=a.getSlideIndexByData(l)}return requestAnimationFrame(()=>{a.slideTo(l,e,t,i)}),a}function kt(s,e,t){e===void 0&&(e=!0);let i=this,{enabled:a,params:r,animating:l}=i;if(!a||i.destroyed)return i;typeof s==\"undefined\"&&(s=i.params.speed);let n=r.slidesPerGroup;r.slidesPerView===\"auto\"&&r.slidesPerGroup===1&&r.slidesPerGroupAuto&&(n=Math.max(i.slidesPerViewDynamic(\"current\",!0),1));let d=i.activeIndex<r.slidesPerGroupSkip?1:n,o=i.virtual&&r.virtual.enabled;if(r.loop){if(l&&!o&&r.loopPreventsSliding)return!1;if(i.loopFix({direction:\"next\"}),i._clientLeft=i.wrapperEl.clientLeft,i.activeIndex===i.slides.length-1&&r.cssMode)return requestAnimationFrame(()=>{i.slideTo(i.activeIndex+d,s,e,t)}),!0}return r.rewind&&i.isEnd?i.slideTo(0,s,e,t):i.slideTo(i.activeIndex+d,s,e,t)}function Gt(s,e,t){e===void 0&&(e=!0);let i=this,{params:a,snapGrid:r,slidesGrid:l,rtlTranslate:n,enabled:d,animating:o}=i;if(!d||i.destroyed)return i;typeof s==\"undefined\"&&(s=i.params.speed);let u=i.virtual&&a.virtual.enabled;if(a.loop){if(o&&!u&&a.loopPreventsSliding)return!1;i.loopFix({direction:\"prev\"}),i._clientLeft=i.wrapperEl.clientLeft}let p=n?i.translate:-i.translate;function g(c){return c<0?-Math.floor(Math.abs(c)):Math.floor(c)}let y=g(p),m=r.map(c=>g(c)),h=a.freeMode&&a.freeMode.enabled,x=r[m.indexOf(y)-1];if(typeof x==\"undefined\"&&(a.cssMode||h)){let c;r.forEach((f,v)=>{y>=f&&(c=v)}),typeof c!=\"undefined\"&&(x=h?r[c]:r[c>0?c-1:c])}let b=0;if(typeof x!=\"undefined\"&&(b=l.indexOf(x),b<0&&(b=i.activeIndex-1),a.slidesPerView===\"auto\"&&a.slidesPerGroup===1&&a.slidesPerGroupAuto&&(b=b-i.slidesPerViewDynamic(\"previous\",!0)+1,b=Math.max(b,0))),a.rewind&&i.isBeginning){let c=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(c,s,e,t)}else if(a.loop&&i.activeIndex===0&&a.cssMode)return requestAnimationFrame(()=>{i.slideTo(b,s,e,t)}),!0;return i.slideTo(b,s,e,t)}function Ht(s,e,t){e===void 0&&(e=!0);let i=this;if(!i.destroyed)return typeof s==\"undefined\"&&(s=i.params.speed),i.slideTo(i.activeIndex,s,e,t)}function Bt(s,e,t,i){e===void 0&&(e=!0),i===void 0&&(i=.5);let a=this;if(a.destroyed)return;typeof s==\"undefined\"&&(s=a.params.speed);let r=a.activeIndex,l=Math.min(a.params.slidesPerGroupSkip,r),n=l+Math.floor((r-l)\/a.params.slidesPerGroup),d=a.rtlTranslate?a.translate:-a.translate;if(d>=a.snapGrid[n]){let o=a.snapGrid[n],u=a.snapGrid[n+1];d-o>(u-o)*i&&(r+=a.params.slidesPerGroup)}else{let o=a.snapGrid[n-1],u=a.snapGrid[n];d-o<=(u-o)*i&&(r-=a.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,a.slidesGrid.length-1),a.slideTo(r,s,e,t)}function Xt(){let s=this;if(s.destroyed)return;let{params:e,slidesEl:t}=s,i=e.slidesPerView===\"auto\"?s.slidesPerViewDynamic():e.slidesPerView,a=s.getSlideIndexWhenGrid(s.clickedIndex),r,l=s.isElement?\"swiper-slide\":`.${e.slideClass}`,n=s.grid&&s.params.grid&&s.params.grid.rows>1;if(e.loop){if(s.animating)return;r=parseInt(s.clickedSlide.getAttribute(\"data-swiper-slide-index\"),10),e.centeredSlides?s.slideToLoop(r):a>(n?(s.slides.length-i)\/2-(s.params.grid.rows-1):s.slides.length-i)?(s.loopFix(),a=s.getSlideIndex(R(t,`${l}[data-swiper-slide-index=\"${r}\"]`)[0]),J(()=>{s.slideTo(a)})):s.slideTo(a)}else s.slideTo(a)}var Rt={slideTo:Dt,slideToLoop:$t,slideNext:kt,slidePrev:Gt,slideReset:Ht,slideToClosest:Bt,slideToClickedSlide:Xt};function Yt(s,e){let t=this,{params:i,slidesEl:a}=t;if(!i.loop||t.virtual&&t.params.virtual.enabled)return;let r=()=>{R(a,`.${i.slideClass}, swiper-slide`).forEach((y,m)=>{y.setAttribute(\"data-swiper-slide-index\",m)})},l=()=>{let g=R(a,`.${i.slideBlankClass}`);g.forEach(y=>{y.remove()}),g.length>0&&(t.recalcSlides(),t.updateSlides())},n=t.grid&&i.grid&&i.grid.rows>1;i.loopAddBlankSlides&&(i.slidesPerGroup>1||n)&&l();let d=i.slidesPerGroup*(n?i.grid.rows:1),o=t.slides.length%d!==0,u=n&&t.slides.length%i.grid.rows!==0,p=g=>{for(let y=0;y<g;y+=1){let m=t.isElement?V(\"swiper-slide\",[i.slideBlankClass]):V(\"div\",[i.slideClass,i.slideBlankClass]);t.slidesEl.append(m)}};if(o){if(i.loopAddBlankSlides){let g=d-t.slides.length%d;p(g),t.recalcSlides(),t.updateSlides()}else re(\"Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)\");r()}else if(u){if(i.loopAddBlankSlides){let g=i.grid.rows-t.slides.length%i.grid.rows;p(g),t.recalcSlides(),t.updateSlides()}else re(\"Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)\");r()}else r();t.loopFix({slideRealIndex:s,direction:i.centeredSlides?void 0:\"next\",initial:e})}function Vt(s){let{slideRealIndex:e,slideTo:t=!0,direction:i,setTranslate:a,activeSlideIndex:r,initial:l,byController:n,byMousewheel:d}=s===void 0?{}:s,o=this;if(!o.params.loop)return;o.emit(\"beforeLoopFix\");let{slides:u,allowSlidePrev:p,allowSlideNext:g,slidesEl:y,params:m}=o,{centeredSlides:h,initialSlide:x}=m;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled){t&&(!m.centeredSlides&&o.snapIndex===0?o.slideTo(o.virtual.slides.length,0,!1,!0):m.centeredSlides&&o.snapIndex<m.slidesPerView?o.slideTo(o.virtual.slides.length+o.snapIndex,0,!1,!0):o.snapIndex===o.snapGrid.length-1&&o.slideTo(o.virtual.slidesBefore,0,!1,!0)),o.allowSlidePrev=p,o.allowSlideNext=g,o.emit(\"loopFix\");return}let b=m.slidesPerView;b===\"auto\"?b=o.slidesPerViewDynamic():(b=Math.ceil(parseFloat(m.slidesPerView,10)),h&&b%2===0&&(b=b+1));let c=m.slidesPerGroupAuto?b:m.slidesPerGroup,f=h?Math.max(c,Math.ceil(b\/2)):c;f%c!==0&&(f+=c-f%c),f+=m.loopAdditionalSlides,o.loopedSlides=f;let v=o.grid&&m.grid&&m.grid.rows>1;u.length<b+f||o.params.effect===\"cards\"&&u.length<b+f*2?re(\"Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters\"):v&&m.grid.fill===\"row\"&&re(\"Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`\");let S=[],C=[],I=v?Math.ceil(u.length\/m.grid.rows):u.length,P=l&&I-x<b&&!h,L=P?x:o.activeIndex;typeof r==\"undefined\"?r=o.getSlideIndex(u.find(z=>z.classList.contains(m.slideActiveClass))):L=r;let T=i===\"next\"||!i,M=i===\"prev\"||!i,A=0,O=0,G=(v?u[r].column:r)+(h&&typeof a==\"undefined\"?-b\/2+.5:0);if(G<f){A=Math.max(f-G,c);for(let z=0;z<f-G;z+=1){let w=z-Math.floor(z\/I)*I;if(v){let E=I-w-1;for(let $=u.length-1;$>=0;$-=1)u[$].column===E&&S.push($)}else S.push(I-w-1)}}else if(G+b>I-f){O=Math.max(G-(I-f*2),c),P&&(O=Math.max(O,b-I+x+1));for(let z=0;z<O;z+=1){let w=z-Math.floor(z\/I)*I;v?u.forEach((E,$)=>{E.column===w&&C.push($)}):C.push(w)}}if(o.__preventObserver__=!0,requestAnimationFrame(()=>{o.__preventObserver__=!1}),o.params.effect===\"cards\"&&u.length<b+f*2&&(C.includes(r)&&C.splice(C.indexOf(r),1),S.includes(r)&&S.splice(S.indexOf(r),1)),M&&S.forEach(z=>{u[z].swiperLoopMoveDOM=!0,y.prepend(u[z]),u[z].swiperLoopMoveDOM=!1}),T&&C.forEach(z=>{u[z].swiperLoopMoveDOM=!0,y.append(u[z]),u[z].swiperLoopMoveDOM=!1}),o.recalcSlides(),m.slidesPerView===\"auto\"?o.updateSlides():v&&(S.length>0&&M||C.length>0&&T)&&o.slides.forEach((z,w)=>{o.grid.updateSlide(w,z,o.slides)}),m.watchSlidesProgress&&o.updateSlidesOffset(),t){if(S.length>0&&M){if(typeof e==\"undefined\"){let z=o.slidesGrid[L],E=o.slidesGrid[L+A]-z;d?o.setTranslate(o.translate-E):(o.slideTo(L+Math.ceil(A),0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-E,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-E))}else if(a){let z=v?S.length\/m.grid.rows:S.length;o.slideTo(o.activeIndex+z,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(C.length>0&&T)if(typeof e==\"undefined\"){let z=o.slidesGrid[L],E=o.slidesGrid[L-O]-z;d?o.setTranslate(o.translate-E):(o.slideTo(L-O,0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-E,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-E))}else{let z=v?C.length\/m.grid.rows:C.length;o.slideTo(o.activeIndex-z,0,!1,!0)}}if(o.allowSlidePrev=p,o.allowSlideNext=g,o.controller&&o.controller.control&&!n){let z={slideRealIndex:e,direction:i,setTranslate:a,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach(w=>{!w.destroyed&&w.params.loop&&w.loopFix({...z,slideTo:w.params.slidesPerView===m.slidesPerView?t:!1})}):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...z,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView?t:!1})}o.emit(\"loopFix\")}function Nt(){let s=this,{params:e,slidesEl:t}=s;if(!e.loop||!t||s.virtual&&s.params.virtual.enabled)return;s.recalcSlides();let i=[];s.slides.forEach(a=>{let r=typeof a.swiperSlideIndex==\"undefined\"?a.getAttribute(\"data-swiper-slide-index\")*1:a.swiperSlideIndex;i[r]=a}),s.slides.forEach(a=>{a.removeAttribute(\"data-swiper-slide-index\")}),i.forEach(a=>{t.append(a)}),s.recalcSlides(),s.slideTo(s.realIndex,0)}var Ft={loopCreate:Yt,loopFix:Vt,loopDestroy:Nt};function Wt(s){let e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;let t=e.params.touchEventsTarget===\"container\"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),t.style.cursor=\"move\",t.style.cursor=s?\"grabbing\":\"grab\",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function _t(){let s=this;s.params.watchOverflow&&s.isLocked||s.params.cssMode||(s.isElement&&(s.__preventObserver__=!0),s[s.params.touchEventsTarget===\"container\"?\"el\":\"wrapperEl\"].style.cursor=\"\",s.isElement&&requestAnimationFrame(()=>{s.__preventObserver__=!1}))}var qt={setGrabCursor:Wt,unsetGrabCursor:_t};function jt(s,e){e===void 0&&(e=this);function t(i){if(!i||i===B()||i===H())return null;i.assignedSlot&&(i=i.assignedSlot);let a=i.closest(s);return!a&&!i.getRootNode?null:a||t(i.getRootNode().host)}return t(e)}function Xe(s,e,t){let i=H(),{params:a}=s,r=a.edgeSwipeDetection,l=a.edgeSwipeThreshold;return r&&(t<=l||t>=i.innerWidth-l)?r===\"prevent\"?(e.preventDefault(),!0):!1:!0}function Ut(s){let e=this,t=B(),i=s;i.originalEvent&&(i=i.originalEvent);let a=e.touchEventsData;if(i.type===\"pointerdown\"){if(a.pointerId!==null&&a.pointerId!==i.pointerId)return;a.pointerId=i.pointerId}else i.type===\"touchstart\"&&i.targetTouches.length===1&&(a.touchId=i.targetTouches[0].identifier);if(i.type===\"touchstart\"){Xe(e,i,i.targetTouches[0].pageX);return}let{params:r,touches:l,enabled:n}=e;if(!n||!r.simulateTouch&&i.pointerType===\"mouse\"||e.animating&&r.preventInteractionOnTransition)return;!e.animating&&r.cssMode&&r.loop&&e.loopFix();let d=i.target;if(r.touchEventsTarget===\"wrapper\"&&!ke(d,e.wrapperEl)||\"which\"in i&&i.which===3||\"button\"in i&&i.button>0||a.isTouched&&a.isMoved)return;let o=!!r.noSwipingClass&&r.noSwipingClass!==\"\",u=i.composedPath?i.composedPath():i.path;o&&i.target&&i.target.shadowRoot&&u&&(d=u[0]);let p=r.noSwipingSelector?r.noSwipingSelector:`.${r.noSwipingClass}`,g=!!(i.target&&i.target.shadowRoot);if(r.noSwiping&&(g?jt(p,d):d.closest(p))){e.allowClick=!0;return}if(r.swipeHandler&&!d.closest(r.swipeHandler))return;l.currentX=i.pageX,l.currentY=i.pageY;let y=l.currentX,m=l.currentY;if(!Xe(e,i,y))return;Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=y,l.startY=m,a.touchStartTime=K(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,r.threshold>0&&(a.allowThresholdMove=!1);let h=!0;d.matches(a.focusableElements)&&(h=!1,d.nodeName===\"SELECT\"&&(a.isTouched=!1)),t.activeElement&&t.activeElement.matches(a.focusableElements)&&t.activeElement!==d&&(i.pointerType===\"mouse\"||i.pointerType!==\"mouse\"&&!d.matches(a.focusableElements))&&t.activeElement.blur();let x=h&&e.allowTouchMove&&r.touchStartPreventDefault;(r.touchStartForcePreventDefault||x)&&!d.isContentEditable&&i.preventDefault(),r.freeMode&&r.freeMode.enabled&&e.freeMode&&e.animating&&!r.cssMode&&e.freeMode.onTouchStart(),e.emit(\"touchStart\",i)}function Kt(s){let e=B(),t=this,i=t.touchEventsData,{params:a,touches:r,rtlTranslate:l,enabled:n}=t;if(!n||!a.simulateTouch&&s.pointerType===\"mouse\")return;let d=s;if(d.originalEvent&&(d=d.originalEvent),d.type===\"pointermove\"&&(i.touchId!==null||d.pointerId!==i.pointerId))return;let o;if(d.type===\"touchmove\"){if(o=[...d.changedTouches].find(C=>C.identifier===i.touchId),!o||o.identifier!==i.touchId)return}else o=d;if(!i.isTouched){i.startMoving&&i.isScrolling&&t.emit(\"touchMoveOpposite\",d);return}let u=o.pageX,p=o.pageY;if(d.preventedByNestedSwiper){r.startX=u,r.startY=p;return}if(!t.allowTouchMove){d.target.matches(i.focusableElements)||(t.allowClick=!1),i.isTouched&&(Object.assign(r,{startX:u,startY:p,currentX:u,currentY:p}),i.touchStartTime=K());return}if(a.touchReleaseOnEdges&&!a.loop)if(t.isVertical()){if(p<r.startY&&t.translate<=t.maxTranslate()||p>r.startY&&t.translate>=t.minTranslate()){i.isTouched=!1,i.isMoved=!1;return}}else{if(l&&(u>r.startX&&-t.translate<=t.maxTranslate()||u<r.startX&&-t.translate>=t.minTranslate()))return;if(!l&&(u<r.startX&&t.translate<=t.maxTranslate()||u>r.startX&&t.translate>=t.minTranslate()))return}if(e.activeElement&&e.activeElement.matches(i.focusableElements)&&e.activeElement!==d.target&&d.pointerType!==\"mouse\"&&e.activeElement.blur(),e.activeElement&&d.target===e.activeElement&&d.target.matches(i.focusableElements)){i.isMoved=!0,t.allowClick=!1;return}i.allowTouchCallbacks&&t.emit(\"touchMove\",d),r.previousX=r.currentX,r.previousY=r.currentY,r.currentX=u,r.currentY=p;let g=r.currentX-r.startX,y=r.currentY-r.startY;if(t.params.threshold&&Math.sqrt(g**2+y**2)<t.params.threshold)return;if(typeof i.isScrolling==\"undefined\"){let C;t.isHorizontal()&&r.currentY===r.startY||t.isVertical()&&r.currentX===r.startX?i.isScrolling=!1:g*g+y*y>=25&&(C=Math.atan2(Math.abs(y),Math.abs(g))*180\/Math.PI,i.isScrolling=t.isHorizontal()?C>a.touchAngle:90-C>a.touchAngle)}if(i.isScrolling&&t.emit(\"touchMoveOpposite\",d),typeof i.startMoving==\"undefined\"&&(r.currentX!==r.startX||r.currentY!==r.startY)&&(i.startMoving=!0),i.isScrolling||d.type===\"touchmove\"&&i.preventTouchMoveFromPointerMove){i.isTouched=!1;return}if(!i.startMoving)return;t.allowClick=!1,!a.cssMode&&d.cancelable&&d.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&d.stopPropagation();let m=t.isHorizontal()?g:y,h=t.isHorizontal()?r.currentX-r.previousX:r.currentY-r.previousY;a.oneWayMovement&&(m=Math.abs(m)*(l?1:-1),h=Math.abs(h)*(l?1:-1)),r.diff=m,m*=a.touchRatio,l&&(m=-m,h=-h);let x=t.touchesDirection;t.swipeDirection=m>0?\"prev\":\"next\",t.touchesDirection=h>0?\"prev\":\"next\";let b=t.params.loop&&!a.cssMode,c=t.touchesDirection===\"next\"&&t.allowSlideNext||t.touchesDirection===\"prev\"&&t.allowSlidePrev;if(!i.isMoved){if(b&&c&&t.loopFix({direction:t.swipeDirection}),i.startTranslate=t.getTranslate(),t.setTransition(0),t.animating){let C=new window.CustomEvent(\"transitionend\",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});t.wrapperEl.dispatchEvent(C)}i.allowMomentumBounce=!1,a.grabCursor&&(t.allowSlideNext===!0||t.allowSlidePrev===!0)&&t.setGrabCursor(!0),t.emit(\"sliderFirstMove\",d)}let f;if(new Date().getTime(),a._loopSwapReset!==!1&&i.isMoved&&i.allowThresholdMove&&x!==t.touchesDirection&&b&&c&&Math.abs(m)>=1){Object.assign(r,{startX:u,startY:p,currentX:u,currentY:p,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,i.startTranslate=i.currentTranslate;return}t.emit(\"sliderMove\",d),i.isMoved=!0,i.currentTranslate=m+i.startTranslate;let v=!0,S=a.resistanceRatio;if(a.touchReleaseOnEdges&&(S=0),m>0?(b&&c&&!f&&i.allowThresholdMove&&i.currentTranslate>(a.centeredSlides?t.minTranslate()-t.slidesSizesGrid[t.activeIndex+1]-(a.slidesPerView!==\"auto\"&&t.slides.length-a.slidesPerView>=2?t.slidesSizesGrid[t.activeIndex+1]+t.params.spaceBetween:0)-t.params.spaceBetween:t.minTranslate())&&t.loopFix({direction:\"prev\",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>t.minTranslate()&&(v=!1,a.resistance&&(i.currentTranslate=t.minTranslate()-1+(-t.minTranslate()+i.startTranslate+m)**S))):m<0&&(b&&c&&!f&&i.allowThresholdMove&&i.currentTranslate<(a.centeredSlides?t.maxTranslate()+t.slidesSizesGrid[t.slidesSizesGrid.length-1]+t.params.spaceBetween+(a.slidesPerView!==\"auto\"&&t.slides.length-a.slidesPerView>=2?t.slidesSizesGrid[t.slidesSizesGrid.length-1]+t.params.spaceBetween:0):t.maxTranslate())&&t.loopFix({direction:\"next\",setTranslate:!0,activeSlideIndex:t.slides.length-(a.slidesPerView===\"auto\"?t.slidesPerViewDynamic():Math.ceil(parseFloat(a.slidesPerView,10)))}),i.currentTranslate<t.maxTranslate()&&(v=!1,a.resistance&&(i.currentTranslate=t.maxTranslate()+1-(t.maxTranslate()-i.startTranslate-m)**S))),v&&(d.preventedByNestedSwiper=!0),!t.allowSlideNext&&t.swipeDirection===\"next\"&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!t.allowSlidePrev&&t.swipeDirection===\"prev\"&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),!t.allowSlidePrev&&!t.allowSlideNext&&(i.currentTranslate=i.startTranslate),a.threshold>0)if(Math.abs(m)>a.threshold||i.allowThresholdMove){if(!i.allowThresholdMove){i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTranslate,r.diff=t.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY;return}}else{i.currentTranslate=i.startTranslate;return}!a.followFinger||a.cssMode||((a.freeMode&&a.freeMode.enabled&&t.freeMode||a.watchSlidesProgress)&&(t.updateActiveIndex(),t.updateSlidesClasses()),a.freeMode&&a.freeMode.enabled&&t.freeMode&&t.freeMode.onTouchMove(),t.updateProgress(i.currentTranslate),t.setTranslate(i.currentTranslate))}function Zt(s){let e=this,t=e.touchEventsData,i=s;i.originalEvent&&(i=i.originalEvent);let a;if(i.type===\"touchend\"||i.type===\"touchcancel\"){if(a=[...i.changedTouches].find(S=>S.identifier===t.touchId),!a||a.identifier!==t.touchId)return}else{if(t.touchId!==null||i.pointerId!==t.pointerId)return;a=i}if([\"pointercancel\",\"pointerout\",\"pointerleave\",\"contextmenu\"].includes(i.type)&&!([\"pointercancel\",\"contextmenu\"].includes(i.type)&&(e.browser.isSafari||e.browser.isWebView)))return;t.pointerId=null,t.touchId=null;let{params:l,touches:n,rtlTranslate:d,slidesGrid:o,enabled:u}=e;if(!u||!l.simulateTouch&&i.pointerType===\"mouse\")return;if(t.allowTouchCallbacks&&e.emit(\"touchEnd\",i),t.allowTouchCallbacks=!1,!t.isTouched){t.isMoved&&l.grabCursor&&e.setGrabCursor(!1),t.isMoved=!1,t.startMoving=!1;return}l.grabCursor&&t.isMoved&&t.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);let p=K(),g=p-t.touchStartTime;if(e.allowClick){let S=i.path||i.composedPath&&i.composedPath();e.updateClickedSlide(S&&S[0]||i.target,S),e.emit(\"tap click\",i),g<300&&p-t.lastClickTime<300&&e.emit(\"doubleTap doubleClick\",i)}if(t.lastClickTime=K(),J(()=>{e.destroyed||(e.allowClick=!0)}),!t.isTouched||!t.isMoved||!e.swipeDirection||n.diff===0&&!t.loopSwapReset||t.currentTranslate===t.startTranslate&&!t.loopSwapReset){t.isTouched=!1,t.isMoved=!1,t.startMoving=!1;return}t.isTouched=!1,t.isMoved=!1,t.startMoving=!1;let y;if(l.followFinger?y=d?e.translate:-e.translate:y=-t.currentTranslate,l.cssMode)return;if(l.freeMode&&l.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:y});return}let m=y>=-e.maxTranslate()&&!e.params.loop,h=0,x=e.slidesSizesGrid[0];for(let S=0;S<o.length;S+=S<l.slidesPerGroupSkip?1:l.slidesPerGroup){let C=S<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;typeof o[S+C]!=\"undefined\"?(m||y>=o[S]&&y<o[S+C])&&(h=S,x=o[S+C]-o[S]):(m||y>=o[S])&&(h=S,x=o[o.length-1]-o[o.length-2])}let b=null,c=null;l.rewind&&(e.isBeginning?c=l.virtual&&l.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(b=0));let f=(y-o[h])\/x,v=h<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;if(g>l.longSwipesMs){if(!l.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection===\"next\"&&(f>=l.longSwipesRatio?e.slideTo(l.rewind&&e.isEnd?b:h+v):e.slideTo(h)),e.swipeDirection===\"prev\"&&(f>1-l.longSwipesRatio?e.slideTo(h+v):c!==null&&f<0&&Math.abs(f)>l.longSwipesRatio?e.slideTo(c):e.slideTo(h))}else{if(!l.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(i.target===e.navigation.nextEl||i.target===e.navigation.prevEl)?i.target===e.navigation.nextEl?e.slideTo(h+v):e.slideTo(h):(e.swipeDirection===\"next\"&&e.slideTo(b!==null?b:h+v),e.swipeDirection===\"prev\"&&e.slideTo(c!==null?c:h))}}function Re(){let s=this,{params:e,el:t}=s;if(t&&t.offsetWidth===0)return;e.breakpoints&&s.setBreakpoint();let{allowSlideNext:i,allowSlidePrev:a,snapGrid:r}=s,l=s.virtual&&s.params.virtual.enabled;s.allowSlideNext=!0,s.allowSlidePrev=!0,s.updateSize(),s.updateSlides(),s.updateSlidesClasses();let n=l&&e.loop;(e.slidesPerView===\"auto\"||e.slidesPerView>1)&&s.isEnd&&!s.isBeginning&&!s.params.centeredSlides&&!n?s.slideTo(s.slides.length-1,0,!1,!0):s.params.loop&&!l?s.slideToLoop(s.realIndex,0,!1,!0):s.slideTo(s.activeIndex,0,!1,!0),s.autoplay&&s.autoplay.running&&s.autoplay.paused&&(clearTimeout(s.autoplay.resizeTimeout),s.autoplay.resizeTimeout=setTimeout(()=>{s.autoplay&&s.autoplay.running&&s.autoplay.paused&&s.autoplay.resume()},500)),s.allowSlidePrev=a,s.allowSlideNext=i,s.params.watchOverflow&&r!==s.snapGrid&&s.checkOverflow()}function Qt(s){let e=this;e.enabled&&(e.allowClick||(e.params.preventClicks&&s.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(s.stopPropagation(),s.stopImmediatePropagation())))}function Jt(){let s=this,{wrapperEl:e,rtlTranslate:t,enabled:i}=s;if(!i)return;s.previousTranslate=s.translate,s.isHorizontal()?s.translate=-e.scrollLeft:s.translate=-e.scrollTop,s.translate===0&&(s.translate=0),s.updateActiveIndex(),s.updateSlidesClasses();let a,r=s.maxTranslate()-s.minTranslate();r===0?a=0:a=(s.translate-s.minTranslate())\/r,a!==s.progress&&s.updateProgress(t?-s.translate:s.translate),s.emit(\"setTranslate\",s.translate,!1)}function es(s){let e=this;fe(e,s.target),!(e.params.cssMode||e.params.slidesPerView!==\"auto\"&&!e.params.autoHeight)&&e.update()}function ts(){let s=this;s.documentTouchHandlerProceeded||(s.documentTouchHandlerProceeded=!0,s.params.touchReleaseOnEdges&&(s.el.style.touchAction=\"auto\"))}var qe=(s,e)=>{let t=B(),{params:i,el:a,wrapperEl:r,device:l}=s,n=!!i.nested,d=e===\"on\"?\"addEventListener\":\"removeEventListener\",o=e;!a||typeof a==\"string\"||(t[d](\"touchstart\",s.onDocumentTouchStart,{passive:!1,capture:n}),a[d](\"touchstart\",s.onTouchStart,{passive:!1}),a[d](\"pointerdown\",s.onTouchStart,{passive:!1}),t[d](\"touchmove\",s.onTouchMove,{passive:!1,capture:n}),t[d](\"pointermove\",s.onTouchMove,{passive:!1,capture:n}),t[d](\"touchend\",s.onTouchEnd,{passive:!0}),t[d](\"pointerup\",s.onTouchEnd,{passive:!0}),t[d](\"pointercancel\",s.onTouchEnd,{passive:!0}),t[d](\"touchcancel\",s.onTouchEnd,{passive:!0}),t[d](\"pointerout\",s.onTouchEnd,{passive:!0}),t[d](\"pointerleave\",s.onTouchEnd,{passive:!0}),t[d](\"contextmenu\",s.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&a[d](\"click\",s.onClick,!0),i.cssMode&&r[d](\"scroll\",s.onScroll),i.updateOnWindowResize?s[o](l.ios||l.android?\"resize orientationchange observerUpdate\":\"resize observerUpdate\",Re,!0):s[o](\"observerUpdate\",Re,!0),a[d](\"load\",s.onLoad,{capture:!0}))};function ss(){let s=this,{params:e}=s;s.onTouchStart=Ut.bind(s),s.onTouchMove=Kt.bind(s),s.onTouchEnd=Zt.bind(s),s.onDocumentTouchStart=ts.bind(s),e.cssMode&&(s.onScroll=Jt.bind(s)),s.onClick=Qt.bind(s),s.onLoad=es.bind(s),qe(s,\"on\")}function is(){qe(this,\"off\")}var rs={attachEvents:ss,detachEvents:is},Ye=(s,e)=>s.grid&&e.grid&&e.grid.rows>1;function as(){let s=this,{realIndex:e,initialized:t,params:i,el:a}=s,r=i.breakpoints;if(!r||r&&Object.keys(r).length===0)return;let l=B(),n=i.breakpointsBase===\"window\"||!i.breakpointsBase?i.breakpointsBase:\"container\",d=[\"window\",\"container\"].includes(i.breakpointsBase)||!i.breakpointsBase?s.el:l.querySelector(i.breakpointsBase),o=s.getBreakpoint(r,n,d);if(!o||s.currentBreakpoint===o)return;let p=(o in r?r[o]:void 0)||s.originalParams,g=Ye(s,i),y=Ye(s,p),m=s.params.grabCursor,h=p.grabCursor,x=i.enabled;g&&!y?(a.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),s.emitContainerClasses()):!g&&y&&(a.classList.add(`${i.containerModifierClass}grid`),(p.grid.fill&&p.grid.fill===\"column\"||!p.grid.fill&&i.grid.fill===\"column\")&&a.classList.add(`${i.containerModifierClass}grid-column`),s.emitContainerClasses()),m&&!h?s.unsetGrabCursor():!m&&h&&s.setGrabCursor(),[\"navigation\",\"pagination\",\"scrollbar\"].forEach(C=>{if(typeof p[C]==\"undefined\")return;let I=i[C]&&i[C].enabled,P=p[C]&&p[C].enabled;I&&!P&&s[C].disable(),!I&&P&&s[C].enable()});let b=p.direction&&p.direction!==i.direction,c=i.loop&&(p.slidesPerView!==i.slidesPerView||b),f=i.loop;b&&t&&s.changeDirection(),Y(s.params,p);let v=s.params.enabled,S=s.params.loop;Object.assign(s,{allowTouchMove:s.params.allowTouchMove,allowSlideNext:s.params.allowSlideNext,allowSlidePrev:s.params.allowSlidePrev}),x&&!v?s.disable():!x&&v&&s.enable(),s.currentBreakpoint=o,s.emit(\"_beforeBreakpoint\",p),t&&(c?(s.loopDestroy(),s.loopCreate(e),s.updateSlides()):!f&&S?(s.loopCreate(e),s.updateSlides()):f&&!S&&s.loopDestroy()),s.emit(\"breakpoint\",p)}function ns(s,e,t){if(e===void 0&&(e=\"window\"),!s||e===\"container\"&&!t)return;let i=!1,a=H(),r=e===\"window\"?a.innerHeight:t.clientHeight,l=Object.keys(s).map(n=>{if(typeof n==\"string\"&&n.indexOf(\"@\")===0){let d=parseFloat(n.substr(1));return{value:r*d,point:n}}return{value:n,point:n}});l.sort((n,d)=>parseInt(n.value,10)-parseInt(d.value,10));for(let n=0;n<l.length;n+=1){let{point:d,value:o}=l[n];e===\"window\"?a.matchMedia(`(min-width: ${o}px)`).matches&&(i=d):o<=t.clientWidth&&(i=d)}return i||\"max\"}var ls={setBreakpoint:as,getBreakpoint:ns};function os(s,e){let t=[];return s.forEach(i=>{typeof i==\"object\"?Object.keys(i).forEach(a=>{i[a]&&t.push(e+a)}):typeof i==\"string\"&&t.push(e+i)}),t}function ds(){let s=this,{classNames:e,params:t,rtl:i,el:a,device:r}=s,l=os([\"initialized\",t.direction,{\"free-mode\":s.params.freeMode&&t.freeMode.enabled},{autoheight:t.autoHeight},{rtl:i},{grid:t.grid&&t.grid.rows>1},{\"grid-column\":t.grid&&t.grid.rows>1&&t.grid.fill===\"column\"},{android:r.android},{ios:r.ios},{\"css-mode\":t.cssMode},{centered:t.cssMode&&t.centeredSlides},{\"watch-progress\":t.watchSlidesProgress}],t.containerModifierClass);e.push(...l),a.classList.add(...e),s.emitContainerClasses()}function cs(){let s=this,{el:e,classNames:t}=s;!e||typeof e==\"string\"||(e.classList.remove(...t),s.emitContainerClasses())}var fs={addClasses:ds,removeClasses:cs};function us(){let s=this,{isLocked:e,params:t}=s,{slidesOffsetBefore:i}=t;if(i){let a=s.slides.length-1,r=s.slidesGrid[a]+s.slidesSizesGrid[a]+i*2;s.isLocked=s.size>r}else s.isLocked=s.snapGrid.length===1;t.allowSlideNext===!0&&(s.allowSlideNext=!s.isLocked),t.allowSlidePrev===!0&&(s.allowSlidePrev=!s.isLocked),e&&e!==s.isLocked&&(s.isEnd=!1),e!==s.isLocked&&s.emit(s.isLocked?\"lock\":\"unlock\")}var ps={checkOverflow:us},Ve={init:!0,direction:\"horizontal\",oneWayMovement:!1,swiperElementNodeName:\"SWIPER-CONTAINER\",touchEventsTarget:\"wrapper\",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:\"swiper\",enabled:!0,focusableElements:\"input, select, option, textarea, button, video, label\",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:\"slide\",breakpoints:void 0,breakpointsBase:\"window\",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:\"swiper-no-swiping\",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:\"swiper-\",slideClass:\"swiper-slide\",slideBlankClass:\"swiper-slide-blank\",slideActiveClass:\"swiper-slide-active\",slideVisibleClass:\"swiper-slide-visible\",slideFullyVisibleClass:\"swiper-slide-fully-visible\",slideNextClass:\"swiper-slide-next\",slidePrevClass:\"swiper-slide-prev\",wrapperClass:\"swiper-wrapper\",lazyPreloaderClass:\"swiper-lazy-preloader\",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function ms(s,e){return function(i){i===void 0&&(i={});let a=Object.keys(i)[0],r=i[a];if(typeof r!=\"object\"||r===null){Y(e,i);return}if(s[a]===!0&&(s[a]={enabled:!0}),a===\"navigation\"&&s[a]&&s[a].enabled&&!s[a].prevEl&&!s[a].nextEl&&(s[a].auto=!0),[\"pagination\",\"scrollbar\"].indexOf(a)>=0&&s[a]&&s[a].enabled&&!s[a].el&&(s[a].auto=!0),!(a in s&&\"enabled\"in r)){Y(e,i);return}typeof s[a]==\"object\"&&!(\"enabled\"in s[a])&&(s[a].enabled=!0),s[a]||(s[a]={enabled:!1}),Y(e,i)}}var Se={eventsEmitter:ft,update:xt,translate:Lt,transition:Ot,slide:Rt,loop:Ft,grabCursor:qt,events:rs,breakpoints:ls,checkOverflow:ps,classes:fs},xe={},_=class s{constructor(){let e,t;for(var i=arguments.length,a=new Array(i),r=0;r<i;r++)a[r]=arguments[r];a.length===1&&a[0].constructor&&Object.prototype.toString.call(a[0]).slice(8,-1)===\"Object\"?t=a[0]:[e,t]=a,t||(t={}),t=Y({},t),e&&!t.el&&(t.el=e);let l=B();if(t.el&&typeof t.el==\"string\"&&l.querySelectorAll(t.el).length>1){let u=[];return l.querySelectorAll(t.el).forEach(p=>{let g=Y({},t,{el:p});u.push(new s(g))}),u}let n=this;n.__swiper__=!0,n.support=Ne(),n.device=Fe({userAgent:t.userAgent}),n.browser=We(),n.eventsListeners={},n.eventsAnyListeners=[],n.modules=[...n.__modules__],t.modules&&Array.isArray(t.modules)&&n.modules.push(...t.modules);let d={};n.modules.forEach(u=>{u({params:t,swiper:n,extendParams:ms(t,d),on:n.on.bind(n),once:n.once.bind(n),off:n.off.bind(n),emit:n.emit.bind(n)})});let o=Y({},Ve,d);return n.params=Y({},o,xe,t),n.originalParams=Y({},n.params),n.passedParams=Y({},t),n.params&&n.params.on&&Object.keys(n.params.on).forEach(u=>{n.on(u,n.params.on[u])}),n.params&&n.params.onAny&&n.onAny(n.params.onAny),Object.assign(n,{enabled:n.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return n.params.direction===\"horizontal\"},isVertical(){return n.params.direction===\"vertical\"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate\/2**23)*2**23},allowSlideNext:n.params.allowSlideNext,allowSlidePrev:n.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:n.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:n.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),n.emit(\"_swiper\"),n.params.init&&n.init(),n}getDirectionLabel(e){return this.isHorizontal()?e:{width:\"height\",\"margin-top\":\"margin-left\",\"margin-bottom \":\"margin-right\",\"margin-left\":\"margin-top\",\"margin-right\":\"margin-bottom\",\"padding-left\":\"padding-top\",\"padding-right\":\"padding-bottom\",marginRight:\"marginBottom\"}[e]}getSlideIndex(e){let{slidesEl:t,params:i}=this,a=R(t,`.${i.slideClass}, swiper-slide`),r=U(a[0]);return U(e)-r}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find(t=>t.getAttribute(\"data-swiper-slide-index\")*1===e))}getSlideIndexWhenGrid(e){return this.grid&&this.params.grid&&this.params.grid.rows>1&&(this.params.grid.fill===\"column\"?e=Math.floor(e\/this.params.grid.rows):this.params.grid.fill===\"row\"&&(e=e%Math.ceil(this.slides.length\/this.params.grid.rows))),e}recalcSlides(){let e=this,{slidesEl:t,params:i}=e;e.slides=R(t,`.${i.slideClass}, swiper-slide`)}enable(){let e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit(\"enable\"))}disable(){let e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit(\"disable\"))}setProgress(e,t){let i=this;e=Math.min(Math.max(e,0),1);let a=i.minTranslate(),l=(i.maxTranslate()-a)*e+a;i.translateTo(l,typeof t==\"undefined\"?0:t),i.updateActiveIndex(),i.updateSlidesClasses()}emitContainerClasses(){let e=this;if(!e.params._emitClasses||!e.el)return;let t=e.el.className.split(\" \").filter(i=>i.indexOf(\"swiper\")===0||i.indexOf(e.params.containerModifierClass)===0);e.emit(\"_containerClasses\",t.join(\" \"))}getSlideClasses(e){let t=this;return t.destroyed?\"\":e.className.split(\" \").filter(i=>i.indexOf(\"swiper-slide\")===0||i.indexOf(t.params.slideClass)===0).join(\" \")}emitSlidesClasses(){let e=this;if(!e.params._emitClasses||!e.el)return;let t=[];e.slides.forEach(i=>{let a=e.getSlideClasses(i);t.push({slideEl:i,classNames:a}),e.emit(\"_slideClass\",i,a)}),e.emit(\"_slideClasses\",t)}slidesPerViewDynamic(e,t){e===void 0&&(e=\"current\"),t===void 0&&(t=!1);let i=this,{params:a,slides:r,slidesGrid:l,slidesSizesGrid:n,size:d,activeIndex:o}=i,u=1;if(typeof a.slidesPerView==\"number\")return a.slidesPerView;if(a.centeredSlides){let p=r[o]?Math.ceil(r[o].swiperSlideSize):0,g;for(let y=o+1;y<r.length;y+=1)r[y]&&!g&&(p+=Math.ceil(r[y].swiperSlideSize),u+=1,p>d&&(g=!0));for(let y=o-1;y>=0;y-=1)r[y]&&!g&&(p+=r[y].swiperSlideSize,u+=1,p>d&&(g=!0))}else if(e===\"current\")for(let p=o+1;p<r.length;p+=1)(t?l[p]+n[p]-l[o]<d:l[p]-l[o]<d)&&(u+=1);else for(let p=o-1;p>=0;p-=1)l[o]-l[p]<d&&(u+=1);return u}update(){let e=this;if(!e||e.destroyed)return;let{snapGrid:t,params:i}=e;i.breakpoints&&e.setBreakpoint(),[...e.el.querySelectorAll('[loading=\"lazy\"]')].forEach(l=>{l.complete&&fe(e,l)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function a(){let l=e.rtlTranslate?e.translate*-1:e.translate,n=Math.min(Math.max(l,e.maxTranslate()),e.minTranslate());e.setTranslate(n),e.updateActiveIndex(),e.updateSlidesClasses()}let r;if(i.freeMode&&i.freeMode.enabled&&!i.cssMode)a(),i.autoHeight&&e.updateAutoHeight();else{if((i.slidesPerView===\"auto\"||i.slidesPerView>1)&&e.isEnd&&!i.centeredSlides){let l=e.virtual&&i.virtual.enabled?e.virtual.slides:e.slides;r=e.slideTo(l.length-1,0,!1,!0)}else r=e.slideTo(e.activeIndex,0,!1,!0);r||a()}i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit(\"update\")}changeDirection(e,t){t===void 0&&(t=!0);let i=this,a=i.params.direction;return e||(e=a===\"horizontal\"?\"vertical\":\"horizontal\"),e===a||e!==\"horizontal\"&&e!==\"vertical\"||(i.el.classList.remove(`${i.params.containerModifierClass}${a}`),i.el.classList.add(`${i.params.containerModifierClass}${e}`),i.emitContainerClasses(),i.params.direction=e,i.slides.forEach(r=>{e===\"vertical\"?r.style.width=\"\":r.style.height=\"\"}),i.emit(\"changeDirection\"),t&&i.update()),i}changeLanguageDirection(e){let t=this;t.rtl&&e===\"rtl\"||!t.rtl&&e===\"ltr\"||(t.rtl=e===\"rtl\",t.rtlTranslate=t.params.direction===\"horizontal\"&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir=\"rtl\"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir=\"ltr\"),t.update())}mount(e){let t=this;if(t.mounted)return!0;let i=e||t.params.el;if(typeof i==\"string\"&&(i=document.querySelector(i)),!i)return!1;i.swiper=t,i.parentNode&&i.parentNode.host&&i.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);let a=()=>`.${(t.params.wrapperClass||\"\").trim().split(\" \").join(\".\")}`,l=i&&i.shadowRoot&&i.shadowRoot.querySelector?i.shadowRoot.querySelector(a()):R(i,a())[0];return!l&&t.params.createElements&&(l=V(\"div\",t.params.wrapperClass),i.append(l),R(i,`.${t.params.slideClass}`).forEach(n=>{l.append(n)})),Object.assign(t,{el:i,wrapperEl:l,slidesEl:t.isElement&&!i.parentNode.host.slideSlots?i.parentNode.host:l,hostEl:t.isElement?i.parentNode.host:i,mounted:!0,rtl:i.dir.toLowerCase()===\"rtl\"||W(i,\"direction\")===\"rtl\",rtlTranslate:t.params.direction===\"horizontal\"&&(i.dir.toLowerCase()===\"rtl\"||W(i,\"direction\")===\"rtl\"),wrongRTL:W(l,\"display\")===\"-webkit-box\"}),!0}init(e){let t=this;if(t.initialized||t.mount(e)===!1)return t;t.emit(\"beforeInit\"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(void 0,!0),t.attachEvents();let a=[...t.el.querySelectorAll('[loading=\"lazy\"]')];return t.isElement&&a.push(...t.hostEl.querySelectorAll('[loading=\"lazy\"]')),a.forEach(r=>{r.complete?fe(t,r):r.addEventListener(\"load\",l=>{fe(t,l.target)})}),Ee(t),t.initialized=!0,Ee(t),t.emit(\"init\"),t.emit(\"afterInit\"),t}destroy(e,t){e===void 0&&(e=!0),t===void 0&&(t=!0);let i=this,{params:a,el:r,wrapperEl:l,slides:n}=i;return typeof i.params==\"undefined\"||i.destroyed||(i.emit(\"beforeDestroy\"),i.initialized=!1,i.detachEvents(),a.loop&&i.loopDestroy(),t&&(i.removeClasses(),r&&typeof r!=\"string\"&&r.removeAttribute(\"style\"),l&&l.removeAttribute(\"style\"),n&&n.length&&n.forEach(d=>{d.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),d.removeAttribute(\"style\"),d.removeAttribute(\"data-swiper-slide-index\")})),i.emit(\"destroy\"),Object.keys(i.eventsListeners).forEach(d=>{i.off(d)}),e!==!1&&(i.el&&typeof i.el!=\"string\"&&(i.el.swiper=null),$e(i)),i.destroyed=!0),null}static extendDefaults(e){Y(xe,e)}static get extendedDefaults(){return xe}static get defaults(){return Ve}static installModule(e){s.prototype.__modules__||(s.prototype.__modules__=[]);let t=s.prototype.__modules__;typeof e==\"function\"&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach(t=>s.installModule(t)),s):(s.installModule(e),s)}};Object.keys(Se).forEach(s=>{Object.keys(Se[s]).forEach(e=>{_.prototype[e]=Se[s][e]})});_.use([dt,ct]);function ne(s,e,t,i){return s.params.createElements&&Object.keys(i).forEach(a=>{if(!t[a]&&t.auto===!0){let r=R(s.el,`.${i[a]}`)[0];r||(r=V(\"div\",i[a]),r.className=i[a],s.el.append(r)),t[a]=r,e[a]=r}}),t}function Te(s){let{swiper:e,extendParams:t,on:i,emit:a}=s;t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:\"swiper-button-disabled\",hiddenClass:\"swiper-button-hidden\",lockClass:\"swiper-button-lock\",navigationDisabledClass:\"swiper-navigation-disabled\"}}),e.navigation={nextEl:null,prevEl:null};function r(m){let h;return m&&typeof m==\"string\"&&e.isElement&&(h=e.el.querySelector(m)||e.hostEl.querySelector(m),h)?h:(m&&(typeof m==\"string\"&&(h=[...document.querySelectorAll(m)]),e.params.uniqueNavElements&&typeof m==\"string\"&&h&&h.length>1&&e.el.querySelectorAll(m).length===1?h=e.el.querySelector(m):h&&h.length===1&&(h=h[0])),m&&!h?m:h)}function l(m,h){let x=e.params.navigation;m=D(m),m.forEach(b=>{b&&(b.classList[h?\"add\":\"remove\"](...x.disabledClass.split(\" \")),b.tagName===\"BUTTON\"&&(b.disabled=h),e.params.watchOverflow&&e.enabled&&b.classList[e.isLocked?\"add\":\"remove\"](x.lockClass))})}function n(){let{nextEl:m,prevEl:h}=e.navigation;if(e.params.loop){l(h,!1),l(m,!1);return}l(h,e.isBeginning&&!e.params.rewind),l(m,e.isEnd&&!e.params.rewind)}function d(m){m.preventDefault(),!(e.isBeginning&&!e.params.loop&&!e.params.rewind)&&(e.slidePrev(),a(\"navigationPrev\"))}function o(m){m.preventDefault(),!(e.isEnd&&!e.params.loop&&!e.params.rewind)&&(e.slideNext(),a(\"navigationNext\"))}function u(){let m=e.params.navigation;if(e.params.navigation=ne(e,e.originalParams.navigation,e.params.navigation,{nextEl:\"swiper-button-next\",prevEl:\"swiper-button-prev\"}),!(m.nextEl||m.prevEl))return;let h=r(m.nextEl),x=r(m.prevEl);Object.assign(e.navigation,{nextEl:h,prevEl:x}),h=D(h),x=D(x);let b=(c,f)=>{c&&c.addEventListener(\"click\",f===\"next\"?o:d),!e.enabled&&c&&c.classList.add(...m.lockClass.split(\" \"))};h.forEach(c=>b(c,\"next\")),x.forEach(c=>b(c,\"prev\"))}function p(){let{nextEl:m,prevEl:h}=e.navigation;m=D(m),h=D(h);let x=(b,c)=>{b.removeEventListener(\"click\",c===\"next\"?o:d),b.classList.remove(...e.params.navigation.disabledClass.split(\" \"))};m.forEach(b=>x(b,\"next\")),h.forEach(b=>x(b,\"prev\"))}i(\"init\",()=>{e.params.navigation.enabled===!1?y():(u(),n())}),i(\"toEdge fromEdge lock unlock\",()=>{n()}),i(\"destroy\",()=>{p()}),i(\"enable disable\",()=>{let{nextEl:m,prevEl:h}=e.navigation;if(m=D(m),h=D(h),e.enabled){n();return}[...m,...h].filter(x=>!!x).forEach(x=>x.classList.add(e.params.navigation.lockClass))}),i(\"click\",(m,h)=>{let{nextEl:x,prevEl:b}=e.navigation;x=D(x),b=D(b);let c=h.target,f=b.includes(c)||x.includes(c);if(e.isElement&&!f){let v=h.path||h.composedPath&&h.composedPath();v&&(f=v.find(S=>x.includes(S)||b.includes(S)))}if(e.params.navigation.hideOnClick&&!f){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===c||e.pagination.el.contains(c)))return;let v;x.length?v=x[0].classList.contains(e.params.navigation.hiddenClass):b.length&&(v=b[0].classList.contains(e.params.navigation.hiddenClass)),a(v===!0?\"navigationShow\":\"navigationHide\"),[...x,...b].filter(S=>!!S).forEach(S=>S.classList.toggle(e.params.navigation.hiddenClass))}});let g=()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(\" \")),u(),n()},y=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(\" \")),p()};Object.assign(e.navigation,{enable:g,disable:y,update:n,init:u,destroy:p})}function N(s){return s===void 0&&(s=\"\"),`.${s.trim().replace(\/([\\.:!+\\\/()[\\]])\/g,\"\\\\$1\").replace(\/ \/g,\".\")}`}function Me(s){let{swiper:e,extendParams:t,on:i,emit:a}=s,r=\"swiper-pagination\";t({pagination:{el:null,bulletElement:\"span\",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:\"bullets\",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:c=>c,formatFractionTotal:c=>c,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),e.pagination={el:null,bullets:[]};let l,n=0;function d(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function o(c,f){let{bulletActiveClass:v}=e.params.pagination;c&&(c=c[`${f===\"prev\"?\"previous\":\"next\"}ElementSibling`],c&&(c.classList.add(`${v}-${f}`),c=c[`${f===\"prev\"?\"previous\":\"next\"}ElementSibling`],c&&c.classList.add(`${v}-${f}-${f}`)))}function u(c,f,v){if(c=c%v,f=f%v,f===c+1)return\"next\";if(f===c-1)return\"previous\"}function p(c){let f=c.target.closest(N(e.params.pagination.bulletClass));if(!f)return;c.preventDefault();let v=U(f)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===v)return;let S=u(e.realIndex,v,e.slides.length);S===\"next\"?e.slideNext():S===\"previous\"?e.slidePrev():e.slideToLoop(v)}else e.slideTo(v)}function g(){let c=e.rtl,f=e.params.pagination;if(d())return;let v=e.pagination.el;v=D(v);let S,C,I=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,P=e.params.loop?Math.ceil(I\/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(C=e.previousRealIndex||0,S=e.params.slidesPerGroup>1?Math.floor(e.realIndex\/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex!=\"undefined\"?(S=e.snapIndex,C=e.previousSnapIndex):(C=e.previousIndex||0,S=e.activeIndex||0),f.type===\"bullets\"&&e.pagination.bullets&&e.pagination.bullets.length>0){let L=e.pagination.bullets,T,M,A;if(f.dynamicBullets&&(l=ae(L[0],e.isHorizontal()?\"width\":\"height\",!0),v.forEach(O=>{O.style[e.isHorizontal()?\"width\":\"height\"]=`${l*(f.dynamicMainBullets+4)}px`}),f.dynamicMainBullets>1&&C!==void 0&&(n+=S-(C||0),n>f.dynamicMainBullets-1?n=f.dynamicMainBullets-1:n<0&&(n=0)),T=Math.max(S-n,0),M=T+(Math.min(L.length,f.dynamicMainBullets)-1),A=(M+T)\/2),L.forEach(O=>{let k=[...[\"\",\"-next\",\"-next-next\",\"-prev\",\"-prev-prev\",\"-main\"].map(G=>`${f.bulletActiveClass}${G}`)].map(G=>typeof G==\"string\"&&G.includes(\" \")?G.split(\" \"):G).flat();O.classList.remove(...k)}),v.length>1)L.forEach(O=>{let k=U(O);k===S?O.classList.add(...f.bulletActiveClass.split(\" \")):e.isElement&&O.setAttribute(\"part\",\"bullet\"),f.dynamicBullets&&(k>=T&&k<=M&&O.classList.add(...`${f.bulletActiveClass}-main`.split(\" \")),k===T&&o(O,\"prev\"),k===M&&o(O,\"next\"))});else{let O=L[S];if(O&&O.classList.add(...f.bulletActiveClass.split(\" \")),e.isElement&&L.forEach((k,G)=>{k.setAttribute(\"part\",G===S?\"bullet-active\":\"bullet\")}),f.dynamicBullets){let k=L[T],G=L[M];for(let z=T;z<=M;z+=1)L[z]&&L[z].classList.add(...`${f.bulletActiveClass}-main`.split(\" \"));o(k,\"prev\"),o(G,\"next\")}}if(f.dynamicBullets){let O=Math.min(L.length,f.dynamicMainBullets+4),k=(l*O-l)\/2-A*l,G=c?\"right\":\"left\";L.forEach(z=>{z.style[e.isHorizontal()?G:\"top\"]=`${k}px`})}}v.forEach((L,T)=>{if(f.type===\"fraction\"&&(L.querySelectorAll(N(f.currentClass)).forEach(M=>{M.textContent=f.formatFractionCurrent(S+1)}),L.querySelectorAll(N(f.totalClass)).forEach(M=>{M.textContent=f.formatFractionTotal(P)})),f.type===\"progressbar\"){let M;f.progressbarOpposite?M=e.isHorizontal()?\"vertical\":\"horizontal\":M=e.isHorizontal()?\"horizontal\":\"vertical\";let A=(S+1)\/P,O=1,k=1;M===\"horizontal\"?O=A:k=A,L.querySelectorAll(N(f.progressbarFillClass)).forEach(G=>{G.style.transform=`translate3d(0,0,0) scaleX(${O}) scaleY(${k})`,G.style.transitionDuration=`${e.params.speed}ms`})}f.type===\"custom\"&&f.renderCustom?(Z(L,f.renderCustom(e,S+1,P)),T===0&&a(\"paginationRender\",L)):(T===0&&a(\"paginationRender\",L),a(\"paginationUpdate\",L)),e.params.watchOverflow&&e.enabled&&L.classList[e.isLocked?\"add\":\"remove\"](f.lockClass)})}function y(){let c=e.params.pagination;if(d())return;let f=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length\/Math.ceil(e.params.grid.rows):e.slides.length,v=e.pagination.el;v=D(v);let S=\"\";if(c.type===\"bullets\"){let C=e.params.loop?Math.ceil(f\/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&C>f&&(C=f);for(let I=0;I<C;I+=1)c.renderBullet?S+=c.renderBullet.call(e,I,c.bulletClass):S+=`<${c.bulletElement} ${e.isElement?'part=\"bullet\"':\"\"} class=\"${c.bulletClass}\"><\/${c.bulletElement}>`}c.type===\"fraction\"&&(c.renderFraction?S=c.renderFraction.call(e,c.currentClass,c.totalClass):S=`<span class=\"${c.currentClass}\"><\/span> \/ <span class=\"${c.totalClass}\"><\/span>`),c.type===\"progressbar\"&&(c.renderProgressbar?S=c.renderProgressbar.call(e,c.progressbarFillClass):S=`<span class=\"${c.progressbarFillClass}\"><\/span>`),e.pagination.bullets=[],v.forEach(C=>{c.type!==\"custom\"&&Z(C,S||\"\"),c.type===\"bullets\"&&e.pagination.bullets.push(...C.querySelectorAll(N(c.bulletClass)))}),c.type!==\"custom\"&&a(\"paginationRender\",v[0])}function m(){e.params.pagination=ne(e,e.originalParams.pagination,e.params.pagination,{el:\"swiper-pagination\"});let c=e.params.pagination;if(!c.el)return;let f;typeof c.el==\"string\"&&e.isElement&&(f=e.el.querySelector(c.el)),!f&&typeof c.el==\"string\"&&(f=[...document.querySelectorAll(c.el)]),f||(f=c.el),!(!f||f.length===0)&&(e.params.uniqueNavElements&&typeof c.el==\"string\"&&Array.isArray(f)&&f.length>1&&(f=[...e.el.querySelectorAll(c.el)],f.length>1&&(f=f.find(v=>te(v,\".swiper\")[0]===e.el))),Array.isArray(f)&&f.length===1&&(f=f[0]),Object.assign(e.pagination,{el:f}),f=D(f),f.forEach(v=>{c.type===\"bullets\"&&c.clickable&&v.classList.add(...(c.clickableClass||\"\").split(\" \")),v.classList.add(c.modifierClass+c.type),v.classList.add(e.isHorizontal()?c.horizontalClass:c.verticalClass),c.type===\"bullets\"&&c.dynamicBullets&&(v.classList.add(`${c.modifierClass}${c.type}-dynamic`),n=0,c.dynamicMainBullets<1&&(c.dynamicMainBullets=1)),c.type===\"progressbar\"&&c.progressbarOpposite&&v.classList.add(c.progressbarOppositeClass),c.clickable&&v.addEventListener(\"click\",p),e.enabled||v.classList.add(c.lockClass)}))}function h(){let c=e.params.pagination;if(d())return;let f=e.pagination.el;f&&(f=D(f),f.forEach(v=>{v.classList.remove(c.hiddenClass),v.classList.remove(c.modifierClass+c.type),v.classList.remove(e.isHorizontal()?c.horizontalClass:c.verticalClass),c.clickable&&(v.classList.remove(...(c.clickableClass||\"\").split(\" \")),v.removeEventListener(\"click\",p))})),e.pagination.bullets&&e.pagination.bullets.forEach(v=>v.classList.remove(...c.bulletActiveClass.split(\" \")))}i(\"changeDirection\",()=>{if(!e.pagination||!e.pagination.el)return;let c=e.params.pagination,{el:f}=e.pagination;f=D(f),f.forEach(v=>{v.classList.remove(c.horizontalClass,c.verticalClass),v.classList.add(e.isHorizontal()?c.horizontalClass:c.verticalClass)})}),i(\"init\",()=>{e.params.pagination.enabled===!1?b():(m(),y(),g())}),i(\"activeIndexChange\",()=>{typeof e.snapIndex==\"undefined\"&&g()}),i(\"snapIndexChange\",()=>{g()}),i(\"snapGridLengthChange\",()=>{y(),g()}),i(\"destroy\",()=>{h()}),i(\"enable disable\",()=>{let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList[e.enabled?\"remove\":\"add\"](e.params.pagination.lockClass)))}),i(\"lock unlock\",()=>{g()}),i(\"click\",(c,f)=>{let v=f.target,S=D(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&S&&S.length>0&&!v.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&v===e.navigation.nextEl||e.navigation.prevEl&&v===e.navigation.prevEl))return;let C=S[0].classList.contains(e.params.pagination.hiddenClass);a(C===!0?\"paginationShow\":\"paginationHide\"),S.forEach(I=>I.classList.toggle(e.params.pagination.hiddenClass))}});let x=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList.remove(e.params.pagination.paginationDisabledClass))),m(),y(),g()},b=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList.add(e.params.pagination.paginationDisabledClass))),h()};Object.assign(e.pagination,{enable:x,disable:b,render:y,update:g,init:m,destroy:h})}function Ce(s){let{swiper:e,extendParams:t,on:i}=s;t({a11y:{enabled:!0,notificationClass:\"swiper-notification\",prevSlideMessage:\"Previous slide\",nextSlideMessage:\"Next slide\",firstSlideMessage:\"This is the first slide\",lastSlideMessage:\"This is the last slide\",paginationBulletMessage:\"Go to slide {{index}}\",slideLabelMessage:\"{{index}} \/ {{slidesLength}}\",containerMessage:null,containerRoleDescriptionMessage:null,containerRole:null,itemRoleDescriptionMessage:null,slideRole:\"group\",id:null,scrollOnFocus:!0}}),e.a11y={clicked:!1};let a=null,r,l,n=new Date().getTime();function d(w){let E=a;E.length!==0&&Z(E,w)}function o(w){w===void 0&&(w=16);let E=()=>Math.round(16*Math.random()).toString(16);return\"x\".repeat(w).replace(\/x\/g,E)}function u(w){w=D(w),w.forEach(E=>{E.setAttribute(\"tabIndex\",\"0\")})}function p(w){w=D(w),w.forEach(E=>{E.setAttribute(\"tabIndex\",\"-1\")})}function g(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"role\",E)})}function y(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-roledescription\",E)})}function m(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-controls\",E)})}function h(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-label\",E)})}function x(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"id\",E)})}function b(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-live\",E)})}function c(w){w=D(w),w.forEach(E=>{E.setAttribute(\"aria-disabled\",!0)})}function f(w){w=D(w),w.forEach(E=>{E.setAttribute(\"aria-disabled\",!1)})}function v(w){if(w.keyCode!==13&&w.keyCode!==32)return;let E=e.params.a11y,$=w.target;if(!(e.pagination&&e.pagination.el&&($===e.pagination.el||e.pagination.el.contains(w.target))&&!w.target.matches(N(e.params.pagination.bulletClass)))){if(e.navigation&&e.navigation.prevEl&&e.navigation.nextEl){let X=D(e.navigation.prevEl);D(e.navigation.nextEl).includes($)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?d(E.lastSlideMessage):d(E.nextSlideMessage)),X.includes($)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?d(E.firstSlideMessage):d(E.prevSlideMessage))}e.pagination&&$.matches(N(e.params.pagination.bulletClass))&&$.click()}}function S(){if(e.params.loop||e.params.rewind||!e.navigation)return;let{nextEl:w,prevEl:E}=e.navigation;E&&(e.isBeginning?(c(E),p(E)):(f(E),u(E))),w&&(e.isEnd?(c(w),p(w)):(f(w),u(w)))}function C(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function I(){return C()&&e.params.pagination.clickable}function P(){let w=e.params.a11y;C()&&e.pagination.bullets.forEach(E=>{e.params.pagination.clickable&&(u(E),e.params.pagination.renderBullet||(g(E,\"button\"),h(E,w.paginationBulletMessage.replace(\/\\{\\{index\\}\\}\/,U(E)+1)))),E.matches(N(e.params.pagination.bulletActiveClass))?E.setAttribute(\"aria-current\",\"true\"):E.removeAttribute(\"aria-current\")})}let L=(w,E,$)=>{u(w),w.tagName!==\"BUTTON\"&&(g(w,\"button\"),w.addEventListener(\"keydown\",v)),h(w,$),m(w,E)},T=w=>{l&&l!==w.target&&!l.contains(w.target)&&(r=!0),e.a11y.clicked=!0},M=()=>{r=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},A=w=>{n=new Date().getTime()},O=w=>{if(e.a11y.clicked||!e.params.a11y.scrollOnFocus||new Date().getTime()-n<100)return;let E=w.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!E||!e.slides.includes(E))return;l=E;let $=e.slides.indexOf(E)===e.activeIndex,X=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(E);$||X||w.sourceCapabilities&&w.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,requestAnimationFrame(()=>{r||(e.params.loop?e.slideToLoop(e.getSlideIndexWhenGrid(parseInt(E.getAttribute(\"data-swiper-slide-index\"))),0):e.slideTo(e.getSlideIndexWhenGrid(e.slides.indexOf(E)),0),r=!1)}))},k=()=>{let w=e.params.a11y;w.itemRoleDescriptionMessage&&y(e.slides,w.itemRoleDescriptionMessage),w.slideRole&&g(e.slides,w.slideRole);let E=e.slides.length;w.slideLabelMessage&&e.slides.forEach(($,X)=>{let q=e.params.loop?parseInt($.getAttribute(\"data-swiper-slide-index\"),10):X,j=w.slideLabelMessage.replace(\/\\{\\{index\\}\\}\/,q+1).replace(\/\\{\\{slidesLength\\}\\}\/,E);h($,j)})},G=()=>{let w=e.params.a11y;e.el.append(a);let E=e.el;w.containerRoleDescriptionMessage&&y(E,w.containerRoleDescriptionMessage),w.containerMessage&&h(E,w.containerMessage),w.containerRole&&g(E,w.containerRole);let $=e.wrapperEl,X=w.id||$.getAttribute(\"id\")||`swiper-wrapper-${o(16)}`,q=e.params.autoplay&&e.params.autoplay.enabled?\"off\":\"polite\";x($,X),b($,q),k();let{nextEl:j,prevEl:oe}=e.navigation?e.navigation:{};j=D(j),oe=D(oe),j&&j.forEach(de=>L(de,X,w.nextSlideMessage)),oe&&oe.forEach(de=>L(de,X,w.prevSlideMessage)),I()&&D(e.pagination.el).forEach(Ue=>{Ue.addEventListener(\"keydown\",v)}),B().addEventListener(\"visibilitychange\",A),e.el.addEventListener(\"focus\",O,!0),e.el.addEventListener(\"focus\",O,!0),e.el.addEventListener(\"pointerdown\",T,!0),e.el.addEventListener(\"pointerup\",M,!0)};function z(){a&&a.remove();let{nextEl:w,prevEl:E}=e.navigation?e.navigation:{};w=D(w),E=D(E),w&&w.forEach(X=>X.removeEventListener(\"keydown\",v)),E&&E.forEach(X=>X.removeEventListener(\"keydown\",v)),I()&&D(e.pagination.el).forEach(q=>{q.removeEventListener(\"keydown\",v)}),B().removeEventListener(\"visibilitychange\",A),e.el&&typeof e.el!=\"string\"&&(e.el.removeEventListener(\"focus\",O,!0),e.el.removeEventListener(\"pointerdown\",T,!0),e.el.removeEventListener(\"pointerup\",M,!0))}i(\"beforeInit\",()=>{a=V(\"span\",e.params.a11y.notificationClass),a.setAttribute(\"aria-live\",\"assertive\"),a.setAttribute(\"aria-atomic\",\"true\")}),i(\"afterInit\",()=>{e.params.a11y.enabled&&G()}),i(\"slidesLengthChange snapGridLengthChange slidesGridLengthChange\",()=>{e.params.a11y.enabled&&k()}),i(\"fromEdge toEdge afterInit lock unlock\",()=>{e.params.a11y.enabled&&S()}),i(\"paginationUpdate\",()=>{e.params.a11y.enabled&&P()}),i(\"destroy\",()=>{e.params.a11y.enabled&&z()})}function Pe(s){let{swiper:e,extendParams:t,on:i}=s;t({grid:{rows:1,fill:\"column\"}});let a,r,l,n,d=()=>{let h=e.params.spaceBetween;return typeof h==\"string\"&&h.indexOf(\"%\")>=0?h=parseFloat(h.replace(\"%\",\"\"))\/100*e.size:typeof h==\"string\"&&(h=parseFloat(h)),h},o=h=>{let{slidesPerView:x}=e.params,{rows:b,fill:c}=e.params.grid,f=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:h.length;l=Math.floor(f\/b),Math.floor(f\/b)===f\/b?a=f:a=Math.ceil(f\/b)*b,x!==\"auto\"&&c===\"row\"&&(a=Math.max(a,x*b)),r=a\/b},u=()=>{e.slides&&e.slides.forEach(h=>{h.swiperSlideGridSet&&(h.style.height=\"\",h.style[e.getDirectionLabel(\"margin-top\")]=\"\")})},p=(h,x,b)=>{let{slidesPerGroup:c}=e.params,f=d(),{rows:v,fill:S}=e.params.grid,C=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:b.length,I,P,L;if(S===\"row\"&&c>1){let T=Math.floor(h\/(c*v)),M=h-v*c*T,A=T===0?c:Math.min(Math.ceil((C-T*v*c)\/v),c);L=Math.floor(M\/A),P=M-L*A+T*c,I=P+L*a\/v,x.style.order=I}else S===\"column\"?(P=Math.floor(h\/v),L=h-P*v,(P>l||P===l&&L===v-1)&&(L+=1,L>=v&&(L=0,P+=1))):(L=Math.floor(h\/r),P=h-L*r);x.row=L,x.column=P,x.style.height=`calc((100% - ${(v-1)*f}px) \/ ${v})`,x.style[e.getDirectionLabel(\"margin-top\")]=L!==0?f&&`${f}px`:\"\",x.swiperSlideGridSet=!0},g=(h,x)=>{let{centeredSlides:b,roundLengths:c}=e.params,f=d(),{rows:v}=e.params.grid;if(e.virtualSize=(h+f)*a,e.virtualSize=Math.ceil(e.virtualSize\/v)-f,e.params.cssMode||(e.wrapperEl.style[e.getDirectionLabel(\"width\")]=`${e.virtualSize+f}px`),b){let S=[];for(let C=0;C<x.length;C+=1){let I=x[C];c&&(I=Math.floor(I)),x[C]<e.virtualSize+x[0]&&S.push(I)}x.splice(0,x.length),x.push(...S)}},y=()=>{n=e.params.grid&&e.params.grid.rows>1},m=()=>{let{params:h,el:x}=e,b=h.grid&&h.grid.rows>1;n&&!b?(x.classList.remove(`${h.containerModifierClass}grid`,`${h.containerModifierClass}grid-column`),l=1,e.emitContainerClasses()):!n&&b&&(x.classList.add(`${h.containerModifierClass}grid`),h.grid.fill===\"column\"&&x.classList.add(`${h.containerModifierClass}grid-column`),e.emitContainerClasses()),n=b};i(\"init\",y),i(\"update\",m),e.grid={initSlides:o,unsetSlides:u,updateSlide:p,updateWrapperSize:g}}function Q(s){let{effect:e,swiper:t,on:i,setTranslate:a,setTransition:r,overwriteParams:l,perspective:n,recreateShadows:d,getEffectParams:o}=s;i(\"beforeInit\",()=>{if(t.params.effect!==e)return;t.classNames.push(`${t.params.containerModifierClass}${e}`),n&&n()&&t.classNames.push(`${t.params.containerModifierClass}3d`);let p=l?l():{};Object.assign(t.params,p),Object.assign(t.originalParams,p)}),i(\"setTranslate _virtualUpdated\",()=>{t.params.effect===e&&a()}),i(\"setTransition\",(p,g)=>{t.params.effect===e&&r(g)}),i(\"transitionEnd\",()=>{if(t.params.effect===e&&d){if(!o||!o().slideShadows)return;t.slides.forEach(p=>{p.querySelectorAll(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").forEach(g=>g.remove())}),d()}});let u;i(\"virtualUpdate\",()=>{t.params.effect===e&&(t.slides.length||(u=!0),requestAnimationFrame(()=>{u&&t.slides&&t.slides.length&&(a(),u=!1)}))})}function se(s,e){let t=F(e);return t!==e&&(t.style.backfaceVisibility=\"hidden\",t.style[\"-webkit-backface-visibility\"]=\"hidden\"),t}function le(s){let{swiper:e,duration:t,transformElements:i,allSlides:a}=s,{activeIndex:r}=e,l=n=>n.parentElement?n.parentElement:e.slides.find(o=>o.shadowRoot&&o.shadowRoot===n.parentNode);if(e.params.virtualTranslate&&t!==0){let n=!1,d;a?d=i:d=i.filter(o=>{let u=o.classList.contains(\"swiper-slide-transform\")?l(o):o;return e.getSlideIndex(u)===r}),d.forEach(o=>{ce(o,()=>{if(n||!e||e.destroyed)return;n=!0,e.animating=!1;let u=new window.CustomEvent(\"transitionend\",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(u)})})}}function Le(s){let{swiper:e,extendParams:t,on:i}=s;t({fadeEffect:{crossFade:!1}}),Q({effect:\"fade\",swiper:e,on:i,setTranslate:()=>{let{slides:l}=e,n=e.params.fadeEffect;for(let d=0;d<l.length;d+=1){let o=e.slides[d],p=-o.swiperSlideOffset;e.params.virtualTranslate||(p-=e.translate);let g=0;e.isHorizontal()||(g=p,p=0);let y=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(o.progress),0):1+Math.min(Math.max(o.progress,-1),0),m=se(n,o);m.style.opacity=y,m.style.transform=`translate3d(${p}px, ${g}px, 0px)`}},setTransition:l=>{let n=e.slides.map(d=>F(d));n.forEach(d=>{d.style.transitionDuration=`${l}ms`}),le({swiper:e,duration:l,transformElements:n,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}_.use([Te,Me,Ce,Le,Pe]);var hs=_;return tt(gs);})();\nvar Swiper=typeof SwiperModule!=\"undefined\"&&(SwiperModule.default||SwiperModule);\n(function initLazyInit() {\n var DEFAULT_ROOT_MARGIN = '200px 0px';\n function parseRootMarginBottom(rootMargin) {\n var parts = String(rootMargin || DEFAULT_ROOT_MARGIN).trim().split(\/\\s+\/);\n var bottom = parts[2] || parts[0] || '0px';\n var value = parseFloat(bottom);\n if (Number.isNaN(value)) return 0;\n return bottom.indexOf('vh') !== -1 ? (window.innerHeight * value) \/ 100 : value;\n }\n function isInViewport(el, rootMargin) {\n if (!el || !el.getBoundingClientRect) return false;\n var rect = el.getBoundingClientRect();\n var margin = parseRootMarginBottom(rootMargin);\n return rect.top < window.innerHeight + margin && rect.bottom > 0;\n }\n function whenVisible(element, callback, options) {\n options = options || {};\n var rootMargin = options.rootMargin || DEFAULT_ROOT_MARGIN;\n var once = options.once !== false;\n if (!element || typeof callback !== 'function') {\n return function () {};\n }\n if (isInViewport(element, rootMargin)) {\n callback();\n return function () {};\n }\n if (!('IntersectionObserver' in window)) {\n callback();\n return function () {};\n }\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) return;\n callback();\n if (once) observer.unobserve(entry.target);\n });\n }, {\n root: options.root || null,\n rootMargin: rootMargin,\n threshold: options.threshold != null ? options.threshold : 0,\n });\n observer.observe(element);\n return function () {\n observer.unobserve(element);\n };\n }\n window.LazyInit = {\n whenVisible: whenVisible,\n isInViewport: isInViewport,\n };\n})();\nwindow.__LOADED_SECTIONS = window.__LOADED_SECTIONS || [];\n(function initAccessibleWysiwygTables() {\n var tableCounter = 0;\n var resizeObserver = typeof ResizeObserver === 'function'\n ? new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n syncScrollableRegion(entry.target);\n });\n })\n : null;\n function tableLabel(table) {\n var caption = table.querySelector('caption');\n if (caption && caption.textContent.trim()) return caption.textContent.trim();\n var owner = table.closest('article, section');\n var heading = owner ? owner.querySelector('h1, h2, h3, h4, h5, h6') : null;\n if (heading && heading.textContent.trim()) return heading.textContent.trim();\n tableCounter += 1;\n return tableCounter === 1 ? 'Таблица данных' : 'Таблица данных ' + tableCounter;\n }\n function syncScrollableRegion(wrapper) {\n var isScrollable = wrapper.scrollWidth > wrapper.clientWidth + 1;\n if (isScrollable) {\n wrapper.tabIndex = 0;\n wrapper.setAttribute('role', 'region');\n wrapper.setAttribute('aria-label', wrapper.dataset.tableLabel);\n return;\n }\n wrapper.removeAttribute('tabindex');\n wrapper.removeAttribute('role');\n wrapper.removeAttribute('aria-label');\n }\n function normalizeTableStructure(table) {\n Array.prototype.forEach.call(table.tBodies, function (tbody) {\n if (!tbody.querySelector('th, td') && !tbody.textContent.trim()) tbody.remove();\n });\n var head = table.tHead;\n if (head) {\n Array.prototype.forEach.call(head.querySelectorAll('th:not([scope])'), function (cell) {\n cell.setAttribute('scope', 'col');\n });\n var reference = Array.prototype.find.call(table.children, function (child) {\n return child.tagName !== 'CAPTION' && child.tagName !== 'COLGROUP';\n });\n if (reference && reference !== head) table.insertBefore(head, reference);\n }\n Array.prototype.forEach.call(table.querySelectorAll('tbody th:not([scope])'), function (cell) {\n cell.setAttribute('scope', 'row');\n });\n }\n function enhanceTable(table) {\n if (!table || table.dataset.accessibleTableReady === 'true') return;\n table.dataset.accessibleTableReady = 'true';\n normalizeTableStructure(table);\n var wrapper = document.createElement('div');\n wrapper.className = 'wysiwyg-table-scroll';\n wrapper.dataset.tableLabel = 'Прокручиваемая таблица: ' + tableLabel(table);\n table.parentNode.insertBefore(wrapper, table);\n wrapper.appendChild(table);\n syncScrollableRegion(wrapper);\n if (resizeObserver) resizeObserver.observe(wrapper);\n }\n function enhanceTables(root) {\n if (!root) return;\n if (root.nodeType === 1 && root.matches && root.matches('.wysiwyg table')) enhanceTable(root);\n if (root.querySelectorAll) root.querySelectorAll('.wysiwyg table').forEach(enhanceTable);\n }\n enhanceTables(document);\n if ('MutationObserver' in window && document.body) {\n new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(enhanceTables);\n });\n }).observe(document.body, { childList: true, subtree: true });\n }\n})();\n(function initPopups() {\n var POPUP_CLOSE_MS = 340;\n var activePopup = null; \/\/ текущий .popup[data-popup]\n var lastFocus = null; \/\/ элемент, на который вернуть фокус при закрытии\n var loadingTriggerBtn = null; \/\/ кнопка, открывшая remote-форму\n var LOADING_POPUP_NAME = '__loading';\n var scrollLocked = false;\n var closeTimer = null; \/\/ fallback, если transitionend не сработал\n var hasStableGutter = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('scrollbar-gutter', 'stable');\n var supportsInert = typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\n var FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',');\n function isFocusableElement(el) {\n if (!el || el.disabled || el.getAttribute('aria-hidden') === 'true') return false;\n if (!el.matches(FOCUSABLE_SELECTOR)) return false;\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n }\n function getDialogFocusableElements(dialog) {\n if (!dialog) return [];\n return Array.prototype.filter.call(\n dialog.querySelectorAll(FOCUSABLE_SELECTOR),\n isFocusableElement\n );\n }\n function getInitialFocusTarget(popup) {\n var okBtn = popup.querySelector('.popup-form-result__ok');\n if (okBtn) return okBtn;\n var form = popup.querySelector('form[data-popup-form], form.popup-form');\n if (form) {\n var field = form.querySelector(\n 'input:not([type=\"hidden\"]):not([disabled]), select:not([disabled]), textarea:not([disabled])'\n );\n if (field) return field;\n }\n return popup.querySelector('.popup__close');\n }\n function setPageInert(inert) {\n if (!supportsInert) return;\n var popupsRoot = document.querySelector('.popups, [data-popups-root]');\n Array.prototype.forEach.call(document.body.children, function (child) {\n if (popupsRoot && child === popupsRoot) return;\n child.inert = inert;\n });\n }\n function handlePopupKeydown(event) {\n if (!activePopup) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n closePopup();\n return;\n }\n if (event.key !== 'Tab') return;\n var dialog = activePopup.querySelector('.popup__dialog');\n if (!dialog) return;\n var focusable = getDialogFocusableElements(dialog);\n if (!focusable.length) {\n event.preventDefault();\n restoreFocus(dialog);\n return;\n }\n var first = focusable[0];\n var last = focusable[focusable.length - 1];\n var active = document.activeElement;\n if (event.shiftKey) {\n if (active === first || !dialog.contains(active)) {\n event.preventDefault();\n restoreFocus(last);\n }\n return;\n }\n if (active === last || !dialog.contains(active)) {\n event.preventDefault();\n restoreFocus(first);\n }\n }\n function getScrollbarWidth() {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n function lockScroll() {\n if (scrollLocked) return;\n scrollLocked = true;\n if (!hasStableGutter) {\n var sbw = getScrollbarWidth();\n if (sbw > 0) {\n document.documentElement.style.setProperty('--popup-scrollbar-width', sbw + 'px');\n document.documentElement.style.paddingRight = 'var(--popup-scrollbar-width)';\n }\n }\n document.documentElement.classList.add('is-popup-open');\n setPageInert(true);\n }\n function unlockScroll() {\n if (!scrollLocked) return;\n document.documentElement.classList.remove('is-popup-open');\n if (!hasStableGutter) {\n document.documentElement.style.paddingRight = '';\n document.documentElement.style.removeProperty('--popup-scrollbar-width');\n }\n scrollLocked = false;\n setPageInert(false);\n }\n function restoreFocus(target) {\n if (target && typeof target.focus === 'function') {\n target.focus({ preventScroll: true });\n }\n }\n function clearCloseTimer() {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n }\n function findPopup(name) {\n return document.querySelector('.popup[data-popup=\"' + name + '\"]');\n }\n function getFormsFragmentUrl(customUrl) {\n if (customUrl) return customUrl;\n var url = new URL(window.location.href);\n url.searchParams.set('form', '1');\n return url.toString();\n }\n function ensurePopupsRoot() {\n var root = document.querySelector('.popups');\n if (!root) {\n root = document.createElement('div');\n root.className = 'popups';\n root.setAttribute('aria-live', 'polite');\n root.setAttribute('data-popups-root', '');\n document.body.appendChild(root);\n }\n return root;\n }\n function mountPopupNode(popupNode) {\n var name = popupNode.getAttribute('data-popup');\n var root = ensurePopupsRoot();\n var existing = root.querySelector('.popup[data-popup=\"' + name + '\"]');\n if (existing) {\n existing.replaceWith(popupNode);\n } else {\n root.appendChild(popupNode);\n }\n if (window.FormUi) window.FormUi.init(popupNode);\n return popupNode;\n }\n function clearPopupLoadingTrigger() {\n if (!loadingTriggerBtn) return;\n loadingTriggerBtn.removeAttribute('aria-busy');\n delete loadingTriggerBtn.dataset.popupLoading;\n loadingTriggerBtn = null;\n }\n function ensureLoadingPopup() {\n var root = ensurePopupsRoot();\n var popup = root.querySelector('.popup[data-popup=\"' + LOADING_POPUP_NAME + '\"]');\n if (popup) return popup;\n popup = document.createElement('div');\n popup.className = 'popup popup--form-loading';\n popup.setAttribute('data-popup', LOADING_POPUP_NAME);\n popup.setAttribute('role', 'presentation');\n popup.setAttribute('aria-busy', 'true');\n popup.hidden = true;\n popup.innerHTML =\n '<div class=\"popup-form-loading\" data-popup-close role=\"status\" aria-live=\"polite\" aria-label=\"Загрузка формы\">' +\n '<span class=\"ui-preloader\" aria-hidden=\"true\"><\/span>' +\n '<\/div>';\n root.appendChild(popup);\n return popup;\n }\n function openPopupLoading(triggerBtn) {\n closePopup(true);\n var popup = ensureLoadingPopup();\n if (triggerBtn) {\n loadingTriggerBtn = triggerBtn;\n triggerBtn.setAttribute('aria-busy', 'true');\n triggerBtn.dataset.popupLoading = '1';\n }\n lockScroll();\n lastFocus = document.activeElement;\n popup.hidden = false;\n activePopup = popup;\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n if (activePopup !== popup) return;\n popup.classList.add('is-open');\n });\n });\n }\n function closePopupLoading() {\n var popup = document.querySelector('.popup[data-popup=\"' + LOADING_POPUP_NAME + '\"]');\n clearPopupLoadingTrigger();\n if (!popup || popup.hidden) return;\n if (activePopup === popup) {\n activePopup = null;\n lastFocus = null;\n }\n popup.classList.remove('is-open');\n popup.hidden = true;\n popup.removeAttribute('aria-busy');\n unlockScroll();\n }\n function fetchAndMountPopup(name, url, options) {\n options = options || {};\n return fetch(url, {\n credentials: 'same-origin',\n headers: { Accept: 'text\/html' },\n signal: options.signal,\n })\n .then(function (res) {\n if (!res.ok) throw new Error('HTTP ' + res.status);\n return res.text();\n })\n .then(function (html) {\n var doc = new DOMParser().parseFromString(html, 'text\/html');\n var popup = doc.querySelector('.popup[data-popup=\"' + name + '\"]');\n if (!popup) throw new Error('popup \"' + name + '\" not found in fragment');\n return mountPopupNode(document.importNode(popup, true));\n });\n }\n function renderMedia(slot, options) {\n slot.innerHTML = '';\n var src = options.src || '';\n var kind = options.kind || 'image';\n if (!src) return;\n if (kind === 'video') {\n if (\/youtube\\.com|youtu\\.be|vimeo\\.com\/.test(src)) {\n var iframe = document.createElement('iframe');\n iframe.src = src;\n iframe.title = options.title || 'Видео';\n iframe.allow = 'autoplay; fullscreen; picture-in-picture';\n iframe.allowFullscreen = true;\n slot.appendChild(iframe);\n return;\n }\n var video = document.createElement('video');\n video.src = src;\n video.controls = true;\n video.autoplay = true;\n video.playsInline = true;\n if (options.poster) video.poster = options.poster;\n slot.appendChild(video);\n var playPromise = video.play();\n if (playPromise && typeof playPromise.catch === 'function') {\n playPromise.catch(function () {\n video.muted = true;\n video.play();\n });\n }\n return;\n }\n var img = document.createElement('img');\n img.src = src;\n img.alt = options.alt || '';\n slot.appendChild(img);\n }\n function renderStarsRating(rating, size) {\n size = size || 'sm';\n rating = Math.max(0, Math.min(5, parseFloat(rating) || 0));\n var wrap = document.createElement('span');\n wrap.className = 'stars-rating stars-rating--' + size;\n wrap.style.setProperty('--stars-rating-value', String(rating));\n wrap.setAttribute('aria-hidden', 'true');\n ['empty', 'fill'].forEach(function (layer) {\n var layerEl = document.createElement('span');\n layerEl.className = 'stars-rating__layer stars-rating__layer--' + layer;\n for (var i = 0; i < 5; i++) {\n var svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n svg.setAttribute('class', 'icon stars-rating__icon');\n svg.setAttribute('aria-hidden', 'true');\n var use = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'use');\n use.setAttribute('href', '#icon-star');\n svg.appendChild(use);\n layerEl.appendChild(svg);\n }\n wrap.appendChild(layerEl);\n });\n return wrap;\n }\n function renderMediaMeta(popup, options) {\n var meta = popup.querySelector('[data-popup-media-meta]');\n if (!meta) return;\n var author = options.author || '';\n var service = options.service || '';\n var rating = Math.max(0, Math.min(5, parseFloat(options.rating) || 0));\n var authorEl = meta.querySelector('[data-popup-media-author]');\n var starsEl = meta.querySelector('[data-popup-media-stars]');\n var serviceRow = meta.querySelector('[data-popup-media-service]');\n var serviceValueEl = meta.querySelector('[data-popup-media-service-value]');\n if (!author && !service && !rating) {\n meta.hidden = true;\n if (authorEl) authorEl.textContent = '';\n if (starsEl) starsEl.innerHTML = '';\n if (serviceRow) serviceRow.hidden = true;\n if (serviceValueEl) serviceValueEl.textContent = '';\n return;\n }\n meta.hidden = false;\n if (authorEl) {\n authorEl.textContent = author;\n authorEl.hidden = !author;\n }\n if (starsEl) {\n starsEl.innerHTML = '';\n if (rating > 0) {\n starsEl.appendChild(renderStarsRating(rating, 'sm'));\n starsEl.hidden = false;\n } else {\n starsEl.hidden = true;\n }\n }\n if (serviceRow && serviceValueEl) {\n if (service) {\n serviceValueEl.textContent = service;\n serviceRow.hidden = false;\n } else {\n serviceValueEl.textContent = '';\n serviceRow.hidden = true;\n }\n }\n }\n function clearMediaMeta(popup) {\n renderMediaMeta(popup, {});\n }\n function finishClosePopup(popup) {\n if (popup.hidden) return;\n popup.hidden = true;\n popup.classList.remove('is-open');\n if (popup.dataset.popup === 'media') {\n var slot = popup.querySelector('[data-popup-media-slot]');\n if (slot) slot.innerHTML = '';\n clearMediaMeta(popup);\n }\n if (popup.dataset.popup === 'review') {\n var reviewSlot = popup.querySelector('[data-popup-review-slot]');\n if (reviewSlot) reviewSlot.innerHTML = '';\n }\n if (popup.dataset.popup === LOADING_POPUP_NAME) {\n clearPopupLoadingTrigger();\n popup.removeAttribute('aria-busy');\n document.dispatchEvent(new CustomEvent('popup:loading-closed'));\n }\n }\n function closePopup(instant) {\n if (!activePopup) return;\n var popup = activePopup;\n var focusTarget = lastFocus;\n clearCloseTimer();\n if (instant) {\n activePopup = null;\n lastFocus = null;\n finishClosePopup(popup);\n unlockScroll();\n restoreFocus(focusTarget);\n return;\n }\n popup.classList.remove('is-open');\n var closed = false;\n function completeClose() {\n if (closed || popup.hidden) return;\n closed = true;\n clearCloseTimer();\n if (activePopup === popup) {\n activePopup = null;\n lastFocus = null;\n }\n finishClosePopup(popup);\n unlockScroll();\n if (!activePopup) {\n restoreFocus(focusTarget);\n }\n }\n var dialog = popup.querySelector('.popup__dialog');\n if (dialog) {\n dialog.addEventListener('transitionend', function onClose(event) {\n if (event.target !== dialog || event.propertyName !== 'transform') return;\n dialog.removeEventListener('transitionend', onClose);\n completeClose();\n });\n }\n closeTimer = setTimeout(function () {\n closeTimer = null;\n completeClose();\n }, POPUP_CLOSE_MS);\n }\n function openPopup(name, options) {\n options = options || {};\n var popup = findPopup(name);\n if (!popup) {\n console.warn('[popup] не найден:', name);\n return;\n }\n closePopup(true);\n if (name === 'media') {\n var slot = popup.querySelector('[data-popup-media-slot]');\n if (slot) renderMedia(slot, options);\n renderMediaMeta(popup, options);\n }\n if (name === 'review') {\n var reviewSlot = popup.querySelector('[data-popup-review-slot]');\n if (reviewSlot) reviewSlot.innerHTML = options.html || '';\n }\n lockScroll();\n lastFocus = document.activeElement;\n popup.hidden = false;\n activePopup = popup;\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n if (activePopup !== popup) return;\n popup.classList.add('is-open');\n restoreFocus(getInitialFocusTarget(popup));\n });\n });\n }\n window.Popup = {\n open: openPopup,\n close: closePopup,\n openLoading: openPopupLoading,\n closeLoading: closePopupLoading,\n fetchAndMount: fetchAndMountPopup,\n getFormsFragmentUrl: getFormsFragmentUrl,\n };\n document.addEventListener('click', function (event) {\n var openBtn = event.target.closest('[data-popup-open]');\n if (openBtn) {\n event.preventDefault();\n var popupName = openBtn.dataset.popupOpen;\n var popupOptions = {\n src: openBtn.dataset.popupSrc || '',\n kind: openBtn.dataset.popupKind || 'image',\n alt: openBtn.dataset.popupAlt || '',\n poster: openBtn.dataset.popupPoster || '',\n title: openBtn.dataset.popupTitle || '',\n author: openBtn.dataset.popupAuthor || '',\n service: openBtn.dataset.popupService || '',\n rating: openBtn.dataset.popupRating || '',\n };\n if (window.PopupForms && window.PopupForms.handleOpenButton && window.PopupForms.handleOpenButton(openBtn, popupOptions)) {\n } else {\n openPopup(popupName, popupOptions);\n }\n openBtn.classList.add('is-pressed');\n setTimeout(function () { openBtn.classList.remove('is-pressed'); }, 160);\n return;\n }\n if (event.target.closest('[data-popup-close]')) {\n event.preventDefault();\n closePopup();\n }\n });\n document.addEventListener('keydown', handlePopupKeydown);\n})();\n(function initPhoneMasks() {\n var PREFIX = '+7 (';\n function extractDigits(value) {\n var digits = (value || '').replace(\/\\D\/g, '');\n if (digits.charAt(0) === '7' || digits.charAt(0) === '8') digits = digits.slice(1);\n return digits.slice(0, 10);\n }\n function formatDigits(digits) {\n if (!digits.length) return '';\n var out = '+7 (' + digits.slice(0, 3);\n if (digits.length <= 3) return out;\n out += ')-' + digits.slice(3, 6);\n if (digits.length <= 6) return out;\n out += '-' + digits.slice(6, 8);\n if (digits.length <= 8) return out;\n return out + '-' + digits.slice(8, 10);\n }\n function countDigitsBefore(value, pos) {\n var count = 0;\n for (var i = 0; i < pos && i < value.length; i++) {\n if (\/\\d\/.test(value.charAt(i))) count++;\n }\n return count;\n }\n function cursorAfterDigits(formatted, digitCount) {\n if (digitCount <= 0) {\n var open = formatted.indexOf('(');\n return open >= 0 ? open + 1 : 0;\n }\n var seen = 0;\n for (var i = 0; i < formatted.length; i++) {\n if (\/\\d\/.test(formatted.charAt(i))) {\n seen++;\n if (seen === digitCount) return i + 1;\n }\n }\n return formatted.length;\n }\n function syncPhoneInput(input, caretDigitCount) {\n var digits = extractDigits(input.value);\n var focused = document.activeElement === input;\n if (!digits.length) {\n input.value = focused ? PREFIX : '';\n if (focused && typeof caretDigitCount !== 'number' && input.setSelectionRange) {\n input.setSelectionRange(input.value.length, input.value.length);\n }\n return;\n }\n var formatted = formatDigits(digits);\n input.value = formatted;\n if (typeof caretDigitCount === 'number' && input.setSelectionRange) {\n var pos = cursorAfterDigits(formatted, caretDigitCount);\n input.setSelectionRange(pos, pos);\n }\n }\n function normalizeRequiredPhone(input) {\n if (!input.hasAttribute('required')) return;\n if (extractDigits(input.value).length < 10) input.value = '';\n }\n function preparePhoneForValidation(input) {\n if (!input.hasAttribute('required')) return;\n var digits = extractDigits(input.value).length;\n if (digits === 0) {\n normalizeRequiredPhone(input);\n input.setCustomValidity('');\n return;\n }\n if (digits < 10) {\n input.setCustomValidity('Введите номер телефона полностью');\n return;\n }\n input.setCustomValidity('');\n }\n function bindPhoneInput(input) {\n if (input.dataset.phoneMaskBound) return;\n input.dataset.phoneMaskBound = '1';\n input.setAttribute('inputmode', 'tel');\n if (input.hasAttribute('required')) {\n input.addEventListener('invalid', function () {\n normalizeRequiredPhone(input);\n });\n }\n input.addEventListener('focus', function () {\n syncPhoneInput(input);\n });\n input.addEventListener('blur', function () {\n syncPhoneInput(input);\n });\n input.addEventListener('input', function () {\n input.setCustomValidity('');\n var caretDigitCount = countDigitsBefore(input.value, input.selectionStart || 0);\n syncPhoneInput(input, caretDigitCount);\n });\n input.addEventListener('keydown', function (event) {\n if (event.key !== 'Backspace') return;\n var start = input.selectionStart || 0;\n var end = input.selectionEnd || 0;\n if (start !== end) return;\n if (start <= PREFIX.length) {\n event.preventDefault();\n input.value = '';\n }\n });\n input.addEventListener('paste', function (event) {\n event.preventDefault();\n var text = (event.clipboardData || window.clipboardData).getData('text') || '';\n var start = input.selectionStart || 0;\n var end = input.selectionEnd || 0;\n var before = countDigitsBefore(input.value, start);\n var next = input.value.slice(0, start) + text + input.value.slice(end);\n input.value = next;\n syncPhoneInput(input, before + extractDigits(text).length);\n });\n }\n function init(root) {\n (root || document).querySelectorAll('input[type=\"tel\"]').forEach(bindPhoneInput);\n }\n window.PhoneMask = {\n init: init,\n normalizeRequired: normalizeRequiredPhone,\n prepareForValidation: preparePhoneForValidation,\n };\n init();\n})();\n(function initCharCounters() {\n function syncCounter(field) {\n var wrap = field.closest('.field__textarea-wrap');\n if (!wrap) return;\n var counter = wrap.querySelector('[data-char-counter]');\n if (!counter) return;\n var max = parseInt(field.getAttribute('maxlength'), 10) || 1500;\n var length = (field.value || '').length;\n counter.textContent = length + '\/' + max;\n }\n function bindCharCounter(field) {\n if (field.dataset.charCounterBound) return;\n field.dataset.charCounterBound = '1';\n field.addEventListener('input', function () {\n syncCounter(field);\n });\n syncCounter(field);\n }\n function init(root) {\n (root || document).querySelectorAll('[data-char-counter-field]').forEach(bindCharCounter);\n }\n window.CharCounter = { init: init };\n init();\n})();\n(function initBviLoader() {\n var loaderScript = document.currentScript || document.querySelector('script[data-bvi-js]');\n var cssUrl = loaderScript ? loaderScript.getAttribute('data-bvi-css') : '';\n var jsUrl = loaderScript ? loaderScript.getAttribute('data-bvi-js') : '';\n var loadPromise = null;\n function hasLibrary() {\n return typeof window.isvek !== 'undefined' && typeof window.isvek.Bvi === 'function';\n }\n function boot() {\n if (!hasLibrary()) return null;\n if (window.__bviInstance) return window.__bviInstance;\n window.__bviInstance = new window.isvek.Bvi({\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n speech: true,\n lang: 'ru-RU',\n });\n return window.__bviInstance;\n }\n function loadStyle(url) {\n var current = document.querySelector('link[data-bvi-resource=\"style\"]');\n if (current) {\n return current.sheet\n ? Promise.resolve()\n : new Promise(function (resolve, reject) {\n current.addEventListener('load', resolve, { once: true });\n current.addEventListener('error', reject, { once: true });\n });\n }\n return new Promise(function (resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n link.setAttribute('data-bvi-resource', 'style');\n link.addEventListener('load', resolve, { once: true });\n link.addEventListener('error', function () {\n link.remove();\n reject(new Error('BVI stylesheet failed to load'));\n }, { once: true });\n document.head.appendChild(link);\n });\n }\n function loadScript(url) {\n var current = document.querySelector('script[data-bvi-resource=\"script\"]');\n if (current) {\n return hasLibrary()\n ? Promise.resolve()\n : new Promise(function (resolve, reject) {\n current.addEventListener('load', resolve, { once: true });\n current.addEventListener('error', reject, { once: true });\n });\n }\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.setAttribute('data-bvi-resource', 'script');\n script.addEventListener('load', resolve, { once: true });\n script.addEventListener('error', function () {\n script.remove();\n reject(new Error('BVI script failed to load'));\n }, { once: true });\n document.head.appendChild(script);\n });\n }\n function ensureLoaded() {\n if (window.__bviInstance) return Promise.resolve(window.__bviInstance);\n if (loadPromise) return loadPromise;\n if (!cssUrl || !jsUrl) {\n return hasLibrary()\n ? Promise.resolve(boot())\n : Promise.reject(new Error('BVI assets are unavailable'));\n }\n loadPromise = Promise.all([loadStyle(cssUrl), loadScript(jsUrl)])\n .then(function () {\n if (!hasLibrary()) throw new Error('BVI library did not initialize');\n return boot();\n })\n .catch(function (error) {\n loadPromise = null;\n throw error;\n });\n return loadPromise;\n }\n function findTrigger(target) {\n return target && typeof target.closest === 'function' ? target.closest('.bvi-open') : null;\n }\n function preloadOnIntent(event) {\n if (!findTrigger(event.target) || window.__bviInstance) return;\n ensureLoaded().catch(function () {\n });\n }\n document.addEventListener('pointerover', preloadOnIntent);\n document.addEventListener('focusin', preloadOnIntent);\n document.addEventListener('click', function (event) {\n var trigger = findTrigger(event.target);\n if (!trigger || window.__bviInstance) return;\n event.preventDefault();\n ensureLoaded()\n .then(function () {\n trigger.click();\n })\n .catch(function (error) {\n console.error('Не удалось загрузить версию для слабовидящих:', error);\n });\n });\n if (\/(?:^|;\\s*)bvi_panelActive=true(?:;|$)\/.test(document.cookie)) {\n ensureLoaded().catch(function (error) {\n console.error('Не удалось восстановить версию для слабовидящих:', error);\n });\n }\n})();\n(function initSectionReveal() {\n var REVEAL_TRANSITION = 'transform .4s ease';\n function isSectionInViewport(el) {\n var rect = el.getBoundingClientRect();\n return rect.top < window.innerHeight && rect.bottom > 0;\n }\n function revealSection(el) {\n el.style.transition = REVEAL_TRANSITION;\n el.style.transform = 'none';\n }\n function prepareHiddenSection(el) {\n el.style.transform = 'translateY(8px)';\n }\n document.addEventListener('DOMContentLoaded', function () {\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n var sections = document.querySelectorAll('.page > section');\n if (!sections.length) return;\n if (!('IntersectionObserver' in window)) return;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) return;\n revealSection(entry.target);\n observer.unobserve(entry.target);\n });\n }, {\n root: null,\n rootMargin: '0px 0px -5% 0px',\n threshold: 0.05,\n });\n sections.forEach(function (el) {\n if (isSectionInViewport(el)) {\n return;\n }\n prepareHiddenSection(el);\n observer.observe(el);\n });\n });\n})();\n(function initSwiperSlideImagesPatch() {\n if (typeof Swiper === 'undefined') return;\n var SwiperOriginal = Swiper;\n var DEFAULT_PRELOAD = 1;\n function resolveElement(el) {\n if (!el) return null;\n if (typeof el === 'string') return document.querySelector(el);\n return el;\n }\n function resolveSlidesPerView(options) {\n var spv = options.slidesPerView;\n if (options.breakpoints && typeof options.breakpoints === 'object') {\n var width = window.innerWidth;\n var points = Object.keys(options.breakpoints)\n .map(Number)\n .filter(function (n) { return !Number.isNaN(n); })\n .sort(function (a, b) { return a - b; });\n var matched = null;\n points.forEach(function (bp) {\n if (width >= bp) matched = bp;\n });\n if (matched !== null && options.breakpoints[matched] && options.breakpoints[matched].slidesPerView != null) {\n spv = options.breakpoints[matched].slidesPerView;\n }\n }\n if (spv === 'auto') return 1;\n if (typeof spv === 'number' && spv > 0) return Math.ceil(spv);\n return 1;\n }\n function getInitiallyVisibleSlideIndices(slideCount, options) {\n var start = typeof options.initialSlide === 'number' ? options.initialSlide : 0;\n if (start < 0) start = 0;\n var visible = resolveSlidesPerView(options);\n var indices = [];\n for (var i = 0; i < visible && start + i < slideCount; i++) {\n indices.push(start + i);\n }\n return indices;\n }\n function shouldKeepImageSrc(img) {\n if (!img || img.getAttribute('data-swiper-lazy-skip') !== null) return true;\n if (img.getAttribute('fetchpriority') === 'high') return true;\n return false;\n }\n function loadSlideImages(slide) {\n if (!slide) return;\n slide.querySelectorAll('img[data-src], img[src]').forEach(function (img) {\n img.setAttribute('loading', img.getAttribute('fetchpriority') === 'high' ? 'eager' : 'lazy');\n if (!img.getAttribute('src')) {\n var src = img.getAttribute('data-src');\n if (!src) return;\n img.setAttribute('src', src);\n img.removeAttribute('data-src');\n var srcset = img.getAttribute('data-srcset');\n if (srcset) {\n img.setAttribute('srcset', srcset);\n img.removeAttribute('data-srcset');\n }\n }\n if (!img.getAttribute('decoding')) {\n img.setAttribute('decoding', 'async');\n }\n });\n }\n function getActuallyVisibleSlides(swiper) {\n var visible = [];\n if (!swiper || !swiper.el || !swiper.slides) return visible;\n var viewport = swiper.el.getBoundingClientRect();\n Array.prototype.forEach.call(swiper.slides, function (slide) {\n if (!slide || !slide.getClientRects().length) return;\n var rect = slide.getBoundingClientRect();\n var horizontal = rect.right > viewport.left + 1 && rect.left < viewport.right - 1;\n var vertical = rect.bottom > viewport.top + 1 && rect.top < viewport.bottom - 1;\n if (rect.width > 0 && rect.height > 0 && horizontal && vertical) {\n visible.push(slide);\n }\n });\n return visible;\n }\n function loadVisibleSlideImages(swiper, amount) {\n if (!swiper || !swiper.slides || !swiper.slides.length) return;\n var spv = swiper.params.slidesPerView === 'auto'\n ? swiper.slidesPerViewDynamic()\n : Math.ceil(swiper.params.slidesPerView) || 1;\n var start = swiper.activeIndex;\n var end = start + spv - 1;\n var len = swiper.slides.length;\n var visibleSlides = getActuallyVisibleSlides(swiper);\n if (!visibleSlides.length) {\n for (var visibleIndex = start; visibleIndex <= Math.min(len - 1, end); visibleIndex++) {\n visibleSlides.push(swiper.slides[visibleIndex]);\n }\n }\n for (var activeIndex = start; activeIndex <= Math.min(len - 1, end); activeIndex++) {\n if (visibleSlides.indexOf(swiper.slides[activeIndex]) === -1) {\n visibleSlides.push(swiper.slides[activeIndex]);\n }\n }\n visibleSlides.forEach(function (slide) {\n loadSlideImages(slide);\n });\n for (var i = Math.max(0, start - amount); i <= Math.min(len - 1, end + amount); i++) {\n if (visibleSlides.indexOf(swiper.slides[i]) !== -1) continue;\n loadSlideImages(swiper.slides[i]);\n }\n }\n function prepareSlides(el, options) {\n if (!el) return;\n var slides = el.querySelectorAll('.swiper-slide');\n if (!slides.length) return;\n var initiallyVisible = getInitiallyVisibleSlideIndices(slides.length, options || {});\n var initiallyVisibleSet = {};\n initiallyVisible.forEach(function (index) {\n initiallyVisibleSet[index] = true;\n });\n slides.forEach(function (slide, index) {\n if (initiallyVisibleSet[index]) return;\n slide.querySelectorAll('img[src]').forEach(function (img) {\n if (shouldKeepImageSrc(img)) return;\n if (img.getAttribute('data-src')) return;\n var src = img.getAttribute('src');\n if (!src) return;\n img.setAttribute('data-src', src);\n img.removeAttribute('src');\n img.setAttribute('loading', 'lazy');\n img.removeAttribute('fetchpriority');\n var srcset = img.getAttribute('srcset');\n if (srcset) {\n img.setAttribute('data-srcset', srcset);\n img.removeAttribute('srcset');\n }\n if (!img.getAttribute('decoding')) {\n img.setAttribute('decoding', 'async');\n }\n });\n });\n el.dataset.swiperLazyPrepared = '1';\n }\n function appendSwiperHook(options, eventName, handler) {\n if (!options.on) {\n options.on = {};\n } else if (!Array.isArray(options.on)) {\n options.on = Object.assign({}, options.on);\n } else {\n options.on = options.on.slice();\n }\n if (Array.isArray(options.on)) {\n var hook = {};\n hook[eventName] = handler;\n options.on.push(hook);\n return;\n }\n var prev = options.on[eventName];\n options.on[eventName] = function () {\n handler.apply(this, arguments);\n if (typeof prev === 'function') {\n prev.apply(this, arguments);\n }\n };\n }\n function mergeSlideImageOptions(params) {\n var options = params ? Object.assign({}, params) : {};\n var preloadAmount = typeof options.lazyPreloadPrevNext === 'number'\n ? Math.max(0, options.lazyPreloadPrevNext)\n : DEFAULT_PRELOAD;\n options.lazyPreloadPrevNext = 0;\n function loadImages(swiper) {\n loadVisibleSlideImages(swiper, preloadAmount);\n }\n appendSwiperHook(options, 'init', loadImages);\n appendSwiperHook(options, 'slideChangeTransitionStart', loadImages);\n appendSwiperHook(options, 'breakpoint', loadImages);\n appendSwiperHook(options, 'resize', loadImages);\n return options;\n }\n function SwiperPatched(el, params) {\n var options = mergeSlideImageOptions(params);\n var element = resolveElement(el);\n if (element) prepareSlides(element, options);\n return new SwiperOriginal(el, options);\n }\n SwiperPatched.prototype = SwiperOriginal.prototype;\n Object.getOwnPropertyNames(SwiperOriginal).forEach(function (key) {\n if (key === 'prototype' || key === 'length' || key === 'name') return;\n try {\n SwiperPatched[key] = SwiperOriginal[key];\n } catch (e) { }\n });\n window.Swiper = SwiperPatched;\n})();\n(function initPopupForms() {\n function isRemoteOpenButton(openBtn) {\n return !!openBtn && openBtn.getAttribute('data-remote') === '1';\n }\n function isLeadFormPopup(popup) {\n if (!popup) return false;\n return !!popup.querySelector('form[data-popup-form], form.popup-form');\n }\n function getFormsFragmentUrl(openBtn) {\n var customUrl = openBtn && openBtn.getAttribute('data-popup-remote-url');\n if (customUrl) return customUrl;\n if (window.Popup && window.Popup.getFormsFragmentUrl) return window.Popup.getFormsFragmentUrl();\n var url = new URL(window.location.href);\n url.searchParams.set('form', '1');\n return url.toString();\n }\n function openRemotePopup(name, options, openBtn) {\n if (!window.Popup || !window.Popup.fetchAndMount || !window.Popup.open) return;\n var cancelled = false;\n var controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n function onLoadingClosed() {\n cancelled = true;\n if (controller) controller.abort();\n }\n document.addEventListener('popup:loading-closed', onLoadingClosed);\n if (window.Popup.openLoading) {\n window.Popup.openLoading(openBtn);\n }\n window.Popup.fetchAndMount(name, getFormsFragmentUrl(openBtn), {\n signal: controller ? controller.signal : undefined,\n })\n .then(function () {\n document.removeEventListener('popup:loading-closed', onLoadingClosed);\n if (cancelled) return;\n window.Popup.open(name, options);\n })\n .catch(function (err) {\n document.removeEventListener('popup:loading-closed', onLoadingClosed);\n if (cancelled || (err && err.name === 'AbortError')) return;\n console.warn('[popup-remote]', err);\n if (window.Popup.closeLoading) window.Popup.closeLoading();\n window.Popup.open(name, options);\n });\n }\n function setFormResultMessage(popup, message) {\n var textEl = popup.querySelector('[data-form-result-text]');\n if (!textEl) return;\n if (message) {\n textEl.textContent = message;\n return;\n }\n if (textEl.dataset.defaultText) {\n textEl.textContent = textEl.dataset.defaultText;\n }\n }\n function showFormResult(type, options) {\n options = options || {};\n var resultName = type === 'error' ? 'form-error' : 'form-success';\n var sourcePopup = document.querySelector('.popup.is-open');\n if (sourcePopup && isLeadFormPopup(sourcePopup) && window.Popup && window.Popup.close) {\n window.Popup.close(true);\n }\n if (window.Popup && window.Popup.open) {\n window.Popup.open(resultName);\n }\n var openedPopup = document.querySelector('.popup[data-popup=\"' + resultName + '\"]');\n if (openedPopup) setFormResultMessage(openedPopup, options.message || '');\n }\n function isLeadForm(form) {\n if (!form || form.tagName !== 'FORM') return false;\n if (form.method && form.method.toLowerCase() === 'get') return false;\n if (form.hasAttribute('data-form-no-result')) return false;\n if (form.hasAttribute('data-reviews-v5-filters-form')) return false;\n if (form.hasAttribute('data-quiz-v1-form') && form.getAttribute('data-quiz-v1-form') !== '4') return false;\n return true;\n }\n function preparePhoneFieldsForValidation(form) {\n form.querySelectorAll('input[type=\"tel\"][required]').forEach(function (input) {\n if (window.PhoneMask && window.PhoneMask.prepareForValidation) {\n window.PhoneMask.prepareForValidation(input);\n return;\n }\n if (window.PhoneMask && window.PhoneMask.normalizeRequired) {\n window.PhoneMask.normalizeRequired(input);\n }\n });\n }\n function validateLeadForm(form) {\n preparePhoneFieldsForValidation(form);\n if (!form.checkValidity()) {\n form.classList.add('popup-form--submit-attempted');\n form.reportValidity();\n return false;\n }\n form.classList.remove('popup-form--submit-attempted');\n return true;\n }\n function collectQuizPayload(leadForm) {\n var root = leadForm.closest('.quiz-v1');\n if (!root) return new FormData(leadForm);\n var payload = new FormData();\n root.querySelectorAll('[data-quiz-v1-form]').forEach(function (stepForm) {\n new FormData(stepForm).forEach(function (value, key) {\n payload.append(key, value);\n });\n });\n return payload;\n }\n function resetFormAfterSubmit(form) {\n form.querySelectorAll('input[type=\"checkbox\"][name=\"consent\"]').forEach(function (el) {\n el.checked = false;\n });\n form.classList.remove('popup-form--submit-attempted');\n syncConsentGatingVisual(form);\n var quizSubmit = form.querySelector('[data-quiz-v1-submit]');\n if (quizSubmit) quizSubmit.disabled = true;\n form.querySelectorAll('[data-char-counter-field]').forEach(function (field) {\n var wrap = field.closest('.field__textarea-wrap');\n var counter = wrap && wrap.querySelector('[data-char-counter]');\n if (!counter) return;\n var max = parseInt(field.getAttribute('maxlength'), 10) || 1500;\n counter.textContent = '0\/' + max;\n });\n }\n function setFormPending(form, isPending) {\n var dialog = form.closest('.popup__dialog');\n if (!dialog) return;\n var overlay = dialog.querySelector('[data-form-pending]');\n if (isPending) {\n dialog.setAttribute('aria-busy', 'true');\n if (!overlay) {\n overlay = document.createElement('div');\n overlay.className = 'ui-preloader-overlay';\n overlay.setAttribute('data-form-pending', '1');\n overlay.setAttribute('aria-hidden', 'true');\n overlay.innerHTML = '<span class=\"ui-preloader ui-preloader--lg\"><\/span>';\n dialog.appendChild(overlay);\n }\n return;\n }\n dialog.removeAttribute('aria-busy');\n if (overlay) overlay.remove();\n }\n function getLeadSubmitButton(form) {\n return form.querySelector('.popup-form__submit, [data-quiz-v1-submit], button[type=\"submit\"]');\n }\n function isAjaxForm(form) {\n if (form.hasAttribute('data-form-ajax')) return true;\n var action = (form.getAttribute('action') || '').trim();\n return action !== '' && action !== '#' && action.indexOf('javascript:') !== 0;\n }\n function submitLeadFormAjax(form, isQuizLead, payload) {\n var submitBtn = getLeadSubmitButton(form);\n if (submitBtn) submitBtn.disabled = true;\n setFormPending(form, true);\n var headers = {\n Accept: 'application\/json',\n 'X-Requested-With': 'XMLHttpRequest',\n };\n var csrf = document.querySelector('meta[name=\"csrf-token\"]');\n if (csrf && csrf.getAttribute('content')) {\n headers['X-CSRF-Token'] = csrf.getAttribute('content');\n }\n fetch(form.action, {\n method: (form.getAttribute('method') || 'POST').toUpperCase(),\n body: payload,\n credentials: 'same-origin',\n headers: headers,\n })\n .then(function (res) {\n return res.json().then(function (data) {\n return { ok: res.ok, data: data };\n }).catch(function () {\n return { ok: res.ok, data: {} };\n });\n })\n .then(function (result) {\n if (submitBtn) submitBtn.disabled = false;\n setFormPending(form, false);\n var data = result.data || {};\n var success = result.ok && (data.ok === true || data.success === true);\n if (success) {\n form.reset();\n resetFormAfterSubmit(form);\n if (isQuizLead) {\n var quizRoot = form.closest('.quiz-v1');\n if (quizRoot) {\n quizRoot.dispatchEvent(new CustomEvent('quiz-v1:submitted', { bubbles: false }));\n }\n }\n showFormResult('success', {\n message: data.message || form.getAttribute('data-form-success-message') || '',\n });\n return;\n }\n showFormResult('error', {\n message: data.message || data.error || '',\n });\n })\n .catch(function (err) {\n if (submitBtn) submitBtn.disabled = false;\n setFormPending(form, false);\n console.error('[form]', err);\n showFormResult('error');\n });\n }\n function handleLeadFormSubmit(form) {\n var isQuizLead = form.getAttribute('data-quiz-v1-form') === '4';\n var payload = isQuizLead ? collectQuizPayload(form) : new FormData(form);\n if (isAjaxForm(form)) {\n submitLeadFormAjax(form, isQuizLead, payload);\n return;\n }\n console.log(\n '[form] отправка:',\n form.className || form.getAttribute('data-popup-form') || (isQuizLead ? 'quiz-v1' : 'form'),\n payload\n );\n var quizSubmit = form.querySelector('[data-quiz-v1-submit]');\n if (quizSubmit) {\n quizSubmit.classList.add('is-pressed');\n setTimeout(function () { quizSubmit.classList.remove('is-pressed'); }, 160);\n }\n form.reset();\n resetFormAfterSubmit(form);\n if (isQuizLead) {\n var quizRoot = form.closest('.quiz-v1');\n if (quizRoot) {\n quizRoot.dispatchEvent(new CustomEvent('quiz-v1:submitted', { bubbles: false }));\n }\n }\n showFormResult('success', {\n message: form.getAttribute('data-form-success-message') || '',\n });\n }\n function resetConsent(root) {\n (root || document).querySelectorAll('input[type=\"checkbox\"][name=\"consent\"]').forEach(function (el) {\n el.checked = false;\n });\n }\n function syncConsentGatingVisual(form) {\n if (!form || !form.classList.contains('popup-form--consent-gated')) return;\n var consent = form.querySelector('input[name=\"consent\"]');\n var submit = getLeadSubmitButton(form);\n if (!consent || !submit) return;\n var ready = consent.checked;\n form.classList.toggle('is-consent-ready', ready);\n submit.classList.toggle('is-consent-pending', !ready);\n submit.disabled = false;\n }\n function initConsentGating(root) {\n (root || document).querySelectorAll('.popup-form--consent-gated').forEach(function (form) {\n if (form.dataset.consentGatedBound) return;\n form.dataset.consentGatedBound = '1';\n var consent = form.querySelector('input[name=\"consent\"]');\n if (!consent) return;\n consent.addEventListener('change', function () {\n syncConsentGatingVisual(form);\n });\n form.addEventListener('input', function () {\n if (form.classList.contains('popup-form--submit-attempted') && form.checkValidity()) {\n form.classList.remove('popup-form--submit-attempted');\n }\n });\n syncConsentGatingVisual(form);\n });\n }\n function initFormUi(root) {\n resetConsent(root);\n initConsentGating(root);\n if (window.PhoneMask) window.PhoneMask.init(root);\n if (window.CharCounter) window.CharCounter.init(root);\n }\n window.FormUi = { init: initFormUi };\n window.FormResult = {\n showSuccess: function (options) { showFormResult('success', options || {}); },\n showError: function (options) { showFormResult('error', options || {}); },\n };\n window.PopupForms = {\n isRemoteOpenButton: isRemoteOpenButton,\n handleOpenButton: function (openBtn, popupOptions) {\n var popupName = openBtn.dataset.popupOpen;\n if (!isRemoteOpenButton(openBtn)) return false;\n openRemotePopup(popupName, popupOptions || {}, openBtn);\n return true;\n }\n };\n document.addEventListener('submit', function (event) {\n var form = event.target;\n if (!isLeadForm(form)) return;\n event.preventDefault();\n if (!validateLeadForm(form)) return;\n handleLeadFormSubmit(form);\n });\n document.addEventListener('DOMContentLoaded', function () {\n initFormUi(document);\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('hero\/variant-4');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.hero-v4').forEach(function (root) {\n if (root.dataset.heroV4Ready === 'true') return;\n root.dataset.heroV4Ready = 'true';\n var sliderEl = root.querySelector('.hero-v4__card.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.hero-v4__slider-pagination');\n var isMobile = window.matchMedia('(max-width: 768px)').matches;\n function syncHeroPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n var mobile = window.matchMedia('(max-width: 768px)').matches;\n if (mobile) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: 1,\n speed: 300,\n loop: !isMobile,\n autoHeight: isMobile,\n navigation: {\n nextEl: root.querySelector('.hero-v4__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.hero-v4__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: syncHeroPagination,\n resize: syncHeroPagination,\n breakpoint: syncHeroPagination,\n },\n });\n root.querySelectorAll('.hero-v4__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('benefits\/variant-1');\n})();\n(function () {\n window.__LOADED_SECTIONS.push('our-approach\/variant-1');\n})();\n(function () {\n window.__LOADED_SECTIONS.push('services\/variant-3');\n function initRoot(root) {\n if (root.dataset.servicesV3Ready === 'true') return;\n root.dataset.servicesV3Ready = 'true';\n var items = root.querySelectorAll('.services-v3__item');\n if (!items.length) return;\n var list = root.querySelector('.services-v3__list');\n var desktopMq = window.matchMedia('(min-width: 1201px)');\n var reduceMotionMq = window.matchMedia('(prefers-reduced-motion: reduce)');\n var accordionCloseMotionMs = 350;\n var activeDesktopIndex = 0;\n function isDesktop() {\n return desktopMq.matches;\n }\n function shouldAnimateAccordion() {\n return !isDesktop() && !reduceMotionMq.matches;\n }\n function syncStageHeight() {\n if (!list) return;\n if (!isDesktop()) {\n list.style.minHeight = '';\n return;\n }\n var activePanel = root.querySelector('[data-services-v3-panel].is-active');\n if (!activePanel) {\n list.style.minHeight = '';\n return;\n }\n list.style.minHeight = '';\n var tabsHeight = list.offsetHeight;\n var panelHeight = activePanel.offsetHeight;\n list.style.minHeight = Math.max(tabsHeight, panelHeight) + 'px';\n }\n var stageHeightFrame = null;\n function scheduleStageHeight() {\n if (stageHeightFrame !== null) return;\n stageHeightFrame = window.requestAnimationFrame(function () {\n stageHeightFrame = null;\n syncStageHeight();\n });\n }\n function deactivateTab(tab) {\n if (!tab) return;\n tab.classList.remove('is-active');\n tab.setAttribute('aria-selected', 'false');\n tab.tabIndex = -1;\n }\n function deactivateAccordionTabVisual(item) {\n deactivateTab(item.querySelector('[data-services-v3-tab]'));\n }\n function finalizeAccordionClose(item) {\n var panel = item.querySelector('[data-services-v3-panel]');\n deactivateAccordionTabVisual(item);\n if (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n }\n }\n function activateDesktop(index) {\n activeDesktopIndex = index;\n root.querySelectorAll('[data-services-v3-tab]').forEach(function (tab) {\n var tabIndex = parseInt(tab.getAttribute('data-services-v3-index'), 10);\n var isActive = tabIndex === index;\n tab.classList.toggle('is-active', isActive);\n tab.setAttribute('aria-selected', isActive ? 'true' : 'false');\n tab.tabIndex = isActive ? 0 : -1;\n });\n root.querySelectorAll('[data-services-v3-panel]').forEach(function (panel) {\n var panelIndex = parseInt(panel.getAttribute('data-services-v3-index'), 10);\n var isActive = panelIndex === index;\n panel.classList.toggle('is-active', isActive);\n panel.hidden = !isActive;\n panel.setAttribute('aria-hidden', isActive ? 'false' : 'true');\n });\n items.forEach(function (item) {\n item.classList.remove('is-open');\n });\n scheduleStageHeight();\n }\n function closeAccordionItem(item, instantVisual) {\n var panel = item.querySelector('[data-services-v3-panel]');\n if (!panel || (!item.classList.contains('is-open') && panel.hidden)) return;\n item.classList.remove('is-open');\n panel.setAttribute('aria-hidden', 'true');\n if (instantVisual) {\n deactivateAccordionTabVisual(item);\n }\n if (!shouldAnimateAccordion()) {\n finalizeAccordionClose(item);\n return;\n }\n var done = false;\n function finish() {\n if (done) return;\n done = true;\n panel.removeEventListener('transitionend', onEnd);\n finalizeAccordionClose(item);\n }\n function onEnd(event) {\n if (event.target !== panel || event.propertyName !== 'grid-template-rows') return;\n finish();\n }\n panel.addEventListener('transitionend', onEnd);\n window.setTimeout(finish, accordionCloseMotionMs + 20);\n }\n function openAccordionItem(item) {\n var tab = item.querySelector('[data-services-v3-tab]');\n var panel = item.querySelector('[data-services-v3-panel]');\n if (!panel) return;\n var index = parseInt(panel.getAttribute('data-services-v3-index'), 10);\n if (!isNaN(index)) {\n activeDesktopIndex = index;\n }\n panel.hidden = false;\n if (tab) {\n tab.classList.add('is-active');\n tab.setAttribute('aria-selected', 'true');\n tab.tabIndex = 0;\n }\n panel.classList.add('is-active');\n panel.setAttribute('aria-hidden', 'false');\n if (shouldAnimateAccordion()) {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n item.classList.add('is-open');\n });\n });\n return;\n }\n item.classList.add('is-open');\n }\n function resetMobileAccordion() {\n items.forEach(function (item) {\n item.classList.remove('is-open');\n deactivateAccordionTabVisual(item);\n var panel = item.querySelector('[data-services-v3-panel]');\n if (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n panel.setAttribute('aria-hidden', 'true');\n }\n });\n }\n function syncLayout() {\n if (isDesktop()) {\n activateDesktop(activeDesktopIndex);\n syncStageHeight();\n return;\n }\n if (list) {\n list.style.minHeight = '';\n }\n resetMobileAccordion();\n }\n root.addEventListener('click', function (event) {\n var tab = event.target.closest('[data-services-v3-tab]');\n if (!tab || !root.contains(tab)) return;\n var index = parseInt(tab.getAttribute('data-services-v3-index'), 10);\n if (isNaN(index)) return;\n if (isDesktop()) {\n activateDesktop(index);\n return;\n }\n var item = tab.closest('.services-v3__item');\n if (!item) return;\n if (item.classList.contains('is-open')) {\n closeAccordionItem(item);\n return;\n }\n items.forEach(function (entry) {\n if (entry !== item) closeAccordionItem(entry, true);\n });\n openAccordionItem(item);\n });\n root.addEventListener('keydown', function (event) {\n var tab = event.target.closest('[data-services-v3-tab]');\n if (!tab || !root.contains(tab)) return;\n var tabs = Array.prototype.slice.call(root.querySelectorAll('[data-services-v3-tab]'));\n var index = tabs.indexOf(tab);\n if (index === -1) return;\n var nextIndex = index;\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n nextIndex = (index + 1) % tabs.length;\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n nextIndex = (index - 1 + tabs.length) % tabs.length;\n } else {\n return;\n }\n event.preventDefault();\n var nextTab = tabs[nextIndex];\n var nextItemIndex = parseInt(nextTab.getAttribute('data-services-v3-index'), 10);\n if (isDesktop()) {\n activateDesktop(nextItemIndex);\n nextTab.focus();\n return;\n }\n var item = nextTab.closest('.services-v3__item');\n if (!item) return;\n items.forEach(function (entry) {\n if (entry !== item) closeAccordionItem(entry, true);\n });\n openAccordionItem(item);\n nextTab.focus();\n });\n if (typeof desktopMq.addEventListener === 'function') {\n desktopMq.addEventListener('change', syncLayout);\n } else if (typeof desktopMq.addListener === 'function') {\n desktopMq.addListener(syncLayout);\n }\n root.querySelectorAll('.services-v3__media-img').forEach(function (img) {\n if (img.complete) return;\n img.addEventListener('load', syncStageHeight, { once: true });\n });\n window.addEventListener('resize', scheduleStageHeight);\n syncLayout();\n }\n function boot() {\n document.querySelectorAll('.services-v3').forEach(initRoot);\n }\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', boot);\n } else {\n boot();\n }\n})();\n(function () {\n window.__LOADED_SECTIONS.push('cases\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.cases-v1').forEach(function (root) {\n if (root.dataset.casesV1Ready === 'true') return;\n root.dataset.casesV1Ready = 'true';\n var sliderEl = root.querySelector('.cases-v1__slider.swiper');\n if (!sliderEl) return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n var paginationEl = root.querySelector('.cases-v1__pagination');\n var paginationHost = root.querySelector('.cases-v1__slider-foot .slider-pagination-host');\n var navPrev = root.querySelector('.cases-v1__slider-nav .slider-nav__btn--prev');\n var navNext = root.querySelector('.cases-v1__slider-nav .slider-nav__btn--next');\n var canSlide = slides.length > 1;\n var mobileMq = window.matchMedia('(max-width: 768px)');\n var swiperInstance = null;\n var stackMetricsObserver = null;\n var stackMetricsFrame = null;\n function syncStackMetrics() {\n if (mobileMq.matches) {\n root.style.removeProperty('--cases-v1-panel-h');\n root.style.removeProperty('--cases-v1-stack-tail');\n return;\n }\n var panelHeight = 0;\n root.querySelectorAll('.cases-v1__panel').forEach(function (panel) {\n panelHeight = Math.max(panelHeight, panel.offsetHeight);\n });\n if (panelHeight > 0) {\n root.style.setProperty('--cases-v1-panel-h', panelHeight + 'px');\n root.style.setProperty('--cases-v1-stack-tail', canSlide ? '64px' : '0px');\n }\n }\n function scheduleStackMetrics() {\n if (stackMetricsFrame !== null) return;\n stackMetricsFrame = window.requestAnimationFrame(function () {\n stackMetricsFrame = null;\n syncStackMetrics();\n });\n }\n function observeStackMetrics() {\n if (typeof ResizeObserver !== 'function' || stackMetricsObserver) return;\n stackMetricsObserver = new ResizeObserver(scheduleStackMetrics);\n root.querySelectorAll('.cases-v1__panel').forEach(function (panel) {\n stackMetricsObserver.observe(panel);\n });\n }\n function syncDotsPagination(swiper, options) {\n if (!swiper || !swiper.pagination || !paginationEl) return;\n options = options || {};\n var forceRender = options.forceRender !== false;\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n var bulletCount = paginationEl.querySelectorAll('.swiper-pagination-bullet').length;\n if (paginationHost) paginationHost.hidden = bulletCount <= 1;\n }\n function destroyMobileSwiper() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n sliderEl.classList.remove('is-settled');\n }\n function initMobileSwiper() {\n if (!mobileMq.matches || !canSlide || swiperInstance || typeof Swiper === 'undefined') return;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 400,\n loop: false,\n rewind: true,\n allowTouchMove: true,\n roundLengths: true,\n watchOverflow: true,\n observer: true,\n observeParents: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n pagination: paginationEl ? {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n } : undefined,\n on: {\n init: function (swiper) {\n swiper.el.classList.add('is-settled');\n swiper.update();\n syncDotsPagination(swiper);\n },\n resize: function (swiper) {\n swiper.update();\n syncDotsPagination(swiper);\n },\n slideChange: function (swiper) {\n syncDotsPagination(swiper, { forceRender: false });\n },\n touchStart: function (swiper) {\n swiper.el.classList.remove('is-settled');\n },\n slideChangeTransitionStart: function (swiper) {\n swiper.el.classList.remove('is-settled');\n },\n transitionEnd: function (swiper) {\n swiper.el.classList.add('is-settled');\n },\n },\n });\n root.querySelectorAll('.cases-v1__slider-nav .slider-nav__btn').forEach(function (btn) {\n if (btn.dataset.casesV1NavReady === 'true') return;\n btn.dataset.casesV1NavReady = 'true';\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n function syncViewportMode() {\n if (mobileMq.matches) {\n initMobileSwiper();\n return;\n }\n destroyMobileSwiper();\n if (paginationHost) paginationHost.hidden = true;\n syncStackMetrics();\n }\n if (canSlide) {\n function bootSwiper() {\n syncViewportMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n if (typeof mobileMq.addEventListener === 'function') {\n mobileMq.addEventListener('change', syncViewportMode);\n } else if (typeof mobileMq.addListener === 'function') {\n mobileMq.addListener(syncViewportMode);\n }\n observeStackMetrics();\n if (typeof ResizeObserver !== 'function') {\n window.addEventListener('resize', scheduleStackMetrics);\n }\n window.addEventListener('load', scheduleStackMetrics);\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(scheduleStackMetrics);\n }\n } else {\n sliderEl.classList.add('cases-v1__slider--static');\n observeStackMetrics();\n syncStackMetrics();\n if (typeof ResizeObserver !== 'function') {\n window.addEventListener('resize', scheduleStackMetrics);\n }\n window.addEventListener('load', scheduleStackMetrics);\n }\n initBeforeAfterSliders();\n scheduleStackMetrics();\n function initBeforeAfterSliders() {\n root.querySelectorAll('.cases-v1__media').forEach(function (media) {\n if (media.dataset.casesV1BeforeAfterReady === 'true') return;\n media.dataset.casesV1BeforeAfterReady = 'true';\n var handle = media.querySelector('.cases-v1__handle');\n if (!handle) return;\n var BLUR_RETURN_MS = 300;\n function clamp01(n) {\n return Math.max(0, Math.min(1, n));\n }\n function clearBlurTimer() {\n if (media.__casesV1BlurTimer) {\n clearTimeout(media.__casesV1BlurTimer);\n media.__casesV1BlurTimer = null;\n }\n }\n function scheduleBlurReturn() {\n clearBlurTimer();\n media.__casesV1BlurTimer = setTimeout(function () {\n media.classList.add('is-blurred');\n media.__casesV1BlurTimer = null;\n }, BLUR_RETURN_MS);\n }\n function markActive() {\n media.classList.remove('is-blurred');\n clearBlurTimer();\n }\n function setRevealPercent(pct) {\n var safe = Math.max(0, Math.min(100, pct));\n media.style.setProperty('--cases-v1-reveal', safe.toFixed(2) + '%');\n handle.setAttribute('aria-valuenow', String(Math.round(safe)));\n }\n function percentFromClientX(clientX) {\n var rect = media.getBoundingClientRect();\n if (!rect.width) return 50;\n var x = (clientX - rect.left) \/ rect.width;\n return clamp01(x) * 100;\n }\n setRevealPercent(50);\n media.classList.add('is-blurred');\n var dragging = false;\n function onPointerMove(event) {\n if (!dragging) return;\n markActive();\n setRevealPercent(percentFromClientX(event.clientX));\n }\n function stopDrag(event) {\n if (!dragging) return;\n dragging = false;\n try { media.releasePointerCapture(event.pointerId); } catch (e) {}\n window.removeEventListener('pointermove', onPointerMove);\n window.removeEventListener('pointerup', stopDrag);\n window.removeEventListener('pointercancel', stopDrag);\n scheduleBlurReturn();\n }\n function canStartDrag(event) {\n if (event.isPrimary === false) return false;\n if (event.pointerType === 'mouse' && event.button !== 0) return false;\n return true;\n }\n function startDrag(event) {\n if (!canStartDrag(event)) return;\n event.preventDefault();\n if (swiperInstance && mobileMq.matches) event.stopPropagation();\n dragging = true;\n markActive();\n try { media.setPointerCapture(event.pointerId); } catch (e) {}\n setRevealPercent(percentFromClientX(event.clientX));\n window.addEventListener('pointermove', onPointerMove);\n window.addEventListener('pointerup', stopDrag);\n window.addEventListener('pointercancel', stopDrag);\n }\n handle.addEventListener('pointerdown', startDrag);\n media.addEventListener('pointerdown', startDrag);\n handle.addEventListener('keydown', function (event) {\n var step = 2;\n var current = parseFloat((getComputedStyle(media).getPropertyValue('--cases-v1-reveal') || '50').replace('%', '')) || 50;\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n markActive();\n setRevealPercent(current - step);\n scheduleBlurReturn();\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n markActive();\n setRevealPercent(current + step);\n scheduleBlurReturn();\n }\n if (event.key === 'Home') {\n event.preventDefault();\n markActive();\n setRevealPercent(0);\n scheduleBlurReturn();\n }\n if (event.key === 'End') {\n event.preventDefault();\n markActive();\n setRevealPercent(100);\n scheduleBlurReturn();\n }\n });\n });\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('doctors\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.doctors-v1').forEach(function (root) {\n if (root.dataset.doctorsV1Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.doctorsV1Ready === 'true') return;\n root.dataset.doctorsV1Ready = 'true';\n var sliderEl = root.querySelector('.doctors-v1__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n if (sliderEl.querySelectorAll('.swiper-slide').length < 2) return;\n var styles = getComputedStyle(root);\n var pageStyles = getComputedStyle(document.documentElement);\n var mobileSlides = parseFloat(styles.getPropertyValue('--doctors-v1-mobile-slides-per-view')) || 1.15;\n var pageGutter = parseFloat(pageStyles.getPropertyValue('--page-gutter')) || 16;\n var paginationEl = root.querySelector('.doctors-v1__pagination');\n function syncDotsPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: mobileSlides,\n slidesPerGroup: 1,\n spaceBetween: parseFloat(styles.getPropertyValue('--doctors-v1-track-gap')) || 16,\n slidesOffsetAfter: pageGutter,\n speed: 320,\n watchOverflow: true,\n roundLengths: true,\n breakpoints: {\n 769: {\n slidesPerView: 'auto',\n spaceBetween: 24,\n slidesOffsetAfter: 0,\n },\n },\n navigation: {\n nextEl: root.querySelector('.doctors-v1__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.doctors-v1__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: syncDotsPagination,\n resize: syncDotsPagination,\n breakpoint: syncDotsPagination,\n },\n });\n root.querySelectorAll('.doctors-v1__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('quiz\/variant-1');\n document.querySelectorAll('.quiz-v1').forEach(function (root) {\n if (root.dataset.quizV1Ready === 'true') return;\n root.dataset.quizV1Ready = 'true';\n var totalSteps = parseInt(root.dataset.quizV1Total, 10) || 4;\n var stepLabelEl = root.querySelector('[data-quiz-v1-step-label]');\n var panels = root.querySelectorAll('[data-quiz-v1-step-panel]');\n var forms = root.querySelectorAll('[data-quiz-v1-form]');\n if (!panels.length || !forms.length) return;\n var currentStep = parseInt(root.dataset.quizV1Step, 10) || 1;\n function getPanel(step) {\n return root.querySelector('[data-quiz-v1-step-panel=\"' + step + '\"]');\n }\n function getForm(step) {\n return root.querySelector('[data-quiz-v1-form=\"' + step + '\"]');\n }\n function updateStepLabel(step) {\n if (!stepLabelEl) return;\n stepLabelEl.textContent = 'Шаг ' + step + ' из ' + totalSteps;\n }\n function syncStepState(step) {\n var form = getForm(step);\n var panel = getPanel(step);\n if (!form || !panel) return;\n var continueBtn = panel.querySelector('[data-quiz-v1-continue]');\n if (continueBtn) {\n var hasSelection = !!form.querySelector('[data-quiz-v1-option]:checked');\n continueBtn.disabled = !hasSelection;\n }\n var submitBtn = panel.querySelector('[data-quiz-v1-submit]');\n if (submitBtn) {\n var nameInput = form.querySelector('[name=\"name\"]');\n var phoneInput = form.querySelector('[name=\"phone\"]');\n var consentInput = form.querySelector('[data-quiz-v1-consent]');\n var isValid = !!(\n nameInput && nameInput.value.trim()\n && phoneInput && phoneInput.value.trim()\n && consentInput && consentInput.checked\n );\n submitBtn.disabled = !isValid;\n }\n }\n function updateIntroState(step) {\n var isFinal = step === totalSteps;\n root.classList.toggle('is-step-4', isFinal);\n root.querySelectorAll('[data-quiz-v1-intro-part=\"default\"]').forEach(function (el) {\n el.hidden = isFinal;\n });\n root.querySelectorAll('[data-quiz-v1-intro-part=\"final\"]').forEach(function (el) {\n el.hidden = !isFinal;\n });\n }\n function goToStep(step) {\n if (step < 1) return;\n var targetPanel = getPanel(step);\n if (!targetPanel) return;\n panels.forEach(function (panel) {\n var panelStep = parseInt(panel.dataset.quizV1StepPanel, 10);\n panel.hidden = panelStep !== step;\n });\n currentStep = step;\n root.dataset.quizV1Step = String(step);\n updateStepLabel(step);\n updateIntroState(step);\n syncStepState(step);\n }\n forms.forEach(function (form) {\n var step = parseInt(form.dataset.quizV1Form, 10);\n var panel = getPanel(step);\n if (!panel) return;\n var continueBtn = panel.querySelector('[data-quiz-v1-continue]');\n var backBtn = panel.querySelector('[data-quiz-v1-back]');\n var submitBtn = panel.querySelector('[data-quiz-v1-submit]');\n var options = form.querySelectorAll('[data-quiz-v1-option]');\n var fields = form.querySelectorAll('[data-quiz-v1-field]');\n var consentInput = form.querySelector('[data-quiz-v1-consent]');\n options.forEach(function (input) {\n input.addEventListener('change', function () {\n syncStepState(step);\n });\n });\n fields.forEach(function (input) {\n input.addEventListener('input', function () {\n syncStepState(step);\n });\n });\n if (consentInput) {\n consentInput.addEventListener('change', function () {\n syncStepState(step);\n });\n }\n if (continueBtn) {\n continueBtn.addEventListener('click', function () {\n if (continueBtn.disabled) return;\n continueBtn.classList.add('is-pressed');\n setTimeout(function () { continueBtn.classList.remove('is-pressed'); }, 160);\n if (getPanel(step + 1)) {\n goToStep(step + 1);\n }\n });\n }\n if (backBtn) {\n backBtn.addEventListener('click', function () {\n if (step <= 1) return;\n goToStep(step - 1);\n });\n }\n syncStepState(step);\n });\n root.addEventListener('quiz-v1:submitted', function () {\n forms.forEach(function (quizForm) {\n quizForm.reset();\n quizForm.querySelectorAll('[data-quiz-v1-option]').forEach(function (option) {\n option.checked = false;\n });\n });\n goToStep(1);\n });\n goToStep(currentStep);\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('reviews\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.reviews-v1').forEach(function (root) {\n if (root.dataset.reviewsV1Ready === 'true') return;\n root.dataset.reviewsV1Ready = 'true';\n function updateTextCardOverflow(card) {\n var quote = card.querySelector('.reviews-v1__quote');\n var readMore = card.querySelector('[data-reviews-v1-read-full]');\n var quoteBlock = card.querySelector('.reviews-v1__quote-block');\n if (!quote || !readMore || !quoteBlock) return;\n card.classList.remove('is-overflow');\n readMore.hidden = true;\n quote.style.removeProperty('-webkit-line-clamp');\n var styles = getComputedStyle(root);\n var maxLines = parseInt(styles.getPropertyValue('--reviews-v1-quote-lines'), 10) || 4;\n var lineCount = maxLines;\n var quoteBlockStyles = getComputedStyle(quoteBlock);\n var quoteInnerHeight = quoteBlock.clientHeight - (parseFloat(quoteBlockStyles.paddingBottom) || 0);\n quote.style.display = '-webkit-box';\n quote.style.webkitBoxOrient = 'vertical';\n quote.style.overflow = 'hidden';\n readMore.hidden = false;\n while (lineCount > 1) {\n quote.style.webkitLineClamp = String(lineCount);\n var blockHeight = quote.offsetHeight + readMore.offsetHeight + 8;\n if (blockHeight <= quoteInnerHeight + 1) {\n break;\n }\n lineCount -= 1;\n }\n quote.style.webkitLineClamp = String(lineCount);\n readMore.hidden = true;\n if (quote.scrollHeight > quote.clientHeight + 1) {\n card.classList.add('is-overflow');\n readMore.hidden = false;\n }\n }\n root.querySelectorAll('.reviews-v1__card--text').forEach(function (card) {\n updateTextCardOverflow(card);\n });\n root.addEventListener('click', function (event) {\n var readBtn = event.target.closest('[data-reviews-v1-read-full]');\n if (!readBtn || !root.contains(readBtn)) return;\n event.preventDefault();\n var card = readBtn.closest('.reviews-v1__card--text');\n var template = card ? card.querySelector('.reviews-v1__full-template') : null;\n var quote = card ? card.querySelector('.reviews-v1__quote') : null;\n if (!template || !quote || !window.Popup) return;\n var content = template.content.cloneNode(true);\n var quoteSlot = content.querySelector('[data-reviews-v1-popup-quote]');\n if (!quoteSlot) return;\n var popupQuote = quote.cloneNode(true);\n popupQuote.className = 'popup__review-text';\n popupQuote.style.removeProperty('-webkit-line-clamp');\n quoteSlot.appendChild(popupQuote);\n var popupContent = document.createElement('div');\n popupContent.appendChild(content);\n window.Popup.open('review', { html: popupContent.innerHTML });\n });\n function initSwiper() {\n if (root.dataset.reviewsV1SwiperReady === 'true') return;\n var sliderEl = root.querySelector('.reviews-v1__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n root.dataset.reviewsV1SwiperReady = 'true';\n var carouselEl = root.querySelector('.reviews-v1__carousel');\n if (!carouselEl) return;\n var styles = getComputedStyle(root);\n var mobileSlidesPerView = parseFloat(styles.getPropertyValue('--reviews-v1-mobile-slides-per-view')) || 1.15;\n var paginationEl = root.querySelector('.reviews-v1__pagination');\n function syncDotsPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n function getCarouselSettings(width) {\n var spaceBetween = width >= 769 ? 40 : 16;\n if (width >= 769) {\n return {\n slidesPerView: 'auto',\n slidesPerGroup: 1,\n spaceBetween: spaceBetween,\n };\n }\n return {\n slidesPerView: mobileSlidesPerView,\n slidesPerGroup: 1,\n spaceBetween: spaceBetween,\n };\n }\n function applyCarouselSettings(swiper, width) {\n var next = getCarouselSettings(width);\n if (\n swiper.params.slidesPerView === next.slidesPerView &&\n swiper.params.slidesPerGroup === next.slidesPerGroup &&\n swiper.params.spaceBetween === next.spaceBetween\n ) {\n return;\n }\n swiper.params.slidesPerView = next.slidesPerView;\n swiper.params.slidesPerGroup = next.slidesPerGroup;\n swiper.params.spaceBetween = next.spaceBetween;\n swiper.update();\n }\n var initial = getCarouselSettings(carouselEl.clientWidth);\n var swiper = new Swiper(sliderEl, {\n slidesPerView: initial.slidesPerView,\n slidesPerGroup: initial.slidesPerGroup,\n spaceBetween: initial.spaceBetween,\n speed: 320,\n watchOverflow: true,\n loop: false,\n rewind: true,\n navigation: {\n nextEl: root.querySelector('.reviews-v1__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.reviews-v1__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (swiper) {\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n },\n resize: function (swiper) {\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n },\n breakpoint: syncDotsPagination,\n },\n });\n requestAnimationFrame(function () {\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n });\n if (typeof ResizeObserver !== 'undefined') {\n var resizeObserver = new ResizeObserver(function () {\n applyCarouselSettings(swiper, carouselEl.clientWidth);\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n });\n resizeObserver.observe(carouselEl);\n }\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('treatment-plans\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.treatment-plans-v1').forEach(function (root) {\n if (root.dataset.treatmentPlansV1Ready === 'true') return;\n root.dataset.treatmentPlansV1Ready = 'true';\n var sliderEl = root.querySelector('.treatment-plans-v1__slider.swiper');\n var paginationEl = root.querySelector('.treatment-plans-v1__pagination');\n var navRoot = root.querySelector('.treatment-plans-v1__slider-nav');\n var toolbarEl = root.querySelector('.treatment-plans-v1__slider-toolbar');\n var planCount = parseInt(root.dataset.planCount, 10) || 0;\n function getMobileMediaQuery() {\n var bp = getComputedStyle(document.documentElement).getPropertyValue('--bp-md').trim() || '768px';\n return window.matchMedia('(max-width: ' + bp + ')');\n }\n var mobileMq = getMobileMediaQuery();\n var swiperInstance = null;\n function syncDotsPagination(swiper, forceRender) {\n if (!swiper.pagination || !paginationEl) return;\n if (mobileMq.matches) {\n swiper.pagination.disable();\n return;\n }\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n }\n function syncSliderNav(swiper) {\n if (!toolbarEl) return;\n var needsNav = !mobileMq.matches && (planCount > 3 || !swiper.isLocked);\n toolbarEl.classList.toggle('is-visible', needsNav);\n }\n function destroySlider() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n }\n function initSlider() {\n if (mobileMq.matches || swiperInstance || !sliderEl || typeof Swiper === 'undefined') return;\n if (sliderEl.querySelectorAll('.swiper-slide').length < 1) return;\n var pageStyles = getComputedStyle(document.documentElement);\n var pageGutter = parseFloat(pageStyles.getPropertyValue('--page-gutter')) || 16;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 'auto',\n slidesPerGroup: 1,\n spaceBetween: 16,\n slidesOffsetAfter: pageGutter,\n speed: 320,\n watchOverflow: true,\n roundLengths: true,\n breakpoints: {\n 769: {\n slidesPerView: 'auto',\n spaceBetween: 40,\n slidesOffsetAfter: 0,\n },\n },\n navigation: navRoot ? {\n nextEl: navRoot.querySelector('.slider-nav__btn--next'),\n prevEl: navRoot.querySelector('.slider-nav__btn--prev'),\n } : false,\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (instance) {\n instance.update();\n syncDotsPagination(instance, true);\n syncSliderNav(instance);\n },\n resize: function (instance) {\n instance.update();\n syncDotsPagination(instance, false);\n syncSliderNav(instance);\n },\n breakpoint: function (instance) {\n syncDotsPagination(instance, true);\n syncSliderNav(instance);\n },\n update: syncSliderNav,\n lock: syncSliderNav,\n unlock: syncSliderNav,\n },\n });\n syncSliderNav(swiperInstance);\n if (navRoot) {\n navRoot.querySelectorAll('.slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n }\n function syncSliderMode() {\n destroySlider();\n syncAccordionVisibility();\n if (mobileMq.matches) return;\n requestAnimationFrame(function () {\n requestAnimationFrame(initSlider);\n });\n }\n var accordionItems = root.querySelectorAll('.treatment-plans-v1__card');\n var reduceMotionMq = window.matchMedia('(prefers-reduced-motion: reduce)');\n var accordionCloseMotionMs = 300;\n function shouldAnimateAccordion() {\n return mobileMq.matches && !reduceMotionMq.matches;\n }\n function syncAccordionVisibility() {\n accordionItems.forEach(function (item) {\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n var panel = item.querySelector('.treatment-plans-v1__plan-panel');\n if (!panel) return;\n if (!mobileMq.matches) {\n panel.hidden = false;\n item.classList.remove('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'false');\n return;\n }\n if (!item.classList.contains('is-open')) {\n panel.hidden = true;\n if (trigger) trigger.setAttribute('aria-expanded', 'false');\n }\n });\n }\n function scrollOpenedAccordionItem(item) {\n if (!mobileMq.matches) return;\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n if (!trigger) return;\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n var margin = 16;\n var rect = trigger.getBoundingClientRect();\n var offset = 0;\n if (rect.top < margin) {\n offset = rect.top - margin;\n } else if (rect.bottom > window.innerHeight - margin) {\n offset = rect.bottom - window.innerHeight + margin;\n }\n if (offset !== 0) {\n window.scrollBy({ top: offset, behavior: 'smooth' });\n }\n });\n });\n }\n function closeAccordionItem(entry) {\n var entryTrigger = entry.querySelector('[data-treatment-plans-v1-trigger]');\n var entryPanel = entry.querySelector('.treatment-plans-v1__plan-panel');\n if (!entryPanel || !entry.classList.contains('is-open')) {\n return;\n }\n entry.classList.remove('is-open');\n if (entryTrigger) entryTrigger.setAttribute('aria-expanded', 'false');\n if (!shouldAnimateAccordion()) {\n entryPanel.hidden = true;\n return;\n }\n var done = false;\n function finish() {\n if (done) return;\n done = true;\n entryPanel.removeEventListener('transitionend', onEnd);\n entryPanel.hidden = true;\n }\n function onEnd(event) {\n if (event.target !== entryPanel || event.propertyName !== 'grid-template-rows') return;\n finish();\n }\n entryPanel.addEventListener('transitionend', onEnd);\n window.setTimeout(finish, accordionCloseMotionMs + 20);\n }\n function openAccordionItem(item) {\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n var panel = item.querySelector('.treatment-plans-v1__plan-panel');\n if (!panel) return;\n panel.hidden = false;\n if (shouldAnimateAccordion()) {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n item.classList.add('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'true');\n scrollOpenedAccordionItem(item);\n });\n });\n return;\n }\n item.classList.add('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'true');\n scrollOpenedAccordionItem(item);\n }\n root.querySelectorAll('[data-treatment-plans-v1-trigger]').forEach(function (trigger) {\n trigger.addEventListener('click', function () {\n if (!mobileMq.matches) return;\n var item = trigger.closest('.treatment-plans-v1__card');\n if (!item) return;\n var isOpen = item.classList.contains('is-open');\n if (isOpen) {\n closeAccordionItem(item);\n return;\n }\n accordionItems.forEach(function (entry) {\n if (entry !== item) {\n closeAccordionItem(entry);\n }\n });\n openAccordionItem(item);\n });\n });\n function bootSwiper() {\n syncSliderMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n mobileMq.addEventListener('change', syncSliderMode);\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('brands\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.brands-v2').forEach(function (root) {\n if (root.dataset.brandsV2Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.brandsV2Ready === 'true') return;\n root.dataset.brandsV2Ready = 'true';\n var sliderEl = root.querySelector('.brands-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.brands-v2__pagination');\n var navPrev = root.querySelector('.brands-v2__controls .slider-nav__btn--prev');\n var navNext = root.querySelector('.brands-v2__controls .slider-nav__btn--next');\n new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 320,\n loop: true,\n watchOverflow: true,\n roundLengths: true,\n observer: true,\n observeParents: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n });\n root.querySelectorAll('.brands-v2__controls .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('utp-in-numbers\/variant-1');\n document.querySelectorAll('.utp-numbers-v1').forEach(function (root) {\n var video = root.querySelector('.utp-numbers-v1__tile--05 video');\n if (!video) return;\n function ensureVideoSource() {\n if (video.currentSrc) return;\n var source = video.querySelector('source[data-src]');\n if (!source || !source.dataset.src) return;\n source.src = source.dataset.src;\n video.load();\n }\n function bootVideo() {\n ensureVideoSource();\n var playPromise = video.play();\n if (playPromise && typeof playPromise.catch === 'function') {\n playPromise.catch(function () {});\n }\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootVideo);\n } else {\n bootVideo();\n }\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('guarantees\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.guarantees-v2').forEach(function (root) {\n if (root.dataset.guaranteesV2Ready === 'true') return;\n root.dataset.guaranteesV2Ready = 'true';\n var form = root.querySelector('.guarantees-v2__form');\n if (!form) return;\n form.addEventListener('submit', function (e) {\n e.preventDefault();\n });\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('gallery\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.gallery-v1').forEach(function (root) {\n if (root.dataset.galleryV1Ready === 'true') return;\n root.dataset.galleryV1Ready = 'true';\n if (typeof Swiper === 'undefined') return;\n var heroEl = root.querySelector('.gallery-v1__hero.swiper');\n if (!heroEl) return;\n var heroSlides = heroEl.querySelectorAll('.swiper-slide');\n if (heroSlides.length < 2) return;\n var heroLoader = root.querySelector('[data-gallery-v1-hero-loader]');\n var paginationEl = root.querySelector('.gallery-v1__pagination');\n var navPrev = root.querySelector('.slider-nav__btn--prev');\n var navNext = root.querySelector('.slider-nav__btn--next');\n var heroLoadId = 0;\n var heroTouchMq = window.matchMedia('(max-width: 1360px)');\n function isHeroTouchEnabled() {\n return heroTouchMq.matches;\n }\n function isMobile() {\n return window.matchMedia('(max-width: 768px)').matches;\n }\n function setHeroLoading(loading) {\n heroEl.classList.toggle('is-loading', !!loading);\n if (!heroLoader) return;\n if (loading) {\n heroLoader.classList.remove('is-hidden');\n } else {\n heroLoader.classList.add('is-hidden');\n }\n }\n function getActiveHeroImg(heroSwiper) {\n var slide = heroSwiper && heroSwiper.slides ? heroSwiper.slides[heroSwiper.activeIndex] : null;\n return slide ? slide.querySelector('img') : null;\n }\n function setActiveByIndex(index) {\n var thumbs = root.querySelectorAll('[data-gallery-v1-thumb]');\n thumbs.forEach(function (btn) {\n var btnIndex = parseInt(btn.dataset.galleryV1Index || '0', 10);\n var active = btnIndex === index;\n btn.classList.toggle('is-active', active);\n if (active) {\n btn.setAttribute('aria-current', 'true');\n } else {\n btn.removeAttribute('aria-current');\n }\n });\n }\n function initSwiper() {\n if (root.dataset.galleryV1SwiperReady === 'true') return;\n if (typeof Swiper === 'undefined') return;\n var heroSwiper = new Swiper(heroEl, {\n initialSlide: 0,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 320,\n loop: true,\n watchOverflow: true,\n roundLengths: true,\n effect: 'fade',\n fadeEffect: {\n crossFade: true,\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n allowTouchMove: isHeroTouchEnabled(),\n on: {\n init: function (s) {\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(s);\n },\n slideChange: function (s) {\n var index = s.realIndex || 0;\n setActiveByIndex(index);\n watchActiveHeroImage(s);\n },\n },\n });\n function watchActiveHeroImage(swiper) {\n var img = getActiveHeroImg(swiper);\n heroLoadId += 1;\n var reqId = heroLoadId;\n if (!img) {\n setHeroLoading(false);\n return;\n }\n if (img.complete && img.naturalWidth > 0) {\n setHeroLoading(false);\n return;\n }\n setHeroLoading(true);\n function done() {\n if (reqId !== heroLoadId) return;\n setHeroLoading(false);\n }\n img.addEventListener('load', done, { once: true });\n img.addEventListener('error', done, { once: true });\n }\n watchActiveHeroImage(heroSwiper);\n function syncHeroTouchMode() {\n heroSwiper.allowTouchMove = isHeroTouchEnabled();\n }\n if (typeof heroTouchMq.addEventListener === 'function') {\n heroTouchMq.addEventListener('change', syncHeroTouchMode);\n } else if (typeof heroTouchMq.addListener === 'function') {\n heroTouchMq.addListener(syncHeroTouchMode);\n }\n var thumbsEl = root.querySelector('.gallery-v1__slider.swiper');\n var thumbsSwiper = null;\n if (thumbsEl) {\n var thumbSlides = thumbsEl.querySelectorAll('.swiper-slide');\n if (thumbSlides.length > 1) {\n thumbsSwiper = new Swiper(thumbsEl, {\n initialSlide: 0,\n slidesPerView: 'auto',\n spaceBetween: 16,\n speed: 320,\n loop: true,\n watchOverflow: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n breakpoints: {\n 0: { spaceBetween: 12 },\n 1200: { spaceBetween: 16 },\n },\n on: {\n init: function (s) {\n if (isMobile()) return;\n if (typeof heroSwiper.slideToLoop === 'function') heroSwiper.slideToLoop(s.realIndex || 0, 0);\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(heroSwiper);\n },\n slideChange: function (s) {\n if (isMobile()) return;\n if (typeof heroSwiper.slideToLoop === 'function') heroSwiper.slideToLoop(s.realIndex || 0, 0);\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(heroSwiper);\n },\n },\n });\n }\n }\n root.addEventListener('click', function (event) {\n var btn = event.target.closest('[data-gallery-v1-thumb]');\n if (!btn || !root.contains(btn)) return;\n event.preventDefault();\n var index = parseInt(btn.dataset.galleryV1Index || '0', 10) || 0;\n var thumbsCount = root.querySelectorAll('[data-gallery-v1-thumb]').length || 0;\n if (thumbsSwiper && thumbsSwiper.params && thumbsSwiper.params.loop && thumbsCount > 1) {\n var current = thumbsSwiper.realIndex || 0;\n var n = thumbsCount;\n var forward = (index - current + n) % n;\n var backward = (current - index + n) % n;\n if (forward !== 0) {\n if (backward < forward) {\n if (typeof thumbsSwiper.slideToLoop === 'function') thumbsSwiper.slideToLoop(index, 0);\n } else {\n thumbsSwiper.slideTo(thumbsSwiper.activeIndex + forward, thumbsSwiper.params.speed || 320);\n }\n }\n } else if (thumbsSwiper) {\n thumbsSwiper.slideTo(index, thumbsSwiper.params.speed || 320);\n }\n if (typeof heroSwiper.slideToLoop === 'function') {\n heroSwiper.slideToLoop(index, 0);\n } else {\n heroSwiper.slideTo(index, 0);\n }\n setActiveByIndex(index);\n watchActiveHeroImage(heroSwiper);\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n root.querySelectorAll('.slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n root.dataset.galleryV1SwiperReady = 'true';\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('about\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.about-v1').forEach(function (root) {\n if (root.dataset.aboutV1Ready === 'true') return;\n root.dataset.aboutV1Ready = 'true';\n var scrollRoot = root.querySelector('.about-v1__scroll');\n var viewport = root.querySelector('.about-v1__copy-viewport');\n var track = root.querySelector('.about-v1__scrollbar');\n var thumb = root.querySelector('.about-v1__scrollbar-thumb');\n var toggleBtn = root.querySelector('[data-about-v1-toggle]');\n var toggleLabel = root.querySelector('[data-about-v1-toggle-label]');\n if (!scrollRoot || !viewport || !track || !thumb) return;\n var desktopMq = window.matchMedia('(min-width: 1201px)');\n var mobileMq = window.matchMedia('(max-width: 1200px)');\n function getToggleLabels() {\n if (!toggleBtn) return { expand: '', collapse: '' };\n return {\n expand: toggleBtn.getAttribute('data-expand-label') || '',\n collapse: toggleBtn.getAttribute('data-collapse-label') || ''\n };\n }\n function updateToggleUi() {\n if (!toggleBtn || !toggleLabel) return;\n var labels = getToggleLabels();\n var isExpanded = scrollRoot.classList.contains('is-expanded');\n toggleLabel.textContent = isExpanded ? labels.collapse : labels.expand;\n toggleBtn.setAttribute('aria-expanded', isExpanded ? 'true' : 'false');\n }\n function measureLineHeight(el) {\n var styles = getComputedStyle(el);\n var lineHeight = parseFloat(styles.lineHeight);\n if (!isNaN(lineHeight)) return lineHeight;\n return parseFloat(styles.fontSize) * 1.43;\n }\n function blockOffsetTop(block, container) {\n return block.getBoundingClientRect().top - container.getBoundingClientRect().top;\n }\n function blockOffsetBottom(block, container) {\n return block.getBoundingClientRect().bottom - container.getBoundingClientRect().top;\n }\n function computeCollapsedHeight(copyBody, targetMax) {\n var blocks = copyBody.querySelectorAll('.about-v1__lead, .about-v1__text p, .about-v1__closing');\n if (!blocks.length) return targetMax;\n var snapped = 0;\n for (var i = 0; i < blocks.length; i++) {\n var block = blocks[i];\n var top = blockOffsetTop(block, copyBody);\n var bottom = blockOffsetBottom(block, copyBody);\n if (bottom <= targetMax + 0.5) {\n snapped = bottom;\n continue;\n }\n if (top >= targetMax) break;\n var lineHeight = measureLineHeight(block);\n var lines = Math.max(1, Math.floor((targetMax - top) \/ lineHeight));\n snapped = top + lines * lineHeight;\n break;\n }\n if (snapped <= 0 && blocks[0]) {\n snapped = blockOffsetTop(blocks[0], copyBody) + measureLineHeight(blocks[0]);\n }\n return Math.ceil(snapped);\n }\n function applyMobileCollapse() {\n if (!mobileMq.matches) {\n scrollRoot.classList.remove('is-collapsible', 'is-collapsed', 'is-expanded');\n scrollRoot.style.removeProperty('--about-v1-mobile-collapsed-max');\n if (toggleBtn) toggleBtn.hidden = true;\n return;\n }\n var copyBody = root.querySelector('.about-v1__copy-body');\n if (!copyBody) return;\n var targetMax = parseFloat(getComputedStyle(root).getPropertyValue('--about-v1-mobile-collapse-target')) || 320;\n scrollRoot.classList.remove('is-collapsed', 'is-expanded');\n scrollRoot.style.removeProperty('--about-v1-mobile-collapsed-max');\n scrollRoot.style.removeProperty('max-height');\n var fullHeight = copyBody.scrollHeight;\n var collapsedHeight = computeCollapsedHeight(copyBody, targetMax);\n if (fullHeight <= collapsedHeight + 1) {\n scrollRoot.classList.remove('is-collapsible');\n if (toggleBtn) toggleBtn.hidden = true;\n return;\n }\n scrollRoot.style.setProperty('--about-v1-mobile-collapsed-max', collapsedHeight + 'px');\n scrollRoot.classList.add('is-collapsible');\n scrollRoot.classList.add('is-collapsed');\n if (toggleBtn) toggleBtn.hidden = true;\n }\n function applyScrollCap() {\n if (!desktopMq.matches) {\n root.style.removeProperty('--about-v1-scroll-max');\n scrollRoot.style.removeProperty('height');\n scrollRoot.style.removeProperty('max-height');\n applyMobileCollapse();\n return;\n }\n scrollRoot.classList.remove('is-collapsible', 'is-collapsed', 'is-expanded');\n if (toggleBtn) toggleBtn.hidden = true;\n var profile = root.querySelector('.about-v1__profile');\n var copyHead = root.querySelector('.about-v1__copy-head');\n var moreLink = root.querySelector('.about-v1__more');\n var main = root.querySelector('.about-v1__main');\n if (!profile || !copyHead || !main) return;\n var mainGap = parseFloat(getComputedStyle(main).rowGap || getComputedStyle(main).gap) || 0;\n var moreHeight = moreLink ? moreLink.getBoundingClientRect().height : 0;\n var scrollMax = Math.round(\n profile.getBoundingClientRect().height\n - copyHead.getBoundingClientRect().height\n - moreHeight\n - mainGap * 2\n );\n if (scrollMax > 0) {\n root.style.setProperty('--about-v1-scroll-max', scrollMax + 'px');\n }\n }\n function syncScrollUi() {\n if (!desktopMq.matches) return;\n var maxScroll = viewport.scrollHeight - viewport.clientHeight;\n if (maxScroll <= 1) {\n scrollRoot.classList.add('is-static');\n scrollRoot.classList.add('is-at-bottom');\n thumb.style.height = '';\n thumb.style.transform = '';\n return;\n }\n scrollRoot.classList.remove('is-static');\n scrollRoot.classList.toggle('is-at-bottom', viewport.scrollTop >= maxScroll - 1);\n var trackHeight = track.clientHeight;\n var thumbHeight = Math.max(48, (viewport.clientHeight \/ viewport.scrollHeight) * trackHeight);\n var maxThumbOffset = Math.max(0, trackHeight - thumbHeight);\n var thumbOffset = maxScroll > 0 ? (viewport.scrollTop \/ maxScroll) * maxThumbOffset : 0;\n thumb.style.height = thumbHeight + 'px';\n thumb.style.transform = 'translateY(' + thumbOffset + 'px)';\n }\n function scrollFromTrackPointer(clientY) {\n if (!desktopMq.matches) return;\n var maxScroll = viewport.scrollHeight - viewport.clientHeight;\n var trackHeight = track.clientHeight;\n var thumbHeight = thumb.offsetHeight;\n if (maxScroll <= 1 || trackHeight <= 0) return;\n var rect = track.getBoundingClientRect();\n var maxThumbOffset = Math.max(0, trackHeight - thumbHeight);\n var pointerOffset = clientY - rect.top - thumbHeight \/ 2;\n var thumbOffset = Math.max(0, Math.min(maxThumbOffset, pointerOffset));\n var ratio = maxThumbOffset > 0 ? thumbOffset \/ maxThumbOffset : 0;\n viewport.scrollTop = ratio * maxScroll;\n }\n var activePointerId = null;\n function onPointerMove(event) {\n if (event.pointerId !== activePointerId) return;\n event.preventDefault();\n scrollFromTrackPointer(event.clientY);\n }\n function stopPointerDrag(event) {\n if (event && activePointerId !== null && event.pointerId !== activePointerId) return;\n activePointerId = null;\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', stopPointerDrag);\n document.removeEventListener('pointercancel', stopPointerDrag);\n }\n function startPointerDrag(event) {\n if (!desktopMq.matches) return;\n activePointerId = event.pointerId;\n event.preventDefault();\n scrollFromTrackPointer(event.clientY);\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', stopPointerDrag);\n document.addEventListener('pointercancel', stopPointerDrag);\n }\n var syncFrame = null;\n function scheduleSyncAll() {\n if (syncFrame !== null) return;\n syncFrame = window.requestAnimationFrame(function () {\n syncFrame = null;\n syncAll();\n });\n }\n if (window.ResizeObserver) {\n var copyBody = root.querySelector('.about-v1__copy-body');\n var profile = root.querySelector('.about-v1__profile');\n var copyHead = root.querySelector('.about-v1__copy-head');\n var resizeObserver = new ResizeObserver(scheduleSyncAll);\n if (copyBody) resizeObserver.observe(copyBody);\n if (profile) resizeObserver.observe(profile);\n if (copyHead) resizeObserver.observe(copyHead);\n resizeObserver.observe(viewport);\n } else {\n window.addEventListener('resize', scheduleSyncAll);\n }\n if (toggleBtn) {\n toggleBtn.addEventListener('click', function () {\n if (mobileMq.matches) return;\n var willExpand = scrollRoot.classList.contains('is-collapsed');\n scrollRoot.classList.toggle('is-collapsed', !willExpand);\n scrollRoot.classList.toggle('is-expanded', willExpand);\n updateToggleUi();\n });\n }\n function syncAll() {\n applyScrollCap();\n syncScrollUi();\n }\n viewport.addEventListener('scroll', syncScrollUi, { passive: true });\n track.addEventListener('pointerdown', startPointerDrag);\n thumb.addEventListener('pointerdown', startPointerDrag);\n if (typeof desktopMq.addEventListener === 'function') {\n desktopMq.addEventListener('change', scheduleSyncAll);\n mobileMq.addEventListener('change', scheduleSyncAll);\n } else if (typeof desktopMq.addListener === 'function') {\n desktopMq.addListener(scheduleSyncAll);\n mobileMq.addListener(scheduleSyncAll);\n }\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(scheduleSyncAll);\n }\n syncAll();\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('news\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.news-v2').forEach(function (root) {\n if (root.dataset.newsV2Ready === 'true') return;\n root.dataset.newsV2Ready = 'true';\n var sliderEl = root.querySelector('.news-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.news-v2__pagination');\n var mobileMq = window.matchMedia('(max-width: 768px)');\n var swiperInstance = null;\n function destroySlider() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n }\n function initSlider() {\n if (!mobileMq.matches || swiperInstance) return;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n watchOverflow: true,\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n });\n }\n function syncSliderMode() {\n if (mobileMq.matches) {\n initSlider();\n } else {\n destroySlider();\n }\n }\n function bootSwiper() {\n syncSliderMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n if (typeof mobileMq.addEventListener === 'function') {\n mobileMq.addEventListener('change', syncSliderMode);\n } else if (typeof mobileMq.addListener === 'function') {\n mobileMq.addListener(syncSliderMode);\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('promo\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.promo-v2').forEach(function (root) {\n if (root.dataset.promoV2Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.promoV2Ready === 'true') return;\n root.dataset.promoV2Ready = 'true';\n var sliderEl = root.querySelector('.promo-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.promo-v2__pagination');\n function syncDotsPagination(swiper, forceRender) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n spaceBetween: 0,\n speed: 360,\n autoHeight: false,\n loop: slides.length > 1,\n navigation: {\n nextEl: root.querySelector('.promo-v2__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.promo-v2__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (swiper) { syncDotsPagination(swiper, true); },\n resize: function (swiper) { syncDotsPagination(swiper, false); },\n breakpoint: function (swiper) { syncDotsPagination(swiper, true); },\n },\n });\n root.querySelectorAll('.promo-v2__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('cta\/variant-1');\n document.addEventListener('click', function (event) {\n var btn = event.target.closest('.cta-v1 .btn');\n if (!btn) return;\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n})();\n(function () {\n document.querySelectorAll('[data-header-root]').forEach(function (root) {\n var toggle = root.querySelector('[data-header-toggle]');\n var panel = root.querySelector('[data-header-panel]');\n var navWrap = root.querySelector('.site-header__nav-wrap');\n if (!toggle || !panel) {\n return;\n }\n var navTopY = null;\n var lastSticky = null;\n var setHeaderHeight = function () {\n var topEl = root.querySelector('.site-header__top');\n var topH = topEl ? (topEl.offsetHeight || 0) : 0;\n var isMobile = window.innerWidth <= 1280;\n var h = isMobile ? topH : (root.offsetHeight || topH || 0);\n document.documentElement.style.setProperty('--site-header-h', h + 'px');\n document.documentElement.style.setProperty('--site-header-top-h', topH + 'px');\n if (navWrap) {\n var navH = navWrap.offsetHeight || 0;\n document.documentElement.style.setProperty('--site-nav-h', navH + 'px');\n var isNavFixed = document.documentElement.classList.contains('is-nav-fixed');\n var stickyOffset = 0;\n if (isMobile) {\n stickyOffset = topH;\n } else if (isNavFixed) {\n stickyOffset = navH;\n }\n document.documentElement.style.setProperty('--site-sticky-offset', stickyOffset + 'px');\n if (window.scrollY <= 0) {\n document.documentElement.classList.remove('is-nav-fixed');\n lastSticky = false;\n }\n if (!document.documentElement.classList.contains('is-nav-fixed')) {\n navTopY = navWrap.getBoundingClientRect().top + window.scrollY;\n }\n }\n root.querySelectorAll('.site-header__mega-pointer, .site-header__wide-default-pointer, .site-header__dropdown-pointer').forEach(function (pointer) {\n if (isMobile) {\n pointer.style.setProperty('display', 'none', 'important');\n } else {\n pointer.style.removeProperty('display');\n pointer.style.display = 'block';\n }\n });\n if (isMobile) {\n var stickyMenuEl = root.classList.contains('is-menu-open')\n ? root.querySelector('.site-header__shell > .container')\n : null;\n var stickyMenuH = stickyMenuEl ? stickyMenuEl.offsetHeight : topH;\n document.documentElement.style.setProperty('--site-mobile-menu-sticky-h', stickyMenuH + 'px');\n }\n };\n var closeMenu = function () {\n root.classList.remove('is-menu-open');\n document.documentElement.classList.remove('is-menu-open');\n toggle.setAttribute('aria-expanded', 'false');\n toggle.setAttribute('aria-label', 'Открыть меню');\n setHeaderHeight();\n };\n var openMenu = function () {\n root.classList.add('is-menu-open');\n document.documentElement.classList.add('is-menu-open');\n toggle.setAttribute('aria-expanded', 'true');\n toggle.setAttribute('aria-label', 'Закрыть меню');\n setHeaderHeight();\n };\n toggle.addEventListener('click', function () {\n if (root.classList.contains('is-menu-open')) {\n closeMenu();\n } else {\n openMenu();\n }\n });\n var dropdownItems = root.querySelectorAll('[data-dropdown]');\n var positionDropdownPointer = function (trigger, referenceEl, pointer) {\n if (window.innerWidth <= 1280) {\n pointer.style.setProperty('display', 'none', 'important');\n return;\n }\n var triggerRect = trigger.getBoundingClientRect();\n var referenceRect = referenceEl.getBoundingClientRect();\n var pointerHalf = 18.5;\n var pointerLeft = triggerRect.left + (triggerRect.width \/ 2) - referenceRect.left;\n var minLeft = pointerHalf + 8;\n var maxLeft = referenceRect.width - pointerHalf - 8;\n pointer.style.removeProperty('display');\n pointer.style.display = 'block';\n pointer.style.left = Math.max(minLeft, Math.min(maxLeft, pointerLeft)) + 'px';\n };\n var syncMegaPointer = function (dropdownItem) {\n if (!dropdownItem) {\n return;\n }\n var trigger = dropdownItem.querySelector('[data-dropdown-toggle]');\n if (!trigger) {\n return;\n }\n var megaDropdown = dropdownItem.querySelector('.site-header__dropdown--mega, .site-header__dropdown--wide-default');\n if (megaDropdown) {\n var container = megaDropdown.querySelector('.container');\n var megaPointer = megaDropdown.querySelector('.site-header__mega-pointer, .site-header__wide-default-pointer');\n if (container && megaPointer) {\n positionDropdownPointer(trigger, container, megaPointer);\n }\n }\n var smallDropdown = dropdownItem.querySelector('.site-header__dropdown--small');\n if (smallDropdown) {\n var smallPointer = smallDropdown.querySelector('.site-header__dropdown-pointer');\n if (smallPointer) {\n positionDropdownPointer(trigger, smallDropdown, smallPointer);\n }\n }\n };\n var closeAllDropdowns = function () {\n dropdownItems.forEach(function (li) {\n li.classList.remove('is-open');\n var btn = li.querySelector('[data-dropdown-toggle]');\n if (btn) btn.setAttribute('aria-expanded', 'false');\n });\n };\n dropdownItems.forEach(function (li) {\n var btn = li.querySelector('[data-dropdown-toggle]');\n if (!btn) return;\n btn.addEventListener('click', function (e) {\n e.preventDefault();\n var isOpen = li.classList.contains('is-open');\n closeAllDropdowns();\n if (!isOpen) {\n li.classList.add('is-open');\n btn.setAttribute('aria-expanded', 'true');\n if (window.innerWidth <= 1280) {\n var megaMenu = li.querySelector('[data-mega-menu]');\n collapseMegaMenuMobile(megaMenu);\n setHeaderHeight();\n scrollMobileMenuIntoView(btn);\n }\n syncMegaPointer(li);\n window.requestAnimationFrame(function () {\n syncMegaPointer(li);\n });\n }\n });\n });\n root.querySelectorAll('[data-dropdown-close]').forEach(function (btn) {\n btn.addEventListener('click', function () {\n closeAllDropdowns();\n var toggleBtn = root.querySelector('[data-dropdown-toggle][aria-expanded=\"true\"]');\n if (toggleBtn) {\n toggleBtn.focus();\n }\n });\n });\n var megaMenus = root.querySelectorAll('[data-mega-menu]');\n var syncMegaPanelMount = function () {\n var isDesktop = window.innerWidth > 1280;\n megaMenus.forEach(function (menu) {\n var host = menu.querySelector('[data-mega-panels-host]');\n if (!host) {\n return;\n }\n host.hidden = !isDesktop;\n host.setAttribute('aria-hidden', isDesktop ? 'false' : 'true');\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n var button = block.querySelector('[data-mega-category]');\n if (!button) {\n return;\n }\n var panelId = button.getAttribute('aria-controls');\n if (!panelId) {\n return;\n }\n var panel = menu.querySelector('#' + panelId);\n if (!panel) {\n return;\n }\n if (isDesktop) {\n if (panel.parentElement !== host) {\n host.appendChild(panel);\n }\n } else if (panel.parentElement !== block) {\n block.appendChild(panel);\n }\n });\n });\n };\n var setMegaCategory = function (menu, nextButton) {\n if (!menu || !nextButton) {\n return;\n }\n var nextPanelId = nextButton.getAttribute('aria-controls');\n if (!nextPanelId) {\n return;\n }\n menu.querySelectorAll('[data-mega-category]').forEach(function (button) {\n var isActive = button === nextButton;\n button.classList.toggle('is-active', isActive);\n button.setAttribute('aria-selected', isActive ? 'true' : 'false');\n button.setAttribute('aria-expanded', isActive ? 'true' : 'false');\n });\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n var blockButton = block.querySelector('[data-mega-category]');\n block.classList.toggle('is-open', blockButton === nextButton);\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panelEl) {\n var isActive = panelEl.id === nextPanelId;\n panelEl.classList.toggle('is-active', isActive);\n panelEl.hidden = !isActive;\n });\n if (window.innerWidth <= 1280) {\n setHeaderHeight();\n }\n };\n var collapseMegaMenuMobile = function (menu) {\n if (!menu) {\n return;\n }\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n block.classList.remove('is-open');\n });\n menu.querySelectorAll('[data-mega-category]').forEach(function (btn) {\n btn.classList.remove('is-active');\n btn.setAttribute('aria-selected', 'false');\n btn.setAttribute('aria-expanded', 'false');\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n });\n };\n var mobileMenuScrollAnim = null;\n var scrollMobileMenuIntoView = function (targetEl) {\n if (!targetEl || window.innerWidth > 1280 || !root.classList.contains('is-menu-open')) {\n return;\n }\n var stickyEl = root.querySelector('.site-header__shell > .container');\n var run = function () {\n var scrollRect = root.getBoundingClientRect();\n var targetRect = targetEl.getBoundingClientRect();\n var marginTop = 8;\n var marginBottom = 24;\n var stickyBottom = stickyEl\n ? stickyEl.getBoundingClientRect().bottom\n : scrollRect.top + (parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--site-header-top-h')) || 0);\n var viewTop = stickyBottom + marginTop;\n var viewBottom = scrollRect.bottom - marginBottom;\n var delta = 0;\n if (targetRect.top < viewTop) {\n delta = targetRect.top - viewTop;\n } else if (targetRect.bottom > viewBottom) {\n delta = targetRect.bottom - viewBottom;\n if (targetRect.top - delta < viewTop) {\n delta = targetRect.top - viewTop;\n }\n }\n if (delta === 0) {\n return;\n }\n if (mobileMenuScrollAnim !== null) {\n window.cancelAnimationFrame(mobileMenuScrollAnim);\n mobileMenuScrollAnim = null;\n }\n var startTop = root.scrollTop;\n var distance = Math.abs(delta);\n var duration = Math.min(560, Math.max(380, distance * 0.55));\n var startTime = null;\n var easeInOutCubic = function (t) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) \/ 2;\n };\n var step = function (timestamp) {\n if (startTime === null) {\n startTime = timestamp;\n }\n var progress = Math.min(1, (timestamp - startTime) \/ duration);\n root.scrollTop = startTop + delta * easeInOutCubic(progress);\n if (progress < 1) {\n mobileMenuScrollAnim = window.requestAnimationFrame(step);\n } else {\n mobileMenuScrollAnim = null;\n }\n };\n mobileMenuScrollAnim = window.requestAnimationFrame(step);\n };\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(run);\n });\n };\n var resetMegaCategories = function () {\n syncMegaPanelMount();\n megaMenus.forEach(function (menu) {\n if (window.innerWidth <= 1280) {\n collapseMegaMenuMobile(menu);\n return;\n }\n var defaultButton = menu.querySelector('[data-mega-category].is-active') || menu.querySelector('[data-mega-category]');\n if (defaultButton) {\n setMegaCategory(menu, defaultButton);\n }\n });\n };\n megaMenus.forEach(function (menu) {\n menu.querySelectorAll('[data-mega-category]').forEach(function (button) {\n button.addEventListener('mouseenter', function () {\n if (window.innerWidth > 1280) {\n setMegaCategory(menu, button);\n }\n });\n button.addEventListener('focus', function () {\n if (window.innerWidth > 1280) {\n setMegaCategory(menu, button);\n }\n });\n button.addEventListener('click', function (e) {\n e.preventDefault();\n if (window.innerWidth <= 1280) {\n var block = button.closest('[data-mega-category-block]');\n if (!block) {\n return;\n }\n var willOpen = !block.classList.contains('is-open');\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (itemBlock) {\n itemBlock.classList.remove('is-open');\n });\n menu.querySelectorAll('[data-mega-category]').forEach(function (categoryButton) {\n categoryButton.classList.remove('is-active');\n categoryButton.setAttribute('aria-selected', 'false');\n categoryButton.setAttribute('aria-expanded', 'false');\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panelEl) {\n panelEl.classList.remove('is-active');\n panelEl.hidden = true;\n });\n if (willOpen) {\n setMegaCategory(menu, button);\n }\n setHeaderHeight();\n if (willOpen) {\n scrollMobileMenuIntoView(block);\n }\n return;\n }\n setMegaCategory(menu, button);\n });\n });\n });\n resetMegaCategories();\n document.addEventListener('click', function (e) {\n if (!root.contains(e.target)) return;\n var insideDropdown = e.target.closest('[data-dropdown]');\n if (!insideDropdown) {\n closeAllDropdowns();\n }\n });\n panel.querySelectorAll('a').forEach(function (link) {\n link.addEventListener('click', function () {\n if (window.innerWidth <= 1280) {\n closeMenu();\n }\n });\n });\n var onScroll = function () {\n if (window.innerWidth <= 1280 || !navWrap || navTopY === null) {\n if (document.documentElement.classList.contains('is-nav-fixed')) {\n document.documentElement.classList.remove('is-nav-fixed');\n }\n return;\n }\n var isFixed = document.documentElement.classList.contains('is-nav-fixed');\n if (!isFixed) {\n navTopY = navWrap.getBoundingClientRect().top + window.scrollY;\n }\n if (!isFixed) {\n var shouldFix = window.scrollY > 0 && navWrap.getBoundingClientRect().top <= 0;\n if (shouldFix && shouldFix !== lastSticky) {\n document.documentElement.classList.add('is-nav-fixed');\n lastSticky = true;\n setHeaderHeight();\n }\n return;\n }\n var shouldUnfix =\n window.scrollY <= 0 ||\n window.scrollY < (navTopY - 1) ||\n navWrap.getBoundingClientRect().top > 1;\n if (shouldUnfix) {\n document.documentElement.classList.remove('is-nav-fixed');\n lastSticky = false;\n setHeaderHeight();\n }\n };\n var syncNavLayout = function () {\n setHeaderHeight();\n onScroll();\n };\n var resizeFrame = null;\n var resizeActionsPending = false;\n function scheduleNavLayout(runResizeActions) {\n if (runResizeActions) resizeActionsPending = true;\n if (resizeFrame !== null) return;\n resizeFrame = window.requestAnimationFrame(function () {\n resizeFrame = null;\n syncNavLayout();\n if (resizeActionsPending) {\n resizeActionsPending = false;\n if (window.innerWidth > 1280) {\n closeMenu();\n }\n closeAllDropdowns();\n resetMegaCategories();\n }\n root.querySelectorAll('.site-header__menu-item.is-open').forEach(function (item) {\n syncMegaPointer(item);\n });\n });\n }\n window.addEventListener('resize', function () {\n scheduleNavLayout(true);\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeMenu();\n closeAllDropdowns();\n resetMegaCategories();\n }\n });\n var logoImg = root.querySelector('.site-header__logo');\n if (logoImg && !logoImg.complete) {\n logoImg.addEventListener('load', syncNavLayout, { once: true });\n }\n window.addEventListener('load', syncNavLayout, { once: true });\n window.addEventListener('pageshow', syncNavLayout);\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(syncNavLayout);\n }\n if (window.ResizeObserver && navWrap) {\n var headerTopEl = root.querySelector('.site-header__top');\n var headerResizeObserver = new ResizeObserver(function () {\n scheduleNavLayout(false);\n });\n if (headerTopEl) {\n headerResizeObserver.observe(headerTopEl);\n }\n headerResizeObserver.observe(navWrap);\n }\n syncNavLayout();\n window.addEventListener('scroll', onScroll, { passive: true });\n });\n})();\n(function () {\n document.querySelectorAll('[data-back-to-top]').forEach(function (btn) {\n var threshold = 500;\n var update = function () {\n var visible = window.scrollY > threshold;\n btn.hidden = !visible;\n btn.classList.toggle('is-visible', visible);\n };\n btn.addEventListener('click', function () {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n });\n update();\n window.addEventListener('scroll', update, { passive: true });\n });\n})();",
    "script_core": "(function initLazyInit() {\n var DEFAULT_ROOT_MARGIN = '200px 0px';\n function parseRootMarginBottom(rootMargin) {\n var parts = String(rootMargin || DEFAULT_ROOT_MARGIN).trim().split(\/\\s+\/);\n var bottom = parts[2] || parts[0] || '0px';\n var value = parseFloat(bottom);\n if (Number.isNaN(value)) return 0;\n return bottom.indexOf('vh') !== -1 ? (window.innerHeight * value) \/ 100 : value;\n }\n function isInViewport(el, rootMargin) {\n if (!el || !el.getBoundingClientRect) return false;\n var rect = el.getBoundingClientRect();\n var margin = parseRootMarginBottom(rootMargin);\n return rect.top < window.innerHeight + margin && rect.bottom > 0;\n }\n function whenVisible(element, callback, options) {\n options = options || {};\n var rootMargin = options.rootMargin || DEFAULT_ROOT_MARGIN;\n var once = options.once !== false;\n if (!element || typeof callback !== 'function') {\n return function () {};\n }\n if (isInViewport(element, rootMargin)) {\n callback();\n return function () {};\n }\n if (!('IntersectionObserver' in window)) {\n callback();\n return function () {};\n }\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) return;\n callback();\n if (once) observer.unobserve(entry.target);\n });\n }, {\n root: options.root || null,\n rootMargin: rootMargin,\n threshold: options.threshold != null ? options.threshold : 0,\n });\n observer.observe(element);\n return function () {\n observer.unobserve(element);\n };\n }\n window.LazyInit = {\n whenVisible: whenVisible,\n isInViewport: isInViewport,\n };\n})();\nwindow.__LOADED_SECTIONS = window.__LOADED_SECTIONS || [];\n(function initAccessibleWysiwygTables() {\n var tableCounter = 0;\n var resizeObserver = typeof ResizeObserver === 'function'\n ? new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n syncScrollableRegion(entry.target);\n });\n })\n : null;\n function tableLabel(table) {\n var caption = table.querySelector('caption');\n if (caption && caption.textContent.trim()) return caption.textContent.trim();\n var owner = table.closest('article, section');\n var heading = owner ? owner.querySelector('h1, h2, h3, h4, h5, h6') : null;\n if (heading && heading.textContent.trim()) return heading.textContent.trim();\n tableCounter += 1;\n return tableCounter === 1 ? 'Таблица данных' : 'Таблица данных ' + tableCounter;\n }\n function syncScrollableRegion(wrapper) {\n var isScrollable = wrapper.scrollWidth > wrapper.clientWidth + 1;\n if (isScrollable) {\n wrapper.tabIndex = 0;\n wrapper.setAttribute('role', 'region');\n wrapper.setAttribute('aria-label', wrapper.dataset.tableLabel);\n return;\n }\n wrapper.removeAttribute('tabindex');\n wrapper.removeAttribute('role');\n wrapper.removeAttribute('aria-label');\n }\n function normalizeTableStructure(table) {\n Array.prototype.forEach.call(table.tBodies, function (tbody) {\n if (!tbody.querySelector('th, td') && !tbody.textContent.trim()) tbody.remove();\n });\n var head = table.tHead;\n if (head) {\n Array.prototype.forEach.call(head.querySelectorAll('th:not([scope])'), function (cell) {\n cell.setAttribute('scope', 'col');\n });\n var reference = Array.prototype.find.call(table.children, function (child) {\n return child.tagName !== 'CAPTION' && child.tagName !== 'COLGROUP';\n });\n if (reference && reference !== head) table.insertBefore(head, reference);\n }\n Array.prototype.forEach.call(table.querySelectorAll('tbody th:not([scope])'), function (cell) {\n cell.setAttribute('scope', 'row');\n });\n }\n function enhanceTable(table) {\n if (!table || table.dataset.accessibleTableReady === 'true') return;\n table.dataset.accessibleTableReady = 'true';\n normalizeTableStructure(table);\n var wrapper = document.createElement('div');\n wrapper.className = 'wysiwyg-table-scroll';\n wrapper.dataset.tableLabel = 'Прокручиваемая таблица: ' + tableLabel(table);\n table.parentNode.insertBefore(wrapper, table);\n wrapper.appendChild(table);\n syncScrollableRegion(wrapper);\n if (resizeObserver) resizeObserver.observe(wrapper);\n }\n function enhanceTables(root) {\n if (!root) return;\n if (root.nodeType === 1 && root.matches && root.matches('.wysiwyg table')) enhanceTable(root);\n if (root.querySelectorAll) root.querySelectorAll('.wysiwyg table').forEach(enhanceTable);\n }\n enhanceTables(document);\n if ('MutationObserver' in window && document.body) {\n new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(enhanceTables);\n });\n }).observe(document.body, { childList: true, subtree: true });\n }\n})();\n(function initPopups() {\n var POPUP_CLOSE_MS = 340;\n var activePopup = null; \/\/ текущий .popup[data-popup]\n var lastFocus = null; \/\/ элемент, на который вернуть фокус при закрытии\n var loadingTriggerBtn = null; \/\/ кнопка, открывшая remote-форму\n var LOADING_POPUP_NAME = '__loading';\n var scrollLocked = false;\n var closeTimer = null; \/\/ fallback, если transitionend не сработал\n var hasStableGutter = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('scrollbar-gutter', 'stable');\n var supportsInert = typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\n var FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',');\n function isFocusableElement(el) {\n if (!el || el.disabled || el.getAttribute('aria-hidden') === 'true') return false;\n if (!el.matches(FOCUSABLE_SELECTOR)) return false;\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n }\n function getDialogFocusableElements(dialog) {\n if (!dialog) return [];\n return Array.prototype.filter.call(\n dialog.querySelectorAll(FOCUSABLE_SELECTOR),\n isFocusableElement\n );\n }\n function getInitialFocusTarget(popup) {\n var okBtn = popup.querySelector('.popup-form-result__ok');\n if (okBtn) return okBtn;\n var form = popup.querySelector('form[data-popup-form], form.popup-form');\n if (form) {\n var field = form.querySelector(\n 'input:not([type=\"hidden\"]):not([disabled]), select:not([disabled]), textarea:not([disabled])'\n );\n if (field) return field;\n }\n return popup.querySelector('.popup__close');\n }\n function setPageInert(inert) {\n if (!supportsInert) return;\n var popupsRoot = document.querySelector('.popups, [data-popups-root]');\n Array.prototype.forEach.call(document.body.children, function (child) {\n if (popupsRoot && child === popupsRoot) return;\n child.inert = inert;\n });\n }\n function handlePopupKeydown(event) {\n if (!activePopup) return;\n if (event.key === 'Escape') {\n event.preventDefault();\n closePopup();\n return;\n }\n if (event.key !== 'Tab') return;\n var dialog = activePopup.querySelector('.popup__dialog');\n if (!dialog) return;\n var focusable = getDialogFocusableElements(dialog);\n if (!focusable.length) {\n event.preventDefault();\n restoreFocus(dialog);\n return;\n }\n var first = focusable[0];\n var last = focusable[focusable.length - 1];\n var active = document.activeElement;\n if (event.shiftKey) {\n if (active === first || !dialog.contains(active)) {\n event.preventDefault();\n restoreFocus(last);\n }\n return;\n }\n if (active === last || !dialog.contains(active)) {\n event.preventDefault();\n restoreFocus(first);\n }\n }\n function getScrollbarWidth() {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n function lockScroll() {\n if (scrollLocked) return;\n scrollLocked = true;\n if (!hasStableGutter) {\n var sbw = getScrollbarWidth();\n if (sbw > 0) {\n document.documentElement.style.setProperty('--popup-scrollbar-width', sbw + 'px');\n document.documentElement.style.paddingRight = 'var(--popup-scrollbar-width)';\n }\n }\n document.documentElement.classList.add('is-popup-open');\n setPageInert(true);\n }\n function unlockScroll() {\n if (!scrollLocked) return;\n document.documentElement.classList.remove('is-popup-open');\n if (!hasStableGutter) {\n document.documentElement.style.paddingRight = '';\n document.documentElement.style.removeProperty('--popup-scrollbar-width');\n }\n scrollLocked = false;\n setPageInert(false);\n }\n function restoreFocus(target) {\n if (target && typeof target.focus === 'function') {\n target.focus({ preventScroll: true });\n }\n }\n function clearCloseTimer() {\n if (closeTimer) {\n clearTimeout(closeTimer);\n closeTimer = null;\n }\n }\n function findPopup(name) {\n return document.querySelector('.popup[data-popup=\"' + name + '\"]');\n }\n function getFormsFragmentUrl(customUrl) {\n if (customUrl) return customUrl;\n var url = new URL(window.location.href);\n url.searchParams.set('form', '1');\n return url.toString();\n }\n function ensurePopupsRoot() {\n var root = document.querySelector('.popups');\n if (!root) {\n root = document.createElement('div');\n root.className = 'popups';\n root.setAttribute('aria-live', 'polite');\n root.setAttribute('data-popups-root', '');\n document.body.appendChild(root);\n }\n return root;\n }\n function mountPopupNode(popupNode) {\n var name = popupNode.getAttribute('data-popup');\n var root = ensurePopupsRoot();\n var existing = root.querySelector('.popup[data-popup=\"' + name + '\"]');\n if (existing) {\n existing.replaceWith(popupNode);\n } else {\n root.appendChild(popupNode);\n }\n if (window.FormUi) window.FormUi.init(popupNode);\n return popupNode;\n }\n function clearPopupLoadingTrigger() {\n if (!loadingTriggerBtn) return;\n loadingTriggerBtn.removeAttribute('aria-busy');\n delete loadingTriggerBtn.dataset.popupLoading;\n loadingTriggerBtn = null;\n }\n function ensureLoadingPopup() {\n var root = ensurePopupsRoot();\n var popup = root.querySelector('.popup[data-popup=\"' + LOADING_POPUP_NAME + '\"]');\n if (popup) return popup;\n popup = document.createElement('div');\n popup.className = 'popup popup--form-loading';\n popup.setAttribute('data-popup', LOADING_POPUP_NAME);\n popup.setAttribute('role', 'presentation');\n popup.setAttribute('aria-busy', 'true');\n popup.hidden = true;\n popup.innerHTML =\n '<div class=\"popup-form-loading\" data-popup-close role=\"status\" aria-live=\"polite\" aria-label=\"Загрузка формы\">' +\n '<span class=\"ui-preloader\" aria-hidden=\"true\"><\/span>' +\n '<\/div>';\n root.appendChild(popup);\n return popup;\n }\n function openPopupLoading(triggerBtn) {\n closePopup(true);\n var popup = ensureLoadingPopup();\n if (triggerBtn) {\n loadingTriggerBtn = triggerBtn;\n triggerBtn.setAttribute('aria-busy', 'true');\n triggerBtn.dataset.popupLoading = '1';\n }\n lockScroll();\n lastFocus = document.activeElement;\n popup.hidden = false;\n activePopup = popup;\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n if (activePopup !== popup) return;\n popup.classList.add('is-open');\n });\n });\n }\n function closePopupLoading() {\n var popup = document.querySelector('.popup[data-popup=\"' + LOADING_POPUP_NAME + '\"]');\n clearPopupLoadingTrigger();\n if (!popup || popup.hidden) return;\n if (activePopup === popup) {\n activePopup = null;\n lastFocus = null;\n }\n popup.classList.remove('is-open');\n popup.hidden = true;\n popup.removeAttribute('aria-busy');\n unlockScroll();\n }\n function fetchAndMountPopup(name, url, options) {\n options = options || {};\n return fetch(url, {\n credentials: 'same-origin',\n headers: { Accept: 'text\/html' },\n signal: options.signal,\n })\n .then(function (res) {\n if (!res.ok) throw new Error('HTTP ' + res.status);\n return res.text();\n })\n .then(function (html) {\n var doc = new DOMParser().parseFromString(html, 'text\/html');\n var popup = doc.querySelector('.popup[data-popup=\"' + name + '\"]');\n if (!popup) throw new Error('popup \"' + name + '\" not found in fragment');\n return mountPopupNode(document.importNode(popup, true));\n });\n }\n function renderMedia(slot, options) {\n slot.innerHTML = '';\n var src = options.src || '';\n var kind = options.kind || 'image';\n if (!src) return;\n if (kind === 'video') {\n if (\/youtube\\.com|youtu\\.be|vimeo\\.com\/.test(src)) {\n var iframe = document.createElement('iframe');\n iframe.src = src;\n iframe.title = options.title || 'Видео';\n iframe.allow = 'autoplay; fullscreen; picture-in-picture';\n iframe.allowFullscreen = true;\n slot.appendChild(iframe);\n return;\n }\n var video = document.createElement('video');\n video.src = src;\n video.controls = true;\n video.autoplay = true;\n video.playsInline = true;\n if (options.poster) video.poster = options.poster;\n slot.appendChild(video);\n var playPromise = video.play();\n if (playPromise && typeof playPromise.catch === 'function') {\n playPromise.catch(function () {\n video.muted = true;\n video.play();\n });\n }\n return;\n }\n var img = document.createElement('img');\n img.src = src;\n img.alt = options.alt || '';\n slot.appendChild(img);\n }\n function renderStarsRating(rating, size) {\n size = size || 'sm';\n rating = Math.max(0, Math.min(5, parseFloat(rating) || 0));\n var wrap = document.createElement('span');\n wrap.className = 'stars-rating stars-rating--' + size;\n wrap.style.setProperty('--stars-rating-value', String(rating));\n wrap.setAttribute('aria-hidden', 'true');\n ['empty', 'fill'].forEach(function (layer) {\n var layerEl = document.createElement('span');\n layerEl.className = 'stars-rating__layer stars-rating__layer--' + layer;\n for (var i = 0; i < 5; i++) {\n var svg = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'svg');\n svg.setAttribute('class', 'icon stars-rating__icon');\n svg.setAttribute('aria-hidden', 'true');\n var use = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'use');\n use.setAttribute('href', '#icon-star');\n svg.appendChild(use);\n layerEl.appendChild(svg);\n }\n wrap.appendChild(layerEl);\n });\n return wrap;\n }\n function renderMediaMeta(popup, options) {\n var meta = popup.querySelector('[data-popup-media-meta]');\n if (!meta) return;\n var author = options.author || '';\n var service = options.service || '';\n var rating = Math.max(0, Math.min(5, parseFloat(options.rating) || 0));\n var authorEl = meta.querySelector('[data-popup-media-author]');\n var starsEl = meta.querySelector('[data-popup-media-stars]');\n var serviceRow = meta.querySelector('[data-popup-media-service]');\n var serviceValueEl = meta.querySelector('[data-popup-media-service-value]');\n if (!author && !service && !rating) {\n meta.hidden = true;\n if (authorEl) authorEl.textContent = '';\n if (starsEl) starsEl.innerHTML = '';\n if (serviceRow) serviceRow.hidden = true;\n if (serviceValueEl) serviceValueEl.textContent = '';\n return;\n }\n meta.hidden = false;\n if (authorEl) {\n authorEl.textContent = author;\n authorEl.hidden = !author;\n }\n if (starsEl) {\n starsEl.innerHTML = '';\n if (rating > 0) {\n starsEl.appendChild(renderStarsRating(rating, 'sm'));\n starsEl.hidden = false;\n } else {\n starsEl.hidden = true;\n }\n }\n if (serviceRow && serviceValueEl) {\n if (service) {\n serviceValueEl.textContent = service;\n serviceRow.hidden = false;\n } else {\n serviceValueEl.textContent = '';\n serviceRow.hidden = true;\n }\n }\n }\n function clearMediaMeta(popup) {\n renderMediaMeta(popup, {});\n }\n function finishClosePopup(popup) {\n if (popup.hidden) return;\n popup.hidden = true;\n popup.classList.remove('is-open');\n if (popup.dataset.popup === 'media') {\n var slot = popup.querySelector('[data-popup-media-slot]');\n if (slot) slot.innerHTML = '';\n clearMediaMeta(popup);\n }\n if (popup.dataset.popup === 'review') {\n var reviewSlot = popup.querySelector('[data-popup-review-slot]');\n if (reviewSlot) reviewSlot.innerHTML = '';\n }\n if (popup.dataset.popup === LOADING_POPUP_NAME) {\n clearPopupLoadingTrigger();\n popup.removeAttribute('aria-busy');\n document.dispatchEvent(new CustomEvent('popup:loading-closed'));\n }\n }\n function closePopup(instant) {\n if (!activePopup) return;\n var popup = activePopup;\n var focusTarget = lastFocus;\n clearCloseTimer();\n if (instant) {\n activePopup = null;\n lastFocus = null;\n finishClosePopup(popup);\n unlockScroll();\n restoreFocus(focusTarget);\n return;\n }\n popup.classList.remove('is-open');\n var closed = false;\n function completeClose() {\n if (closed || popup.hidden) return;\n closed = true;\n clearCloseTimer();\n if (activePopup === popup) {\n activePopup = null;\n lastFocus = null;\n }\n finishClosePopup(popup);\n unlockScroll();\n if (!activePopup) {\n restoreFocus(focusTarget);\n }\n }\n var dialog = popup.querySelector('.popup__dialog');\n if (dialog) {\n dialog.addEventListener('transitionend', function onClose(event) {\n if (event.target !== dialog || event.propertyName !== 'transform') return;\n dialog.removeEventListener('transitionend', onClose);\n completeClose();\n });\n }\n closeTimer = setTimeout(function () {\n closeTimer = null;\n completeClose();\n }, POPUP_CLOSE_MS);\n }\n function openPopup(name, options) {\n options = options || {};\n var popup = findPopup(name);\n if (!popup) {\n console.warn('[popup] не найден:', name);\n return;\n }\n closePopup(true);\n if (name === 'media') {\n var slot = popup.querySelector('[data-popup-media-slot]');\n if (slot) renderMedia(slot, options);\n renderMediaMeta(popup, options);\n }\n if (name === 'review') {\n var reviewSlot = popup.querySelector('[data-popup-review-slot]');\n if (reviewSlot) reviewSlot.innerHTML = options.html || '';\n }\n lockScroll();\n lastFocus = document.activeElement;\n popup.hidden = false;\n activePopup = popup;\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n if (activePopup !== popup) return;\n popup.classList.add('is-open');\n restoreFocus(getInitialFocusTarget(popup));\n });\n });\n }\n window.Popup = {\n open: openPopup,\n close: closePopup,\n openLoading: openPopupLoading,\n closeLoading: closePopupLoading,\n fetchAndMount: fetchAndMountPopup,\n getFormsFragmentUrl: getFormsFragmentUrl,\n };\n document.addEventListener('click', function (event) {\n var openBtn = event.target.closest('[data-popup-open]');\n if (openBtn) {\n event.preventDefault();\n var popupName = openBtn.dataset.popupOpen;\n var popupOptions = {\n src: openBtn.dataset.popupSrc || '',\n kind: openBtn.dataset.popupKind || 'image',\n alt: openBtn.dataset.popupAlt || '',\n poster: openBtn.dataset.popupPoster || '',\n title: openBtn.dataset.popupTitle || '',\n author: openBtn.dataset.popupAuthor || '',\n service: openBtn.dataset.popupService || '',\n rating: openBtn.dataset.popupRating || '',\n };\n if (window.PopupForms && window.PopupForms.handleOpenButton && window.PopupForms.handleOpenButton(openBtn, popupOptions)) {\n } else {\n openPopup(popupName, popupOptions);\n }\n openBtn.classList.add('is-pressed');\n setTimeout(function () { openBtn.classList.remove('is-pressed'); }, 160);\n return;\n }\n if (event.target.closest('[data-popup-close]')) {\n event.preventDefault();\n closePopup();\n }\n });\n document.addEventListener('keydown', handlePopupKeydown);\n})();\n(function initPhoneMasks() {\n var PREFIX = '+7 (';\n function extractDigits(value) {\n var digits = (value || '').replace(\/\\D\/g, '');\n if (digits.charAt(0) === '7' || digits.charAt(0) === '8') digits = digits.slice(1);\n return digits.slice(0, 10);\n }\n function formatDigits(digits) {\n if (!digits.length) return '';\n var out = '+7 (' + digits.slice(0, 3);\n if (digits.length <= 3) return out;\n out += ')-' + digits.slice(3, 6);\n if (digits.length <= 6) return out;\n out += '-' + digits.slice(6, 8);\n if (digits.length <= 8) return out;\n return out + '-' + digits.slice(8, 10);\n }\n function countDigitsBefore(value, pos) {\n var count = 0;\n for (var i = 0; i < pos && i < value.length; i++) {\n if (\/\\d\/.test(value.charAt(i))) count++;\n }\n return count;\n }\n function cursorAfterDigits(formatted, digitCount) {\n if (digitCount <= 0) {\n var open = formatted.indexOf('(');\n return open >= 0 ? open + 1 : 0;\n }\n var seen = 0;\n for (var i = 0; i < formatted.length; i++) {\n if (\/\\d\/.test(formatted.charAt(i))) {\n seen++;\n if (seen === digitCount) return i + 1;\n }\n }\n return formatted.length;\n }\n function syncPhoneInput(input, caretDigitCount) {\n var digits = extractDigits(input.value);\n var focused = document.activeElement === input;\n if (!digits.length) {\n input.value = focused ? PREFIX : '';\n if (focused && typeof caretDigitCount !== 'number' && input.setSelectionRange) {\n input.setSelectionRange(input.value.length, input.value.length);\n }\n return;\n }\n var formatted = formatDigits(digits);\n input.value = formatted;\n if (typeof caretDigitCount === 'number' && input.setSelectionRange) {\n var pos = cursorAfterDigits(formatted, caretDigitCount);\n input.setSelectionRange(pos, pos);\n }\n }\n function normalizeRequiredPhone(input) {\n if (!input.hasAttribute('required')) return;\n if (extractDigits(input.value).length < 10) input.value = '';\n }\n function preparePhoneForValidation(input) {\n if (!input.hasAttribute('required')) return;\n var digits = extractDigits(input.value).length;\n if (digits === 0) {\n normalizeRequiredPhone(input);\n input.setCustomValidity('');\n return;\n }\n if (digits < 10) {\n input.setCustomValidity('Введите номер телефона полностью');\n return;\n }\n input.setCustomValidity('');\n }\n function bindPhoneInput(input) {\n if (input.dataset.phoneMaskBound) return;\n input.dataset.phoneMaskBound = '1';\n input.setAttribute('inputmode', 'tel');\n if (input.hasAttribute('required')) {\n input.addEventListener('invalid', function () {\n normalizeRequiredPhone(input);\n });\n }\n input.addEventListener('focus', function () {\n syncPhoneInput(input);\n });\n input.addEventListener('blur', function () {\n syncPhoneInput(input);\n });\n input.addEventListener('input', function () {\n input.setCustomValidity('');\n var caretDigitCount = countDigitsBefore(input.value, input.selectionStart || 0);\n syncPhoneInput(input, caretDigitCount);\n });\n input.addEventListener('keydown', function (event) {\n if (event.key !== 'Backspace') return;\n var start = input.selectionStart || 0;\n var end = input.selectionEnd || 0;\n if (start !== end) return;\n if (start <= PREFIX.length) {\n event.preventDefault();\n input.value = '';\n }\n });\n input.addEventListener('paste', function (event) {\n event.preventDefault();\n var text = (event.clipboardData || window.clipboardData).getData('text') || '';\n var start = input.selectionStart || 0;\n var end = input.selectionEnd || 0;\n var before = countDigitsBefore(input.value, start);\n var next = input.value.slice(0, start) + text + input.value.slice(end);\n input.value = next;\n syncPhoneInput(input, before + extractDigits(text).length);\n });\n }\n function init(root) {\n (root || document).querySelectorAll('input[type=\"tel\"]').forEach(bindPhoneInput);\n }\n window.PhoneMask = {\n init: init,\n normalizeRequired: normalizeRequiredPhone,\n prepareForValidation: preparePhoneForValidation,\n };\n init();\n})();\n(function initCharCounters() {\n function syncCounter(field) {\n var wrap = field.closest('.field__textarea-wrap');\n if (!wrap) return;\n var counter = wrap.querySelector('[data-char-counter]');\n if (!counter) return;\n var max = parseInt(field.getAttribute('maxlength'), 10) || 1500;\n var length = (field.value || '').length;\n counter.textContent = length + '\/' + max;\n }\n function bindCharCounter(field) {\n if (field.dataset.charCounterBound) return;\n field.dataset.charCounterBound = '1';\n field.addEventListener('input', function () {\n syncCounter(field);\n });\n syncCounter(field);\n }\n function init(root) {\n (root || document).querySelectorAll('[data-char-counter-field]').forEach(bindCharCounter);\n }\n window.CharCounter = { init: init };\n init();\n})();\n(function initBviLoader() {\n var loaderScript = document.currentScript || document.querySelector('script[data-bvi-js]');\n var cssUrl = loaderScript ? loaderScript.getAttribute('data-bvi-css') : '';\n var jsUrl = loaderScript ? loaderScript.getAttribute('data-bvi-js') : '';\n var loadPromise = null;\n function hasLibrary() {\n return typeof window.isvek !== 'undefined' && typeof window.isvek.Bvi === 'function';\n }\n function boot() {\n if (!hasLibrary()) return null;\n if (window.__bviInstance) return window.__bviInstance;\n window.__bviInstance = new window.isvek.Bvi({\n target: '.bvi-open',\n fontSize: 16,\n theme: 'white',\n speech: true,\n lang: 'ru-RU',\n });\n return window.__bviInstance;\n }\n function loadStyle(url) {\n var current = document.querySelector('link[data-bvi-resource=\"style\"]');\n if (current) {\n return current.sheet\n ? Promise.resolve()\n : new Promise(function (resolve, reject) {\n current.addEventListener('load', resolve, { once: true });\n current.addEventListener('error', reject, { once: true });\n });\n }\n return new Promise(function (resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n link.setAttribute('data-bvi-resource', 'style');\n link.addEventListener('load', resolve, { once: true });\n link.addEventListener('error', function () {\n link.remove();\n reject(new Error('BVI stylesheet failed to load'));\n }, { once: true });\n document.head.appendChild(link);\n });\n }\n function loadScript(url) {\n var current = document.querySelector('script[data-bvi-resource=\"script\"]');\n if (current) {\n return hasLibrary()\n ? Promise.resolve()\n : new Promise(function (resolve, reject) {\n current.addEventListener('load', resolve, { once: true });\n current.addEventListener('error', reject, { once: true });\n });\n }\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.setAttribute('data-bvi-resource', 'script');\n script.addEventListener('load', resolve, { once: true });\n script.addEventListener('error', function () {\n script.remove();\n reject(new Error('BVI script failed to load'));\n }, { once: true });\n document.head.appendChild(script);\n });\n }\n function ensureLoaded() {\n if (window.__bviInstance) return Promise.resolve(window.__bviInstance);\n if (loadPromise) return loadPromise;\n if (!cssUrl || !jsUrl) {\n return hasLibrary()\n ? Promise.resolve(boot())\n : Promise.reject(new Error('BVI assets are unavailable'));\n }\n loadPromise = Promise.all([loadStyle(cssUrl), loadScript(jsUrl)])\n .then(function () {\n if (!hasLibrary()) throw new Error('BVI library did not initialize');\n return boot();\n })\n .catch(function (error) {\n loadPromise = null;\n throw error;\n });\n return loadPromise;\n }\n function findTrigger(target) {\n return target && typeof target.closest === 'function' ? target.closest('.bvi-open') : null;\n }\n function preloadOnIntent(event) {\n if (!findTrigger(event.target) || window.__bviInstance) return;\n ensureLoaded().catch(function () {\n });\n }\n document.addEventListener('pointerover', preloadOnIntent);\n document.addEventListener('focusin', preloadOnIntent);\n document.addEventListener('click', function (event) {\n var trigger = findTrigger(event.target);\n if (!trigger || window.__bviInstance) return;\n event.preventDefault();\n ensureLoaded()\n .then(function () {\n trigger.click();\n })\n .catch(function (error) {\n console.error('Не удалось загрузить версию для слабовидящих:', error);\n });\n });\n if (\/(?:^|;\\s*)bvi_panelActive=true(?:;|$)\/.test(document.cookie)) {\n ensureLoaded().catch(function (error) {\n console.error('Не удалось восстановить версию для слабовидящих:', error);\n });\n }\n})();\n(function initSectionReveal() {\n var REVEAL_TRANSITION = 'transform .4s ease';\n function isSectionInViewport(el) {\n var rect = el.getBoundingClientRect();\n return rect.top < window.innerHeight && rect.bottom > 0;\n }\n function revealSection(el) {\n el.style.transition = REVEAL_TRANSITION;\n el.style.transform = 'none';\n }\n function prepareHiddenSection(el) {\n el.style.transform = 'translateY(8px)';\n }\n document.addEventListener('DOMContentLoaded', function () {\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n var sections = document.querySelectorAll('.page > section');\n if (!sections.length) return;\n if (!('IntersectionObserver' in window)) return;\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (!entry.isIntersecting) return;\n revealSection(entry.target);\n observer.unobserve(entry.target);\n });\n }, {\n root: null,\n rootMargin: '0px 0px -5% 0px',\n threshold: 0.05,\n });\n sections.forEach(function (el) {\n if (isSectionInViewport(el)) {\n return;\n }\n prepareHiddenSection(el);\n observer.observe(el);\n });\n });\n})();\n(function initSwiperSlideImagesPatch() {\n if (typeof Swiper === 'undefined') return;\n var SwiperOriginal = Swiper;\n var DEFAULT_PRELOAD = 1;\n function resolveElement(el) {\n if (!el) return null;\n if (typeof el === 'string') return document.querySelector(el);\n return el;\n }\n function resolveSlidesPerView(options) {\n var spv = options.slidesPerView;\n if (options.breakpoints && typeof options.breakpoints === 'object') {\n var width = window.innerWidth;\n var points = Object.keys(options.breakpoints)\n .map(Number)\n .filter(function (n) { return !Number.isNaN(n); })\n .sort(function (a, b) { return a - b; });\n var matched = null;\n points.forEach(function (bp) {\n if (width >= bp) matched = bp;\n });\n if (matched !== null && options.breakpoints[matched] && options.breakpoints[matched].slidesPerView != null) {\n spv = options.breakpoints[matched].slidesPerView;\n }\n }\n if (spv === 'auto') return 1;\n if (typeof spv === 'number' && spv > 0) return Math.ceil(spv);\n return 1;\n }\n function getInitiallyVisibleSlideIndices(slideCount, options) {\n var start = typeof options.initialSlide === 'number' ? options.initialSlide : 0;\n if (start < 0) start = 0;\n var visible = resolveSlidesPerView(options);\n var indices = [];\n for (var i = 0; i < visible && start + i < slideCount; i++) {\n indices.push(start + i);\n }\n return indices;\n }\n function shouldKeepImageSrc(img) {\n if (!img || img.getAttribute('data-swiper-lazy-skip') !== null) return true;\n if (img.getAttribute('fetchpriority') === 'high') return true;\n return false;\n }\n function loadSlideImages(slide) {\n if (!slide) return;\n slide.querySelectorAll('img[data-src], img[src]').forEach(function (img) {\n img.setAttribute('loading', img.getAttribute('fetchpriority') === 'high' ? 'eager' : 'lazy');\n if (!img.getAttribute('src')) {\n var src = img.getAttribute('data-src');\n if (!src) return;\n img.setAttribute('src', src);\n img.removeAttribute('data-src');\n var srcset = img.getAttribute('data-srcset');\n if (srcset) {\n img.setAttribute('srcset', srcset);\n img.removeAttribute('data-srcset');\n }\n }\n if (!img.getAttribute('decoding')) {\n img.setAttribute('decoding', 'async');\n }\n });\n }\n function getActuallyVisibleSlides(swiper) {\n var visible = [];\n if (!swiper || !swiper.el || !swiper.slides) return visible;\n var viewport = swiper.el.getBoundingClientRect();\n Array.prototype.forEach.call(swiper.slides, function (slide) {\n if (!slide || !slide.getClientRects().length) return;\n var rect = slide.getBoundingClientRect();\n var horizontal = rect.right > viewport.left + 1 && rect.left < viewport.right - 1;\n var vertical = rect.bottom > viewport.top + 1 && rect.top < viewport.bottom - 1;\n if (rect.width > 0 && rect.height > 0 && horizontal && vertical) {\n visible.push(slide);\n }\n });\n return visible;\n }\n function loadVisibleSlideImages(swiper, amount) {\n if (!swiper || !swiper.slides || !swiper.slides.length) return;\n var spv = swiper.params.slidesPerView === 'auto'\n ? swiper.slidesPerViewDynamic()\n : Math.ceil(swiper.params.slidesPerView) || 1;\n var start = swiper.activeIndex;\n var end = start + spv - 1;\n var len = swiper.slides.length;\n var visibleSlides = getActuallyVisibleSlides(swiper);\n if (!visibleSlides.length) {\n for (var visibleIndex = start; visibleIndex <= Math.min(len - 1, end); visibleIndex++) {\n visibleSlides.push(swiper.slides[visibleIndex]);\n }\n }\n for (var activeIndex = start; activeIndex <= Math.min(len - 1, end); activeIndex++) {\n if (visibleSlides.indexOf(swiper.slides[activeIndex]) === -1) {\n visibleSlides.push(swiper.slides[activeIndex]);\n }\n }\n visibleSlides.forEach(function (slide) {\n loadSlideImages(slide);\n });\n for (var i = Math.max(0, start - amount); i <= Math.min(len - 1, end + amount); i++) {\n if (visibleSlides.indexOf(swiper.slides[i]) !== -1) continue;\n loadSlideImages(swiper.slides[i]);\n }\n }\n function prepareSlides(el, options) {\n if (!el) return;\n var slides = el.querySelectorAll('.swiper-slide');\n if (!slides.length) return;\n var initiallyVisible = getInitiallyVisibleSlideIndices(slides.length, options || {});\n var initiallyVisibleSet = {};\n initiallyVisible.forEach(function (index) {\n initiallyVisibleSet[index] = true;\n });\n slides.forEach(function (slide, index) {\n if (initiallyVisibleSet[index]) return;\n slide.querySelectorAll('img[src]').forEach(function (img) {\n if (shouldKeepImageSrc(img)) return;\n if (img.getAttribute('data-src')) return;\n var src = img.getAttribute('src');\n if (!src) return;\n img.setAttribute('data-src', src);\n img.removeAttribute('src');\n img.setAttribute('loading', 'lazy');\n img.removeAttribute('fetchpriority');\n var srcset = img.getAttribute('srcset');\n if (srcset) {\n img.setAttribute('data-srcset', srcset);\n img.removeAttribute('srcset');\n }\n if (!img.getAttribute('decoding')) {\n img.setAttribute('decoding', 'async');\n }\n });\n });\n el.dataset.swiperLazyPrepared = '1';\n }\n function appendSwiperHook(options, eventName, handler) {\n if (!options.on) {\n options.on = {};\n } else if (!Array.isArray(options.on)) {\n options.on = Object.assign({}, options.on);\n } else {\n options.on = options.on.slice();\n }\n if (Array.isArray(options.on)) {\n var hook = {};\n hook[eventName] = handler;\n options.on.push(hook);\n return;\n }\n var prev = options.on[eventName];\n options.on[eventName] = function () {\n handler.apply(this, arguments);\n if (typeof prev === 'function') {\n prev.apply(this, arguments);\n }\n };\n }\n function mergeSlideImageOptions(params) {\n var options = params ? Object.assign({}, params) : {};\n var preloadAmount = typeof options.lazyPreloadPrevNext === 'number'\n ? Math.max(0, options.lazyPreloadPrevNext)\n : DEFAULT_PRELOAD;\n options.lazyPreloadPrevNext = 0;\n function loadImages(swiper) {\n loadVisibleSlideImages(swiper, preloadAmount);\n }\n appendSwiperHook(options, 'init', loadImages);\n appendSwiperHook(options, 'slideChangeTransitionStart', loadImages);\n appendSwiperHook(options, 'breakpoint', loadImages);\n appendSwiperHook(options, 'resize', loadImages);\n return options;\n }\n function SwiperPatched(el, params) {\n var options = mergeSlideImageOptions(params);\n var element = resolveElement(el);\n if (element) prepareSlides(element, options);\n return new SwiperOriginal(el, options);\n }\n SwiperPatched.prototype = SwiperOriginal.prototype;\n Object.getOwnPropertyNames(SwiperOriginal).forEach(function (key) {\n if (key === 'prototype' || key === 'length' || key === 'name') return;\n try {\n SwiperPatched[key] = SwiperOriginal[key];\n } catch (e) { }\n });\n window.Swiper = SwiperPatched;\n})();\n(function initPopupForms() {\n function isRemoteOpenButton(openBtn) {\n return !!openBtn && openBtn.getAttribute('data-remote') === '1';\n }\n function isLeadFormPopup(popup) {\n if (!popup) return false;\n return !!popup.querySelector('form[data-popup-form], form.popup-form');\n }\n function getFormsFragmentUrl(openBtn) {\n var customUrl = openBtn && openBtn.getAttribute('data-popup-remote-url');\n if (customUrl) return customUrl;\n if (window.Popup && window.Popup.getFormsFragmentUrl) return window.Popup.getFormsFragmentUrl();\n var url = new URL(window.location.href);\n url.searchParams.set('form', '1');\n return url.toString();\n }\n function openRemotePopup(name, options, openBtn) {\n if (!window.Popup || !window.Popup.fetchAndMount || !window.Popup.open) return;\n var cancelled = false;\n var controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n function onLoadingClosed() {\n cancelled = true;\n if (controller) controller.abort();\n }\n document.addEventListener('popup:loading-closed', onLoadingClosed);\n if (window.Popup.openLoading) {\n window.Popup.openLoading(openBtn);\n }\n window.Popup.fetchAndMount(name, getFormsFragmentUrl(openBtn), {\n signal: controller ? controller.signal : undefined,\n })\n .then(function () {\n document.removeEventListener('popup:loading-closed', onLoadingClosed);\n if (cancelled) return;\n window.Popup.open(name, options);\n })\n .catch(function (err) {\n document.removeEventListener('popup:loading-closed', onLoadingClosed);\n if (cancelled || (err && err.name === 'AbortError')) return;\n console.warn('[popup-remote]', err);\n if (window.Popup.closeLoading) window.Popup.closeLoading();\n window.Popup.open(name, options);\n });\n }\n function setFormResultMessage(popup, message) {\n var textEl = popup.querySelector('[data-form-result-text]');\n if (!textEl) return;\n if (message) {\n textEl.textContent = message;\n return;\n }\n if (textEl.dataset.defaultText) {\n textEl.textContent = textEl.dataset.defaultText;\n }\n }\n function showFormResult(type, options) {\n options = options || {};\n var resultName = type === 'error' ? 'form-error' : 'form-success';\n var sourcePopup = document.querySelector('.popup.is-open');\n if (sourcePopup && isLeadFormPopup(sourcePopup) && window.Popup && window.Popup.close) {\n window.Popup.close(true);\n }\n if (window.Popup && window.Popup.open) {\n window.Popup.open(resultName);\n }\n var openedPopup = document.querySelector('.popup[data-popup=\"' + resultName + '\"]');\n if (openedPopup) setFormResultMessage(openedPopup, options.message || '');\n }\n function isLeadForm(form) {\n if (!form || form.tagName !== 'FORM') return false;\n if (form.method && form.method.toLowerCase() === 'get') return false;\n if (form.hasAttribute('data-form-no-result')) return false;\n if (form.hasAttribute('data-reviews-v5-filters-form')) return false;\n if (form.hasAttribute('data-quiz-v1-form') && form.getAttribute('data-quiz-v1-form') !== '4') return false;\n return true;\n }\n function preparePhoneFieldsForValidation(form) {\n form.querySelectorAll('input[type=\"tel\"][required]').forEach(function (input) {\n if (window.PhoneMask && window.PhoneMask.prepareForValidation) {\n window.PhoneMask.prepareForValidation(input);\n return;\n }\n if (window.PhoneMask && window.PhoneMask.normalizeRequired) {\n window.PhoneMask.normalizeRequired(input);\n }\n });\n }\n function validateLeadForm(form) {\n preparePhoneFieldsForValidation(form);\n if (!form.checkValidity()) {\n form.classList.add('popup-form--submit-attempted');\n form.reportValidity();\n return false;\n }\n form.classList.remove('popup-form--submit-attempted');\n return true;\n }\n function collectQuizPayload(leadForm) {\n var root = leadForm.closest('.quiz-v1');\n if (!root) return new FormData(leadForm);\n var payload = new FormData();\n root.querySelectorAll('[data-quiz-v1-form]').forEach(function (stepForm) {\n new FormData(stepForm).forEach(function (value, key) {\n payload.append(key, value);\n });\n });\n return payload;\n }\n function resetFormAfterSubmit(form) {\n form.querySelectorAll('input[type=\"checkbox\"][name=\"consent\"]').forEach(function (el) {\n el.checked = false;\n });\n form.classList.remove('popup-form--submit-attempted');\n syncConsentGatingVisual(form);\n var quizSubmit = form.querySelector('[data-quiz-v1-submit]');\n if (quizSubmit) quizSubmit.disabled = true;\n form.querySelectorAll('[data-char-counter-field]').forEach(function (field) {\n var wrap = field.closest('.field__textarea-wrap');\n var counter = wrap && wrap.querySelector('[data-char-counter]');\n if (!counter) return;\n var max = parseInt(field.getAttribute('maxlength'), 10) || 1500;\n counter.textContent = '0\/' + max;\n });\n }\n function setFormPending(form, isPending) {\n var dialog = form.closest('.popup__dialog');\n if (!dialog) return;\n var overlay = dialog.querySelector('[data-form-pending]');\n if (isPending) {\n dialog.setAttribute('aria-busy', 'true');\n if (!overlay) {\n overlay = document.createElement('div');\n overlay.className = 'ui-preloader-overlay';\n overlay.setAttribute('data-form-pending', '1');\n overlay.setAttribute('aria-hidden', 'true');\n overlay.innerHTML = '<span class=\"ui-preloader ui-preloader--lg\"><\/span>';\n dialog.appendChild(overlay);\n }\n return;\n }\n dialog.removeAttribute('aria-busy');\n if (overlay) overlay.remove();\n }\n function getLeadSubmitButton(form) {\n return form.querySelector('.popup-form__submit, [data-quiz-v1-submit], button[type=\"submit\"]');\n }\n function isAjaxForm(form) {\n if (form.hasAttribute('data-form-ajax')) return true;\n var action = (form.getAttribute('action') || '').trim();\n return action !== '' && action !== '#' && action.indexOf('javascript:') !== 0;\n }\n function submitLeadFormAjax(form, isQuizLead, payload) {\n var submitBtn = getLeadSubmitButton(form);\n if (submitBtn) submitBtn.disabled = true;\n setFormPending(form, true);\n var headers = {\n Accept: 'application\/json',\n 'X-Requested-With': 'XMLHttpRequest',\n };\n var csrf = document.querySelector('meta[name=\"csrf-token\"]');\n if (csrf && csrf.getAttribute('content')) {\n headers['X-CSRF-Token'] = csrf.getAttribute('content');\n }\n fetch(form.action, {\n method: (form.getAttribute('method') || 'POST').toUpperCase(),\n body: payload,\n credentials: 'same-origin',\n headers: headers,\n })\n .then(function (res) {\n return res.json().then(function (data) {\n return { ok: res.ok, data: data };\n }).catch(function () {\n return { ok: res.ok, data: {} };\n });\n })\n .then(function (result) {\n if (submitBtn) submitBtn.disabled = false;\n setFormPending(form, false);\n var data = result.data || {};\n var success = result.ok && (data.ok === true || data.success === true);\n if (success) {\n form.reset();\n resetFormAfterSubmit(form);\n if (isQuizLead) {\n var quizRoot = form.closest('.quiz-v1');\n if (quizRoot) {\n quizRoot.dispatchEvent(new CustomEvent('quiz-v1:submitted', { bubbles: false }));\n }\n }\n showFormResult('success', {\n message: data.message || form.getAttribute('data-form-success-message') || '',\n });\n return;\n }\n showFormResult('error', {\n message: data.message || data.error || '',\n });\n })\n .catch(function (err) {\n if (submitBtn) submitBtn.disabled = false;\n setFormPending(form, false);\n console.error('[form]', err);\n showFormResult('error');\n });\n }\n function handleLeadFormSubmit(form) {\n var isQuizLead = form.getAttribute('data-quiz-v1-form') === '4';\n var payload = isQuizLead ? collectQuizPayload(form) : new FormData(form);\n if (isAjaxForm(form)) {\n submitLeadFormAjax(form, isQuizLead, payload);\n return;\n }\n console.log(\n '[form] отправка:',\n form.className || form.getAttribute('data-popup-form') || (isQuizLead ? 'quiz-v1' : 'form'),\n payload\n );\n var quizSubmit = form.querySelector('[data-quiz-v1-submit]');\n if (quizSubmit) {\n quizSubmit.classList.add('is-pressed');\n setTimeout(function () { quizSubmit.classList.remove('is-pressed'); }, 160);\n }\n form.reset();\n resetFormAfterSubmit(form);\n if (isQuizLead) {\n var quizRoot = form.closest('.quiz-v1');\n if (quizRoot) {\n quizRoot.dispatchEvent(new CustomEvent('quiz-v1:submitted', { bubbles: false }));\n }\n }\n showFormResult('success', {\n message: form.getAttribute('data-form-success-message') || '',\n });\n }\n function resetConsent(root) {\n (root || document).querySelectorAll('input[type=\"checkbox\"][name=\"consent\"]').forEach(function (el) {\n el.checked = false;\n });\n }\n function syncConsentGatingVisual(form) {\n if (!form || !form.classList.contains('popup-form--consent-gated')) return;\n var consent = form.querySelector('input[name=\"consent\"]');\n var submit = getLeadSubmitButton(form);\n if (!consent || !submit) return;\n var ready = consent.checked;\n form.classList.toggle('is-consent-ready', ready);\n submit.classList.toggle('is-consent-pending', !ready);\n submit.disabled = false;\n }\n function initConsentGating(root) {\n (root || document).querySelectorAll('.popup-form--consent-gated').forEach(function (form) {\n if (form.dataset.consentGatedBound) return;\n form.dataset.consentGatedBound = '1';\n var consent = form.querySelector('input[name=\"consent\"]');\n if (!consent) return;\n consent.addEventListener('change', function () {\n syncConsentGatingVisual(form);\n });\n form.addEventListener('input', function () {\n if (form.classList.contains('popup-form--submit-attempted') && form.checkValidity()) {\n form.classList.remove('popup-form--submit-attempted');\n }\n });\n syncConsentGatingVisual(form);\n });\n }\n function initFormUi(root) {\n resetConsent(root);\n initConsentGating(root);\n if (window.PhoneMask) window.PhoneMask.init(root);\n if (window.CharCounter) window.CharCounter.init(root);\n }\n window.FormUi = { init: initFormUi };\n window.FormResult = {\n showSuccess: function (options) { showFormResult('success', options || {}); },\n showError: function (options) { showFormResult('error', options || {}); },\n };\n window.PopupForms = {\n isRemoteOpenButton: isRemoteOpenButton,\n handleOpenButton: function (openBtn, popupOptions) {\n var popupName = openBtn.dataset.popupOpen;\n if (!isRemoteOpenButton(openBtn)) return false;\n openRemotePopup(popupName, popupOptions || {}, openBtn);\n return true;\n }\n };\n document.addEventListener('submit', function (event) {\n var form = event.target;\n if (!isLeadForm(form)) return;\n event.preventDefault();\n if (!validateLeadForm(form)) return;\n handleLeadFormSubmit(form);\n });\n document.addEventListener('DOMContentLoaded', function () {\n initFormUi(document);\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('hero\/variant-4');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.hero-v4').forEach(function (root) {\n if (root.dataset.heroV4Ready === 'true') return;\n root.dataset.heroV4Ready = 'true';\n var sliderEl = root.querySelector('.hero-v4__card.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.hero-v4__slider-pagination');\n var isMobile = window.matchMedia('(max-width: 768px)').matches;\n function syncHeroPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n var mobile = window.matchMedia('(max-width: 768px)').matches;\n if (mobile) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: 1,\n speed: 300,\n loop: !isMobile,\n autoHeight: isMobile,\n navigation: {\n nextEl: root.querySelector('.hero-v4__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.hero-v4__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: syncHeroPagination,\n resize: syncHeroPagination,\n breakpoint: syncHeroPagination,\n },\n });\n root.querySelectorAll('.hero-v4__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('benefits\/variant-1');\n})();\n(function () {\n window.__LOADED_SECTIONS.push('our-approach\/variant-1');\n})();\n(function () {\n window.__LOADED_SECTIONS.push('services\/variant-3');\n function initRoot(root) {\n if (root.dataset.servicesV3Ready === 'true') return;\n root.dataset.servicesV3Ready = 'true';\n var items = root.querySelectorAll('.services-v3__item');\n if (!items.length) return;\n var list = root.querySelector('.services-v3__list');\n var desktopMq = window.matchMedia('(min-width: 1201px)');\n var reduceMotionMq = window.matchMedia('(prefers-reduced-motion: reduce)');\n var accordionCloseMotionMs = 350;\n var activeDesktopIndex = 0;\n function isDesktop() {\n return desktopMq.matches;\n }\n function shouldAnimateAccordion() {\n return !isDesktop() && !reduceMotionMq.matches;\n }\n function syncStageHeight() {\n if (!list) return;\n if (!isDesktop()) {\n list.style.minHeight = '';\n return;\n }\n var activePanel = root.querySelector('[data-services-v3-panel].is-active');\n if (!activePanel) {\n list.style.minHeight = '';\n return;\n }\n list.style.minHeight = '';\n var tabsHeight = list.offsetHeight;\n var panelHeight = activePanel.offsetHeight;\n list.style.minHeight = Math.max(tabsHeight, panelHeight) + 'px';\n }\n var stageHeightFrame = null;\n function scheduleStageHeight() {\n if (stageHeightFrame !== null) return;\n stageHeightFrame = window.requestAnimationFrame(function () {\n stageHeightFrame = null;\n syncStageHeight();\n });\n }\n function deactivateTab(tab) {\n if (!tab) return;\n tab.classList.remove('is-active');\n tab.setAttribute('aria-selected', 'false');\n tab.tabIndex = -1;\n }\n function deactivateAccordionTabVisual(item) {\n deactivateTab(item.querySelector('[data-services-v3-tab]'));\n }\n function finalizeAccordionClose(item) {\n var panel = item.querySelector('[data-services-v3-panel]');\n deactivateAccordionTabVisual(item);\n if (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n }\n }\n function activateDesktop(index) {\n activeDesktopIndex = index;\n root.querySelectorAll('[data-services-v3-tab]').forEach(function (tab) {\n var tabIndex = parseInt(tab.getAttribute('data-services-v3-index'), 10);\n var isActive = tabIndex === index;\n tab.classList.toggle('is-active', isActive);\n tab.setAttribute('aria-selected', isActive ? 'true' : 'false');\n tab.tabIndex = isActive ? 0 : -1;\n });\n root.querySelectorAll('[data-services-v3-panel]').forEach(function (panel) {\n var panelIndex = parseInt(panel.getAttribute('data-services-v3-index'), 10);\n var isActive = panelIndex === index;\n panel.classList.toggle('is-active', isActive);\n panel.hidden = !isActive;\n panel.setAttribute('aria-hidden', isActive ? 'false' : 'true');\n });\n items.forEach(function (item) {\n item.classList.remove('is-open');\n });\n scheduleStageHeight();\n }\n function closeAccordionItem(item, instantVisual) {\n var panel = item.querySelector('[data-services-v3-panel]');\n if (!panel || (!item.classList.contains('is-open') && panel.hidden)) return;\n item.classList.remove('is-open');\n panel.setAttribute('aria-hidden', 'true');\n if (instantVisual) {\n deactivateAccordionTabVisual(item);\n }\n if (!shouldAnimateAccordion()) {\n finalizeAccordionClose(item);\n return;\n }\n var done = false;\n function finish() {\n if (done) return;\n done = true;\n panel.removeEventListener('transitionend', onEnd);\n finalizeAccordionClose(item);\n }\n function onEnd(event) {\n if (event.target !== panel || event.propertyName !== 'grid-template-rows') return;\n finish();\n }\n panel.addEventListener('transitionend', onEnd);\n window.setTimeout(finish, accordionCloseMotionMs + 20);\n }\n function openAccordionItem(item) {\n var tab = item.querySelector('[data-services-v3-tab]');\n var panel = item.querySelector('[data-services-v3-panel]');\n if (!panel) return;\n var index = parseInt(panel.getAttribute('data-services-v3-index'), 10);\n if (!isNaN(index)) {\n activeDesktopIndex = index;\n }\n panel.hidden = false;\n if (tab) {\n tab.classList.add('is-active');\n tab.setAttribute('aria-selected', 'true');\n tab.tabIndex = 0;\n }\n panel.classList.add('is-active');\n panel.setAttribute('aria-hidden', 'false');\n if (shouldAnimateAccordion()) {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n item.classList.add('is-open');\n });\n });\n return;\n }\n item.classList.add('is-open');\n }\n function resetMobileAccordion() {\n items.forEach(function (item) {\n item.classList.remove('is-open');\n deactivateAccordionTabVisual(item);\n var panel = item.querySelector('[data-services-v3-panel]');\n if (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n panel.setAttribute('aria-hidden', 'true');\n }\n });\n }\n function syncLayout() {\n if (isDesktop()) {\n activateDesktop(activeDesktopIndex);\n syncStageHeight();\n return;\n }\n if (list) {\n list.style.minHeight = '';\n }\n resetMobileAccordion();\n }\n root.addEventListener('click', function (event) {\n var tab = event.target.closest('[data-services-v3-tab]');\n if (!tab || !root.contains(tab)) return;\n var index = parseInt(tab.getAttribute('data-services-v3-index'), 10);\n if (isNaN(index)) return;\n if (isDesktop()) {\n activateDesktop(index);\n return;\n }\n var item = tab.closest('.services-v3__item');\n if (!item) return;\n if (item.classList.contains('is-open')) {\n closeAccordionItem(item);\n return;\n }\n items.forEach(function (entry) {\n if (entry !== item) closeAccordionItem(entry, true);\n });\n openAccordionItem(item);\n });\n root.addEventListener('keydown', function (event) {\n var tab = event.target.closest('[data-services-v3-tab]');\n if (!tab || !root.contains(tab)) return;\n var tabs = Array.prototype.slice.call(root.querySelectorAll('[data-services-v3-tab]'));\n var index = tabs.indexOf(tab);\n if (index === -1) return;\n var nextIndex = index;\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n nextIndex = (index + 1) % tabs.length;\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n nextIndex = (index - 1 + tabs.length) % tabs.length;\n } else {\n return;\n }\n event.preventDefault();\n var nextTab = tabs[nextIndex];\n var nextItemIndex = parseInt(nextTab.getAttribute('data-services-v3-index'), 10);\n if (isDesktop()) {\n activateDesktop(nextItemIndex);\n nextTab.focus();\n return;\n }\n var item = nextTab.closest('.services-v3__item');\n if (!item) return;\n items.forEach(function (entry) {\n if (entry !== item) closeAccordionItem(entry, true);\n });\n openAccordionItem(item);\n nextTab.focus();\n });\n if (typeof desktopMq.addEventListener === 'function') {\n desktopMq.addEventListener('change', syncLayout);\n } else if (typeof desktopMq.addListener === 'function') {\n desktopMq.addListener(syncLayout);\n }\n root.querySelectorAll('.services-v3__media-img').forEach(function (img) {\n if (img.complete) return;\n img.addEventListener('load', syncStageHeight, { once: true });\n });\n window.addEventListener('resize', scheduleStageHeight);\n syncLayout();\n }\n function boot() {\n document.querySelectorAll('.services-v3').forEach(initRoot);\n }\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', boot);\n } else {\n boot();\n }\n})();\n(function () {\n window.__LOADED_SECTIONS.push('cases\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.cases-v1').forEach(function (root) {\n if (root.dataset.casesV1Ready === 'true') return;\n root.dataset.casesV1Ready = 'true';\n var sliderEl = root.querySelector('.cases-v1__slider.swiper');\n if (!sliderEl) return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n var paginationEl = root.querySelector('.cases-v1__pagination');\n var paginationHost = root.querySelector('.cases-v1__slider-foot .slider-pagination-host');\n var navPrev = root.querySelector('.cases-v1__slider-nav .slider-nav__btn--prev');\n var navNext = root.querySelector('.cases-v1__slider-nav .slider-nav__btn--next');\n var canSlide = slides.length > 1;\n var mobileMq = window.matchMedia('(max-width: 768px)');\n var swiperInstance = null;\n var stackMetricsObserver = null;\n var stackMetricsFrame = null;\n function syncStackMetrics() {\n if (mobileMq.matches) {\n root.style.removeProperty('--cases-v1-panel-h');\n root.style.removeProperty('--cases-v1-stack-tail');\n return;\n }\n var panelHeight = 0;\n root.querySelectorAll('.cases-v1__panel').forEach(function (panel) {\n panelHeight = Math.max(panelHeight, panel.offsetHeight);\n });\n if (panelHeight > 0) {\n root.style.setProperty('--cases-v1-panel-h', panelHeight + 'px');\n root.style.setProperty('--cases-v1-stack-tail', canSlide ? '64px' : '0px');\n }\n }\n function scheduleStackMetrics() {\n if (stackMetricsFrame !== null) return;\n stackMetricsFrame = window.requestAnimationFrame(function () {\n stackMetricsFrame = null;\n syncStackMetrics();\n });\n }\n function observeStackMetrics() {\n if (typeof ResizeObserver !== 'function' || stackMetricsObserver) return;\n stackMetricsObserver = new ResizeObserver(scheduleStackMetrics);\n root.querySelectorAll('.cases-v1__panel').forEach(function (panel) {\n stackMetricsObserver.observe(panel);\n });\n }\n function syncDotsPagination(swiper, options) {\n if (!swiper || !swiper.pagination || !paginationEl) return;\n options = options || {};\n var forceRender = options.forceRender !== false;\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n var bulletCount = paginationEl.querySelectorAll('.swiper-pagination-bullet').length;\n if (paginationHost) paginationHost.hidden = bulletCount <= 1;\n }\n function destroyMobileSwiper() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n sliderEl.classList.remove('is-settled');\n }\n function initMobileSwiper() {\n if (!mobileMq.matches || !canSlide || swiperInstance || typeof Swiper === 'undefined') return;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 400,\n loop: false,\n rewind: true,\n allowTouchMove: true,\n roundLengths: true,\n watchOverflow: true,\n observer: true,\n observeParents: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n pagination: paginationEl ? {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n } : undefined,\n on: {\n init: function (swiper) {\n swiper.el.classList.add('is-settled');\n swiper.update();\n syncDotsPagination(swiper);\n },\n resize: function (swiper) {\n swiper.update();\n syncDotsPagination(swiper);\n },\n slideChange: function (swiper) {\n syncDotsPagination(swiper, { forceRender: false });\n },\n touchStart: function (swiper) {\n swiper.el.classList.remove('is-settled');\n },\n slideChangeTransitionStart: function (swiper) {\n swiper.el.classList.remove('is-settled');\n },\n transitionEnd: function (swiper) {\n swiper.el.classList.add('is-settled');\n },\n },\n });\n root.querySelectorAll('.cases-v1__slider-nav .slider-nav__btn').forEach(function (btn) {\n if (btn.dataset.casesV1NavReady === 'true') return;\n btn.dataset.casesV1NavReady = 'true';\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n function syncViewportMode() {\n if (mobileMq.matches) {\n initMobileSwiper();\n return;\n }\n destroyMobileSwiper();\n if (paginationHost) paginationHost.hidden = true;\n syncStackMetrics();\n }\n if (canSlide) {\n function bootSwiper() {\n syncViewportMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n if (typeof mobileMq.addEventListener === 'function') {\n mobileMq.addEventListener('change', syncViewportMode);\n } else if (typeof mobileMq.addListener === 'function') {\n mobileMq.addListener(syncViewportMode);\n }\n observeStackMetrics();\n if (typeof ResizeObserver !== 'function') {\n window.addEventListener('resize', scheduleStackMetrics);\n }\n window.addEventListener('load', scheduleStackMetrics);\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(scheduleStackMetrics);\n }\n } else {\n sliderEl.classList.add('cases-v1__slider--static');\n observeStackMetrics();\n syncStackMetrics();\n if (typeof ResizeObserver !== 'function') {\n window.addEventListener('resize', scheduleStackMetrics);\n }\n window.addEventListener('load', scheduleStackMetrics);\n }\n initBeforeAfterSliders();\n scheduleStackMetrics();\n function initBeforeAfterSliders() {\n root.querySelectorAll('.cases-v1__media').forEach(function (media) {\n if (media.dataset.casesV1BeforeAfterReady === 'true') return;\n media.dataset.casesV1BeforeAfterReady = 'true';\n var handle = media.querySelector('.cases-v1__handle');\n if (!handle) return;\n var BLUR_RETURN_MS = 300;\n function clamp01(n) {\n return Math.max(0, Math.min(1, n));\n }\n function clearBlurTimer() {\n if (media.__casesV1BlurTimer) {\n clearTimeout(media.__casesV1BlurTimer);\n media.__casesV1BlurTimer = null;\n }\n }\n function scheduleBlurReturn() {\n clearBlurTimer();\n media.__casesV1BlurTimer = setTimeout(function () {\n media.classList.add('is-blurred');\n media.__casesV1BlurTimer = null;\n }, BLUR_RETURN_MS);\n }\n function markActive() {\n media.classList.remove('is-blurred');\n clearBlurTimer();\n }\n function setRevealPercent(pct) {\n var safe = Math.max(0, Math.min(100, pct));\n media.style.setProperty('--cases-v1-reveal', safe.toFixed(2) + '%');\n handle.setAttribute('aria-valuenow', String(Math.round(safe)));\n }\n function percentFromClientX(clientX) {\n var rect = media.getBoundingClientRect();\n if (!rect.width) return 50;\n var x = (clientX - rect.left) \/ rect.width;\n return clamp01(x) * 100;\n }\n setRevealPercent(50);\n media.classList.add('is-blurred');\n var dragging = false;\n function onPointerMove(event) {\n if (!dragging) return;\n markActive();\n setRevealPercent(percentFromClientX(event.clientX));\n }\n function stopDrag(event) {\n if (!dragging) return;\n dragging = false;\n try { media.releasePointerCapture(event.pointerId); } catch (e) {}\n window.removeEventListener('pointermove', onPointerMove);\n window.removeEventListener('pointerup', stopDrag);\n window.removeEventListener('pointercancel', stopDrag);\n scheduleBlurReturn();\n }\n function canStartDrag(event) {\n if (event.isPrimary === false) return false;\n if (event.pointerType === 'mouse' && event.button !== 0) return false;\n return true;\n }\n function startDrag(event) {\n if (!canStartDrag(event)) return;\n event.preventDefault();\n if (swiperInstance && mobileMq.matches) event.stopPropagation();\n dragging = true;\n markActive();\n try { media.setPointerCapture(event.pointerId); } catch (e) {}\n setRevealPercent(percentFromClientX(event.clientX));\n window.addEventListener('pointermove', onPointerMove);\n window.addEventListener('pointerup', stopDrag);\n window.addEventListener('pointercancel', stopDrag);\n }\n handle.addEventListener('pointerdown', startDrag);\n media.addEventListener('pointerdown', startDrag);\n handle.addEventListener('keydown', function (event) {\n var step = 2;\n var current = parseFloat((getComputedStyle(media).getPropertyValue('--cases-v1-reveal') || '50').replace('%', '')) || 50;\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n markActive();\n setRevealPercent(current - step);\n scheduleBlurReturn();\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n markActive();\n setRevealPercent(current + step);\n scheduleBlurReturn();\n }\n if (event.key === 'Home') {\n event.preventDefault();\n markActive();\n setRevealPercent(0);\n scheduleBlurReturn();\n }\n if (event.key === 'End') {\n event.preventDefault();\n markActive();\n setRevealPercent(100);\n scheduleBlurReturn();\n }\n });\n });\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('doctors\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.doctors-v1').forEach(function (root) {\n if (root.dataset.doctorsV1Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.doctorsV1Ready === 'true') return;\n root.dataset.doctorsV1Ready = 'true';\n var sliderEl = root.querySelector('.doctors-v1__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n if (sliderEl.querySelectorAll('.swiper-slide').length < 2) return;\n var styles = getComputedStyle(root);\n var pageStyles = getComputedStyle(document.documentElement);\n var mobileSlides = parseFloat(styles.getPropertyValue('--doctors-v1-mobile-slides-per-view')) || 1.15;\n var pageGutter = parseFloat(pageStyles.getPropertyValue('--page-gutter')) || 16;\n var paginationEl = root.querySelector('.doctors-v1__pagination');\n function syncDotsPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: mobileSlides,\n slidesPerGroup: 1,\n spaceBetween: parseFloat(styles.getPropertyValue('--doctors-v1-track-gap')) || 16,\n slidesOffsetAfter: pageGutter,\n speed: 320,\n watchOverflow: true,\n roundLengths: true,\n breakpoints: {\n 769: {\n slidesPerView: 'auto',\n spaceBetween: 24,\n slidesOffsetAfter: 0,\n },\n },\n navigation: {\n nextEl: root.querySelector('.doctors-v1__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.doctors-v1__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: syncDotsPagination,\n resize: syncDotsPagination,\n breakpoint: syncDotsPagination,\n },\n });\n root.querySelectorAll('.doctors-v1__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('quiz\/variant-1');\n document.querySelectorAll('.quiz-v1').forEach(function (root) {\n if (root.dataset.quizV1Ready === 'true') return;\n root.dataset.quizV1Ready = 'true';\n var totalSteps = parseInt(root.dataset.quizV1Total, 10) || 4;\n var stepLabelEl = root.querySelector('[data-quiz-v1-step-label]');\n var panels = root.querySelectorAll('[data-quiz-v1-step-panel]');\n var forms = root.querySelectorAll('[data-quiz-v1-form]');\n if (!panels.length || !forms.length) return;\n var currentStep = parseInt(root.dataset.quizV1Step, 10) || 1;\n function getPanel(step) {\n return root.querySelector('[data-quiz-v1-step-panel=\"' + step + '\"]');\n }\n function getForm(step) {\n return root.querySelector('[data-quiz-v1-form=\"' + step + '\"]');\n }\n function updateStepLabel(step) {\n if (!stepLabelEl) return;\n stepLabelEl.textContent = 'Шаг ' + step + ' из ' + totalSteps;\n }\n function syncStepState(step) {\n var form = getForm(step);\n var panel = getPanel(step);\n if (!form || !panel) return;\n var continueBtn = panel.querySelector('[data-quiz-v1-continue]');\n if (continueBtn) {\n var hasSelection = !!form.querySelector('[data-quiz-v1-option]:checked');\n continueBtn.disabled = !hasSelection;\n }\n var submitBtn = panel.querySelector('[data-quiz-v1-submit]');\n if (submitBtn) {\n var nameInput = form.querySelector('[name=\"name\"]');\n var phoneInput = form.querySelector('[name=\"phone\"]');\n var consentInput = form.querySelector('[data-quiz-v1-consent]');\n var isValid = !!(\n nameInput && nameInput.value.trim()\n && phoneInput && phoneInput.value.trim()\n && consentInput && consentInput.checked\n );\n submitBtn.disabled = !isValid;\n }\n }\n function updateIntroState(step) {\n var isFinal = step === totalSteps;\n root.classList.toggle('is-step-4', isFinal);\n root.querySelectorAll('[data-quiz-v1-intro-part=\"default\"]').forEach(function (el) {\n el.hidden = isFinal;\n });\n root.querySelectorAll('[data-quiz-v1-intro-part=\"final\"]').forEach(function (el) {\n el.hidden = !isFinal;\n });\n }\n function goToStep(step) {\n if (step < 1) return;\n var targetPanel = getPanel(step);\n if (!targetPanel) return;\n panels.forEach(function (panel) {\n var panelStep = parseInt(panel.dataset.quizV1StepPanel, 10);\n panel.hidden = panelStep !== step;\n });\n currentStep = step;\n root.dataset.quizV1Step = String(step);\n updateStepLabel(step);\n updateIntroState(step);\n syncStepState(step);\n }\n forms.forEach(function (form) {\n var step = parseInt(form.dataset.quizV1Form, 10);\n var panel = getPanel(step);\n if (!panel) return;\n var continueBtn = panel.querySelector('[data-quiz-v1-continue]');\n var backBtn = panel.querySelector('[data-quiz-v1-back]');\n var submitBtn = panel.querySelector('[data-quiz-v1-submit]');\n var options = form.querySelectorAll('[data-quiz-v1-option]');\n var fields = form.querySelectorAll('[data-quiz-v1-field]');\n var consentInput = form.querySelector('[data-quiz-v1-consent]');\n options.forEach(function (input) {\n input.addEventListener('change', function () {\n syncStepState(step);\n });\n });\n fields.forEach(function (input) {\n input.addEventListener('input', function () {\n syncStepState(step);\n });\n });\n if (consentInput) {\n consentInput.addEventListener('change', function () {\n syncStepState(step);\n });\n }\n if (continueBtn) {\n continueBtn.addEventListener('click', function () {\n if (continueBtn.disabled) return;\n continueBtn.classList.add('is-pressed');\n setTimeout(function () { continueBtn.classList.remove('is-pressed'); }, 160);\n if (getPanel(step + 1)) {\n goToStep(step + 1);\n }\n });\n }\n if (backBtn) {\n backBtn.addEventListener('click', function () {\n if (step <= 1) return;\n goToStep(step - 1);\n });\n }\n syncStepState(step);\n });\n root.addEventListener('quiz-v1:submitted', function () {\n forms.forEach(function (quizForm) {\n quizForm.reset();\n quizForm.querySelectorAll('[data-quiz-v1-option]').forEach(function (option) {\n option.checked = false;\n });\n });\n goToStep(1);\n });\n goToStep(currentStep);\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('reviews\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.reviews-v1').forEach(function (root) {\n if (root.dataset.reviewsV1Ready === 'true') return;\n root.dataset.reviewsV1Ready = 'true';\n function updateTextCardOverflow(card) {\n var quote = card.querySelector('.reviews-v1__quote');\n var readMore = card.querySelector('[data-reviews-v1-read-full]');\n var quoteBlock = card.querySelector('.reviews-v1__quote-block');\n if (!quote || !readMore || !quoteBlock) return;\n card.classList.remove('is-overflow');\n readMore.hidden = true;\n quote.style.removeProperty('-webkit-line-clamp');\n var styles = getComputedStyle(root);\n var maxLines = parseInt(styles.getPropertyValue('--reviews-v1-quote-lines'), 10) || 4;\n var lineCount = maxLines;\n var quoteBlockStyles = getComputedStyle(quoteBlock);\n var quoteInnerHeight = quoteBlock.clientHeight - (parseFloat(quoteBlockStyles.paddingBottom) || 0);\n quote.style.display = '-webkit-box';\n quote.style.webkitBoxOrient = 'vertical';\n quote.style.overflow = 'hidden';\n readMore.hidden = false;\n while (lineCount > 1) {\n quote.style.webkitLineClamp = String(lineCount);\n var blockHeight = quote.offsetHeight + readMore.offsetHeight + 8;\n if (blockHeight <= quoteInnerHeight + 1) {\n break;\n }\n lineCount -= 1;\n }\n quote.style.webkitLineClamp = String(lineCount);\n readMore.hidden = true;\n if (quote.scrollHeight > quote.clientHeight + 1) {\n card.classList.add('is-overflow');\n readMore.hidden = false;\n }\n }\n root.querySelectorAll('.reviews-v1__card--text').forEach(function (card) {\n updateTextCardOverflow(card);\n });\n root.addEventListener('click', function (event) {\n var readBtn = event.target.closest('[data-reviews-v1-read-full]');\n if (!readBtn || !root.contains(readBtn)) return;\n event.preventDefault();\n var card = readBtn.closest('.reviews-v1__card--text');\n var template = card ? card.querySelector('.reviews-v1__full-template') : null;\n var quote = card ? card.querySelector('.reviews-v1__quote') : null;\n if (!template || !quote || !window.Popup) return;\n var content = template.content.cloneNode(true);\n var quoteSlot = content.querySelector('[data-reviews-v1-popup-quote]');\n if (!quoteSlot) return;\n var popupQuote = quote.cloneNode(true);\n popupQuote.className = 'popup__review-text';\n popupQuote.style.removeProperty('-webkit-line-clamp');\n quoteSlot.appendChild(popupQuote);\n var popupContent = document.createElement('div');\n popupContent.appendChild(content);\n window.Popup.open('review', { html: popupContent.innerHTML });\n });\n function initSwiper() {\n if (root.dataset.reviewsV1SwiperReady === 'true') return;\n var sliderEl = root.querySelector('.reviews-v1__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n root.dataset.reviewsV1SwiperReady = 'true';\n var carouselEl = root.querySelector('.reviews-v1__carousel');\n if (!carouselEl) return;\n var styles = getComputedStyle(root);\n var mobileSlidesPerView = parseFloat(styles.getPropertyValue('--reviews-v1-mobile-slides-per-view')) || 1.15;\n var paginationEl = root.querySelector('.reviews-v1__pagination');\n function syncDotsPagination(swiper) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n function getCarouselSettings(width) {\n var spaceBetween = width >= 769 ? 40 : 16;\n if (width >= 769) {\n return {\n slidesPerView: 'auto',\n slidesPerGroup: 1,\n spaceBetween: spaceBetween,\n };\n }\n return {\n slidesPerView: mobileSlidesPerView,\n slidesPerGroup: 1,\n spaceBetween: spaceBetween,\n };\n }\n function applyCarouselSettings(swiper, width) {\n var next = getCarouselSettings(width);\n if (\n swiper.params.slidesPerView === next.slidesPerView &&\n swiper.params.slidesPerGroup === next.slidesPerGroup &&\n swiper.params.spaceBetween === next.spaceBetween\n ) {\n return;\n }\n swiper.params.slidesPerView = next.slidesPerView;\n swiper.params.slidesPerGroup = next.slidesPerGroup;\n swiper.params.spaceBetween = next.spaceBetween;\n swiper.update();\n }\n var initial = getCarouselSettings(carouselEl.clientWidth);\n var swiper = new Swiper(sliderEl, {\n slidesPerView: initial.slidesPerView,\n slidesPerGroup: initial.slidesPerGroup,\n spaceBetween: initial.spaceBetween,\n speed: 320,\n watchOverflow: true,\n loop: false,\n rewind: true,\n navigation: {\n nextEl: root.querySelector('.reviews-v1__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.reviews-v1__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (swiper) {\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n },\n resize: function (swiper) {\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n },\n breakpoint: syncDotsPagination,\n },\n });\n requestAnimationFrame(function () {\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n });\n if (typeof ResizeObserver !== 'undefined') {\n var resizeObserver = new ResizeObserver(function () {\n applyCarouselSettings(swiper, carouselEl.clientWidth);\n syncDotsPagination(swiper);\n root.querySelectorAll('.reviews-v1__card--text').forEach(updateTextCardOverflow);\n });\n resizeObserver.observe(carouselEl);\n }\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('treatment-plans\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.treatment-plans-v1').forEach(function (root) {\n if (root.dataset.treatmentPlansV1Ready === 'true') return;\n root.dataset.treatmentPlansV1Ready = 'true';\n var sliderEl = root.querySelector('.treatment-plans-v1__slider.swiper');\n var paginationEl = root.querySelector('.treatment-plans-v1__pagination');\n var navRoot = root.querySelector('.treatment-plans-v1__slider-nav');\n var toolbarEl = root.querySelector('.treatment-plans-v1__slider-toolbar');\n var planCount = parseInt(root.dataset.planCount, 10) || 0;\n function getMobileMediaQuery() {\n var bp = getComputedStyle(document.documentElement).getPropertyValue('--bp-md').trim() || '768px';\n return window.matchMedia('(max-width: ' + bp + ')');\n }\n var mobileMq = getMobileMediaQuery();\n var swiperInstance = null;\n function syncDotsPagination(swiper, forceRender) {\n if (!swiper.pagination || !paginationEl) return;\n if (mobileMq.matches) {\n swiper.pagination.disable();\n return;\n }\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n }\n function syncSliderNav(swiper) {\n if (!toolbarEl) return;\n var needsNav = !mobileMq.matches && (planCount > 3 || !swiper.isLocked);\n toolbarEl.classList.toggle('is-visible', needsNav);\n }\n function destroySlider() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n }\n function initSlider() {\n if (mobileMq.matches || swiperInstance || !sliderEl || typeof Swiper === 'undefined') return;\n if (sliderEl.querySelectorAll('.swiper-slide').length < 1) return;\n var pageStyles = getComputedStyle(document.documentElement);\n var pageGutter = parseFloat(pageStyles.getPropertyValue('--page-gutter')) || 16;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 'auto',\n slidesPerGroup: 1,\n spaceBetween: 16,\n slidesOffsetAfter: pageGutter,\n speed: 320,\n watchOverflow: true,\n roundLengths: true,\n breakpoints: {\n 769: {\n slidesPerView: 'auto',\n spaceBetween: 40,\n slidesOffsetAfter: 0,\n },\n },\n navigation: navRoot ? {\n nextEl: navRoot.querySelector('.slider-nav__btn--next'),\n prevEl: navRoot.querySelector('.slider-nav__btn--prev'),\n } : false,\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (instance) {\n instance.update();\n syncDotsPagination(instance, true);\n syncSliderNav(instance);\n },\n resize: function (instance) {\n instance.update();\n syncDotsPagination(instance, false);\n syncSliderNav(instance);\n },\n breakpoint: function (instance) {\n syncDotsPagination(instance, true);\n syncSliderNav(instance);\n },\n update: syncSliderNav,\n lock: syncSliderNav,\n unlock: syncSliderNav,\n },\n });\n syncSliderNav(swiperInstance);\n if (navRoot) {\n navRoot.querySelectorAll('.slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n }\n function syncSliderMode() {\n destroySlider();\n syncAccordionVisibility();\n if (mobileMq.matches) return;\n requestAnimationFrame(function () {\n requestAnimationFrame(initSlider);\n });\n }\n var accordionItems = root.querySelectorAll('.treatment-plans-v1__card');\n var reduceMotionMq = window.matchMedia('(prefers-reduced-motion: reduce)');\n var accordionCloseMotionMs = 300;\n function shouldAnimateAccordion() {\n return mobileMq.matches && !reduceMotionMq.matches;\n }\n function syncAccordionVisibility() {\n accordionItems.forEach(function (item) {\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n var panel = item.querySelector('.treatment-plans-v1__plan-panel');\n if (!panel) return;\n if (!mobileMq.matches) {\n panel.hidden = false;\n item.classList.remove('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'false');\n return;\n }\n if (!item.classList.contains('is-open')) {\n panel.hidden = true;\n if (trigger) trigger.setAttribute('aria-expanded', 'false');\n }\n });\n }\n function scrollOpenedAccordionItem(item) {\n if (!mobileMq.matches) return;\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n if (!trigger) return;\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n var margin = 16;\n var rect = trigger.getBoundingClientRect();\n var offset = 0;\n if (rect.top < margin) {\n offset = rect.top - margin;\n } else if (rect.bottom > window.innerHeight - margin) {\n offset = rect.bottom - window.innerHeight + margin;\n }\n if (offset !== 0) {\n window.scrollBy({ top: offset, behavior: 'smooth' });\n }\n });\n });\n }\n function closeAccordionItem(entry) {\n var entryTrigger = entry.querySelector('[data-treatment-plans-v1-trigger]');\n var entryPanel = entry.querySelector('.treatment-plans-v1__plan-panel');\n if (!entryPanel || !entry.classList.contains('is-open')) {\n return;\n }\n entry.classList.remove('is-open');\n if (entryTrigger) entryTrigger.setAttribute('aria-expanded', 'false');\n if (!shouldAnimateAccordion()) {\n entryPanel.hidden = true;\n return;\n }\n var done = false;\n function finish() {\n if (done) return;\n done = true;\n entryPanel.removeEventListener('transitionend', onEnd);\n entryPanel.hidden = true;\n }\n function onEnd(event) {\n if (event.target !== entryPanel || event.propertyName !== 'grid-template-rows') return;\n finish();\n }\n entryPanel.addEventListener('transitionend', onEnd);\n window.setTimeout(finish, accordionCloseMotionMs + 20);\n }\n function openAccordionItem(item) {\n var trigger = item.querySelector('[data-treatment-plans-v1-trigger]');\n var panel = item.querySelector('.treatment-plans-v1__plan-panel');\n if (!panel) return;\n panel.hidden = false;\n if (shouldAnimateAccordion()) {\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(function () {\n item.classList.add('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'true');\n scrollOpenedAccordionItem(item);\n });\n });\n return;\n }\n item.classList.add('is-open');\n if (trigger) trigger.setAttribute('aria-expanded', 'true');\n scrollOpenedAccordionItem(item);\n }\n root.querySelectorAll('[data-treatment-plans-v1-trigger]').forEach(function (trigger) {\n trigger.addEventListener('click', function () {\n if (!mobileMq.matches) return;\n var item = trigger.closest('.treatment-plans-v1__card');\n if (!item) return;\n var isOpen = item.classList.contains('is-open');\n if (isOpen) {\n closeAccordionItem(item);\n return;\n }\n accordionItems.forEach(function (entry) {\n if (entry !== item) {\n closeAccordionItem(entry);\n }\n });\n openAccordionItem(item);\n });\n });\n function bootSwiper() {\n syncSliderMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n mobileMq.addEventListener('change', syncSliderMode);\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('brands\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.brands-v2').forEach(function (root) {\n if (root.dataset.brandsV2Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.brandsV2Ready === 'true') return;\n root.dataset.brandsV2Ready = 'true';\n var sliderEl = root.querySelector('.brands-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.brands-v2__pagination');\n var navPrev = root.querySelector('.brands-v2__controls .slider-nav__btn--prev');\n var navNext = root.querySelector('.brands-v2__controls .slider-nav__btn--next');\n new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 320,\n loop: true,\n watchOverflow: true,\n roundLengths: true,\n observer: true,\n observeParents: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n });\n root.querySelectorAll('.brands-v2__controls .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('utp-in-numbers\/variant-1');\n document.querySelectorAll('.utp-numbers-v1').forEach(function (root) {\n var video = root.querySelector('.utp-numbers-v1__tile--05 video');\n if (!video) return;\n function ensureVideoSource() {\n if (video.currentSrc) return;\n var source = video.querySelector('source[data-src]');\n if (!source || !source.dataset.src) return;\n source.src = source.dataset.src;\n video.load();\n }\n function bootVideo() {\n ensureVideoSource();\n var playPromise = video.play();\n if (playPromise && typeof playPromise.catch === 'function') {\n playPromise.catch(function () {});\n }\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootVideo);\n } else {\n bootVideo();\n }\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('guarantees\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.guarantees-v2').forEach(function (root) {\n if (root.dataset.guaranteesV2Ready === 'true') return;\n root.dataset.guaranteesV2Ready = 'true';\n var form = root.querySelector('.guarantees-v2__form');\n if (!form) return;\n form.addEventListener('submit', function (e) {\n e.preventDefault();\n });\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('gallery\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.gallery-v1').forEach(function (root) {\n if (root.dataset.galleryV1Ready === 'true') return;\n root.dataset.galleryV1Ready = 'true';\n if (typeof Swiper === 'undefined') return;\n var heroEl = root.querySelector('.gallery-v1__hero.swiper');\n if (!heroEl) return;\n var heroSlides = heroEl.querySelectorAll('.swiper-slide');\n if (heroSlides.length < 2) return;\n var heroLoader = root.querySelector('[data-gallery-v1-hero-loader]');\n var paginationEl = root.querySelector('.gallery-v1__pagination');\n var navPrev = root.querySelector('.slider-nav__btn--prev');\n var navNext = root.querySelector('.slider-nav__btn--next');\n var heroLoadId = 0;\n var heroTouchMq = window.matchMedia('(max-width: 1360px)');\n function isHeroTouchEnabled() {\n return heroTouchMq.matches;\n }\n function isMobile() {\n return window.matchMedia('(max-width: 768px)').matches;\n }\n function setHeroLoading(loading) {\n heroEl.classList.toggle('is-loading', !!loading);\n if (!heroLoader) return;\n if (loading) {\n heroLoader.classList.remove('is-hidden');\n } else {\n heroLoader.classList.add('is-hidden');\n }\n }\n function getActiveHeroImg(heroSwiper) {\n var slide = heroSwiper && heroSwiper.slides ? heroSwiper.slides[heroSwiper.activeIndex] : null;\n return slide ? slide.querySelector('img') : null;\n }\n function setActiveByIndex(index) {\n var thumbs = root.querySelectorAll('[data-gallery-v1-thumb]');\n thumbs.forEach(function (btn) {\n var btnIndex = parseInt(btn.dataset.galleryV1Index || '0', 10);\n var active = btnIndex === index;\n btn.classList.toggle('is-active', active);\n if (active) {\n btn.setAttribute('aria-current', 'true');\n } else {\n btn.removeAttribute('aria-current');\n }\n });\n }\n function initSwiper() {\n if (root.dataset.galleryV1SwiperReady === 'true') return;\n if (typeof Swiper === 'undefined') return;\n var heroSwiper = new Swiper(heroEl, {\n initialSlide: 0,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 320,\n loop: true,\n watchOverflow: true,\n roundLengths: true,\n effect: 'fade',\n fadeEffect: {\n crossFade: true,\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n allowTouchMove: isHeroTouchEnabled(),\n on: {\n init: function (s) {\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(s);\n },\n slideChange: function (s) {\n var index = s.realIndex || 0;\n setActiveByIndex(index);\n watchActiveHeroImage(s);\n },\n },\n });\n function watchActiveHeroImage(swiper) {\n var img = getActiveHeroImg(swiper);\n heroLoadId += 1;\n var reqId = heroLoadId;\n if (!img) {\n setHeroLoading(false);\n return;\n }\n if (img.complete && img.naturalWidth > 0) {\n setHeroLoading(false);\n return;\n }\n setHeroLoading(true);\n function done() {\n if (reqId !== heroLoadId) return;\n setHeroLoading(false);\n }\n img.addEventListener('load', done, { once: true });\n img.addEventListener('error', done, { once: true });\n }\n watchActiveHeroImage(heroSwiper);\n function syncHeroTouchMode() {\n heroSwiper.allowTouchMove = isHeroTouchEnabled();\n }\n if (typeof heroTouchMq.addEventListener === 'function') {\n heroTouchMq.addEventListener('change', syncHeroTouchMode);\n } else if (typeof heroTouchMq.addListener === 'function') {\n heroTouchMq.addListener(syncHeroTouchMode);\n }\n var thumbsEl = root.querySelector('.gallery-v1__slider.swiper');\n var thumbsSwiper = null;\n if (thumbsEl) {\n var thumbSlides = thumbsEl.querySelectorAll('.swiper-slide');\n if (thumbSlides.length > 1) {\n thumbsSwiper = new Swiper(thumbsEl, {\n initialSlide: 0,\n slidesPerView: 'auto',\n spaceBetween: 16,\n speed: 320,\n loop: true,\n watchOverflow: true,\n navigation: {\n nextEl: navNext,\n prevEl: navPrev,\n },\n breakpoints: {\n 0: { spaceBetween: 12 },\n 1200: { spaceBetween: 16 },\n },\n on: {\n init: function (s) {\n if (isMobile()) return;\n if (typeof heroSwiper.slideToLoop === 'function') heroSwiper.slideToLoop(s.realIndex || 0, 0);\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(heroSwiper);\n },\n slideChange: function (s) {\n if (isMobile()) return;\n if (typeof heroSwiper.slideToLoop === 'function') heroSwiper.slideToLoop(s.realIndex || 0, 0);\n setActiveByIndex(s.realIndex || 0);\n watchActiveHeroImage(heroSwiper);\n },\n },\n });\n }\n }\n root.addEventListener('click', function (event) {\n var btn = event.target.closest('[data-gallery-v1-thumb]');\n if (!btn || !root.contains(btn)) return;\n event.preventDefault();\n var index = parseInt(btn.dataset.galleryV1Index || '0', 10) || 0;\n var thumbsCount = root.querySelectorAll('[data-gallery-v1-thumb]').length || 0;\n if (thumbsSwiper && thumbsSwiper.params && thumbsSwiper.params.loop && thumbsCount > 1) {\n var current = thumbsSwiper.realIndex || 0;\n var n = thumbsCount;\n var forward = (index - current + n) % n;\n var backward = (current - index + n) % n;\n if (forward !== 0) {\n if (backward < forward) {\n if (typeof thumbsSwiper.slideToLoop === 'function') thumbsSwiper.slideToLoop(index, 0);\n } else {\n thumbsSwiper.slideTo(thumbsSwiper.activeIndex + forward, thumbsSwiper.params.speed || 320);\n }\n }\n } else if (thumbsSwiper) {\n thumbsSwiper.slideTo(index, thumbsSwiper.params.speed || 320);\n }\n if (typeof heroSwiper.slideToLoop === 'function') {\n heroSwiper.slideToLoop(index, 0);\n } else {\n heroSwiper.slideTo(index, 0);\n }\n setActiveByIndex(index);\n watchActiveHeroImage(heroSwiper);\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n root.querySelectorAll('.slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n root.dataset.galleryV1SwiperReady = 'true';\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('about\/variant-1');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.about-v1').forEach(function (root) {\n if (root.dataset.aboutV1Ready === 'true') return;\n root.dataset.aboutV1Ready = 'true';\n var scrollRoot = root.querySelector('.about-v1__scroll');\n var viewport = root.querySelector('.about-v1__copy-viewport');\n var track = root.querySelector('.about-v1__scrollbar');\n var thumb = root.querySelector('.about-v1__scrollbar-thumb');\n var toggleBtn = root.querySelector('[data-about-v1-toggle]');\n var toggleLabel = root.querySelector('[data-about-v1-toggle-label]');\n if (!scrollRoot || !viewport || !track || !thumb) return;\n var desktopMq = window.matchMedia('(min-width: 1201px)');\n var mobileMq = window.matchMedia('(max-width: 1200px)');\n function getToggleLabels() {\n if (!toggleBtn) return { expand: '', collapse: '' };\n return {\n expand: toggleBtn.getAttribute('data-expand-label') || '',\n collapse: toggleBtn.getAttribute('data-collapse-label') || ''\n };\n }\n function updateToggleUi() {\n if (!toggleBtn || !toggleLabel) return;\n var labels = getToggleLabels();\n var isExpanded = scrollRoot.classList.contains('is-expanded');\n toggleLabel.textContent = isExpanded ? labels.collapse : labels.expand;\n toggleBtn.setAttribute('aria-expanded', isExpanded ? 'true' : 'false');\n }\n function measureLineHeight(el) {\n var styles = getComputedStyle(el);\n var lineHeight = parseFloat(styles.lineHeight);\n if (!isNaN(lineHeight)) return lineHeight;\n return parseFloat(styles.fontSize) * 1.43;\n }\n function blockOffsetTop(block, container) {\n return block.getBoundingClientRect().top - container.getBoundingClientRect().top;\n }\n function blockOffsetBottom(block, container) {\n return block.getBoundingClientRect().bottom - container.getBoundingClientRect().top;\n }\n function computeCollapsedHeight(copyBody, targetMax) {\n var blocks = copyBody.querySelectorAll('.about-v1__lead, .about-v1__text p, .about-v1__closing');\n if (!blocks.length) return targetMax;\n var snapped = 0;\n for (var i = 0; i < blocks.length; i++) {\n var block = blocks[i];\n var top = blockOffsetTop(block, copyBody);\n var bottom = blockOffsetBottom(block, copyBody);\n if (bottom <= targetMax + 0.5) {\n snapped = bottom;\n continue;\n }\n if (top >= targetMax) break;\n var lineHeight = measureLineHeight(block);\n var lines = Math.max(1, Math.floor((targetMax - top) \/ lineHeight));\n snapped = top + lines * lineHeight;\n break;\n }\n if (snapped <= 0 && blocks[0]) {\n snapped = blockOffsetTop(blocks[0], copyBody) + measureLineHeight(blocks[0]);\n }\n return Math.ceil(snapped);\n }\n function applyMobileCollapse() {\n if (!mobileMq.matches) {\n scrollRoot.classList.remove('is-collapsible', 'is-collapsed', 'is-expanded');\n scrollRoot.style.removeProperty('--about-v1-mobile-collapsed-max');\n if (toggleBtn) toggleBtn.hidden = true;\n return;\n }\n var copyBody = root.querySelector('.about-v1__copy-body');\n if (!copyBody) return;\n var targetMax = parseFloat(getComputedStyle(root).getPropertyValue('--about-v1-mobile-collapse-target')) || 320;\n scrollRoot.classList.remove('is-collapsed', 'is-expanded');\n scrollRoot.style.removeProperty('--about-v1-mobile-collapsed-max');\n scrollRoot.style.removeProperty('max-height');\n var fullHeight = copyBody.scrollHeight;\n var collapsedHeight = computeCollapsedHeight(copyBody, targetMax);\n if (fullHeight <= collapsedHeight + 1) {\n scrollRoot.classList.remove('is-collapsible');\n if (toggleBtn) toggleBtn.hidden = true;\n return;\n }\n scrollRoot.style.setProperty('--about-v1-mobile-collapsed-max', collapsedHeight + 'px');\n scrollRoot.classList.add('is-collapsible');\n scrollRoot.classList.add('is-collapsed');\n if (toggleBtn) toggleBtn.hidden = true;\n }\n function applyScrollCap() {\n if (!desktopMq.matches) {\n root.style.removeProperty('--about-v1-scroll-max');\n scrollRoot.style.removeProperty('height');\n scrollRoot.style.removeProperty('max-height');\n applyMobileCollapse();\n return;\n }\n scrollRoot.classList.remove('is-collapsible', 'is-collapsed', 'is-expanded');\n if (toggleBtn) toggleBtn.hidden = true;\n var profile = root.querySelector('.about-v1__profile');\n var copyHead = root.querySelector('.about-v1__copy-head');\n var moreLink = root.querySelector('.about-v1__more');\n var main = root.querySelector('.about-v1__main');\n if (!profile || !copyHead || !main) return;\n var mainGap = parseFloat(getComputedStyle(main).rowGap || getComputedStyle(main).gap) || 0;\n var moreHeight = moreLink ? moreLink.getBoundingClientRect().height : 0;\n var scrollMax = Math.round(\n profile.getBoundingClientRect().height\n - copyHead.getBoundingClientRect().height\n - moreHeight\n - mainGap * 2\n );\n if (scrollMax > 0) {\n root.style.setProperty('--about-v1-scroll-max', scrollMax + 'px');\n }\n }\n function syncScrollUi() {\n if (!desktopMq.matches) return;\n var maxScroll = viewport.scrollHeight - viewport.clientHeight;\n if (maxScroll <= 1) {\n scrollRoot.classList.add('is-static');\n scrollRoot.classList.add('is-at-bottom');\n thumb.style.height = '';\n thumb.style.transform = '';\n return;\n }\n scrollRoot.classList.remove('is-static');\n scrollRoot.classList.toggle('is-at-bottom', viewport.scrollTop >= maxScroll - 1);\n var trackHeight = track.clientHeight;\n var thumbHeight = Math.max(48, (viewport.clientHeight \/ viewport.scrollHeight) * trackHeight);\n var maxThumbOffset = Math.max(0, trackHeight - thumbHeight);\n var thumbOffset = maxScroll > 0 ? (viewport.scrollTop \/ maxScroll) * maxThumbOffset : 0;\n thumb.style.height = thumbHeight + 'px';\n thumb.style.transform = 'translateY(' + thumbOffset + 'px)';\n }\n function scrollFromTrackPointer(clientY) {\n if (!desktopMq.matches) return;\n var maxScroll = viewport.scrollHeight - viewport.clientHeight;\n var trackHeight = track.clientHeight;\n var thumbHeight = thumb.offsetHeight;\n if (maxScroll <= 1 || trackHeight <= 0) return;\n var rect = track.getBoundingClientRect();\n var maxThumbOffset = Math.max(0, trackHeight - thumbHeight);\n var pointerOffset = clientY - rect.top - thumbHeight \/ 2;\n var thumbOffset = Math.max(0, Math.min(maxThumbOffset, pointerOffset));\n var ratio = maxThumbOffset > 0 ? thumbOffset \/ maxThumbOffset : 0;\n viewport.scrollTop = ratio * maxScroll;\n }\n var activePointerId = null;\n function onPointerMove(event) {\n if (event.pointerId !== activePointerId) return;\n event.preventDefault();\n scrollFromTrackPointer(event.clientY);\n }\n function stopPointerDrag(event) {\n if (event && activePointerId !== null && event.pointerId !== activePointerId) return;\n activePointerId = null;\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', stopPointerDrag);\n document.removeEventListener('pointercancel', stopPointerDrag);\n }\n function startPointerDrag(event) {\n if (!desktopMq.matches) return;\n activePointerId = event.pointerId;\n event.preventDefault();\n scrollFromTrackPointer(event.clientY);\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', stopPointerDrag);\n document.addEventListener('pointercancel', stopPointerDrag);\n }\n var syncFrame = null;\n function scheduleSyncAll() {\n if (syncFrame !== null) return;\n syncFrame = window.requestAnimationFrame(function () {\n syncFrame = null;\n syncAll();\n });\n }\n if (window.ResizeObserver) {\n var copyBody = root.querySelector('.about-v1__copy-body');\n var profile = root.querySelector('.about-v1__profile');\n var copyHead = root.querySelector('.about-v1__copy-head');\n var resizeObserver = new ResizeObserver(scheduleSyncAll);\n if (copyBody) resizeObserver.observe(copyBody);\n if (profile) resizeObserver.observe(profile);\n if (copyHead) resizeObserver.observe(copyHead);\n resizeObserver.observe(viewport);\n } else {\n window.addEventListener('resize', scheduleSyncAll);\n }\n if (toggleBtn) {\n toggleBtn.addEventListener('click', function () {\n if (mobileMq.matches) return;\n var willExpand = scrollRoot.classList.contains('is-collapsed');\n scrollRoot.classList.toggle('is-collapsed', !willExpand);\n scrollRoot.classList.toggle('is-expanded', willExpand);\n updateToggleUi();\n });\n }\n function syncAll() {\n applyScrollCap();\n syncScrollUi();\n }\n viewport.addEventListener('scroll', syncScrollUi, { passive: true });\n track.addEventListener('pointerdown', startPointerDrag);\n thumb.addEventListener('pointerdown', startPointerDrag);\n if (typeof desktopMq.addEventListener === 'function') {\n desktopMq.addEventListener('change', scheduleSyncAll);\n mobileMq.addEventListener('change', scheduleSyncAll);\n } else if (typeof desktopMq.addListener === 'function') {\n desktopMq.addListener(scheduleSyncAll);\n mobileMq.addListener(scheduleSyncAll);\n }\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(scheduleSyncAll);\n }\n syncAll();\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('news\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.news-v2').forEach(function (root) {\n if (root.dataset.newsV2Ready === 'true') return;\n root.dataset.newsV2Ready = 'true';\n var sliderEl = root.querySelector('.news-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.news-v2__pagination');\n var mobileMq = window.matchMedia('(max-width: 768px)');\n var swiperInstance = null;\n function destroySlider() {\n if (!swiperInstance) return;\n swiperInstance.destroy(true, true);\n swiperInstance = null;\n }\n function initSlider() {\n if (!mobileMq.matches || swiperInstance) return;\n swiperInstance = new Swiper(sliderEl, {\n slidesPerView: 1,\n spaceBetween: 0,\n watchOverflow: true,\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n });\n }\n function syncSliderMode() {\n if (mobileMq.matches) {\n initSlider();\n } else {\n destroySlider();\n }\n }\n function bootSwiper() {\n syncSliderMode();\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, bootSwiper);\n } else {\n bootSwiper();\n }\n if (typeof mobileMq.addEventListener === 'function') {\n mobileMq.addEventListener('change', syncSliderMode);\n } else if (typeof mobileMq.addListener === 'function') {\n mobileMq.addListener(syncSliderMode);\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('promo\/variant-2');\n document.addEventListener('DOMContentLoaded', function () {\n document.querySelectorAll('.promo-v2').forEach(function (root) {\n if (root.dataset.promoV2Ready === 'true') return;\n function initSwiper() {\n if (root.dataset.promoV2Ready === 'true') return;\n root.dataset.promoV2Ready = 'true';\n var sliderEl = root.querySelector('.promo-v2__slider.swiper');\n if (!sliderEl || typeof Swiper === 'undefined') return;\n var slides = sliderEl.querySelectorAll('.swiper-slide');\n if (slides.length < 2) return;\n var paginationEl = root.querySelector('.promo-v2__pagination');\n function syncDotsPagination(swiper, forceRender) {\n if (!swiper.pagination || !paginationEl) return;\n if (window.matchMedia('(max-width: 768px)').matches) {\n swiper.pagination.enable();\n paginationEl.classList.remove('swiper-pagination-disabled', 'swiper-pagination-hidden');\n if (forceRender) swiper.pagination.render();\n swiper.pagination.update();\n } else {\n swiper.pagination.disable();\n }\n }\n new Swiper(sliderEl, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n spaceBetween: 0,\n speed: 360,\n autoHeight: false,\n loop: slides.length > 1,\n navigation: {\n nextEl: root.querySelector('.promo-v2__slider-nav .slider-nav__btn--next'),\n prevEl: root.querySelector('.promo-v2__slider-nav .slider-nav__btn--prev'),\n },\n pagination: {\n el: paginationEl,\n clickable: true,\n type: 'bullets',\n },\n on: {\n init: function (swiper) { syncDotsPagination(swiper, true); },\n resize: function (swiper) { syncDotsPagination(swiper, false); },\n breakpoint: function (swiper) { syncDotsPagination(swiper, true); },\n },\n });\n root.querySelectorAll('.promo-v2__slider-nav .slider-nav__btn').forEach(function (btn) {\n btn.addEventListener('click', function () {\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n });\n }\n if (window.LazyInit) {\n window.LazyInit.whenVisible(root, initSwiper);\n } else {\n initSwiper();\n }\n });\n });\n})();\n(function () {\n window.__LOADED_SECTIONS.push('cta\/variant-1');\n document.addEventListener('click', function (event) {\n var btn = event.target.closest('.cta-v1 .btn');\n if (!btn) return;\n btn.classList.add('is-pressed');\n setTimeout(function () { btn.classList.remove('is-pressed'); }, 160);\n });\n})();\n(function () {\n document.querySelectorAll('[data-header-root]').forEach(function (root) {\n var toggle = root.querySelector('[data-header-toggle]');\n var panel = root.querySelector('[data-header-panel]');\n var navWrap = root.querySelector('.site-header__nav-wrap');\n if (!toggle || !panel) {\n return;\n }\n var navTopY = null;\n var lastSticky = null;\n var setHeaderHeight = function () {\n var topEl = root.querySelector('.site-header__top');\n var topH = topEl ? (topEl.offsetHeight || 0) : 0;\n var isMobile = window.innerWidth <= 1280;\n var h = isMobile ? topH : (root.offsetHeight || topH || 0);\n document.documentElement.style.setProperty('--site-header-h', h + 'px');\n document.documentElement.style.setProperty('--site-header-top-h', topH + 'px');\n if (navWrap) {\n var navH = navWrap.offsetHeight || 0;\n document.documentElement.style.setProperty('--site-nav-h', navH + 'px');\n var isNavFixed = document.documentElement.classList.contains('is-nav-fixed');\n var stickyOffset = 0;\n if (isMobile) {\n stickyOffset = topH;\n } else if (isNavFixed) {\n stickyOffset = navH;\n }\n document.documentElement.style.setProperty('--site-sticky-offset', stickyOffset + 'px');\n if (window.scrollY <= 0) {\n document.documentElement.classList.remove('is-nav-fixed');\n lastSticky = false;\n }\n if (!document.documentElement.classList.contains('is-nav-fixed')) {\n navTopY = navWrap.getBoundingClientRect().top + window.scrollY;\n }\n }\n root.querySelectorAll('.site-header__mega-pointer, .site-header__wide-default-pointer, .site-header__dropdown-pointer').forEach(function (pointer) {\n if (isMobile) {\n pointer.style.setProperty('display', 'none', 'important');\n } else {\n pointer.style.removeProperty('display');\n pointer.style.display = 'block';\n }\n });\n if (isMobile) {\n var stickyMenuEl = root.classList.contains('is-menu-open')\n ? root.querySelector('.site-header__shell > .container')\n : null;\n var stickyMenuH = stickyMenuEl ? stickyMenuEl.offsetHeight : topH;\n document.documentElement.style.setProperty('--site-mobile-menu-sticky-h', stickyMenuH + 'px');\n }\n };\n var closeMenu = function () {\n root.classList.remove('is-menu-open');\n document.documentElement.classList.remove('is-menu-open');\n toggle.setAttribute('aria-expanded', 'false');\n toggle.setAttribute('aria-label', 'Открыть меню');\n setHeaderHeight();\n };\n var openMenu = function () {\n root.classList.add('is-menu-open');\n document.documentElement.classList.add('is-menu-open');\n toggle.setAttribute('aria-expanded', 'true');\n toggle.setAttribute('aria-label', 'Закрыть меню');\n setHeaderHeight();\n };\n toggle.addEventListener('click', function () {\n if (root.classList.contains('is-menu-open')) {\n closeMenu();\n } else {\n openMenu();\n }\n });\n var dropdownItems = root.querySelectorAll('[data-dropdown]');\n var positionDropdownPointer = function (trigger, referenceEl, pointer) {\n if (window.innerWidth <= 1280) {\n pointer.style.setProperty('display', 'none', 'important');\n return;\n }\n var triggerRect = trigger.getBoundingClientRect();\n var referenceRect = referenceEl.getBoundingClientRect();\n var pointerHalf = 18.5;\n var pointerLeft = triggerRect.left + (triggerRect.width \/ 2) - referenceRect.left;\n var minLeft = pointerHalf + 8;\n var maxLeft = referenceRect.width - pointerHalf - 8;\n pointer.style.removeProperty('display');\n pointer.style.display = 'block';\n pointer.style.left = Math.max(minLeft, Math.min(maxLeft, pointerLeft)) + 'px';\n };\n var syncMegaPointer = function (dropdownItem) {\n if (!dropdownItem) {\n return;\n }\n var trigger = dropdownItem.querySelector('[data-dropdown-toggle]');\n if (!trigger) {\n return;\n }\n var megaDropdown = dropdownItem.querySelector('.site-header__dropdown--mega, .site-header__dropdown--wide-default');\n if (megaDropdown) {\n var container = megaDropdown.querySelector('.container');\n var megaPointer = megaDropdown.querySelector('.site-header__mega-pointer, .site-header__wide-default-pointer');\n if (container && megaPointer) {\n positionDropdownPointer(trigger, container, megaPointer);\n }\n }\n var smallDropdown = dropdownItem.querySelector('.site-header__dropdown--small');\n if (smallDropdown) {\n var smallPointer = smallDropdown.querySelector('.site-header__dropdown-pointer');\n if (smallPointer) {\n positionDropdownPointer(trigger, smallDropdown, smallPointer);\n }\n }\n };\n var closeAllDropdowns = function () {\n dropdownItems.forEach(function (li) {\n li.classList.remove('is-open');\n var btn = li.querySelector('[data-dropdown-toggle]');\n if (btn) btn.setAttribute('aria-expanded', 'false');\n });\n };\n dropdownItems.forEach(function (li) {\n var btn = li.querySelector('[data-dropdown-toggle]');\n if (!btn) return;\n btn.addEventListener('click', function (e) {\n e.preventDefault();\n var isOpen = li.classList.contains('is-open');\n closeAllDropdowns();\n if (!isOpen) {\n li.classList.add('is-open');\n btn.setAttribute('aria-expanded', 'true');\n if (window.innerWidth <= 1280) {\n var megaMenu = li.querySelector('[data-mega-menu]');\n collapseMegaMenuMobile(megaMenu);\n setHeaderHeight();\n scrollMobileMenuIntoView(btn);\n }\n syncMegaPointer(li);\n window.requestAnimationFrame(function () {\n syncMegaPointer(li);\n });\n }\n });\n });\n root.querySelectorAll('[data-dropdown-close]').forEach(function (btn) {\n btn.addEventListener('click', function () {\n closeAllDropdowns();\n var toggleBtn = root.querySelector('[data-dropdown-toggle][aria-expanded=\"true\"]');\n if (toggleBtn) {\n toggleBtn.focus();\n }\n });\n });\n var megaMenus = root.querySelectorAll('[data-mega-menu]');\n var syncMegaPanelMount = function () {\n var isDesktop = window.innerWidth > 1280;\n megaMenus.forEach(function (menu) {\n var host = menu.querySelector('[data-mega-panels-host]');\n if (!host) {\n return;\n }\n host.hidden = !isDesktop;\n host.setAttribute('aria-hidden', isDesktop ? 'false' : 'true');\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n var button = block.querySelector('[data-mega-category]');\n if (!button) {\n return;\n }\n var panelId = button.getAttribute('aria-controls');\n if (!panelId) {\n return;\n }\n var panel = menu.querySelector('#' + panelId);\n if (!panel) {\n return;\n }\n if (isDesktop) {\n if (panel.parentElement !== host) {\n host.appendChild(panel);\n }\n } else if (panel.parentElement !== block) {\n block.appendChild(panel);\n }\n });\n });\n };\n var setMegaCategory = function (menu, nextButton) {\n if (!menu || !nextButton) {\n return;\n }\n var nextPanelId = nextButton.getAttribute('aria-controls');\n if (!nextPanelId) {\n return;\n }\n menu.querySelectorAll('[data-mega-category]').forEach(function (button) {\n var isActive = button === nextButton;\n button.classList.toggle('is-active', isActive);\n button.setAttribute('aria-selected', isActive ? 'true' : 'false');\n button.setAttribute('aria-expanded', isActive ? 'true' : 'false');\n });\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n var blockButton = block.querySelector('[data-mega-category]');\n block.classList.toggle('is-open', blockButton === nextButton);\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panelEl) {\n var isActive = panelEl.id === nextPanelId;\n panelEl.classList.toggle('is-active', isActive);\n panelEl.hidden = !isActive;\n });\n if (window.innerWidth <= 1280) {\n setHeaderHeight();\n }\n };\n var collapseMegaMenuMobile = function (menu) {\n if (!menu) {\n return;\n }\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (block) {\n block.classList.remove('is-open');\n });\n menu.querySelectorAll('[data-mega-category]').forEach(function (btn) {\n btn.classList.remove('is-active');\n btn.setAttribute('aria-selected', 'false');\n btn.setAttribute('aria-expanded', 'false');\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panel) {\n panel.classList.remove('is-active');\n panel.hidden = true;\n });\n };\n var mobileMenuScrollAnim = null;\n var scrollMobileMenuIntoView = function (targetEl) {\n if (!targetEl || window.innerWidth > 1280 || !root.classList.contains('is-menu-open')) {\n return;\n }\n var stickyEl = root.querySelector('.site-header__shell > .container');\n var run = function () {\n var scrollRect = root.getBoundingClientRect();\n var targetRect = targetEl.getBoundingClientRect();\n var marginTop = 8;\n var marginBottom = 24;\n var stickyBottom = stickyEl\n ? stickyEl.getBoundingClientRect().bottom\n : scrollRect.top + (parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--site-header-top-h')) || 0);\n var viewTop = stickyBottom + marginTop;\n var viewBottom = scrollRect.bottom - marginBottom;\n var delta = 0;\n if (targetRect.top < viewTop) {\n delta = targetRect.top - viewTop;\n } else if (targetRect.bottom > viewBottom) {\n delta = targetRect.bottom - viewBottom;\n if (targetRect.top - delta < viewTop) {\n delta = targetRect.top - viewTop;\n }\n }\n if (delta === 0) {\n return;\n }\n if (mobileMenuScrollAnim !== null) {\n window.cancelAnimationFrame(mobileMenuScrollAnim);\n mobileMenuScrollAnim = null;\n }\n var startTop = root.scrollTop;\n var distance = Math.abs(delta);\n var duration = Math.min(560, Math.max(380, distance * 0.55));\n var startTime = null;\n var easeInOutCubic = function (t) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) \/ 2;\n };\n var step = function (timestamp) {\n if (startTime === null) {\n startTime = timestamp;\n }\n var progress = Math.min(1, (timestamp - startTime) \/ duration);\n root.scrollTop = startTop + delta * easeInOutCubic(progress);\n if (progress < 1) {\n mobileMenuScrollAnim = window.requestAnimationFrame(step);\n } else {\n mobileMenuScrollAnim = null;\n }\n };\n mobileMenuScrollAnim = window.requestAnimationFrame(step);\n };\n window.requestAnimationFrame(function () {\n window.requestAnimationFrame(run);\n });\n };\n var resetMegaCategories = function () {\n syncMegaPanelMount();\n megaMenus.forEach(function (menu) {\n if (window.innerWidth <= 1280) {\n collapseMegaMenuMobile(menu);\n return;\n }\n var defaultButton = menu.querySelector('[data-mega-category].is-active') || menu.querySelector('[data-mega-category]');\n if (defaultButton) {\n setMegaCategory(menu, defaultButton);\n }\n });\n };\n megaMenus.forEach(function (menu) {\n menu.querySelectorAll('[data-mega-category]').forEach(function (button) {\n button.addEventListener('mouseenter', function () {\n if (window.innerWidth > 1280) {\n setMegaCategory(menu, button);\n }\n });\n button.addEventListener('focus', function () {\n if (window.innerWidth > 1280) {\n setMegaCategory(menu, button);\n }\n });\n button.addEventListener('click', function (e) {\n e.preventDefault();\n if (window.innerWidth <= 1280) {\n var block = button.closest('[data-mega-category-block]');\n if (!block) {\n return;\n }\n var willOpen = !block.classList.contains('is-open');\n menu.querySelectorAll('[data-mega-category-block]').forEach(function (itemBlock) {\n itemBlock.classList.remove('is-open');\n });\n menu.querySelectorAll('[data-mega-category]').forEach(function (categoryButton) {\n categoryButton.classList.remove('is-active');\n categoryButton.setAttribute('aria-selected', 'false');\n categoryButton.setAttribute('aria-expanded', 'false');\n });\n menu.querySelectorAll('[data-mega-panel]').forEach(function (panelEl) {\n panelEl.classList.remove('is-active');\n panelEl.hidden = true;\n });\n if (willOpen) {\n setMegaCategory(menu, button);\n }\n setHeaderHeight();\n if (willOpen) {\n scrollMobileMenuIntoView(block);\n }\n return;\n }\n setMegaCategory(menu, button);\n });\n });\n });\n resetMegaCategories();\n document.addEventListener('click', function (e) {\n if (!root.contains(e.target)) return;\n var insideDropdown = e.target.closest('[data-dropdown]');\n if (!insideDropdown) {\n closeAllDropdowns();\n }\n });\n panel.querySelectorAll('a').forEach(function (link) {\n link.addEventListener('click', function () {\n if (window.innerWidth <= 1280) {\n closeMenu();\n }\n });\n });\n var onScroll = function () {\n if (window.innerWidth <= 1280 || !navWrap || navTopY === null) {\n if (document.documentElement.classList.contains('is-nav-fixed')) {\n document.documentElement.classList.remove('is-nav-fixed');\n }\n return;\n }\n var isFixed = document.documentElement.classList.contains('is-nav-fixed');\n if (!isFixed) {\n navTopY = navWrap.getBoundingClientRect().top + window.scrollY;\n }\n if (!isFixed) {\n var shouldFix = window.scrollY > 0 && navWrap.getBoundingClientRect().top <= 0;\n if (shouldFix && shouldFix !== lastSticky) {\n document.documentElement.classList.add('is-nav-fixed');\n lastSticky = true;\n setHeaderHeight();\n }\n return;\n }\n var shouldUnfix =\n window.scrollY <= 0 ||\n window.scrollY < (navTopY - 1) ||\n navWrap.getBoundingClientRect().top > 1;\n if (shouldUnfix) {\n document.documentElement.classList.remove('is-nav-fixed');\n lastSticky = false;\n setHeaderHeight();\n }\n };\n var syncNavLayout = function () {\n setHeaderHeight();\n onScroll();\n };\n var resizeFrame = null;\n var resizeActionsPending = false;\n function scheduleNavLayout(runResizeActions) {\n if (runResizeActions) resizeActionsPending = true;\n if (resizeFrame !== null) return;\n resizeFrame = window.requestAnimationFrame(function () {\n resizeFrame = null;\n syncNavLayout();\n if (resizeActionsPending) {\n resizeActionsPending = false;\n if (window.innerWidth > 1280) {\n closeMenu();\n }\n closeAllDropdowns();\n resetMegaCategories();\n }\n root.querySelectorAll('.site-header__menu-item.is-open').forEach(function (item) {\n syncMegaPointer(item);\n });\n });\n }\n window.addEventListener('resize', function () {\n scheduleNavLayout(true);\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeMenu();\n closeAllDropdowns();\n resetMegaCategories();\n }\n });\n var logoImg = root.querySelector('.site-header__logo');\n if (logoImg && !logoImg.complete) {\n logoImg.addEventListener('load', syncNavLayout, { once: true });\n }\n window.addEventListener('load', syncNavLayout, { once: true });\n window.addEventListener('pageshow', syncNavLayout);\n if (document.fonts && document.fonts.ready) {\n document.fonts.ready.then(syncNavLayout);\n }\n if (window.ResizeObserver && navWrap) {\n var headerTopEl = root.querySelector('.site-header__top');\n var headerResizeObserver = new ResizeObserver(function () {\n scheduleNavLayout(false);\n });\n if (headerTopEl) {\n headerResizeObserver.observe(headerTopEl);\n }\n headerResizeObserver.observe(navWrap);\n }\n syncNavLayout();\n window.addEventListener('scroll', onScroll, { passive: true });\n });\n})();\n(function () {\n document.querySelectorAll('[data-back-to-top]').forEach(function (btn) {\n var threshold = 500;\n var update = function () {\n var visible = window.scrollY > threshold;\n btn.hidden = !visible;\n btn.classList.toggle('is-visible', visible);\n };\n btn.addEventListener('click', function () {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n });\n update();\n window.addEventListener('scroll', update, { passive: true });\n });\n})();",
    "swiper_script": "var SwiperModule=(()=>{var ue=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var Je=(s,e)=>{for(var t in e)ue(s,t,{get:e[t],enumerable:!0})},et=(s,e,t,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of Ze(e))!Qe.call(s,a)&&a!==t&&ue(s,a,{get:()=>e[a],enumerable:!(i=Ke(e,a))||i.enumerable});return s};var tt=s=>et(ue({},\"__esModule\",{value:!0}),s);var gs={};Je(gs,{default:()=>hs});function ze(s){return s!==null&&typeof s==\"object\"&&\"constructor\"in s&&s.constructor===Object}function pe(s,e){s===void 0&&(s={}),e===void 0&&(e={});let t=[\"__proto__\",\"constructor\",\"prototype\"];Object.keys(e).filter(i=>t.indexOf(i)<0).forEach(i=>{typeof s[i]==\"undefined\"?s[i]=e[i]:ze(e[i])&&ze(s[i])&&Object.keys(e[i]).length>0&&pe(s[i],e[i])})}var Oe={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:\"\"},querySelector(){return null},querySelectorAll(){return[]},getElementById(){return null},createEvent(){return{initEvent(){}}},createElement(){return{children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName(){return[]}}},createElementNS(){return{}},importNode(){return null},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"}};function B(){let s=typeof document!=\"undefined\"?document:{};return pe(s,Oe),s}var st={document:Oe,navigator:{userAgent:\"\"},location:{hash:\"\",host:\"\",hostname:\"\",href:\"\",origin:\"\",pathname:\"\",protocol:\"\",search:\"\"},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle(){return{getPropertyValue(){return\"\"}}},Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia(){return{}},requestAnimationFrame(s){return typeof setTimeout==\"undefined\"?(s(),null):setTimeout(s,0)},cancelAnimationFrame(s){typeof setTimeout!=\"undefined\"&&clearTimeout(s)}};function H(){let s=typeof window!=\"undefined\"?window:{};return pe(s,st),s}function De(s){return s===void 0&&(s=\"\"),s.trim().split(\" \").filter(e=>!!e.trim())}function $e(s){let e=s;Object.keys(e).forEach(t=>{try{e[t]=null}catch(i){}try{delete e[t]}catch(i){}})}function J(s,e){return e===void 0&&(e=0),setTimeout(s,e)}function K(){return Date.now()}function it(s){let e=H(),t;return e.getComputedStyle&&(t=e.getComputedStyle(s,null)),!t&&s.currentStyle&&(t=s.currentStyle),t||(t=s.style),t}function me(s,e){e===void 0&&(e=\"x\");let t=H(),i,a,r,l=it(s);return t.WebKitCSSMatrix?(a=l.transform||l.webkitTransform,a.split(\",\").length>6&&(a=a.split(\", \").map(n=>n.replace(\",\",\".\")).join(\", \")),r=new t.WebKitCSSMatrix(a===\"none\"?\"\":a)):(r=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue(\"transform\").replace(\"translate(\",\"matrix(1, 0, 0, 1,\"),i=r.toString().split(\",\")),e===\"x\"&&(t.WebKitCSSMatrix?a=r.m41:i.length===16?a=parseFloat(i[12]):a=parseFloat(i[4])),e===\"y\"&&(t.WebKitCSSMatrix?a=r.m42:i.length===16?a=parseFloat(i[13]):a=parseFloat(i[5])),a||0}function ie(s){return typeof s==\"object\"&&s!==null&&s.constructor&&Object.prototype.toString.call(s).slice(8,-1)===\"Object\"}function rt(s){return typeof window!=\"undefined\"&&typeof window.HTMLElement!=\"undefined\"?s instanceof HTMLElement:s&&(s.nodeType===1||s.nodeType===11)}function Y(){let s=Object(arguments.length<=0?void 0:arguments[0]),e=[\"__proto__\",\"constructor\",\"prototype\"];for(let t=1;t<arguments.length;t+=1){let i=t<0||arguments.length<=t?void 0:arguments[t];if(i!=null&&!rt(i)){let a=Object.keys(Object(i)).filter(r=>e.indexOf(r)<0);for(let r=0,l=a.length;r<l;r+=1){let n=a[r],d=Object.getOwnPropertyDescriptor(i,n);d!==void 0&&d.enumerable&&(ie(s[n])&&ie(i[n])?i[n].__swiper__?s[n]=i[n]:Y(s[n],i[n]):!ie(s[n])&&ie(i[n])?(s[n]={},i[n].__swiper__?s[n]=i[n]:Y(s[n],i[n])):s[n]=i[n])}}}return s}function ee(s,e,t){s.style.setProperty(e,t)}function he(s){let{swiper:e,targetPosition:t,side:i}=s,a=H(),r=-e.translate,l=null,n,d=e.params.speed;e.wrapperEl.style.scrollSnapType=\"none\",a.cancelAnimationFrame(e.cssModeFrameID);let o=t>r?\"next\":\"prev\",u=(g,y)=>o===\"next\"&&g>=y||o===\"prev\"&&g<=y,p=()=>{n=new Date().getTime(),l===null&&(l=n);let g=Math.max(Math.min((n-l)\/d,1),0),y=.5-Math.cos(g*Math.PI)\/2,m=r+y*(t-r);if(u(m,t)&&(m=t),e.wrapperEl.scrollTo({[i]:m}),u(m,t)){e.wrapperEl.style.overflow=\"hidden\",e.wrapperEl.style.scrollSnapType=\"\",setTimeout(()=>{e.wrapperEl.style.overflow=\"\",e.wrapperEl.scrollTo({[i]:m})}),a.cancelAnimationFrame(e.cssModeFrameID);return}e.cssModeFrameID=a.requestAnimationFrame(p)};p()}function F(s){return s.querySelector(\".swiper-slide-transform\")||s.shadowRoot&&s.shadowRoot.querySelector(\".swiper-slide-transform\")||s}function R(s,e){e===void 0&&(e=\"\");let t=H(),i=[...s.children];return t.HTMLSlotElement&&s instanceof HTMLSlotElement&&i.push(...s.assignedElements()),e?i.filter(a=>a.matches(e)):i}function at(s,e){let t=[e];for(;t.length>0;){let i=t.shift();if(s===i)return!0;t.push(...i.children,...i.shadowRoot?i.shadowRoot.children:[],...i.assignedElements?i.assignedElements():[])}}function ke(s,e){let t=H(),i=e.contains(s);return!i&&t.HTMLSlotElement&&e instanceof HTMLSlotElement&&(i=[...e.assignedElements()].includes(s),i||(i=at(s,e))),i}function re(s){try{console.warn(s);return}catch(e){}}function V(s,e){e===void 0&&(e=[]);let t=document.createElement(s);return t.classList.add(...Array.isArray(e)?e:De(e)),t}function Ge(s,e){let t=[];for(;s.previousElementSibling;){let i=s.previousElementSibling;e?i.matches(e)&&t.push(i):t.push(i),s=i}return t}function He(s,e){let t=[];for(;s.nextElementSibling;){let i=s.nextElementSibling;e?i.matches(e)&&t.push(i):t.push(i),s=i}return t}function W(s,e){return H().getComputedStyle(s,null).getPropertyValue(e)}function U(s){let e=s,t;if(e){for(t=0;(e=e.previousSibling)!==null;)e.nodeType===1&&(t+=1);return t}}function te(s,e){let t=[],i=s.parentElement;for(;i;)e?i.matches(e)&&t.push(i):t.push(i),i=i.parentElement;return t}function ce(s,e){function t(i){i.target===s&&(e.call(s,i),s.removeEventListener(\"transitionend\",t))}e&&s.addEventListener(\"transitionend\",t)}function ae(s,e,t){let i=H();return t?s[e===\"width\"?\"offsetWidth\":\"offsetHeight\"]+parseFloat(i.getComputedStyle(s,null).getPropertyValue(e===\"width\"?\"margin-right\":\"margin-top\"))+parseFloat(i.getComputedStyle(s,null).getPropertyValue(e===\"width\"?\"margin-left\":\"margin-bottom\")):s.offsetWidth}function D(s){return(Array.isArray(s)?s:[s]).filter(e=>!!e)}function Z(s,e){e===void 0&&(e=\"\"),typeof trustedTypes!=\"undefined\"?s.innerHTML=trustedTypes.createPolicy(\"html\",{createHTML:t=>t}).createHTML(e):s.innerHTML=e}var ge;function nt(){let s=H(),e=B();return{smoothScroll:e.documentElement&&e.documentElement.style&&\"scrollBehavior\"in e.documentElement.style,touch:!!(\"ontouchstart\"in s||s.DocumentTouch&&e instanceof s.DocumentTouch)}}function Ne(){return ge||(ge=nt()),ge}var ve;function lt(s){let{userAgent:e}=s===void 0?{}:s,t=Ne(),i=H(),a=i.navigator.platform,r=e||i.navigator.userAgent,l={ios:!1,android:!1},n=i.screen.width,d=i.screen.height,o=r.match(\/(Android);?[\\s\\\/]+([\\d.]+)?\/),u=r.match(\/(iPad).*OS\\s([\\d_]+)\/),p=r.match(\/(iPod)(.*OS\\s([\\d_]+))?\/),g=!u&&r.match(\/(iPhone\\sOS|iOS)\\s([\\d_]+)\/),y=a===\"Win32\",m=a===\"MacIntel\",h=[\"1024x1366\",\"1366x1024\",\"834x1194\",\"1194x834\",\"834x1112\",\"1112x834\",\"768x1024\",\"1024x768\",\"820x1180\",\"1180x820\",\"810x1080\",\"1080x810\"];return!u&&m&&t.touch&&h.indexOf(`${n}x${d}`)>=0&&(u=r.match(\/(Version)\\\/([\\d.]+)\/),u||(u=[0,1,\"13_0_0\"]),m=!1),o&&!y&&(l.os=\"android\",l.android=!0),(u||g||p)&&(l.os=\"ios\",l.ios=!0),l}function Fe(s){return s===void 0&&(s={}),ve||(ve=lt(s)),ve}var we;function ot(){let s=H(),e=Fe(),t=!1;function i(){let n=s.navigator.userAgent.toLowerCase();return n.indexOf(\"safari\")>=0&&n.indexOf(\"chrome\")<0&&n.indexOf(\"android\")<0}if(i()){let n=String(s.navigator.userAgent);if(n.includes(\"Version\/\")){let[d,o]=n.split(\"Version\/\")[1].split(\" \")[0].split(\".\").map(u=>Number(u));t=d<16||d===16&&o<2}}let a=\/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)\/i.test(s.navigator.userAgent),r=i(),l=r||a&&e.ios;return{isSafari:t||r,needPerspectiveFix:t,need3dFix:l,isWebView:a}}function We(){return we||(we=ot()),we}function dt(s){let{swiper:e,on:t,emit:i}=s,a=H(),r=null,l=null,n=()=>{!e||e.destroyed||!e.initialized||(i(\"beforeResize\"),i(\"resize\"))},d=()=>{!e||e.destroyed||!e.initialized||(r=new ResizeObserver(p=>{l=a.requestAnimationFrame(()=>{let{width:g,height:y}=e,m=g,h=y;p.forEach(x=>{let{contentBoxSize:b,contentRect:c,target:f}=x;f&&f!==e.el||(m=c?c.width:(b[0]||b).inlineSize,h=c?c.height:(b[0]||b).blockSize)}),(m!==g||h!==y)&&n()})}),r.observe(e.el))},o=()=>{l&&a.cancelAnimationFrame(l),r&&r.unobserve&&e.el&&(r.unobserve(e.el),r=null)},u=()=>{!e||e.destroyed||!e.initialized||i(\"orientationchange\")};t(\"init\",()=>{if(e.params.resizeObserver&&typeof a.ResizeObserver!=\"undefined\"){d();return}a.addEventListener(\"resize\",n),a.addEventListener(\"orientationchange\",u)}),t(\"destroy\",()=>{o(),a.removeEventListener(\"resize\",n),a.removeEventListener(\"orientationchange\",u)})}function ct(s){let{swiper:e,extendParams:t,on:i,emit:a}=s,r=[],l=H(),n=function(u,p){p===void 0&&(p={});let g=l.MutationObserver||l.WebkitMutationObserver,y=new g(m=>{if(e.__preventObserver__)return;if(m.length===1){a(\"observerUpdate\",m[0]);return}let h=function(){a(\"observerUpdate\",m[0])};l.requestAnimationFrame?l.requestAnimationFrame(h):l.setTimeout(h,0)});y.observe(u,{attributes:typeof p.attributes==\"undefined\"?!0:p.attributes,childList:e.isElement||(typeof p.childList==\"undefined\"?!0:p).childList,characterData:typeof p.characterData==\"undefined\"?!0:p.characterData}),r.push(y)},d=()=>{if(e.params.observer){if(e.params.observeParents){let u=te(e.hostEl);for(let p=0;p<u.length;p+=1)n(u[p])}n(e.hostEl,{childList:e.params.observeSlideChildren}),n(e.wrapperEl,{attributes:!1})}},o=()=>{r.forEach(u=>{u.disconnect()}),r.splice(0,r.length)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),i(\"init\",d),i(\"destroy\",o)}var ft={on(s,e,t){let i=this;if(!i.eventsListeners||i.destroyed||typeof e!=\"function\")return i;let a=t?\"unshift\":\"push\";return s.split(\" \").forEach(r=>{i.eventsListeners[r]||(i.eventsListeners[r]=[]),i.eventsListeners[r][a](e)}),i},once(s,e,t){let i=this;if(!i.eventsListeners||i.destroyed||typeof e!=\"function\")return i;function a(){i.off(s,a),a.__emitterProxy&&delete a.__emitterProxy;for(var r=arguments.length,l=new Array(r),n=0;n<r;n++)l[n]=arguments[n];e.apply(i,l)}return a.__emitterProxy=e,i.on(s,a,t)},onAny(s,e){let t=this;if(!t.eventsListeners||t.destroyed||typeof s!=\"function\")return t;let i=e?\"unshift\":\"push\";return t.eventsAnyListeners.indexOf(s)<0&&t.eventsAnyListeners[i](s),t},offAny(s){let e=this;if(!e.eventsListeners||e.destroyed||!e.eventsAnyListeners)return e;let t=e.eventsAnyListeners.indexOf(s);return t>=0&&e.eventsAnyListeners.splice(t,1),e},off(s,e){let t=this;return!t.eventsListeners||t.destroyed||!t.eventsListeners||s.split(\" \").forEach(i=>{typeof e==\"undefined\"?t.eventsListeners[i]=[]:t.eventsListeners[i]&&t.eventsListeners[i].forEach((a,r)=>{(a===e||a.__emitterProxy&&a.__emitterProxy===e)&&t.eventsListeners[i].splice(r,1)})}),t},emit(){let s=this;if(!s.eventsListeners||s.destroyed||!s.eventsListeners)return s;let e,t,i;for(var a=arguments.length,r=new Array(a),l=0;l<a;l++)r[l]=arguments[l];return typeof r[0]==\"string\"||Array.isArray(r[0])?(e=r[0],t=r.slice(1,r.length),i=s):(e=r[0].events,t=r[0].data,i=r[0].context||s),t.unshift(i),(Array.isArray(e)?e:e.split(\" \")).forEach(d=>{s.eventsAnyListeners&&s.eventsAnyListeners.length&&s.eventsAnyListeners.forEach(o=>{o.apply(i,[d,...t])}),s.eventsListeners&&s.eventsListeners[d]&&s.eventsListeners[d].forEach(o=>{o.apply(i,t)})}),s}};function ut(){let s=this,e,t,i=s.el;typeof s.params.width!=\"undefined\"&&s.params.width!==null?e=s.params.width:e=i.clientWidth,typeof s.params.height!=\"undefined\"&&s.params.height!==null?t=s.params.height:t=i.clientHeight,!(e===0&&s.isHorizontal()||t===0&&s.isVertical())&&(e=e-parseInt(W(i,\"padding-left\")||0,10)-parseInt(W(i,\"padding-right\")||0,10),t=t-parseInt(W(i,\"padding-top\")||0,10)-parseInt(W(i,\"padding-bottom\")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),Object.assign(s,{width:e,height:t,size:s.isHorizontal()?e:t}))}function pt(){let s=this;function e(T,M){return parseFloat(T.getPropertyValue(s.getDirectionLabel(M))||0)}let t=s.params,{wrapperEl:i,slidesEl:a,size:r,rtlTranslate:l,wrongRTL:n}=s,d=s.virtual&&t.virtual.enabled,o=d?s.virtual.slides.length:s.slides.length,u=R(a,`.${s.params.slideClass}, swiper-slide`),p=d?s.virtual.slides.length:u.length,g=[],y=[],m=[],h=t.slidesOffsetBefore;typeof h==\"function\"&&(h=t.slidesOffsetBefore.call(s));let x=t.slidesOffsetAfter;typeof x==\"function\"&&(x=t.slidesOffsetAfter.call(s));let b=s.snapGrid.length,c=s.slidesGrid.length,f=t.spaceBetween,v=-h,S=0,C=0;if(typeof r==\"undefined\")return;typeof f==\"string\"&&f.indexOf(\"%\")>=0?f=parseFloat(f.replace(\"%\",\"\"))\/100*r:typeof f==\"string\"&&(f=parseFloat(f)),s.virtualSize=-f,u.forEach(T=>{l?T.style.marginLeft=\"\":T.style.marginRight=\"\",T.style.marginBottom=\"\",T.style.marginTop=\"\"}),t.centeredSlides&&t.cssMode&&(ee(i,\"--swiper-centered-offset-before\",\"\"),ee(i,\"--swiper-centered-offset-after\",\"\"));let I=t.grid&&t.grid.rows>1&&s.grid;I?s.grid.initSlides(u):s.grid&&s.grid.unsetSlides();let P,L=t.slidesPerView===\"auto\"&&t.breakpoints&&Object.keys(t.breakpoints).filter(T=>typeof t.breakpoints[T].slidesPerView!=\"undefined\").length>0;for(let T=0;T<p;T+=1){P=0;let M;if(u[T]&&(M=u[T]),I&&s.grid.updateSlide(T,M,u),!(u[T]&&W(M,\"display\")===\"none\")){if(t.slidesPerView===\"auto\"){L&&(u[T].style[s.getDirectionLabel(\"width\")]=\"\");let A=getComputedStyle(M),O=M.style.transform,k=M.style.webkitTransform;if(O&&(M.style.transform=\"none\"),k&&(M.style.webkitTransform=\"none\"),t.roundLengths)P=s.isHorizontal()?ae(M,\"width\",!0):ae(M,\"height\",!0);else{let G=e(A,\"width\"),z=e(A,\"padding-left\"),w=e(A,\"padding-right\"),E=e(A,\"margin-left\"),$=e(A,\"margin-right\"),X=A.getPropertyValue(\"box-sizing\");if(X&&X===\"border-box\")P=G+E+$;else{let{clientWidth:q,offsetWidth:j}=M;P=G+z+w+E+$+(j-q)}}O&&(M.style.transform=O),k&&(M.style.webkitTransform=k),t.roundLengths&&(P=Math.floor(P))}else P=(r-(t.slidesPerView-1)*f)\/t.slidesPerView,t.roundLengths&&(P=Math.floor(P)),u[T]&&(u[T].style[s.getDirectionLabel(\"width\")]=`${P}px`);u[T]&&(u[T].swiperSlideSize=P),m.push(P),t.centeredSlides?(v=v+P\/2+S\/2+f,S===0&&T!==0&&(v=v-r\/2-f),T===0&&(v=v-r\/2-f),Math.abs(v)<1\/1e3&&(v=0),t.roundLengths&&(v=Math.floor(v)),C%t.slidesPerGroup===0&&g.push(v),y.push(v)):(t.roundLengths&&(v=Math.floor(v)),(C-Math.min(s.params.slidesPerGroupSkip,C))%s.params.slidesPerGroup===0&&g.push(v),y.push(v),v=v+P+f),s.virtualSize+=P+f,S=P,C+=1}}if(s.virtualSize=Math.max(s.virtualSize,r)+x,l&&n&&(t.effect===\"slide\"||t.effect===\"coverflow\")&&(i.style.width=`${s.virtualSize+f}px`),t.setWrapperSize&&(i.style[s.getDirectionLabel(\"width\")]=`${s.virtualSize+f}px`),I&&s.grid.updateWrapperSize(P,g),!t.centeredSlides){let T=[];for(let M=0;M<g.length;M+=1){let A=g[M];t.roundLengths&&(A=Math.floor(A)),g[M]<=s.virtualSize-r&&T.push(A)}g=T,Math.floor(s.virtualSize-r)-Math.floor(g[g.length-1])>1&&g.push(s.virtualSize-r)}if(d&&t.loop){let T=m[0]+f;if(t.slidesPerGroup>1){let M=Math.ceil((s.virtual.slidesBefore+s.virtual.slidesAfter)\/t.slidesPerGroup),A=T*t.slidesPerGroup;for(let O=0;O<M;O+=1)g.push(g[g.length-1]+A)}for(let M=0;M<s.virtual.slidesBefore+s.virtual.slidesAfter;M+=1)t.slidesPerGroup===1&&g.push(g[g.length-1]+T),y.push(y[y.length-1]+T),s.virtualSize+=T}if(g.length===0&&(g=[0]),f!==0){let T=s.isHorizontal()&&l?\"marginLeft\":s.getDirectionLabel(\"marginRight\");u.filter((M,A)=>!t.cssMode||t.loop?!0:A!==u.length-1).forEach(M=>{M.style[T]=`${f}px`})}if(t.centeredSlides&&t.centeredSlidesBounds){let T=0;m.forEach(A=>{T+=A+(f||0)}),T-=f;let M=T>r?T-r:0;g=g.map(A=>A<=0?-h:A>M?M+x:A)}if(t.centerInsufficientSlides){let T=0;m.forEach(A=>{T+=A+(f||0)}),T-=f;let M=(t.slidesOffsetBefore||0)+(t.slidesOffsetAfter||0);if(T+M<r){let A=(r-T-M)\/2;g.forEach((O,k)=>{g[k]=O-A}),y.forEach((O,k)=>{y[k]=O+A})}}if(Object.assign(s,{slides:u,snapGrid:g,slidesGrid:y,slidesSizesGrid:m}),t.centeredSlides&&t.cssMode&&!t.centeredSlidesBounds){ee(i,\"--swiper-centered-offset-before\",`${-g[0]}px`),ee(i,\"--swiper-centered-offset-after\",`${s.size\/2-m[m.length-1]\/2}px`);let T=-s.snapGrid[0],M=-s.slidesGrid[0];s.snapGrid=s.snapGrid.map(A=>A+T),s.slidesGrid=s.slidesGrid.map(A=>A+M)}if(p!==o&&s.emit(\"slidesLengthChange\"),g.length!==b&&(s.params.watchOverflow&&s.checkOverflow(),s.emit(\"snapGridLengthChange\")),y.length!==c&&s.emit(\"slidesGridLengthChange\"),t.watchSlidesProgress&&s.updateSlidesOffset(),s.emit(\"slidesUpdated\"),!d&&!t.cssMode&&(t.effect===\"slide\"||t.effect===\"fade\")){let T=`${t.containerModifierClass}backface-hidden`,M=s.el.classList.contains(T);p<=t.maxBackfaceHiddenSlides?M||s.el.classList.add(T):M&&s.el.classList.remove(T)}}function mt(s){let e=this,t=[],i=e.virtual&&e.params.virtual.enabled,a=0,r;typeof s==\"number\"?e.setTransition(s):s===!0&&e.setTransition(e.params.speed);let l=n=>i?e.slides[e.getSlideIndexByData(n)]:e.slides[n];if(e.params.slidesPerView!==\"auto\"&&e.params.slidesPerView>1)if(e.params.centeredSlides)(e.visibleSlides||[]).forEach(n=>{t.push(n)});else for(r=0;r<Math.ceil(e.params.slidesPerView);r+=1){let n=e.activeIndex+r;if(n>e.slides.length&&!i)break;t.push(l(n))}else t.push(l(e.activeIndex));for(r=0;r<t.length;r+=1)if(typeof t[r]!=\"undefined\"){let n=t[r].offsetHeight;a=n>a?n:a}(a||a===0)&&(e.wrapperEl.style.height=`${a}px`)}function ht(){let s=this,e=s.slides,t=s.isElement?s.isHorizontal()?s.wrapperEl.offsetLeft:s.wrapperEl.offsetTop:0;for(let i=0;i<e.length;i+=1)e[i].swiperSlideOffset=(s.isHorizontal()?e[i].offsetLeft:e[i].offsetTop)-t-s.cssOverflowAdjustment()}var Be=(s,e,t)=>{e&&!s.classList.contains(t)?s.classList.add(t):!e&&s.classList.contains(t)&&s.classList.remove(t)};function gt(s){s===void 0&&(s=this&&this.translate||0);let e=this,t=e.params,{slides:i,rtlTranslate:a,snapGrid:r}=e;if(i.length===0)return;typeof i[0].swiperSlideOffset==\"undefined\"&&e.updateSlidesOffset();let l=-s;a&&(l=s),e.visibleSlidesIndexes=[],e.visibleSlides=[];let n=t.spaceBetween;typeof n==\"string\"&&n.indexOf(\"%\")>=0?n=parseFloat(n.replace(\"%\",\"\"))\/100*e.size:typeof n==\"string\"&&(n=parseFloat(n));for(let d=0;d<i.length;d+=1){let o=i[d],u=o.swiperSlideOffset;t.cssMode&&t.centeredSlides&&(u-=i[0].swiperSlideOffset);let p=(l+(t.centeredSlides?e.minTranslate():0)-u)\/(o.swiperSlideSize+n),g=(l-r[0]+(t.centeredSlides?e.minTranslate():0)-u)\/(o.swiperSlideSize+n),y=-(l-u),m=y+e.slidesSizesGrid[d],h=y>=0&&y<=e.size-e.slidesSizesGrid[d],x=y>=0&&y<e.size-1||m>1&&m<=e.size||y<=0&&m>=e.size;x&&(e.visibleSlides.push(o),e.visibleSlidesIndexes.push(d)),Be(o,x,t.slideVisibleClass),Be(o,h,t.slideFullyVisibleClass),o.progress=a?-p:p,o.originalProgress=a?-g:g}}function vt(s){let e=this;if(typeof s==\"undefined\"){let u=e.rtlTranslate?-1:1;s=e&&e.translate&&e.translate*u||0}let t=e.params,i=e.maxTranslate()-e.minTranslate(),{progress:a,isBeginning:r,isEnd:l,progressLoop:n}=e,d=r,o=l;if(i===0)a=0,r=!0,l=!0;else{a=(s-e.minTranslate())\/i;let u=Math.abs(s-e.minTranslate())<1,p=Math.abs(s-e.maxTranslate())<1;r=u||a<=0,l=p||a>=1,u&&(a=0),p&&(a=1)}if(t.loop){let u=e.getSlideIndexByData(0),p=e.getSlideIndexByData(e.slides.length-1),g=e.slidesGrid[u],y=e.slidesGrid[p],m=e.slidesGrid[e.slidesGrid.length-1],h=Math.abs(s);h>=g?n=(h-g)\/m:n=(h+m-y)\/m,n>1&&(n-=1)}Object.assign(e,{progress:a,progressLoop:n,isBeginning:r,isEnd:l}),(t.watchSlidesProgress||t.centeredSlides&&t.autoHeight)&&e.updateSlidesProgress(s),r&&!d&&e.emit(\"reachBeginning toEdge\"),l&&!o&&e.emit(\"reachEnd toEdge\"),(d&&!r||o&&!l)&&e.emit(\"fromEdge\"),e.emit(\"progress\",a)}var ye=(s,e,t)=>{e&&!s.classList.contains(t)?s.classList.add(t):!e&&s.classList.contains(t)&&s.classList.remove(t)};function wt(){let s=this,{slides:e,params:t,slidesEl:i,activeIndex:a}=s,r=s.virtual&&t.virtual.enabled,l=s.grid&&t.grid&&t.grid.rows>1,n=p=>R(i,`.${t.slideClass}${p}, swiper-slide${p}`)[0],d,o,u;if(r)if(t.loop){let p=a-s.virtual.slidesBefore;p<0&&(p=s.virtual.slides.length+p),p>=s.virtual.slides.length&&(p-=s.virtual.slides.length),d=n(`[data-swiper-slide-index=\"${p}\"]`)}else d=n(`[data-swiper-slide-index=\"${a}\"]`);else l?(d=e.find(p=>p.column===a),u=e.find(p=>p.column===a+1),o=e.find(p=>p.column===a-1)):d=e[a];d&&(l||(u=He(d,`.${t.slideClass}, swiper-slide`)[0],t.loop&&!u&&(u=e[0]),o=Ge(d,`.${t.slideClass}, swiper-slide`)[0],t.loop&&!o===0&&(o=e[e.length-1]))),e.forEach(p=>{ye(p,p===d,t.slideActiveClass),ye(p,p===u,t.slideNextClass),ye(p,p===o,t.slidePrevClass)}),s.emitSlidesClasses()}var fe=(s,e)=>{if(!s||s.destroyed||!s.params)return;let t=()=>s.isElement?\"swiper-slide\":`.${s.params.slideClass}`,i=e.closest(t());if(i){let a=i.querySelector(`.${s.params.lazyPreloaderClass}`);!a&&s.isElement&&(i.shadowRoot?a=i.shadowRoot.querySelector(`.${s.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{i.shadowRoot&&(a=i.shadowRoot.querySelector(`.${s.params.lazyPreloaderClass}`),a&&a.remove())})),a&&a.remove()}},be=(s,e)=>{if(!s.slides[e])return;let t=s.slides[e].querySelector('[loading=\"lazy\"]');t&&t.removeAttribute(\"loading\")},Ee=s=>{if(!s||s.destroyed||!s.params)return;let e=s.params.lazyPreloadPrevNext,t=s.slides.length;if(!t||!e||e<0)return;e=Math.min(e,t);let i=s.params.slidesPerView===\"auto\"?s.slidesPerViewDynamic():Math.ceil(s.params.slidesPerView),a=s.activeIndex;if(s.params.grid&&s.params.grid.rows>1){let l=a,n=[l-e];n.push(...Array.from({length:e}).map((d,o)=>l+i+o)),s.slides.forEach((d,o)=>{n.includes(d.column)&&be(s,o)});return}let r=a+i-1;if(s.params.rewind||s.params.loop)for(let l=a-e;l<=r+e;l+=1){let n=(l%t+t)%t;(n<a||n>r)&&be(s,n)}else for(let l=Math.max(a-e,0);l<=Math.min(r+e,t-1);l+=1)l!==a&&(l>r||l<a)&&be(s,l)};function yt(s){let{slidesGrid:e,params:t}=s,i=s.rtlTranslate?s.translate:-s.translate,a;for(let r=0;r<e.length;r+=1)typeof e[r+1]!=\"undefined\"?i>=e[r]&&i<e[r+1]-(e[r+1]-e[r])\/2?a=r:i>=e[r]&&i<e[r+1]&&(a=r+1):i>=e[r]&&(a=r);return t.normalizeSlideIndex&&(a<0||typeof a==\"undefined\")&&(a=0),a}function bt(s){let e=this,t=e.rtlTranslate?e.translate:-e.translate,{snapGrid:i,params:a,activeIndex:r,realIndex:l,snapIndex:n}=e,d=s,o,u=y=>{let m=y-e.virtual.slidesBefore;return m<0&&(m=e.virtual.slides.length+m),m>=e.virtual.slides.length&&(m-=e.virtual.slides.length),m};if(typeof d==\"undefined\"&&(d=yt(e)),i.indexOf(t)>=0)o=i.indexOf(t);else{let y=Math.min(a.slidesPerGroupSkip,d);o=y+Math.floor((d-y)\/a.slidesPerGroup)}if(o>=i.length&&(o=i.length-1),d===r&&!e.params.loop){o!==n&&(e.snapIndex=o,e.emit(\"snapIndexChange\"));return}if(d===r&&e.params.loop&&e.virtual&&e.params.virtual.enabled){e.realIndex=u(d);return}let p=e.grid&&a.grid&&a.grid.rows>1,g;if(e.virtual&&a.virtual.enabled&&a.loop)g=u(d);else if(p){let y=e.slides.find(h=>h.column===d),m=parseInt(y.getAttribute(\"data-swiper-slide-index\"),10);Number.isNaN(m)&&(m=Math.max(e.slides.indexOf(y),0)),g=Math.floor(m\/a.grid.rows)}else if(e.slides[d]){let y=e.slides[d].getAttribute(\"data-swiper-slide-index\");y?g=parseInt(y,10):g=d}else g=d;Object.assign(e,{previousSnapIndex:n,snapIndex:o,previousRealIndex:l,realIndex:g,previousIndex:r,activeIndex:d}),e.initialized&&Ee(e),e.emit(\"activeIndexChange\"),e.emit(\"snapIndexChange\"),(e.initialized||e.params.runCallbacksOnInit)&&(l!==g&&e.emit(\"realIndexChange\"),e.emit(\"slideChange\"))}function St(s,e){let t=this,i=t.params,a=s.closest(`.${i.slideClass}, swiper-slide`);!a&&t.isElement&&e&&e.length>1&&e.includes(s)&&[...e.slice(e.indexOf(s)+1,e.length)].forEach(n=>{!a&&n.matches&&n.matches(`.${i.slideClass}, swiper-slide`)&&(a=n)});let r=!1,l;if(a){for(let n=0;n<t.slides.length;n+=1)if(t.slides[n]===a){r=!0,l=n;break}}if(a&&r)t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(a.getAttribute(\"data-swiper-slide-index\"),10):t.clickedIndex=l;else{t.clickedSlide=void 0,t.clickedIndex=void 0;return}i.slideToClickedSlide&&t.clickedIndex!==void 0&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}var xt={updateSize:ut,updateSlides:pt,updateAutoHeight:mt,updateSlidesOffset:ht,updateSlidesProgress:gt,updateProgress:vt,updateSlidesClasses:wt,updateActiveIndex:bt,updateClickedSlide:St};function Et(s){s===void 0&&(s=this.isHorizontal()?\"x\":\"y\");let e=this,{params:t,rtlTranslate:i,translate:a,wrapperEl:r}=e;if(t.virtualTranslate)return i?-a:a;if(t.cssMode)return a;let l=me(r,s);return l+=e.cssOverflowAdjustment(),i&&(l=-l),l||0}function Tt(s,e){let t=this,{rtlTranslate:i,params:a,wrapperEl:r,progress:l}=t,n=0,d=0,o=0;t.isHorizontal()?n=i?-s:s:d=s,a.roundLengths&&(n=Math.floor(n),d=Math.floor(d)),t.previousTranslate=t.translate,t.translate=t.isHorizontal()?n:d,a.cssMode?r[t.isHorizontal()?\"scrollLeft\":\"scrollTop\"]=t.isHorizontal()?-n:-d:a.virtualTranslate||(t.isHorizontal()?n-=t.cssOverflowAdjustment():d-=t.cssOverflowAdjustment(),r.style.transform=`translate3d(${n}px, ${d}px, ${o}px)`);let u,p=t.maxTranslate()-t.minTranslate();p===0?u=0:u=(s-t.minTranslate())\/p,u!==l&&t.updateProgress(s),t.emit(\"setTranslate\",t.translate,e)}function Mt(){return-this.snapGrid[0]}function Ct(){return-this.snapGrid[this.snapGrid.length-1]}function Pt(s,e,t,i,a){s===void 0&&(s=0),e===void 0&&(e=this.params.speed),t===void 0&&(t=!0),i===void 0&&(i=!0);let r=this,{params:l,wrapperEl:n}=r;if(r.animating&&l.preventInteractionOnTransition)return!1;let d=r.minTranslate(),o=r.maxTranslate(),u;if(i&&s>d?u=d:i&&s<o?u=o:u=s,r.updateProgress(u),l.cssMode){let p=r.isHorizontal();if(e===0)n[p?\"scrollLeft\":\"scrollTop\"]=-u;else{if(!r.support.smoothScroll)return he({swiper:r,targetPosition:-u,side:p?\"left\":\"top\"}),!0;n.scrollTo({[p?\"left\":\"top\"]:-u,behavior:\"smooth\"})}return!0}return e===0?(r.setTransition(0),r.setTranslate(u),t&&(r.emit(\"beforeTransitionStart\",e,a),r.emit(\"transitionEnd\"))):(r.setTransition(e),r.setTranslate(u),t&&(r.emit(\"beforeTransitionStart\",e,a),r.emit(\"transitionStart\")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(g){!r||r.destroyed||g.target===this&&(r.wrapperEl.removeEventListener(\"transitionend\",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,r.animating=!1,t&&r.emit(\"transitionEnd\"))}),r.wrapperEl.addEventListener(\"transitionend\",r.onTranslateToWrapperTransitionEnd))),!0}var Lt={getTranslate:Et,setTranslate:Tt,minTranslate:Mt,maxTranslate:Ct,translateTo:Pt};function It(s,e){let t=this;t.params.cssMode||(t.wrapperEl.style.transitionDuration=`${s}ms`,t.wrapperEl.style.transitionDelay=s===0?\"0ms\":\"\"),t.emit(\"setTransition\",s,e)}function _e(s){let{swiper:e,runCallbacks:t,direction:i,step:a}=s,{activeIndex:r,previousIndex:l}=e,n=i;n||(r>l?n=\"next\":r<l?n=\"prev\":n=\"reset\"),e.emit(`transition${a}`),t&&n===\"reset\"?e.emit(`slideResetTransition${a}`):t&&r!==l&&(e.emit(`slideChangeTransition${a}`),n===\"next\"?e.emit(`slideNextTransition${a}`):e.emit(`slidePrevTransition${a}`))}function At(s,e){s===void 0&&(s=!0);let t=this,{params:i}=t;i.cssMode||(i.autoHeight&&t.updateAutoHeight(),_e({swiper:t,runCallbacks:s,direction:e,step:\"Start\"}))}function zt(s,e){s===void 0&&(s=!0);let t=this,{params:i}=t;t.animating=!1,!i.cssMode&&(t.setTransition(0),_e({swiper:t,runCallbacks:s,direction:e,step:\"End\"}))}var Ot={setTransition:It,transitionStart:At,transitionEnd:zt};function Dt(s,e,t,i,a){s===void 0&&(s=0),t===void 0&&(t=!0),typeof s==\"string\"&&(s=parseInt(s,10));let r=this,l=s;l<0&&(l=0);let{params:n,snapGrid:d,slidesGrid:o,previousIndex:u,activeIndex:p,rtlTranslate:g,wrapperEl:y,enabled:m}=r;if(!m&&!i&&!a||r.destroyed||r.animating&&n.preventInteractionOnTransition)return!1;typeof e==\"undefined\"&&(e=r.params.speed);let h=Math.min(r.params.slidesPerGroupSkip,l),x=h+Math.floor((l-h)\/r.params.slidesPerGroup);x>=d.length&&(x=d.length-1);let b=-d[x];if(n.normalizeSlideIndex)for(let I=0;I<o.length;I+=1){let P=-Math.floor(b*100),L=Math.floor(o[I]*100),T=Math.floor(o[I+1]*100);typeof o[I+1]!=\"undefined\"?P>=L&&P<T-(T-L)\/2?l=I:P>=L&&P<T&&(l=I+1):P>=L&&(l=I)}if(r.initialized&&l!==p&&(!r.allowSlideNext&&(g?b>r.translate&&b>r.minTranslate():b<r.translate&&b<r.minTranslate())||!r.allowSlidePrev&&b>r.translate&&b>r.maxTranslate()&&(p||0)!==l))return!1;l!==(u||0)&&t&&r.emit(\"beforeSlideChangeStart\"),r.updateProgress(b);let c;l>p?c=\"next\":l<p?c=\"prev\":c=\"reset\";let f=r.virtual&&r.params.virtual.enabled;if(!(f&&a)&&(g&&-b===r.translate||!g&&b===r.translate))return r.updateActiveIndex(l),n.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),n.effect!==\"slide\"&&r.setTranslate(b),c!==\"reset\"&&(r.transitionStart(t,c),r.transitionEnd(t,c)),!1;if(n.cssMode){let I=r.isHorizontal(),P=g?b:-b;if(e===0)f&&(r.wrapperEl.style.scrollSnapType=\"none\",r._immediateVirtual=!0),f&&!r._cssModeVirtualInitialSet&&r.params.initialSlide>0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{y[I?\"scrollLeft\":\"scrollTop\"]=P})):y[I?\"scrollLeft\":\"scrollTop\"]=P,f&&requestAnimationFrame(()=>{r.wrapperEl.style.scrollSnapType=\"\",r._immediateVirtual=!1});else{if(!r.support.smoothScroll)return he({swiper:r,targetPosition:P,side:I?\"left\":\"top\"}),!0;y.scrollTo({[I?\"left\":\"top\"]:P,behavior:\"smooth\"})}return!0}let C=We().isSafari;return f&&!a&&C&&r.isElement&&r.virtual.update(!1,!1,l),r.setTransition(e),r.setTranslate(b),r.updateActiveIndex(l),r.updateSlidesClasses(),r.emit(\"beforeTransitionStart\",e,i),r.transitionStart(t,c),e===0?r.transitionEnd(t,c):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(P){!r||r.destroyed||P.target===this&&(r.wrapperEl.removeEventListener(\"transitionend\",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(t,c))}),r.wrapperEl.addEventListener(\"transitionend\",r.onSlideToWrapperTransitionEnd)),!0}function $t(s,e,t,i){s===void 0&&(s=0),t===void 0&&(t=!0),typeof s==\"string\"&&(s=parseInt(s,10));let a=this;if(a.destroyed)return;typeof e==\"undefined\"&&(e=a.params.speed);let r=a.grid&&a.params.grid&&a.params.grid.rows>1,l=s;if(a.params.loop)if(a.virtual&&a.params.virtual.enabled)l=l+a.virtual.slidesBefore;else{let n;if(r){let g=l*a.params.grid.rows;n=a.slides.find(y=>y.getAttribute(\"data-swiper-slide-index\")*1===g).column}else n=a.getSlideIndexByData(l);let d=r?Math.ceil(a.slides.length\/a.params.grid.rows):a.slides.length,{centeredSlides:o}=a.params,u=a.params.slidesPerView;u===\"auto\"?u=a.slidesPerViewDynamic():(u=Math.ceil(parseFloat(a.params.slidesPerView,10)),o&&u%2===0&&(u=u+1));let p=d-n<u;if(o&&(p=p||n<Math.ceil(u\/2)),i&&o&&a.params.slidesPerView!==\"auto\"&&!r&&(p=!1),p){let g=o?n<a.activeIndex?\"prev\":\"next\":n-a.activeIndex-1<a.params.slidesPerView?\"next\":\"prev\";a.loopFix({direction:g,slideTo:!0,activeSlideIndex:g===\"next\"?n+1:n-d+1,slideRealIndex:g===\"next\"?a.realIndex:void 0})}if(r){let g=l*a.params.grid.rows;l=a.slides.find(y=>y.getAttribute(\"data-swiper-slide-index\")*1===g).column}else l=a.getSlideIndexByData(l)}return requestAnimationFrame(()=>{a.slideTo(l,e,t,i)}),a}function kt(s,e,t){e===void 0&&(e=!0);let i=this,{enabled:a,params:r,animating:l}=i;if(!a||i.destroyed)return i;typeof s==\"undefined\"&&(s=i.params.speed);let n=r.slidesPerGroup;r.slidesPerView===\"auto\"&&r.slidesPerGroup===1&&r.slidesPerGroupAuto&&(n=Math.max(i.slidesPerViewDynamic(\"current\",!0),1));let d=i.activeIndex<r.slidesPerGroupSkip?1:n,o=i.virtual&&r.virtual.enabled;if(r.loop){if(l&&!o&&r.loopPreventsSliding)return!1;if(i.loopFix({direction:\"next\"}),i._clientLeft=i.wrapperEl.clientLeft,i.activeIndex===i.slides.length-1&&r.cssMode)return requestAnimationFrame(()=>{i.slideTo(i.activeIndex+d,s,e,t)}),!0}return r.rewind&&i.isEnd?i.slideTo(0,s,e,t):i.slideTo(i.activeIndex+d,s,e,t)}function Gt(s,e,t){e===void 0&&(e=!0);let i=this,{params:a,snapGrid:r,slidesGrid:l,rtlTranslate:n,enabled:d,animating:o}=i;if(!d||i.destroyed)return i;typeof s==\"undefined\"&&(s=i.params.speed);let u=i.virtual&&a.virtual.enabled;if(a.loop){if(o&&!u&&a.loopPreventsSliding)return!1;i.loopFix({direction:\"prev\"}),i._clientLeft=i.wrapperEl.clientLeft}let p=n?i.translate:-i.translate;function g(c){return c<0?-Math.floor(Math.abs(c)):Math.floor(c)}let y=g(p),m=r.map(c=>g(c)),h=a.freeMode&&a.freeMode.enabled,x=r[m.indexOf(y)-1];if(typeof x==\"undefined\"&&(a.cssMode||h)){let c;r.forEach((f,v)=>{y>=f&&(c=v)}),typeof c!=\"undefined\"&&(x=h?r[c]:r[c>0?c-1:c])}let b=0;if(typeof x!=\"undefined\"&&(b=l.indexOf(x),b<0&&(b=i.activeIndex-1),a.slidesPerView===\"auto\"&&a.slidesPerGroup===1&&a.slidesPerGroupAuto&&(b=b-i.slidesPerViewDynamic(\"previous\",!0)+1,b=Math.max(b,0))),a.rewind&&i.isBeginning){let c=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(c,s,e,t)}else if(a.loop&&i.activeIndex===0&&a.cssMode)return requestAnimationFrame(()=>{i.slideTo(b,s,e,t)}),!0;return i.slideTo(b,s,e,t)}function Ht(s,e,t){e===void 0&&(e=!0);let i=this;if(!i.destroyed)return typeof s==\"undefined\"&&(s=i.params.speed),i.slideTo(i.activeIndex,s,e,t)}function Bt(s,e,t,i){e===void 0&&(e=!0),i===void 0&&(i=.5);let a=this;if(a.destroyed)return;typeof s==\"undefined\"&&(s=a.params.speed);let r=a.activeIndex,l=Math.min(a.params.slidesPerGroupSkip,r),n=l+Math.floor((r-l)\/a.params.slidesPerGroup),d=a.rtlTranslate?a.translate:-a.translate;if(d>=a.snapGrid[n]){let o=a.snapGrid[n],u=a.snapGrid[n+1];d-o>(u-o)*i&&(r+=a.params.slidesPerGroup)}else{let o=a.snapGrid[n-1],u=a.snapGrid[n];d-o<=(u-o)*i&&(r-=a.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,a.slidesGrid.length-1),a.slideTo(r,s,e,t)}function Xt(){let s=this;if(s.destroyed)return;let{params:e,slidesEl:t}=s,i=e.slidesPerView===\"auto\"?s.slidesPerViewDynamic():e.slidesPerView,a=s.getSlideIndexWhenGrid(s.clickedIndex),r,l=s.isElement?\"swiper-slide\":`.${e.slideClass}`,n=s.grid&&s.params.grid&&s.params.grid.rows>1;if(e.loop){if(s.animating)return;r=parseInt(s.clickedSlide.getAttribute(\"data-swiper-slide-index\"),10),e.centeredSlides?s.slideToLoop(r):a>(n?(s.slides.length-i)\/2-(s.params.grid.rows-1):s.slides.length-i)?(s.loopFix(),a=s.getSlideIndex(R(t,`${l}[data-swiper-slide-index=\"${r}\"]`)[0]),J(()=>{s.slideTo(a)})):s.slideTo(a)}else s.slideTo(a)}var Rt={slideTo:Dt,slideToLoop:$t,slideNext:kt,slidePrev:Gt,slideReset:Ht,slideToClosest:Bt,slideToClickedSlide:Xt};function Yt(s,e){let t=this,{params:i,slidesEl:a}=t;if(!i.loop||t.virtual&&t.params.virtual.enabled)return;let r=()=>{R(a,`.${i.slideClass}, swiper-slide`).forEach((y,m)=>{y.setAttribute(\"data-swiper-slide-index\",m)})},l=()=>{let g=R(a,`.${i.slideBlankClass}`);g.forEach(y=>{y.remove()}),g.length>0&&(t.recalcSlides(),t.updateSlides())},n=t.grid&&i.grid&&i.grid.rows>1;i.loopAddBlankSlides&&(i.slidesPerGroup>1||n)&&l();let d=i.slidesPerGroup*(n?i.grid.rows:1),o=t.slides.length%d!==0,u=n&&t.slides.length%i.grid.rows!==0,p=g=>{for(let y=0;y<g;y+=1){let m=t.isElement?V(\"swiper-slide\",[i.slideBlankClass]):V(\"div\",[i.slideClass,i.slideBlankClass]);t.slidesEl.append(m)}};if(o){if(i.loopAddBlankSlides){let g=d-t.slides.length%d;p(g),t.recalcSlides(),t.updateSlides()}else re(\"Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)\");r()}else if(u){if(i.loopAddBlankSlides){let g=i.grid.rows-t.slides.length%i.grid.rows;p(g),t.recalcSlides(),t.updateSlides()}else re(\"Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)\");r()}else r();t.loopFix({slideRealIndex:s,direction:i.centeredSlides?void 0:\"next\",initial:e})}function Vt(s){let{slideRealIndex:e,slideTo:t=!0,direction:i,setTranslate:a,activeSlideIndex:r,initial:l,byController:n,byMousewheel:d}=s===void 0?{}:s,o=this;if(!o.params.loop)return;o.emit(\"beforeLoopFix\");let{slides:u,allowSlidePrev:p,allowSlideNext:g,slidesEl:y,params:m}=o,{centeredSlides:h,initialSlide:x}=m;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled){t&&(!m.centeredSlides&&o.snapIndex===0?o.slideTo(o.virtual.slides.length,0,!1,!0):m.centeredSlides&&o.snapIndex<m.slidesPerView?o.slideTo(o.virtual.slides.length+o.snapIndex,0,!1,!0):o.snapIndex===o.snapGrid.length-1&&o.slideTo(o.virtual.slidesBefore,0,!1,!0)),o.allowSlidePrev=p,o.allowSlideNext=g,o.emit(\"loopFix\");return}let b=m.slidesPerView;b===\"auto\"?b=o.slidesPerViewDynamic():(b=Math.ceil(parseFloat(m.slidesPerView,10)),h&&b%2===0&&(b=b+1));let c=m.slidesPerGroupAuto?b:m.slidesPerGroup,f=h?Math.max(c,Math.ceil(b\/2)):c;f%c!==0&&(f+=c-f%c),f+=m.loopAdditionalSlides,o.loopedSlides=f;let v=o.grid&&m.grid&&m.grid.rows>1;u.length<b+f||o.params.effect===\"cards\"&&u.length<b+f*2?re(\"Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters\"):v&&m.grid.fill===\"row\"&&re(\"Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`\");let S=[],C=[],I=v?Math.ceil(u.length\/m.grid.rows):u.length,P=l&&I-x<b&&!h,L=P?x:o.activeIndex;typeof r==\"undefined\"?r=o.getSlideIndex(u.find(z=>z.classList.contains(m.slideActiveClass))):L=r;let T=i===\"next\"||!i,M=i===\"prev\"||!i,A=0,O=0,G=(v?u[r].column:r)+(h&&typeof a==\"undefined\"?-b\/2+.5:0);if(G<f){A=Math.max(f-G,c);for(let z=0;z<f-G;z+=1){let w=z-Math.floor(z\/I)*I;if(v){let E=I-w-1;for(let $=u.length-1;$>=0;$-=1)u[$].column===E&&S.push($)}else S.push(I-w-1)}}else if(G+b>I-f){O=Math.max(G-(I-f*2),c),P&&(O=Math.max(O,b-I+x+1));for(let z=0;z<O;z+=1){let w=z-Math.floor(z\/I)*I;v?u.forEach((E,$)=>{E.column===w&&C.push($)}):C.push(w)}}if(o.__preventObserver__=!0,requestAnimationFrame(()=>{o.__preventObserver__=!1}),o.params.effect===\"cards\"&&u.length<b+f*2&&(C.includes(r)&&C.splice(C.indexOf(r),1),S.includes(r)&&S.splice(S.indexOf(r),1)),M&&S.forEach(z=>{u[z].swiperLoopMoveDOM=!0,y.prepend(u[z]),u[z].swiperLoopMoveDOM=!1}),T&&C.forEach(z=>{u[z].swiperLoopMoveDOM=!0,y.append(u[z]),u[z].swiperLoopMoveDOM=!1}),o.recalcSlides(),m.slidesPerView===\"auto\"?o.updateSlides():v&&(S.length>0&&M||C.length>0&&T)&&o.slides.forEach((z,w)=>{o.grid.updateSlide(w,z,o.slides)}),m.watchSlidesProgress&&o.updateSlidesOffset(),t){if(S.length>0&&M){if(typeof e==\"undefined\"){let z=o.slidesGrid[L],E=o.slidesGrid[L+A]-z;d?o.setTranslate(o.translate-E):(o.slideTo(L+Math.ceil(A),0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-E,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-E))}else if(a){let z=v?S.length\/m.grid.rows:S.length;o.slideTo(o.activeIndex+z,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(C.length>0&&T)if(typeof e==\"undefined\"){let z=o.slidesGrid[L],E=o.slidesGrid[L-O]-z;d?o.setTranslate(o.translate-E):(o.slideTo(L-O,0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-E,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-E))}else{let z=v?C.length\/m.grid.rows:C.length;o.slideTo(o.activeIndex-z,0,!1,!0)}}if(o.allowSlidePrev=p,o.allowSlideNext=g,o.controller&&o.controller.control&&!n){let z={slideRealIndex:e,direction:i,setTranslate:a,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach(w=>{!w.destroyed&&w.params.loop&&w.loopFix({...z,slideTo:w.params.slidesPerView===m.slidesPerView?t:!1})}):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...z,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView?t:!1})}o.emit(\"loopFix\")}function Nt(){let s=this,{params:e,slidesEl:t}=s;if(!e.loop||!t||s.virtual&&s.params.virtual.enabled)return;s.recalcSlides();let i=[];s.slides.forEach(a=>{let r=typeof a.swiperSlideIndex==\"undefined\"?a.getAttribute(\"data-swiper-slide-index\")*1:a.swiperSlideIndex;i[r]=a}),s.slides.forEach(a=>{a.removeAttribute(\"data-swiper-slide-index\")}),i.forEach(a=>{t.append(a)}),s.recalcSlides(),s.slideTo(s.realIndex,0)}var Ft={loopCreate:Yt,loopFix:Vt,loopDestroy:Nt};function Wt(s){let e=this;if(!e.params.simulateTouch||e.params.watchOverflow&&e.isLocked||e.params.cssMode)return;let t=e.params.touchEventsTarget===\"container\"?e.el:e.wrapperEl;e.isElement&&(e.__preventObserver__=!0),t.style.cursor=\"move\",t.style.cursor=s?\"grabbing\":\"grab\",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1})}function _t(){let s=this;s.params.watchOverflow&&s.isLocked||s.params.cssMode||(s.isElement&&(s.__preventObserver__=!0),s[s.params.touchEventsTarget===\"container\"?\"el\":\"wrapperEl\"].style.cursor=\"\",s.isElement&&requestAnimationFrame(()=>{s.__preventObserver__=!1}))}var qt={setGrabCursor:Wt,unsetGrabCursor:_t};function jt(s,e){e===void 0&&(e=this);function t(i){if(!i||i===B()||i===H())return null;i.assignedSlot&&(i=i.assignedSlot);let a=i.closest(s);return!a&&!i.getRootNode?null:a||t(i.getRootNode().host)}return t(e)}function Xe(s,e,t){let i=H(),{params:a}=s,r=a.edgeSwipeDetection,l=a.edgeSwipeThreshold;return r&&(t<=l||t>=i.innerWidth-l)?r===\"prevent\"?(e.preventDefault(),!0):!1:!0}function Ut(s){let e=this,t=B(),i=s;i.originalEvent&&(i=i.originalEvent);let a=e.touchEventsData;if(i.type===\"pointerdown\"){if(a.pointerId!==null&&a.pointerId!==i.pointerId)return;a.pointerId=i.pointerId}else i.type===\"touchstart\"&&i.targetTouches.length===1&&(a.touchId=i.targetTouches[0].identifier);if(i.type===\"touchstart\"){Xe(e,i,i.targetTouches[0].pageX);return}let{params:r,touches:l,enabled:n}=e;if(!n||!r.simulateTouch&&i.pointerType===\"mouse\"||e.animating&&r.preventInteractionOnTransition)return;!e.animating&&r.cssMode&&r.loop&&e.loopFix();let d=i.target;if(r.touchEventsTarget===\"wrapper\"&&!ke(d,e.wrapperEl)||\"which\"in i&&i.which===3||\"button\"in i&&i.button>0||a.isTouched&&a.isMoved)return;let o=!!r.noSwipingClass&&r.noSwipingClass!==\"\",u=i.composedPath?i.composedPath():i.path;o&&i.target&&i.target.shadowRoot&&u&&(d=u[0]);let p=r.noSwipingSelector?r.noSwipingSelector:`.${r.noSwipingClass}`,g=!!(i.target&&i.target.shadowRoot);if(r.noSwiping&&(g?jt(p,d):d.closest(p))){e.allowClick=!0;return}if(r.swipeHandler&&!d.closest(r.swipeHandler))return;l.currentX=i.pageX,l.currentY=i.pageY;let y=l.currentX,m=l.currentY;if(!Xe(e,i,y))return;Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=y,l.startY=m,a.touchStartTime=K(),e.allowClick=!0,e.updateSize(),e.swipeDirection=void 0,r.threshold>0&&(a.allowThresholdMove=!1);let h=!0;d.matches(a.focusableElements)&&(h=!1,d.nodeName===\"SELECT\"&&(a.isTouched=!1)),t.activeElement&&t.activeElement.matches(a.focusableElements)&&t.activeElement!==d&&(i.pointerType===\"mouse\"||i.pointerType!==\"mouse\"&&!d.matches(a.focusableElements))&&t.activeElement.blur();let x=h&&e.allowTouchMove&&r.touchStartPreventDefault;(r.touchStartForcePreventDefault||x)&&!d.isContentEditable&&i.preventDefault(),r.freeMode&&r.freeMode.enabled&&e.freeMode&&e.animating&&!r.cssMode&&e.freeMode.onTouchStart(),e.emit(\"touchStart\",i)}function Kt(s){let e=B(),t=this,i=t.touchEventsData,{params:a,touches:r,rtlTranslate:l,enabled:n}=t;if(!n||!a.simulateTouch&&s.pointerType===\"mouse\")return;let d=s;if(d.originalEvent&&(d=d.originalEvent),d.type===\"pointermove\"&&(i.touchId!==null||d.pointerId!==i.pointerId))return;let o;if(d.type===\"touchmove\"){if(o=[...d.changedTouches].find(C=>C.identifier===i.touchId),!o||o.identifier!==i.touchId)return}else o=d;if(!i.isTouched){i.startMoving&&i.isScrolling&&t.emit(\"touchMoveOpposite\",d);return}let u=o.pageX,p=o.pageY;if(d.preventedByNestedSwiper){r.startX=u,r.startY=p;return}if(!t.allowTouchMove){d.target.matches(i.focusableElements)||(t.allowClick=!1),i.isTouched&&(Object.assign(r,{startX:u,startY:p,currentX:u,currentY:p}),i.touchStartTime=K());return}if(a.touchReleaseOnEdges&&!a.loop)if(t.isVertical()){if(p<r.startY&&t.translate<=t.maxTranslate()||p>r.startY&&t.translate>=t.minTranslate()){i.isTouched=!1,i.isMoved=!1;return}}else{if(l&&(u>r.startX&&-t.translate<=t.maxTranslate()||u<r.startX&&-t.translate>=t.minTranslate()))return;if(!l&&(u<r.startX&&t.translate<=t.maxTranslate()||u>r.startX&&t.translate>=t.minTranslate()))return}if(e.activeElement&&e.activeElement.matches(i.focusableElements)&&e.activeElement!==d.target&&d.pointerType!==\"mouse\"&&e.activeElement.blur(),e.activeElement&&d.target===e.activeElement&&d.target.matches(i.focusableElements)){i.isMoved=!0,t.allowClick=!1;return}i.allowTouchCallbacks&&t.emit(\"touchMove\",d),r.previousX=r.currentX,r.previousY=r.currentY,r.currentX=u,r.currentY=p;let g=r.currentX-r.startX,y=r.currentY-r.startY;if(t.params.threshold&&Math.sqrt(g**2+y**2)<t.params.threshold)return;if(typeof i.isScrolling==\"undefined\"){let C;t.isHorizontal()&&r.currentY===r.startY||t.isVertical()&&r.currentX===r.startX?i.isScrolling=!1:g*g+y*y>=25&&(C=Math.atan2(Math.abs(y),Math.abs(g))*180\/Math.PI,i.isScrolling=t.isHorizontal()?C>a.touchAngle:90-C>a.touchAngle)}if(i.isScrolling&&t.emit(\"touchMoveOpposite\",d),typeof i.startMoving==\"undefined\"&&(r.currentX!==r.startX||r.currentY!==r.startY)&&(i.startMoving=!0),i.isScrolling||d.type===\"touchmove\"&&i.preventTouchMoveFromPointerMove){i.isTouched=!1;return}if(!i.startMoving)return;t.allowClick=!1,!a.cssMode&&d.cancelable&&d.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&d.stopPropagation();let m=t.isHorizontal()?g:y,h=t.isHorizontal()?r.currentX-r.previousX:r.currentY-r.previousY;a.oneWayMovement&&(m=Math.abs(m)*(l?1:-1),h=Math.abs(h)*(l?1:-1)),r.diff=m,m*=a.touchRatio,l&&(m=-m,h=-h);let x=t.touchesDirection;t.swipeDirection=m>0?\"prev\":\"next\",t.touchesDirection=h>0?\"prev\":\"next\";let b=t.params.loop&&!a.cssMode,c=t.touchesDirection===\"next\"&&t.allowSlideNext||t.touchesDirection===\"prev\"&&t.allowSlidePrev;if(!i.isMoved){if(b&&c&&t.loopFix({direction:t.swipeDirection}),i.startTranslate=t.getTranslate(),t.setTransition(0),t.animating){let C=new window.CustomEvent(\"transitionend\",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});t.wrapperEl.dispatchEvent(C)}i.allowMomentumBounce=!1,a.grabCursor&&(t.allowSlideNext===!0||t.allowSlidePrev===!0)&&t.setGrabCursor(!0),t.emit(\"sliderFirstMove\",d)}let f;if(new Date().getTime(),a._loopSwapReset!==!1&&i.isMoved&&i.allowThresholdMove&&x!==t.touchesDirection&&b&&c&&Math.abs(m)>=1){Object.assign(r,{startX:u,startY:p,currentX:u,currentY:p,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,i.startTranslate=i.currentTranslate;return}t.emit(\"sliderMove\",d),i.isMoved=!0,i.currentTranslate=m+i.startTranslate;let v=!0,S=a.resistanceRatio;if(a.touchReleaseOnEdges&&(S=0),m>0?(b&&c&&!f&&i.allowThresholdMove&&i.currentTranslate>(a.centeredSlides?t.minTranslate()-t.slidesSizesGrid[t.activeIndex+1]-(a.slidesPerView!==\"auto\"&&t.slides.length-a.slidesPerView>=2?t.slidesSizesGrid[t.activeIndex+1]+t.params.spaceBetween:0)-t.params.spaceBetween:t.minTranslate())&&t.loopFix({direction:\"prev\",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>t.minTranslate()&&(v=!1,a.resistance&&(i.currentTranslate=t.minTranslate()-1+(-t.minTranslate()+i.startTranslate+m)**S))):m<0&&(b&&c&&!f&&i.allowThresholdMove&&i.currentTranslate<(a.centeredSlides?t.maxTranslate()+t.slidesSizesGrid[t.slidesSizesGrid.length-1]+t.params.spaceBetween+(a.slidesPerView!==\"auto\"&&t.slides.length-a.slidesPerView>=2?t.slidesSizesGrid[t.slidesSizesGrid.length-1]+t.params.spaceBetween:0):t.maxTranslate())&&t.loopFix({direction:\"next\",setTranslate:!0,activeSlideIndex:t.slides.length-(a.slidesPerView===\"auto\"?t.slidesPerViewDynamic():Math.ceil(parseFloat(a.slidesPerView,10)))}),i.currentTranslate<t.maxTranslate()&&(v=!1,a.resistance&&(i.currentTranslate=t.maxTranslate()+1-(t.maxTranslate()-i.startTranslate-m)**S))),v&&(d.preventedByNestedSwiper=!0),!t.allowSlideNext&&t.swipeDirection===\"next\"&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!t.allowSlidePrev&&t.swipeDirection===\"prev\"&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),!t.allowSlidePrev&&!t.allowSlideNext&&(i.currentTranslate=i.startTranslate),a.threshold>0)if(Math.abs(m)>a.threshold||i.allowThresholdMove){if(!i.allowThresholdMove){i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTranslate,r.diff=t.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY;return}}else{i.currentTranslate=i.startTranslate;return}!a.followFinger||a.cssMode||((a.freeMode&&a.freeMode.enabled&&t.freeMode||a.watchSlidesProgress)&&(t.updateActiveIndex(),t.updateSlidesClasses()),a.freeMode&&a.freeMode.enabled&&t.freeMode&&t.freeMode.onTouchMove(),t.updateProgress(i.currentTranslate),t.setTranslate(i.currentTranslate))}function Zt(s){let e=this,t=e.touchEventsData,i=s;i.originalEvent&&(i=i.originalEvent);let a;if(i.type===\"touchend\"||i.type===\"touchcancel\"){if(a=[...i.changedTouches].find(S=>S.identifier===t.touchId),!a||a.identifier!==t.touchId)return}else{if(t.touchId!==null||i.pointerId!==t.pointerId)return;a=i}if([\"pointercancel\",\"pointerout\",\"pointerleave\",\"contextmenu\"].includes(i.type)&&!([\"pointercancel\",\"contextmenu\"].includes(i.type)&&(e.browser.isSafari||e.browser.isWebView)))return;t.pointerId=null,t.touchId=null;let{params:l,touches:n,rtlTranslate:d,slidesGrid:o,enabled:u}=e;if(!u||!l.simulateTouch&&i.pointerType===\"mouse\")return;if(t.allowTouchCallbacks&&e.emit(\"touchEnd\",i),t.allowTouchCallbacks=!1,!t.isTouched){t.isMoved&&l.grabCursor&&e.setGrabCursor(!1),t.isMoved=!1,t.startMoving=!1;return}l.grabCursor&&t.isMoved&&t.isTouched&&(e.allowSlideNext===!0||e.allowSlidePrev===!0)&&e.setGrabCursor(!1);let p=K(),g=p-t.touchStartTime;if(e.allowClick){let S=i.path||i.composedPath&&i.composedPath();e.updateClickedSlide(S&&S[0]||i.target,S),e.emit(\"tap click\",i),g<300&&p-t.lastClickTime<300&&e.emit(\"doubleTap doubleClick\",i)}if(t.lastClickTime=K(),J(()=>{e.destroyed||(e.allowClick=!0)}),!t.isTouched||!t.isMoved||!e.swipeDirection||n.diff===0&&!t.loopSwapReset||t.currentTranslate===t.startTranslate&&!t.loopSwapReset){t.isTouched=!1,t.isMoved=!1,t.startMoving=!1;return}t.isTouched=!1,t.isMoved=!1,t.startMoving=!1;let y;if(l.followFinger?y=d?e.translate:-e.translate:y=-t.currentTranslate,l.cssMode)return;if(l.freeMode&&l.freeMode.enabled){e.freeMode.onTouchEnd({currentPos:y});return}let m=y>=-e.maxTranslate()&&!e.params.loop,h=0,x=e.slidesSizesGrid[0];for(let S=0;S<o.length;S+=S<l.slidesPerGroupSkip?1:l.slidesPerGroup){let C=S<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;typeof o[S+C]!=\"undefined\"?(m||y>=o[S]&&y<o[S+C])&&(h=S,x=o[S+C]-o[S]):(m||y>=o[S])&&(h=S,x=o[o.length-1]-o[o.length-2])}let b=null,c=null;l.rewind&&(e.isBeginning?c=l.virtual&&l.virtual.enabled&&e.virtual?e.virtual.slides.length-1:e.slides.length-1:e.isEnd&&(b=0));let f=(y-o[h])\/x,v=h<l.slidesPerGroupSkip-1?1:l.slidesPerGroup;if(g>l.longSwipesMs){if(!l.longSwipes){e.slideTo(e.activeIndex);return}e.swipeDirection===\"next\"&&(f>=l.longSwipesRatio?e.slideTo(l.rewind&&e.isEnd?b:h+v):e.slideTo(h)),e.swipeDirection===\"prev\"&&(f>1-l.longSwipesRatio?e.slideTo(h+v):c!==null&&f<0&&Math.abs(f)>l.longSwipesRatio?e.slideTo(c):e.slideTo(h))}else{if(!l.shortSwipes){e.slideTo(e.activeIndex);return}e.navigation&&(i.target===e.navigation.nextEl||i.target===e.navigation.prevEl)?i.target===e.navigation.nextEl?e.slideTo(h+v):e.slideTo(h):(e.swipeDirection===\"next\"&&e.slideTo(b!==null?b:h+v),e.swipeDirection===\"prev\"&&e.slideTo(c!==null?c:h))}}function Re(){let s=this,{params:e,el:t}=s;if(t&&t.offsetWidth===0)return;e.breakpoints&&s.setBreakpoint();let{allowSlideNext:i,allowSlidePrev:a,snapGrid:r}=s,l=s.virtual&&s.params.virtual.enabled;s.allowSlideNext=!0,s.allowSlidePrev=!0,s.updateSize(),s.updateSlides(),s.updateSlidesClasses();let n=l&&e.loop;(e.slidesPerView===\"auto\"||e.slidesPerView>1)&&s.isEnd&&!s.isBeginning&&!s.params.centeredSlides&&!n?s.slideTo(s.slides.length-1,0,!1,!0):s.params.loop&&!l?s.slideToLoop(s.realIndex,0,!1,!0):s.slideTo(s.activeIndex,0,!1,!0),s.autoplay&&s.autoplay.running&&s.autoplay.paused&&(clearTimeout(s.autoplay.resizeTimeout),s.autoplay.resizeTimeout=setTimeout(()=>{s.autoplay&&s.autoplay.running&&s.autoplay.paused&&s.autoplay.resume()},500)),s.allowSlidePrev=a,s.allowSlideNext=i,s.params.watchOverflow&&r!==s.snapGrid&&s.checkOverflow()}function Qt(s){let e=this;e.enabled&&(e.allowClick||(e.params.preventClicks&&s.preventDefault(),e.params.preventClicksPropagation&&e.animating&&(s.stopPropagation(),s.stopImmediatePropagation())))}function Jt(){let s=this,{wrapperEl:e,rtlTranslate:t,enabled:i}=s;if(!i)return;s.previousTranslate=s.translate,s.isHorizontal()?s.translate=-e.scrollLeft:s.translate=-e.scrollTop,s.translate===0&&(s.translate=0),s.updateActiveIndex(),s.updateSlidesClasses();let a,r=s.maxTranslate()-s.minTranslate();r===0?a=0:a=(s.translate-s.minTranslate())\/r,a!==s.progress&&s.updateProgress(t?-s.translate:s.translate),s.emit(\"setTranslate\",s.translate,!1)}function es(s){let e=this;fe(e,s.target),!(e.params.cssMode||e.params.slidesPerView!==\"auto\"&&!e.params.autoHeight)&&e.update()}function ts(){let s=this;s.documentTouchHandlerProceeded||(s.documentTouchHandlerProceeded=!0,s.params.touchReleaseOnEdges&&(s.el.style.touchAction=\"auto\"))}var qe=(s,e)=>{let t=B(),{params:i,el:a,wrapperEl:r,device:l}=s,n=!!i.nested,d=e===\"on\"?\"addEventListener\":\"removeEventListener\",o=e;!a||typeof a==\"string\"||(t[d](\"touchstart\",s.onDocumentTouchStart,{passive:!1,capture:n}),a[d](\"touchstart\",s.onTouchStart,{passive:!1}),a[d](\"pointerdown\",s.onTouchStart,{passive:!1}),t[d](\"touchmove\",s.onTouchMove,{passive:!1,capture:n}),t[d](\"pointermove\",s.onTouchMove,{passive:!1,capture:n}),t[d](\"touchend\",s.onTouchEnd,{passive:!0}),t[d](\"pointerup\",s.onTouchEnd,{passive:!0}),t[d](\"pointercancel\",s.onTouchEnd,{passive:!0}),t[d](\"touchcancel\",s.onTouchEnd,{passive:!0}),t[d](\"pointerout\",s.onTouchEnd,{passive:!0}),t[d](\"pointerleave\",s.onTouchEnd,{passive:!0}),t[d](\"contextmenu\",s.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&a[d](\"click\",s.onClick,!0),i.cssMode&&r[d](\"scroll\",s.onScroll),i.updateOnWindowResize?s[o](l.ios||l.android?\"resize orientationchange observerUpdate\":\"resize observerUpdate\",Re,!0):s[o](\"observerUpdate\",Re,!0),a[d](\"load\",s.onLoad,{capture:!0}))};function ss(){let s=this,{params:e}=s;s.onTouchStart=Ut.bind(s),s.onTouchMove=Kt.bind(s),s.onTouchEnd=Zt.bind(s),s.onDocumentTouchStart=ts.bind(s),e.cssMode&&(s.onScroll=Jt.bind(s)),s.onClick=Qt.bind(s),s.onLoad=es.bind(s),qe(s,\"on\")}function is(){qe(this,\"off\")}var rs={attachEvents:ss,detachEvents:is},Ye=(s,e)=>s.grid&&e.grid&&e.grid.rows>1;function as(){let s=this,{realIndex:e,initialized:t,params:i,el:a}=s,r=i.breakpoints;if(!r||r&&Object.keys(r).length===0)return;let l=B(),n=i.breakpointsBase===\"window\"||!i.breakpointsBase?i.breakpointsBase:\"container\",d=[\"window\",\"container\"].includes(i.breakpointsBase)||!i.breakpointsBase?s.el:l.querySelector(i.breakpointsBase),o=s.getBreakpoint(r,n,d);if(!o||s.currentBreakpoint===o)return;let p=(o in r?r[o]:void 0)||s.originalParams,g=Ye(s,i),y=Ye(s,p),m=s.params.grabCursor,h=p.grabCursor,x=i.enabled;g&&!y?(a.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),s.emitContainerClasses()):!g&&y&&(a.classList.add(`${i.containerModifierClass}grid`),(p.grid.fill&&p.grid.fill===\"column\"||!p.grid.fill&&i.grid.fill===\"column\")&&a.classList.add(`${i.containerModifierClass}grid-column`),s.emitContainerClasses()),m&&!h?s.unsetGrabCursor():!m&&h&&s.setGrabCursor(),[\"navigation\",\"pagination\",\"scrollbar\"].forEach(C=>{if(typeof p[C]==\"undefined\")return;let I=i[C]&&i[C].enabled,P=p[C]&&p[C].enabled;I&&!P&&s[C].disable(),!I&&P&&s[C].enable()});let b=p.direction&&p.direction!==i.direction,c=i.loop&&(p.slidesPerView!==i.slidesPerView||b),f=i.loop;b&&t&&s.changeDirection(),Y(s.params,p);let v=s.params.enabled,S=s.params.loop;Object.assign(s,{allowTouchMove:s.params.allowTouchMove,allowSlideNext:s.params.allowSlideNext,allowSlidePrev:s.params.allowSlidePrev}),x&&!v?s.disable():!x&&v&&s.enable(),s.currentBreakpoint=o,s.emit(\"_beforeBreakpoint\",p),t&&(c?(s.loopDestroy(),s.loopCreate(e),s.updateSlides()):!f&&S?(s.loopCreate(e),s.updateSlides()):f&&!S&&s.loopDestroy()),s.emit(\"breakpoint\",p)}function ns(s,e,t){if(e===void 0&&(e=\"window\"),!s||e===\"container\"&&!t)return;let i=!1,a=H(),r=e===\"window\"?a.innerHeight:t.clientHeight,l=Object.keys(s).map(n=>{if(typeof n==\"string\"&&n.indexOf(\"@\")===0){let d=parseFloat(n.substr(1));return{value:r*d,point:n}}return{value:n,point:n}});l.sort((n,d)=>parseInt(n.value,10)-parseInt(d.value,10));for(let n=0;n<l.length;n+=1){let{point:d,value:o}=l[n];e===\"window\"?a.matchMedia(`(min-width: ${o}px)`).matches&&(i=d):o<=t.clientWidth&&(i=d)}return i||\"max\"}var ls={setBreakpoint:as,getBreakpoint:ns};function os(s,e){let t=[];return s.forEach(i=>{typeof i==\"object\"?Object.keys(i).forEach(a=>{i[a]&&t.push(e+a)}):typeof i==\"string\"&&t.push(e+i)}),t}function ds(){let s=this,{classNames:e,params:t,rtl:i,el:a,device:r}=s,l=os([\"initialized\",t.direction,{\"free-mode\":s.params.freeMode&&t.freeMode.enabled},{autoheight:t.autoHeight},{rtl:i},{grid:t.grid&&t.grid.rows>1},{\"grid-column\":t.grid&&t.grid.rows>1&&t.grid.fill===\"column\"},{android:r.android},{ios:r.ios},{\"css-mode\":t.cssMode},{centered:t.cssMode&&t.centeredSlides},{\"watch-progress\":t.watchSlidesProgress}],t.containerModifierClass);e.push(...l),a.classList.add(...e),s.emitContainerClasses()}function cs(){let s=this,{el:e,classNames:t}=s;!e||typeof e==\"string\"||(e.classList.remove(...t),s.emitContainerClasses())}var fs={addClasses:ds,removeClasses:cs};function us(){let s=this,{isLocked:e,params:t}=s,{slidesOffsetBefore:i}=t;if(i){let a=s.slides.length-1,r=s.slidesGrid[a]+s.slidesSizesGrid[a]+i*2;s.isLocked=s.size>r}else s.isLocked=s.snapGrid.length===1;t.allowSlideNext===!0&&(s.allowSlideNext=!s.isLocked),t.allowSlidePrev===!0&&(s.allowSlidePrev=!s.isLocked),e&&e!==s.isLocked&&(s.isEnd=!1),e!==s.isLocked&&s.emit(s.isLocked?\"lock\":\"unlock\")}var ps={checkOverflow:us},Ve={init:!0,direction:\"horizontal\",oneWayMovement:!1,swiperElementNodeName:\"SWIPER-CONTAINER\",touchEventsTarget:\"wrapper\",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:\"swiper\",enabled:!0,focusableElements:\"input, select, option, textarea, button, video, label\",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:\"slide\",breakpoints:void 0,breakpointsBase:\"window\",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopAddBlankSlides:!0,loopAdditionalSlides:0,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:\"swiper-no-swiping\",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:\"swiper-\",slideClass:\"swiper-slide\",slideBlankClass:\"swiper-slide-blank\",slideActiveClass:\"swiper-slide-active\",slideVisibleClass:\"swiper-slide-visible\",slideFullyVisibleClass:\"swiper-slide-fully-visible\",slideNextClass:\"swiper-slide-next\",slidePrevClass:\"swiper-slide-prev\",wrapperClass:\"swiper-wrapper\",lazyPreloaderClass:\"swiper-lazy-preloader\",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function ms(s,e){return function(i){i===void 0&&(i={});let a=Object.keys(i)[0],r=i[a];if(typeof r!=\"object\"||r===null){Y(e,i);return}if(s[a]===!0&&(s[a]={enabled:!0}),a===\"navigation\"&&s[a]&&s[a].enabled&&!s[a].prevEl&&!s[a].nextEl&&(s[a].auto=!0),[\"pagination\",\"scrollbar\"].indexOf(a)>=0&&s[a]&&s[a].enabled&&!s[a].el&&(s[a].auto=!0),!(a in s&&\"enabled\"in r)){Y(e,i);return}typeof s[a]==\"object\"&&!(\"enabled\"in s[a])&&(s[a].enabled=!0),s[a]||(s[a]={enabled:!1}),Y(e,i)}}var Se={eventsEmitter:ft,update:xt,translate:Lt,transition:Ot,slide:Rt,loop:Ft,grabCursor:qt,events:rs,breakpoints:ls,checkOverflow:ps,classes:fs},xe={},_=class s{constructor(){let e,t;for(var i=arguments.length,a=new Array(i),r=0;r<i;r++)a[r]=arguments[r];a.length===1&&a[0].constructor&&Object.prototype.toString.call(a[0]).slice(8,-1)===\"Object\"?t=a[0]:[e,t]=a,t||(t={}),t=Y({},t),e&&!t.el&&(t.el=e);let l=B();if(t.el&&typeof t.el==\"string\"&&l.querySelectorAll(t.el).length>1){let u=[];return l.querySelectorAll(t.el).forEach(p=>{let g=Y({},t,{el:p});u.push(new s(g))}),u}let n=this;n.__swiper__=!0,n.support=Ne(),n.device=Fe({userAgent:t.userAgent}),n.browser=We(),n.eventsListeners={},n.eventsAnyListeners=[],n.modules=[...n.__modules__],t.modules&&Array.isArray(t.modules)&&n.modules.push(...t.modules);let d={};n.modules.forEach(u=>{u({params:t,swiper:n,extendParams:ms(t,d),on:n.on.bind(n),once:n.once.bind(n),off:n.off.bind(n),emit:n.emit.bind(n)})});let o=Y({},Ve,d);return n.params=Y({},o,xe,t),n.originalParams=Y({},n.params),n.passedParams=Y({},t),n.params&&n.params.on&&Object.keys(n.params.on).forEach(u=>{n.on(u,n.params.on[u])}),n.params&&n.params.onAny&&n.onAny(n.params.onAny),Object.assign(n,{enabled:n.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal(){return n.params.direction===\"horizontal\"},isVertical(){return n.params.direction===\"vertical\"},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate\/2**23)*2**23},allowSlideNext:n.params.allowSlideNext,allowSlidePrev:n.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:n.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:n.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),n.emit(\"_swiper\"),n.params.init&&n.init(),n}getDirectionLabel(e){return this.isHorizontal()?e:{width:\"height\",\"margin-top\":\"margin-left\",\"margin-bottom \":\"margin-right\",\"margin-left\":\"margin-top\",\"margin-right\":\"margin-bottom\",\"padding-left\":\"padding-top\",\"padding-right\":\"padding-bottom\",marginRight:\"marginBottom\"}[e]}getSlideIndex(e){let{slidesEl:t,params:i}=this,a=R(t,`.${i.slideClass}, swiper-slide`),r=U(a[0]);return U(e)-r}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find(t=>t.getAttribute(\"data-swiper-slide-index\")*1===e))}getSlideIndexWhenGrid(e){return this.grid&&this.params.grid&&this.params.grid.rows>1&&(this.params.grid.fill===\"column\"?e=Math.floor(e\/this.params.grid.rows):this.params.grid.fill===\"row\"&&(e=e%Math.ceil(this.slides.length\/this.params.grid.rows))),e}recalcSlides(){let e=this,{slidesEl:t,params:i}=e;e.slides=R(t,`.${i.slideClass}, swiper-slide`)}enable(){let e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit(\"enable\"))}disable(){let e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit(\"disable\"))}setProgress(e,t){let i=this;e=Math.min(Math.max(e,0),1);let a=i.minTranslate(),l=(i.maxTranslate()-a)*e+a;i.translateTo(l,typeof t==\"undefined\"?0:t),i.updateActiveIndex(),i.updateSlidesClasses()}emitContainerClasses(){let e=this;if(!e.params._emitClasses||!e.el)return;let t=e.el.className.split(\" \").filter(i=>i.indexOf(\"swiper\")===0||i.indexOf(e.params.containerModifierClass)===0);e.emit(\"_containerClasses\",t.join(\" \"))}getSlideClasses(e){let t=this;return t.destroyed?\"\":e.className.split(\" \").filter(i=>i.indexOf(\"swiper-slide\")===0||i.indexOf(t.params.slideClass)===0).join(\" \")}emitSlidesClasses(){let e=this;if(!e.params._emitClasses||!e.el)return;let t=[];e.slides.forEach(i=>{let a=e.getSlideClasses(i);t.push({slideEl:i,classNames:a}),e.emit(\"_slideClass\",i,a)}),e.emit(\"_slideClasses\",t)}slidesPerViewDynamic(e,t){e===void 0&&(e=\"current\"),t===void 0&&(t=!1);let i=this,{params:a,slides:r,slidesGrid:l,slidesSizesGrid:n,size:d,activeIndex:o}=i,u=1;if(typeof a.slidesPerView==\"number\")return a.slidesPerView;if(a.centeredSlides){let p=r[o]?Math.ceil(r[o].swiperSlideSize):0,g;for(let y=o+1;y<r.length;y+=1)r[y]&&!g&&(p+=Math.ceil(r[y].swiperSlideSize),u+=1,p>d&&(g=!0));for(let y=o-1;y>=0;y-=1)r[y]&&!g&&(p+=r[y].swiperSlideSize,u+=1,p>d&&(g=!0))}else if(e===\"current\")for(let p=o+1;p<r.length;p+=1)(t?l[p]+n[p]-l[o]<d:l[p]-l[o]<d)&&(u+=1);else for(let p=o-1;p>=0;p-=1)l[o]-l[p]<d&&(u+=1);return u}update(){let e=this;if(!e||e.destroyed)return;let{snapGrid:t,params:i}=e;i.breakpoints&&e.setBreakpoint(),[...e.el.querySelectorAll('[loading=\"lazy\"]')].forEach(l=>{l.complete&&fe(e,l)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses();function a(){let l=e.rtlTranslate?e.translate*-1:e.translate,n=Math.min(Math.max(l,e.maxTranslate()),e.minTranslate());e.setTranslate(n),e.updateActiveIndex(),e.updateSlidesClasses()}let r;if(i.freeMode&&i.freeMode.enabled&&!i.cssMode)a(),i.autoHeight&&e.updateAutoHeight();else{if((i.slidesPerView===\"auto\"||i.slidesPerView>1)&&e.isEnd&&!i.centeredSlides){let l=e.virtual&&i.virtual.enabled?e.virtual.slides:e.slides;r=e.slideTo(l.length-1,0,!1,!0)}else r=e.slideTo(e.activeIndex,0,!1,!0);r||a()}i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit(\"update\")}changeDirection(e,t){t===void 0&&(t=!0);let i=this,a=i.params.direction;return e||(e=a===\"horizontal\"?\"vertical\":\"horizontal\"),e===a||e!==\"horizontal\"&&e!==\"vertical\"||(i.el.classList.remove(`${i.params.containerModifierClass}${a}`),i.el.classList.add(`${i.params.containerModifierClass}${e}`),i.emitContainerClasses(),i.params.direction=e,i.slides.forEach(r=>{e===\"vertical\"?r.style.width=\"\":r.style.height=\"\"}),i.emit(\"changeDirection\"),t&&i.update()),i}changeLanguageDirection(e){let t=this;t.rtl&&e===\"rtl\"||!t.rtl&&e===\"ltr\"||(t.rtl=e===\"rtl\",t.rtlTranslate=t.params.direction===\"horizontal\"&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir=\"rtl\"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir=\"ltr\"),t.update())}mount(e){let t=this;if(t.mounted)return!0;let i=e||t.params.el;if(typeof i==\"string\"&&(i=document.querySelector(i)),!i)return!1;i.swiper=t,i.parentNode&&i.parentNode.host&&i.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);let a=()=>`.${(t.params.wrapperClass||\"\").trim().split(\" \").join(\".\")}`,l=i&&i.shadowRoot&&i.shadowRoot.querySelector?i.shadowRoot.querySelector(a()):R(i,a())[0];return!l&&t.params.createElements&&(l=V(\"div\",t.params.wrapperClass),i.append(l),R(i,`.${t.params.slideClass}`).forEach(n=>{l.append(n)})),Object.assign(t,{el:i,wrapperEl:l,slidesEl:t.isElement&&!i.parentNode.host.slideSlots?i.parentNode.host:l,hostEl:t.isElement?i.parentNode.host:i,mounted:!0,rtl:i.dir.toLowerCase()===\"rtl\"||W(i,\"direction\")===\"rtl\",rtlTranslate:t.params.direction===\"horizontal\"&&(i.dir.toLowerCase()===\"rtl\"||W(i,\"direction\")===\"rtl\"),wrongRTL:W(l,\"display\")===\"-webkit-box\"}),!0}init(e){let t=this;if(t.initialized||t.mount(e)===!1)return t;t.emit(\"beforeInit\"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(void 0,!0),t.attachEvents();let a=[...t.el.querySelectorAll('[loading=\"lazy\"]')];return t.isElement&&a.push(...t.hostEl.querySelectorAll('[loading=\"lazy\"]')),a.forEach(r=>{r.complete?fe(t,r):r.addEventListener(\"load\",l=>{fe(t,l.target)})}),Ee(t),t.initialized=!0,Ee(t),t.emit(\"init\"),t.emit(\"afterInit\"),t}destroy(e,t){e===void 0&&(e=!0),t===void 0&&(t=!0);let i=this,{params:a,el:r,wrapperEl:l,slides:n}=i;return typeof i.params==\"undefined\"||i.destroyed||(i.emit(\"beforeDestroy\"),i.initialized=!1,i.detachEvents(),a.loop&&i.loopDestroy(),t&&(i.removeClasses(),r&&typeof r!=\"string\"&&r.removeAttribute(\"style\"),l&&l.removeAttribute(\"style\"),n&&n.length&&n.forEach(d=>{d.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),d.removeAttribute(\"style\"),d.removeAttribute(\"data-swiper-slide-index\")})),i.emit(\"destroy\"),Object.keys(i.eventsListeners).forEach(d=>{i.off(d)}),e!==!1&&(i.el&&typeof i.el!=\"string\"&&(i.el.swiper=null),$e(i)),i.destroyed=!0),null}static extendDefaults(e){Y(xe,e)}static get extendedDefaults(){return xe}static get defaults(){return Ve}static installModule(e){s.prototype.__modules__||(s.prototype.__modules__=[]);let t=s.prototype.__modules__;typeof e==\"function\"&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach(t=>s.installModule(t)),s):(s.installModule(e),s)}};Object.keys(Se).forEach(s=>{Object.keys(Se[s]).forEach(e=>{_.prototype[e]=Se[s][e]})});_.use([dt,ct]);function ne(s,e,t,i){return s.params.createElements&&Object.keys(i).forEach(a=>{if(!t[a]&&t.auto===!0){let r=R(s.el,`.${i[a]}`)[0];r||(r=V(\"div\",i[a]),r.className=i[a],s.el.append(r)),t[a]=r,e[a]=r}}),t}function Te(s){let{swiper:e,extendParams:t,on:i,emit:a}=s;t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:\"swiper-button-disabled\",hiddenClass:\"swiper-button-hidden\",lockClass:\"swiper-button-lock\",navigationDisabledClass:\"swiper-navigation-disabled\"}}),e.navigation={nextEl:null,prevEl:null};function r(m){let h;return m&&typeof m==\"string\"&&e.isElement&&(h=e.el.querySelector(m)||e.hostEl.querySelector(m),h)?h:(m&&(typeof m==\"string\"&&(h=[...document.querySelectorAll(m)]),e.params.uniqueNavElements&&typeof m==\"string\"&&h&&h.length>1&&e.el.querySelectorAll(m).length===1?h=e.el.querySelector(m):h&&h.length===1&&(h=h[0])),m&&!h?m:h)}function l(m,h){let x=e.params.navigation;m=D(m),m.forEach(b=>{b&&(b.classList[h?\"add\":\"remove\"](...x.disabledClass.split(\" \")),b.tagName===\"BUTTON\"&&(b.disabled=h),e.params.watchOverflow&&e.enabled&&b.classList[e.isLocked?\"add\":\"remove\"](x.lockClass))})}function n(){let{nextEl:m,prevEl:h}=e.navigation;if(e.params.loop){l(h,!1),l(m,!1);return}l(h,e.isBeginning&&!e.params.rewind),l(m,e.isEnd&&!e.params.rewind)}function d(m){m.preventDefault(),!(e.isBeginning&&!e.params.loop&&!e.params.rewind)&&(e.slidePrev(),a(\"navigationPrev\"))}function o(m){m.preventDefault(),!(e.isEnd&&!e.params.loop&&!e.params.rewind)&&(e.slideNext(),a(\"navigationNext\"))}function u(){let m=e.params.navigation;if(e.params.navigation=ne(e,e.originalParams.navigation,e.params.navigation,{nextEl:\"swiper-button-next\",prevEl:\"swiper-button-prev\"}),!(m.nextEl||m.prevEl))return;let h=r(m.nextEl),x=r(m.prevEl);Object.assign(e.navigation,{nextEl:h,prevEl:x}),h=D(h),x=D(x);let b=(c,f)=>{c&&c.addEventListener(\"click\",f===\"next\"?o:d),!e.enabled&&c&&c.classList.add(...m.lockClass.split(\" \"))};h.forEach(c=>b(c,\"next\")),x.forEach(c=>b(c,\"prev\"))}function p(){let{nextEl:m,prevEl:h}=e.navigation;m=D(m),h=D(h);let x=(b,c)=>{b.removeEventListener(\"click\",c===\"next\"?o:d),b.classList.remove(...e.params.navigation.disabledClass.split(\" \"))};m.forEach(b=>x(b,\"next\")),h.forEach(b=>x(b,\"prev\"))}i(\"init\",()=>{e.params.navigation.enabled===!1?y():(u(),n())}),i(\"toEdge fromEdge lock unlock\",()=>{n()}),i(\"destroy\",()=>{p()}),i(\"enable disable\",()=>{let{nextEl:m,prevEl:h}=e.navigation;if(m=D(m),h=D(h),e.enabled){n();return}[...m,...h].filter(x=>!!x).forEach(x=>x.classList.add(e.params.navigation.lockClass))}),i(\"click\",(m,h)=>{let{nextEl:x,prevEl:b}=e.navigation;x=D(x),b=D(b);let c=h.target,f=b.includes(c)||x.includes(c);if(e.isElement&&!f){let v=h.path||h.composedPath&&h.composedPath();v&&(f=v.find(S=>x.includes(S)||b.includes(S)))}if(e.params.navigation.hideOnClick&&!f){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===c||e.pagination.el.contains(c)))return;let v;x.length?v=x[0].classList.contains(e.params.navigation.hiddenClass):b.length&&(v=b[0].classList.contains(e.params.navigation.hiddenClass)),a(v===!0?\"navigationShow\":\"navigationHide\"),[...x,...b].filter(S=>!!S).forEach(S=>S.classList.toggle(e.params.navigation.hiddenClass))}});let g=()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(\" \")),u(),n()},y=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(\" \")),p()};Object.assign(e.navigation,{enable:g,disable:y,update:n,init:u,destroy:p})}function N(s){return s===void 0&&(s=\"\"),`.${s.trim().replace(\/([\\.:!+\\\/()[\\]])\/g,\"\\\\$1\").replace(\/ \/g,\".\")}`}function Me(s){let{swiper:e,extendParams:t,on:i,emit:a}=s,r=\"swiper-pagination\";t({pagination:{el:null,bulletElement:\"span\",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:\"bullets\",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:c=>c,formatFractionTotal:c=>c,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),e.pagination={el:null,bullets:[]};let l,n=0;function d(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&e.pagination.el.length===0}function o(c,f){let{bulletActiveClass:v}=e.params.pagination;c&&(c=c[`${f===\"prev\"?\"previous\":\"next\"}ElementSibling`],c&&(c.classList.add(`${v}-${f}`),c=c[`${f===\"prev\"?\"previous\":\"next\"}ElementSibling`],c&&c.classList.add(`${v}-${f}-${f}`)))}function u(c,f,v){if(c=c%v,f=f%v,f===c+1)return\"next\";if(f===c-1)return\"previous\"}function p(c){let f=c.target.closest(N(e.params.pagination.bulletClass));if(!f)return;c.preventDefault();let v=U(f)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===v)return;let S=u(e.realIndex,v,e.slides.length);S===\"next\"?e.slideNext():S===\"previous\"?e.slidePrev():e.slideToLoop(v)}else e.slideTo(v)}function g(){let c=e.rtl,f=e.params.pagination;if(d())return;let v=e.pagination.el;v=D(v);let S,C,I=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,P=e.params.loop?Math.ceil(I\/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(C=e.previousRealIndex||0,S=e.params.slidesPerGroup>1?Math.floor(e.realIndex\/e.params.slidesPerGroup):e.realIndex):typeof e.snapIndex!=\"undefined\"?(S=e.snapIndex,C=e.previousSnapIndex):(C=e.previousIndex||0,S=e.activeIndex||0),f.type===\"bullets\"&&e.pagination.bullets&&e.pagination.bullets.length>0){let L=e.pagination.bullets,T,M,A;if(f.dynamicBullets&&(l=ae(L[0],e.isHorizontal()?\"width\":\"height\",!0),v.forEach(O=>{O.style[e.isHorizontal()?\"width\":\"height\"]=`${l*(f.dynamicMainBullets+4)}px`}),f.dynamicMainBullets>1&&C!==void 0&&(n+=S-(C||0),n>f.dynamicMainBullets-1?n=f.dynamicMainBullets-1:n<0&&(n=0)),T=Math.max(S-n,0),M=T+(Math.min(L.length,f.dynamicMainBullets)-1),A=(M+T)\/2),L.forEach(O=>{let k=[...[\"\",\"-next\",\"-next-next\",\"-prev\",\"-prev-prev\",\"-main\"].map(G=>`${f.bulletActiveClass}${G}`)].map(G=>typeof G==\"string\"&&G.includes(\" \")?G.split(\" \"):G).flat();O.classList.remove(...k)}),v.length>1)L.forEach(O=>{let k=U(O);k===S?O.classList.add(...f.bulletActiveClass.split(\" \")):e.isElement&&O.setAttribute(\"part\",\"bullet\"),f.dynamicBullets&&(k>=T&&k<=M&&O.classList.add(...`${f.bulletActiveClass}-main`.split(\" \")),k===T&&o(O,\"prev\"),k===M&&o(O,\"next\"))});else{let O=L[S];if(O&&O.classList.add(...f.bulletActiveClass.split(\" \")),e.isElement&&L.forEach((k,G)=>{k.setAttribute(\"part\",G===S?\"bullet-active\":\"bullet\")}),f.dynamicBullets){let k=L[T],G=L[M];for(let z=T;z<=M;z+=1)L[z]&&L[z].classList.add(...`${f.bulletActiveClass}-main`.split(\" \"));o(k,\"prev\"),o(G,\"next\")}}if(f.dynamicBullets){let O=Math.min(L.length,f.dynamicMainBullets+4),k=(l*O-l)\/2-A*l,G=c?\"right\":\"left\";L.forEach(z=>{z.style[e.isHorizontal()?G:\"top\"]=`${k}px`})}}v.forEach((L,T)=>{if(f.type===\"fraction\"&&(L.querySelectorAll(N(f.currentClass)).forEach(M=>{M.textContent=f.formatFractionCurrent(S+1)}),L.querySelectorAll(N(f.totalClass)).forEach(M=>{M.textContent=f.formatFractionTotal(P)})),f.type===\"progressbar\"){let M;f.progressbarOpposite?M=e.isHorizontal()?\"vertical\":\"horizontal\":M=e.isHorizontal()?\"horizontal\":\"vertical\";let A=(S+1)\/P,O=1,k=1;M===\"horizontal\"?O=A:k=A,L.querySelectorAll(N(f.progressbarFillClass)).forEach(G=>{G.style.transform=`translate3d(0,0,0) scaleX(${O}) scaleY(${k})`,G.style.transitionDuration=`${e.params.speed}ms`})}f.type===\"custom\"&&f.renderCustom?(Z(L,f.renderCustom(e,S+1,P)),T===0&&a(\"paginationRender\",L)):(T===0&&a(\"paginationRender\",L),a(\"paginationUpdate\",L)),e.params.watchOverflow&&e.enabled&&L.classList[e.isLocked?\"add\":\"remove\"](f.lockClass)})}function y(){let c=e.params.pagination;if(d())return;let f=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.grid&&e.params.grid.rows>1?e.slides.length\/Math.ceil(e.params.grid.rows):e.slides.length,v=e.pagination.el;v=D(v);let S=\"\";if(c.type===\"bullets\"){let C=e.params.loop?Math.ceil(f\/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&C>f&&(C=f);for(let I=0;I<C;I+=1)c.renderBullet?S+=c.renderBullet.call(e,I,c.bulletClass):S+=`<${c.bulletElement} ${e.isElement?'part=\"bullet\"':\"\"} class=\"${c.bulletClass}\"><\/${c.bulletElement}>`}c.type===\"fraction\"&&(c.renderFraction?S=c.renderFraction.call(e,c.currentClass,c.totalClass):S=`<span class=\"${c.currentClass}\"><\/span> \/ <span class=\"${c.totalClass}\"><\/span>`),c.type===\"progressbar\"&&(c.renderProgressbar?S=c.renderProgressbar.call(e,c.progressbarFillClass):S=`<span class=\"${c.progressbarFillClass}\"><\/span>`),e.pagination.bullets=[],v.forEach(C=>{c.type!==\"custom\"&&Z(C,S||\"\"),c.type===\"bullets\"&&e.pagination.bullets.push(...C.querySelectorAll(N(c.bulletClass)))}),c.type!==\"custom\"&&a(\"paginationRender\",v[0])}function m(){e.params.pagination=ne(e,e.originalParams.pagination,e.params.pagination,{el:\"swiper-pagination\"});let c=e.params.pagination;if(!c.el)return;let f;typeof c.el==\"string\"&&e.isElement&&(f=e.el.querySelector(c.el)),!f&&typeof c.el==\"string\"&&(f=[...document.querySelectorAll(c.el)]),f||(f=c.el),!(!f||f.length===0)&&(e.params.uniqueNavElements&&typeof c.el==\"string\"&&Array.isArray(f)&&f.length>1&&(f=[...e.el.querySelectorAll(c.el)],f.length>1&&(f=f.find(v=>te(v,\".swiper\")[0]===e.el))),Array.isArray(f)&&f.length===1&&(f=f[0]),Object.assign(e.pagination,{el:f}),f=D(f),f.forEach(v=>{c.type===\"bullets\"&&c.clickable&&v.classList.add(...(c.clickableClass||\"\").split(\" \")),v.classList.add(c.modifierClass+c.type),v.classList.add(e.isHorizontal()?c.horizontalClass:c.verticalClass),c.type===\"bullets\"&&c.dynamicBullets&&(v.classList.add(`${c.modifierClass}${c.type}-dynamic`),n=0,c.dynamicMainBullets<1&&(c.dynamicMainBullets=1)),c.type===\"progressbar\"&&c.progressbarOpposite&&v.classList.add(c.progressbarOppositeClass),c.clickable&&v.addEventListener(\"click\",p),e.enabled||v.classList.add(c.lockClass)}))}function h(){let c=e.params.pagination;if(d())return;let f=e.pagination.el;f&&(f=D(f),f.forEach(v=>{v.classList.remove(c.hiddenClass),v.classList.remove(c.modifierClass+c.type),v.classList.remove(e.isHorizontal()?c.horizontalClass:c.verticalClass),c.clickable&&(v.classList.remove(...(c.clickableClass||\"\").split(\" \")),v.removeEventListener(\"click\",p))})),e.pagination.bullets&&e.pagination.bullets.forEach(v=>v.classList.remove(...c.bulletActiveClass.split(\" \")))}i(\"changeDirection\",()=>{if(!e.pagination||!e.pagination.el)return;let c=e.params.pagination,{el:f}=e.pagination;f=D(f),f.forEach(v=>{v.classList.remove(c.horizontalClass,c.verticalClass),v.classList.add(e.isHorizontal()?c.horizontalClass:c.verticalClass)})}),i(\"init\",()=>{e.params.pagination.enabled===!1?b():(m(),y(),g())}),i(\"activeIndexChange\",()=>{typeof e.snapIndex==\"undefined\"&&g()}),i(\"snapIndexChange\",()=>{g()}),i(\"snapGridLengthChange\",()=>{y(),g()}),i(\"destroy\",()=>{h()}),i(\"enable disable\",()=>{let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList[e.enabled?\"remove\":\"add\"](e.params.pagination.lockClass)))}),i(\"lock unlock\",()=>{g()}),i(\"click\",(c,f)=>{let v=f.target,S=D(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&S&&S.length>0&&!v.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&v===e.navigation.nextEl||e.navigation.prevEl&&v===e.navigation.prevEl))return;let C=S[0].classList.contains(e.params.pagination.hiddenClass);a(C===!0?\"paginationShow\":\"paginationHide\"),S.forEach(I=>I.classList.toggle(e.params.pagination.hiddenClass))}});let x=()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList.remove(e.params.pagination.paginationDisabledClass))),m(),y(),g()},b=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:c}=e.pagination;c&&(c=D(c),c.forEach(f=>f.classList.add(e.params.pagination.paginationDisabledClass))),h()};Object.assign(e.pagination,{enable:x,disable:b,render:y,update:g,init:m,destroy:h})}function Ce(s){let{swiper:e,extendParams:t,on:i}=s;t({a11y:{enabled:!0,notificationClass:\"swiper-notification\",prevSlideMessage:\"Previous slide\",nextSlideMessage:\"Next slide\",firstSlideMessage:\"This is the first slide\",lastSlideMessage:\"This is the last slide\",paginationBulletMessage:\"Go to slide {{index}}\",slideLabelMessage:\"{{index}} \/ {{slidesLength}}\",containerMessage:null,containerRoleDescriptionMessage:null,containerRole:null,itemRoleDescriptionMessage:null,slideRole:\"group\",id:null,scrollOnFocus:!0}}),e.a11y={clicked:!1};let a=null,r,l,n=new Date().getTime();function d(w){let E=a;E.length!==0&&Z(E,w)}function o(w){w===void 0&&(w=16);let E=()=>Math.round(16*Math.random()).toString(16);return\"x\".repeat(w).replace(\/x\/g,E)}function u(w){w=D(w),w.forEach(E=>{E.setAttribute(\"tabIndex\",\"0\")})}function p(w){w=D(w),w.forEach(E=>{E.setAttribute(\"tabIndex\",\"-1\")})}function g(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"role\",E)})}function y(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-roledescription\",E)})}function m(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-controls\",E)})}function h(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-label\",E)})}function x(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"id\",E)})}function b(w,E){w=D(w),w.forEach($=>{$.setAttribute(\"aria-live\",E)})}function c(w){w=D(w),w.forEach(E=>{E.setAttribute(\"aria-disabled\",!0)})}function f(w){w=D(w),w.forEach(E=>{E.setAttribute(\"aria-disabled\",!1)})}function v(w){if(w.keyCode!==13&&w.keyCode!==32)return;let E=e.params.a11y,$=w.target;if(!(e.pagination&&e.pagination.el&&($===e.pagination.el||e.pagination.el.contains(w.target))&&!w.target.matches(N(e.params.pagination.bulletClass)))){if(e.navigation&&e.navigation.prevEl&&e.navigation.nextEl){let X=D(e.navigation.prevEl);D(e.navigation.nextEl).includes($)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?d(E.lastSlideMessage):d(E.nextSlideMessage)),X.includes($)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?d(E.firstSlideMessage):d(E.prevSlideMessage))}e.pagination&&$.matches(N(e.params.pagination.bulletClass))&&$.click()}}function S(){if(e.params.loop||e.params.rewind||!e.navigation)return;let{nextEl:w,prevEl:E}=e.navigation;E&&(e.isBeginning?(c(E),p(E)):(f(E),u(E))),w&&(e.isEnd?(c(w),p(w)):(f(w),u(w)))}function C(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function I(){return C()&&e.params.pagination.clickable}function P(){let w=e.params.a11y;C()&&e.pagination.bullets.forEach(E=>{e.params.pagination.clickable&&(u(E),e.params.pagination.renderBullet||(g(E,\"button\"),h(E,w.paginationBulletMessage.replace(\/\\{\\{index\\}\\}\/,U(E)+1)))),E.matches(N(e.params.pagination.bulletActiveClass))?E.setAttribute(\"aria-current\",\"true\"):E.removeAttribute(\"aria-current\")})}let L=(w,E,$)=>{u(w),w.tagName!==\"BUTTON\"&&(g(w,\"button\"),w.addEventListener(\"keydown\",v)),h(w,$),m(w,E)},T=w=>{l&&l!==w.target&&!l.contains(w.target)&&(r=!0),e.a11y.clicked=!0},M=()=>{r=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},A=w=>{n=new Date().getTime()},O=w=>{if(e.a11y.clicked||!e.params.a11y.scrollOnFocus||new Date().getTime()-n<100)return;let E=w.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!E||!e.slides.includes(E))return;l=E;let $=e.slides.indexOf(E)===e.activeIndex,X=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(E);$||X||w.sourceCapabilities&&w.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,requestAnimationFrame(()=>{r||(e.params.loop?e.slideToLoop(e.getSlideIndexWhenGrid(parseInt(E.getAttribute(\"data-swiper-slide-index\"))),0):e.slideTo(e.getSlideIndexWhenGrid(e.slides.indexOf(E)),0),r=!1)}))},k=()=>{let w=e.params.a11y;w.itemRoleDescriptionMessage&&y(e.slides,w.itemRoleDescriptionMessage),w.slideRole&&g(e.slides,w.slideRole);let E=e.slides.length;w.slideLabelMessage&&e.slides.forEach(($,X)=>{let q=e.params.loop?parseInt($.getAttribute(\"data-swiper-slide-index\"),10):X,j=w.slideLabelMessage.replace(\/\\{\\{index\\}\\}\/,q+1).replace(\/\\{\\{slidesLength\\}\\}\/,E);h($,j)})},G=()=>{let w=e.params.a11y;e.el.append(a);let E=e.el;w.containerRoleDescriptionMessage&&y(E,w.containerRoleDescriptionMessage),w.containerMessage&&h(E,w.containerMessage),w.containerRole&&g(E,w.containerRole);let $=e.wrapperEl,X=w.id||$.getAttribute(\"id\")||`swiper-wrapper-${o(16)}`,q=e.params.autoplay&&e.params.autoplay.enabled?\"off\":\"polite\";x($,X),b($,q),k();let{nextEl:j,prevEl:oe}=e.navigation?e.navigation:{};j=D(j),oe=D(oe),j&&j.forEach(de=>L(de,X,w.nextSlideMessage)),oe&&oe.forEach(de=>L(de,X,w.prevSlideMessage)),I()&&D(e.pagination.el).forEach(Ue=>{Ue.addEventListener(\"keydown\",v)}),B().addEventListener(\"visibilitychange\",A),e.el.addEventListener(\"focus\",O,!0),e.el.addEventListener(\"focus\",O,!0),e.el.addEventListener(\"pointerdown\",T,!0),e.el.addEventListener(\"pointerup\",M,!0)};function z(){a&&a.remove();let{nextEl:w,prevEl:E}=e.navigation?e.navigation:{};w=D(w),E=D(E),w&&w.forEach(X=>X.removeEventListener(\"keydown\",v)),E&&E.forEach(X=>X.removeEventListener(\"keydown\",v)),I()&&D(e.pagination.el).forEach(q=>{q.removeEventListener(\"keydown\",v)}),B().removeEventListener(\"visibilitychange\",A),e.el&&typeof e.el!=\"string\"&&(e.el.removeEventListener(\"focus\",O,!0),e.el.removeEventListener(\"pointerdown\",T,!0),e.el.removeEventListener(\"pointerup\",M,!0))}i(\"beforeInit\",()=>{a=V(\"span\",e.params.a11y.notificationClass),a.setAttribute(\"aria-live\",\"assertive\"),a.setAttribute(\"aria-atomic\",\"true\")}),i(\"afterInit\",()=>{e.params.a11y.enabled&&G()}),i(\"slidesLengthChange snapGridLengthChange slidesGridLengthChange\",()=>{e.params.a11y.enabled&&k()}),i(\"fromEdge toEdge afterInit lock unlock\",()=>{e.params.a11y.enabled&&S()}),i(\"paginationUpdate\",()=>{e.params.a11y.enabled&&P()}),i(\"destroy\",()=>{e.params.a11y.enabled&&z()})}function Pe(s){let{swiper:e,extendParams:t,on:i}=s;t({grid:{rows:1,fill:\"column\"}});let a,r,l,n,d=()=>{let h=e.params.spaceBetween;return typeof h==\"string\"&&h.indexOf(\"%\")>=0?h=parseFloat(h.replace(\"%\",\"\"))\/100*e.size:typeof h==\"string\"&&(h=parseFloat(h)),h},o=h=>{let{slidesPerView:x}=e.params,{rows:b,fill:c}=e.params.grid,f=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:h.length;l=Math.floor(f\/b),Math.floor(f\/b)===f\/b?a=f:a=Math.ceil(f\/b)*b,x!==\"auto\"&&c===\"row\"&&(a=Math.max(a,x*b)),r=a\/b},u=()=>{e.slides&&e.slides.forEach(h=>{h.swiperSlideGridSet&&(h.style.height=\"\",h.style[e.getDirectionLabel(\"margin-top\")]=\"\")})},p=(h,x,b)=>{let{slidesPerGroup:c}=e.params,f=d(),{rows:v,fill:S}=e.params.grid,C=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:b.length,I,P,L;if(S===\"row\"&&c>1){let T=Math.floor(h\/(c*v)),M=h-v*c*T,A=T===0?c:Math.min(Math.ceil((C-T*v*c)\/v),c);L=Math.floor(M\/A),P=M-L*A+T*c,I=P+L*a\/v,x.style.order=I}else S===\"column\"?(P=Math.floor(h\/v),L=h-P*v,(P>l||P===l&&L===v-1)&&(L+=1,L>=v&&(L=0,P+=1))):(L=Math.floor(h\/r),P=h-L*r);x.row=L,x.column=P,x.style.height=`calc((100% - ${(v-1)*f}px) \/ ${v})`,x.style[e.getDirectionLabel(\"margin-top\")]=L!==0?f&&`${f}px`:\"\",x.swiperSlideGridSet=!0},g=(h,x)=>{let{centeredSlides:b,roundLengths:c}=e.params,f=d(),{rows:v}=e.params.grid;if(e.virtualSize=(h+f)*a,e.virtualSize=Math.ceil(e.virtualSize\/v)-f,e.params.cssMode||(e.wrapperEl.style[e.getDirectionLabel(\"width\")]=`${e.virtualSize+f}px`),b){let S=[];for(let C=0;C<x.length;C+=1){let I=x[C];c&&(I=Math.floor(I)),x[C]<e.virtualSize+x[0]&&S.push(I)}x.splice(0,x.length),x.push(...S)}},y=()=>{n=e.params.grid&&e.params.grid.rows>1},m=()=>{let{params:h,el:x}=e,b=h.grid&&h.grid.rows>1;n&&!b?(x.classList.remove(`${h.containerModifierClass}grid`,`${h.containerModifierClass}grid-column`),l=1,e.emitContainerClasses()):!n&&b&&(x.classList.add(`${h.containerModifierClass}grid`),h.grid.fill===\"column\"&&x.classList.add(`${h.containerModifierClass}grid-column`),e.emitContainerClasses()),n=b};i(\"init\",y),i(\"update\",m),e.grid={initSlides:o,unsetSlides:u,updateSlide:p,updateWrapperSize:g}}function Q(s){let{effect:e,swiper:t,on:i,setTranslate:a,setTransition:r,overwriteParams:l,perspective:n,recreateShadows:d,getEffectParams:o}=s;i(\"beforeInit\",()=>{if(t.params.effect!==e)return;t.classNames.push(`${t.params.containerModifierClass}${e}`),n&&n()&&t.classNames.push(`${t.params.containerModifierClass}3d`);let p=l?l():{};Object.assign(t.params,p),Object.assign(t.originalParams,p)}),i(\"setTranslate _virtualUpdated\",()=>{t.params.effect===e&&a()}),i(\"setTransition\",(p,g)=>{t.params.effect===e&&r(g)}),i(\"transitionEnd\",()=>{if(t.params.effect===e&&d){if(!o||!o().slideShadows)return;t.slides.forEach(p=>{p.querySelectorAll(\".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left\").forEach(g=>g.remove())}),d()}});let u;i(\"virtualUpdate\",()=>{t.params.effect===e&&(t.slides.length||(u=!0),requestAnimationFrame(()=>{u&&t.slides&&t.slides.length&&(a(),u=!1)}))})}function se(s,e){let t=F(e);return t!==e&&(t.style.backfaceVisibility=\"hidden\",t.style[\"-webkit-backface-visibility\"]=\"hidden\"),t}function le(s){let{swiper:e,duration:t,transformElements:i,allSlides:a}=s,{activeIndex:r}=e,l=n=>n.parentElement?n.parentElement:e.slides.find(o=>o.shadowRoot&&o.shadowRoot===n.parentNode);if(e.params.virtualTranslate&&t!==0){let n=!1,d;a?d=i:d=i.filter(o=>{let u=o.classList.contains(\"swiper-slide-transform\")?l(o):o;return e.getSlideIndex(u)===r}),d.forEach(o=>{ce(o,()=>{if(n||!e||e.destroyed)return;n=!0,e.animating=!1;let u=new window.CustomEvent(\"transitionend\",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(u)})})}}function Le(s){let{swiper:e,extendParams:t,on:i}=s;t({fadeEffect:{crossFade:!1}}),Q({effect:\"fade\",swiper:e,on:i,setTranslate:()=>{let{slides:l}=e,n=e.params.fadeEffect;for(let d=0;d<l.length;d+=1){let o=e.slides[d],p=-o.swiperSlideOffset;e.params.virtualTranslate||(p-=e.translate);let g=0;e.isHorizontal()||(g=p,p=0);let y=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(o.progress),0):1+Math.min(Math.max(o.progress,-1),0),m=se(n,o);m.style.opacity=y,m.style.transform=`translate3d(${p}px, ${g}px, 0px)`}},setTransition:l=>{let n=e.slides.map(d=>F(d));n.forEach(d=>{d.style.transitionDuration=`${l}ms`}),le({swiper:e,duration:l,transformElements:n,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}_.use([Te,Me,Ce,Le,Pe]);var hs=_;return tt(gs);})();\nvar Swiper=typeof SwiperModule!=\"undefined\"&&(SwiperModule.default||SwiperModule);",
    "style": "@font-face{font-family:'Manrope';src:url('\/assets\/src\/fonts\/Manrope\/Manrope-VariableFont_wght.woff2') format('woff2 supports variations'),url('\/assets\/src\/fonts\/Manrope\/Manrope-VariableFont_wght.woff2') format('woff2-variations'),url('\/assets\/src\/fonts\/Manrope\/Manrope-VariableFont_wght.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:'TT Norms Pro';src:url('\/assets\/src\/fonts\/TTNorms\/TT_Norms_Pro_Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}:root{--font-body:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;--font-heading:'TT Norms Pro',var(--font-body);--font-weight-heading:500;--text-base:16px;--text-body-xs:calc(var(--text-base) * 0.75);--text-body-md:calc(var(--text-base) * 1.125);--text-quote:calc(var(--text-base) * 1.1875);--text-body-lg:calc(var(--text-base) * 1.25);--text-body-sm:calc(var(--text-base) * 0.875);--text-lead:calc(var(--text-base) * 1.375);--text-lead-xl:calc(var(--text-base) * 1.625);--text-title-sm:calc(var(--text-base) * 1.375);--text-mega:calc(var(--text-base) * 2.875);--text-mega-lg:calc(var(--text-base) * 5);--text-mega-md:calc(var(--text-base) * 2);--text-mega-sm:calc(var(--text-lead-xl) + var(--text-base) * 0.125);--text-display:calc(var(--text-mega-lg) * 0.715);--text-display-sm:calc(var(--text-mega) * 0.935);--text-btn:clamp(var(--text-base),2.5vw,var(--text-body-md));--text-min:var(--text-body-xs);--text-rating:var(--text-mega);--text-rating-sm:var(--text-mega-sm);--fluid-mega-lg:calc(0.75rem + 3.5vw);--fluid-mega:var(--text-mega);--fluid-mega-md:var(--text-mega-md);--fluid-mega-sm:var(--text-mega-sm);--fluid-lead-xl:var(--text-lead-xl);--fluid-lead:var(--text-lead);--fluid-body-lg:calc(0.625rem + 0.52vw);--fluid-display:var(--text-display);--fluid-display-sm:var(--text-display-sm);--lh-body:1.43;--lh-body-tight:1.3;--lh-lead:1.4;--lh-mega:1.3;--lh-mega-lg:1.1;--lh-btn:1.2;--ls-mega:-0.04em;--ls-btn:-0.01em;--title-subtitle-gap:clamp(8px,1.8vw,35px);--ui-surface-soft:#F8F9F9;--ui-divider:#D6DAD8;--ui-border-default:#C3C8C6;--ui-border-strong:#AEB4B1;--brand:#148a28;--brand-dark:#3e7058;--brand-light:#79b595;--brand-surface-soft:#F4FBF7;--brand-border:#d6ece3;--brand-soft:#99d1bc;--brand-decor:#85d6b9;--brand-secondary:#588C69;--brand-secondary-dark:#3E7058;--rating-accent:#FFC32A;--promo-badge:#dea28a;--promo-badge-overlay:#E4C29466;--promo-badge-text:color-mix(in srgb,var(--promo-badge) 45%,var(--text-primary));--promo-warm:#CF6537;--promo-warm-bg:rgba(252,150,78,0.10);--promo-accent:#fc4e4e;--promo-accent-bg:rgba(252,78,78,0.10);--promo-cool:#60759D;--promo-cool-bg:rgba(159,196,219,0.20);--text-accent:#848484;--text-on-brand:#ffffff;--text-primary:#151B1A;--text-secondary:#4A5250;--text-muted:#787878;--bg-fill-page:#F1EEEC;--bg-fill-soft:#fbf7f4;--bg-fill-footer:#FBF7F4;--bg-fill-surface:#ffffff;--white:#ffffff;--brand-opacity-15:color-mix(in srgb,var(--brand) 15%,transparent);--brand-opacity-20:color-mix(in srgb,var(--brand) 20%,transparent);--brand-opacity-40:color-mix(in srgb,var(--brand) 40%,transparent);--white-opacity-75:color-mix(in srgb,var(--white) 75%,transparent);--white-opacity-50:color-mix(in srgb,var(--white) 50%,transparent);--white-opacity-40:color-mix(in srgb,var(--white) 40%,transparent);--white-opacity-25:color-mix(in srgb,var(--white) 25%,transparent);--dark-opacity-40:color-mix(in srgb,var(--text-primary) 40%,transparent);--dark-opacity-20:color-mix(in srgb,var(--text-primary) 20%,transparent);--bg-fill-panel:#efece9;--bg-fill-filter-widget:#EFECE9;--ui-border-soft:#e6e9e8;--focus-ring:color-mix(in srgb,var(--brand) 55%,transparent);--shadow-brand-soft:0 16px 10px 0 color-mix(in srgb,var(--brand) 4%,transparent);--shadow-header:0 8px 24px color-mix(in srgb,#000 6%,transparent);--shadow-dropdown:0 16px 44px color-mix(in srgb,#0f172a 12%,transparent);--shadow-popup:0 24px 80px color-mix(in srgb,#0f172a 16%,transparent);--glass-text-08:color-mix(in srgb,var(--text-primary) 8%,transparent);--glass-blur:8px;--glass-blur-mobile:4px;--section-bg-light:#f8f6f4;--section-bg-deep:#dfd9d2;--bg-gradient-page-angle:135deg;--bg-gradient-page-light:10.19%;--bg-gradient-page-deep:92.05%;--bg-gradient-page-veil:0%;--bg-gradient-bottom-light-angle:135deg;--bg-gradient-bottom-light-light:20.61%;--bg-gradient-bottom-light-deep:68.37%;--bg-gradient-bottom-light-veil:40%;--bg-gradient-top-light-angle:180deg;--bg-gradient-top-light-light:8%;--bg-gradient-top-light-deep:62%;--bg-gradient-top-light-veil:40%;--section-bg:var(--bg-fill-page);--page-max:1640px;--page-gutter:16px;--logo-w:263px;--ui-icon-box:58px;--ui-icon:30px;--ui-label-max:170px;--ui-cta-h:54px;--ui-cta-px:32px;--btn-min-h:54px;--btn-font-size:var(--text-body-md);--text-nav:clamp(16px,calc(11.1px + 0.36vw),18px);--text-ui-meta:clamp(14px,calc(4.2px + 0.72vw),18px);--text-ui-btn:clamp(14px,calc(4.2px + 0.72vw),18px);--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-14:14px;--space-16:16px;--space-18:18px;--space-20:20px;--space-22:22px;--space-24:24px;--space-28:28px;--space-32:32px;--space-40:40px;--space-48:48px;--space-56:56px;--space-64:64px;--section-gap:120px;--section-gap-mobile:80px;--section-y-top:48px;--section-y-bottom:56px;--section-y-mobile:40px;--section-y-before-footer:95px;--section-y-top-lg:89px;--section-y-bottom-lg:108px;--bp-sm:576px;--bp-md:768px;--bp-lg:992px;--bp-xl:1200px;--radius:10px;--radius-btn:10px;--radius-sm:4px;--radius-lg:calc(var(--radius) * 1.2);--radius-xl:calc(var(--radius) * 1.4);--radius-full:100%;--radius-pill:100px}@media (max-width:1600px){:root{--logo-w:232px;--ui-icon-box:42px;--ui-icon:26px;--ui-cta-h:48px;--ui-cta-px:18px;--fluid-lead-xl:calc(1.0625rem + 0.32vw)}}@media (max-width:1366px){:root{--logo-w:220px}}@media (min-width:992px){:root{--page-gutter:clamp(20px,7.3vw,140px)}}@media (max-width:1200px){:root{--fluid-mega:calc(0.5rem + 0.85vw);--fluid-mega-md:calc(0.5rem + 0.55vw);--fluid-mega-sm:calc(0.5rem + 0.38vw);--fluid-lead-xl:calc(0.5rem + 0.42vw);--fluid-lead:calc(0.5rem + 0.34vw);--fluid-display:calc(1rem + 0.95vw);--fluid-display-sm:calc(0.75rem + 0.68vw);--title-subtitle-gap:clamp(8px,1.4vw,28px)}}@media (max-width:1366px){:root{--btn-min-h:47px;--btn-font-size:var(--text-body-sm)}}@media (max-width:768px){:root{--text-nav:clamp(var(--text-min),calc(11.1px + 0.36vw),18px);--text-ui-meta:clamp(var(--text-min),calc(4.2px + 0.72vw),18px);--text-ui-btn:clamp(var(--text-min),calc(4.2px + 0.72vw),18px);--text-body-sm:max(var(--text-min),calc(var(--text-base) * 0.875))}}*,*::before,*::after{box-sizing:border-box}html{font-size:var(--text-base);scrollbar-gutter:stable;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html.is-popup-open{overflow:hidden}html.is-popup-open jdiv,html.is-popup-open #jvLabelWrap,html.is-popup-open #jivo-iframe-container,html.is-popup-open iframe[src*=\"jivo\"],html.is-popup-open iframe[src*=\"jivosite\"],html.is-popup-open .b24-widget-button-wrapper,html.is-popup-open .bx-im-bar,html.is-popup-open [class*=\"b24-widget-button\"],html.is-popup-open iframe[src*=\"bitrix24\"],html.is-popup-open #envybox,html.is-popup-open #envybox-widget,html.is-popup-open .envybox,html.is-popup-open [id*=\"callibri\"],html.is-popup-open [class*=\"callibri\"],html.is-popup-open iframe[src*=\"callibri\"],html.is-popup-open #carrotquest-messenger-container,html.is-popup-open #carrotquest-messenger-collapsed-container,html.is-popup-open [id*=\"usedesk\"],html.is-popup-open iframe[src*=\"usedesk\"],html.is-popup-open .redhelper,html.is-popup-open [id^=\"talkme\"],html.is-popup-open [class*=\"talk-me\"],html.is-popup-open [id*=\"roistat-widget\"],html.is-popup-open .marquiz__container,html.is-popup-open .back-to-top{visibility:hidden !important;pointer-events:none !important}body{margin:0;font-family:var(--font-body);font-size:1em;line-height:var(--lh-body);background:var(--bg-fill-page);color:var(--text-primary);min-height:100dvh;display:flex;flex-direction:column}:where( a[href],button,input:not([type=\"hidden\"]),select,textarea,summary,[contenteditable=\"true\"],[tabindex]:not([tabindex=\"-1\"]) ):focus-visible{outline:2px solid var(--focus-ring) !important;outline-offset:4px}img{max-width:100%;height:auto}img[width][height]{aspect-ratio:auto attr(width) \/ attr(height)}.page{width:100%;margin:0 auto;padding:var(--section-gap) 0;display:flex;flex-direction:column;flex:1 0 auto}.page>section+section{margin-top:var(--section-gap)}.page > section + section.section-space-top,.page > section + section.section-space-y,.page > section + section.section-space-top-lg,.page > section + section.section-space-y-lg,.page > section + section.has-block-bg.section-pad-top,.page > section + section.has-block-bg.section-pad-y,.page > section + section.has-block-bg.section-pad-top-lg,.page > section + section.has-block-bg.section-pad-y-lg,.page > section + section.section-no-gap-top{margin-top:0}.page.page--with-header{padding-top:0;padding-bottom:0}.page.page--with-header > section:first-child{margin-top:0}.page.page--with-footer > section:last-child.section-space-bottom,.page.page--with-footer > section:last-child.section-space-y,.page.page--with-footer > section:last-child.section-space-bottom-lg,.page.page--with-footer > section:last-child.section-space-y-lg{padding-bottom:var(--section-y-before-footer)}.page.page--with-footer > section:last-child.has-block-bg.section-pad-bottom > .container,.page.page--with-footer > section:last-child.has-block-bg.section-pad-y > .container,.page.page--with-footer > section:last-child.has-block-bg.section-pad-bottom-lg > .container,.page.page--with-footer > section:last-child.has-block-bg.section-pad-y-lg > .container{padding-bottom:var(--section-y-before-footer)}.page.page--with-footer > section.section-bg:last-child{padding-bottom:var(--section-y-before-footer)}.section-bg{background:var(--section-bg)}.section-bg--page{--section-bg:var(--bg-fill-page)}.section-bg--white{--section-bg:var(--white)}.section-bg--page-alt{--section-bg:var(--bg-fill-soft)}.section-bg--surface{--section-bg:var(--bg-fill-surface)}.section-bg--gradient{background:var(--section-gradient)}.section-bg--bg-gradient-page{--bg-gradient-page-veil-layer:linear-gradient( 90deg,color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-page-veil),transparent),color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-page-veil),transparent) );--section-gradient:var(--bg-gradient-page-veil-layer),linear-gradient( var(--bg-gradient-page-angle),var(--section-bg-light) min(var(--bg-gradient-page-light),var(--bg-gradient-page-deep)),var(--section-bg-deep) max(var(--bg-gradient-page-light),var(--bg-gradient-page-deep)) )}.section-bg--bg-gradient-bottom-light{--bg-gradient-bottom-light-veil-layer:linear-gradient( 90deg,color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-bottom-light-veil),transparent),color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-bottom-light-veil),transparent) );--section-gradient:var(--bg-gradient-bottom-light-veil-layer),linear-gradient( var(--bg-gradient-bottom-light-angle),var(--section-bg-light) min(var(--bg-gradient-bottom-light-light),var(--bg-gradient-bottom-light-deep)),var(--section-bg-deep) max(var(--bg-gradient-bottom-light-light),var(--bg-gradient-bottom-light-deep)) )}.section-bg--bg-gradient-top-light{--bg-gradient-top-light-veil-layer:linear-gradient( 90deg,color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-top-light-veil),transparent),color-mix(in srgb,var(--section-bg-light) var(--bg-gradient-top-light-veil),transparent) );--section-gradient:var(--bg-gradient-top-light-veil-layer),linear-gradient( var(--bg-gradient-top-light-angle),var(--section-bg-light) min(var(--bg-gradient-top-light-light),var(--bg-gradient-top-light-deep)),var(--section-bg-deep) max(var(--bg-gradient-top-light-light),var(--bg-gradient-top-light-deep)) )}.page > section.section-bg{padding-bottom:var(--section-gap)}.page > section.section-bg:has(+ section.section-bg){padding-bottom:calc(var(--section-gap) \/ 2)}.page > section + section.section-bg{margin-top:0;padding-top:var(--section-gap)}.page > section.section-bg + section.section-bg{padding-top:calc(var(--section-gap) \/ 2)}.page > section.section-bg + section:not(.section-bg){margin-top:0}.page:not(.page--with-header) > section.section-bg:first-child{margin-top:calc(-1 * var(--section-gap));padding-top:var(--section-gap)}section.section-space-top,section.section-space-bottom,section.section-space-y,section.section-space-top-lg,section.section-space-bottom-lg,section.section-space-y-lg{box-sizing:border-box}section.section-space-top{padding-top:var(--section-y-top)}section.section-space-bottom{padding-bottom:var(--section-y-bottom)}section.section-space-y{padding-top:var(--section-y-top);padding-bottom:var(--section-y-bottom)}section.section-space-top-lg{padding-top:var(--section-y-top-lg)}section.section-space-bottom-lg{padding-bottom:var(--section-y-bottom-lg)}section.section-space-y-lg{padding-top:var(--section-y-top-lg);padding-bottom:var(--section-y-bottom-lg)}.has-block-bg.section-pad-top>.container{padding-top:var(--section-y-top)}.has-block-bg.section-pad-bottom>.container{padding-bottom:var(--section-y-bottom)}.has-block-bg.section-pad-y>.container{padding-top:var(--section-y-top);padding-bottom:var(--section-y-bottom)}.has-block-bg.section-pad-top-lg>.container{padding-top:var(--section-y-top-lg)}.has-block-bg.section-pad-bottom-lg>.container{padding-bottom:var(--section-y-bottom-lg)}.has-block-bg.section-pad-y-lg>.container{padding-top:var(--section-y-top-lg);padding-bottom:var(--section-y-bottom-lg)}.container{width:100%;max-width:calc(var(--page-max) + 2 * var(--page-gutter));margin:0 auto;padding-left:var(--page-gutter);padding-right:var(--page-gutter);box-sizing:border-box}.content> :last-child{margin-bottom:0}.content ul,.content ol{padding-left:1.25em}.wysiwyg{width:100%;max-width:100%}.wysiwyg blockquote{margin:calc(var(--space-24) * 2) 0;padding:var(--space-16);border:1px solid var(--brand-border);border-radius:var(--radius);background:var(--brand-opacity-15);box-sizing:border-box;display:flex;gap:var(--space-14);align-items:flex-start;color:var(--text-primary)}.wysiwyg blockquote:not(:has(img))::before{content:'';flex:none;width:44px;height:44px;color:var(--brand);background:currentColor;-webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 44 44'%3E%3Cpath d='M35 10.2176L34.4118 14.5251C32.8824 14.407 31.7647 14.7217 31.0588 15.4691C30.3529 16.2165 29.9216 17.2196 29.7647 18.4784C29.6078 19.7372 29.5686 21.0943 29.6471 22.5498H35V35H24.9412V20.1896C24.9412 16.5706 25.8431 13.8563 27.6471 12.0468C29.4902 10.2373 31.9412 9.62759 35 10.2176ZM20.0588 10.2176L19.4706 14.5251C17.9412 14.407 16.8235 14.7217 16.1176 15.4691C15.4118 16.2165 14.9804 17.2196 14.8235 18.4784C14.6667 19.7372 14.6275 21.0943 14.7059 22.5498H20.0588V35H10V20.1896C10 16.5706 10.902 13.8563 12.7059 12.0468C14.549 10.2373 17 9.62759 20.0588 10.2176Z' fill='%23000'\/%3E%3C\/svg%3E\") no-repeat center \/ contain;mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 44 44'%3E%3Cpath d='M35 10.2176L34.4118 14.5251C32.8824 14.407 31.7647 14.7217 31.0588 15.4691C30.3529 16.2165 29.9216 17.2196 29.7647 18.4784C29.6078 19.7372 29.5686 21.0943 29.6471 22.5498H35V35H24.9412V20.1896C24.9412 16.5706 25.8431 13.8563 27.6471 12.0468C29.4902 10.2373 31.9412 9.62759 35 10.2176ZM20.0588 10.2176L19.4706 14.5251C17.9412 14.407 16.8235 14.7217 16.1176 15.4691C15.4118 16.2165 14.9804 17.2196 14.8235 18.4784C14.6667 19.7372 14.6275 21.0943 14.7059 22.5498H20.0588V35H10V20.1896C10 16.5706 10.902 13.8563 12.7059 12.0468C14.549 10.2373 17 9.62759 20.0588 10.2176Z' fill='%23000'\/%3E%3C\/svg%3E\") no-repeat center \/ contain}.wysiwyg blockquote strong{color:var(--text-primary)}.wysiwyg blockquote p{margin:0;color:var(--text-primary)}.wysiwyg a{color:var(--brand);text-decoration:none;outline:none}.wysiwyg a:hover{text-decoration:underline}.wysiwyg a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.wysiwyg table{width:100%;border-collapse:collapse;min-width:0;display:block;overflow-x:auto;box-sizing:border-box;margin:calc(var(--space-24) * 2) 0}.wysiwyg-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.wysiwyg-table-scroll > table{display:table;overflow:visible}.wysiwyg th,.wysiwyg td{text-align:left;padding:calc(var(--space-18) * 2) calc(var(--space-16) * 2);vertical-align:top;border-bottom:1px solid var(--ui-border-default)}.wysiwyg th{color:var(--text-muted);font-weight:400}.wysiwyg table thead tr{border-bottom:1px solid var(--ui-border-default)}.wysiwyg{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.wysiwyg table{max-width:100%}@media (max-width:768px){.wysiwyg{width:100%;max-width:100%}.wysiwyg table{min-width:0;width:max-content}.wysiwyg th,.wysiwyg td{padding:var(--space-16) var(--space-12)}}.wysiwyg ol{margin:var(--space-24) 0;padding:0;list-style:none;counter-reset:toc;gap:var(--space-16)}.wysiwyg ol > li{position:relative;padding-left:32px;color:var(--text-secondary)}.wysiwyg ol > li::before{counter-increment:toc;content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:0;color:var(--brand);font-weight:600;line-height:1.4}.wysiwyg ol > li + li{margin-top:var(--space-16)}.wysiwyg ol ol{margin:var(--space-12) 0 0;padding-left:0}.wysiwyg ol ol > li{padding-left:44px}.wysiwyg ol ol > li::before{content:counters(toc,\".\") \".\"}.wysiwyg ul{margin:calc(var(--space-24) * 2) 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:calc(var(--space-8) * 2)}.wysiwyg ul li{position:relative;color:var(--text-secondary);padding-left:var(--space-20)}.wysiwyg ul li::before{content:\"\";position:absolute;left:0;top:0.55em;width:10px;height:10px;border-radius:var(--radius-full);background:var(--brand)}.wysiwyg ul ul{margin:calc(var(--space-8) * 2) 0 0;padding:0}.wysiwyg h1,.wysiwyg h2,.wysiwyg h3,.wysiwyg h4,.wysiwyg h5,.wysiwyg h6{margin:var(--space-24) 0 var(--space-16);font-family:var(--font-heading);font-weight:var(--font-weight-heading);color:var(--text-primary);line-height:1.25;overflow-wrap:break-word;hyphens:auto}.wysiwyg h1{font-size:2.125em}.wysiwyg h2{font-size:1.75em}.wysiwyg h3{font-size:1.6em}.wysiwyg h4{font-size:1.5em}.wysiwyg h5{font-size:1.375em}.wysiwyg h6{font-size:1.25em}.has-block-bg{position:relative;max-width:100%;min-width:0;overflow:hidden;overflow-x:clip;box-sizing:border-box}.block-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.block-bg--bleed{left:0;right:0;width:auto;transform:none}.block-bg img{display:block;width:100%;height:100%;object-fit:cover}.has-block-bg>.container{position:relative;z-index:1}.stack{display:flex;flex-direction:column}.stack--sm{gap:var(--space-16)}.stack--md{gap:var(--space-24)}.stack--lg{gap:var(--space-32)}.stack--xl{gap:var(--space-40)}.actions-row{display:flex;flex-wrap:wrap;gap:clamp(var(--space-16),2vw,29px);align-items:center}.stars-rating{--stars-rating-value:5;--stars-rating-size:26px;--stars-rating-gap:var(--space-2);position:relative;display:inline-flex;flex:none;vertical-align:middle}.stars-rating__layer{display:inline-flex;align-items:center;gap:var(--stars-rating-gap)}.stars-rating__layer--empty{color:color-mix(in srgb,var(--rating-accent) 22%,var(--ui-divider))}.stars-rating__layer--fill{position:absolute;inset:0 auto 0 0;overflow:hidden;width:calc(var(--stars-rating-value) \/ 5 * 100%);color:var(--rating-accent)}.stars-rating__icon{display:block;width:var(--stars-rating-size);height:var(--stars-rating-size);flex:none}.stars-rating--sm{--stars-rating-size:26px;--stars-rating-gap:var(--space-2)}.stars-rating--lg{--stars-rating-size:30px;--stars-rating-gap:var(--space-6)}@media (max-width:768px){.stars-rating,.stars-rating--sm{--stars-rating-size:20px}.stars-rating--lg{--stars-rating-size:22px;--stars-rating-gap:var(--space-4)}[class$='__badge-star'],[class$='__card-star']{width:18px;height:18px}}@media (max-width:768px){.page{padding:var(--section-gap-mobile) 0}.page>section+section{margin-top:var(--section-gap-mobile)}.page > section.section-bg{padding-bottom:var(--section-gap-mobile)}.page > section.section-bg:has(+ section.section-bg){padding-bottom:calc(var(--section-gap-mobile) \/ 2)}.page > section + section.section-bg{padding-top:var(--section-gap-mobile)}.page > section.section-bg + section.section-bg{padding-top:calc(var(--section-gap-mobile) \/ 2)}.page:not(.page--with-header) > section.section-bg:first-child{margin-top:calc(-1 * var(--section-gap-mobile));padding-top:var(--section-gap-mobile)}section.section-space-top,section.section-space-y,section.section-space-top-lg,section.section-space-y-lg{padding-top:var(--section-y-mobile)}section.section-space-bottom,section.section-space-y,section.section-space-bottom-lg,section.section-space-y-lg{padding-bottom:var(--section-y-mobile)}.has-block-bg.section-pad-top>.container,.has-block-bg.section-pad-y>.container,.has-block-bg.section-pad-top-lg>.container,.has-block-bg.section-pad-y-lg>.container{padding-top:var(--section-y-mobile)}.has-block-bg.section-pad-bottom>.container,.has-block-bg.section-pad-y>.container,.has-block-bg.section-pad-bottom-lg>.container,.has-block-bg.section-pad-y-lg>.container{padding-bottom:var(--section-y-mobile)}.actions-row{flex-direction:column;align-items:stretch;width:100%}.actions-row>.btn--primary{width:100%}}h1,h2,h3{margin:0;font-family:var(--font-heading);font-weight:var(--font-weight-heading)}.bodytext-sm{font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:400;line-height:var(--lh-body-tight)}.bodytext{font-family:var(--font-body);font-size:1em;font-weight:400;line-height:var(--lh-body)}.bodytext-strong{font-family:var(--font-body);font-size:1em;font-weight:600;line-height:var(--lh-body-tight)}.bodytext-md{font-family:var(--font-body);font-size:var(--text-body-md);font-weight:400;line-height:var(--lh-body-tight)}.bodytext-quote{font-family:var(--font-body);font-size:var(--text-quote);font-weight:500;line-height:var(--lh-body)}.bodytext-lg{font-family:var(--font-body);font-size:clamp(1em,var(--fluid-body-lg),var(--text-body-lg));font-weight:600;line-height:var(--lh-body-tight)}.bodytext-lg-regular{font-family:var(--font-body);font-size:clamp(1em,var(--fluid-body-lg),var(--text-body-lg));font-weight:400;line-height:var(--lh-body-tight)}.bodytext-lg-compact{font-family:var(--font-body);font-size:var(--text-body-lg);font-weight:600;line-height:var(--lh-body-tight)}.leadtext{font-family:var(--font-body);font-size:clamp(1.0625em,var(--fluid-lead),var(--text-lead));font-weight:500;line-height:var(--lh-lead)}.leadtext-xl{font-family:var(--font-body);font-size:clamp(1.0625em,var(--fluid-lead-xl),var(--text-lead-xl));font-weight:500;line-height:var(--lh-lead)}.titletext-sm{font-family:var(--font-heading);font-size:var(--text-title-sm);font-weight:var(--font-weight-heading);line-height:1.35;letter-spacing:var(--ls-mega)}.megatext-sm{font-family:var(--font-heading);font-size:clamp(1.125em,var(--fluid-mega-sm),var(--text-mega-sm));font-weight:var(--font-weight-heading);line-height:1.2;letter-spacing:var(--ls-mega)}.megatext-md{font-family:var(--font-heading);font-size:clamp(1.375em,var(--fluid-mega-md),var(--text-mega-md));font-weight:var(--font-weight-heading);line-height:1.2;letter-spacing:var(--ls-mega)}.displaytext-sm{font-family:var(--font-heading);font-size:clamp(1.625em,var(--fluid-display-sm),var(--text-display-sm));font-weight:var(--font-weight-heading);line-height:1.2;letter-spacing:var(--ls-mega)}.megatext{font-family:var(--font-heading);font-size:clamp(1.625em,var(--fluid-mega),var(--text-mega));font-weight:var(--font-weight-heading);line-height:var(--lh-mega);letter-spacing:var(--ls-mega)}.ratingtext{font-family:var(--font-heading);font-size:var(--text-rating);font-weight:var(--font-weight-heading);line-height:1.1;color:var(--brand-dark)}.displaytext{font-family:var(--font-heading);font-size:clamp(2.25em,var(--fluid-display),var(--text-display));font-weight:var(--font-weight-heading);line-height:1.1}.megatext-lg{font-family:var(--font-heading);font-size:clamp(2em,var(--fluid-mega-lg),var(--text-mega-lg));font-weight:var(--font-weight-heading);line-height:var(--lh-mega-lg);letter-spacing:var(--ls-mega)}@media (max-width:768px){.ratingtext{font-size:var(--text-rating-sm)}}.titles{display:flex;flex-direction:column;gap:var(--title-subtitle-gap);width:100%}.heading-md{font-family:var(--font-heading);font-size:var(--text-body-md);font-weight:var(--font-weight-heading);line-height:1.2}.uimeta{font-size:var(--text-ui-meta);line-height:var(--lh-lead)}.navtext{font-size:var(--text-nav);line-height:1.3}.uibtntext{font-size:var(--text-ui-btn);line-height:var(--lh-btn)}.badge-scale{container-type:size;font-family:var(--font-heading);--badge-box:190;--badge-label:19;--badge-value:42.64;--badge-text-scale:1}.badge-scale__label{font-family:inherit;font-size:max(var(--text-min),calc(var(--badge-label) \/ var(--badge-box) * 100cqmin * var(--badge-text-scale)));font-weight:400;line-height:1.2;letter-spacing:-0.02em}.badge-scale__value{font-family:inherit;font-size:max(var(--text-min),calc(var(--badge-value) \/ var(--badge-box) * 100cqmin * var(--badge-text-scale)));font-weight:800;line-height:1.2;letter-spacing:-0.04em;white-space:nowrap}.accent{color:var(--text-accent)}.font-body{font-family:var(--font-body)}.font-heading{font-family:var(--font-heading);font-weight:var(--font-weight-heading)}.italic{font-style:italic}.eyebrow{margin:0;align-self:flex-start;letter-spacing:0;text-transform:uppercase;white-space:nowrap;color:var(--brand-secondary)}.eyebrow--bordered,.eyebrow:not([class*=\"eyebrow--\"]){padding:var(--space-10);border:0 solid currentColor;border-left-width:1px;border-right-width:1px;border-radius:var(--radius-sm)}.eyebrow--icon{display:inline-flex;align-items:center;gap:var(--space-8);padding-block:var(--space-10);padding-inline:0;border:0;border-radius:var(--radius-sm)}.eyebrow__icon{display:block;flex:none;width:27px;height:17px}.eyebrow__text{display:block}.eyebrow__text--short{display:none}@media (max-width:768px){.eyebrow__text--full{display:none}.eyebrow__text--short{display:inline}}.icon{display:block;flex:none}.glass{--glass-bg:var(--white-opacity-40);--glass-current-blur:var(--glass-blur);--glass-solid-bg:var(--white-opacity-75);background:var(--glass-bg);backdrop-filter:blur(var(--glass-current-blur));-webkit-backdrop-filter:blur(var(--glass-current-blur))}.glass--surface-40{--glass-bg:var(--white-opacity-40);--glass-solid-bg:var(--white-opacity-40)}.glass--surface-70{--glass-bg:color-mix(in srgb,var(--bg-fill-surface) 70%,transparent);--glass-solid-bg:color-mix(in srgb,var(--bg-fill-surface) 96%,transparent)}.glass--surface-75{--glass-bg:color-mix(in srgb,var(--bg-fill-surface) 75%,transparent);--glass-solid-bg:var(--white-opacity-75)}.glass--hover-bright:hover,.glass--hover-bright:focus-visible{background:var(--white-opacity-75)}.glass--soft-mobile{--glass-mobile-bg:var(--glass-bg)}.glass--desktop-only{--glass-solid-bg:var(--white-opacity-75)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass{background:var(--glass-solid-bg);backdrop-filter:none;-webkit-backdrop-filter:none}}@media (hover:none),(pointer:coarse),(max-width:768px){.glass--soft-mobile{--glass-current-blur:var(--glass-blur-mobile);background:var(--glass-mobile-bg)}.glass--desktop-only{background:var(--glass-solid-bg);backdrop-filter:none;-webkit-backdrop-filter:none}}.ui-preloader{--ui-preloader-size:44px;--ui-preloader-stroke:3px;--ui-preloader-color:var(--brand);display:inline-block;width:var(--ui-preloader-size);height:var(--ui-preloader-size);border-radius:var(--radius-full);border:var(--ui-preloader-stroke) solid color-mix(in srgb,var(--ui-preloader-color) 22%,transparent);border-top-color:var(--ui-preloader-color);border-right-color:color-mix(in srgb,var(--ui-preloader-color) 55%,transparent);animation:ui-preloader-spin .9s linear infinite;box-sizing:border-box}.ui-preloader--sm{--ui-preloader-size:28px}.ui-preloader--lg{--ui-preloader-size:62px;--ui-preloader-stroke:4px}.ui-preloader-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-fill-surface) 55%,transparent);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile));border-radius:inherit}@media (hover:none),(pointer:coarse),(max-width:768px){:where( .about-v2__panel,.expert-advice-v1__doctor-caption,.expert-advice-v2__photo-badge,.faq-v1__item,.footer-v1__cta-card,.hero-v1__trust,.hero-v3__card-item,.hero-v4__feature,.popup__overlay,.popup-form-loading,.progression-stages-v2__card-overlay::after,.quiz-v1__panel-inner,.ui-preloader-overlay,.utp-numbers-v1__info ){backdrop-filter:none !important;-webkit-backdrop-filter:none !important}}@keyframes ui-preloader-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ui-preloader{animation-duration:1.6s}}@media (max-width:768px){.eyebrow{white-space:normal;font-size:var(--text-body-xs)}.bodytext-md{font-size:max(var(--text-min),var(--text-base))}.bodytext-sm{font-size:max(var(--text-min),var(--text-body-sm))}.bodytext-lg-compact{font-size:max(var(--text-min),var(--text-body-sm))}.uimeta{font-size:max(var(--text-min),var(--text-ui-meta))}.navtext{font-size:max(var(--text-min),var(--text-nav))}.uibtntext{font-size:max(var(--text-min),var(--text-ui-btn))}}.text-decoration-fade{text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.text-decoration-fade:hover,.text-decoration-fade:focus-visible{text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.link-arrow{display:inline-flex;align-items:center;gap:var(--space-10);text-decoration:none;color:var(--text-secondary)}.link-arrow:hover,.link-arrow:focus-visible{color:var(--brand-dark)}.link-arrow__icon{flex:none;width:24px;height:24px}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;padding:var(--space-14) var(--space-32);min-height:var(--btn-min-h);border-radius:var(--radius-btn);font-family:inherit;font-size:var(--btn-font-size);font-weight:600;line-height:var(--lh-btn);letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .16s ease,background-color .2s ease-out,color .2s ease-out}.btn--primary{background:var(--brand);color:var(--text-on-brand)}.btn--primary:hover{background:var(--brand-dark)}.btn:disabled,.btn.is-consent-pending{cursor:not-allowed;transform:none}.btn--primary:disabled,.btn--primary.is-consent-pending{background:var(--ui-divider);color:var(--ui-border-strong);opacity:1}.btn--primary:disabled:hover,.btn--primary.is-consent-pending:hover{background:var(--ui-divider)}.btn--white:disabled,.btn--white.is-consent-pending{background:var(--ui-divider);color:var(--ui-border-strong);opacity:1}.btn--white:disabled:hover,.btn--white.is-consent-pending:hover{background:var(--ui-divider)}.btn--secondary:disabled{border-color:var(--ui-divider);color:var(--ui-border-strong);opacity:1}.btn--secondary{background:transparent;color:var(--brand-secondary-dark);border:2px solid var(--brand-secondary)}.btn--secondary:hover{background:color-mix(in srgb,var(--brand) 8%,transparent)}.btn--white{background:var(--white);color:var(--text-secondary);padding-inline:var(--space-24)}.btn--white:hover,.btn--white:focus-visible{background:color-mix(in srgb,var(--white) 92%,var(--brand));color:var(--text-secondary)}.btn.is-pressed{transform:scale(.98)}.btn.uibtntext,.btn.bodytext-sm{font-size:var(--btn-font-size);line-height:var(--lh-btn);letter-spacing:var(--ls-btn)}.site-header__wide-default-promo-cta.btn{padding:var(--space-8) var(--space-16);min-height:40px;font-size:var(--text-body-sm);line-height:var(--lh-btn);letter-spacing:var(--ls-btn)}@media (max-width:768px){.btn--primary{width:100%}}.slider-nav{display:flex;align-items:center;gap:var(--space-12)}.slider-nav__btn{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;padding:0;border:none;border-radius:var(--radius-full);color:var(--text-primary);cursor:pointer;transition:transform .16s ease,background-color .16s ease,opacity .16s ease}.slider-nav__btn:disabled,.slider-nav__btn.swiper-button-disabled{opacity:.45;cursor:default}.slider-nav__btn.is-pressed{transform:scale(.96)}.slider-nav--glass .slider-nav__btn{border:1px solid var(--ui-border-default);background:var(--white-opacity-50);color:var(--ui-border-strong);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile))}.slider-nav--glass .slider-nav__btn:hover:not(:disabled):not(.swiper-button-disabled){background:var(--white-opacity-75)}.slider-nav--brand .slider-nav__btn{border:1px solid var(--brand);background:color-mix(in srgb,var(--bg-fill-surface) 25%,transparent);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile));color:var(--brand)}.slider-nav--brand .slider-nav__btn:hover:not(:disabled):not(.swiper-button-disabled){background:var(--white-opacity-40)}@media (max-width:768px){.slider-nav{display:none}}.slider-pagination{display:none;position:absolute;left:50%;bottom:32px;z-index:2;width:auto !important;pointer-events:none}.slider-pagination:not(.swiper-pagination-bullets-dynamic){transform:translateX(-50%)}.slider-pagination.swiper-pagination-horizontal{--pagination-bullet-w:10px;--pagination-bullet-h:5px;--pagination-bullet-active-w:28px;--pagination-bullet-gap:var(--space-4);--swiper-pagination-bullet-width:var(--pagination-bullet-w);--swiper-pagination-bullet-height:var(--pagination-bullet-h);--swiper-pagination-bullet-border-radius:var(--radius-sm);--swiper-pagination-bullet-inactive-color:var(--white-opacity-40);--swiper-pagination-bullet-inactive-opacity:1;--swiper-pagination-color:var(--white-opacity-75)}.slider-pagination .swiper-pagination-bullet{position:relative;pointer-events:auto;width:var(--pagination-bullet-active-w);height:var(--pagination-bullet-h);border-radius:var(--radius-sm);opacity:1;margin:0 var(--pagination-bullet-gap) !important;background:transparent}.slider-pagination .swiper-pagination-bullet::before{content:\"\";position:absolute;inset:0;border-radius:inherit;background:var(--swiper-pagination-bullet-inactive-color);transform:scaleX(calc(var(--pagination-bullet-w) \/ var(--pagination-bullet-active-w)));transform-origin:center;transition:transform 0.25s ease,background-color 0.25s ease}.slider-pagination .swiper-pagination-bullet-active,.slider-pagination .swiper-pagination-bullet-active-main{width:var(--pagination-bullet-active-w)}.slider-pagination .swiper-pagination-bullet-active::before,.slider-pagination .swiper-pagination-bullet-active-main::before{background:var(--swiper-pagination-color);transform:scaleX(1)}.slider-pagination.swiper-pagination-bullets-dynamic{overflow:hidden;white-space:nowrap}.slider-pagination-host{display:flex;justify-content:center;align-items:center;width:100%;min-height:var(--slider-dot-size,18px);margin-top:var(--space-24);overflow:visible;pointer-events:none}.slider-pagination-host > .swiper-pagination,.slider-pagination-host > .slider-pagination,.slider-pagination-host > .slider-pagination--dots{margin-top:0;margin-inline:0;align-self:auto;pointer-events:auto}.slider-controls{display:grid;grid-template-areas:\"track\";grid-template-columns:minmax(0,1fr);align-items:center;width:100%}.slider-controls > .slider-nav__btn--prev,.slider-controls > .slider-nav__btn--next,.slider-controls > .slider-pagination-host{grid-area:track}.slider-controls > .slider-nav__btn--prev{justify-self:start;position:relative;z-index:2}.slider-controls > .slider-nav__btn--next{justify-self:end;position:relative;z-index:2}.slider-controls > .slider-pagination-host{justify-self:stretch;z-index:1;margin-top:0}.slider-controls > .slider-pagination-host > .swiper-pagination,.slider-controls > .slider-pagination-host > .slider-pagination,.slider-controls > .slider-pagination-host > .slider-pagination--dots{width:auto !important;max-width:none;pointer-events:none}.slider-controls > .slider-pagination-host .swiper-pagination-bullet{pointer-events:auto}.slider-pagination--glass .swiper-pagination-bullet{background:var(--white-opacity-40)}.slider-pagination--glass .swiper-pagination-bullet-active,.slider-pagination--glass .swiper-pagination-bullet-active-main{background:var(--white-opacity-75)}@media (max-width:768px){.slider-pagination{display:flex;justify-content:center;align-items:center;left:0 !important;right:0}.slider-pagination:not(.swiper-pagination-bullets-dynamic){width:100% !important;transform:none !important}.slider-pagination.swiper-pagination-bullets-dynamic{width:auto;max-width:100%;margin-inline:auto}.slider-pagination.swiper-pagination-horizontal{--pagination-bullet-w:16px;--pagination-bullet-h:8px;--pagination-bullet-active-w:40px;--pagination-bullet-gap:var(--space-6);--swiper-pagination-bullet-inactive-color:color-mix(in srgb,var(--bg-fill-surface) 80%,transparent);--swiper-pagination-color:var(--brand)}.slider-pagination--glass .swiper-pagination-bullet{background:rgba(255,255,255,0.8)}.slider-pagination--glass .swiper-pagination-bullet-active,.slider-pagination--glass .swiper-pagination-bullet-active-main{background:var(--brand)}}.slider-foot{display:flex;flex-direction:column;gap:var(--space-24)}.slider-foot > .slider-pagination--dots,.slider-foot > .slider-pagination-host,.stack > .slider-pagination-host{margin-top:0}.slider-pagination--dots{display:none;position:static !important;left:auto !important;bottom:auto !important;top:auto !important;justify-content:center;align-items:center;flex-wrap:nowrap;gap:var(--space-12);min-height:var(--slider-dot-size);margin-top:var(--space-24);margin-inline:auto;padding-inline:2px;box-sizing:border-box;pointer-events:auto;opacity:1 !important;z-index:1;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100% !important;max-width:100%;transform:none !important;--slider-dot-size:18px;--slider-dot-core-size:10px;--slider-dot-inactive-size:calc(var(--slider-dot-size) - 4px);--slider-dot-ring-active:var(--brand-soft);--slider-dot-ring-inactive:color-mix(in srgb,var(--brand) 30%,var(--bg-fill-surface))}.slider-pagination--dots::-webkit-scrollbar{display:none}.slider-pagination--dots.is-always{display:flex !important}.slider-pagination--dots .swiper-pagination-bullet{position:relative;flex:none;width:var(--slider-dot-size);height:var(--slider-dot-size);border:none;border-radius:50% !important;margin:0 !important;background:transparent;opacity:1 !important;overflow:visible;transform:none !important;transition:background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease}.slider-pagination--dots .swiper-pagination-bullet::before{content:\"\";position:absolute;left:50%;top:50%;width:var(--slider-dot-inactive-size);height:var(--slider-dot-inactive-size);border:none;border-radius:50%;background:var(--slider-dot-ring-inactive);box-sizing:border-box;box-shadow:none;transform:translate(-50%,-50%);transition:background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease}.slider-pagination--dots .swiper-pagination-bullet-active::before{width:var(--slider-dot-size);height:var(--slider-dot-size);border:none;background:var(--slider-dot-ring-active);box-shadow:none}.slider-pagination--dots .swiper-pagination-bullet-active::after{content:\"\";position:absolute;left:50%;top:50%;width:var(--slider-dot-core-size);height:var(--slider-dot-core-size);border-radius:50%;background:var(--brand);transform:translate(-50%,-50%)}@media (max-width:768px){.slider-pagination--dots{display:flex !important}.slider-pagination--dots.swiper-pagination-disabled,.slider-pagination--dots.swiper-pagination-hidden{display:flex !important;opacity:1 !important}}@media (min-width:769px){.slider-pagination--dots:not(.is-always){display:none !important}}.popups{position:relative;z-index:2147483646}.popup{position:fixed;inset:0;z-index:2147483646;display:flex;align-items:center;justify-content:center;padding:var(--space-24) var(--page-gutter);box-sizing:border-box}.popup[hidden]{display:none}.popup:not([hidden]){display:flex}.popup__overlay{position:absolute;inset:0;background:rgba(33,33,33,0.55);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile));opacity:0;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.popup.is-open .popup__overlay{opacity:1}.popup__dialog{--popup-pad-y:var(--space-40);--popup-pad-x:60px;--popup-close-size:44px;--popup-close-inset:12px;position:relative;z-index:1;width:min(100%,1080px);max-height:calc(100vh - (2 * var(--space-24)));overflow:auto;padding:var(--popup-pad-y) var(--popup-pad-x);border-radius:var(--radius);background:var(--bg-fill-surface);box-sizing:border-box;box-shadow:var(--shadow-popup);opacity:0;transform:scale(.96) translateY(14px);transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.popup.is-open .popup__dialog{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.popup__overlay,.popup__dialog{transition:none}.popup:not([hidden]) .popup__overlay,.popup.is-open .popup__overlay{opacity:1}.popup:not([hidden]) .popup__dialog,.popup.is-open .popup__dialog{opacity:1;transform:none}}.popup__dialog--form-result{--popup-pad-x:80px;--popup-pad-y:80px;width:min(100%,525px)}.popup--form-loading{padding:0;pointer-events:none}.popup--form-loading.is-open{pointer-events:auto}.popup-form-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(33,33,33,0.45);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile));opacity:0;transition:opacity .28s cubic-bezier(.22,1,.36,1)}.popup--form-loading.is-open .popup-form-loading{opacity:1}@media (prefers-reduced-motion:reduce){.popup-form-loading{transition:none}.popup--form-loading.is-open .popup-form-loading{opacity:1}}[data-popup-open][aria-busy=\"true\"]{pointer-events:none}.popup-form-result{display:flex;flex-direction:column;align-items:center;gap:44px}.popup-form-result--error{gap:10px}.popup-form-result__body{display:flex;flex-direction:column;align-items:center;gap:44px;width:100%}.popup-form-result__text{margin:0;max-width:365px;text-align:center;color:var(--text-secondary);white-space:pre-line}.popup-form-result__icon{display:grid;place-items:center;width:64px;height:64px;flex-shrink:0}.popup-form-result__icon img{display:block;width:64px;height:64px}.popup-form-result__ok{min-width:120px;padding:var(--space-20) var(--space-40)}.popup__dialog--appointment{--popup-pad-x:60px;--popup-pad-y:60px;--popup-close-inset:20px;--popup-close-size:40px;width:min(100%,1281px)}.popup__dialog--question{width:min(100%,1345px)}.popup__appointment{display:grid;grid-template-columns:minmax(0,1fr) 541px;gap:var(--space-40);align-items:stretch}.popup__appointment-visual{width:100%;max-width:580px;min-height:551px;height:100%;align-self:stretch}.popup__appointment-visual img{display:block;width:100%;height:100%;min-height:inherit;object-fit:cover;object-position:center;border-radius:var(--radius)}.popup__appointment--question .popup__appointment-visual{max-width:644px;min-height:695px}.popup__appointment-main.stack--lg{gap:var(--space-32);min-width:0;width:100%;max-width:541px}.popup__dialog--appointment .popup__head{gap:var(--space-8);padding-right:0}.popup__dialog--appointment .popup__lead{max-width:370px}.popup-form--appointment{gap:var(--space-40)}.popup-form__fields{display:flex;flex-direction:column;gap:var(--space-14);width:100%;max-width:541px}.popup-form--appointment .field--select{position:relative}.popup-form--appointment .field__select{appearance:none;-webkit-appearance:none;padding-right:48px;cursor:pointer;background:var(--bg-fill-surface)}.popup-form--appointment .field__select-icon{position:absolute;right:var(--space-16);bottom:15px;color:var(--text-muted);pointer-events:none}.popup-form--appointment .field{gap:var(--space-8);max-width:541px}.popup-form--question .field{gap:var(--space-8);max-width:541px}.popup-form--question .popup-form__row--split .field{max-width:none}.popup__dialog--appointment .field__label{color:var(--text-primary)}.field__required,.popup-form__consent-required{color:var(--brand)}.popup__dialog--appointment .field__input{min-height:54px;padding:var(--space-18) var(--space-20);border-color:var(--ui-border-strong);background:color-mix(in srgb,var(--bg-fill-surface) 50%,transparent)}.popup-form__legal-block{gap:var(--space-16);max-width:541px}.popup-form__legal{margin:0;color:var(--text-primary)}.popup__dialog--appointment .popup-form__consent-link{color:var(--brand);text-decoration-color:currentColor}.popup-form__consent--rich{gap:var(--space-8);color:var(--text-primary)}.popup__dialog--appointment .popup-form__consent-input{width:20px;height:20px;margin-top:0;border-radius:var(--radius-sm)}.popup-form__consent-copy{gap:var(--space-4);min-width:0}.popup-form__consent-title{color:var(--text-primary)}.popup-form__consent-desc{color:var(--text-muted);font-family:var(--font-body);font-size:var(--text-body-xs);font-weight:400;line-height:var(--lh-body-tight)}.popup-form--appointment .popup-form__submit{width:100%;margin-top:0}.popup-form--appointment .popup-form__submit:disabled{background:var(--ui-divider);color:var(--ui-border-strong);cursor:not-allowed;opacity:1}.popup-form--appointment .popup-form__submit:disabled:hover{background:var(--ui-divider)}.popup-form--question .popup-form__row--split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-14);width:100%}.popup-form--question .field--textarea,.popup-form--review .field--textarea{width:100%}.popup-form--question .field__textarea-wrap,.popup-form--review .field__textarea-wrap{position:relative}.popup-form--question .field__input--comment,.popup-form--review .field__input--comment{min-height:120px;height:120px;resize:vertical;padding-bottom:calc(var(--space-32) + var(--space-8))}.popup-form--question .field__counter,.popup-form--review .field__counter{position:absolute;right:var(--space-14);bottom:var(--space-12);color:var(--ui-border-strong);pointer-events:none}.popup-form--question .popup-form__submit{width:100%;margin-top:0}.popup-form--question .popup-form__submit:disabled{background:var(--ui-divider);color:var(--ui-border-strong);cursor:not-allowed;opacity:1}.popup-form--question .popup-form__submit:disabled:hover{background:var(--ui-divider)}.popup-form.popup-form--review{gap:var(--space-40)}.popup-form--review .popup-form__fields{gap:var(--space-24);max-width:none}.popup-form--review .popup-form__row--split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-20);width:100%}.popup-form--review .popup-form__row--split .field{max-width:none}.popup-form--review .field{gap:var(--space-16);max-width:none}.popup-form--review .field--rating,.popup-form--review .field--topic{gap:0}.popup-form--review .field__input{min-height:54px;padding:var(--space-18) var(--space-20);border-color:var(--ui-border-strong);background:color-mix(in srgb,var(--bg-fill-surface) 50%,transparent)}.popup-form--review .popup-form__section-label{padding:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:-0.01em}.popup-form--review .popup-form__legal-block{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-24);max-width:none}.popup-form--review .popup-form__consent{max-width:410px;gap:var(--space-24);color:var(--ui-border-strong)}.popup-form--review .popup-form__consent-input{width:20px;height:20px;margin-top:0}.popup-form--review .popup-form__submit{width:auto;margin-top:0;padding:var(--space-20) var(--space-40)}.popup__dialog--review-form{--popup-pad-x:60px;--popup-pad-y:60px;--popup-close-inset:20px;width:min(100%,819px)}.popup__dialog--review-form .popup__head{padding-right:0;text-align:center}.popup__dialog--review-form .popup__title{color:var(--text-primary)}.popup__review-form{width:100%}.field--rating,.field--topic{margin:0;padding:0;border:0;min-width:0;gap:0}.field--rating legend,.field--topic legend{float:none;display:block;width:100%;margin:0 0 var(--space-16)}.rating-picks,.topic-picks{display:flex;align-items:stretch;width:100%}.rating-picks{flex-wrap:nowrap;justify-content:space-between;gap:var(--space-14)}.topic-picks{flex-wrap:wrap;gap:var(--space-16)}.rating-picks__radio,.topic-picks__radio{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rating-picks__item{display:flex;flex:1 1 0;min-width:0;width:auto;box-sizing:border-box;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-10) var(--space-8);border:1px solid var(--ui-border-default);border-radius:var(--radius);background:var(--bg-fill-surface);color:var(--ui-border-strong);text-align:center;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.rating-picks__icon{display:block;flex:none;width:36px;height:36px;object-fit:contain}.rating-picks__label{width:100%;color:inherit;font-weight:600;line-height:1;white-space:nowrap}.rating-picks__item:hover,.rating-picks__radio:checked + .rating-picks__item,.rating-picks__radio:focus-visible + .rating-picks__item{background:var(--brand-opacity-20);border-color:var(--brand-light);color:var(--brand)}.rating-picks__radio:focus-visible + .rating-picks__item{outline:2px solid var(--brand);outline-offset:2px}.topic-picks__item{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-10);min-height:48px;padding:var(--space-12) var(--space-18);border:1px solid color-mix(in srgb,var(--brand-light) 42%,var(--ui-border-soft));border-radius:var(--radius-xl);background:var(--bg-fill-surface);color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.topic-picks__icon{display:block;flex:none;width:24px;height:24px;color:inherit}.topic-picks__icon--mask{background-color:currentColor;-webkit-mask:var(--topic-icon) center \/ contain no-repeat;mask:var(--topic-icon) center \/ contain no-repeat;mask-mode:luminance;-webkit-mask-source-type:luminance}.topic-picks__label{color:inherit;white-space:nowrap}.topic-picks__item:hover,.topic-picks__radio:checked + .topic-picks__item,.topic-picks__radio:focus-visible + .topic-picks__item{background:var(--brand-light);border-color:transparent;color:var(--text-on-brand)}.topic-picks__radio:focus-visible + .topic-picks__item{outline:2px solid var(--brand);outline-offset:2px}.popup__dialog--review{--popup-pad-x:var(--space-40);--popup-pad-y:var(--space-40);width:min(100%,661px)}.popup__dialog--media{width:min(100%,calc(960px + 2 * 60px))}.popup__body{width:100%;min-width:0}.popup__body.stack--md{gap:var(--space-16)}.popup__close{position:absolute;top:var(--popup-close-inset);right:var(--popup-close-inset);z-index:2;display:inline-flex;align-items:center;justify-content:center;width:var(--popup-close-size);height:var(--popup-close-size);padding:0;border:none;border-radius:0;background:transparent;color:var(--text-muted);cursor:pointer;transition:color .16s ease,transform .16s ease}.popup__close:hover,.popup__close:focus-visible{color:var(--text-secondary)}.popup__close.is-pressed{transform:scale(.96)}.popup__close-icon{display:block;flex:none;width:26px;height:26px}.popup__head{padding-right:calc(var(--popup-close-size) + var(--space-8))}.popup__title{margin:0;color:var(--text-primary)}.popup__lead{margin:0;color:var(--text-secondary)}.popup-form{display:flex;flex-direction:column;gap:var(--space-16)}.popup-form__submit{margin-top:var(--space-8)}.popup-form__submit:disabled,.popup-form__submit.is-consent-pending{cursor:not-allowed}.popup-form.is-sent .popup-form__submit{opacity:.6;pointer-events:none;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--space-8)}.field__label{color:var(--text-secondary)}.field__input{width:100%;min-height:52px;padding:var(--space-14) var(--space-16);border:1px solid var(--ui-border-soft);border-radius:var(--radius);background:var(--bg-fill-surface);box-sizing:border-box;font:inherit;color:var(--text-primary);transition:border-color .16s ease}.field__input::placeholder{color:var(--text-muted);opacity:1}.field__input[type=\"search\"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-right:var(--space-4);cursor:pointer;background-color:var(--text-muted);-webkit-mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-width='1.5' d='M4 4l8 8M12 4 4 12'\/%3E%3C\/svg%3E\");mask-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-width='1.5' d='M4 4l8 8M12 4 4 12'\/%3E%3C\/svg%3E\");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:10px 10px;mask-size:10px 10px}.field__input[type=\"search\"]::-webkit-search-cancel-button:hover,.field__input[type=\"search\"]:focus::-webkit-search-cancel-button{background-color:var(--text-secondary)}select.field__input:has(option[value=\"\"]:checked){color:var(--text-muted)}select.field__input option{color:var(--text-primary)}.field__input:focus,.field__input:focus-visible{outline:2px solid var(--focus-ring) !important;outline-offset:-2px;border-color:var(--focus-ring)}.popup-form--submit-attempted .field__input:invalid{border-color:color-mix(in srgb,#b42318 72%,var(--ui-border-soft))}.popup-form--submit-attempted .field__input:invalid:focus{border-color:color-mix(in srgb,#b42318 85%,var(--brand))}.popup-form--submit-attempted .popup-form__consent:has(.popup-form__consent-input:invalid){color:color-mix(in srgb,#b42318 55%,var(--text-primary))}.popup-form--submit-attempted .popup-form__consent-input:invalid{outline:2px solid color-mix(in srgb,#b42318 72%,transparent);outline-offset:2px}.popup-form__submit.is-consent-pending{background:var(--ui-divider);color:var(--ui-border-strong);opacity:1;cursor:not-allowed}.popup-form__submit.is-consent-pending:hover{background:var(--ui-divider)}.field__input--area{min-height:96px;resize:vertical}.field--stars{margin:0;padding:0;border:0;min-width:0}.field--stars .field__label{margin-bottom:var(--space-8)}.stars-input{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:var(--space-6)}.stars-input__radio{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stars-input__star{display:inline-flex;cursor:pointer;color:var(--rating-accent);opacity:0.32;transition:color .16s ease,opacity .16s ease,transform .16s ease}.stars-input__icon{display:block;width:30px;height:30px;flex:none}.stars-input__radio:checked ~ .stars-input__star,.stars-input__star:hover,.stars-input__star:hover ~ .stars-input__star{color:var(--rating-accent);opacity:1}.stars-input__radio:focus-visible + .stars-input__star{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.popup-form__consent{display:flex;align-items:flex-start;gap:var(--space-10);margin:0;color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-body-sm);font-weight:400;line-height:var(--lh-body-tight)}.popup-form__consent-input{flex:none;width:18px;height:18px;margin-top:2px;box-sizing:border-box;border:1px solid var(--ui-border-soft);border-radius:var(--radius-sm);accent-color:var(--brand);cursor:pointer}.popup-form__consent-text{min-width:0}.popup-form__consent-link{color:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .16s ease,text-decoration-color .16s ease}.popup-form__consent-link:hover,.popup-form__consent-link:focus-visible{color:var(--brand-dark);text-decoration-color:currentColor}.popup__media{display:flex;align-items:center;justify-content:center;width:100%;min-width:0}.popup__media img,.popup__media video,.popup__media iframe{display:block;width:100%;max-width:960px;border:0;border-radius:var(--radius)}.popup__media img{max-height:calc(100vh - 220px);object-fit:contain}.popup__media video,.popup__media iframe{aspect-ratio:960 \/ 540;max-height:calc(100vh - 220px);background:#000}.popup__media-meta{display:flex;flex-direction:column;gap:var(--space-16);width:100%;max-width:960px}.popup__media-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-16)}.popup__media-author{margin:0;color:var(--text-muted)}.popup__media-stars{display:flex;align-items:center;flex:none}.popup__media-service{display:flex;flex-wrap:wrap;gap:var(--space-8);margin:0}.popup__meta-label{color:var(--text-muted);font-weight:600}.popup__meta-value{color:var(--text-secondary);font-weight:600}.popup__review{display:flex;flex-direction:column;gap:var(--space-16);max-width:581px}.popup__review-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-16)}.popup__review-author{margin:0;color:var(--ui-border-strong)}.popup__review-quote{padding-bottom:var(--space-16);border-bottom:1px solid var(--ui-divider)}.popup__review-text{margin:0;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-body-md);font-weight:400;line-height:var(--lh-body)}.popup__review-text.wysiwyg{font-size:inherit;font-family:inherit;line-height:inherit}.popup__review-text.wysiwyg p{margin:0}.popup__review-text.wysiwyg p + p{margin-top:var(--space-16)}.popup__review-meta-row{display:flex;flex-wrap:wrap;gap:var(--space-8);margin:0}.popup__review-meta-label{color:var(--ui-border-strong);font-weight:600}.popup__review-meta-value{color:var(--text-secondary);font-weight:600}.popup__review-foot{display:flex;align-items:center;gap:var(--space-24)}.popup__review-source{display:block;width:auto;max-width:124px;height:21px;object-fit:contain;object-position:left center}.popup__review-date{margin:0;color:var(--ui-border-strong)}@media (max-width:1280px){.popup__dialog--appointment{--popup-pad-x:var(--space-40);--popup-pad-y:var(--space-32);--popup-close-inset:var(--space-16);--popup-close-size:40px;padding:calc(var(--popup-close-size) + (2 * var(--popup-close-inset))) var(--popup-pad-x) var(--popup-pad-y)}.popup__dialog--appointment .popup__close{background:var(--bg-fill-surface)}.popup__appointment{grid-template-columns:minmax(0,1fr);gap:var(--space-32)}.popup__appointment-visual{max-width:420px;margin-inline:auto;height:auto;min-height:0;align-self:auto;aspect-ratio:580 \/ 551}.popup__appointment--question .popup__appointment-visual{min-height:0;height:auto;aspect-ratio:644 \/ 695}.popup__appointment-visual img{height:100%;min-height:0}.popup__appointment-main,.popup__appointment-main.stack--lg{max-width:none}.popup__dialog--appointment .popup__lead{max-width:none}.popup-form--appointment .field,.popup-form__fields,.popup-form__legal-block{max-width:none}.popup-form--question .popup-form__row--split{grid-template-columns:minmax(0,1fr)}}@media (max-width:991px){.rating-picks__label{display:none}}@media (max-width:768px){.popup:has(.popup-form),.popup--form-result{padding-left:0;padding-right:0}.popup:has(.popup-form) .popup__dialog,.popup--form-result .popup__dialog{width:100%;max-width:none}.popup__dialog{--popup-pad-y:var(--space-32);--popup-pad-x:var(--space-24);--popup-close-inset:var(--space-8)}.popup__dialog--appointment{--popup-pad-x:var(--space-24);--popup-close-inset:var(--space-12);padding:calc(var(--popup-close-size) + (2 * var(--popup-close-inset))) var(--popup-pad-x) var(--popup-pad-y)}.popup__dialog--appointment .popup__close{background:var(--bg-fill-surface)}.popup__dialog--form-result{--popup-pad-x:var(--space-40);--popup-pad-y:var(--space-40)}.popup-form-result,.popup-form-result__body{gap:var(--space-32)}.popup-form-result--error{gap:var(--space-10)}.popup-form-result__ok{width:100%;max-width:280px}.popup__appointment{gap:var(--space-24)}.popup__appointment-visual{max-width:420px;aspect-ratio:auto;max-height:320px;overflow:hidden}.popup__appointment--question .popup__appointment-visual{max-height:320px}.popup-form--review .popup-form__row--split{grid-template-columns:minmax(0,1fr)}.popup-form--review .popup-form__legal-block{flex-direction:column;align-items:stretch}.popup-form--review .popup-form__consent{max-width:none}.popup-form--review .popup-form__submit{width:100%}.popup__appointment-visual img{height:100%;max-height:320px;min-height:0}.popup__dialog--media{width:min(100%,100%)}label.popup-form__consent,.popup-form__consent-text{font-size:var(--text-min);line-height:var(--lh-body-tight)}.popup__title.megatext-sm{font-size:var(--text-mega-sm);line-height:1.2}}@font-face{font-family:swiper-icons;src:url(data:application\/font-woff;charset=utf-8;base64,\\ d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj\/\/wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA\/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu\/j+W2+MnAzMYDAzaX6QjD6\/4\/\/Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+\/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg\/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4\/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9\/w8UBfEMgLzE\/\/\/\/P\/5\/\/f\/V\/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA\/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP\/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj\/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB\/yIY09An6AH2Bdu\/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z\/PEJ6YOB5hKh4dj3EvXhxPqH\/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN\/d\/gczfEimrE\/fs\/bOuq29Zmn8tloORaXgZgGa78yO9\/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i\/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH\/\/wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv\/H9ezGI6Z5XBAw8CBK\/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow\/P\/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA);font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:\"\";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--swiper-navigation-size:44px}.swiper-button-prev,.swiper-button-next{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size) \/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size) \/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev.swiper-button-hidden,.swiper-button-next.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-prev,.swiper-navigation-disabled .swiper-button-next{display:none!important}.swiper-button-prev svg,.swiper-button-next svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-prev svg,.swiper-rtl .swiper-button-next svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-lock{display:none}.swiper-button-prev:after,.swiper-button-next:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:\"prev\"}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:\"next\"}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity,.2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity,1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:auto;transform:none}.hero-v4__scene-bg > img{aspect-ratio:320 \/ 123}.hero-v4{--hero-v4-feature-h:158px;--hero-v4-feature-overhang:calc(var(--hero-v4-feature-h) \/ 2);--hero-v4-feature-overhang-sm:var(--space-12);position:relative;background-color:var(--bg-fill-page);box-sizing:border-box}.hero-v4__card{position:relative;overflow:hidden;border-radius:var(--radius)}.hero-v4__card.swiper{overflow:hidden}.hero-v4__card .swiper-slide{display:flex;height:auto}.hero-v4__slide{position:relative;flex:1;min-width:0;min-height:738px;background:var(--bg-fill-panel);box-sizing:border-box}.hero-v4__scene{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.hero-v4__scene-foot{position:absolute;inset:0;z-index:1;pointer-events:none}.hero-v4__scene-bg{position:absolute;inset:0;pointer-events:none}.hero-v4__scene-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0.8}.hero-v4__doctor{position:absolute;right:2%;bottom:0;width:min(52%,994px);height:auto;max-height:92%;object-fit:contain;object-position:right bottom;pointer-events:none}@media (min-width:769px){.hero-v4__doctor{right:10%}}.hero-v4__doctor-card{position:absolute;z-index:3;max-width:280px;min-width:0;pointer-events:auto}@media (min-width:1281px){.hero-v4__doctor-card{top:calc(calc(var(--space-48) * 2) + var(--space-24) + var(--space-64));right:max(var(--page-gutter),calc((100% - min(100%,calc(var(--page-max) + 2 * var(--page-gutter)))) \/ 2 + var(--page-gutter)))}}.hero-v4__container{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-40);min-height:738px;padding-top:calc(var(--space-48) * 2);padding-bottom:var(--space-64);box-sizing:border-box}.hero-v4__content{display:grid;grid-template-columns:minmax(0,893px);align-items:start;gap:var(--space-40);padding-top:var(--space-24)}.hero-v4__lead{max-width:893px;min-width:0}.hero-v4__title{margin:0;max-width:893px;color:var(--text-primary)}.hero-v4__subtitle{margin:0;max-width:779px;color:var(--text-muted)}.hero-v4__cta{min-width:320px}.hero-v4__video{display:flex;gap:var(--space-20);align-items:center;max-width:240px;text-decoration:none;color:inherit;cursor:pointer}.hero-v4__play-surface{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;box-sizing:border-box;border:none;border-radius:var(--radius-full);background:transparent;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--text-on-brand)}.hero-v4__play-surface::before{content:\"\";position:absolute;inset:0;border:5px solid var(--brand-opacity-15);border-radius:var(--radius-full);background:transparent;pointer-events:none;transition:transform .16s ease}.hero-v4__play-bg{position:absolute;inset:5px;border-radius:var(--radius-full);background:var(--brand-opacity-40);transition:transform .16s ease}.hero-v4__play-icon{position:absolute;inset:0;z-index:1;display:block;width:9px;height:10px;margin:auto;overflow:visible;pointer-events:none;color:var(--text-on-brand)}.hero-v4__video-label{margin:0;max-width:170px;color:var(--text-primary);transition:color .16s ease}.hero-v4__video:hover .hero-v4__play-surface::before,.hero-v4__video:focus-visible .hero-v4__play-surface::before,.hero-v4__video:hover .hero-v4__play-bg,.hero-v4__video:focus-visible .hero-v4__play-bg{transform:scale(1.04)}.hero-v4__video:hover .hero-v4__video-label,.hero-v4__video:focus-visible .hero-v4__video-label{color:var(--brand-dark)}.hero-v4__doctor-head{padding-bottom:var(--space-16);border-bottom:1px solid var(--ui-divider)}.hero-v4__doctor-name{margin:0 0 var(--space-8);color:var(--text-primary)}a.hero-v4__doctor-name{display:inline;text-decoration:none;transition:color .16s ease}a.hero-v4__doctor-name:hover,a.hero-v4__doctor-name:focus-visible{color:var(--brand-dark)}.hero-v4__doctor-role{margin:0;color:var(--text-secondary)}.hero-v4__doctor-quote{display:flex;gap:var(--space-14);align-items:flex-start;margin:var(--space-16) 0 0;padding:0;border:0}.hero-v4__doctor-quote-icon{flex:none;width:24px;height:24px;color:var(--brand)}.hero-v4__doctor-quote-text{margin:0;color:var(--text-primary)}.hero-v4__features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-16);margin:0;padding:0;list-style:none}.hero-v4__feature{display:grid;grid-template-columns:42px minmax(0,1fr);gap:var(--space-16);align-items:start;min-height:var(--hero-v4-feature-h);padding:var(--space-32) var(--space-16);border:1px solid var(--white);border-radius:var(--radius);background:var(--white-opacity-75);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-sizing:border-box}.hero-v4__feature--no-icon{grid-template-columns:minmax(0,1fr)}.hero-v4__feature-icon{display:flex;align-items:flex-start;justify-content:center;width:42px;height:42px;flex:none}.hero-v4__feature-icon img{display:block;width:42px;height:42px;object-fit:contain}.hero-v4__feature-copy.stack--sm{gap:var(--space-8)}.hero-v4__feature-title{margin:0;color:var(--text-primary);text-transform:uppercase;letter-spacing:var(--ls-btn);line-height:var(--lh-btn)}.hero-v4__feature-text{margin:0;color:var(--text-muted);line-height:var(--lh-body-tight)}.hero-v4__slider-nav{position:absolute;right:var(--page-gutter);bottom:calc(var(--hero-v4-feature-h) + var(--space-32));z-index:5}.hero-v4 .slider-pagination-host{display:none}@media (min-width:1641px){.hero-v4{padding-bottom:var(--hero-v4-feature-overhang)}.hero-v4__card,.hero-v4__card.swiper,.hero-v4__card .swiper-wrapper,.hero-v4__card .swiper-slide,.hero-v4__slide{overflow:visible}.hero-v4__container{padding-bottom:var(--hero-v4-feature-overhang)}.hero-v4__features-host{position:absolute;left:0;right:0;bottom:var(--hero-v4-feature-overhang);z-index:4;transform:translateY(50%)}.hero-v4__slider-nav{bottom:calc(var(--hero-v4-feature-overhang) + var(--space-56))}}@media (min-width:1400px){.hero-v4__slide,.hero-v4__container{min-height:738px}}@media (max-width:1640px){.hero-v4{padding-bottom:0}.hero-v4__slide,.hero-v4__container{min-height:auto}.hero-v4__container{padding-top:var(--space-48);padding-bottom:var(--space-64)}.hero-v4__content{grid-template-columns:minmax(0,793px)}.hero-v4__lead,.hero-v4__title{max-width:693px}.hero-v4__subtitle{max-width:679px}.hero-v4__features-host{position:relative;z-index:4;margin-top:calc(-1 * var(--hero-v4-feature-overhang-sm))}.hero-v4__features{grid-template-columns:repeat(4,minmax(0,1fr))}.hero-v4__doctor{right:18%;width:min(58%,760px)}.hero-v4__slider-nav{bottom:var(--space-24)}}@media (max-width:1440px){.hero-v4__content{grid-template-columns:minmax(0,593px)}.hero-v4__lead,.hero-v4__title{max-width:593px}.hero-v4__subtitle{max-width:579px}.hero-v4__actions{flex-wrap:nowrap;align-items:center}.hero-v4__cta{min-width:0;width:auto;flex:0 1 auto}.hero-v4__video{flex:0 1 auto;min-width:0;max-width:none}}@media (max-width:1280px){.hero-v4__slide{position:relative;display:block;min-height:0;height:auto;padding:var(--space-32) var(--page-gutter) 0;box-sizing:border-box;overflow:hidden}.hero-v4__scene{position:absolute;inset:0;z-index:0}.hero-v4__scene-bg{position:absolute;inset:0;z-index:0}.hero-v4__scene-foot{position:relative;z-index:1;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:var(--space-24);margin-top:var(--space-48);padding:0;pointer-events:none}.hero-v4__container{position:relative;z-index:1;min-height:0;height:auto;padding:0;gap:var(--space-24)}.hero-v4__content{display:block;padding-top:0;max-width:700px}.hero-v4__lead.stack--xl{gap:var(--space-24)}.hero-v4__lead,.hero-v4__title,.hero-v4__subtitle{max-width:none}.hero-v4__doctor-card{position:relative;align-self:center;left:auto;right:auto;bottom:auto;top:auto;width:auto;max-width:280px;margin:0;transform:none;pointer-events:auto}.hero-v4__doctor{position:relative;display:block;align-self:flex-end;right:auto;bottom:auto;width:min(52vw,580px);max-height:none;margin:0;object-fit:contain;object-position:right bottom;pointer-events:none}.hero-v4__features-host{margin-top:var(--space-24)}.hero-v4__features{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-v4__feature{min-height:0}}@media (max-width:992px){.hero-v4__slide,.hero-v4__container{min-height:auto}.hero-v4__lead{max-width:none}.hero-v4__title,.hero-v4__subtitle{max-width:none}.hero-v4__slider-nav{bottom:var(--space-24)}}@media (max-width:768px){.hero-v4{padding-bottom:0}.hero-v4__slide{position:relative;display:block;min-height:0;height:auto;padding:0;overflow:hidden}.hero-v4__scene{position:absolute;inset:0;z-index:0}.hero-v4__scene-bg{position:absolute;inset:0;z-index:0}.hero-v4__container{position:relative;z-index:1;min-height:0;padding:var(--space-32) var(--page-gutter) 0;gap:var(--space-24)}.hero-v4__content{display:block;padding-top:0;gap:var(--space-24)}.hero-v4__scene-foot{position:relative;z-index:1;flex-direction:column;align-items:flex-end;margin-top:var(--space-56);padding:0 var(--page-gutter);gap:var(--space-12)}.hero-v4__doctor-card{align-self:flex-start;max-width:min(280px,calc(100% - 2 * var(--page-gutter)))}.hero-v4__doctor{display:block;width:min(100%,520px)}.hero-v4__features{grid-template-columns:1fr}.hero-v4__slider-nav{display:none}.hero-v4 .slider-pagination-host{display:flex;position:relative;z-index:3;margin-top:var(--space-16)}.hero-v4__slider-pagination.slider-pagination--dots{position:static !important;left:auto !important;bottom:auto !important;pointer-events:auto}}html:has(.benefits-v1),.page:has(.benefits-v1){overflow-x:clip}.benefits-v1{position:relative;box-sizing:border-box;overflow:visible}.benefits-v1__decor{position:absolute;left:-368px;bottom:-178px;z-index:0;display:block;width:1289px;height:537px;max-width:none;object-fit:contain;pointer-events:none;opacity:0.5;transform:rotate(-3.62deg);transform-origin:center center}.benefits-v1 > .container{position:relative;z-index:1}.benefits-v1__grid{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-64)}.benefits-v1:has(.benefits-v1__article) .benefits-v1__grid{align-items:flex-end}.benefits-v1__left{display:flex;flex-direction:column;gap:var(--space-48);flex:0 1 750px;min-width:0;max-width:750px}.benefits-v1__lead{min-width:0}.benefits-v1__eyebrow{color:var(--text-muted)}.benefits-v1__title{margin:0;color:var(--text-primary)}.benefits-v1__subtitle{margin:0;max-width:633px;color:var(--text-secondary)}.benefits-v1__cards{display:flex;flex-direction:column;gap:var(--space-8);flex:0 1 799px;min-width:0;max-width:799px;width:100%;margin:0;padding:0;list-style:none}.benefits-v1__card{display:flex;gap:var(--space-32);align-items:flex-start;padding:var(--space-24);border:1px solid var(--ui-border-default);border-radius:var(--radius);background:transparent;box-sizing:border-box}.benefits-v1__card--no-icon{gap:0}.benefits-v1__icon{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;border-radius:var(--radius-sm);color:var(--brand-dark)}.benefits-v1__icon::before{content:\"\";position:absolute;inset:-3px;border-radius:var(--radius-sm);background:var(--bg-fill-page);mix-blend-mode:multiply;pointer-events:none}.benefits-v1__icon-img{position:relative;z-index:1;display:block;width:18px;height:19px;object-fit:contain}.benefits-v1__card-body{min-width:0}.benefits-v1__card-title{margin:0;color:var(--text-primary)}.benefits-v1__card-text{margin:0;color:var(--text-secondary)}.benefits-v1__article{display:flex;align-items:flex-start;gap:var(--space-28)}.benefits-v1__article--no-icon{gap:0}.benefits-v1__article-icon{display:flex;align-items:center;justify-content:center;flex:none;width:88px;height:88px;border-radius:var(--radius-full);background:var(--bg-fill-panel)}.benefits-v1__article-icon img{display:block;width:38px;height:38px}.benefits-v1__article-body{min-width:0}.benefits-v1__article-title{margin:0;color:var(--text-primary)}.benefits-v1__article-text{margin:0;color:var(--text-secondary)}.benefits-v1__article-link{color:var(--text-secondary)}.benefits-v1__article-link:hover,.benefits-v1__article-link:focus-visible{color:var(--brand-dark)}@media (max-width:1200px){.benefits-v1__grid,.benefits-v1:has(.benefits-v1__article) .benefits-v1__grid{flex-direction:column;align-items:stretch;gap:var(--space-32)}.benefits-v1__left,.benefits-v1__cards{flex:1 1 auto;max-width:none;width:100%}.benefits-v1__subtitle{max-width:none}.benefits-v1__decor{left:-173px;bottom:-88px;width:min(1289px,160vw);height:auto;aspect-ratio:1289 \/ 537}}@media (max-width:768px){.benefits-v1__decor{left:-115px;bottom:-53px}.benefits-v1__article{gap:var(--space-16)}.benefits-v1__article-icon{width:64px;height:64px}.benefits-v1__article-icon img{width:28px;height:28px}.benefits-v1__card{gap:var(--space-16);padding:var(--space-16)}.benefits-v1__icon{width:40px;height:40px}.benefits-v1__icon-img{width:16px;height:17px}}.our-approach-v1{position:relative;z-index:1;box-sizing:border-box;overflow-x:clip}.page > section:has(+ .our-approach-v1){position:relative;z-index:0}.page > section[class*=\"hero-v\"]:has(+ .our-approach-v1){z-index:2}.our-approach-v1__texture{position:absolute;inset:0;z-index:0;pointer-events:none;background-size:cover;background-position:center;background-repeat:no-repeat}.our-approach-v1__decor{position:absolute;left:-130px;top:-64px;display:block;width:676px;height:auto;aspect-ratio:976.598 \/ 1035;object-fit:contain;pointer-events:none;z-index:0;transform:rotate(14.63deg);transform-origin:50% 50%;opacity:0.8}.our-approach-v1 > .container{position:relative;z-index:1}.our-approach-v1__top{display:grid;grid-template-columns:minmax(0,644px) minmax(0,797px);gap:var(--space-64);align-items:start}.our-approach-v1__top--no-media{grid-template-columns:minmax(0,644px)}.our-approach-v1__lead{min-width:0}.our-approach-v1__eyebrow{color:var(--text-muted)}.our-approach-v1__title{margin:0;color:var(--text-primary)}.our-approach-v1__subtitle{margin:0;max-width:617px;color:var(--text-secondary)}.our-approach-v1__media{min-width:0;border-radius:var(--radius);overflow:hidden}.our-approach-v1__media-img{display:block;width:100%;height:auto;aspect-ratio:797 \/ 377;object-fit:cover}.our-approach-v1__steps{display:grid;grid-template-columns:repeat(5,minmax(0,278px));justify-content:space-between;gap:var(--space-32);margin:var(--space-40) 0 0;padding:0;list-style:none}.our-approach-v1__step{min-width:0}.our-approach-v1__step-num{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--brand);margin-bottom:var(--space-12)}.our-approach-v1__step-i{font-weight:600}.our-approach-v1__step-slash{position:relative;top:var(--space-6);line-height:1}.our-approach-v1--steps-num-badge{--our-approach-v1-step-badge-size:40px}.our-approach-v1--steps-num-badge .our-approach-v1__step-num{align-items:center;justify-content:center;width:var(--our-approach-v1-step-badge-size);height:var(--our-approach-v1-step-badge-size);border-radius:var(--radius);background:var(--brand-surface-soft);gap:0}.our-approach-v1--steps-num-badge .our-approach-v1__step-slash{display:none}.our-approach-v1--steps-num-badge .our-approach-v1__step-i{font-size:var(--text-body-md);font-weight:600;line-height:var(--lh-body)}.our-approach-v1__step-body{gap:var(--space-12)}.our-approach-v1__step-title{margin:0;color:var(--text-primary)}.our-approach-v1__step-text{margin:0;color:var(--text-secondary)}.our-approach-v1__cta{margin-top:var(--space-64);border-radius:var(--radius);background:var(--white-opacity-50);padding:var(--space-32) var(--space-40);box-sizing:border-box}.our-approach-v1__cta-grid{display:grid;grid-template-columns:minmax(0,760px) minmax(0,519px);gap:var(--space-48);align-items:start}.our-approach-v1__cta-eyebrow{color:var(--brand)}.our-approach-v1__cta-title{margin:0;color:var(--text-primary);line-height:var(--lh-mega)}.our-approach-v1__cta-subtitle{margin:0;color:var(--text-secondary)}.our-approach-v1__cta-lead{margin:0;color:var(--text-secondary)}.our-approach-v1__cta-row{display:flex;flex-wrap:wrap;gap:var(--space-24);align-items:center}.our-approach-v1__field{flex:1 1 303px;min-width:260px}.our-approach-v1__input{min-height:54px;padding:var(--space-18) var(--space-20);border-color:var(--ui-border-strong);background:var(--white-opacity-50)}.our-approach-v1__cta-btn{min-height:54px;padding:var(--space-14) var(--space-32)}.our-approach-v1__consent{display:flex;align-items:flex-start;gap:var(--space-18);margin:0;color:var(--text-muted);cursor:pointer}.our-approach-v1__checkbox{width:20px;height:20px;flex:none;margin:0;border-radius:var(--radius-sm);accent-color:var(--brand)}.our-approach-v1__consent-text{margin:0;line-height:var(--lh-body-tight)}.our-approach-v1__consent-link{color:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .16s ease,text-decoration-color .16s ease}.our-approach-v1__consent-link:hover,.our-approach-v1__consent-link:focus-visible{color:var(--brand-dark);text-decoration-color:currentColor}@media (max-width:1360px) and (min-width:1201px){.our-approach-v1__steps{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:start}}@media (max-width:1200px){.our-approach-v1__decor{left:auto;right:-32px;top:0;width:min(300px,68vw)}.our-approach-v1__top{grid-template-columns:1fr;gap:var(--space-32)}.our-approach-v1__subtitle{max-width:none}.our-approach-v1__steps{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:var(--space-32) var(--space-40)}.our-approach-v1__cta-grid{grid-template-columns:1fr;gap:var(--space-32)}}@media (max-width:768px){.our-approach-v1__steps{grid-template-columns:1fr;gap:var(--space-32)}.our-approach-v1__step{display:flex;align-items:flex-start;gap:var(--space-16)}.our-approach-v1__step-num{flex:none;margin-bottom:0}.our-approach-v1__step-body{flex:1 1 auto;min-width:0}.our-approach-v1__cta{padding:var(--space-24)}.our-approach-v1__cta-row{flex-direction:column;align-items:stretch;gap:var(--space-16)}.our-approach-v1__field{flex:none;min-width:0;width:100%}.our-approach-v1__cta-btn{flex:none;width:100%}}.services-v3{box-sizing:border-box}.services-v3--tab-active-soft{--services-v3-tab-active-mark:url('\/assets\/src\/img\/services\/services-v3-tab-active-mark.svg')}.services-v3__eyebrow{color:var(--text-muted)}.services-v3__title{margin:0;max-width:1080px;color:var(--text-primary)}.services-v3__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-40);margin-bottom:var(--space-40)}.services-v3__head-main{flex:1 1 auto;min-width:0;max-width:1080px}.services-v3__head-lead{margin:0;max-width:1080px;color:var(--text-secondary)}.services-v3__all-link{flex:none;padding:var(--space-4) 0;color:var(--text-secondary)}.services-v3__all-link:hover,.services-v3__all-link:focus-visible{color:var(--brand-dark)}.services-v3__body{display:flex;flex-direction:column;gap:0}.services-v3__list{display:flex;flex-direction:column;gap:var(--space-8)}.services-v3__item{display:flex;flex-direction:column}.services-v3__tab[data-services-v3-index=\"0\"]{border-top:0}.services-v3__tab.is-active + .services-v3__panel + .services-v3__tab{border-top-color:transparent}.services-v3__tab{position:relative;z-index:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-24);width:100%;margin:0;padding:var(--space-32) calc(var(--space-40) + var(--space-2));border:0;border-top:1px solid var(--ui-divider);border-radius:0;background:transparent;color:var(--text-secondary);text-align:left;cursor:pointer;box-sizing:border-box;transition:color .35s ease,border-color .35s ease}.services-v3__tab::before{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:var(--radius);background:var(--brand-opacity-15);opacity:0;transition:opacity .2s ease;pointer-events:none}.services-v3__item:first-child .services-v3__tab{border-top:0}.services-v3__tab:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (hover:hover){.services-v3__tab:hover:not(.is-active),.services-v3__tab:focus-visible:not(.is-active){color:var(--brand-dark);border-radius:var(--radius)}.services-v3__tab:hover:not(.is-active)::before,.services-v3__tab:focus-visible:not(.is-active)::before{opacity:1}.services-v3__tab:hover:not(.is-active) .services-v3__tab-arrow,.services-v3__tab:focus-visible:not(.is-active) .services-v3__tab-arrow{opacity:0.75}}.services-v3__tab.is-active{border-top-color:transparent;border-radius:var(--radius)}.services-v3--tab-active-filled .services-v3__tab.is-active{color:var(--text-on-brand);background:var(--brand-light)}.services-v3--tab-active-filled .services-v3__tab.is-active::before{opacity:1;background:var(--brand-light)}.services-v3--tab-active-soft .services-v3__tab.is-active{padding:30px var(--space-32);color:var(--brand);font-weight:500}.services-v3--tab-active-soft .services-v3__tab.is-active::before{opacity:1;background:var(--brand-opacity-15)}.services-v3--tab-active-soft .services-v3__tab.is-active::after{content:\"\";position:absolute;left:-4px;top:50%;width:11px;height:min(90px,100%);transform:translateY(-50%);background:var(--services-v3-tab-active-mark) center \/ contain no-repeat;pointer-events:none}.services-v3__item + .services-v3__item .services-v3__tab{border-top:1px solid var(--ui-divider)}.services-v3__item:has(.services-v3__tab.is-active) + .services-v3__item .services-v3__tab{border-top-color:transparent}.services-v3__tab-label{flex:1 1 auto;min-width:0;margin:0;font-family:var(--font-heading);font-weight:var(--font-weight-heading);font-size:1.17em}.services-v3__tab-arrow{display:flex;align-items:center;justify-content:center;flex:none;width:52px;height:52px;color:var(--text-muted);opacity:0.5;transition:opacity .35s ease,visibility .35s ease}.services-v3__tab-arrow .icon{transform:rotate(45deg)}.services-v3__tab.is-active .services-v3__tab-arrow{opacity:0;visibility:hidden;pointer-events:none}.services-v3__panel{display:flex;flex-direction:column;align-self:start;width:100%}.services-v3__panel[hidden]{display:none !important}.services-v3__panel-inner{display:flex;flex-direction:column;gap:var(--space-28)}.services-v3__item .services-v3__panel-inner{padding:var(--space-24) 0 var(--space-8)}.services-v3__media{border-radius:var(--radius);overflow:hidden}.services-v3__media-img{display:block;width:100%;height:auto;aspect-ratio:800 \/ 592;object-fit:cover;object-position:center center}.services-v3__detail-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-28)}.services-v3__detail-text{flex:1 1 auto;min-width:0;max-width:520px;margin:0;color:var(--text-secondary)}.services-v3__more{flex:none;padding:var(--space-4) 0;color:var(--text-secondary)}.services-v3__more:hover,.services-v3__more:focus-visible{color:var(--brand-dark)}@media (min-width:1201px){.services-v3__list{display:flex;flex-wrap:wrap;column-gap:var(--space-40);row-gap:0;position:relative;align-content:flex-start}.services-v3__item{display:contents}.services-v3__tab{flex:none;width:calc((100% - var(--space-40)) \/ 2);border-top:1px solid var(--ui-divider);border-radius:0}.services-v3__tab[data-services-v3-index=\"0\"]{border-top:0}.services-v3__tab.is-active + .services-v3__panel + .services-v3__tab{border-top-color:transparent}.services-v3__panel{position:absolute;top:0;right:0;width:calc((100% - var(--space-40)) \/ 2);align-self:start;display:flex !important;grid-template-rows:none;transition:none}.services-v3__item .services-v3__panel-inner{padding:0;overflow:visible}}@media (max-width:1200px){.services-v3__head{flex-direction:column;align-items:flex-start;gap:var(--space-24)}.services-v3__detail-foot{flex-direction:column;align-items:flex-start}.services-v3__detail-text{max-width:none}.services-v3__item .services-v3__tab,.services-v3__item:first-child .services-v3__tab,.services-v3__item + .services-v3__item .services-v3__tab{border-top:0;border-radius:var(--radius)}.services-v3__item:has(.services-v3__tab.is-active) + .services-v3__item .services-v3__tab{border-top-color:transparent}.services-v3__item .services-v3__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}.services-v3__item.is-open .services-v3__panel{grid-template-rows:1fr;transition:grid-template-rows .35s ease}.services-v3__item .services-v3__panel[hidden]{display:none !important}.services-v3__item .services-v3__panel-inner{min-height:0;overflow:hidden}}@media (max-width:768px){.services-v3__tab{padding:var(--space-24) var(--space-20)}.services-v3--tab-active-soft .services-v3__tab.is-active{padding:var(--space-24) var(--space-20)}.services-v3__tab-arrow{width:40px;height:40px}}@media (max-width:768px) and (prefers-reduced-motion:reduce){.services-v3__tab,.services-v3__item .services-v3__panel{transition:none}}.cases-v1__img{aspect-ratio:var(--cases-v1-media-aspect)}.cases-v1{--cases-v1-media-aspect:822 \/ 677;box-sizing:border-box}.cases-v1__inner.stack--xl{gap:var(--space-40)}.cases-v1__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-32)}.cases-v1__head-main{flex:1 1 auto;min-width:0;max-width:970px}.cases-v1__head-actions{flex:none}.cases-v1__slider-nav{width:132px;justify-content:space-between}.cases-v1__slider-nav .slider-nav__btn{background:var(--bg-fill-filter-widget);border:1px solid var(--ui-border-soft);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile))}.cases-v1__slider-nav .slider-nav__btn:hover:not(:disabled):not(.swiper-button-disabled){background:var(--white-opacity-75)}.cases-v1__eyebrow{color:var(--text-muted)}.cases-v1__title{margin:0;color:var(--text-primary)}.cases-v1__slider-foot{overflow:hidden}.cases-v1__carousel{width:100%;overflow:hidden;border-radius:var(--radius);isolation:isolate;clip-path:inset(0 round var(--radius));transform:translateZ(0);contain:paint}.cases-v1__slider.swiper{width:100%;overflow:hidden !important;isolation:isolate}.cases-v1__slider .swiper-wrapper{box-sizing:border-box}.cases-v1__slider .swiper-slide{width:100% !important;max-width:100%;flex-shrink:0;box-sizing:border-box;overflow:hidden}.cases-v1__slider.is-settled .swiper-slide:not(.swiper-slide-active){visibility:hidden;pointer-events:none}.cases-v1__slide{width:100%;height:auto;box-sizing:border-box}.cases-v1__panel{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;min-height:560px;border-radius:var(--radius);background:var(--bg-fill-soft);overflow:hidden}.cases-v1__panel--reverse .cases-v1__media{order:-1}.cases-v1__body{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-24);min-width:0;padding:var(--space-48) var(--space-40) var(--space-40);box-sizing:border-box}.cases-v1__body-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-16)}.cases-v1__index{display:flex;align-items:baseline;gap:var(--space-2);margin:0;color:var(--brand)}.cases-v1__index-num{color:var(--brand)}.cases-v1__index-sep{position:relative;top:3px;font-family:var(--font-accent,inherit);font-size:26px;font-weight:500;line-height:1.4;color:var(--brand)}.cases-v1__category{margin:0;color:var(--ui-border-strong);text-align:right}.cases-v1__copy.stack--md{gap:var(--space-16)}.cases-v1__card-title{margin:0;color:var(--text-primary)}.cases-v1__card-text{margin:0;color:var(--text-secondary)}.cases-v1__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-16);align-items:start;margin-top:auto;padding-top:var(--space-24)}.cases-v1__meta-item{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-16);min-width:0;padding-left:var(--space-12);border-left:1px solid var(--ui-border-default)}.cases-v1__meta-label{margin:0;color:var(--text-secondary)}.cases-v1__meta-value{margin:0;color:var(--brand)}.cases-v1__media{--cases-v1-reveal:50%;position:relative;align-self:stretch;width:100%;height:100%;min-height:100%;margin:0;border-radius:var(--radius) 0 0 var(--radius);overflow:hidden;background:var(--bg-fill-panel);user-select:none;box-sizing:border-box}.cases-v1__panel--reverse .cases-v1__media{border-radius:0 var(--radius) var(--radius) 0}.cases-v1__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}.cases-v1__img--after{z-index:0}.cases-v1__img--before{z-index:1;clip-path:inset(0 calc(100% - var(--cases-v1-reveal)) 0 0);transition:filter .2s ease}.cases-v1__media.is-blurred .cases-v1__img--before{filter:blur(5px)}.cases-v1__divider{position:absolute;top:0;bottom:0;left:var(--cases-v1-reveal);width:1px;background:var(--text-on-brand);opacity:1;transform:translateX(-.5px);z-index:2}.cases-v1__badge{position:absolute;top:var(--space-32);padding:var(--space-6) var(--space-10);border-radius:var(--radius-sm);background:var(--dark-opacity-20);color:var(--white);z-index:3}.cases-v1__badge--before{left:var(--space-32)}.cases-v1__badge--after{right:var(--space-32)}.cases-v1__handle{position:absolute;left:var(--cases-v1-reveal);top:50%;width:86px;height:86px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:var(--radius-full);background:transparent;cursor:grab;touch-action:none;z-index:4}.cases-v1__handle:active{cursor:grabbing}.cases-v1__handle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.cases-v1__handle img{display:block;width:100%;height:100%;pointer-events:none}@media (max-width:1600px){.cases-v1__handle{width:60px;height:60px}.cases-v1__badge{top:var(--space-24);padding:var(--space-4) var(--space-8);font-size:var(--text-body-md)}.cases-v1__badge--before{left:var(--space-24)}.cases-v1__badge--after{right:var(--space-24)}}@media (min-width:769px){.cases-v1{--cases-v1-sticky-top:calc(var(--site-nav-h,0px) + var(--space-24));--cases-v1-panel-h:560px}.cases-v1__head-actions{display:none}.cases-v1__slider-foot{overflow:visible}.cases-v1__slider-foot,.cases-v1__carousel,.cases-v1__slider.swiper{overflow:visible !important;border-radius:0;isolation:auto;contain:none;clip-path:none;transform:none}.cases-v1__slider .swiper-wrapper{display:flex;flex-direction:column;gap:0;transform:none !important;padding-bottom:var(--cases-v1-stack-tail,0px)}.cases-v1__slider .swiper-slide,.cases-v1__slide{overflow:visible}.cases-v1__slider .swiper-slide{position:sticky;top:var(--cases-v1-sticky-top);z-index:calc(1 + var(--cases-v1-card-index,0));visibility:visible !important;pointer-events:auto !important}.cases-v1__slider.is-settled .swiper-slide:not(.swiper-slide-active){visibility:visible !important;pointer-events:auto !important}.cases-v1__panel{box-shadow:var(--shadow-brand-soft)}}@media (max-width:1200px){.cases-v1__panel{min-height:560px}.cases-v1__body{padding:var(--space-32) var(--space-24) var(--space-24)}.cases-v1__badge{top:var(--space-24)}.cases-v1__badge--before{left:var(--space-24)}.cases-v1__badge--after{right:var(--space-24)}}@media (max-width:768px){.cases-v1__panel{grid-template-columns:1fr;min-height:0}.cases-v1__panel--reverse .cases-v1__media{order:2}.cases-v1__body{order:1}.cases-v1__media{order:2;align-self:auto;width:100%;height:auto;min-height:0;aspect-ratio:var(--cases-v1-media-aspect);margin:0;border-radius:var(--radius)}.cases-v1__panel--reverse .cases-v1__media{border-radius:var(--radius)}.cases-v1__meta{grid-template-columns:1fr;gap:var(--space-12)}.cases-v1__head{align-items:flex-start}.cases-v1__slider-nav{display:none}.cases-v1__inner.stack--xl{gap:var(--space-32)}.cases-v1__body{padding:var(--space-24) var(--space-20) var(--space-20)}.cases-v1__body-top{align-items:flex-start}.cases-v1__category{font-size:22px}.cases-v1__badge{top:var(--space-12)}.cases-v1__badge--before{left:var(--space-12)}.cases-v1__badge--after{right:var(--space-12)}}@media (min-width:769px){.cases-v1__slider-foot .slider-pagination-host{display:none}}.doctors-v1{--doctors-v1-card-max:343px;--doctors-v1-track-gap:16px;--doctors-v1-mobile-slides-per-view:1.15}@media (min-width:769px){.doctors-v1{--doctors-v1-track-gap:24px}}.doctors-v1__layout{display:grid;grid-template-columns:minmax(0,1fr) min(519px,100%);gap:var(--space-40);align-items:start}.doctors-v1__eyebrow.eyebrow,.doctors-v1__panel-eyebrow.eyebrow{color:var(--text-muted);border-color:var(--ui-border-strong);width:fit-content;max-width:100%}.doctors-v1__title{margin:0;color:var(--text-primary)}.doctors-v1__intro-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-32)}.doctors-v1__lead{flex:1 1 627px;max-width:627px;margin:0;min-width:0;color:var(--text-secondary)}.doctors-v1__head-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--space-12);flex:0 0 378px;width:378px;max-width:100%;margin-left:auto}.doctors-v1__all-link{color:var(--text-secondary)}.doctors-v1__all-link:hover,.doctors-v1__all-link:focus-visible{color:var(--brand-dark)}.doctors-v1__all-link-icon{}.doctors-v1__slider-nav{display:flex;width:132px;flex:none;justify-content:space-between}.doctors-v1__carousel{width:100%;overflow:hidden}.doctors-v1__slider.swiper{overflow:hidden}.doctors-v1__slider .swiper-slide{height:auto;flex-shrink:0;box-sizing:border-box}@media (min-width:769px){.doctors-v1__slider .swiper-slide{width:var(--doctors-v1-card-max)}}.doctors-v1__card{display:flex;flex-direction:column;gap:var(--space-16);width:100%;max-width:var(--doctors-v1-card-max);min-width:0;height:100%;box-sizing:border-box;overflow:hidden;container-type:inline-size}.doctors-v1__card-photo{position:relative;width:100%;aspect-ratio:343 \/ 380;border-radius:var(--radius);overflow:hidden;background-color:var(--bg-fill-panel);background-image:var(--doctors-v1-photo-back);background-repeat:no-repeat;background-position:center;background-size:cover}.doctors-v1__card-img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}.doctors-v1__card-img--has-bg{object-fit:cover;object-position:center}.doctors-v1__badge{position:absolute;left:14px;z-index:2;display:inline-flex;align-items:center;gap:var(--space-4);min-height:40px;padding:0 var(--space-10);border-radius:var(--radius-pill);background:var(--white-opacity-50);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--text-secondary)}.doctors-v1__badge--exp{top:14px}.doctors-v1__badge--rating{top:63px}.doctors-v1__card-photo--no-exp .doctors-v1__badge--rating{top:14px}.doctors-v1__badge-star{width:24px;height:24px;color:var(--rating-accent)}.doctors-v1--badge-border .doctors-v1__badge{background:var(--bg-fill-surface);border:1px solid var(--brand-surface-soft)}.doctors-v1--badge-fill .doctors-v1__badge{background:var(--white);backdrop-filter:none;-webkit-backdrop-filter:none}.doctors-v1__card-body{flex:1 1 auto;min-width:0}.doctors-v1__card-name{display:flex;flex-direction:column;margin:0;color:var(--text-primary)}.doctors-v1__card-name-line{display:block}.doctors-v1__card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-10);margin:0;color:var(--text-muted)}.doctors-v1__meta-dot{flex:none;width:6px;height:6px;border-radius:var(--radius-full);background:var(--text-muted)}.doctors-v1__card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-12);width:100%;max-width:100%;margin-top:var(--space-6);min-width:0}.doctors-v1__card-btn.btn.btn--primary{flex:1 1 auto;min-width:0;max-width:100%;width:auto;min-height:40px;padding:var(--space-8) var(--space-14);font-size:var(--text-body-sm);line-height:var(--lh-btn);letter-spacing:var(--ls-btn);white-space:nowrap;box-sizing:border-box}.doctors-v1__card-more{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-8);padding-block:var(--space-4);text-decoration:none;color:var(--text-secondary);white-space:nowrap}@container (max-width:330px){.doctors-v1__card-actions{flex-direction:column;align-items:stretch}.doctors-v1__card-btn.btn--primary{width:100%}.doctors-v1__card-more{justify-content:flex-start}}.doctors-v1__card-more:hover,.doctors-v1__card-more:focus-visible{color:var(--brand-dark)}.doctors-v1__card-more-icon{flex:none;width:24px;height:24px}.doctors-v1__mobile-actions{display:none}.doctors-v1__all-btn{width:min(260px,100%)}.doctors-v1__panel{align-self:start}@media (min-width:1367px){.doctors-v1__panel{position:sticky;top:calc(var(--site-nav-h,0px) + var(--space-24))}}.doctors-v1__panel-inner{display:flex;flex-direction:column;gap:var(--space-40)}.doctors-v1__panel-top{background:var(--ui-surface-soft);border-radius:var(--radius);padding:27px 38px 35px;box-sizing:border-box}.doctors-v1__panel-bottom{position:relative;background:var(--brand-surface-soft);border-radius:var(--radius);padding:var(--space-56) 38px 48px;box-sizing:border-box}.doctors-v1__panel-features{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-16);min-height:435px;max-width:443px}.doctors-v1__feature-title{margin:0;max-width:300px;color:var(--text-primary)}.doctors-v1__feature-text{margin:0;color:var(--text-secondary);line-height:var(--lh-lead)}.doctors-v1__panel-stats{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-16);max-width:423px;text-align:center}.doctors-v1__stat{display:flex;flex-direction:column;gap:var(--space-12);flex:1 1 0;min-width:0}.doctors-v1__stat-value{margin:0;color:var(--brand)}.doctors-v1__stat-label{margin:0;color:var(--text-secondary)}.doctors-v1__panel-medal{position:absolute;right:22px;top:30px;z-index:2;display:block;width:54px;height:54px;background-color:var(--brand);-webkit-mask:var(--doctors-v1-panel-medal-src) center \/ contain no-repeat;mask:var(--doctors-v1-panel-medal-src) center \/ contain no-repeat;pointer-events:none;transform:translateY(calc(-50% - var(--space-40) \/ 2))}@media (max-width:1366px){.doctors-v1__layout{grid-template-columns:minmax(0,1fr)}.doctors-v1__main{width:100%;min-width:0}.doctors-v1__panel{width:100%;min-height:0}.doctors-v1__panel-features,.doctors-v1__panel-stats{max-width:none}.doctors-v1__panel-features{min-height:0;justify-content:flex-start;gap:var(--space-24)}.doctors-v1__feature-title{max-width:none}}@media (max-width:1366px) and (min-width:992px){.doctors-v1__panel-top{padding:var(--space-40) var(--space-24) var(--space-32)}.doctors-v1__panel-bottom{padding:var(--space-56) var(--space-24) var(--space-32)}.doctors-v1__panel-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-32);min-height:0;justify-content:stretch}.doctors-v1__feature:nth-child(3){grid-column:1}.doctors-v1__panel-medal{right:var(--space-24)}}@media (max-width:991px){.doctors-v1__panel-top{padding:var(--space-40) var(--space-24) var(--space-32)}.doctors-v1__panel-bottom{padding:var(--space-56) var(--space-24) var(--space-32)}.doctors-v1__panel-medal{right:var(--space-24)}}@media (max-width:768px){.doctors-v1__carousel{width:calc(100% + var(--page-gutter));margin-right:calc(-1 * var(--page-gutter))}.doctors-v1__intro-row{gap:var(--space-24)}.doctors-v1__head-actions{display:none}.doctors-v1__card-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-12)}.doctors-v1__card-btn.btn--primary{width:100%;min-width:0}.doctors-v1__card-more{justify-content:flex-start}.doctors-v1__mobile-actions{display:flex;justify-content:center;width:100%}.doctors-v1__panel-inner{gap:var(--space-32)}.doctors-v1__panel-top{padding:var(--space-32) var(--space-16) var(--space-24)}.doctors-v1__panel-bottom{padding:var(--space-24) var(--space-16)}.doctors-v1__panel-features{gap:var(--space-24)}.doctors-v1__panel-stats{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--space-8);text-align:center}.doctors-v1__stat{flex:1 1 0;width:auto;max-width:none;min-width:0;gap:var(--space-8)}.doctors-v1__panel-medal{right:var(--space-16);width:48px;height:48px;top:15px}.doctors-v1__card{max-width:none}}.quiz-v1{position:relative;overflow:hidden;box-sizing:border-box;--quiz-v1-layout-max:1640;--quiz-v1-decor-x:300;--quiz-v1-decor-y:63;--quiz-v1-decor-w:1073;--quiz-v1-decor-h:721}.quiz-v1__figure{position:absolute;left:calc(var(--quiz-v1-decor-x) \/ var(--quiz-v1-layout-max) * 100%);top:calc(var(--quiz-v1-decor-y) \/ var(--quiz-v1-decor-h) * 100%);z-index:1;width:calc(var(--quiz-v1-decor-w) \/ var(--quiz-v1-layout-max) * 100%);max-width:1073px;aspect-ratio:1073 \/ 721;pointer-events:none}.quiz-v1__figure-frame{position:relative;width:100%;height:100%;overflow:hidden}.quiz-v1__figure-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;object-fit:contain;object-position:center bottom}.quiz-v1__layout{display:grid;grid-template-columns:minmax(0,749px) minmax(0,612px);justify-content:space-between;align-items:center;gap:calc(var(--space-64) * 2);min-height:634px;position:relative}.quiz-v1__intro{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-40);min-height:627px;max-width:749px;min-width:0}.quiz-v1__intro-top{min-width:0}.quiz-v1__eyebrow{color:var(--text-muted)}.quiz-v1__title{margin:0;color:var(--text-primary)}.quiz-v1__lead{margin:0;max-width:627px;color:var(--text-secondary)}.quiz-v1__promo{display:flex;align-items:flex-start;gap:var(--space-24);max-width:398px}.quiz-v1__promo-gift{display:flex;align-items:center;justify-content:center;width:50px;height:50px;flex:none}.quiz-v1__promo-gift-img{display:block;width:50px;height:50px;object-fit:contain}.quiz-v1__promo-tag{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;width:fit-content;max-width:100%;padding:var(--space-10) var(--space-12);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--promo-accent) 10%,transparent);color:var(--promo-accent);font-weight:600;letter-spacing:-0.01em;text-transform:uppercase}.quiz-v1__promo-text{margin:0;color:var(--text-secondary);font-weight:500}[data-quiz-v1-intro-part][hidden]{display:none !important}.quiz-v1__title--final{color:var(--text-muted)}.quiz-v1__title--final .accent{color:var(--text-primary)}.quiz-v1__callback{display:flex;align-items:flex-start;gap:var(--space-24);max-width:398px}.quiz-v1__callback-icon{display:flex;align-items:center;justify-content:center;width:50px;height:50px;flex:none}.quiz-v1__callback-icon-svg{display:block;width:50px;height:50px;color:var(--brand)}.quiz-v1__callback-text{margin:0;max-width:309px;color:var(--brand);font-weight:500}.quiz-v1__panel{position:relative;z-index:3;min-width:0;max-width:612px;justify-self:end}.quiz-v1__panel-inner{position:relative;z-index:1;display:flex;flex-direction:column;min-height:627px;padding:var(--space-64) var(--space-64) var(--space-48);border:1px solid var(--ui-surface-soft);border-radius:var(--radius);background:var(--white-opacity-75);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-sizing:border-box}.quiz-v1__step{position:absolute;top:var(--space-32);right:var(--space-32);display:inline-flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-8);border-radius:var(--radius-pill);background:var(--brand-opacity-20);color:var(--brand-dark)}.quiz-v1__form{flex:1 1 auto;min-height:0;margin:0}.quiz-v1__fieldset{margin:0;padding:0;border:0;min-width:0}.quiz-v1__question{margin:0 0 var(--space-8);padding-right:calc(var(--space-48) + var(--space-64));color:var(--text-primary)}.quiz-v1__options{display:flex;flex-direction:column;gap:var(--space-8);width:100%}.quiz-v1__option{display:flex;align-items:center;gap:var(--space-8);width:100%;padding:var(--space-4) var(--space-2) var(--space-4) var(--space-8);border:1px solid var(--ui-border-soft);border-radius:var(--radius-sm);background:transparent;cursor:pointer;box-sizing:border-box;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.quiz-v1__option-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.quiz-v1__option-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex:none}.quiz-v1__option-icon-img{display:block;width:26px;height:26px;object-fit:contain}.quiz-v1__option-label{min-width:0;color:var(--text-primary)}.quiz-v1__option--radio{padding-left:var(--space-8)}.quiz-v1__option-marker{display:flex;align-items:center;justify-content:center;width:20px;height:46px;flex:none;position:relative}.quiz-v1__option-marker::before{content:'';width:20px;height:20px;border:2px solid var(--ui-border-soft);border-radius:50%;box-sizing:border-box;transition:border-color .16s ease,background-color .16s ease}.quiz-v1__option--radio:has(.quiz-v1__option-input:checked) .quiz-v1__option-marker::before{border-color:var(--brand)}.quiz-v1__option--radio:has(.quiz-v1__option-input:checked) .quiz-v1__option-marker::after{content:'';position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:var(--brand);transform:translate(-50%,-50%)}.quiz-v1__option:hover{border-color:var(--brand-border)}.quiz-v1__option:has(.quiz-v1__option-input:checked){border-color:var(--brand-border);background:var(--brand-opacity-15)}.quiz-v1__option:has(.quiz-v1__option-input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}.quiz-v1__actions{margin-top:auto;padding-top:var(--space-24)}.quiz-v1__continue{width:100%;min-height:54px;padding:var(--space-14) var(--space-32)}.quiz-v1__continue:disabled{cursor:not-allowed;opacity:0.55}.quiz-v1__step-panel[hidden]{display:none !important}.quiz-v1__nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-24)}.quiz-v1__back{background:transparent;border:0;padding:var(--space-8) 0;cursor:pointer;color:var(--text-primary)}.quiz-v1__back:hover{color:var(--brand-dark)}.quiz-v1__back:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.quiz-v1__back-icon{transform:rotate(180deg)}.quiz-v1__continue--compact{width:auto;min-width:201px;flex:none}.quiz-v1__fields{width:100%;max-width:429px}.quiz-v1__field{width:100%;min-width:0}.quiz-v1__input.field__input{min-height:54px;padding:18px 20px;border-color:var(--ui-border-strong);background:var(--white-opacity-50);width:100%;box-sizing:border-box}.quiz-v1__lead-actions{width:100%;max-width:429px}.quiz-v1__consent{margin:0}.quiz-v1__consent .popup-form__consent-text{color:var(--text-muted)}.quiz-v1__submit{width:100%;min-height:54px;padding:var(--space-14) var(--space-32)}.quiz-v1__submit:disabled{cursor:not-allowed}.quiz-v1__bonus{display:flex;align-items:flex-start;gap:var(--space-24);margin-top:auto;padding-top:var(--space-24);max-width:459px}.quiz-v1__bonus-visual{position:relative;width:122px;height:109px;flex:none}.quiz-v1__bonus-doctor{position:absolute;left:20px;top:7px;width:102px;height:102px;border-radius:50%;object-fit:cover;display:block}.quiz-v1__bonus-gift{position:absolute;left:0;top:0;width:50px;height:50px;object-fit:contain;display:block}.quiz-v1__bonus-tag{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;width:fit-content;max-width:100%;padding:var(--space-10) var(--space-12);border-radius:var(--radius-pill);background:var(--brand-opacity-20);color:var(--brand-dark);font-weight:600;letter-spacing:-0.01em;text-transform:uppercase}.quiz-v1__bonus-text{margin:0;color:var(--brand);font-weight:500}.quiz-v1__privacy{display:flex;align-items:center;gap:var(--space-12);margin:0;color:var(--text-muted)}.quiz-v1__privacy-icon{flex:none;width:22px;height:24px;color:var(--text-muted)}@media (max-width:1360px){.quiz-v1__layout{grid-template-columns:minmax(0,1fr);justify-content:stretch;min-height:0;gap:var(--space-64)}.quiz-v1__intro{min-height:0;max-width:none}.quiz-v1__panel{max-width:none;justify-self:stretch}.quiz-v1__panel-inner{min-height:0}.quiz-v1__question{padding-right:0}}@media (max-width:1360px) and (min-width:992px){.quiz-v1__layout{grid-template-columns:minmax(0,1fr) minmax(0,min(400px,36vw));grid-template-areas:\"intro-top decor\" \"promo promo\" \"panel panel\";align-items:start;gap:var(--space-64)}.quiz-v1__intro{display:contents;min-height:0}.quiz-v1__intro-top{grid-area:intro-top;position:relative;z-index:2}.quiz-v1__promo{grid-area:promo;position:relative;z-index:2;max-width:none}.quiz-v1__callback{grid-area:promo;position:relative;z-index:2;max-width:none}.quiz-v1__figure{grid-area:decor;position:relative;left:auto;top:auto;width:100%;max-width:none;transform:none;align-self:center;z-index:1}.quiz-v1__panel{grid-area:panel}}@media (max-width:991px){.quiz-v1__figure{display:none}}@media (max-width:768px){.quiz-v1__panel-inner{padding:var(--space-48) var(--space-24) var(--space-32)}.quiz-v1__step{position:static;align-self:flex-start;margin-bottom:var(--space-16)}.quiz-v1__promo{max-width:none}.quiz-v1__callback{max-width:none}}.reviews-v1__video-poster{aspect-ratio:var(--reviews-v1-video-aspect)}.reviews-v1{--reviews-v1-card-max:520px;--reviews-v1-card-height:360px;--reviews-v1-mobile-slides-per-view:1.15;--reviews-v1-quote-lines:4;--reviews-v1-video-aspect:477 \/ 211}.reviews-v1.reviews-v1--card-bg-white .reviews-v1__card{background:var(--white)}.reviews-v1__inner.stack--xl{gap:var(--space-56)}.reviews-v1__eyebrow.eyebrow{color:var(--text-muted)}.reviews-v1__title{margin:0;color:var(--text-primary)}.reviews-v1__lead{margin:0;color:var(--text-secondary)}.reviews-v1__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-48)}.reviews-v1__head-main{flex:1 1 auto;min-width:0;max-width:1080px}.reviews-v1__head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-40);flex:none}.reviews-v1__all-link{color:var(--text-secondary)}.reviews-v1__all-link:hover,.reviews-v1__all-link:focus-visible{color:var(--brand-dark)}.reviews-v1__all-link-icon{}.reviews-v1__slider-nav{width:132px;justify-content:space-between}.reviews-v1__body.stack--xl{gap:var(--space-40)}.reviews-v1__carousel{width:100%;overflow:hidden}.reviews-v1__slider.swiper{overflow:hidden}.reviews-v1__slider .swiper-slide{height:auto;flex-shrink:0;box-sizing:border-box}@media (min-width:769px){.reviews-v1__slider .swiper-slide{width:var(--reviews-v1-card-max)}}.reviews-v1__card{display:flex;flex-direction:column;width:100%;height:var(--reviews-v1-card-height);box-sizing:border-box;border-radius:var(--radius);background:var(--white-opacity-50);overflow:hidden}.reviews-v1__card--text{gap:var(--space-16);padding:18px 15px 20px}.reviews-v1__card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);flex:none}.reviews-v1__rating-head{display:flex;align-items:center;gap:var(--space-8);flex:none}.reviews-v1__rating-label{margin:0;color:var(--text-muted)}.reviews-v1__card-author{margin:0;color:var(--ui-border-strong);text-align:right}.reviews-v1__card-content{flex:1 1 auto;min-height:0;overflow:hidden;gap:var(--space-16)}.reviews-v1__quote-block{display:flex;flex-direction:column;flex:1 1 auto;gap:var(--space-8);min-height:0;padding-bottom:var(--space-16);border-bottom:1px solid var(--ui-divider)}.reviews-v1__quote{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--reviews-v1-quote-lines);flex:none;margin:0;overflow:hidden;color:var(--text-secondary)}.reviews-v1__read-more{display:none;flex:none;align-items:center;min-height:24px;padding:0;border:0;background:none;cursor:pointer;text-align:left;color:var(--text-secondary);font-family:var(--font-body);font-size:1em;font-weight:600;line-height:var(--lh-body-tight)}.reviews-v1__card--text.is-overflow .reviews-v1__read-more{display:inline-flex}.reviews-v1__read-more:hover,.reviews-v1__read-more:focus-visible{color:var(--brand-dark)}.reviews-v1__meta{display:flex;flex-wrap:wrap;gap:var(--space-8);margin:0}.reviews-v1__meta-label{color:var(--ui-border-strong)}.reviews-v1__meta-value{color:var(--text-secondary)}.reviews-v1__details{flex:none}.reviews-v1__card-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);flex:none;margin-top:auto}.reviews-v1__source-logo{display:block;width:auto;max-width:124px;height:21px;object-fit:contain;object-position:left center}.reviews-v1__date{margin:0;color:var(--ui-border-strong)}.reviews-v1__card--video{padding:9px 10px 20px;gap:var(--space-16)}.reviews-v1__video-trigger{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left}.reviews-v1__video-media{position:relative;display:block;overflow:hidden;border-radius:var(--radius);aspect-ratio:var(--reviews-v1-video-aspect)}.reviews-v1__video-poster{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.reviews-v1__video-play{position:absolute;left:50%;top:50%;z-index:2;display:block;width:48px;height:48px;transform:translate(-50%,-50%);pointer-events:none}.reviews-v1__video-play img{display:block;width:100%;height:100%}.reviews-v1__video-foot{padding:0 15px}.reviews-v1__video-author-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-16)}.reviews-v1__video-author{margin:0;color:var(--text-muted)}.reviews-v1__platforms{display:grid;grid-template-columns:minmax(0,451px) minmax(0,1fr);gap:var(--space-40);align-items:start;--reviews-v1-platform-logo-slot:56px;--reviews-v1-platform-rating-slot:30px}.reviews-v1__platforms-title{margin:0;color:var(--text-secondary)}.reviews-v1__leave-review{display:inline-flex;align-items:center;min-height:24px;padding:0;border:0;background:none;cursor:pointer;font:inherit;text-align:left;text-decoration:none;color:var(--text-secondary)}.reviews-v1__leave-review:hover,.reviews-v1__leave-review:focus-visible{color:var(--brand-dark)}.reviews-v1__platforms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:var(--reviews-v1-platform-logo-slot) auto auto;gap:0;width:100%;min-width:0}.reviews-v1__platform{display:grid;grid-column:span 1;grid-row:span 3;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;align-items:center;justify-items:center;row-gap:var(--space-12);min-width:0;min-height:138px;padding:19px 16px 16px;border-left:1px solid var(--ui-border-soft);text-decoration:none;box-sizing:border-box;transition:background-color .16s ease,color .16s ease}@supports not (grid-template-rows:subgrid){.reviews-v1__platforms-grid{grid-template-rows:none}.reviews-v1__platform{grid-row:auto;grid-template-rows:var(--reviews-v1-platform-logo-slot) var(--reviews-v1-platform-rating-slot) auto}}@media (hover:hover){.reviews-v1__platform:hover{background:var(--brand-opacity-15)}}.reviews-v1__platform:focus-visible{background:var(--brand-opacity-15);outline:2px solid var(--brand);outline-offset:-2px}.reviews-v1__platform-logo{grid-row:1;display:block;align-self:center;width:auto;max-width:min(var(--reviews-v1-platform-logo-w,196px),100%);height:auto;max-height:var(--reviews-v1-platform-logo-h,42px);object-fit:contain;object-position:center}.reviews-v1__platform-rating{grid-row:2;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:var(--space-6);width:100%;max-width:100%;min-height:var(--reviews-v1-platform-rating-slot)}.reviews-v1__platform-score{color:var(--text-muted)}.reviews-v1__platform-count{grid-row:3;align-self:start;margin:0;color:var(--ui-border-strong);text-align:center;max-width:100%}.reviews-v1__cta{position:relative;overflow:hidden;border-radius:var(--radius)}.reviews-v1__cta-bg{position:absolute;inset:0;z-index:0}.reviews-v1__cta-pattern{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}.reviews-v1__cta-inner{position:relative;z-index:0;display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-40) var(--space-56);min-height:167px;padding:var(--space-32) var(--space-40);box-sizing:border-box;border-radius:inherit;overflow:hidden}.reviews-v1__cta-inner > :not(.reviews-v1__cta-bg){position:relative;z-index:1}.reviews-v1__cta-icon{display:flex;align-items:center;justify-content:center;flex:none;width:72px;height:72px;border-radius:var(--radius-full);background:var(--white)}.reviews-v1__cta-icon-mark{display:block;width:35px;height:35px;background-color:var(--brand);-webkit-mask:var(--reviews-v1-chat-icon-src) center \/ contain no-repeat;mask:var(--reviews-v1-chat-icon-src) center \/ contain no-repeat}.reviews-v1__cta-copy{flex:1 1 320px;min-width:0;max-width:703px}.reviews-v1__cta-title{margin:0;color:var(--text-on-brand)}.reviews-v1__cta-text{margin:0;color:var(--text-on-brand)}.reviews-v1__cta-actions{flex:none;width:min(355px,100%);min-width:min(100%,280px);margin-left:auto;align-items:center}.reviews-v1__cta-notes{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-16);color:var(--text-on-brand)}.reviews-v1__cta-dot{flex:none;width:6px;height:6px;border-radius:var(--radius-full);background:var(--text-on-brand)}.reviews-v1__mobile-actions{display:none}.reviews-v1__all-btn{width:min(260px,100%)}@media (max-width:1360px){.reviews-v1__platforms{grid-template-columns:1fr;gap:var(--space-32);--reviews-v1-platform-rating-slot:26px}.reviews-v1__platform-rating .stars-rating--lg{--stars-rating-size:26px;--stars-rating-gap:var(--space-4)}}@media (max-width:991px){.reviews-v1__platforms{--reviews-v1-platform-rating-slot:24px}.reviews-v1__platform-rating .stars-rating--lg{--stars-rating-size:24px}.reviews-v1__head{align-items:flex-start;flex-direction:column;gap:0}.reviews-v1__head-actions{width:100%;justify-content:space-between}.reviews-v1__cta-inner{flex-direction:column;align-items:stretch;gap:var(--space-16);min-height:0;padding:var(--space-20) var(--space-16)}.reviews-v1__cta-icon{align-self:center}.reviews-v1__cta-copy{flex:none;width:100%;max-width:none;text-align:center}.reviews-v1__cta-actions{flex:none;width:100%;max-width:none;margin-left:0;gap:var(--space-12)}}@media (max-width:768px){.reviews-v1__inner.stack--xl{gap:var(--space-40)}.reviews-v1__carousel{width:calc(100% + var(--page-gutter));margin-right:calc(-1 * var(--page-gutter))}.reviews-v1__card{max-width:none}.reviews-v1__card--text{padding:var(--space-16)}.reviews-v1__card-top{flex-direction:column;align-items:flex-start}.reviews-v1__card-author{text-align:left}.reviews-v1__read-more{font-size:var(--text-body-sm);font-weight:500;min-height:0}.reviews-v1__card--video{padding:var(--space-10)}.reviews-v1__video-foot{padding:0 var(--space-8)}.reviews-v1__head-actions .reviews-v1__all-link{display:none}.reviews-v1__mobile-actions{display:flex;justify-content:center;width:100%}.reviews-v1__cta-inner{gap:var(--space-16);padding:var(--space-16)}.reviews-v1__cta-icon{width:56px;height:56px;align-self:center}.reviews-v1__cta-icon-mark{width:28px;height:28px}.reviews-v1__cta-copy{text-align:center}.reviews-v1__cta-actions{align-items:stretch}.reviews-v1__platforms{--reviews-v1-platform-rating-slot:22px}.reviews-v1__platforms-grid{grid-template-columns:1fr;grid-template-rows:none}.reviews-v1__platform{grid-row:auto;grid-template-rows:var(--reviews-v1-platform-logo-slot) var(--reviews-v1-platform-rating-slot) auto;min-height:0;border-left:0;border-top:1px solid var(--ui-border-soft);padding-top:var(--space-24)}.reviews-v1__platform:first-child{border-top:0;padding-top:0}.reviews-v1__platforms-lead.stack{flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-16)}.reviews-v1__platforms-title{flex:1 1 auto;min-width:0}.reviews-v1__leave-review{flex:none;align-self:flex-start;margin-left:auto;text-align:right}}.treatment-plans-v1{--treatment-plans-v1-track-gap:40px;--treatment-plans-v1-slide-max:520px;--treatment-plans-v1-slide-min:420px;--treatment-plans-v1-icon-size:90px;--treatment-plans-v1-icon-glyph:39px;--treatment-plans-v1-icon-overlap:calc(var(--treatment-plans-v1-icon-size) \/ 2);--treatment-plans-v1-icon-title-gap:var(--space-16);box-sizing:border-box;overflow-x:clip}.treatment-plans-v1__inner.stack--xl{gap:var(--space-40);min-width:0}.treatment-plans-v1__head{display:flex;align-items:stretch;justify-content:space-between;gap:var(--space-32)}.treatment-plans-v1__head-main{flex:1 1 auto;min-width:0;max-width:1080px}.treatment-plans-v1__title{margin:0;color:var(--text-primary)}.treatment-plans-v1__lead{margin:0;max-width:1080px;color:var(--text-primary)}.treatment-plans-v1__head-aside{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;flex:none;align-self:stretch}.treatment-plans-v1__trust{display:flex;align-items:center;gap:var(--space-24);flex:none;width:fit-content;max-width:381px;padding:var(--space-16);border:1px solid var(--ui-border-default);border-radius:var(--radius);box-sizing:border-box}.treatment-plans-v1__trust-icon{display:block;flex:none;width:26px;height:40px;color:var(--brand)}.treatment-plans-v1__trust-text{margin:0;min-width:0;color:var(--text-secondary)}.treatment-plans-v1__slider-toolbar{display:none;justify-content:flex-end;align-items:center;margin:0}.treatment-plans-v1__slider-foot{min-width:0}.treatment-plans-v1__slider-toolbar.is-visible{display:flex}.treatment-plans-v1__slider-nav{width:132px;justify-content:space-between}.treatment-plans-v1__carousel{width:100%;min-width:0;overflow:hidden}.treatment-plans-v1__slider{width:100%;min-width:0;overflow:hidden}.treatment-plans-v1__slider.swiper{overflow:hidden}.treatment-plans-v1__slider .swiper-slide{width:100%;height:auto;flex-shrink:0;box-sizing:border-box}@media (min-width:769px){.treatment-plans-v1__slider-foot{display:flex;padding-bottom:10px}.treatment-plans-v1__plan-trigger{display:none}.treatment-plans-v1__plan-panel,.treatment-plans-v1__plan-panel[hidden]{display:contents !important}.treatment-plans-v1__plan-panel-inner{display:contents}.treatment-plans-v1__plan-more{display:none !important}.treatment-plans-v1__slider .swiper-slide{width:clamp( var(--treatment-plans-v1-slide-min),calc( (100% - (var(--treatment-plans-v1-visible-count,3) - 1) * var(--treatment-plans-v1-track-gap)) \/ var(--treatment-plans-v1-visible-count,3) ),var(--treatment-plans-v1-slide-max) )}.treatment-plans-v1--scrollable .treatment-plans-v1__slider .swiper-slide{width:var(--treatment-plans-v1-slide-max)}}.treatment-plans-v1__card{position:relative;display:flex;flex-direction:column;height:100%;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-brand-soft);overflow:hidden;box-sizing:border-box}.treatment-plans-v1__card-media{position:relative;z-index:1;flex:none;width:100%;aspect-ratio:520 \/ 290;overflow:hidden;border-radius:var(--radius)}.treatment-plans-v1__card-photo{display:block;width:100%;height:100%;object-fit:cover}.treatment-plans-v1__card-head{position:relative;z-index:3;min-height:var(--treatment-plans-v1-icon-overlap);margin-top:calc(-1 * var(--treatment-plans-v1-icon-overlap));margin-bottom:var(--space-8)}.treatment-plans-v1__card-head--no-icon{min-height:0;margin-top:0;margin-bottom:0;padding-top:var(--space-16)}.treatment-plans-v1__card-head--no-icon .treatment-plans-v1__card-title{padding-top:0;padding-left:0}.treatment-plans-v1__card-icon{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:var(--treatment-plans-v1-icon-size);height:var(--treatment-plans-v1-icon-size);border:2px solid var(--white);border-radius:var(--radius-full);background:var(--brand);overflow:hidden}.treatment-plans-v1__card-icon img{display:block;width:var(--treatment-plans-v1-icon-glyph);height:var(--treatment-plans-v1-icon-glyph);object-fit:contain}.treatment-plans-v1__card-body{position:relative;z-index:2;display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-16);padding:0 var(--space-32) var(--space-32);box-sizing:border-box}.treatment-plans-v1__card-title{margin:0;padding-top:calc(var(--treatment-plans-v1-icon-overlap) + var(--space-16));padding-left:calc(var(--treatment-plans-v1-icon-size) + var(--treatment-plans-v1-icon-title-gap));color:var(--text-secondary)}.treatment-plans-v1__card-summary{margin:0;color:var(--brand)}.treatment-plans-v1__features{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-16);margin-top:var(--space-8)}.treatment-plans-v1__features-divider{height:0;border-top:1px solid var(--ui-divider)}.treatment-plans-v1__features-list{display:flex;flex-direction:column;gap:var(--space-10);margin:0;padding:0;list-style:none}.treatment-plans-v1__feature{display:flex;align-items:flex-start;gap:var(--space-10)}.treatment-plans-v1__feature-icon{display:block;flex:none;width:20px;height:20px;background-color:var(--brand-decor);-webkit-mask:var(--treatment-plans-v1-check-icon-src) center \/ contain no-repeat;mask:var(--treatment-plans-v1-check-icon-src) center \/ contain no-repeat}.treatment-plans-v1__feature-text{margin:0;color:var(--text-secondary)}.treatment-plans-v1__card-foot{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:var(--space-16);row-gap:var(--space-4);align-items:center;margin-top:auto;padding-top:var(--space-8)}.treatment-plans-v1__price{display:contents}.treatment-plans-v1__price-label{grid-column:1;grid-row:1;align-self:start;color:var(--ui-border-strong)}.treatment-plans-v1__price-value{grid-column:1;grid-row:2;margin:0;color:var(--brand)}.treatment-plans-v1__more{grid-column:2;grid-row:2;align-self:center;flex:none;color:var(--text-secondary);letter-spacing:var(--ls-btn)}.treatment-plans-v1__more:hover,.treatment-plans-v1__more:focus-visible{color:var(--brand-dark)}.treatment-plans-v1__more-icon{}.treatment-plans-v1__disclaimer{display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--space-24);max-width:640px;margin:0;color:var(--text-muted)}.treatment-plans-v1__disclaimer-icon{display:block;flex:none;width:20px;height:20px;margin-top:2px}.treatment-plans-v1__disclaimer-text{margin:0;color:inherit}.treatment-plans-v1__plan-trigger{display:none}.treatment-plans-v1__plan-more{display:none}@media (max-width:1200px){.treatment-plans-v1__head{flex-direction:column;align-items:flex-start}.treatment-plans-v1__head-aside{width:100%;min-height:0;flex-direction:row;align-items:center;justify-content:space-between}}@media (max-width:1366px) and (min-width:769px){.treatment-plans-v1{--treatment-plans-v1-icon-size:80px;--treatment-plans-v1-icon-glyph:35px;--treatment-plans-v1-icon-title-gap:var(--space-12)}}@media (max-width:768px){.treatment-plans-v1{--treatment-plans-v1-icon-size:72px;--treatment-plans-v1-icon-glyph:32px;--treatment-plans-v1-icon-title-gap:var(--space-8)}.treatment-plans-v1__inner.stack--xl{gap:var(--space-24)}.treatment-plans-v1__head{flex-direction:column;align-items:stretch;gap:var(--space-16)}.treatment-plans-v1__head-aside{flex-direction:column;align-items:stretch;width:100%}.treatment-plans-v1__trust{align-self:flex-start;max-width:min(381px,100%);padding:var(--space-8) var(--space-16)}.treatment-plans-v1__slider-foot{display:flex;flex-direction:column;gap:var(--space-16);width:100%}.treatment-plans-v1__carousel,.treatment-plans-v1__slider{overflow:visible}.treatment-plans-v1__slider .swiper-wrapper{display:flex;flex-direction:column;gap:var(--space-16);transform:none !important}.treatment-plans-v1__slider .swiper-slide{width:100% !important;height:auto}.treatment-plans-v1__slider-foot .slider-pagination-host{display:none}.treatment-plans-v1__card{background:var(--white);border:1px solid color-mix(in srgb,var(--brand) 6%,var(--bg-fill-surface));border-radius:var(--radius);overflow:hidden;box-shadow:none;transition:border-color .28s ease}.treatment-plans-v1__card.is-open{border-color:var(--brand-decor)}.treatment-plans-v1__plan-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);width:100%;padding:var(--space-24) var(--space-16);border:0;background:transparent;text-align:left;cursor:pointer;color:inherit;box-sizing:border-box}.treatment-plans-v1__plan-trigger:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.treatment-plans-v1__plan-icon{display:flex;align-items:center;justify-content:center;flex:none;width:60px;height:60px;border-radius:var(--radius-full);background:var(--bg-fill-page);overflow:hidden;opacity:.5;transition:background-color .28s ease,border-color .28s ease,opacity .28s ease}.treatment-plans-v1__plan-icon-glyph{display:block;width:34px;height:34px;flex:none;background-color:color-mix(in srgb,var(--brand) 45%,var(--bg-fill-page));transition:background-color .28s ease,opacity .28s ease;-webkit-mask-image:var(--treatment-plans-v1-plan-icon-src);-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;mask-image:var(--treatment-plans-v1-plan-icon-src);mask-position:center;mask-size:contain;mask-repeat:no-repeat}.treatment-plans-v1__card.is-open .treatment-plans-v1__plan-icon{border:1.33px solid var(--bg-fill-surface);background:var(--brand);opacity:1}.treatment-plans-v1__card.is-open .treatment-plans-v1__plan-icon-glyph{background-color:var(--text-on-brand)}.treatment-plans-v1__plan-heading{display:flex;flex:1 1 auto;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-8);min-width:0}.treatment-plans-v1__plan-title{margin:0;color:var(--text-primary);font-size:var(--text-body-lg)}.treatment-plans-v1__plan-price{color:var(--brand);white-space:nowrap;font-size:var(--text-body-md);font-weight:400}.treatment-plans-v1__plan-chevron{flex:none;width:24px;height:24px;color:var(--text-primary);transition:transform .36s cubic-bezier(.33,1,.68,1)}.treatment-plans-v1__card.is-open .treatment-plans-v1__plan-chevron{transform:rotate(180deg)}.treatment-plans-v1__plan-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}.treatment-plans-v1__card.is-open .treatment-plans-v1__plan-panel{grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.33,1,.68,1)}.treatment-plans-v1__plan-panel[hidden]{display:none !important}.treatment-plans-v1__plan-panel-inner{min-height:0;overflow:hidden}.treatment-plans-v1__card-media,.treatment-plans-v1__card-head,.treatment-plans-v1__card-foot .treatment-plans-v1__price,.treatment-plans-v1__more{display:none !important}.treatment-plans-v1__card-body{display:flex;flex-direction:column;align-items:center;gap:var(--space-16);padding:0 var(--space-16) var(--space-24);box-sizing:border-box;opacity:0;transform:translateY(-8px);transition:opacity .24s ease,transform .3s cubic-bezier(.4,0,.2,1)}.treatment-plans-v1__card.is-open .treatment-plans-v1__card-body{opacity:1;transform:translateY(0);transition:opacity .32s ease .04s,transform .42s cubic-bezier(.33,1,.68,1) .04s}.treatment-plans-v1__card-summary{align-self:stretch;margin:0;color:var(--brand)}.treatment-plans-v1__plan-panel .treatment-plans-v1__features{align-self:stretch;margin-top:0;gap:var(--space-8)}.treatment-plans-v1__plan-panel .treatment-plans-v1__feature-text{font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--text-secondary)}.treatment-plans-v1__card-foot{display:flex;align-items:center;justify-content:center;width:100%;margin:0;padding:0}.treatment-plans-v1__plan-more{display:inline-flex !important;width:min(290px,100%);text-transform:uppercase;letter-spacing:var(--ls-btn)}@media (prefers-reduced-motion:reduce){.treatment-plans-v1__card,.treatment-plans-v1__plan-icon,.treatment-plans-v1__plan-icon-glyph,.treatment-plans-v1__plan-chevron,.treatment-plans-v1__plan-panel,.treatment-plans-v1__card-body{transition:none}}.treatment-plans-v1__disclaimer{gap:var(--space-12)}}.brands-v2__logo{aspect-ratio:auto 225 \/ 72}.brands-v2{box-sizing:border-box;--brands-cols:2;--brands-gap-x:42px;--brands-gap-y:var(--space-24);--brands-card-h:148px}.brands-v2__inner{display:grid;grid-template-columns:minmax(0,657px) minmax(0,1fr);align-items:center;gap:var(--space-40)}.brands-v2__copy{min-width:0;align-items:flex-start;text-align:left}.brands-v2__eyebrow{color:var(--text-muted)}.brands-v2__title{margin:0;max-width:657px;color:var(--text-primary)}.brands-v2__subtitle{margin:0;max-width:657px;color:var(--text-secondary)}.brands-v2__carousel-col{width:100%;max-width:798px;justify-self:end;min-width:0;box-sizing:border-box}.brands-v2__slider.swiper{overflow:hidden;box-sizing:border-box}.brands-v2__slider .swiper-slide{width:100%;height:auto;flex-shrink:0;box-sizing:border-box}.brands-v2__slide-track{width:100%;max-width:798px;margin-inline:auto;box-sizing:border-box;padding-inline:var(--space-2)}.brands-v2__grid{display:grid;grid-template-columns:repeat(var(--brands-cols),minmax(0,1fr));gap:var(--brands-gap-y) var(--brands-gap-x);width:100%;margin:0;padding:0;list-style:none;box-sizing:border-box}.brands-v2__card{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:var(--brands-card-h);padding:var(--space-16);border:1px solid var(--brand-border);border-radius:var(--radius);background:var(--white);box-sizing:border-box;overflow:hidden}.brands-v2__logo{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.brands-v2__controls{margin-top:var(--space-24);min-height:calc(var(--space-40) + var(--space-4))}.brands-v2__controls .slider-nav__btn{flex:none;width:calc(var(--space-40) + var(--space-4));height:calc(var(--space-40) + var(--space-4));box-sizing:border-box}.brands-v2__controls .slider-nav__btn--next .brands-v2__arrow{transform:scaleX(-1)}@media (min-width:769px) and (max-width:1600px){.brands-v2{--brands-gap-x:40px;--brands-card-h:136px}}@media (min-width:769px) and (max-width:1366px){.brands-v2{--brands-gap-x:var(--space-32);--brands-gap-y:var(--space-20);--brands-card-h:120px}}@media (min-width:769px) and (max-width:1200px){.brands-v2{--brands-gap-x:28px;--brands-gap-y:var(--space-20);--brands-card-h:112px}}@media (max-width:1200px){.brands-v2__inner{grid-template-columns:1fr;gap:var(--space-24)}.brands-v2__carousel-col{max-width:none;justify-self:stretch}}@media (max-width:768px){.brands-v2{--brands-gap-x:var(--space-16);--brands-gap-y:var(--space-16);--brands-card-h:88px}.brands-v2__copy.stack--md{gap:var(--space-16)}.brands-v2__title,.brands-v2__subtitle{max-width:none}.brands-v2__card{padding:var(--space-14)}.brands-v2__controls{min-height:var(--space-16)}.brands-v2__controls .slider-nav__btn{display:none}}img.utp-numbers-v1__img{aspect-ratio:193 \/ 149}.utp-numbers-v1__info-media > img.utp-numbers-v1__img{aspect-ratio:179 \/ 151}.utp-numbers-v1__icon{aspect-ratio:1 \/ 1}.utp-numbers-v1{--utp-numbers-v1-tile-radius:var(--radius);--utp-numbers-v1-h:clamp(260px,18vw,298px);--utp-numbers-v1-gap-y:clamp(20px,2.35vw,38px);--utp-numbers-v1-gap-x:clamp(16px,2.6vw,42px);--utp-numbers-v1-gap-x-right:clamp(12px,1.7vw,27px);--utp-numbers-v1-col-left:799px;--utp-numbers-v1-col:386px;--utp-numbers-v1-stat-w:286px;--utp-numbers-v1-stat-text-w:180px;box-sizing:border-box}.utp-numbers-v1__layout{display:flex;align-items:stretch;gap:var(--utp-numbers-v1-gap-x)}.utp-numbers-v1__col-left{flex:1 1 0;min-width:0;max-width:var(--utp-numbers-v1-col-left);width:auto;display:flex;flex-direction:column;gap:var(--utp-numbers-v1-gap-y)}.utp-numbers-v1__left-bottom{display:flex;gap:var(--utp-numbers-v1-gap-x-right)}.utp-numbers-v1__col-right{flex:1 1 0;min-width:0;max-width:calc(var(--utp-numbers-v1-col) * 2 + var(--utp-numbers-v1-gap-x-right));width:auto;display:flex;gap:var(--utp-numbers-v1-gap-x-right)}.utp-numbers-v1__right-stack{flex:1 1 var(--utp-numbers-v1-col);min-width:0;width:auto;display:flex;flex-direction:column;gap:var(--utp-numbers-v1-gap-y)}.utp-numbers-v1__tile--title{height:var(--utp-numbers-v1-h)}.utp-numbers-v1__right-stack .utp-numbers-v1__tile{height:var(--utp-numbers-v1-h)}.utp-numbers-v1__left-bottom .utp-numbers-v1__tile{flex:1;min-width:0;height:var(--utp-numbers-v1-h)}.utp-numbers-v1__tile--info{flex:1 1 var(--utp-numbers-v1-col);min-width:0;width:auto;height:calc(var(--utp-numbers-v1-h) * 2 + var(--utp-numbers-v1-gap-y))}.utp-numbers-v1__title-card{position:relative;overflow:visible;border-radius:0;background:transparent;padding:var(--space-40) 0;box-sizing:border-box}.utp-numbers-v1__title{margin:0;color:var(--text-primary)}.utp-numbers-v1__tile{position:relative;overflow:hidden;border-radius:var(--utp-numbers-v1-tile-radius);box-sizing:border-box}.utp-numbers-v1__tile--brand{color:var(--text-on-brand);background:var(--brand-opacity-20)}.utp-numbers-v1__tile--alt{color:var(--text-primary)}.utp-numbers-v1__tile--03{color:var(--brand)}.utp-numbers-v1__bg{position:absolute;inset:0;z-index:0;pointer-events:none}.utp-numbers-v1__tile--alt.utp-numbers-v1__tile--stat::after{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,var(--white-opacity-50),transparent 60%);pointer-events:none}.utp-numbers-v1__idx{position:absolute;top:var(--space-16);right:var(--space-16);width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1px solid var(--brand-decor);color:var(--brand-decor);background:transparent;z-index:4}.utp-numbers-v1__tile--info{display:flex;flex-direction:column;background:var(--bg-fill-soft)}.utp-numbers-v1__tile--brand .utp-numbers-v1__idx{border-color:var(--white-opacity-40);color:var(--white-opacity-40)}.utp-numbers-v1__tile--stat{padding:28px 30px}.utp-numbers-v1__stat{position:relative;z-index:3;display:flex;flex-direction:column;gap:var(--space-12);width:min(var(--utp-numbers-v1-stat-w),100%)}.utp-numbers-v1__tile--01,.utp-numbers-v1__tile--04{--utp-numbers-v1-stat-w:260px}.utp-numbers-v1__tile--03{--utp-numbers-v1-stat-w:100%;--utp-numbers-v1-stat-text-w:100%}.utp-numbers-v1__stat-value{margin:0;color:var(--brand-dark)}.utp-numbers-v1__stat-text{margin:0;width:min(var(--utp-numbers-v1-stat-text-w),100%);color:var(--brand-dark)}.utp-numbers-v1__icon-box{position:absolute;left:30px;bottom:30px;width:63px;height:63px;border-radius:999px;display:flex;align-items:center;justify-content:center;z-index:3}.utp-numbers-v1__icon-box--surface{background:var(--white)}.utp-numbers-v1__icon-box--alt-surface{background:var(--bg-fill-soft)}.utp-numbers-v1__icon-box--bg-fill-soft{background:var(--bg-fill-soft)}.utp-numbers-v1__icon-box--warm{background:var(--bg-fill-page)}.utp-numbers-v1__icon{width:38px;height:38px;display:block}.utp-numbers-v1__stat-media{position:absolute;inset:0;z-index:1;pointer-events:none}.utp-numbers-v1__img{width:100%;height:100%;display:block;object-fit:cover}.utp-numbers-v1__info{position:relative;z-index:3;padding:var(--space-40) var(--space-32) var(--space-16);display:flex;flex-direction:column;gap:var(--space-16);background:var(--bg-fill-soft);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.utp-numbers-v1__info-title{margin:0;color:var(--text-primary);padding-right:calc(24px + var(--space-16))}.utp-numbers-v1__info-text{margin:0;color:var(--text-secondary)}.utp-numbers-v1__info-media{position:relative;z-index:2;margin:0 var(--space-16) var(--space-16);height:302px;border-radius:var(--utp-numbers-v1-tile-radius);overflow:hidden}@media (max-width:1400px){.utp-numbers-v1__layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-24)}.utp-numbers-v1__col-left,.utp-numbers-v1__col-right,.utp-numbers-v1__left-bottom,.utp-numbers-v1__right-stack{display:contents}.utp-numbers-v1__tile--title{grid-column:1 \/ -1;grid-row:1;height:auto}.utp-numbers-v1__tile--03{grid-column:1;grid-row:2}.utp-numbers-v1__tile--01{grid-column:2;grid-row:2}.utp-numbers-v1__tile--05{grid-column:1;grid-row:3;height:auto;min-height:260px}.utp-numbers-v1__tile--04{grid-column:2;grid-row:3}.utp-numbers-v1__tile--02{grid-column:1 \/ -1;grid-row:4;height:auto;display:flex;flex-direction:row;align-items:center;gap:var(--space-24);padding:var(--space-16);box-sizing:border-box}.utp-numbers-v1__info-media{order:-1;flex:0 0 auto;width:min(350px,38%);max-width:350px;height:260px;margin:0}.utp-numbers-v1__info{flex:1 1 0;min-width:0;padding:var(--space-24)}.utp-numbers-v1__tile{height:auto;min-height:260px}}@media (max-width:768px){.utp-numbers-v1__title-card{padding:var(--space-24) 0}.utp-numbers-v1__tile--stat{padding:var(--space-20)}.utp-numbers-v1__icon-box{left:var(--space-20);bottom:var(--space-20)}.utp-numbers-v1__stat{width:auto;max-width:320px}.utp-numbers-v1{--utp-numbers-v1-stat-text-w:200px}.utp-numbers-v1__info{padding:var(--space-24) var(--space-20) var(--space-16)}.utp-numbers-v1__tile--02{flex-direction:column;align-items:stretch;gap:0;padding:0}.utp-numbers-v1__info-media{order:0;width:auto;max-width:none;height:302px;margin:0 var(--space-16) var(--space-16)}}@media (max-width:600px){.utp-numbers-v1__layout{grid-template-columns:1fr}.utp-numbers-v1__tile--title,.utp-numbers-v1__tile--01,.utp-numbers-v1__tile--02,.utp-numbers-v1__tile--03,.utp-numbers-v1__tile--04,.utp-numbers-v1__tile--05{grid-column:auto;grid-row:auto}.utp-numbers-v1__tile--05{width:100%;max-width:100%;min-height:0}}.guarantees-v2{box-sizing:border-box;--guarantees-v2-card-icon-size:69px;--guarantees-v2-card-icon-gap:var(--space-16);--guarantees-v2-banner-min-height:164px}.guarantees-v2__grid{display:grid;grid-template-columns:minmax(0,661fr) minmax(0,800fr);grid-template-rows:auto 1fr;grid-template-areas:\"left aside\" \"form aside\";gap:var(--space-64);align-items:start}.guarantees-v2__left{grid-area:left;min-width:0}.guarantees-v2__aside{grid-area:aside;display:flex;flex-direction:column;gap:var(--space-32);min-width:0;min-height:100%}.guarantees-v2__form-card{grid-area:form;align-self:end;box-sizing:border-box;padding:var(--space-24) 0;max-width:659px}.guarantees-v2__eyebrow{color:var(--text-muted)}.guarantees-v2__title{margin:0;max-width:661px;color:var(--text-primary)}.guarantees-v2__lead{margin:0;max-width:661px;color:var(--text-secondary)}.guarantees-v2__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(var(--space-32) + var(--space-4));flex:1 1 auto}.guarantees-v2__card{position:relative;display:flex;flex-direction:column;min-height:250px;padding:var(--space-32) var(--space-20) var(--space-24);border-radius:var(--radius);background:var(--bg-fill-soft);box-sizing:border-box;overflow:hidden}.guarantees-v2__card-icon{position:absolute;top:var(--space-16);right:var(--space-16);z-index:1;width:var(--guarantees-v2-card-icon-size);height:var(--guarantees-v2-card-icon-size);border-radius:var(--radius-pill);background:var(--brand-opacity-20);display:flex;align-items:center;justify-content:center;flex:none}.guarantees-v2__card-icon img{display:block;width:32px;height:32px;flex:none}.guarantees-v2__card-icon--no-icon{background:none}.guarantees-v2__card-copy{position:relative;z-index:1;min-width:0;max-width:calc(100% - var(--guarantees-v2-card-icon-size) - var(--guarantees-v2-card-icon-gap))}.guarantees-v2__card-copy.stack--sm{gap:var(--space-12)}.guarantees-v2__card-title{margin:0;color:var(--brand-dark);font-weight:700}.guarantees-v2__card-text{margin:0;color:var(--text-primary)}.guarantees-v2__banner{position:relative;display:flex;align-items:center;min-height:var(--guarantees-v2-banner-min-height);padding:var(--space-24) var(--space-40);border-radius:var(--radius);background-color:var(--ui-divider);background-image:var(--guarantees-v2-banner-image);background-repeat:no-repeat;background-size:cover;background-position:center;overflow:hidden;box-sizing:border-box}.guarantees-v2__banner--no-image{background-image:none}.guarantees-v2__banner-text{position:relative;z-index:1;margin:0;max-width:396px;color:var(--brand-dark);font-weight:600}.guarantees-v2__banner--copy-single .guarantees-v2__banner-text{font-size:var(--text-body-md);line-height:1.4}.guarantees-v2__banner-copy{position:relative;z-index:1;min-width:0;max-width:439px}.guarantees-v2__banner-copy.stack--sm{gap:var(--space-10)}.guarantees-v2__banner-title{margin:0;font-family:var(--font-heading);font-weight:600;line-height:1.2;letter-spacing:-0.02em;color:var(--brand-dark)}.guarantees-v2__banner-desc{margin:0;color:var(--text-primary)}.guarantees-v2__form-card-row{display:flex;align-items:flex-start;gap:var(--space-40)}.guarantees-v2__form-card-row--no-icon{gap:0}.guarantees-v2__form-icon{width:69px;height:69px;border-radius:var(--radius-pill);background:var(--brand-opacity-20);display:flex;align-items:center;justify-content:center;flex:none;color:var(--brand)}.guarantees-v2__form-icon-svg{display:block;width:34px;height:34px}.guarantees-v2__form-icon-img{display:block;width:34px;height:34px;object-fit:contain}.guarantees-v2__form-title{margin:0;color:var(--text-primary);font-weight:500}.guarantees-v2__form-text{margin:0;color:var(--text-secondary)}.guarantees-v2__form-copy.stack--sm{gap:var(--space-12)}.guarantees-v2__form{margin-top:var(--space-24);display:flex;flex-direction:column;gap:var(--space-12)}.guarantees-v2__form-controls{display:flex;flex-wrap:wrap;gap:var(--space-12);align-items:center}.guarantees-v2__field{min-width:220px}.guarantees-v2__input{background:var(--bg-fill-surface)}.guarantees-v2__submit{min-height:54px}.guarantees-v2__consent{margin:0}@media (max-width:1600px){.guarantees-v2{--guarantees-v2-card-icon-size:var(--space-56)}.guarantees-v2__card-icon img{width:calc(var(--space-20) + var(--space-6));height:calc(var(--space-20) + var(--space-6))}}@media (max-width:1200px){.guarantees-v2__grid{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:\"left\" \"aside\" \"form\";gap:var(--space-24)}.guarantees-v2__left.stack--md{gap:var(--space-16)}.guarantees-v2__form-card{max-width:none;align-self:stretch;padding:0}.guarantees-v2__aside{min-height:0}}@media (max-width:768px){.guarantees-v2__title{font-size:var(--text-title-sm);line-height:1.35}.guarantees-v2__cards{grid-template-columns:1fr;gap:var(--space-16)}.guarantees-v2__card{min-height:0;--guarantees-v2-card-icon-size:calc(var(--space-40) + var(--space-4));padding:var(--space-24) var(--space-16) var(--space-20)}.guarantees-v2__card-icon{top:var(--space-20);right:var(--space-16)}.guarantees-v2__card-icon img{width:calc(var(--space-20) + var(--space-2));height:calc(var(--space-20) + var(--space-2))}.guarantees-v2__card-title{font-size:var(--text-body-lg);line-height:1.3}.guarantees-v2__banner{min-height:170px;padding:var(--space-20) var(--space-16);background-image:var(--guarantees-v2-banner-image-mobile);background-position:center right}.guarantees-v2__banner--no-image-mobile{background-image:none}.guarantees-v2__banner-text{max-width:none}.guarantees-v2__banner-copy{max-width:min(100%,260px)}.guarantees-v2__banner-title{font-size:var(--text-body-lg);line-height:1.3}.guarantees-v2__form-card-row{gap:var(--space-16)}.guarantees-v2__form-title{font-size:var(--text-body-md);font-weight:500;line-height:1.4}.guarantees-v2__form-text{font-size:var(--text-body-md);line-height:1.4}.guarantees-v2__form-controls{flex-direction:column;align-items:stretch}.guarantees-v2__field{flex:none;min-width:0;width:100%}.guarantees-v2__input{min-height:48px;padding:var(--space-12) var(--space-16)}.guarantees-v2__submit{width:100%}.guarantees-v2__form-icon{width:calc(var(--space-40) + var(--space-4));height:calc(var(--space-40) + var(--space-4))}.guarantees-v2__form-icon-svg{width:calc(var(--space-20) + var(--space-2));height:calc(var(--space-20) + var(--space-2))}}.gallery-v1__hero-img{aspect-ratio:797 \/ 498}.gallery-v1__thumb-img{aspect-ratio:328 \/ 220}.gallery-v1{box-sizing:border-box}.gallery-v1__inner.stack--xl{gap:var(--space-48)}.gallery-v1__top{display:grid;grid-template-columns:minmax(0,725px) minmax(0,797px);justify-content:space-between;align-items:start;gap:clamp(var(--space-24),4vw,calc(var(--space-64) + var(--space-40) + var(--space-12)))}.gallery-v1__copy{max-width:725px;min-width:0;width:100%;align-items:flex-start}.gallery-v1__eyebrow.eyebrow{color:var(--brand)}.gallery-v1__title{margin:0;color:var(--text-primary)}.gallery-v1__lead{margin:0;color:var(--text-secondary);max-width:725px}.gallery-v1__cta{min-width:320px}.gallery-v1__hero{width:100%;max-width:797px;min-width:0;justify-self:end;position:relative;overflow:hidden;border-radius:var(--radius);background:var(--bg-fill-panel);aspect-ratio:797 \/ 498}.gallery-v1__hero.swiper{overflow:hidden;isolation:isolate}.gallery-v1__hero .swiper-wrapper{height:100%}.gallery-v1__hero .swiper-slide{width:100%;max-width:100%;height:100%;flex-shrink:0;overflow:hidden;box-sizing:border-box}.gallery-v1__hero-slide{display:flex;align-items:stretch;width:100%;height:100%;overflow:hidden}.gallery-v1__hero-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .2s ease}.gallery-v1__hero.is-loading .gallery-v1__hero-img{opacity:.35}.gallery-v1__hero-loader{opacity:1;transition:opacity .2s ease}.gallery-v1__hero-loader.is-hidden{opacity:0;pointer-events:none}.gallery-v1__bottom{display:flex;flex-direction:column;gap:var(--space-16)}.gallery-v1__carousel{width:100%;overflow:hidden}.gallery-v1__slider.swiper{overflow:hidden}.gallery-v1__slide{width:318px;height:auto;box-sizing:border-box}.gallery-v1__thumb{display:block;width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer;opacity:.7;transition:opacity .16s ease,transform .16s ease}.gallery-v1__thumb:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.gallery-v1__thumb.is-active{opacity:1}.gallery-v1__thumb.is-pressed{transform:scale(.98)}.gallery-v1__thumb-frame{display:block;width:100%;height:215px;border-radius:var(--radius);overflow:hidden;box-sizing:border-box;border:1px solid transparent}.gallery-v1__thumb.is-active .gallery-v1__thumb-frame{border-color:var(--brand-dark)}.gallery-v1__thumb-inner{display:block;height:100%;padding:calc(var(--space-4) + 1px);box-sizing:border-box}.gallery-v1__thumb-img{display:block;width:100%;height:100%;border-radius:var(--radius);object-fit:cover}.gallery-v1__controls{width:100%}.gallery-v1__controls .slider-nav__btn{flex:none;width:calc(var(--space-40) + var(--space-4));height:calc(var(--space-40) + var(--space-4));box-sizing:border-box}.gallery-v1__controls .slider-nav__btn--next .gallery-v1__arrow{transform:scaleX(-1)}@media (max-width:1360px){.gallery-v1__top{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-32)}.gallery-v1__copy{max-width:none}.gallery-v1__hero{max-width:none;justify-self:stretch}.gallery-v1__cta{min-width:0;width:100%}}@media (max-width:768px){.gallery-v1__inner.stack--xl{gap:var(--space-40)}.gallery-v1__hero{aspect-ratio:797 \/ 498}.gallery-v1__carousel{display:none}.gallery-v1__controls{justify-items:center}.gallery-v1__controls .slider-nav__btn{display:none}}.about-v1{--about-v1-profile-max:660px;--about-v1-profile-radius:var(--radius);--about-v1-fade-height:40px;--about-v1-mobile-collapse-target:320px;box-sizing:border-box}.about-v1__grid{display:grid;grid-template-columns:minmax(0,1fr) min(var(--about-v1-profile-max),42%);gap:var(--space-40);align-items:start}.about-v1--profile-left .about-v1__grid{grid-template-columns:min(var(--about-v1-profile-max),42%) minmax(0,1fr)}.about-v1--profile-left .about-v1__main{order:2}.about-v1--profile-left .about-v1__profile{order:1}.about-v1__main{display:flex;flex-direction:column;gap:var(--space-24);min-width:0;max-width:879px}.about-v1__eyebrow.eyebrow{color:var(--brand)}.about-v1__title{margin:0;max-width:725px;color:var(--text-primary)}.about-v1__lead{margin:0;max-width:879px;color:var(--text-primary)}.about-v1__scroll{position:relative;display:flex;align-items:stretch;gap:var(--space-24);min-width:0}.about-v1__copy-viewport{flex:1 1 auto;min-width:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.about-v1__copy-viewport::-webkit-scrollbar{display:none}.about-v1__copy-viewport:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.about-v1__copy-body{max-width:879px}.about-v1__text{color:var(--text-primary)}.about-v1__text p{margin:0 0 1em}.about-v1__text p:last-child{margin-bottom:0}.about-v1__closing{margin:0;max-width:725px;color:var(--brand)}.about-v1__copy-fade{position:absolute;left:0;right:var(--space-24);bottom:0;height:var(--about-v1-fade-height);pointer-events:none;background:linear-gradient( 180deg,transparent 0%,color-mix(in srgb,var(--section-bg-deep) 18%,transparent) 72%,color-mix(in srgb,var(--section-bg-deep) 32%,transparent) 100% );opacity:1;transition:opacity .2s ease}.about-v1__scroll.is-static .about-v1__copy-fade,.about-v1__scroll.is-at-bottom .about-v1__copy-fade{opacity:0}.about-v1__scrollbar{position:relative;flex:none;width:10px;align-self:stretch;background:transparent;cursor:grab;touch-action:none}.about-v1__scrollbar-thumb{position:absolute;top:0;left:4px;width:2px;min-height:48px;border-radius:var(--radius-pill);background:var(--brand-decor);transform:translateY(0);cursor:grab}.about-v1__scrollbar-thumb:active{cursor:grabbing}.about-v1__scrollbar:active{cursor:grabbing}.about-v1__scroll.is-static .about-v1__scrollbar{visibility:hidden}.about-v1__toggle{display:none;align-items:center;width:fit-content;padding:0;border:0;background:none;cursor:pointer;color:var(--text-primary);text-align:left}.about-v1__toggle:hover,.about-v1__toggle:focus-visible{color:var(--brand-dark)}.about-v1__scroll.is-collapsible + .about-v1__toggle{display:inline-flex}@media (max-width:1200px){.about-v1__scroll.is-collapsible + .about-v1__toggle{display:none !important}}.about-v1__more{width:fit-content;padding-block:var(--space-4);color:var(--text-primary)}.about-v1__more:hover,.about-v1__more:focus-visible{color:var(--brand-dark)}.about-v1__more-icon{}.about-v1__profile{display:flex;flex-direction:column;width:100%;max-width:var(--about-v1-profile-max);min-width:0;align-self:start;box-sizing:border-box}.about-v1__profile-media{position:relative;isolation:isolate;box-sizing:border-box}.about-v1__profile-media::before{content:'';position:absolute;inset:0;background:var(--bg-fill-soft);border-radius:var(--about-v1-profile-radius) var(--about-v1-profile-radius) 0 0;z-index:-1}.about-v1__profile-photo{display:block;width:100%;aspect-ratio:660 \/ 518;object-fit:cover;object-position:center center;border-radius:var(--about-v1-profile-radius)}.about-v1__profile-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-24);padding:var(--space-24) var(--space-40) var(--space-40);background:var(--bg-fill-soft);border-radius:0 0 var(--about-v1-profile-radius) var(--about-v1-profile-radius);box-sizing:border-box}.about-v1__profile-meta{flex:1 1 auto;min-width:0}.about-v1__profile-name{margin:0;color:var(--brand-dark)}.about-v1__profile-role{margin:0;max-width:327px;color:var(--text-primary)}.about-v1__profile-sign{display:block;flex:none;width:min(214px,38%);height:auto;object-fit:contain;object-position:right bottom}@media (min-width:1201px){.about-v1__profile{position:sticky;top:calc(var(--site-nav-h,0px) + var(--space-24))}.about-v1__scroll{height:var(--about-v1-scroll-max);max-height:var(--about-v1-scroll-max);min-height:0;overflow:hidden}.about-v1__copy-viewport{flex:1 1 auto;min-height:0}}@media (max-width:1200px){.about-v1__grid,.about-v1--profile-left .about-v1__grid{grid-template-columns:1fr;gap:var(--space-32);align-items:start}.about-v1--profile-left .about-v1__main,.about-v1--profile-left .about-v1__profile{order:unset}.about-v1__main,.about-v1__profile{max-width:none}.about-v1__profile{width:100%;position:static;top:auto}.about-v1__scroll.is-collapsible{overflow:hidden}.about-v1__scroll.is-collapsible.is-collapsed{max-height:var(--about-v1-mobile-collapsed-max,var(--about-v1-mobile-collapse-target))}.about-v1__scroll.is-collapsible.is-expanded{max-height:none}.about-v1__scroll.is-collapsible.is-collapsed .about-v1__copy-viewport{overflow:hidden}.about-v1__scroll.is-collapsible.is-collapsed .about-v1__copy-fade{display:block;right:0;opacity:1;height:32px;background:linear-gradient( 180deg,transparent 0%,color-mix(in srgb,var(--section-bg-deep) 12%,transparent) 75%,color-mix(in srgb,var(--section-bg-deep) 24%,transparent) 100% )}.about-v1__scroll.is-collapsible.is-expanded .about-v1__copy-fade,.about-v1__scroll:not(.is-collapsible) .about-v1__copy-fade{display:none}.about-v1__scrollbar{display:none}}@media (max-width:768px){.about-v1__copy-head.stack--md,.about-v1__copy-body.stack--md{gap:var(--space-16)}.about-v1__scroll{gap:var(--space-16)}.about-v1__profile-foot{align-items:flex-end;gap:var(--space-16);padding:var(--space-16) var(--space-16) var(--space-24)}.about-v1__profile-role{max-width:none}.about-v1__profile-sign{width:min(140px,38%)}}.news-v2{box-sizing:border-box;--news-v2-grid-gap-x:44px;--news-v2-card-height:288px;--news-v2-thumb-width:290px;--news-v2-content-gap:39px}.news-v2__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:\"head actions\" \"list list\";column-gap:var(--space-32);row-gap:var(--space-40);align-items:end}.news-v2__head{grid-area:head;min-width:0;align-self:end}.news-v2__head-main{max-width:725px}.news-v2__eyebrow{color:var(--brand)}.news-v2__title{margin:0;color:var(--text-primary)}.news-v2__all-link{grid-area:actions;align-self:end;justify-self:end;color:var(--text-secondary)}.news-v2__all-link:hover,.news-v2__all-link:focus-visible{color:var(--brand-dark)}.news-v2__slider-foot{grid-area:list;width:100%;min-width:0;align-self:stretch}.news-v2__pagination-host{display:none}.news-v2__slider .news-v2__grid.swiper-wrapper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-24) var(--news-v2-grid-gap-x);width:100%;min-width:0;transform:none;box-sizing:border-box}.news-v2__slider .swiper-slide{width:auto;height:auto;margin:0;box-sizing:border-box}.news-v2__card{position:relative;display:flex;align-items:stretch;gap:var(--news-v2-content-gap);min-height:var(--news-v2-card-height);min-width:0;border-radius:var(--radius);color:inherit;text-decoration:none;box-sizing:border-box;background:var(--white);box-shadow:var(--shadow-header);transition:box-shadow .16s ease}.news-v2__card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (hover:hover){.news-v2__card:hover{box-shadow:var(--shadow-dropdown)}}.news-v2__card-media{display:block;flex:none;width:var(--news-v2-thumb-width);max-width:36.5%;border-radius:var(--radius);overflow:hidden}.news-v2__card-img{display:block;width:100%;height:100%;min-height:var(--news-v2-card-height);object-fit:cover}.news-v2__card-content{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:var(--news-v2-card-height);padding:var(--space-28) var(--space-32) var(--space-32) 0}.news-v2__card-tags{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-8);width:100%;min-width:0}.news-v2__expert{display:none;flex:0 1 auto;min-width:0;max-width:100%;padding:var(--space-4) 0;box-sizing:border-box;color:var(--brand-dark);font-weight:600;text-align:right}.news-v2__card-title{flex:none;margin:var(--space-18) 0 0;color:var(--text-primary)}.news-v2__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-8) var(--space-16);margin-top:auto;color:var(--ui-border-strong)}.news-v2__tag{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:max-content;max-width:100%;box-sizing:border-box;padding:var(--space-6) var(--space-8);border-radius:var(--radius-pill);color:var(--brand-dark);font-weight:600;line-height:1.4;white-space:nowrap;background:var(--brand-opacity-20)}.news-v2__meta-date{white-space:nowrap}.news-v2__meta-dot{flex:none;width:6px;height:6px;border-radius:var(--radius-full);background:var(--ui-border-default)}.news-v2__meta-read{display:inline-flex;align-items:center;gap:var(--space-8);white-space:nowrap}.news-v2__meta-clock{flex:none;width:24px;height:24px;color:var(--ui-border-strong)}.news-v2__carousel{width:100%;overflow:hidden}.news-v2__slider.swiper{overflow:visible}@media (max-width:1199px){.news-v2{--news-v2-thumb-width:clamp(200px,36.5%,290px);--news-v2-content-gap:var(--space-24)}.news-v2__slider .news-v2__grid.swiper-wrapper{grid-template-columns:1fr}.news-v2__card-content{padding:var(--space-24) var(--space-24) var(--space-24) 0}.news-v2__card-title{margin-top:var(--space-16)}}@media (prefers-reduced-motion:reduce){.news-v2__card{transition:none}}@media (max-width:768px){.news-v2__inner{grid-template-columns:minmax(0,1fr);grid-template-areas:\"head\" \"list\" \"actions\";column-gap:0;row-gap:var(--space-24);align-items:stretch}.news-v2__head-main.stack--md{gap:var(--space-16)}.news-v2__all-link{justify-self:center;align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:0;width:min(260px,100%);min-height:40px;padding:var(--space-12) var(--space-24);border:2px solid var(--brand);border-radius:var(--radius-btn);background:transparent;color:var(--brand-dark);font-size:max(var(--text-min),var(--text-body-sm));font-weight:600;line-height:1;letter-spacing:-0.01em;text-transform:uppercase;text-decoration:none;margin-top:calc(var(--space-16) - var(--space-24));transition:background-color .16s ease}.news-v2__all-link:hover,.news-v2__all-link:focus-visible{background:var(--brand-opacity-15);color:var(--brand-dark)}.news-v2__all-link-icon{display:none}.news-v2__pagination-host{display:flex}.news-v2__slider.swiper{overflow:hidden}.news-v2__slider .news-v2__grid.swiper-wrapper{display:flex;gap:0}.news-v2__slider .swiper-slide{width:100%;flex-shrink:0}.news-v2__card{flex-direction:column;align-items:stretch;gap:var(--space-8);min-height:0;padding:var(--space-8) var(--space-8) var(--space-16)}.news-v2__card-media{width:100%;max-width:none}.news-v2__card-img{height:auto;min-height:0;aspect-ratio:312 \/ 149}.news-v2__card-content{min-height:0;padding:0;gap:var(--space-8)}.news-v2__card-tags{justify-content:space-between}.news-v2__expert{display:block}.news-v2__card-title{margin:0;font-size:var(--text-body);font-weight:500;line-height:var(--lh-body)}.news-v2__meta{margin-top:0;font-size:max(var(--text-min),var(--text-body-sm))}.news-v2__meta-read{gap:var(--space-4)}}@media (max-width:576px){.news-v2__meta{gap:var(--space-8) var(--space-12)}}.promo-v2__featured-media > img{aspect-ratio:3 \/ 2}.promo-v2__card-media > img{aspect-ratio:16 \/ 9}.promo-v2{box-sizing:border-box;--promo-v2-grid-gap-x:clamp(var(--space-24),2.6vw,43px);--promo-v2-grid-gap-y:clamp(var(--space-24),2.5vw,41px);--promo-v2-featured-min-h:clamp(420px,42vw,617px);--promo-v2-card-min-h:clamp(240px,22vw,288px)}.promo-v2__inner.stack--xl{gap:clamp(var(--space-40),4vw,60px)}.promo-v2__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-32)}.promo-v2__head-main{flex:1 1 auto;min-width:0;max-width:940px}.promo-v2__title{margin:0;color:var(--text-primary)}.promo-v2__head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-40);flex:none}.promo-v2__slider-nav{width:132px;justify-content:space-between}.promo-v2__carousel{width:100%;overflow:hidden}.promo-v2__slider{width:100%;overflow:hidden}.promo-v2__slider.swiper{overflow:hidden}.promo-v2__slider .swiper-slide{width:100%;height:auto;flex-shrink:0;box-sizing:border-box}.promo-v2__all-link{color:var(--text-secondary)}.promo-v2__all-link:hover,.promo-v2__all-link:focus-visible{color:var(--brand-dark)}.promo-v2__grid{display:grid;grid-template-columns:minmax(0,936fr) minmax(0,661fr);grid-template-rows:repeat(2,minmax(var(--promo-v2-card-min-h),auto));gap:var(--promo-v2-grid-gap-y) var(--promo-v2-grid-gap-x);align-items:stretch}.promo-v2__featured{position:relative;grid-column:1;grid-row:1 \/ span 2;min-height:var(--promo-v2-featured-min-h);border-radius:var(--radius);overflow:hidden;background:var(--bg-fill-surface)}.promo-v2__featured-media{position:absolute;inset:0}.promo-v2__featured-media img{display:block;width:100%;height:100%;object-fit:cover}.promo-v2__featured-overlay{position:absolute;inset:0 auto 0 0;width:min(745px,80%);background:linear-gradient(90deg,var(--white-opacity-75) 0%,transparent 100%);pointer-events:none}.promo-v2__featured-body{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:var(--space-24);min-height:100%;padding:var(--space-32) 37px 48px;box-sizing:border-box}.promo-v2__badge{position:relative;display:inline-flex;align-items:center;min-height:44px;margin:0;padding-right:var(--space-20);color:var(--promo-warm);text-transform:uppercase;isolation:isolate}.promo-v2__badge::after{content:\"\";position:absolute;left:22px;right:0;top:0;bottom:0;border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:var(--promo-warm-bg);z-index:0;pointer-events:none}.promo-v2__badge-mark{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--promo-warm)}.promo-v2__badge-icon-glyph{display:block;width:22px;height:22px;flex:none;background-color:var(--bg-fill-surface);-webkit-mask:var(--promo-v2-badge-icon-src) center \/ contain no-repeat;mask:var(--promo-v2-badge-icon-src) center \/ contain no-repeat}.promo-v2__badge--no-mark::after{left:0;border-radius:var(--radius-pill)}.promo-v2__badge--no-mark .promo-v2__badge-text{padding-left:var(--space-20)}.promo-v2__badge-text{position:relative;z-index:1;display:flex;align-items:center;min-height:44px;padding:0 0 0 var(--space-12);background:transparent;font-weight:600}.promo-v2__featured-copy{max-width:451px}.promo-v2__featured-title{margin:0;color:var(--text-primary)}.promo-v2__featured-title .accent{color:var(--brand)}.promo-v2__featured-text{margin:0;color:var(--text-primary)}.promo-v2__featured-btn{margin-top:var(--space-8)}.promo-v2__card{position:relative;display:block;min-height:var(--promo-v2-card-min-h);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;box-sizing:border-box;background:var(--bg-fill-surface)}.promo-v2__card--tint{background:var(--brand-surface-soft)}.promo-v2__card--no-image.promo-v2__card--overlay{background:var(--bg-fill-surface)}.promo-v2__card-media{position:absolute;inset:0;pointer-events:none}.promo-v2__card--overlay .promo-v2__card-media img{position:absolute;top:-21.12%;left:-15.67%;width:117.61%;height:149.46%;max-width:none;object-fit:cover}.promo-v2__card--tint .promo-v2__card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}.promo-v2__card-overlay{position:absolute;inset:0 auto 0 0;width:min(471px,72%);background:linear-gradient(90deg,var(--white-opacity-75) 0%,transparent 100%);pointer-events:none}.promo-v2__card-icon{position:absolute;top:28px;left:37px;z-index:2;display:flex;align-items:center;justify-content:center;width:69px;height:69px;border-radius:var(--radius-full);background:var(--white)}.promo-v2__card-icon-img{display:block;width:32px;height:32px;flex:none}.promo-v2__card-icon--no-icon{background:none}.promo-v2__card-body{position:absolute;left:37px;right:37px;bottom:44px;z-index:2;max-width:369px}.promo-v2__card-title{margin:0;color:var(--brand)}.promo-v2__card-text{margin:0;color:var(--text-primary)}@media (hover:hover){.promo-v2__card:hover .promo-v2__card-media img,.promo-v2__card:focus-visible .promo-v2__card-media img{transform:scale(1.04)}.promo-v2__card--overlay .promo-v2__card-media img,.promo-v2__card--tint .promo-v2__card-media img{transition:transform .32s ease}.promo-v2__card:hover .promo-v2__card-title,.promo-v2__card:focus-visible .promo-v2__card-title{color:var(--brand-dark)}.promo-v2__card-title{transition:color .16s ease}}.promo-v2__card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1200px){.promo-v2__head{flex-direction:column;align-items:flex-start}.promo-v2__head-actions{width:100%;justify-content:space-between}.promo-v2__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto minmax(var(--promo-v2-card-min-h),auto)}.promo-v2__featured{grid-column:1 \/ -1;grid-row:1;min-height:clamp(380px,52vw,617px)}.promo-v2__featured-body{padding:clamp(var(--space-24),3vw,var(--space-32)) clamp(20px,3vw,37px) clamp(32px,4vw,48px)}.promo-v2__featured-copy{max-width:min(451px,62%)}.promo-v2__card{grid-row:2;min-height:clamp(240px,28vw,320px)}.promo-v2__card-icon{top:clamp(16px,2.5vw,24px);left:clamp(16px,2.5vw,24px);width:clamp(48px,6vw,56px);height:clamp(48px,6vw,56px)}.promo-v2__card-icon-img{width:clamp(24px,3vw,28px);height:clamp(24px,3vw,28px)}.promo-v2__card-body{left:clamp(16px,2.5vw,24px);right:clamp(16px,2.5vw,24px);bottom:clamp(20px,3vw,32px);max-width:none}}@media (max-width:768px){.promo-v2__inner.stack--xl{display:flex;flex-direction:column;gap:var(--space-24)}.promo-v2__head{display:contents}.promo-v2__head-main{order:1}.promo-v2__slider-foot{order:2}.promo-v2__head-actions{order:3;display:flex;justify-content:center;width:100%}.promo-v2__slider-nav{display:none}.promo-v2__all-link{box-sizing:border-box;width:min(260px,100%);min-height:40px;padding:var(--space-12) var(--space-24);border:2px solid var(--brand);border-radius:var(--radius-btn);background:transparent;color:var(--brand-dark);text-transform:uppercase;font-weight:600;justify-content:center}.promo-v2__all-link:hover,.promo-v2__all-link:focus-visible{background:var(--brand-opacity-15);color:var(--brand-dark)}.promo-v2__all-link-icon{display:none}.promo-v2__slider-foot{overflow-anchor:none}.promo-v2__grid{grid-template-columns:1fr;grid-template-rows:auto;gap:var(--space-16)}.promo-v2__featured{grid-column:1;grid-row:auto}.promo-v2__card{grid-column:1;grid-row:auto}.promo-v2__featured,.promo-v2__card{min-height:254px}.promo-v2__featured-media img{position:absolute;top:-3.33%;left:-3.04%;width:114.35%;height:110.02%;max-width:none;object-fit:cover}.promo-v2__featured-overlay{inset:0;width:100%;background:linear-gradient( -68.28deg,transparent 3.34%,var(--white-opacity-75) 88.99% )}.promo-v2__featured-body{justify-content:flex-start;gap:0;min-height:100%;padding:25px 15px 16px}.promo-v2__featured-copy{order:1;max-width:220px}.promo-v2__badge{order:2;margin-top:auto;min-height:32px;padding-right:var(--space-12)}.promo-v2__badge::after{left:16px}.promo-v2__badge--no-mark::after{left:0}.promo-v2__badge--no-mark .promo-v2__badge-text{padding-left:var(--space-12)}.promo-v2__badge-mark{width:32px;height:32px}.promo-v2__badge-icon-glyph{width:16px;height:16px}.promo-v2__badge-text{min-height:32px;padding-left:var(--space-8)}.promo-v2__featured-btn{display:none}.promo-v2__card--overlay .promo-v2__card-overlay{width:min(142px,43%)}.promo-v2__card--overlay .promo-v2__card-media img{top:-21.51%;left:-18.57%;width:137.37%;height:133.63%}.promo-v2__card-body{top:25px;left:15px;right:auto;bottom:auto;max-width:220px}.promo-v2__card-icon{top:auto;bottom:16px;left:15px;width:44px;height:44px}.promo-v2__card-icon-img{width:20px;height:20px}}.cta-v1 picture > img{aspect-ratio:1920 \/ 762}.cta-v1{box-sizing:border-box}.cta-v1--fullwidth .cta-v1__bg img{object-position:center bottom}.cta-v1--fullwidth .cta-v1__inner{padding:130px 0;grid-template-areas:\"head features\" \"lead .\" \"form .\"}.cta-v1--fullwidth .cta-v1__intro{display:contents}.cta-v1--fullwidth .cta-v1__head{grid-area:head}.cta-v1--fullwidth .cta-v1__lead{grid-area:lead}.cta-v1--fullwidth .cta-v1__features{align-self:end;justify-self:start;position:relative;top:calc(var(--space-64) * 2)}.cta-v1__card{position:relative;overflow:hidden;border-radius:var(--radius);box-sizing:border-box}.cta-v1__bg{position:absolute;inset:0;z-index:0}.cta-v1__bg picture{display:block;width:100%;height:100%}.cta-v1__bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom}.cta-v1__inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);grid-template-areas:\"intro intro\" \"form features\";gap:var(--space-40) var(--space-64);padding:calc(var(--space-64) + var(--space-16)) 87px;box-sizing:border-box}.cta-v1__intro{grid-area:intro;max-width:753px}.cta-v1__head{display:flex;flex-direction:column;align-items:flex-start;max-width:753px}.cta-v1__eyebrow.eyebrow{color:var(--brand);width:fit-content}.cta-v1__title{margin:0;color:var(--text-primary)}.cta-v1__lead{margin:0;color:var(--text-secondary);max-width:682px}.cta-v1__features{grid-area:features;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:30px;align-self:center;justify-self:start}.cta-v1__feature{display:flex;gap:var(--space-16);align-items:center}.cta-v1__feature--no-icon{gap:0}.cta-v1__feature-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-full);background:var(--brand-opacity-20)}.cta-v1__feature-icon img{display:block;width:24px;height:24px}.cta-v1__feature-text{display:block;max-width:260px;color:var(--text-primary)}.cta-v1__form{grid-area:form;width:100%;max-width:720px}.cta-v1__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16);width:100%}.cta-v1__field{position:relative;min-width:0}.cta-v1__input.field__input{min-height:54px;padding:18px 20px;border-color:var(--ui-border-strong);background:var(--white-opacity-50)}.cta-v1__select{appearance:none;-webkit-appearance:none;padding-right:52px;cursor:pointer}.cta-v1__select:disabled{cursor:default}.cta-v1__select-icon{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.cta-v1__submit{min-height:54px;padding:var(--space-14) var(--space-32);width:100%}.cta-v1__consent{margin-top:var(--space-16)}.cta-v1__consent .popup-form__consent-text{color:var(--text-muted)}@media (max-width:1460px){.cta-v1__inner{grid-template-columns:minmax(0,1fr);grid-template-areas:\"intro\" \"form\" \"features\";gap:0;padding:var(--space-48) var(--space-40)}.cta-v1--fullwidth .cta-v1__intro{display:flex}.cta-v1--fullwidth .cta-v1__inner{grid-template-areas:\"intro\" \"form\" \"features\"}.cta-v1__intro{margin-bottom:var(--space-32)}.cta-v1__form{margin-bottom:var(--space-56)}.cta-v1--fullwidth .cta-v1__features{position:static;top:auto;align-self:start}.cta-v1__features{flex-direction:row;flex-wrap:wrap;gap:var(--space-24);align-self:start;justify-self:start}.cta-v1__feature-text{max-width:260px}}@media (max-width:1200px){.cta-v1__inner{padding:var(--space-48) var(--space-24)}}@media (max-width:768px){.cta-v1__card{min-height:0}.cta-v1__form-grid{grid-template-columns:1fr}.cta-v1__submit{width:100%}.cta-v1__features{flex-direction:column}}.site-header{position:relative;z-index:20;background:var(--bg-fill-soft)}.site-header::after{content:\"\";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:transparent;pointer-events:none}.site-header.is-sticky{}.site-header.is-sticky::after{}.site-header__shell{padding-top:var(--space-14)}.site-header__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-24);padding:0 0 var(--space-16)}.site-header__brand-row{display:flex;align-items:center;gap:var(--space-48);flex:1 1 auto;min-width:0}.site-header__brand{display:block;flex:none;text-decoration:none}.site-header__logo{display:block;width:var(--logo-w);height:auto;max-width:100%}.site-header__location{display:inline-flex;align-items:center;gap:var(--space-4);margin:0;font-weight:400;color:var(--text-secondary);min-width:0;max-width:244px;overflow:hidden;text-overflow:ellipsis}.site-header__location-icon{width:14px;height:18px;color:var(--brand);flex:none}.site-header__tools{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-16);flex:0 1 auto;min-width:0}.site-header__tool{display:flex;align-items:center;gap:var(--space-8);min-height:58px;padding-right:var(--space-16);text-decoration:none;color:var(--text-muted);border-right:1px solid color-mix(in srgb,var(--ui-border-soft) 80%,transparent)}.site-header__tool:hover,.site-header__tool:focus-visible{color:var(--text-secondary)}.site-header__tool-icon{display:flex;align-items:center;justify-content:center;width:var(--ui-icon-box);height:var(--ui-icon-box);flex:none;border-radius:var(--radius);color:var(--brand);background:transparent}.site-header-v1--tool-icon-bg .site-header__tool-icon{background:var(--brand-opacity-20)}.site-header__tool-icon .icon{display:block;width:var(--ui-icon);height:var(--ui-icon)}.site-header__tool-label{width:auto;max-width:var(--ui-label-max);line-height:1.2;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal;hyphens:auto}.site-header__phone{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:var(--space-4);text-decoration:none;color:inherit;white-space:nowrap;flex:none}.site-header__phone-number{font-weight:600;line-height:var(--lh-lead);color:var(--text-secondary)}.site-header__phone-hours{line-height:1.2;color:var(--text-muted)}.site-header__cta{flex:none;min-height:var(--ui-cta-h);padding-inline:var(--ui-cta-px);border:2px solid var(--brand-secondary);background:transparent;color:var(--brand-secondary-dark)}.site-header__cta:hover,.site-header__cta:focus-visible{border-color:var(--brand-secondary-dark);color:var(--brand-secondary-dark);background:color-mix(in srgb,var(--brand) 8%,transparent)}.site-header__burger{display:none;flex:none;width:54px;height:54px;padding:0;border:1px solid var(--ui-border-soft);border-radius:var(--radius-btn);background:var(--bg-fill-surface);color:var(--text-primary);cursor:pointer}.site-header__burger span{display:block;width:22px;height:2px;margin:var(--space-4) auto;border-radius:999px;background:currentColor;transition:transform .2s ease,opacity .2s ease}.site-header__nav-wrap{--glass-bg:color-mix(in srgb,var(--bg-fill-soft) 72%,transparent);--glass-solid-bg:var(--bg-fill-soft);position:relative;border-top:1px solid color-mix(in srgb,var(--ui-border-soft) 90%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 90%,transparent)}@media (min-width:1281px){html.is-nav-fixed .page.page--with-header{padding-top:var(--site-nav-h,0px)}html.is-nav-fixed .site-header__nav-wrap{position:fixed;top:0;left:0;right:0;z-index:30;background:var(--bg-fill-soft);box-shadow:var(--shadow-header)}}@media (min-width:1281px) and (prefers-reduced-motion:no-preference){.site-header__nav-wrap{transition:background-color .18s ease,box-shadow .18s ease}html.is-nav-fixed .site-header__nav-wrap{animation:site-header-nav-enter .18s ease-out}}@keyframes site-header-nav-enter{from{opacity:.85;transform:translateY(-6px)}to{opacity:1;transform:none}}.site-header__nav{display:flex;justify-content:center}.site-header__menu{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-16) clamp(var(--space-16),2.2vw,var(--space-40));width:100%;max-width:1276px;min-height:58px;margin:0;padding:var(--space-16) 0;list-style:none}.site-header__menu-item{display:flex;align-items:center;position:relative}.site-header__menu-item--mega{position:static}.site-header__menu-link{display:inline-flex;align-items:center;gap:var(--space-6);font-weight:500;line-height:1.3;text-transform:uppercase;text-decoration:none;color:var(--text-primary);transition:color .2s ease;background:transparent;border:0;padding:0;cursor:pointer}.site-header__menu-link--toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:3px;border-radius:6px}.site-header__menu-link:hover,.site-header__menu-link:focus-visible{color:var(--brand-dark)}.site-header__menu-dot{width:5px;height:5px;border-radius:50%;background:var(--brand-light)}.site-header__dropdown{position:absolute;top:calc(100% + var(--space-12));left:0;z-index:30;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}.site-header__menu-item.is-open>.site-header__dropdown{opacity:1;transform:translateY(0);pointer-events:auto}.site-header__dropdown--small{--site-header-dropdown-small-gap:var(--space-12);min-width:260px;max-width:min(360px,calc(100vw - 2 * var(--page-gutter)));left:50%;right:auto;top:calc(100% + var(--site-header-dropdown-small-gap));transform:translate(-50%,-6px);background:var(--bg-fill-surface);border:1px solid color-mix(in srgb,var(--ui-border-soft) 85%,transparent);border-radius:var(--radius);box-shadow:var(--shadow-dropdown);padding:var(--space-10);overflow:visible}.site-header__dropdown--small .site-header__dropdown-pointer{top:calc(-1 * var(--site-header-dropdown-small-gap))}.site-header__menu-item.is-open>.site-header__dropdown--small{transform:translate(-50%,0)}.site-header__dropdown-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-4)}.site-header__dropdown-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);padding:var(--space-12) var(--space-12);border-radius:var(--radius);text-decoration:none;color:var(--text-primary);line-height:1.3;text-transform:none}.site-header__dropdown-link:hover,.site-header__dropdown-link:focus-visible{background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--brand-dark)}.site-header__dropdown--mega{left:0;right:0;width:100%;top:calc(100% + 8px);padding-top:0}.site-header__dropdown--mega>.container{position:relative;display:flex;justify-content:flex-end}.site-header__mega-pointer,.site-header__wide-default-pointer,.site-header__dropdown-pointer{position:absolute;top:-20px;left:120px;width:37px;height:28px;color:var(--white);transform:translateX(-50%);pointer-events:none;z-index:3}.site-header__mega-pointer svg,.site-header__wide-default-pointer svg,.site-header__dropdown-pointer svg{display:block;width:100%;height:100%}.site-header__mega-pointer{z-index:1}.site-header__mega{position:relative;z-index:2;width:100%;max-width:1640px;margin-left:auto;margin-right:0;background:var(--white);border:1px solid color-mix(in srgb,var(--ui-border-soft) 85%,transparent);border-radius:var(--radius);box-shadow:var(--shadow-dropdown);padding:var(--space-16) var(--space-24) 0;display:flex;flex-direction:column;gap:var(--space-20);max-height:min(70vh,660px);overflow:hidden;--site-header-mega-aside-max:707px;--site-header-mega-cat-min:280px;--site-header-mega-panels-min:240px;--site-header-mega-shortcut-icon-box:44px;--site-header-mega-shortcut-icon-glyph:24px;--site-header-mega-promo-image:184px}.site-header__mega-head{display:flex;align-items:flex-end;gap:var(--space-16);position:sticky;top:0;z-index:2;background:var(--white);padding:0 0 var(--space-10);border-bottom:1px solid color-mix(in srgb,var(--ui-divider) 85%,transparent)}.site-header__mega-close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:0;border-radius:32px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .16s ease,color .16s ease}.site-header__mega-close .icon{width:24px;height:24px}.site-header__mega-close:hover,.site-header__mega-close:focus-visible{background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--text-secondary)}.site-header__mega-head-title{margin:0;font-family:var(--font-heading);font-size:var(--text-lead-xl);font-weight:var(--font-weight-heading);letter-spacing:-0.02em;color:var(--text-secondary);line-height:1.2}.site-header__mega-head-link{font-size:var(--text-body-sm);font-weight:400;line-height:1.2;color:var(--text-muted);text-decoration:none}.site-header__mega-head-link:hover,.site-header__mega-head-link:focus-visible{color:var(--brand-dark);text-decoration:underline}.site-header__mega-body{display:grid;grid-template-columns:minmax(var(--site-header-mega-cat-min),1fr) minmax(var(--site-header-mega-panels-min),1fr) minmax(0,var(--site-header-mega-aside-max));grid-template-rows:minmax(0,1fr);gap:0 var(--space-24);align-items:stretch;flex:1 1 auto;min-height:0;padding-bottom:var(--space-24);overflow:hidden}.site-header__mega-panels{min-height:0;min-width:0}.site-header__mega-categories,.site-header__wide-default-categories,.site-header__wide-default-nav{display:flex;flex-direction:column;align-self:stretch;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent}.site-header__mega-categories,.site-header__wide-default-categories{padding-right:var(--space-32);border-right:0;background-image:linear-gradient(var(--ui-border-soft),var(--ui-border-soft));background-size:1px 100%;background-position:right top;background-repeat:no-repeat;background-attachment:local}.site-header__wide-default-nav{padding-right:var(--space-24)}.site-header__mega-categories::-webkit-scrollbar,.site-header__wide-default-categories::-webkit-scrollbar,.site-header__wide-default-nav::-webkit-scrollbar{width:8px}.site-header__mega-categories::-webkit-scrollbar-thumb,.site-header__wide-default-categories::-webkit-scrollbar-thumb,.site-header__wide-default-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 35%,transparent);border-radius:999px}.site-header__mega-categories::-webkit-scrollbar-thumb:hover,.site-header__wide-default-categories::-webkit-scrollbar-thumb:hover,.site-header__wide-default-nav::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-muted) 55%,transparent)}.site-header__mega-category,.site-header__wide-default-category,.site-header__wide-default-nav-link{width:100%;display:flex;align-items:center;gap:var(--space-10);padding:var(--space-12) var(--space-4) var(--space-12) var(--space-8);border-radius:var(--radius);transition:background-color .16s ease,color .16s ease}.site-header__mega-category,.site-header__wide-default-category{border:0;background:transparent;color:var(--text-secondary);text-align:left;cursor:pointer}.site-header__wide-default-nav-link{text-decoration:none;color:var(--text-secondary)}.site-header__mega-category:hover,.site-header__mega-category:focus-visible,.site-header__wide-default-category:hover,.site-header__wide-default-category:focus-visible,.site-header__wide-default-nav-link:hover,.site-header__wide-default-nav-link:focus-visible{background:var(--brand-opacity-20);color:var(--text-primary)}.site-header__mega-category.is-active,.site-header__wide-default-category.is-active{background:var(--brand-opacity-20);color:var(--brand)}.site-header__mega-category.is-active:hover,.site-header__mega-category.is-active:focus-visible,.site-header__wide-default-category.is-active:hover,.site-header__wide-default-category.is-active:focus-visible{color:var(--brand)}.site-header__mega-category:focus-visible,.site-header__wide-default-category:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 30%,transparent);outline-offset:2px}.site-header__mega-category-visual,.site-header__wide-default-category-visual,.site-header__wide-default-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:none}.site-header__mega-category-icon,.site-header__wide-default-category-icon,.site-header__wide-default-nav-icon-img{display:block;width:35px;height:35px;object-fit:contain}.site-header__mega-category-label,.site-header__wide-default-category-label,.site-header__wide-default-nav-label{flex:1 1 auto;min-width:0;font-size:var(--text-nav);font-weight:600;line-height:1.4}.site-header__mega-category-label,.site-header__wide-default-category-label{display:block;color:var(--text-secondary)}.site-header__mega-category.is-active .site-header__mega-category-label,.site-header__wide-default-category.is-active .site-header__wide-default-category-label{color:var(--brand)}.site-header__mega-category-arrow,.site-header__wide-default-category-arrow{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text-secondary);transition:transform .16s ease,color .16s ease}.site-header__mega-category.is-active .site-header__mega-category-arrow,.site-header__mega-category:hover .site-header__mega-category-arrow,.site-header__mega-category:focus-visible .site-header__mega-category-arrow,.site-header__wide-default-category.is-active .site-header__wide-default-category-arrow,.site-header__wide-default-category:hover .site-header__wide-default-category-arrow,.site-header__wide-default-category:focus-visible .site-header__wide-default-category-arrow{color:var(--brand)}.site-header__mega-category-arrow .icon,.site-header__wide-default-category-arrow .icon{width:7px;height:14px}.site-header__mega-panel[hidden]{display:none !important}@media (min-width:1281px){.site-header__mega-categories{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-self:stretch;min-height:0;overflow-x:hidden;overflow-y:auto}.site-header__mega-category-block{display:block;flex:none}.site-header__mega-panels{grid-column:2;grid-row:1;display:block;position:relative;align-self:stretch;min-height:0;overflow:hidden}.site-header__mega-panels[hidden]{display:none !important}.site-header__mega-panel{position:absolute;inset:0;min-height:0;min-width:0;padding-top:var(--space-6);padding-left:var(--space-18);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent}.site-header__mega-panel[hidden]{display:none !important}.site-header__mega-panel::-webkit-scrollbar{width:8px}.site-header__mega-panel::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 35%,transparent);border-radius:999px}.site-header__mega-panel::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-muted) 55%,transparent)}.site-header__mega-aside{grid-column:3;grid-row:1;align-self:stretch;min-height:0}}.site-header__mega-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-10)}.site-header__mega-link{display:block;font-size:var(--text-nav);font-weight:600;text-decoration:none;color:var(--text-muted);line-height:1.4;padding:0;transition:color .16s ease}.site-header__mega-link:hover,.site-header__mega-link:focus-visible{color:var(--brand-dark)}.site-header__mega-aside{min-width:0;max-width:var(--site-header-mega-aside-max);width:100%;justify-self:stretch;align-self:stretch;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:var(--space-28);align-content:start;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent;padding-bottom:var(--space-16);scroll-padding-bottom:var(--space-16)}.site-header__mega-aside::-webkit-scrollbar{width:8px}.site-header__mega-aside::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 35%,transparent);border-radius:999px}.site-header__mega-aside::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-muted) 55%,transparent)}.site-header__mega-aside:not(:has(.site-header__mega-shortcut--popular)) .site-header__mega-shortcuts{border-left:1px solid var(--ui-border-soft)}.site-header__mega-shortcut--popular{display:grid;grid-template-columns:var(--site-header-mega-shortcut-icon-box) minmax(0,1fr);column-gap:var(--space-16);row-gap:var(--space-16);align-content:start;grid-column:1;grid-row:1;padding-bottom:0;padding-left:var(--space-14);padding-right:var(--space-16);border-bottom:0;border-left:1px solid var(--ui-border-soft);border-right:1px solid var(--ui-border-soft)}.site-header__mega-shortcut--popular .site-header__mega-shortcut-head{display:contents}.site-header__mega-shortcut--popular .site-header__mega-shortcut-icon{grid-column:1;grid-row:1;align-self:center}.site-header__mega-shortcut--popular .site-header__mega-shortcut-title{grid-column:2;grid-row:1;align-self:center}.site-header__mega-shortcut--popular .site-header__mega-shortcut-list{grid-column:2;grid-row:2}.site-header__mega-shortcut-head{display:flex;align-items:center;gap:var(--space-16);margin-bottom:var(--space-16)}.site-header__mega-shortcuts{display:flex;flex-direction:column;gap:var(--space-18);grid-column:2;grid-row:1;align-self:start}.site-header__mega-shortcut{text-decoration:none;color:var(--text-primary)}a.site-header__mega-shortcut{display:flex;align-items:center;gap:var(--space-16)}a.site-header__mega-shortcut:has(.site-header__mega-shortcut-text){align-items:flex-start}.site-header__mega-aside > .site-header__mega-shortcut--popular{display:grid}.site-header__mega-shortcut-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--site-header-mega-shortcut-icon-box);height:var(--site-header-mega-shortcut-icon-box);border-radius:var(--radius);background:var(--brand-surface-soft);color:var(--brand);flex:none}.site-header__mega-shortcut-icon .icon{width:var(--site-header-mega-shortcut-icon-glyph);height:var(--site-header-mega-shortcut-icon-glyph)}.site-header__mega-shortcut-icon--image,.site-header__wide-default-shortcut-icon--image{background:transparent;color:inherit;padding:0;overflow:hidden}.site-header__mega-shortcut-icon--image .site-header__mega-shortcut-icon-img,.site-header__wide-default-shortcut-icon--image .site-header__wide-default-shortcut-icon-img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;border-radius:inherit}.site-header__mega-category-visual--image,.site-header__wide-default-category-visual--image,.site-header__wide-default-nav-icon--image{overflow:hidden;border-radius:var(--radius)}.site-header__mega--icon-display-image .site-header__mega-category-visual,.site-header__wide-default--icon-display-image .site-header__wide-default-category-visual,.site-header__wide-default--icon-display-image .site-header__wide-default-nav-icon{overflow:hidden;border-radius:0}.site-header__mega-category-visual--image .site-header__mega-category-icon,.site-header__wide-default-category-visual--image .site-header__wide-default-category-icon,.site-header__mega--icon-display-image .site-header__mega-category-icon,.site-header__wide-default--icon-display-image .site-header__wide-default-category-icon,.site-header__wide-default--icon-display-image .site-header__wide-default-nav-icon-img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}.site-header__mega-shortcut-copy{display:flex;flex-direction:column;gap:var(--space-4)}.site-header__mega-shortcut-title{color:var(--text-secondary);font-size:var(--text-nav);font-weight:600;line-height:1.2;text-transform:uppercase}.site-header__mega-shortcut-text{color:var(--text-muted);font-size:var(--text-body-sm);line-height:1.3}.site-header__mega-shortcut-list-link:hover,.site-header__mega-shortcut-list-link:focus-visible{color:var(--brand-dark)}.site-header__mega-shortcut-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-12)}.site-header__mega-shortcut-list-link{color:var(--text-muted);font-size:var(--text-body-sm);text-decoration:none;line-height:1.4}.site-header__mega-promo{grid-column:1 \/ -1;grid-row:2;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,auto);gap:var(--space-24);align-items:stretch;align-self:start;width:100%;overflow:visible;min-height:176px;height:fit-content;border-radius:var(--radius);background:var(--brand-surface-soft)}.site-header__mega-promo-visual-wrap{grid-row:1;grid-column:1;align-self:stretch;justify-self:start;display:flex;min-height:0}.site-header__mega-promo-visual{position:relative;height:100%;width:auto;aspect-ratio:274 \/ 276;min-height:0;overflow:hidden;border-radius:var(--radius);background:var(--brand-surface-soft)}.site-header__mega-promo-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}.site-header__mega-promo-copy{grid-row:1;grid-column:2;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-14);padding:var(--space-28) var(--space-28) var(--space-28) 0}.site-header__mega-promo-title{margin:0;font-family:var(--font-heading);font-size:var(--text-lead-xl);font-weight:var(--font-weight-heading);line-height:1.2;color:var(--text-secondary)}.site-header__mega-promo-text{margin:0;color:var(--text-muted);font-size:var(--text-body-sm);line-height:1.3}.site-header__mega-promo-cta{margin-top:var(--space-4)}@media (max-width:1600px){.site-header__mega{--site-header-mega-aside-max:clamp(300px,36vw,580px);--site-header-mega-cat-min:240px;--site-header-mega-panels-min:200px;--site-header-mega-shortcut-icon-box:40px;--site-header-mega-shortcut-icon-glyph:22px;--site-header-mega-promo-image:160px}.site-header__mega-body{gap:0 var(--space-20)}.site-header__mega-aside{gap:var(--space-20)}.site-header__mega-categories{padding-right:var(--space-24)}.site-header__mega-shortcut--popular{column-gap:var(--space-12);row-gap:var(--space-12);padding-right:var(--space-14)}.site-header__mega-shortcuts{gap:var(--space-12);padding-left:var(--space-12);padding-right:var(--space-8)}.site-header__mega-promo-title{font-size:var(--text-lead)}}@media (max-width:1500px){.site-header__mega{--site-header-mega-aside-max:clamp(280px,32vw,480px);--site-header-mega-cat-min:220px;--site-header-mega-panels-min:180px;--site-header-mega-shortcut-icon-box:38px;--site-header-mega-shortcut-icon-glyph:21px;--site-header-mega-promo-image:140px}.site-header__mega-promo-copy{padding:var(--space-12) var(--space-14) var(--space-16) 0}.site-header__mega-promo-title{font-size:var(--text-body-lg)}.site-header__mega-shortcut--popular{padding-right:var(--space-14)}.site-header__mega-shortcuts{padding-left:var(--space-12);padding-right:var(--space-6)}}@media (max-width:1600px){.site-header__mega-shortcut-title,.site-header__wide-default-shortcut-title{font-size:var(--text-body-md)}}@media (max-width:1500px){.site-header__mega-shortcut-title,.site-header__wide-default-shortcut-title{font-size:var(--text-body-sm)}}@media (min-width:1281px) and (max-width:1600px){.site-header__mega-promo{align-items:flex-start;min-height:0;gap:var(--space-16);padding:var(--space-10) var(--space-12);box-sizing:border-box}.site-header__mega-promo-visual-wrap{width:var(--site-header-mega-promo-image);height:auto;align-self:flex-start}.site-header__mega-promo-visual{width:100%;height:auto;aspect-ratio:274 \/ 276}.site-header__mega-promo-copy{align-self:stretch;justify-content:flex-start}}@media (max-width:1366px){.site-header__mega{--site-header-mega-aside-max:clamp(252px,30vw,380px);--site-header-mega-cat-min:200px;--site-header-mega-panels-min:160px;--site-header-mega-shortcut-icon-box:36px;--site-header-mega-shortcut-icon-glyph:20px;--site-header-mega-promo-image:120px}.site-header__mega-body{gap:0 var(--space-16)}.site-header__mega-aside{gap:var(--space-16)}.site-header__mega-shortcut--popular{column-gap:var(--space-12)}.site-header__mega-shortcuts{gap:var(--space-12)}.site-header__mega-categories{padding-right:var(--space-20)}.site-header__mega-panel{padding-left:var(--space-14)}.site-header__mega-promo-copy{padding:var(--space-10) var(--space-12) var(--space-14) 0;gap:var(--space-12)}.site-header__mega-promo-cta.btn{padding-block:var(--space-8);padding-inline:var(--space-16);min-height:40px}.site-header__mega-shortcut--popular{padding-right:var(--space-14);row-gap:var(--space-10)}.site-header__mega-shortcuts{gap:var(--space-10)}}@media (max-width:1200px){.site-header__top{gap:var(--space-16)}.site-header__brand-row{gap:var(--space-24)}.site-header__tools{gap:var(--space-12)}.site-header__tool{padding-right:var(--space-12)}.site-header__tool-label{width:92px}.site-header__cta{padding-inline:24px}}@media (max-width:1600px){.site-header__brand-row{gap:var(--space-24)}.site-header__location{max-width:244px}.site-header__tools{gap:var(--space-12)}.site-header__tool{padding-right:var(--space-16)}}@media (max-width:992px){.site-header__shell{padding-top:0}.site-header__top{flex-wrap:wrap;padding:var(--space-8) 0}.site-header__brand-row,.site-header__tools{width:100%}.site-header__tools{justify-content:space-between}.site-header__location{white-space:normal;max-width:none;overflow:visible;text-overflow:clip}.site-header__tool-label{width:auto;max-width:90px}.site-header__menu{justify-content:flex-start}}@media (max-width:1366px) and (min-width:1281px){.site-header__tool-label{display:none}}@media (min-width:1281px) and (max-width:1366px){.site-header__brand-row{gap:var(--space-24)}.site-header__shell{padding-top:var(--space-8)}.site-header__top{padding-bottom:var(--space-12);gap:var(--space-16)}.site-header__tool{min-height:48px;padding-right:var(--space-12)}.site-header__menu{min-height:48px;padding:var(--space-10) 0;gap:var(--space-12) clamp(var(--space-12),1.8vw,var(--space-24))}.site-header__mega-aside{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}.site-header__mega-shortcut--popular{grid-column:1;grid-row:1;border-right:0;border-bottom:0;padding-right:var(--space-14)}.site-header__mega-shortcuts{grid-column:1;grid-row:2;border-left:1px solid var(--ui-border-soft);padding-left:var(--space-14);padding-right:var(--space-14)}.site-header__mega-aside:not(:has(.site-header__mega-shortcut--popular)) .site-header__mega-shortcuts{grid-row:1;border-left:1px solid var(--ui-border-soft)}.site-header__mega-promo{grid-row:3}.site-header__mega-aside:not(:has(.site-header__mega-shortcut--popular)) .site-header__mega-promo{grid-row:2}.site-header__mega-promo{gap:var(--space-12);padding:var(--space-8) var(--space-10)}.site-header__mega-promo-copy{padding:var(--space-6) var(--space-10) var(--space-10) 0}}@media (max-width:1280px){.page.page--with-header{padding-top:var(--site-header-h,0px)}html.is-menu-open .page.page--with-header{padding-top:0}html.is-menu-open{overflow:hidden}.site-header:not(.is-menu-open){position:fixed;top:0;left:0;right:0;z-index:20;flex-shrink:0}.site-header__shell{padding-top:0}.site-header__top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-12);padding:var(--space-8) 0;position:relative}.site-header__brand-row{width:auto;min-width:0;gap:var(--space-16)}.site-header__location,.site-header__tool,.site-header__phone,.site-header__cta{display:none}.site-header__logo{max-width:168px;max-height:36px}.site-header__tools{width:auto;gap:0}.site-header__burger{display:block;width:44px;height:44px}.site-header__burger{border:0;background:transparent;box-shadow:none}.site-header__nav-wrap{display:none;border-top:1px solid color-mix(in srgb,var(--ui-border-soft) 90%,transparent);position:static;background:transparent}.site-header.is-menu-open .site-header__nav-wrap{display:block;flex:none;overflow:visible;border-top:0}.site-header.is-menu-open{box-shadow:none;position:fixed;inset:0;height:100dvh;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.site-header.is-menu-open .site-header__shell{display:flex;flex-direction:column;flex:0 0 auto;min-height:auto;overflow:visible;background:var(--bg-fill-soft)}.site-header.is-menu-open .site-header__shell > .container{flex:none;position:sticky;top:0;z-index:2;background:var(--bg-fill-soft);border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 90%,transparent)}.site-header.is-menu-open .site-header__top{display:block;padding:var(--space-16) 0 var(--space-16)}.site-header.is-menu-open .site-header__brand{position:static;padding:0;margin:0;border:0;background:transparent}.site-header.is-menu-open .site-header__brand-row{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-12);width:100%;padding-right:64px;box-sizing:border-box}.site-header.is-menu-open .site-header__location{display:flex;width:100%;line-height:1.3;color:var(--text-secondary);white-space:normal;max-width:none;overflow:visible;text-overflow:clip}.site-header.is-menu-open .site-header__tools{width:100%;margin-top:var(--space-16);display:flex;flex-wrap:wrap;gap:var(--space-12);align-items:stretch}.site-header.is-menu-open .site-header__tool{display:flex;width:calc(50% - (var(--space-12) \/ 2));min-height:52px;padding:var(--space-10) var(--space-10);border-radius:var(--radius);background:color-mix(in srgb,var(--brand) 8%,transparent);border-right:0;padding-right:0;color:var(--text-secondary);text-decoration:none}.site-header.is-menu-open .site-header__tool-icon{width:40px;height:40px}.site-header-v1--tool-icon-bg.site-header.is-menu-open .site-header__tool-icon{background:var(--brand-opacity-20)}.site-header.is-menu-open .site-header__tool-icon .icon{width:20px;height:20px}.site-header.is-menu-open .site-header__tool-label{max-width:none;width:auto;line-height:1.15;color:var(--text-secondary)}.site-header.is-menu-open .site-header__phone{display:flex;width:100%;align-items:flex-start;gap:var(--space-2);padding-left:var(--space-4)}.site-header.is-menu-open .site-header__cta{display:inline-flex;width:100%;justify-content:center}.site-header.is-menu-open .site-header__burger{position:absolute;top:var(--space-16);right:0;z-index:2}.site-header.is-menu-open .site-header__burger span:nth-child(1){transform:translateY(var(--space-6)) rotate(45deg)}.site-header.is-menu-open .site-header__burger span:nth-child(2){opacity:0}.site-header.is-menu-open .site-header__burger span:nth-child(3){transform:translateY(calc(-1 * var(--space-6))) rotate(-45deg)}.site-header.is-menu-open .site-header__menu-item--mega.is-open,.site-header.is-menu-open .site-header__menu-item--wide-default.is-open,.site-header.is-menu-open .site-header__mega-category-block,.site-header.is-menu-open .site-header__wide-default-category-block{scroll-margin-top:calc(var(--site-mobile-menu-sticky-h,var(--site-header-top-h,0px)) + var(--space-8))}.site-header__menu{flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:var(--space-8) 0 var(--space-32)}.site-header__menu-item{display:block;border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 85%,transparent)}.site-header__menu-link{justify-content:space-between;width:100%;padding:var(--space-16) 0}.site-header__menu-dot{margin-left:auto}.site-header__dropdown{position:static;opacity:1;transform:none;pointer-events:auto;transition:none;display:none;padding:0 0 var(--space-12);margin-top:var(--space-8);width:100%;box-sizing:border-box}.site-header__menu-item.is-open>.site-header__dropdown{display:block}.site-header__dropdown--small,.site-header__dropdown--mega,.site-header__dropdown--wide-default{left:auto;right:auto;width:auto;min-width:0;max-width:none;transform:none;padding-top:0}.site-header__menu-item.is-open>.site-header__dropdown--small{transform:none}.site-header__dropdown--small,.site-header__mega,.site-header__wide-default{box-shadow:none;border:0;border-radius:0;background:transparent;padding:0}.site-header__mega-pointer,.site-header__wide-default-pointer,.site-header__dropdown-pointer{display:none}.site-header__dropdown--small{padding-left:0}.site-header__menu-item.is-open > .site-header__menu-link--toggle{padding-bottom:var(--space-8)}.site-header__menu-item.is-open > .site-header__dropdown--small{margin-top:0;padding-bottom:var(--space-20)}.site-header__dropdown--small .site-header__dropdown-item:first-child .site-header__dropdown-link{padding-top:var(--space-8)}.site-header__dropdown--small .site-header__dropdown-item{border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 65%,transparent)}.site-header__dropdown--small .site-header__dropdown-item:last-child{border-bottom:0}.site-header__dropdown-link{justify-content:flex-start;padding:var(--space-12) 0 var(--space-12) var(--space-16);border-radius:0}.site-header__dropdown--small .site-header__dropdown-link.bodytext-strong,.site-header__mega-link.bodytext-sm,.site-header__wide-default-link.bodytext-sm{font-size:var(--text-body-sm);line-height:1.35}.site-header__dropdown--mega,.site-header__dropdown--wide-default{width:100%;max-width:none;margin-left:0;margin-right:0;padding:0}.site-header__dropdown--mega>.container,.site-header__dropdown--wide-default>.container{width:100%;max-width:none;padding-left:0;padding-right:0;margin:0}.site-header__menu-item--mega .site-header__mega,.site-header__menu-item--mega .site-header__mega-body,.site-header__menu-item--mega .site-header__mega-categories{width:100%;max-width:none}.site-header__mega{max-height:none;overflow:visible}.site-header__mega-head{display:none}.site-header__mega-body{display:flex;flex-direction:column;gap:0;flex:none;overflow:visible;padding-bottom:0;scrollbar-width:auto}.site-header__mega-panels{display:none}.site-header__mega-categories,.site-header__wide-default-categories,.site-header__wide-default-nav{display:flex;flex-direction:column;gap:0;padding-right:0;border-right:0;overflow:visible;background-image:none}.site-header__wide-default-nav{width:100%;max-width:none}.site-header__mega-category-block,.site-header__wide-default-category-block{display:block;border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 65%,transparent)}.site-header__mega-category-block:last-child,.site-header__wide-default-category-block:last-child{border-bottom:0}.site-header__mega-panel[hidden],.site-header__wide-default-panel[hidden]{display:none !important}.site-header__mega-category,.site-header__wide-default-category,.site-header__wide-default-nav-link{gap:var(--space-12);min-height:56px;padding:var(--space-10) 0;border-radius:0;width:100%}.site-header__wide-default-nav-link{color:var(--text-primary)}.site-header__mega-category:hover,.site-header__mega-category:focus-visible,.site-header__mega-category.is-active,.site-header__wide-default-category:hover,.site-header__wide-default-category:focus-visible,.site-header__wide-default-category.is-active,.site-header__wide-default-nav-link:hover,.site-header__wide-default-nav-link:focus-visible{background:transparent}.site-header__mega-category-block.is-open .site-header__mega-category,.site-header__wide-default-category-block.is-open .site-header__wide-default-category{padding-bottom:var(--space-6)}.site-header__mega-category-block.is-open .site-header__mega-category-arrow,.site-header__wide-default-category-block.is-open .site-header__wide-default-category-arrow{transform:rotate(90deg);color:var(--brand)}.site-header__mega-category-label,.site-header__wide-default-category-label,.site-header__wide-default-nav-label{font-size:var(--text-body-sm);line-height:1.35}.site-header__mega-category:not(.is-active) .site-header__mega-category-label,.site-header__wide-default-category:not(.is-active) .site-header__wide-default-category-label{color:var(--text-secondary)}.site-header__mega-category.is-active .site-header__mega-category-label,.site-header__wide-default-category.is-active .site-header__wide-default-category-label{color:var(--brand)}.site-header__mega-category-visual,.site-header__mega--icon-display-image .site-header__mega-category-visual,.site-header__wide-default-category-visual,.site-header__wide-default--icon-display-image .site-header__wide-default-category-visual,.site-header__wide-default-nav-icon,.site-header__wide-default--icon-display-image .site-header__wide-default-nav-icon{width:28px;height:28px}.site-header__mega-category-icon,.site-header__mega--icon-display-image .site-header__mega-category-icon,.site-header__wide-default-category-icon,.site-header__wide-default--icon-display-image .site-header__wide-default-category-icon,.site-header__wide-default-nav-icon-img,.site-header__wide-default--icon-display-image .site-header__wide-default-nav-icon-img{width:28px;height:28px;max-width:28px;max-height:28px;object-fit:contain;object-position:center}.site-header__mega-category-arrow,.site-header__wide-default-category-arrow{width:20px;height:20px}.site-header__mega-category-arrow .icon,.site-header__wide-default-category-arrow .icon{width:6px;height:12px}.site-header__mega-panel{position:static;inset:auto;margin:0;padding:0 0 var(--space-8);border-top:0;overflow:visible;overscroll-behavior:auto}.site-header__mega-list{gap:0}.site-header__mega-item{border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 65%,transparent)}.site-header__mega-item:last-child{border-bottom:0}.site-header__mega-link{padding:var(--space-14) 0 var(--space-14) var(--space-16)}.site-header__menu-item--mega.is-open>.site-header__dropdown{margin-top:0;padding-bottom:0}.site-header__mega-aside{display:none}.site-header__mega-promo{grid-template-columns:1fr;min-height:0}.site-header__mega-promo-visual-wrap{grid-column:1;grid-row:1;width:100%;height:auto;align-self:stretch}.site-header__mega-promo-visual{width:100%;height:auto;aspect-ratio:274 \/ 276}.site-header__mega-promo-copy{grid-column:1;grid-row:2}.site-header__mega-promo-copy{padding:0 var(--space-16) var(--space-16)}.site-header__mega-close{display:none}}.site-header__menu-item--wide-default{position:static}.site-header__dropdown--wide-default{left:0;right:0;width:100%;top:calc(100% + 8px);padding-top:0}.site-header__dropdown--wide-default>.container{position:relative;display:flex;justify-content:flex-end}.site-header__wide-default{position:relative;z-index:2;width:100%;max-width:min(1640px,calc(100vw - var(--space-32)));margin-left:auto;margin-right:0;background:var(--white);border:1px solid color-mix(in srgb,var(--ui-border-soft) 85%,transparent);border-radius:var(--radius);box-shadow:var(--shadow-dropdown);padding:var(--space-16) var(--space-24) 0;display:flex;flex-direction:column;gap:var(--space-20);max-height:min(70vh,660px);overflow:hidden;--site-header-wide-default-aside-max:707px;--site-header-wide-default-cat-min:280px;--site-header-wide-default-mid-min:260px;--site-header-wide-default-promo-max:340px;--site-header-wide-default-panels-min:240px;--site-header-wide-default-shortcut-icon-box:44px;--site-header-wide-default-shortcut-icon-glyph:24px;--site-header-wide-default-promo-image:184px}.site-header__wide-default-head{display:flex;align-items:flex-end;gap:var(--space-16);position:sticky;top:0;z-index:2;background:var(--white);padding:0 0 var(--space-10);border-bottom:1px solid color-mix(in srgb,var(--ui-divider) 85%,transparent)}.site-header__wide-default-close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:0;border-radius:32px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .16s ease,color .16s ease}.site-header__wide-default-close .icon{width:24px;height:24px}.site-header__wide-default-close:hover,.site-header__wide-default-close:focus-visible{background:color-mix(in srgb,var(--brand) 9%,transparent);color:var(--text-secondary)}.site-header__wide-default-head-title{margin:0;font-family:var(--font-heading);font-size:var(--text-lead-xl);font-weight:var(--font-weight-heading);letter-spacing:-0.02em;color:var(--text-secondary);line-height:1.2}.site-header__wide-default-head-link{font-size:var(--text-body-sm);font-weight:400;line-height:1.2;color:var(--text-muted);text-decoration:none}.site-header__wide-default-head-link:hover,.site-header__wide-default-head-link:focus-visible{color:var(--brand-dark);text-decoration:underline}.site-header__wide-default-body{display:grid;grid-template-columns:minmax(var(--site-header-wide-default-cat-min),1fr) minmax(var(--site-header-wide-default-mid-min),1fr) minmax(0,var(--site-header-wide-default-promo-max));grid-template-rows:minmax(0,1fr);gap:0 var(--space-24);align-items:stretch;flex:1 1 auto;min-height:0;padding-bottom:var(--space-24);overflow:hidden}.site-header__wide-default-panel[hidden]{display:none !important}@media (min-width:1281px){.site-header__wide-default-categories{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-self:stretch;min-height:0;overflow-x:hidden;overflow-y:auto}.site-header__wide-default-category-block{display:block;flex:none}.site-header__wide-default-aside{grid-column:2;grid-row:1;align-self:stretch;min-height:0}.site-header__wide-default-promo-col{grid-column:3;grid-row:1;align-self:stretch;min-width:0;min-height:0}.site-header__wide-default-panel{position:static;inset:auto;min-height:0;min-width:0;padding:0 0 var(--space-8) var(--space-8);overflow:visible;overscroll-behavior:auto;scrollbar-width:auto}.site-header__wide-default-panel[hidden]{display:none !important}}.site-header__wide-default-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-10)}.site-header__wide-default-link{display:block;font-size:var(--text-nav);font-weight:600;text-decoration:none;color:var(--text-muted);line-height:1.4;padding:0;transition:color .16s ease}.site-header__wide-default-link:hover,.site-header__wide-default-link:focus-visible{color:var(--brand-dark)}.site-header__wide-default-aside{min-width:0;max-width:none;width:100%;justify-self:stretch;align-self:stretch;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:0;align-content:start;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent;padding-bottom:var(--space-16);scroll-padding-bottom:var(--space-16);border-left:1px solid var(--ui-border-soft);border-right:1px solid var(--ui-border-soft)}.site-header__wide-default-promo-col{min-width:0;width:100%;align-self:stretch;display:flex;flex-direction:column;min-height:0}.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-copy{grid-column:1;grid-row:2;padding:var(--space-16) var(--space-16) var(--space-20)}.site-header__wide-default-aside::-webkit-scrollbar{width:8px}.site-header__wide-default-aside::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 35%,transparent);border-radius:999px}.site-header__wide-default-aside::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text-muted) 55%,transparent)}.site-header__wide-default-aside:not(:has(.site-header__wide-default-shortcut--popular)) .site-header__wide-default-shortcuts{grid-row:1;border-top:0}.site-header__wide-default-shortcut--popular{display:grid;grid-template-columns:var(--site-header-wide-default-shortcut-icon-box) minmax(0,1fr);column-gap:var(--space-16);row-gap:var(--space-16);align-content:start;grid-column:1;grid-row:1;padding:var(--space-14) var(--space-14) var(--space-16);border-bottom:1px solid var(--ui-border-soft);border-left:0;border-right:0}.site-header__wide-default-shortcut--popular .site-header__wide-default-shortcut-head{display:contents}.site-header__wide-default-shortcut--popular .site-header__wide-default-shortcut-icon{grid-column:1;grid-row:1;align-self:center}.site-header__wide-default-shortcut--popular .site-header__wide-default-shortcut-title{grid-column:2;grid-row:1;align-self:center}.site-header__wide-default-shortcut--popular .site-header__wide-default-shortcut-list{grid-column:2;grid-row:2}.site-header__wide-default-shortcut-head{display:flex;align-items:center;gap:var(--space-16);margin-bottom:var(--space-16)}.site-header__wide-default-shortcuts{display:flex;flex-direction:column;gap:var(--space-18);grid-column:1;grid-row:2;align-self:start;padding:var(--space-14) var(--space-14) var(--space-16);border-left:0}.site-header__wide-default-shortcut{text-decoration:none;color:var(--text-primary)}a.site-header__wide-default-shortcut{display:flex;align-items:center;gap:var(--space-16)}a.site-header__wide-default-shortcut:has(.site-header__wide-default-shortcut-text){align-items:flex-start}.site-header__wide-default-aside > .site-header__wide-default-shortcut--popular{display:grid}.site-header__wide-default-shortcut-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--site-header-wide-default-shortcut-icon-box);height:var(--site-header-wide-default-shortcut-icon-box);border-radius:var(--radius);background:var(--brand-surface-soft);color:var(--brand);flex:none}.site-header__wide-default-shortcut-icon .icon{width:var(--site-header-wide-default-shortcut-icon-glyph);height:var(--site-header-wide-default-shortcut-icon-glyph)}.site-header__wide-default-shortcut-copy{display:flex;flex-direction:column;gap:var(--space-4)}.site-header__wide-default-shortcut-title{color:var(--text-secondary);font-size:var(--text-nav);font-weight:600;line-height:1.2;text-transform:uppercase}.site-header__wide-default-shortcut-text{color:var(--text-muted);font-size:var(--text-body-sm);line-height:1.3}.site-header__wide-default-shortcut-list-link:hover,.site-header__wide-default-shortcut-list-link:focus-visible{color:var(--brand-dark)}.site-header__wide-default-shortcut-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-12)}.site-header__wide-default-shortcut-list-link{color:var(--text-muted);font-size:var(--text-body-sm);text-decoration:none;line-height:1.4}.site-header__wide-default-promo{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,auto);gap:var(--space-24);align-items:stretch;align-self:stretch;width:100%;overflow:visible;min-height:176px;height:fit-content;border-radius:var(--radius);background:var(--brand-surface-soft)}.site-header__wide-default-promo-visual-wrap{grid-row:1;grid-column:1;align-self:stretch;justify-self:start;display:flex;min-height:0}.site-header__wide-default-promo-visual{position:relative;height:100%;width:auto;aspect-ratio:274 \/ 276;min-height:0;overflow:hidden;border-radius:var(--radius);background:var(--brand-surface-soft)}.site-header__wide-default-promo-image{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border-radius:inherit}.site-header__wide-default-promo.site-header__wide-default-promo--banner-col{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:0;width:100%;max-width:100%;min-height:0;overflow:hidden}.site-header__wide-default-promo.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual-wrap{display:block;grid-column:1;grid-row:1;width:100%;max-width:none;min-width:0;margin:0;padding:0;justify-self:stretch;align-self:stretch}.site-header__wide-default-promo.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual{position:relative;display:block;width:100%;max-width:none;min-width:0;height:auto;aspect-ratio:274 \/ 276;overflow:hidden;border-radius:0;background:transparent}.site-header__wide-default-promo.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border-radius:0}.site-header__wide-default-promo.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-copy{grid-column:1;grid-row:2}.site-header__wide-default-promo-copy{grid-row:1;grid-column:2;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-14);padding:var(--space-28) var(--space-28) var(--space-28) 0}.site-header__wide-default-promo-title{margin:0;font-family:var(--font-heading);font-size:var(--text-lead-xl);font-weight:var(--font-weight-heading);line-height:1.2;color:var(--text-secondary)}.site-header__wide-default-promo-text{margin:0;color:var(--text-muted);font-size:var(--text-body-sm);line-height:1.3}.site-header__wide-default-promo-cta{margin-top:var(--space-4)}.site-header__wide-default--figma{--site-header-wide-default-figma-divider:#f1f3f2;--site-header-wide-default-figma-surface:#f4fbf7;--site-header-wide-default-col-nav:clamp(220px,24vw,377px);--site-header-wide-default-col-faq:clamp(200px,22vw,349px);--site-header-wide-default-col-shortcuts:clamp(240px,23vw,361px);--site-header-wide-default-col-promo:clamp(220px,26vw,413px)}.site-header__wide-default--figma .site-header__wide-default-body{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,var(--site-header-wide-default-col-nav)) minmax(0,var(--site-header-wide-default-col-faq)) clamp(var(--space-8),1vw,var(--space-20)) minmax(0,var(--site-header-wide-default-col-shortcuts)) clamp(var(--space-12),1.5vw,var(--space-56)) minmax(0,var(--site-header-wide-default-col-promo));gap:0}.site-header__wide-default--figma .site-header__wide-default-promo-col{min-width:0}.site-header__wide-default-nav-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-10)}.site-header__wide-default-faq{min-width:0;min-height:0;align-self:stretch;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border-left:1px solid var(--site-header-wide-default-figma-divider)}.site-header__wide-default-faq .site-header__wide-default-shortcut--popular{grid-column:1;grid-row:1;margin:0;padding:var(--space-14) var(--space-24) var(--space-16);border:0}.site-header__wide-default-faq .site-header__wide-default-shortcut--popular .site-header__wide-default-shortcut-icon{border-radius:4px}.site-header__wide-default--figma .site-header__wide-default-aside{grid-template-rows:auto;border-left:1px solid var(--site-header-wide-default-figma-divider);border-right:0}.site-header__wide-default--figma .site-header__wide-default-aside .site-header__wide-default-shortcuts{grid-row:1;border-top:0;padding:var(--space-14) var(--space-24) var(--space-16)}.site-header__wide-default--figma .site-header__wide-default-shortcut-icon{border-radius:var(--radius);background:var(--site-header-wide-default-figma-surface)}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col{background:var(--brand-surface-soft);border-radius:var(--radius);overflow:hidden}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual{aspect-ratio:auto;height:150px}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual-wrap{border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}@media (min-width:1281px){.site-header__wide-default--figma .site-header__wide-default-nav{grid-column:1;grid-row:1}.site-header__wide-default--figma .site-header__wide-default-faq{grid-column:2;grid-row:1}.site-header__wide-default--figma .site-header__wide-default-aside{grid-column:4;grid-row:1}.site-header__wide-default--figma .site-header__wide-default-promo-col{grid-column:6;grid-row:1}}@media (max-width:1600px){.site-header__wide-default{--site-header-wide-default-aside-max:clamp(300px,36vw,580px);--site-header-wide-default-cat-min:240px;--site-header-wide-default-panels-min:200px;--site-header-wide-default-shortcut-icon-box:40px;--site-header-wide-default-shortcut-icon-glyph:22px;--site-header-wide-default-promo-image:160px}.site-header__wide-default-body{gap:0 var(--space-20)}.site-header__wide-default--figma{--site-header-wide-default-col-nav:clamp(200px,22vw,320px);--site-header-wide-default-col-faq:clamp(180px,20vw,300px);--site-header-wide-default-col-shortcuts:clamp(200px,21vw,300px);--site-header-wide-default-col-promo:clamp(200px,24vw,340px)}.site-header__wide-default--figma .site-header__wide-default-faq .site-header__wide-default-shortcut--popular,.site-header__wide-default--figma .site-header__wide-default-aside .site-header__wide-default-shortcuts{padding-left:var(--space-16);padding-right:var(--space-16)}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-copy{padding:var(--space-12) var(--space-12) var(--space-16)}.site-header__wide-default-categories{padding-right:var(--space-24)}.site-header__wide-default-shortcut--popular{column-gap:var(--space-12);row-gap:var(--space-12);padding-right:var(--space-14)}.site-header__wide-default-shortcuts{gap:var(--space-12);padding-left:var(--space-12);padding-right:var(--space-8)}.site-header__wide-default-promo-title{font-size:var(--text-lead)}}@media (max-width:1500px){.site-header__wide-default{--site-header-wide-default-aside-max:clamp(280px,32vw,480px);--site-header-wide-default-cat-min:220px;--site-header-wide-default-panels-min:180px;--site-header-wide-default-shortcut-icon-box:38px;--site-header-wide-default-shortcut-icon-glyph:21px;--site-header-wide-default-promo-image:140px}.site-header__wide-default--figma{--site-header-wide-default-col-nav:clamp(180px,21vw,300px);--site-header-wide-default-col-faq:clamp(168px,19vw,280px);--site-header-wide-default-col-shortcuts:clamp(180px,20vw,280px);--site-header-wide-default-col-promo:clamp(180px,22vw,320px)}.site-header__wide-default-promo-copy{padding:var(--space-12) var(--space-14) var(--space-16) 0}.site-header__wide-default-promo-title{font-size:var(--text-body-lg)}.site-header__wide-default-shortcut--popular{padding-right:var(--space-14)}.site-header__wide-default-shortcuts{padding-left:var(--space-12);padding-right:var(--space-6)}}@media (min-width:1281px) and (max-width:1600px){.site-header__wide-default-promo:not(.site-header__wide-default-promo--banner-col){align-items:flex-start;min-height:0;gap:var(--space-16);padding:var(--space-10) var(--space-12);box-sizing:border-box}.site-header__wide-default-promo:not(.site-header__wide-default-promo--banner-col) .site-header__wide-default-promo-visual-wrap{width:var(--site-header-wide-default-promo-image);height:auto;align-self:flex-start}.site-header__wide-default-promo:not(.site-header__wide-default-promo--banner-col) .site-header__wide-default-promo-visual{width:100%;height:auto;aspect-ratio:274 \/ 276}.site-header__wide-default-promo:not(.site-header__wide-default-promo--banner-col) .site-header__wide-default-promo-copy{align-self:stretch;justify-content:flex-start}}@media (max-width:1366px){.site-header__wide-default{--site-header-wide-default-aside-max:clamp(252px,30vw,380px);--site-header-wide-default-cat-min:200px;--site-header-wide-default-panels-min:160px;--site-header-wide-default-shortcut-icon-box:36px;--site-header-wide-default-shortcut-icon-glyph:20px;--site-header-wide-default-promo-image:120px}.site-header__wide-default--figma{--site-header-wide-default-col-nav:clamp(160px,20vw,280px);--site-header-wide-default-col-faq:clamp(152px,18vw,260px);--site-header-wide-default-col-shortcuts:clamp(160px,19vw,260px);--site-header-wide-default-col-promo:clamp(160px,21vw,300px)}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual{height:132px}.site-header__wide-default-body{gap:0 var(--space-16)}.site-header__wide-default-shortcut--popular{column-gap:var(--space-12)}.site-header__wide-default-shortcuts{gap:var(--space-12)}.site-header__wide-default-categories{padding-right:var(--space-20)}.site-header__wide-default-panel{padding-left:var(--space-14)}.site-header__wide-default-promo-copy{padding:var(--space-10) var(--space-12) var(--space-14) 0;gap:var(--space-12)}.site-header__wide-default-shortcut--popular{padding-right:var(--space-14);row-gap:var(--space-10)}.site-header__wide-default-shortcuts{gap:var(--space-10)}}@media (min-width:1281px) and (max-width:1366px){.site-header__brand-row{gap:var(--space-24)}.site-header__shell{padding-top:var(--space-8)}.site-header__top{padding-bottom:var(--space-12);gap:var(--space-16)}.site-header__tool{min-height:48px;padding-right:var(--space-12)}.site-header__menu{min-height:48px;padding:var(--space-10) 0;gap:var(--space-12) clamp(var(--space-12),1.8vw,var(--space-24))}.site-header__wide-default-aside{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto}.site-header__wide-default-body{grid-template-columns:minmax(var(--site-header-wide-default-cat-min),1fr) minmax(220px,1fr) minmax(0,300px)}.site-header__wide-default-shortcut--popular{grid-column:1;grid-row:1;border-right:0;border-bottom:1px solid var(--ui-border-soft);padding-right:var(--space-14)}.site-header__wide-default-shortcuts{grid-column:1;grid-row:2;border-left:0;padding-left:var(--space-14);padding-right:var(--space-14)}.site-header__wide-default-aside:not(:has(.site-header__wide-default-shortcut--popular)) .site-header__wide-default-shortcuts{grid-row:1}.site-header__wide-default-promo--banner-col{gap:0;padding:0}.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-copy{padding:var(--space-10) var(--space-10) var(--space-12)}}@media (max-width:1280px){.site-header.is-menu-open .site-header__menu-item--wide-default.is-open,.site-header.is-menu-open .site-header__wide-default-category-block{scroll-margin-top:calc(var(--site-mobile-menu-sticky-h,var(--site-header-top-h,0px)) + var(--space-8))}.site-header__dropdown--wide-default{width:100%;max-width:none;margin-left:0;margin-right:0;padding:0}.site-header__dropdown--wide-default>.container{width:100%;max-width:none;padding-left:0;padding-right:0;margin:0}.site-header__menu-item--wide-default .site-header__wide-default,.site-header__menu-item--wide-default .site-header__wide-default-body,.site-header__menu-item--wide-default .site-header__wide-default-categories,.site-header__menu-item--wide-default .site-header__wide-default-nav{width:100%;max-width:none}.site-header__menu-item--wide-default .site-header__wide-default,.site-header__wide-default.site-header__wide-default--figma{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0}.site-header__wide-default-pointer,.site-header__dropdown-pointer{display:none}.site-header__wide-default{max-height:none;overflow:visible}.site-header__wide-default-head{display:none}.site-header__wide-default-body{display:flex;flex-direction:column;gap:0;flex:none;overflow:visible;padding-bottom:0;scrollbar-width:auto}.site-header__wide-default--figma .site-header__wide-default-body{display:flex;flex-direction:column;grid-template-columns:none}.site-header__wide-default-panel{position:static;inset:auto;margin:0;padding:0 0 var(--space-8);border-top:0;overflow:visible;overscroll-behavior:auto}.site-header__wide-default-list{gap:0}.site-header__wide-default-item{border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 65%,transparent)}.site-header__wide-default-item:last-child{border-bottom:0}.site-header__wide-default-link{padding:var(--space-14) 0 var(--space-14) var(--space-16)}.site-header__menu-item--wide-default.is-open>.site-header__dropdown{margin-top:0;padding-bottom:0}.site-header__wide-default-aside{display:none}.site-header__wide-default-promo-col{width:100%;max-width:420px;align-self:flex-start;box-sizing:border-box;padding:var(--space-16) 0 var(--space-20)}.site-header__wide-default-promo,.site-header__wide-default-promo--banner-col{grid-template-columns:1fr;min-height:0;width:100%;max-width:420px}.site-header__wide-default-promo-visual-wrap{grid-column:1;grid-row:1;width:100%;max-width:100%;height:auto;align-self:stretch;justify-self:stretch}.site-header__wide-default-promo-visual{width:100%;max-width:100%;height:auto;aspect-ratio:auto}.site-header__wide-default-promo--banner-col .site-header__wide-default-promo-image,.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-image{width:100%;max-width:100%;height:100%;object-fit:cover;object-position:center}.site-header__wide-default--figma .site-header__wide-default-promo--banner-col .site-header__wide-default-promo-visual{height:150px;width:100%;max-width:100%}.site-header__wide-default-promo-copy{grid-column:1;grid-row:2}.site-header__wide-default-promo-copy{padding:0 var(--space-16) var(--space-16)}.site-header__wide-default-close{display:none}.site-header__wide-default--figma .site-header__wide-default-faq{display:none}.site-header__wide-default-nav-list{gap:0}.site-header__wide-default-nav-item{border-bottom:1px solid color-mix(in srgb,var(--ui-border-soft) 65%,transparent)}.site-header__wide-default-nav-item:last-child{border-bottom:0}}.footer-v1{position:relative;box-sizing:border-box;background:var(--bg-fill-footer);padding:var(--section-y-top) 0 var(--section-y-bottom);overflow:hidden;--footer-brand-max:263px;--footer-nav-max:320px;--footer-popular-max:340px;--footer-cta-min:320px;--footer-col-gap:var(--space-56);--footer-row-gap:var(--space-48);--footer-spacer:var(--space-40);--footer-cols:minmax(200px,var(--footer-brand-max)) var(--footer-spacer) minmax(120px,var(--footer-nav-max)) minmax(120px,var(--footer-popular-max)) minmax(var(--footer-cta-min),1fr)}.footer-v1 > .container{position:relative;z-index:1}.footer-v1__bg{position:absolute;top:0;right:0;bottom:0;z-index:0;display:block;width:clamp(480px,52vw,880px);height:auto;max-height:100%;pointer-events:none;opacity:0.2;object-fit:contain;object-position:right top}.footer-v1__top{position:relative;display:grid;grid-template-columns:var(--footer-cols);gap:var(--footer-row-gap) var(--footer-col-gap);align-items:start}.footer-v1__brand{position:relative;z-index:1;grid-column:1;display:flex;flex-direction:column;gap:var(--space-18);min-width:0}.footer-v1__menus{position:relative;z-index:1;grid-column:3 \/ 5;display:grid;grid-template-columns:minmax(120px,var(--footer-nav-max)) minmax(120px,var(--footer-popular-max));gap:var(--footer-col-gap);min-width:0;align-items:start}.footer-v1__nav,.footer-v1__popular{min-width:0}.footer-v1__cta{position:relative;z-index:1;grid-column:5;min-width:0}.footer-v1__logo-link{display:inline-flex;align-items:flex-start;text-decoration:none}.footer-v1__logo{display:block;width:var(--logo-w);max-width:100%;height:auto}.footer-v1__tagline{margin:0;max-width:263px;color:var(--brand-dark);line-height:1.3}.footer-v1__contacts{--footer-contact-icon:24px;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-10)}.footer-v1__contact-row{display:grid;grid-template-columns:var(--footer-contact-icon) minmax(0,1fr);column-gap:var(--space-6);align-items:center;margin:0;color:var(--text-secondary);text-decoration:none;text-align:left}.footer-v1__contact-row--phone:hover,.footer-v1__contact-row--phone:focus-visible{color:var(--brand-dark)}.footer-v1__contact-icon{display:block;width:19px;height:var(--footer-contact-icon);justify-self:center;color:var(--brand)}.footer-v1__contact-row--phone .footer-v1__contact-icon{width:16px;height:16px}.footer-v1__hours{margin:0;padding-left:calc(var(--footer-contact-icon) + var(--space-6));color:var(--text-muted);text-align:left}.footer-v1__col-title{margin:0 0 var(--space-24);font-weight:600;color:var(--text-primary)}.footer-v1__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-12)}.footer-v1__link{text-decoration:none;color:var(--text-secondary)}.footer-v1__link:hover,.footer-v1__link:focus-visible{color:var(--brand-dark);text-decoration:underline}.footer-v1__cta-card{width:100%;max-width:520px;min-width:0;border-radius:var(--radius);background:var(--white-opacity-40);backdrop-filter:blur(var(--glass-blur-mobile));-webkit-backdrop-filter:blur(var(--glass-blur-mobile));padding:var(--space-24) var(--space-28);box-sizing:border-box}.footer-v1__cta-title{margin:0;color:var(--text-primary)}.footer-v1__cta-lead{margin:0;max-width:350px;color:var(--text-secondary)}.footer-v1__form{display:flex;flex-direction:column;gap:var(--space-16);margin-top:var(--space-20)}.footer-v1__form-row{display:flex;flex-wrap:wrap;gap:var(--space-10);align-items:stretch}.footer-v1__field{flex:1 1 252px;min-width:230px;max-width:100%}.footer-v1__input{width:100%;min-width:0;min-height:54px;border-color:color-mix(in srgb,var(--text-muted) 55%,var(--ui-border-soft));background:color-mix(in srgb,var(--bg-fill-surface) 55%,transparent)}.footer-v1__submit{flex:1 1 201px;min-width:201px;max-width:100%;width:auto;min-height:54px;padding-inline:var(--space-32);text-transform:uppercase}.footer-v1__consent{display:flex;gap:var(--space-24);align-items:flex-start;color:var(--text-muted);cursor:pointer}.footer-v1__checkbox{width:20px;height:20px;flex:none;margin:0;border-radius:var(--radius-sm);accent-color:var(--brand)}.footer-v1__consent-text{line-height:1.3;max-width:420px}.footer-v1__consent-link{color:inherit;text-decoration:underline;text-underline-offset:2px;transition:color .16s ease,text-decoration-color .16s ease}.footer-v1__consent-link:hover,.footer-v1__consent-link:focus-visible{color:var(--brand-dark);text-decoration-color:currentColor}.footer-v1__divider{position:relative;z-index:1;height:1px;width:100%;margin-top:var(--space-40);background:var(--ui-divider)}.footer-v1__bottom{position:relative;z-index:1;display:grid;grid-template-columns:var(--footer-cols);gap:var(--footer-row-gap) var(--footer-col-gap);align-items:start;padding-top:var(--space-32)}.footer-v1__meta{grid-column:1}.footer-v1__bottom-links{grid-column:2 \/ 5;display:flex;gap:var(--space-32);flex-wrap:wrap;align-items:center}.footer-v1__aside{grid-column:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-16) var(--space-24);min-width:0}.footer-v1__dev{flex:0 0 auto}.footer-v1__meta-line{margin:0 0 var(--space-8);color:var(--text-muted)}.footer-v1__meta-line:last-child{margin-bottom:0}.footer-v1__bottom-link{text-decoration:none;color:var(--text-muted);line-height:1.3}.footer-v1__bottom-link:hover,.footer-v1__bottom-link:focus-visible{color:var(--text-secondary);text-decoration:underline}.footer-v1__accessibility{display:flex;align-items:center;gap:var(--space-14);flex:0 1 auto;min-width:max-content;max-width:100%;text-decoration:none;color:var(--text-muted)}.footer-v1__accessibility-label{overflow-wrap:normal}.footer-v1__accessibility:hover,.footer-v1__accessibility:focus-visible{color:var(--text-secondary)}.footer-v1__accessibility-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--brand);flex:none}.footer-v1__accessibility-icon .icon{width:24px;height:24px}.footer-v1__dev-logo{display:block;width:221px;max-width:100%;height:auto}.footer-v1__legal{position:relative;z-index:1;display:grid;grid-template-columns:var(--footer-cols);gap:var(--footer-row-gap) var(--footer-col-gap);margin-top:var(--space-40)}.footer-v1__legal-text{grid-column:2 \/ -1;margin:0;padding-top:var(--space-32);border-top:1px solid var(--ui-divider);text-align:left;text-transform:uppercase;font-weight:400;color:var(--ui-border-strong);letter-spacing:-0.02em}@media (min-width:1801px){.footer-v1__aside{flex-wrap:nowrap;gap:var(--space-16)}.footer-v1__accessibility{flex:0 1 auto;max-width:none}.footer-v1__accessibility-label{white-space:nowrap}}@media (max-width:1800px){.footer-v1{--footer-nav-max:280px;--footer-popular-max:300px;--footer-col-gap:var(--space-48);--footer-row-gap:var(--space-40);--footer-spacer:var(--space-32)}}@media (max-width:1600px){.footer-v1{--footer-brand-max:240px;--footer-nav-max:220px;--footer-popular-max:240px;--footer-cta-min:380px;--footer-col-gap:var(--space-32);--footer-row-gap:var(--space-32);--footer-spacer:var(--space-16)}.footer-v1__dev-logo{width:180px}}@media (min-width:1366px){.footer-v1__nav,.footer-v1__popular{overflow-wrap:anywhere}}@media (max-width:1365px){.footer-v1{--footer-cols:minmax(240px,263px) minmax(0,1fr);--footer-col-gap:var(--space-32);--footer-row-gap:var(--space-28);--footer-spacer:var(--space-20)}.footer-v1__top{grid-template-columns:var(--footer-cols)}.footer-v1__brand{grid-column:1;grid-row:1 \/ span 2}.footer-v1__menus{grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.footer-v1__cta{grid-column:2;grid-row:2}.footer-v1__bottom,.footer-v1__legal{grid-template-columns:var(--footer-cols)}.footer-v1__bottom-links{grid-column:2}.footer-v1__aside{grid-column:2;grid-row:2}}@media (max-width:1200px){.footer-v1{--footer-col-gap:var(--space-24);--footer-row-gap:var(--space-32)}.footer-v1__top{grid-template-columns:1fr 1fr}.footer-v1__brand{grid-column:1;grid-row:1}.footer-v1__menus{grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.footer-v1__cta{grid-column:1 \/ -1;grid-row:2}.footer-v1__bottom{grid-template-columns:1fr 1fr;grid-template-areas:\"meta meta\" \"links links\" \"aside aside\"}.footer-v1__meta{grid-area:meta;grid-column:auto}.footer-v1__bottom-links{grid-area:links;grid-column:auto}.footer-v1__aside{grid-area:aside;grid-column:auto;grid-row:auto;justify-content:flex-end}.footer-v1__legal{grid-template-columns:1fr}.footer-v1__legal-text{grid-column:auto}}@media (max-width:991px){.footer-v1{padding:var(--section-y-mobile) 0;--footer-col-gap:var(--space-24);--footer-row-gap:var(--space-24);text-align:center;overflow-x:clip;overflow-y:visible}.footer-v1__dev-logo{width:221px;margin-inline:auto}.footer-v1__dev{justify-self:center;display:flex;justify-content:center;width:100%}.footer-v1__bg{top:0;bottom:0;right:0;width:367px;height:auto;min-height:0;overflow:visible}.footer-v1__top{grid-template-columns:1fr}.footer-v1__brand,.footer-v1__menus,.footer-v1__cta{grid-column:auto;grid-row:auto}.footer-v1__brand{align-items:center}.footer-v1__logo-link{justify-content:center}.footer-v1__contacts{align-self:center;width:max-content;max-width:100%}.footer-v1__menus{grid-template-columns:1fr;gap:var(--space-16)}.footer-v1__col-title{margin-bottom:var(--space-12);font-size:var(--text-body-sm)}.footer-v1__list{align-items:center;gap:var(--space-8)}.footer-v1__link{font-size:var(--text-body-sm)}.footer-v1__cta{display:flex;justify-content:center}.footer-v1__cta-card{padding:var(--space-20);text-align:center}.footer-v1__cta-head{align-items:center}.footer-v1__cta-lead{max-width:none}.footer-v1__consent{justify-content:center;text-align:center}.footer-v1__consent-text{max-width:none;text-align:center}.footer-v1__input{text-align:left}.footer-v1__divider{margin-top:var(--space-32)}.footer-v1__bottom{grid-template-columns:1fr;grid-template-areas:\"meta\" \"links\" \"aside\"}.footer-v1__meta,.footer-v1__bottom-links,.footer-v1__aside{grid-column:auto;grid-row:auto}.footer-v1__meta{grid-area:meta}.footer-v1__bottom-links{grid-area:links;justify-content:center}.footer-v1__aside{grid-area:aside;justify-content:center}.footer-v1__accessibility{min-width:0;max-width:100%;justify-content:center}.footer-v1__legal{grid-template-columns:1fr}.footer-v1__legal-text{grid-column:auto;text-align:center}}.back-to-top{position:fixed;right:18px;bottom:60px;z-index:9999;width:52px;height:52px;padding:0;border:0;border-radius:var(--radius-full);background:var(--brand);color:var(--text-on-brand);cursor:pointer;box-shadow:var(--shadow-dropdown);opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .16s ease,transform .16s ease,background-color .16s ease}.back-to-top:hover,.back-to-top:focus-visible{background:var(--brand-dark);outline:none}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top__icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1;font-weight:700;transform:translateY(-1px)}@media (max-width:1280px){.back-to-top{right:14px;width:48px;height:48px}}@media (max-width:768px){.back-to-top{bottom:var(--space-56)}}",
    "data": {
        "hero-variant-4": "\n\n$deps = ['swiper'];\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n\n$slide_bg_default = '\/assets\/src\/img\/hero\/hero-v4-bg.webp';\n$doctor_image_default = '\/assets\/src\/img\/hero\/hero-v4-doctor.png';\n$video_media_default = '\/assets\/src\/img\/hero\/hero-video.mp4';\n\n$form_exports = [\n    [\n        'id' => 'cta',\n        'type' => 'form-appointment',\n        'config' => [\n            'popup_form_show_service' => true,\n            'popup_form_show_name' => false,\n            'popup_form_title' => 'Записаться на&nbsp;консультацию',\n            'popup_form_lead' => 'Оставьте контакты — мы перезвоним и подберём удобное время для визита.',\n            'popup_form_submit_label' => 'Записаться на&nbsp;консультацию',\n            'popup_form_image' => '\/assets\/src\/img\/popup\/popup-form-appointment.webp',\n        ],\n    ],\n];\n\n$features = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $features[] = [\n            'title' => $item->title ?? '',\n            'text' => $item->description ?? '',\n            'icon' => !empty($item->icon) && !empty($item->icon->file_obj)\n                ? $item->icon->file_obj->getImage()\n                : '',\n        ];\n    }\n}\n\n$doctor_image = $doctor_image_default;\n$doctor_name = '';\n$doctor_url = '\/doctors\/';\n$doctor_role = '';\n$doctor_quote = $block->description2 ?? '';\n\nif (!empty($block->member_id) && $block->member) {\n    $member = $block->member;\n    $doctor_image = (!empty($member->image) && !empty($member->image_obj))\n        ? $member->image_obj->getImage()\n        : $doctor_image_default;\n    $doctor_name = trim(($member->last_name ?? '') . ' ' . ($member->first_name ?? ''));\n    if ($doctor_name === '') {\n        $doctor_name = $member->title ?? '';\n    }\n    $doctor_url = $member->selfUrl ?? '\/doctors\/';\n    $doctor_role = $member->position ?? '';\n}\n\n$slides = [\n    [\n        'title' => $block->title ?? '',\n        'subtitle' => $block->description ?? '',\n        'cta' => $block->link_title ?? '',\n        'cta_form' => 'form-appointment--cta',\n        'video_label' => $block->eyebrow ?? '',\n        'video_media' => $block->video ?? $video_media_default,\n        'bg_image' => (!empty($block->image) && !empty($block->image_obj))\n            ? $block->image_obj->getImage()\n            : $slide_bg_default,\n        'bg_alt' => $block->image_alt ?? '',\n        'doctor_image' => $doctor_image,\n        'doctor_name' => $doctor_name,\n        'doctor_url' => $doctor_url,\n        'doctor_role' => $doctor_role,\n        'doctor_quote' => $doctor_quote,\n        'features' => $features,\n    ],\n];\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'slide_bg_default' => $slide_bg_default,\n    'doctor_image_default' => $doctor_image_default,\n    'video_media_default' => $video_media_default,\n    'form_exports' => $form_exports,\n    'slides' => $slides,\n];\n",
        "benefits-variant-1": "\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$section_bg = $block->view2 ?? 'page';\n\n$default_card_icon_src = '\/assets\/src\/img\/benefits\/benefits-icon-cross.svg';\n\n$decor_src = '';\nif (!empty($block->icon) && !empty($block->icon->file_obj)) {\n    $decor_src = trim((string) $block->icon->file_obj->getImage());\n}\n\n$items = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $card_icon_src = '';\n        if (!empty($item->icon) && !empty($item->icon->file_obj)) {\n            $card_icon_src = trim((string) $item->icon->file_obj->getImage());\n        }\n\n        $items[] = [\n            'title' => $item->title ?? '',\n            'text' => $item->description ?? '',\n            'icon_src' => $card_icon_src,\n        ];\n    }\n}\n\n$article = false;\nif (!empty($block->article_id) && !empty($block->article)) {\n    $articleModel = $block->article;\n    $article = [\n        'title' => $articleModel->title ?? '',\n        'text' => trim((string) ($articleModel->description ?? '')),\n        'link_label' => trim((string) ($articleModel->link_title ?? '')),\n        'url' => trim((string) ($articleModel->selfUrl ?? '')),\n        'icon_src' => '\/assets\/src\/img\/benefits\/open-book.svg',\n    ];\n}\n\nreturn [\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'default_card_icon_src' => $default_card_icon_src,\n    'decor_src' => $decor_src,\n    'items' => $items,\n    'section_bg' => $section_bg,\n    'article' => $article,\n];\n",
        "our-approach-variant-1": "\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$steps_num_style = $block->view ?? 'slash';\n$section_bg = $block->view2 ?? 'page'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\n$hero_image = '';\nif (!empty($block->image) && !empty($block->image_obj)) {\n    $hero_image = trim((string) $block->image_obj->getImage());\n}\n\n$bg_texture = '\/assets\/src\/img\/grayscale-background.webp';\nif (!empty($block->image2) && !empty($block->image2_obj)) {\n    $bg_texture = $block->image2_obj->getImage();\n}\n\n$decor_svg = '\/assets\/src\/img\/our-approach\/decor.svg';\nif (!empty($block->image3) && !empty($block->image3_obj)) {\n    $decor_svg = $block->image3_obj->getImage();\n}\n\n$steps = [];\nif (!empty($block->items_1_real)) {\n    $stepNum = 1;\n    foreach ($block->items_1_real as $item) {\n        $steps[] = [\n            'num' => str_pad((string) $stepNum, 2, '0', STR_PAD_LEFT),\n            'title' => $item->title ?? '',\n            'text' => $item->description ?? '',\n        ];\n        $stepNum++;\n    }\n}\n\n$cta_eyebrow = $block->eyebrow2 ?? '';\n$cta_title = $block->title2 ?? '';\n$cta_subtitle = $block->description2 ?? '';\n$cta_lead = $block->description3 ?? '';\n$cta_btn = $block->link_title ?? '';\n$form_exports = [\n    ['id' => 'cta', 'type' => 'form-appointment', 'config' => []],\n];\n$cta_consent_html = 'Нажимая на кнопку, вы соглашаетесь с&nbsp;<a class=\"our-approach-v1__consent-link text-decoration-fade\" href=\"\/policy\" onclick=\"event.stopPropagation()\">политикой обработки персональных данных<\/a>';\n\nreturn [\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'hero_image' => $hero_image,\n    'bg_texture' => $bg_texture,\n    'decor_svg' => $decor_svg,\n    'steps_num_style' => $steps_num_style,\n    'steps' => $steps,\n    'cta_eyebrow' => $cta_eyebrow,\n    'cta_title' => $cta_title,\n    'cta_subtitle' => $cta_subtitle,\n    'cta_lead' => $cta_lead,\n    'cta_btn' => $cta_btn,\n    'form_exports' => $form_exports,\n    'cta_consent_html' => $cta_consent_html,\n    'section_bg' => $section_bg,\n];\n",
        "services-variant-3": "\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$cta_label = $block->link_title ?? '';\n$all_link_label = $block->title2 ?? '';\n$all_link_url = $block->link ?? '\/services\/';\n$tab_active_style = trim((string) ($block->view ?? 'filled'));\nif (!in_array($tab_active_style, ['filled', 'soft'], true)) {\n    $tab_active_style = 'filled';\n}\n$section_bg = $block->view2 ?? 'bg-gradient-page';\n\n$fallback_image = '';\nif (!empty($block->image) && !empty($block->image_obj)) {\n    $fallback_image = trim((string) $block->image_obj->getImage());\n}\n\n$items = [];\n$services = \\app\\models\\Service::find()\n    ->where(['depth' => 1])\n    ->orderBy('lft ASC')\n    ->published()\n    ->all();\n\nforeach ($services as $service) {\n    $image = $fallback_image;\n    if (!empty($service->image) && !empty($service->image_obj)) {\n        $image = trim((string) $service->image_obj->getImage());\n    }\n\n    $items[] = [\n        'name' => $service->title ?? '',\n        'text' => $service->description ?? '',\n        'url' => $service->selfUrl ?? '#',\n        'image' => $image,\n    ];\n}\n\nreturn [\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'cta_label' => $cta_label,\n    'all_link_label' => $all_link_label,\n    'all_link_url' => $all_link_url,\n    'tab_active_style' => $tab_active_style,\n    'items' => $items,\n    'section_bg' => $section_bg,\n];\n",
        "cases-variant-1": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$section_bg = $block->view2 ?? 'surface';\n\n$cases = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $case_item = [\n            'category' => $item->description ?? '',\n            'title' => $item->title ?? '',\n            'text' => $item->description2 ?? '',\n            'before_image' => '',\n            'after_image' => '',\n            'meta' => [],\n        ];\n\n        if (!empty($item->image) && !empty($item->image_obj)) {\n            $case_item['before_image'] = trim((string) $item->image_obj->getImage());\n        }\n        if (!empty($item->image2) && !empty($item->image2_obj)) {\n            $case_item['after_image'] = trim((string) $item->image2_obj->getImage());\n        }\n\n        if (!empty($item->subitems_real)) {\n            foreach ($item->subitems_real as $subitem) {\n                $case_item['meta'][] = [\n                    'label' => $subitem->title ?? '',\n                    'value' => $subitem->param1 ?? '',\n                ];\n            }\n        }\n\n        $cases[] = $case_item;\n    }\n}\n\n$handle_src = '\/assets\/src\/img\/cases\/handle.svg';\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'cases' => $cases,\n    'handle_src' => $handle_src,\n    'section_bg' => $section_bg,\n];\n",
        "doctors-variant-1": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$all_link_label = $block->link_title ?? '';\n$all_link_url = $block->link ?? '';\n\n$panel_eyebrow = $block->eyebrow2 ?? '';\n$panel_features = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $panel_features[] = [\n            'title' => $item->title ?? '',\n            'text' => $item->description ?? '',\n        ];\n    }\n}\n\n$panel_stats = [];\nif (!empty($block->items_2_real)) {\n    foreach ($block->items_2_real as $item) {\n        $panel_stats[] = [\n            'value' => $item->description ?? '',\n            'label' => $item->title ?? '',\n        ];\n    }\n}\n\n$medal_src = '\/assets\/src\/img\/doctors\/medal.svg';\n$doctors_back_image = '\/assets\/src\/img\/doctors\/doctors-back.jpg';\nif (!empty($block->image) && !empty($block->image_obj)) {\n    $doctors_back_image = $block->image_obj->getImage();\n}\n$section_bg = $block->view2 ?? 'surface'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n$badge_style = $block->param1 ?? 'fill';\n\n$form_exports = [];\n$doctors = [];\n$members = \\app\\models\\Member::find()->published()->ordered()->all();\n\nforeach ($members as $index => $member) {\n    $cta_id = 'doctor-' . ($index + 1) . '-cta';\n    $form_exports[] = ['id' => $cta_id, 'type' => 'form-appointment', 'config' => []];\n\n    $image = '';\n    if (!empty($member->image) && !empty($member->image_obj)) {\n        $image = $member->image_obj->getImage();\n    }\n\n    $doctors[] = [\n        'name_last' => $member->last_name ?? '',\n        'name_first' => $member->first_name ?? '',\n        'specialty' => $member->speciality ?? '',\n        'role' => $member->position ?? '',\n        'experience' => $member->experience_label ?? '',\n        'rating' => $member->rating ?? '',\n        'image' => $image,\n        'image_has_bg' => !empty($member->image_has_bg),\n        'url' => $member->selfUrl ?? '#',\n        'cta_form' => $cta_id,\n    ];\n}\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'all_link_label' => $all_link_label,\n    'all_link_url' => $all_link_url,\n    'panel_eyebrow' => $panel_eyebrow,\n    'panel_features' => $panel_features,\n    'panel_stats' => $panel_stats,\n    'medal_src' => $medal_src,\n    'doctors_back_image' => $doctors_back_image,\n    'badge_style' => $badge_style,\n    'form_exports' => $form_exports,\n    'doctors' => $doctors,\n    'section_bg' => $section_bg,\n];\n",
        "quiz-variant-1": "\n\/* ==== DATA ==== *\/\n$heading_level = 'h2';\n\n$step_current = 1;\n$step_total   = 4;\n$step_label   = \"Шаг {$step_current} из {$step_total}\";\n\n$eyebrow = 'подберём решение именно для вас';\n\n$title   = 'Узнайте, <span class=\"accent\">какой вариант имплантации подойдет именно вам<\/span>';\n$lead    = 'Ответьте на несколько вопросов — и мы подготовим персональные рекомендации и план действий для вашей ситуации.';\n\n$decor_image = '\/assets\/src\/img\/quiz\/decor.png';\n\n$promo_tag  = 'для новых пациентов';\n$promo_text = 'Консультация имплантолога и 3D-диагностика в подарок';\n$promo_gift = '\/assets\/src\/img\/quiz\/gift.svg';\n\n$step1_question = 'Что вас беспокоит больше всего?';\n$step1_options  = [\n    [\n        'value' => 'missing',\n        'label' => 'Не хватает одного или нескольких зубов',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step1-icon1.svg',\n    ],\n    [\n        'value' => 'smile',\n        'label' => 'Не устраивает внешний вид улыбки',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step1-icon2.svg',\n    ],\n    [\n        'value' => 'pain',\n        'label' => 'Дискомфорт или боль при жевании',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step1-icon3.svg',\n    ],\n    [\n        'value' => 'full-jaw',\n        'label' => 'Хочу восстановить зубы на всю челюсть',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step1-icon4.svg',\n    ],\n    [\n        'value' => 'explore',\n        'label' => 'Просто хочу узнать свои варианты',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step1-icon5.svg',\n    ],\n];\n\n$step2_question = 'Сколько зубов нужно восстановить?';\n$step2_options  = [\n    [\n        'value' => '1',\n        'label' => '1 зуб',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step2-icon1.svg',\n    ],\n    [\n        'value' => '2-3',\n        'label' => '2–3 зуба',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step2-icon2.svg',\n    ],\n    [\n        'value' => '4-6',\n        'label' => '4–6 зубов',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step2-icon3.svg',\n    ],\n    [\n        'value' => 'full-row',\n        'label' => 'Почти все \/ весь ряд',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step2-icon4.svg',\n    ],\n    [\n        'value' => 'unknown',\n        'label' => 'Точно не знаю (нужна диагностика)',\n        'icon'  => '\/assets\/src\/img\/quiz\/quiz-v1-step2-icon5.svg',\n    ],\n];\n\n$step3_question = 'Когда вы хотите начать лечение?';\n$step3_options  = [\n    [\n        'value' => 'asap',\n        'label' => 'Как можно скорее (в ближайшие 1–2 недели)',\n    ],\n    [\n        'value' => 'month',\n        'label' => 'В течение месяца',\n    ],\n    [\n        'value' => '2-3-months',\n        'label' => 'В ближайшие 2–3 месяца',\n    ],\n    [\n        'value' => 'later',\n        'label' => 'Пока просто узнаю варианты \/ планирую позже',\n    ],\n    [\n        'value' => 'cost',\n        'label' => 'Зависит от стоимости — хочу рассчитать',\n    ],\n];\n\n$step4_question     = 'Куда отправить результат?';\n$step4_name_label   = 'Ваше имя';\n$step4_phone_label  = '+7(___) ___-__-__';\n$step4_email_label  = 'Email (необязательно)';\n$step4_consent_html = 'Нажимая на кнопку, вы соглашаетесь с&nbsp;<a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\">политикой обработки персональных данных<\/a>';\n$step4_submit_label = 'Получить рекомендации';\n$step4_bonus_tag    = 'ваш бонус';\n$step4_bonus_text   = 'Консультация имплантолога и 3D-диагностика в подарок';\n$step4_bonus_doctor = '\/assets\/src\/img\/quiz\/quiz-v1-step4-doctor.jpg';\n\n$step4_eyebrow       = 'спасибо за ваши ответы';\n$step4_title         = 'Мы подобрали решения <span class=\"accent\">именно для вас<\/span>';\n$step4_lead          = 'Оставьте контактные данные — и наш координатор свяжется с вами, чтобы пригласить на консультацию и ответить на любые вопросы.';\n$step4_callback_text = 'Свяжемся с вами в течение 15 минут в рабочее время';\n\n$continue_label = 'Продолжить';\n$back_label     = 'Назад';\n$privacy_text   = 'Ваши данные защищены и не передаются третьим лицам.';\n$show_privacy_icon = true;\n\n$section_bg = 'bg-gradient-bottom-light'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\nreturn [\n    'heading_level' => $heading_level,\n    'step_current' => $step_current,\n    'step_total' => $step_total,\n    'step_label' => $step_label,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'decor_image' => $decor_image,\n    'promo_tag' => $promo_tag,\n    'promo_text' => $promo_text,\n    'promo_gift' => $promo_gift,\n    'step1_question' => $step1_question,\n    'step1_options' => $step1_options,\n    'step2_question' => $step2_question,\n    'step2_options' => $step2_options,\n    'step3_question' => $step3_question,\n    'step3_options' => $step3_options,\n    'step4_question' => $step4_question,\n    'step4_name_label' => $step4_name_label,\n    'step4_phone_label' => $step4_phone_label,\n    'step4_email_label' => $step4_email_label,\n    'step4_consent_html' => $step4_consent_html,\n    'step4_submit_label' => $step4_submit_label,\n    'step4_bonus_tag' => $step4_bonus_tag,\n    'step4_bonus_text' => $step4_bonus_text,\n    'step4_bonus_doctor' => $step4_bonus_doctor,\n    'step4_eyebrow' => $step4_eyebrow,\n    'step4_title' => $step4_title,\n    'step4_lead' => $step4_lead,\n    'step4_callback_text' => $step4_callback_text,\n    'continue_label' => $continue_label,\n    'back_label' => $back_label,\n    'privacy_text' => $privacy_text,\n    'show_privacy_icon' => $show_privacy_icon,\n    'section_bg' => $section_bg\n];",
        "reviews-variant-1": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$all_link_label = $block->link_title ?? '';\n$all_link_url = $block->link ?? '#reviews';\n$platforms_title = $block->title2 ?? '';\n$section_bg = $block->view2 ?? 'page'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n$card_bg = $block->param1 ?? 'mix';\n\n$leave_review_label = 'Оставить отзыв';\n$cta_title = $block->title3 ?? 'У каждого пациента своя история. Давайте обсудим вашу.';\n$cta_text = $block->description2 ?? 'Оставьте заявку — мы подберем решение, которое подходит именно вам, и ответим на все ваши вопросы.';\n$cta_btn_label = 'получить консультацию';\n$cta_notes = ['Конфиденциально', 'Без навязывания услуг'];\n$form_exports = [\n    ['id' => 'leave-review', 'type' => 'form-review', 'config' => []],\n    ['id' => 'cta', 'type' => 'form-appointment', 'config' => []],\n];\n$chat_icon_src = '\/assets\/src\/img\/reviews\/icon-chat.svg';\n$cta_pattern_src = '\/assets\/src\/img\/reviews\/cta-pattern.webp';\n\n$review_limit = (int) ($block->number1 ?? 12);\nif ($review_limit <= 0) {\n    $review_limit = 12;\n}\n\n$text_reviews = [];\n$review_models = \\app\\models\\Review::find()\n    ->published()\n    ->orderBy(['created_at' => SORT_DESC])\n    ->limit($review_limit)\n    ->all();\n\nforeach ($review_models as $review) {\n    $card = [\n        'name' => $review->title ?? '',\n        'age' => $review->age ?? '',\n        'rating' => (float) ($review->rating ?? 5),\n        'text' => $review->text ?? '',\n    ];\n\n    if (!empty($review->service)) {\n        $card['service'] = $review->service->title ?? '';\n    }\n    if (!empty($review->member)) {\n        $card['doctor'] = $review->member->title ?? '';\n    }\n    if (!empty($review->review_source) && !empty($review->review_source->image) && !empty($review->review_source->image_obj)) {\n        $card['source_logo'] = $review->review_source->image_obj->getImage();\n    }\n    if (!empty($review->created_at)) {\n        $card['date'] = date('d.m.y', strtotime($review->created_at));\n    }\n\n    $text_reviews[] = $card;\n}\n\n$video_review = null;\nif (!empty($block->video)) {\n    $video_review = [\n        'name' => $block->title3 ?? '',\n        'age' => $block->param2 ?? '',\n        'rating' => (float) ($block->number3 ?? 5),\n        'poster' => '',\n        'video_src' => $block->video,\n        'service' => $block->description3 ?? '',\n    ];\n\n    if (!empty($block->image) && !empty($block->image_obj)) {\n        $video_review['poster'] = $block->image_obj->getImage();\n    }\n}\n$video_review_position = (int) ($block->number2 ?? 2);\n\n$platforms = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $platform = [\n            'logo' => '',\n            'logo_w' => (int) ($item->param2 ?? 196),\n            'logo_h' => (int) ($item->param3 ?? 42),\n            'rating' => $item->param1 ?? '5.0',\n            'count' => $item->title ?? '',\n            'url' => $item->link ?? '#',\n        ];\n\n        if (!empty($item->image) && !empty($item->image_obj)) {\n            $platform['logo'] = $item->image_obj->getImage();\n        }\n\n        $platforms[] = $platform;\n    }\n} else {\n    $sources = \\app\\models\\ReviewSource::find()->published()->ordered()->all();\n    foreach ($sources as $source) {\n        $logo = '';\n        if (!empty($source->image) && !empty($source->image_obj)) {\n            $logo = $source->image_obj->getImage();\n        }\n\n        $count = (int) \\app\\models\\Review::find()\n            ->published()\n            ->andWhere(['review_source_id' => $source->id])\n            ->count();\n\n        $platforms[] = [\n            'logo' => $logo,\n            'logo_w' => 196,\n            'logo_h' => 42,\n            'rating' => (string) ($source->rating ?? '5.0'),\n            'count' => $count . ' ' . \\app\\helpers\\base\\TextHelper::getNumEnding($count, ['отзыв', 'отзыва', 'отзывов']),\n            'url' => $source->url ?? '#',\n        ];\n    }\n}\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'all_link_label' => $all_link_label,\n    'all_link_url' => $all_link_url,\n    'platforms_title' => $platforms_title,\n    'leave_review_label' => $leave_review_label,\n    'cta_title' => $cta_title,\n    'cta_text' => $cta_text,\n    'cta_btn_label' => $cta_btn_label,\n    'cta_notes' => $cta_notes,\n    'form_exports' => $form_exports,\n    'chat_icon_src' => $chat_icon_src,\n    'cta_pattern_src' => $cta_pattern_src,\n    'section_bg' => $section_bg,\n    'card_bg' => $card_bg,\n    'text_reviews' => $text_reviews,\n    'video_review' => $video_review,\n    'video_review_position' => $video_review_position,\n    'platforms' => $platforms,\n];\n",
        "treatment-plans-variant-1": "\n\/* ==== DATA ==== *\/\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$trust_label = $block->title2 ?? '';\n$disclaimer = $block->description2 ?? '';\n\n$plans = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $features = [];\n        if (!empty($item->description2)) {\n            foreach (explode(\"\\n\", $item->description2) as $line) {\n                $line = trim($line);\n                if ($line !== '') {\n                    $features[] = $line;\n                }\n            }\n        }\n\n        $plans[] = [\n            'title' => $item->title ?? '',\n            'summary' => $item->description ?? '',\n            'icon' => !empty($item->icon) && !empty($item->icon->file_obj)\n                ? trim((string) $item->icon->file_obj->getImage())\n                : '',\n            'image' => !empty($item->image) && !empty($item->image_obj)\n                ? $item->image_obj->getImage()\n                : '',\n            'price' => !empty($item->price)\n                ? (\\app\\helpers\\base\\TextHelper::price($item->price) . '  ₽')\n                : '',\n            'url' => $item->link ?? '#',\n            'features' => $features,\n        ];\n    }\n}\n\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'trust_label' => $trust_label,\n    'disclaimer' => $disclaimer,\n    'plans' => $plans,\n    'section_bg' => $section_bg,\n];\n",
        "brands-variant-2": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light';\n\n$slides = [];\nif (!empty($block->items_1_real)) {\n    $slide_page = [];\n    foreach ($block->items_1_real as $item) {\n        if (empty($item->image) || empty($item->image_obj)) {\n            continue;\n        }\n\n        $slide_page[] = [\n            'src' => trim((string) $item->image_obj->getImage()),\n            'alt' => trim((string) (!empty($item->image_alt) ? $item->image_alt : ($item->title ?? ''))),\n        ];\n\n        if (count($slide_page) === 4) {\n            $slides[] = $slide_page;\n            $slide_page = [];\n        }\n    }\n    if ($slide_page !== []) {\n        $slides[] = $slide_page;\n    }\n}\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'slides' => $slides,\n    'section_bg' => $section_bg,\n];\n",
        "utp-in-numbers-variant-1": "\n\n$section_id = 'utp-in-numbers-' . $block->id;\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$title = $block->title ?? '';\n$assets_dir = '\/assets\/src\/img\/utp-in-numbers';\n\n$cards = [];\nif (!empty($block->items_1_real)) {\n    $idx = 1;\n    foreach ($block->items_1_real as $item) {\n        $idxFormatted = str_pad($idx, 2, '0', STR_PAD_LEFT);\n        $kind = $item->view ?? 'stat';\n\n        $image = '';\n        if (!empty($item->image) && !empty($item->image_obj)) {\n            $image = trim((string) $item->image_obj->getImage());\n        }\n\n        $card = [\n            'kind' => $kind,\n            'idx' => $idxFormatted . '\/',\n            'image' => $image,\n        ];\n\n        if ($kind === 'stat') {\n            $card['value'] = $item->title2 ?? '';\n            $card['text'] = $item->description ?? '';\n            $card['theme'] = 'brand';\n            $icon = '';\n            if (!empty($item->icon) && !empty($item->icon->file_obj)) {\n                $icon = trim((string) $item->icon->file_obj->getImage());\n            }\n            $card['icon'] = $icon;\n            $iconBg = $item->view2 ?? 'surface';\n            $card['show_icon_box'] = $iconBg !== 'none' && $icon !== '';\n            if ($card['show_icon_box']) {\n                $card['icon_bg'] = $iconBg;\n            }\n        } elseif ($kind === 'info') {\n            $card['title'] = $item->title ?? '';\n            $card['text'] = $item->description ?? '';\n            $card['theme'] = 'alt';\n        } elseif ($kind === 'photo') {\n            $card['alt'] = $item->image_alt ?? '';\n            $card['video_mp4'] = $item->video ?? '';\n            $card['poster'] = $image;\n        }\n\n        $cards[$idxFormatted] = $card;\n        $idx++;\n    }\n}\n\n$section_bg = $block->view2 ?? 'page'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\nreturn [\n    'section_id' => $section_id,\n    'heading_level' => $heading_level,\n    'title' => $title,\n    'assets_dir' => $assets_dir,\n    'cards' => $cards,\n    'section_bg' => $section_bg,\n];\n",
        "guarantees-variant-2": "\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$banner_copy_style = $block->view3 ?? 'single';\nif (!in_array($banner_copy_style, ['stack', 'single'], true)) {\n    $banner_copy_style = 'single';\n}\n\n$banner_title = $block->title2 ?? '';\n$banner_text = $banner_copy_style === 'stack'\n    ? ($block->description2 ?? '')\n    : ($block->title2 ?? '');\n\n$banner_image = '';\nif (!empty($block->image) && !empty($block->image_obj)) {\n    $banner_image = trim((string) $block->image_obj->getImage());\n}\n\n$banner_image_mobile = '';\nif (!empty($block->image2) && !empty($block->image2_obj)) {\n    $banner_image_mobile = trim((string) $block->image2_obj->getImage());\n}\n\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light';\n\n$form_title = 'Остались вопросы?';\n$form_text = 'Оставьте ваши данные — мы свяжемся с вами и ответим на все вопросы';\n$phone_label = '+7 (___)-___-__-__';\n$btn_label = 'Продолжить';\n$consent_html = 'Нажимая на кнопку, вы соглашаетесь с&nbsp;<a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\">политикой обработки персональных данных<\/a>';\n\n$form_icon_sprite = '';\n$form_icon_src = '';\n\n$cards = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $card_icon = '';\n        if (!empty($item->icon) && !empty($item->icon->file_obj)) {\n            $card_icon = trim((string) $item->icon->file_obj->getImage());\n        }\n        $cards[] = [\n            'title' => $item->title ?? '',\n            'text' => $item->description ?? '',\n            'icon' => $card_icon,\n        ];\n    }\n}\n\nreturn [\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'cards' => $cards,\n    'banner_copy_style' => $banner_copy_style,\n    'banner_title' => $banner_title,\n    'banner_text' => $banner_text,\n    'banner_image' => $banner_image,\n    'banner_image_mobile' => $banner_image_mobile,\n    'form_title' => $form_title,\n    'form_text' => $form_text,\n    'form_icon_sprite' => $form_icon_sprite,\n    'form_icon_src' => $form_icon_src,\n    'phone_label' => $phone_label,\n    'btn_label' => $btn_label,\n    'consent_html' => $consent_html,\n    'section_bg' => $section_bg,\n];\n",
        "gallery-variant-1": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n$cta_label = $block->link_title ?? '';\n$form_exports = [\n    ['id' => 'cta', 'type' => 'form-appointment', 'config' => []],\n];\n$section_bg = $block->view2 ?? 'page';\n\n$items = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $card = [\n            'src' => '',\n            'alt' => $item->image_alt ?? '',\n        ];\n\n        if (!empty($item->image) && !empty($item->image_obj)) {\n            $card['src'] = trim((string) $item->image_obj->getImage());\n        }\n\n        $items[] = $card;\n    }\n}\n\n$initial_index = 0;\n$initial_index = max(0, min(count($items) - 1, (int) $initial_index));\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'cta_label' => $cta_label,\n    'form_exports' => $form_exports,\n    'items' => $items,\n    'initial_index' => $initial_index,\n    'section_bg' => $section_bg,\n];\n",
        "about-variant-1": "\n$heading_level = $block->is_h1?'h1':'h2';\n$eyebrow       = $block->eyebrow;\n$title         = $block->title;\n$lead          = $block->description;\n\n$paragraphs = \\app\\helpers\\base\\TextHelper::textArray($block->description2);\n$closing = $block->description3;\n\n$more_label = trim((string) ($block->link_title ?? ''));\n$more_url   = trim((string) ($block->link ?? ''));\n$expand_label = \\app\\models\\SystemSettings::getParam('common', 'read_more', 'Читать полностью');\n$collapse_label = \\app\\models\\SystemSettings::getParam('common', 'read_more_collapse', 'Свернуть');\n\n$doctor_name = '';\n$doctor_role = '';\n$doctor_photo = '';\nif ($block->member) {\n    $doctor_name = $block->member->first_name;\n    $doctor_role = $block->member->position;\n    $doctor_photo = $block->member->image_obj->getImage();\n}\n$doctor_signature = $block->image_obj->getImage();\n\n$profile_side = $block->view ?? 'right';\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\nreturn [\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'paragraphs' => $paragraphs,\n    'closing' => $closing,\n    'more_label' => $more_label,\n    'more_url' => $more_url,\n    'expand_label' => $expand_label,\n    'collapse_label' => $collapse_label,\n    'doctor_name' => $doctor_name,\n    'doctor_role' => $doctor_role,\n    'doctor_photo' => $doctor_photo,\n    'doctor_signature' => $doctor_signature,\n    'profile_side' => $profile_side,\n    'section_bg' => $section_bg\n];",
        "news-variant-2": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$all_link_label = $block->link_title ?? '';\n$all_link_url = $block->link ?? '#news';\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\n$items = [];\n$articles = \\app\\models\\Article::find()->published()->orderBy('date DESC')->limit(6)->all();\n\nforeach ($articles as $article) {\n    $item = [\n        'url' => $article->selfUrl ?? '#',\n        'title' => $article->title ?? '',\n        'category' => $article->category ?? '',\n        'expert' => '',\n        'date' => '',\n        'read_time' => $article->read_time ?? '',\n    ];\n\n    if (!empty($article->date)) {\n        $item['date'] = $article->date_obj->format('j [' . date('n', $article->date_obj->timeStamp()) . '] Y');\n    }\n\n    if (!empty($article->image) && !empty($article->image_obj)) {\n        $item['image'] = $article->image_obj->getImage();\n    }\n\n    if (!empty($article->member)) {\n        $member_name = $article->member->title ?? '';\n        if ($member_name !== '') {\n            $item['expert'] = 'Эксперт: ' . $member_name;\n        }\n    }\n\n    $items[] = $item;\n}\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'all_link_label' => $all_link_label,\n    'all_link_url' => $all_link_url,\n    'items' => $items,\n    'section_bg' => $section_bg,\n];\n",
        "promo-variant-2": "\n\n$deps = ['swiper'];\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$all_link_label = $block->link_title ?? '';\n$all_link_url = $block->link ?? '#promo';\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light'; \/\/ page | white | page-alt | surface | bg-gradient-page | bg-gradient-bottom-light | bg-gradient-top-light\n\n$card_icons = [\n    '\/assets\/src\/img\/promo\/promo-v2-icon-checkup.svg',\n    '\/assets\/src\/img\/promo\/promo-v2-icon-gift.svg',\n];\n$card_variants = ['overlay', 'tint'];\n\n$getActionImage = static function ($action) {\n    if (!empty($action->image_detail) && !empty($action->image_detail_obj)) {\n        return trim((string) $action->image_detail_obj->getImage());\n    }\n    if (!empty($action->image) && !empty($action->image_obj)) {\n        return trim((string) $action->image_obj->getImage());\n    }\n\n    return '';\n};\n\n$slides = [];\n$actions = \\app\\models\\Action::find()\n    ->published()\n    ->active_by_dates()\n    ->limit(9)\n    ->all();\n\nfor ($i = 0, $count = count($actions); $i < $count; $i += 3) {\n    $featuredAction = $actions[$i];\n    $featured = [\n        'badge' => trim((string) ($featuredAction->title2 ?? '')),\n        'badge_icon' => '',\n        'title' => $featuredAction->title ?? '',\n        'text' => $featuredAction->description ?? '',\n        'button_label' => $featuredAction->button ?? 'узнать подробнее',\n        'button_url' => !empty($featuredAction->selfUrl) ? $featuredAction->selfUrl : '#',\n        'image' => $getActionImage($featuredAction),\n    ];\n\n    $cards = [];\n    for ($j = 1; $j <= 2; $j++) {\n        if (!isset($actions[$i + $j])) {\n            break;\n        }\n\n        $action = $actions[$i + $j];\n        $cards[] = [\n            'title' => $action->title ?? '',\n            'text' => $action->description ?? '',\n            'image' => $getActionImage($action),\n            'icon' => $card_icons[($j - 1) % count($card_icons)],\n            'url' => !empty($action->selfUrl) ? $action->selfUrl : '#',\n            'variant' => $card_variants[($j - 1) % count($card_variants)],\n        ];\n    }\n\n    $slides[] = [\n        'featured' => $featured,\n        'cards' => $cards,\n    ];\n}\n\nreturn [\n    'deps' => $deps,\n    'heading_level' => $heading_level,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'all_link_label' => $all_link_label,\n    'all_link_url' => $all_link_url,\n    'slides' => $slides,\n    'section_bg' => $section_bg,\n];\n",
        "cta-variant-1": "\n\n$heading_level = !empty($block->is_h1) ? 'h1' : 'h2';\n$layout = $block->view ?? 'fullwidth';\n$eyebrow = $block->eyebrow ?? '';\n$title = $block->title ?? '';\n$lead = $block->description ?? '';\n\n$bg_image = '';\nif (!empty($block->image) && !empty($block->image_obj)) {\n    $bg_image = trim((string) $block->image_obj->getImage());\n}\n\n$bg_image_mobile = '';\nif (!empty($block->image2) && !empty($block->image2_obj)) {\n    $bg_image_mobile = trim((string) $block->image2_obj->getImage());\n}\n\n$bg_alt = $block->image_alt ?? '';\n\n$features = [];\nif (!empty($block->items_1_real)) {\n    foreach ($block->items_1_real as $item) {\n        $features[] = [\n            'icon' => !empty($item->icon) && !empty($item->icon->file_obj)\n                ? $item->icon->file_obj->getImage()\n                : '',\n            'text' => $item->title ?? $item->description ?? '',\n        ];\n    }\n}\n\n$concerns_label = \\app\\models\\SystemSettings::getParamArray('form', 'concerns', [\n    'Кариес \/ боль',\n    'Имплантация',\n    'Протезирование',\n    'Прикус \/ ортодонтия',\n]);\n$concerns = [\n    'Что вас беспокоит?' => '',\n];\nforeach ($concerns_label as $concern_label) {\n    $concerns[$concern_label] = $concern_label;\n}\n\n$form_name_label = 'Ваше имя';\n$form_phone_label = '+7 (___)-___-__-__';\n$form_submit_label = $block->link_title ?? 'Получить консультацию';\n$consent_html = 'Нажимая на кнопку, вы соглашаетесь с&nbsp;<a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\">политикой обработки персональных данных<\/a>';\n\n$section_bg = $block->view2 ?? 'bg-gradient-bottom-light';\n\n$form = new \\app\\models\\forms\\RequestAppointmentForm();\n$form_data = \\app\\blocks\\Data::processForm($form, 'block-' . $block->id);\n\n$form_exports[] = ['id' => 'block-'.$block->id, 'type' => 'form-appointment', 'view' => 'inline', 'config' => []];\n\nreturn [\n    'heading_level' => $heading_level,\n    'layout' => $layout,\n    'eyebrow' => $eyebrow,\n    'title' => $title,\n    'lead' => $lead,\n    'bg_image' => $bg_image,\n    'bg_image_mobile' => $bg_image_mobile,\n    'bg_alt' => $bg_alt,\n    'features' => $features,\n    'concerns' => $concerns,\n    'form_name_label' => $form_name_label,\n    'form_phone_label' => $form_phone_label,\n    'form_submit_label' => $form_submit_label,\n    'form_data' => $form_data,\n    'consent_html' => $consent_html,\n    'section_bg' => $section_bg,\n    'form_exports' => $form_exports,\n];\n",
        "header": "\n$deps = ['bvi'];\n\n$form_exports = [\n    [\n        'id' => 'cta',\n        'type' => 'form-appointment',\n        'config' => [\n            'popup_form_show_service' => true,\n            'popup_form_show_name' => true,\n            'popup_form_title' => 'Рассчитать стоимость',\n            'popup_form_lead' => 'Выберите услугу и оставьте контакты — мы перезвоним и подготовим расчёт.',\n            'popup_form_submit_label' => 'Рассчитать стоимость',\n            'popup_form_offer_html' => 'Нажимая кнопку «Рассчитать стоимость», я&nbsp;принимаю условия <a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/offer\" onclick=\"event.stopPropagation()\">Публичной оферты.<\/a>',\n        ],\n    ],\n];\n\n$header_logo_url = '\/';\n$header_address = 'ул. Ленина, 21, г. Красноярск';\n$header_phone = '+7 (000) 000-11-11';\n$header_hours = 'Ежедневно с 9:00 до 21:00';\n$header_cta = 'Рассчитать стоимость';\n$header_tool_icon_bg = true;\nif (!empty($project) && is_object($project) && method_exists($project, 'getHeader_tool_icon_bg')) {\n    $header_tool_icon_bg = (bool) $project->header_tool_icon_bg;\n}\n$header_menu = [];\n\n$menu = \\app\\helpers\\base\\MenuHelper::menu()->getArray('top');\nif (!empty($menu)) {\n    foreach ($menu as $k1 => $v1) {\n        $row1 = [\n            'label' => $v1['name'],\n            'url' => $v1['url'],\n        ];\n        $submenu1 = [];\n        if (!empty($v1['children'])) {\n            if ($v1['is_service']) {\n                $submenu1 = [\n                    'type' => 'mega',\n                    'mega' => [\n                        'title' => $v1['title3'],\n                        'all' => ['label' => $v1['title2'], 'url' => $v1['url']],\n                        'columns' => [],\n                    ],\n                ];\n                foreach ($v1['children'] as $k2 => $v2) {\n                    $submenu2 = [\n                        'url' => $v2['url'],\n                        'title' => $v2['name'],\n                    ];\n                    if (!empty($v2['children'])) {\n                        foreach ($v2['children'] as $k3 => $v3) {\n                            $submenu2['items'][] = [\n                                'label' => $v3['name'],\n                                'url' => $v3['url'],\n                            ];\n                        }\n                    }\n                    $submenu1['mega']['columns'][] = $submenu2;\n                }\n            } else {\n                $submenu1 = [\n                    'type' => 'small',\n                    'items' => [],\n                ];\n                foreach ($v1['children'] as $k2 => $v2) {\n                    $submenu1['items'][] = [\n                        'url' => $v2['url'],\n                        'label' => $v2['name'],\n                    ];\n                }\n            }\n        }\n        if (!empty($submenu1)) $row1['submenu'] = $submenu1;\n\n        $header_menu[] = $row1;\n    }\n}\n\nreturn [\n    'deps' => $deps,\n    'form_exports' => $form_exports,\n    'header_logo_url' => $header_logo_url,\n    'header_address' => $header_address,\n    'header_phone' => $header_phone,\n    'header_hours' => $header_hours,\n    'header_cta' => $header_cta,\n    'header_tool_icon_bg' => $header_tool_icon_bg,\n    'header_menu' => $header_menu,\n];",
        "footer": "\n$deps = ['bvi'];\n\n$form_exports = [\n    ['id' => 'cta', 'type' => 'form-appointment', 'config' => []],\n];\n\n$footer_logo_url = '\/';\n$footer_tagline  = 'Современная стоматология с вниманием к деталям и заботой о каждом пациенте';\n$footer_address  = 'ул. Ленина, 21, г. Красноярск';\n$footer_phone    = '+7 (000) 000-11-11';\n$footer_hours    = 'Ежедневно с 9:00 до 21:00';\n\n$footer_nav_title = 'Навигация';\n$footer_nav_cols = [\n    [\n        ['label' => 'Услуги', 'url' => '#services'],\n        ['label' => 'Специалисты', 'url' => '#doctors'],\n        ['label' => 'Акции', 'url' => '#promo'],\n    ],\n    [\n        ['label' => 'О клинике', 'url' => '#about'],\n        ['label' => 'Прайс - лист', 'url' => '#prices'],\n        ['label' => 'Пациентам', 'url' => '#patients'],\n    ],\n];\n\n$footer_popular_title = 'Популярные услуги';\n$footer_popular_cols = [\n    [\n        ['label' => 'Детская стоматология', 'url' => '#services-kids'],\n        ['label' => 'Лечение зубов', 'url' => '#services-therapy'],\n        ['label' => 'Хирургия', 'url' => '#services-surgery'],\n    ],\n    [\n        ['label' => 'Ортодонтия', 'url' => '#services-ortho'],\n        ['label' => 'Протезирование', 'url' => '#services-prosthetics'],\n        ['label' => 'Лечение десен', 'url' => '#services-parodont'],\n    ],\n];\n\n$footer_form_title = 'Записаться на консультацию';\n$footer_form_lead  = 'Оставьте заявку и мы свяжемся с вами в ближайшее время.';\n$footer_form_btn   = 'Продолжить';\n$footer_form_consent_html = 'Нажимая на кнопку, вы соглашаетесь с&nbsp;<a class=\"footer-v1__consent-link text-decoration-fade\" href=\"\/policy\" onclick=\"event.stopPropagation()\">политикой обработки персональных данных<\/a>';\n\n$footer_copyright = '© 2026 Аленте';\n$footer_company   = 'ООО «Аленте», сеть стоматологических клиник';\n$footer_links = [\n    ['label' => 'Лицензии', 'url' => '#licenses'],\n    ['label' => 'Правовая информация', 'url' => '#legal'],\n    ['label' => 'Политика конфиденциальности', 'url' => '#privacy'],\n];\n$footer_accessibility_label = 'Версия для слабовидящих';\n$footer_accessibility_url   = '#';\n\n$footer_dev_logo = '\/assets\/src\/img\/footer\/developer.svg';\n\n$footer_disclaimer = 'ИМЕЮТСЯ ПРОТИВОПОКАЗАНИЯ, НЕОБХОДИМА КОНСУЛЬТАЦИЯ СПЕЦИАЛИСТА';\n$footer_decor = '\/assets\/src\/img\/footer\/decor.svg';\n\nreturn [\n    'deps' => $deps,\n    'form_exports' => $form_exports,\n    'footer_logo_url' => $footer_logo_url,\n    'footer_tagline' => $footer_tagline,\n    'footer_address' => $footer_address,\n    'footer_phone' => $footer_phone,\n    'footer_hours' => $footer_hours,\n    'footer_nav_title' => $footer_nav_title,\n    'footer_nav_cols' => $footer_nav_cols,\n    'footer_popular_title' => $footer_popular_title,\n    'footer_popular_cols' => $footer_popular_cols,\n    'footer_form_title' => $footer_form_title,\n    'footer_form_lead' => $footer_form_lead,\n    'footer_form_btn' => $footer_form_btn,\n    'footer_form_consent_html' => $footer_form_consent_html,\n    'footer_copyright' => $footer_copyright,\n    'footer_company' => $footer_company,\n    'footer_links' => $footer_links,\n    'footer_accessibility_label' => $footer_accessibility_label,\n    'footer_accessibility_url' => $footer_accessibility_url,\n    'footer_dev_logo' => $footer_dev_logo,\n    'footer_disclaimer' => $footer_disclaimer,\n    'footer_decor' => $footer_decor,\n];",
        "back-to-top": "\nreturn [];"
    },
    "view": {
        "blocks": {
            "hero-variant-4": "<?php $lcp_image = $slides[0]['doctor_image'] ?? ''; ?>\n<section class=\"hero-v4\">\n  <div class=\"hero-v4__card swiper\">\n    <div class=\"swiper-wrapper\">\n      <?php foreach ($slides as $slide_index => $slide): ?>\n        <?php $slide_title_tag = $slide_index === 0 ? $heading_level : 'p'; ?>\n        <div class=\"swiper-slide\">\n          <article class=\"hero-v4__slide\">\n            <div class=\"hero-v4__scene\">\n              <div class=\"hero-v4__scene-bg\" aria-hidden=\"true\">\n                <img src=\"<?= htmlspecialchars($slide['bg_image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n              <\/div>\n            <\/div>\n\n            <div class=\"container hero-v4__container\">\n              <div class=\"hero-v4__content\">\n                <div class=\"hero-v4__lead stack stack--xl\">\n                  <div class=\"titles stack stack--md\">\n                    <<?= $slide_title_tag ?> class=\"hero-v4__title megatext-lg\">\n                      <?= $slide['title'] ?>\n                    <\/<?= $slide_title_tag ?>>\n                    <p class=\"hero-v4__subtitle leadtext-xl\"><?= htmlspecialchars($slide['subtitle']) ?><\/p>\n                  <\/div>\n\n                  <div class=\"hero-v4__actions actions-row\">\n                    <button type=\"button\" class=\"btn btn--primary hero-v4__cta\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id($slide['cta_form'] ?? 'cta')) ?>\" data-remote=\"1\">\n                      <?= htmlspecialchars($slide['cta']) ?>\n                    <\/button>\n\n                    <a class=\"hero-v4__video\"\n                       href=\"#\"\n                       data-popup-open=\"media\"\n                       data-popup-src=\"<?= htmlspecialchars($slide['video_media']) ?>\"\n                       data-popup-kind=\"video\"\n                       data-popup-alt=\"<?= htmlspecialchars($slide['video_label']) ?>\"\n                    >\n                      <span class=\"hero-v4__play-surface\" aria-hidden=\"true\">\n                        <span class=\"hero-v4__play-bg\"><\/span>\n                        <svg class=\"icon hero-v4__play-icon\" width=\"9\" height=\"10\" viewBox=\"0 0 9 10\" aria-hidden=\"true\">\n                          <use href=\"#icon-play\"><\/use>\n                        <\/svg>\n                      <\/span>\n                      <span class=\"hero-v4__video-label bodytext-md\"><?= htmlspecialchars($slide['video_label']) ?><\/span>\n                    <\/a>\n                  <\/div>\n                <\/div>\n              <\/div>\n\n            <\/div>\n\n            <?php if (!empty($slide['doctor_name'])): ?>\n              <div class=\"hero-v4__scene-foot\">\n                <aside class=\"hero-v4__doctor-card\">\n                  <div class=\"hero-v4__doctor-head\">\n                    <?php if (!empty($slide['doctor_url'])): ?>\n                      <a class=\"hero-v4__doctor-name bodytext-strong\" href=\"<?= htmlspecialchars($slide['doctor_url']) ?>\">\n                        <?= htmlspecialchars($slide['doctor_name']) ?>\n                      <\/a>\n                    <?php else: ?>\n                      <p class=\"hero-v4__doctor-name bodytext-strong\"><?= htmlspecialchars($slide['doctor_name']) ?><\/p>\n                    <?php endif; ?>\n                    <p class=\"hero-v4__doctor-role bodytext\"><?= htmlspecialchars($slide['doctor_role']) ?><\/p>\n                  <\/div>\n                  <?php if (!empty($slide['doctor_quote'])): ?>\n                    <blockquote class=\"hero-v4__doctor-quote\">\n                      <svg class=\"icon hero-v4__doctor-quote-icon\" width=\"44\" height=\"44\" aria-hidden=\"true\">\n                        <use href=\"#icon-quote\"><\/use>\n                      <\/svg>\n                      <p class=\"hero-v4__doctor-quote-text bodytext\"><?= htmlspecialchars($slide['doctor_quote']) ?><\/p>\n                    <\/blockquote>\n                  <?php endif; ?>\n                <\/aside>\n                <img\n                  class=\"hero-v4__doctor\"\n                  src=\"<?= htmlspecialchars($slide['doctor_image']) ?>\"\n                  alt=\"\"\n                  width=\"994\"\n                  height=\"795\"\n                  <?= \\app\\generator\\PageCriticalResources::imgAttrs($slide['doctor_image']) ?>\n                >\n              <\/div>\n            <?php endif; ?>\n          <\/article>\n        <\/div>\n      <?php endforeach; ?>\n    <\/div>\n\n    <?php if (count($slides) > 1): ?>\n      <div class=\"slider-nav slider-nav--brand hero-v4__slider-nav\">\n        <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий слайд\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/button>\n        <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий слайд\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n            <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n          <\/svg>\n        <\/button>\n      <\/div>\n      <div class=\"slider-pagination-host\">\n        <div class=\"hero-v4__slider-pagination slider-pagination--dots swiper-pagination\"><\/div>\n      <\/div>\n    <?php endif; ?>\n  <\/div>\n\n  <?php\n  $hero_v4_features = $slides[0]['features'] ?? [];\n  if (!empty($hero_v4_features)):\n  ?>\n    <div class=\"container hero-v4__features-host\">\n      <ul class=\"hero-v4__features\">\n        <?php foreach ($hero_v4_features as $feature): ?>\n          <?php\n            $feature_icon = trim((string) ($feature['icon'] ?? ''));\n            $has_feature_icon = $feature_icon !== '';\n          ?>\n          <li class=\"hero-v4__feature<?= $has_feature_icon ? '' : ' hero-v4__feature--no-icon' ?>\">\n            <?php if ($has_feature_icon): ?>\n              <span class=\"hero-v4__feature-icon\" aria-hidden=\"true\">\n                <img src=\"<?= htmlspecialchars($feature_icon) ?>\" alt=\"\" width=\"42\" height=\"42\" loading=\"lazy\" decoding=\"async\">\n              <\/span>\n            <?php endif; ?>\n            <div class=\"hero-v4__feature-copy stack stack--sm\">\n              <p class=\"hero-v4__feature-title bodytext-strong\"><?= htmlspecialchars($feature['title']) ?><\/p>\n              <p class=\"hero-v4__feature-text bodytext\"><?= htmlspecialchars($feature['text']) ?><\/p>\n            <\/div>\n          <\/li>\n        <?php endforeach; ?>\n      <\/ul>\n    <\/div>\n  <?php endif; ?>\n<\/section>",
            "benefits-variant-1": "<?php\n  $has_text = ['\\\\app\\\\generator\\\\ContentPresence', 'hasText'];\n  $items = \\app\\generator\\ContentPresence::items($items, ['title', 'text']);\n  $has_intro = $has_text($eyebrow) || $has_text($title) || $has_text($lead);\n  $decor_src = trim((string) ($decor_src ?? ''));\n  $has_decor = $decor_src !== '';\n?>\n<?php\n  $benefits_v1_show_article = false;\n  $has_article_icon = false;\n  $has_article_link = false;\n  $article_text = '';\n  $article_url = '';\n  $article_link_label = '';\n  $article_icon_src = '';\n\n  if (is_array($article)) {\n      $article_text = trim((string) ($article['text'] ?? ''));\n      $benefits_v1_show_article = $has_text($article_text);\n\n      if ($benefits_v1_show_article) {\n          $article_icon_src = trim((string) ($article['icon_src'] ?? ''));\n          $has_article_icon = $article_icon_src !== '';\n          $article_link_label = trim((string) ($article['link_label'] ?? ''));\n          $article_url = trim((string) ($article['url'] ?? ''));\n          $has_article_link = $article_url !== '' && $has_text($article_link_label);\n      }\n  }\n?>\n<?php if ($has_intro || $benefits_v1_show_article || $items !== []): ?>\n<section class=\"benefits-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\">\n  <?php if ($has_decor): ?>\n    <img\n      class=\"benefits-v1__decor\"\n      src=\"<?= htmlspecialchars($decor_src) ?>\"\n      alt=\"\"\n      aria-hidden=\"true\"\n      width=\"1289\"\n      height=\"537\"\n      loading=\"lazy\"\n      decoding=\"async\"\n    >\n  <?php endif; ?>\n  <div class=\"container\">\n    <div class=\"benefits-v1__grid\">\n      <?php if ($has_intro || $benefits_v1_show_article): ?><div class=\"benefits-v1__left\">\n        <?php if ($has_intro): ?><div class=\"benefits-v1__lead stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'benefits-v1__eyebrow') ?>\n          <?php if ($has_text($title) || $has_text($lead)): ?><div class=\"titles\">\n            <?php if ($has_text($title)): ?><<?= $heading_level ?> class=\"benefits-v1__title megatext\">\n              <?= $title ?>\n            <\/<?= $heading_level ?>><?php endif; ?>\n            <?php if ($has_text($lead)): ?><p class=\"benefits-v1__subtitle leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p><?php endif; ?>\n          <\/div><?php endif; ?>\n        <\/div><?php endif; ?>\n\n        <?php if ($benefits_v1_show_article): ?>\n          <div class=\"benefits-v1__article<?= $has_article_icon ? '' : ' benefits-v1__article--no-icon' ?>\">\n            <?php if ($has_article_icon): ?>\n              <span class=\"benefits-v1__article-icon\" aria-hidden=\"true\">\n                <img\n                  src=\"<?= htmlspecialchars($article_icon_src) ?>\"\n                  alt=\"\"\n                  width=\"38\"\n                  height=\"38\"\n                  loading=\"lazy\"\n                  decoding=\"async\"\n                >\n              <\/span>\n            <?php endif; ?>\n            <div class=\"benefits-v1__article-body stack stack--sm\">\n              <?php if ($has_text($article['title'] ?? '')): ?><p class=\"benefits-v1__article-title bodytext-lg\"><?= htmlspecialchars($article['title']) ?><\/p><?php endif; ?>\n              <?php if ($has_text($article_text)): ?><p class=\"benefits-v1__article-text bodytext-md\"><?= htmlspecialchars($article_text) ?><\/p><?php endif; ?>\n              <?php if ($has_article_link): ?>\n                <a class=\"benefits-v1__article-link link-arrow bodytext-strong\" href=\"<?= htmlspecialchars($article_url) ?>\">\n                  <?= htmlspecialchars($article_link_label) ?>\n                  <svg class=\"icon benefits-v1__article-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                    <use href=\"#icon-arrow-right\"><\/use>\n                  <\/svg>\n                <\/a>\n              <?php endif; ?>\n            <\/div>\n          <\/div>\n        <?php endif; ?>\n      <\/div><?php endif; ?>\n\n      <?php $default_card_icon_src = trim((string) ($default_card_icon_src ?? '')); ?>\n      <?php if ($items !== []): ?><ul class=\"benefits-v1__cards\">\n        <?php foreach ($items as $item): ?>\n          <?php\n            $card_icon_src = trim((string) ($item['icon_src'] ?? ''));\n            if ($card_icon_src === '') {\n                $card_icon_src = $default_card_icon_src;\n            }\n            $has_card_icon = $card_icon_src !== '';\n          ?>\n          <li class=\"benefits-v1__card<?= $has_card_icon ? '' : ' benefits-v1__card--no-icon' ?>\">\n            <?php if ($has_card_icon): ?>\n              <span class=\"benefits-v1__icon\" aria-hidden=\"true\">\n                <img\n                  class=\"benefits-v1__icon-img\"\n                  src=\"<?= htmlspecialchars($card_icon_src) ?>\"\n                  alt=\"\"\n                  width=\"18\"\n                  height=\"19\"\n                  loading=\"lazy\"\n                  decoding=\"async\"\n                >\n              <\/span>\n            <?php endif; ?>\n            <div class=\"benefits-v1__card-body stack stack--sm\">\n              <?php if ($has_text($item['title'] ?? '')): ?><p class=\"benefits-v1__card-title leadtext-xl\"><?= htmlspecialchars($item['title']) ?><\/p><?php endif; ?>\n              <?php if ($has_text($item['text'] ?? '')): ?><p class=\"benefits-v1__card-text bodytext-lg\"><?= htmlspecialchars($item['text']) ?><\/p><?php endif; ?>\n            <\/div>\n          <\/li>\n        <?php endforeach; ?>\n      <\/ul><?php endif; ?>\n    <\/div>\n  <\/div>\n<\/section>\n<?php endif; ?>",
            "our-approach-variant-1": "<?php\n  $hero_image = trim((string) ($hero_image ?? ''));\n  $has_hero_image = $hero_image !== '';\n?>\n<section class=\"our-approach-v1 our-approach-v1--steps-num-<?= htmlspecialchars($steps_num_style) ?> <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\">\n  <?php if ($bg_texture !== ''): ?>\n    <div\n      class=\"our-approach-v1__texture\"\n      aria-hidden=\"true\"\n      style=\"background-image: url('<?= htmlspecialchars($bg_texture, ENT_QUOTES) ?>')\"\n    ><\/div>\n  <?php endif; ?>\n  <?php if ($decor_svg !== ''): ?>\n    <img\n      class=\"our-approach-v1__decor\"\n      src=\"<?= htmlspecialchars($decor_svg) ?>\"\n      alt=\"\"\n      aria-hidden=\"true\"\n      loading=\"lazy\"\n      decoding=\"async\"\n    >\n  <?php endif; ?>\n\n  <div class=\"container\">\n    <div class=\"our-approach-v1__top<?= $has_hero_image ? '' : ' our-approach-v1__top--no-media' ?>\">\n      <div class=\"our-approach-v1__lead stack stack--md\">\n        <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'our-approach-v1__eyebrow') ?>\n        <div class=\"titles\">\n          <<?= $heading_level ?> class=\"our-approach-v1__title megatext\">\n            <?= $title ?>\n          <\/<?= $heading_level ?>>\n          <p class=\"our-approach-v1__subtitle leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p>\n        <\/div>\n      <\/div>\n\n      <?php if ($has_hero_image): ?>\n        <div class=\"our-approach-v1__media\" aria-hidden=\"true\">\n          <img\n            class=\"our-approach-v1__media-img\"\n            src=\"<?= htmlspecialchars($hero_image) ?>\"\n            alt=\"\"\n            width=\"797\"\n            height=\"377\"\n            loading=\"lazy\"\n            decoding=\"async\"\n          >\n        <\/div>\n      <?php endif; ?>\n    <\/div>\n\n    <ol class=\"our-approach-v1__steps\">\n      <?php foreach ($steps as $step): ?>\n        <li class=\"our-approach-v1__step\">\n          <div class=\"our-approach-v1__step-num\">\n            <span class=\"our-approach-v1__step-i bodytext\"><?= htmlspecialchars($step['num']) ?><\/span>\n            <span class=\"our-approach-v1__step-slash leadtext-xl\" aria-hidden=\"true\">\/<\/span>\n          <\/div>\n          <div class=\"our-approach-v1__step-body stack stack--sm\">\n            <p class=\"our-approach-v1__step-title leadtext\"><?= htmlspecialchars($step['title']) ?><\/p>\n            <p class=\"our-approach-v1__step-text bodytext-lg\"><?= htmlspecialchars($step['text']) ?><\/p>\n          <\/div>\n        <\/li>\n      <?php endforeach; ?>\n    <\/ol>\n\n    <div class=\"our-approach-v1__cta\">\n      <div class=\"our-approach-v1__cta-grid\">\n        <div class=\"our-approach-v1__cta-left stack stack--sm\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($cta_eyebrow, 'our-approach-v1__cta-eyebrow') ?>\n          <p class=\"our-approach-v1__cta-title megatext\"><?= htmlspecialchars($cta_title) ?><\/p>\n          <p class=\"our-approach-v1__cta-subtitle bodytext-lg\"><?= htmlspecialchars($cta_subtitle) ?><\/p>\n        <\/div>\n\n        <div class=\"our-approach-v1__cta-right stack stack--sm\">\n          <p class=\"our-approach-v1__cta-lead bodytext-md\"><?= htmlspecialchars($cta_lead) ?><\/p>\n\n          <form class=\"our-approach-v1__cta-form stack stack--sm popup-form--consent-gated\" action=\"#\" method=\"post\">\n            <div class=\"our-approach-v1__cta-row\">\n              <label class=\"our-approach-v1__field\" aria-label=\"Телефон\">\n                <input\n                  class=\"field__input our-approach-v1__input\"\n                  type=\"tel\"\n                  name=\"phone\"\n                  aria-label=\"Телефон\"\n                  placeholder=\"+7 (___)-___-__-__\"\n                  autocomplete=\"tel\"\n                  required\n                >\n              <\/label>\n              <button\n                type=\"submit\"\n                class=\"btn btn--primary our-approach-v1__cta-btn popup-form__submit uibtntext\"\n              >\n                <?= htmlspecialchars($cta_btn) ?>\n              <\/button>\n            <\/div>\n\n            <label class=\"our-approach-v1__consent popup-form__consent\">\n              <input class=\"our-approach-v1__checkbox popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n              <span class=\"our-approach-v1__consent-text bodytext\"><?= $cta_consent_html ?><\/span>\n            <\/label>\n          <\/form>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "services-variant-3": "<section class=\"services-v3 services-v3--tab-active-<?= htmlspecialchars($tab_active_style) ?> <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?> section-space-y-lg\">\n  <div class=\"container\">\n    <div class=\"services-v3__head\">\n      <div class=\"services-v3__head-main stack stack--md\">\n        <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'services-v3__eyebrow') ?>\n        <<?= $heading_level ?> class=\"services-v3__title megatext\">\n          <?= $title ?>\n        <\/<?= $heading_level ?>>\n        <p class=\"services-v3__head-lead leadtext\"><?= htmlspecialchars($lead) ?><\/p>\n      <\/div>\n\n      <a class=\"services-v3__all-link link-arrow bodytext-md\" href=\"<?= htmlspecialchars($all_link_url) ?>\">\n        <?= htmlspecialchars($all_link_label) ?>\n        <svg class=\"icon services-v3__all-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n          <use href=\"#icon-arrow-right\"><\/use>\n        <\/svg>\n      <\/a>\n    <\/div>\n\n    <div class=\"services-v3__body\">\n      <div class=\"services-v3__list\" role=\"tablist\" aria-label=\"<?= htmlspecialchars($eyebrow) ?>\">\n        <?php foreach ($items as $index => $item): ?>\n          <?php\n          $tab_id   = 'services-v3-tab-' . $index;\n          $panel_id = 'services-v3-panel-' . $index;\n          $is_first = $index === 0;\n          ?>\n          <div class=\"services-v3__item\">\n            <button\n              type=\"button\"\n              class=\"services-v3__tab megatext-sm<?= $is_first ? ' is-active' : '' ?>\"\n              id=\"<?= htmlspecialchars($tab_id) ?>\"\n              role=\"tab\"\n              aria-selected=\"<?= $is_first ? 'true' : 'false' ?>\"\n              aria-controls=\"<?= htmlspecialchars($panel_id) ?>\"\n              data-services-v3-tab\n              data-services-v3-index=\"<?= $index ?>\"\n              tabindex=\"<?= $is_first ? '0' : '-1' ?>\"\n              style=\"--services-v3-tab-row: <?= $index + 1 ?>\"\n            >\n              <span class=\"services-v3__tab-label\"><?= htmlspecialchars($item['name']) ?><\/span>\n              <span class=\"services-v3__tab-arrow\" aria-hidden=\"true\">\n                <svg class=\"icon\" width=\"21\" height=\"22\">\n                  <use href=\"#icon-arrow-diagonal\"><\/use>\n                <\/svg>\n              <\/span>\n            <\/button>\n\n            <article\n              class=\"services-v3__panel<?= $is_first ? ' is-active' : '' ?>\"\n              id=\"<?= htmlspecialchars($panel_id) ?>\"\n              role=\"tabpanel\"\n              aria-labelledby=\"<?= htmlspecialchars($tab_id) ?>\"\n              data-services-v3-panel\n              data-services-v3-index=\"<?= $index ?>\"\n              aria-hidden=\"<?= $is_first ? 'false' : 'true' ?>\"\n              <?= $is_first ? '' : ' hidden' ?>\n            >\n              <div class=\"services-v3__panel-inner\">\n                <div class=\"services-v3__media\">\n                  <img\n                    class=\"services-v3__media-img\"\n                    src=\"<?= htmlspecialchars($item['image']) ?>\"\n                    alt=\"\"\n                    width=\"800\"\n                    height=\"592\"\n                    loading=\"lazy\"\n                    decoding=\"async\"\n                  >\n                <\/div>\n\n                <div class=\"services-v3__detail-foot\">\n                  <p class=\"services-v3__detail-text bodytext-lg-regular\"><?= htmlspecialchars($item['text']) ?><\/p>\n                  <a class=\"services-v3__more link-arrow bodytext-md\" href=\"<?= htmlspecialchars($item['url']) ?>\">\n                    <?= htmlspecialchars($cta_label) ?>\n                    <svg class=\"icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-arrow-right\"><\/use>\n                    <\/svg>\n                  <\/a>\n                <\/div>\n              <\/div>\n            <\/article>\n          <\/div>\n        <?php endforeach; ?>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "cases-variant-1": "<?php $cases_v1_case_count = count($cases); ?>\n<section\n  class=\"cases-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\"\n  style=\"--cases-v1-count: <?= (int) $cases_v1_case_count ?>\"\n>\n  <div class=\"container\">\n    <div class=\"cases-v1__inner stack stack--xl\">\n      <div class=\"cases-v1__head\">\n        <div class=\"cases-v1__head-main stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'cases-v1__eyebrow') ?>\n          <<?= $heading_level ?> class=\"cases-v1__title megatext\"><?= $title ?><\/<?= $heading_level ?>>\n        <\/div>\n\n        <?php if (count($cases) > 1): ?>\n          <div class=\"cases-v1__head-actions\">\n            <div class=\"cases-v1__slider-nav slider-nav\">\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий кейс\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий кейс\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n            <\/div>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n\n      <div class=\"cases-v1__slider-foot slider-foot\">\n        <div class=\"cases-v1__carousel\">\n          <div class=\"cases-v1__slider swiper\">\n            <div class=\"swiper-wrapper\">\n              <?php foreach ($cases as $case_index => $case): ?>\n                <?php\n                  $panel_class = 'cases-v1__panel';\n                  if ($case_index % 2 === 1) {\n                      $panel_class .= ' cases-v1__panel--reverse';\n                  }\n                  $index_label = str_pad((string) ($case_index + 1), 2, '0', STR_PAD_LEFT);\n                ?>\n                <div\n                  class=\"swiper-slide cases-v1__slide\"\n                  style=\"--cases-v1-card-index: <?= (int) $case_index ?>\"\n                >\n                  <article class=\"<?= htmlspecialchars($panel_class) ?>\">\n                    <div class=\"cases-v1__body stack stack--lg\">\n                      <div class=\"cases-v1__body-top\">\n                        <p class=\"cases-v1__index\" aria-hidden=\"true\">\n                          <span class=\"cases-v1__index-num bodytext-strong\"><?= htmlspecialchars($index_label) ?><\/span>\n                          <span class=\"cases-v1__index-sep\">\/<\/span>\n                        <\/p>\n                        <p class=\"cases-v1__category titletext-sm\"><?= htmlspecialchars($case['category']) ?><\/p>\n                      <\/div>\n\n                      <div class=\"cases-v1__copy stack stack--md\">\n                        <p class=\"cases-v1__card-title megatext-md\"><?= htmlspecialchars($case['title']) ?><\/p>\n                        <p class=\"cases-v1__card-text bodytext-lg\"><?= htmlspecialchars($case['text']) ?><\/p>\n                      <\/div>\n\n                      <?php if (!empty($case['meta']) && is_array($case['meta'])): ?>\n                        <div class=\"cases-v1__meta\">\n                          <?php foreach ($case['meta'] as $meta_item): ?>\n                            <div class=\"cases-v1__meta-item\">\n                              <p class=\"cases-v1__meta-label bodytext-strong\"><?= htmlspecialchars($meta_item['label'] ?? '') ?><\/p>\n                              <p class=\"cases-v1__meta-value bodytext-strong\"><?= htmlspecialchars($meta_item['value'] ?? '') ?><\/p>\n                            <\/div>\n                          <?php endforeach; ?>\n                        <\/div>\n                      <?php endif; ?>\n                    <\/div>\n\n                    <div class=\"cases-v1__media\">\n                      <img class=\"cases-v1__img cases-v1__img--after\" src=\"<?= htmlspecialchars($case['after_image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n                      <img class=\"cases-v1__img cases-v1__img--before\" src=\"<?= htmlspecialchars($case['before_image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\" aria-hidden=\"true\">\n                      <span class=\"cases-v1__divider\" aria-hidden=\"true\"><\/span>\n                      <span class=\"cases-v1__badge cases-v1__badge--before titletext-sm\">До<\/span>\n                      <span class=\"cases-v1__badge cases-v1__badge--after titletext-sm\">После<\/span>\n                      <button\n                        type=\"button\"\n                        class=\"cases-v1__handle\"\n                        aria-label=\"Сравнить до\/после\"\n                        aria-valuemin=\"0\"\n                        aria-valuemax=\"100\"\n                        aria-valuenow=\"50\"\n                      >\n                        <img src=\"<?= htmlspecialchars($handle_src) ?>\" alt=\"\" width=\"86\" height=\"86\" loading=\"lazy\" decoding=\"async\">\n                      <\/button>\n                    <\/div>\n                  <\/article>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <?php if (count($cases) > 1): ?>\n          <div class=\"slider-pagination-host\">\n            <div class=\"cases-v1__pagination slider-pagination--dots swiper-pagination\"><\/div>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "doctors-variant-1": "<?php\n  $lead = trim((string) $lead);\n  $all_link_label = trim((string) $all_link_label);\n  $all_link_url = trim((string) $all_link_url);\n  $has_title = trim(strip_tags((string) $title)) !== '';\n  $has_all_link = $all_link_label !== '';\n  $has_panel_medal = trim((string) $medal_src) !== '';\n?>\n<section class=\"doctors-v1 doctors-v1--badge-<?= htmlspecialchars($badge_style) ?> <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\" style=\"--doctors-v1-photo-back: url('<?= htmlspecialchars($doctors_back_image) ?>')<?php if ($has_panel_medal): ?>; --doctors-v1-panel-medal-src: url('<?= htmlspecialchars($medal_src) ?>')<?php endif; ?>\">\n  <div class=\"container\">\n    <div class=\"doctors-v1__layout\">\n      <div class=\"doctors-v1__main stack stack--xl\">\n        <div class=\"doctors-v1__head stack stack--md\">\n          <div class=\"doctors-v1__head-top stack stack--md\">\n            <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'doctors-v1__eyebrow') ?>\n            <?php if ($has_title): ?>\n              <<?= $heading_level ?> class=\"doctors-v1__title megatext\">\n                <?= $title ?>\n              <\/<?= $heading_level ?>>\n            <?php endif; ?>\n          <\/div>\n\n          <div class=\"doctors-v1__intro-row\">\n            <?php if ($lead !== ''): ?>\n              <p class=\"doctors-v1__lead leadtext\"><?= htmlspecialchars($lead) ?><\/p>\n            <?php endif; ?>\n\n            <div class=\"doctors-v1__head-actions\">\n              <?php if ($has_all_link): ?>\n              <a class=\"doctors-v1__all-link link-arrow bodytext-md\" href=\"<?= htmlspecialchars($all_link_url !== '' ? $all_link_url : '#') ?>\">\n                <?= htmlspecialchars($all_link_label) ?>\n                <svg class=\"icon doctors-v1__all-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                  <use href=\"#icon-arrow-right\"><\/use>\n                <\/svg>\n              <\/a>\n              <?php endif; ?>\n\n              <div class=\"doctors-v1__slider-nav slider-nav slider-nav--glass\">\n                <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий врач\">\n                  <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                    <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                  <\/svg>\n                <\/button>\n                <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий врач\">\n                  <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                    <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                  <\/svg>\n                <\/button>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"doctors-v1__slider-foot slider-foot\">\n          <div class=\"doctors-v1__carousel\">\n            <div class=\"doctors-v1__slider swiper\">\n              <div class=\"swiper-wrapper\">\n              <?php foreach ($doctors as $doctor): ?>\n                <?php\n                  $specialty = trim((string) ($doctor['specialty'] ?? ''));\n                  $role = trim((string) ($doctor['role'] ?? ''));\n                  $image = trim((string) ($doctor['image'] ?? ''));\n                  $has_image = $image !== '';\n                  $image_has_bg = $has_image && !empty($doctor['image_has_bg']);\n                  $experience_value = trim((string) ($doctor['experience'] ?? ''));\n                  $has_experience = $experience_value !== '';\n                  $rating_value = trim((string) ($doctor['rating'] ?? ''));\n                  $rating_number = str_replace(',', '.', $rating_value);\n                  $has_rating = $rating_value !== '' && !(is_numeric($rating_number) && (float) $rating_number <= 0);\n                  $more_url = trim((string) ($doctor['url'] ?? ''));\n                ?>\n                <div class=\"swiper-slide\">\n                  <article class=\"doctors-v1__card\">\n                    <?php if ($has_image): ?>\n                    <div class=\"doctors-v1__card-photo<?= $image_has_bg ? ' doctors-v1__card-photo--has-bg' : '' ?><?= $has_experience ? '' : ' doctors-v1__card-photo--no-exp' ?>\">\n                      <img class=\"doctors-v1__card-img<?= $image_has_bg ? ' doctors-v1__card-img--has-bg' : '' ?>\" src=\"<?= htmlspecialchars($image) ?>\" alt=\"<?= htmlspecialchars(trim($doctor['name_first'] . ' ' . $doctor['name_last']) . ($specialty !== '' ? ' — ' . $specialty : '')) ?>\" width=\"343\" height=\"380\" loading=\"lazy\" decoding=\"async\">\n                      <?php if ($has_experience): ?>\n                      <span class=\"doctors-v1__badge doctors-v1__badge--exp bodytext-strong\"><?= htmlspecialchars($experience_value) ?><\/span>\n                      <?php endif; ?>\n                      <?php if ($has_rating): ?>\n                      <span class=\"doctors-v1__badge doctors-v1__badge--rating bodytext-strong\">\n                        <svg class=\"icon doctors-v1__badge-star\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                          <use href=\"#icon-star\"><\/use>\n                        <\/svg>\n                        <?= htmlspecialchars($rating_value) ?>\n                      <\/span>\n                      <?php endif; ?>\n                    <\/div>\n                    <?php endif; ?>\n\n                    <div class=\"doctors-v1__card-body stack stack--sm\">\n                      <p class=\"doctors-v1__card-name bodytext-lg\">\n                        <span class=\"doctors-v1__card-name-line\"><?= htmlspecialchars($doctor['name_last']) ?><\/span>\n                        <span class=\"doctors-v1__card-name-line\"><?= htmlspecialchars($doctor['name_first']) ?><\/span>\n                      <\/p>\n\n                      <?php if ($specialty !== '' || $role !== ''): ?>\n                      <p class=\"doctors-v1__card-meta bodytext\">\n                        <?php if ($specialty !== ''): ?>\n                          <span><?= htmlspecialchars($specialty) ?><\/span>\n                        <?php endif; ?>\n                        <?php if ($specialty !== '' && $role !== ''): ?>\n                          <span class=\"doctors-v1__meta-dot\" aria-hidden=\"true\"><\/span>\n                        <?php endif; ?>\n                        <?php if ($role !== ''): ?>\n                          <span><?= htmlspecialchars($role) ?><\/span>\n                        <?php endif; ?>\n                      <\/p>\n                      <?php endif; ?>\n\n                      <div class=\"doctors-v1__card-actions\">\n                        <button type=\"button\" class=\"btn btn--primary doctors-v1__card-btn bodytext-sm\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id($doctor['cta_form'])) ?>\" data-remote=\"1\">\n                          Записаться на приём\n                        <\/button>\n                        <?php if ($more_url !== ''): ?>\n                        <a class=\"doctors-v1__card-more bodytext-strong\" href=\"<?= htmlspecialchars($more_url) ?>\">\n                          Подробнее\n                          <svg class=\"icon doctors-v1__card-more-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                            <use href=\"#icon-arrow-right\"><\/use>\n                          <\/svg>\n                        <\/a>\n                        <?php endif; ?>\n                      <\/div>\n                    <\/div>\n                  <\/article>\n                <\/div>\n              <?php endforeach; ?>\n              <\/div>\n              <div class=\"slider-pagination-host\">\n                <div class=\"doctors-v1__pagination slider-pagination--dots swiper-pagination\"><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <?php if ($has_all_link): ?>\n        <div class=\"doctors-v1__mobile-actions\">\n          <a class=\"btn btn--secondary doctors-v1__all-btn\" href=\"<?= htmlspecialchars($all_link_url !== '' ? $all_link_url : '#') ?>\">\n            <?= htmlspecialchars($all_link_label) ?>\n          <\/a>\n        <\/div>\n        <?php endif; ?>\n      <\/div>\n\n      <aside class=\"doctors-v1__panel\">\n        <div class=\"doctors-v1__panel-inner\">\n          <div class=\"doctors-v1__panel-top stack stack--xl\">\n            <?= \\app\\generator\\Eyebrow::renderBlock($panel_eyebrow, 'doctors-v1__panel-eyebrow') ?>\n\n            <div class=\"doctors-v1__panel-features stack stack--lg\">\n              <?php foreach ($panel_features as $feature): ?>\n                <div class=\"doctors-v1__feature stack stack--sm\">\n                  <p class=\"doctors-v1__feature-title bodytext-lg\"><?= htmlspecialchars($feature['title']) ?><\/p>\n                  <p class=\"doctors-v1__feature-text bodytext-md\"><?= htmlspecialchars($feature['text']) ?><\/p>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n\n          <div class=\"doctors-v1__panel-bottom\">\n            <div class=\"doctors-v1__panel-stats\">\n              <?php foreach ($panel_stats as $stat): ?>\n                <div class=\"doctors-v1__stat\">\n                  <p class=\"doctors-v1__stat-value megatext-md\"><?= htmlspecialchars($stat['value']) ?><\/p>\n                  <p class=\"doctors-v1__stat-label bodytext-strong\"><?= htmlspecialchars($stat['label']) ?><\/p>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n\n            <?php if ($has_panel_medal): ?>\n            <span class=\"doctors-v1__panel-medal\" aria-hidden=\"true\"><\/span>\n            <?php endif; ?>\n          <\/div>\n        <\/div>\n      <\/aside>\n    <\/div>\n  <\/div>\n<\/section>",
            "quiz-variant-1": "<section\n  class=\"quiz-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\"\n  data-quiz-v1-step=\"<?= (int) $step_current ?>\"\n  data-quiz-v1-total=\"<?= (int) $step_total ?>\"\n>\n  <div class=\"container\">\n    <div class=\"quiz-v1__layout\">\n      <div class=\"quiz-v1__intro\">\n        <div class=\"quiz-v1__intro-top stack stack--md\" data-quiz-v1-intro-part=\"default\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'quiz-v1__eyebrow') ?>\n          <div class=\"titles\">\n            <<?= $heading_level ?> class=\"quiz-v1__title megatext\">\n              <?= $title ?>\n            <\/<?= $heading_level ?>>\n            <p class=\"quiz-v1__lead leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"quiz-v1__intro-top stack stack--md\" data-quiz-v1-intro-part=\"final\" hidden>\n          <?= \\app\\generator\\Eyebrow::renderBlock($step4_eyebrow, 'quiz-v1__eyebrow') ?>\n          <div class=\"titles\">\n            <<?= $heading_level ?> class=\"quiz-v1__title quiz-v1__title--final megatext\">\n              <?= $step4_title ?>\n            <\/<?= $heading_level ?>>\n            <p class=\"quiz-v1__lead leadtext-xl\"><?= htmlspecialchars($step4_lead) ?><\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"quiz-v1__promo\" data-quiz-v1-intro-part=\"default\">\n          <?php if (trim((string)$promo_gift) !== ''): ?>\n            <span class=\"quiz-v1__promo-gift\" aria-hidden=\"true\">\n              <img\n                class=\"quiz-v1__promo-gift-img\"\n                src=\"<?= htmlspecialchars($promo_gift) ?>\"\n                alt=\"\"\n                width=\"50\"\n                height=\"50\"\n                loading=\"lazy\"\n                decoding=\"async\"\n              >\n            <\/span>\n          <?php endif; ?>\n          <div class=\"quiz-v1__promo-body stack stack--sm\">\n            <?php if (trim((string)$promo_tag) !== ''): ?>\n              <span class=\"quiz-v1__promo-tag bodytext-sm\"><?= htmlspecialchars($promo_tag) ?><\/span>\n            <?php endif; ?>\n            <p class=\"quiz-v1__promo-text leadtext\"><?= htmlspecialchars($promo_text) ?><\/p>\n          <\/div>\n        <\/div>\n\n        <?php if (trim((string)$step4_callback_text) !== ''): ?>\n          <div class=\"quiz-v1__callback\" data-quiz-v1-intro-part=\"final\" hidden>\n            <span class=\"quiz-v1__callback-icon\" aria-hidden=\"true\">\n              <svg class=\"icon quiz-v1__callback-icon-svg\" width=\"50\" height=\"50\" aria-hidden=\"true\">\n                <use href=\"#icon-clock-circle\"><\/use>\n              <\/svg>\n            <\/span>\n            <p class=\"quiz-v1__callback-text leadtext\"><?= htmlspecialchars($step4_callback_text) ?><\/p>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n\n      <div class=\"quiz-v1__figure\" aria-hidden=\"true\">\n        <div class=\"quiz-v1__figure-frame\">\n          <img\n            class=\"quiz-v1__figure-img\"\n            src=\"<?= htmlspecialchars($decor_image) ?>\"\n            alt=\"\"\n            width=\"1073\"\n            height=\"721\"\n            loading=\"lazy\"\n            decoding=\"async\"\n          >\n        <\/div>\n      <\/div>\n\n      <div class=\"quiz-v1__panel\">\n        <div class=\"quiz-v1__panel-inner\">\n          <span class=\"quiz-v1__step bodytext-strong\" data-quiz-v1-step-label><?= htmlspecialchars($step_label) ?><\/span>\n\n          <div class=\"quiz-v1__step-panel\" data-quiz-v1-step-panel=\"1\">\n          <form class=\"quiz-v1__form stack stack--md\" action=\"#\" method=\"post\" data-quiz-v1-form=\"1\">\n            <fieldset class=\"quiz-v1__fieldset stack stack--sm\">\n              <legend class=\"quiz-v1__question megatext-md\"><?= htmlspecialchars($step1_question) ?><\/legend>\n\n              <div class=\"quiz-v1__options\" role=\"radiogroup\" aria-label=\"<?= htmlspecialchars($step1_question) ?>\">\n                <?php foreach ($step1_options as $option): ?>\n                  <label class=\"quiz-v1__option\">\n                    <input\n                      class=\"quiz-v1__option-input\"\n                      type=\"radio\"\n                      name=\"concern\"\n                      value=\"<?= htmlspecialchars($option['value']) ?>\"\n                      data-quiz-v1-option\n                    >\n                    <?php if (trim((string)($option['icon'] ?? '')) !== ''): ?>\n                      <span class=\"quiz-v1__option-icon\" aria-hidden=\"true\">\n                        <img\n                          class=\"quiz-v1__option-icon-img\"\n                          src=\"<?= htmlspecialchars($option['icon']) ?>\"\n                          alt=\"\"\n                          width=\"26\"\n                          height=\"26\"\n                          loading=\"lazy\"\n                          decoding=\"async\"\n                        >\n                      <\/span>\n                    <?php endif; ?>\n                    <span class=\"quiz-v1__option-label bodytext-strong\"><?= htmlspecialchars($option['label']) ?><\/span>\n                  <\/label>\n                <?php endforeach; ?>\n              <\/div>\n            <\/fieldset>\n\n            <div class=\"quiz-v1__actions stack stack--md\">\n              <button\n                type=\"button\"\n                class=\"quiz-v1__continue btn btn--primary uibtntext\"\n                data-quiz-v1-continue\n                disabled\n              >\n                <?= htmlspecialchars($continue_label) ?>\n              <\/button>\n\n              <p class=\"quiz-v1__privacy bodytext-strong\">\n                <?php if ($show_privacy_icon): ?>\n                  <svg class=\"icon quiz-v1__privacy-icon\" width=\"22\" height=\"24\" aria-hidden=\"true\">\n                    <use href=\"#icon-shield\"><\/use>\n                  <\/svg>\n                <?php endif; ?>\n                <?= htmlspecialchars($privacy_text) ?>\n              <\/p>\n            <\/div>\n          <\/form>\n          <\/div>\n\n          <div class=\"quiz-v1__step-panel\" data-quiz-v1-step-panel=\"2\" hidden>\n            <form class=\"quiz-v1__form stack stack--md\" action=\"#\" method=\"post\" data-quiz-v1-form=\"2\">\n              <fieldset class=\"quiz-v1__fieldset stack stack--sm\">\n                <legend class=\"quiz-v1__question megatext-md\"><?= htmlspecialchars($step2_question) ?><\/legend>\n\n                <div class=\"quiz-v1__options\" role=\"radiogroup\" aria-label=\"<?= htmlspecialchars($step2_question) ?>\">\n                  <?php foreach ($step2_options as $option): ?>\n                    <label class=\"quiz-v1__option\">\n                      <input\n                        class=\"quiz-v1__option-input\"\n                        type=\"radio\"\n                        name=\"teeth_count\"\n                        value=\"<?= htmlspecialchars($option['value']) ?>\"\n                        data-quiz-v1-option\n                      >\n                      <?php if (trim((string)($option['icon'] ?? '')) !== ''): ?>\n                        <span class=\"quiz-v1__option-icon\" aria-hidden=\"true\">\n                          <img\n                            class=\"quiz-v1__option-icon-img\"\n                            src=\"<?= htmlspecialchars($option['icon']) ?>\"\n                            alt=\"\"\n                            width=\"26\"\n                            height=\"26\"\n                            loading=\"lazy\"\n                            decoding=\"async\"\n                          >\n                        <\/span>\n                      <?php endif; ?>\n                      <span class=\"quiz-v1__option-label bodytext-strong\"><?= htmlspecialchars($option['label']) ?><\/span>\n                    <\/label>\n                  <?php endforeach; ?>\n                <\/div>\n              <\/fieldset>\n\n              <div class=\"quiz-v1__actions stack stack--md\">\n                <div class=\"quiz-v1__nav\">\n                  <button type=\"button\" class=\"quiz-v1__back link-arrow\" data-quiz-v1-back>\n                    <svg class=\"icon link-arrow__icon quiz-v1__back-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-arrow-right\"><\/use>\n                    <\/svg>\n                    <span class=\"bodytext-strong\"><?= htmlspecialchars($back_label) ?><\/span>\n                  <\/button>\n\n                  <button\n                    type=\"button\"\n                    class=\"quiz-v1__continue btn btn--primary uibtntext quiz-v1__continue--compact\"\n                    data-quiz-v1-continue\n                    disabled\n                  >\n                    <?= htmlspecialchars($continue_label) ?>\n                  <\/button>\n                <\/div>\n\n                <p class=\"quiz-v1__privacy bodytext-strong\">\n                  <?php if ($show_privacy_icon): ?>\n                    <svg class=\"icon quiz-v1__privacy-icon\" width=\"22\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-shield\"><\/use>\n                    <\/svg>\n                  <?php endif; ?>\n                  <?= htmlspecialchars($privacy_text) ?>\n                <\/p>\n              <\/div>\n            <\/form>\n          <\/div>\n\n          <div class=\"quiz-v1__step-panel\" data-quiz-v1-step-panel=\"3\" hidden>\n            <form class=\"quiz-v1__form stack stack--md\" action=\"#\" method=\"post\" data-quiz-v1-form=\"3\">\n              <fieldset class=\"quiz-v1__fieldset stack stack--sm\">\n                <legend class=\"quiz-v1__question megatext-md\"><?= htmlspecialchars($step3_question) ?><\/legend>\n\n                <div class=\"quiz-v1__options\" role=\"radiogroup\" aria-label=\"<?= htmlspecialchars($step3_question) ?>\">\n                  <?php foreach ($step3_options as $option): ?>\n                    <label class=\"quiz-v1__option quiz-v1__option--radio\">\n                      <input\n                        class=\"quiz-v1__option-input\"\n                        type=\"radio\"\n                        name=\"start_time\"\n                        value=\"<?= htmlspecialchars($option['value']) ?>\"\n                        data-quiz-v1-option\n                      >\n                      <span class=\"quiz-v1__option-marker\" aria-hidden=\"true\"><\/span>\n                      <span class=\"quiz-v1__option-label bodytext-strong\"><?= htmlspecialchars($option['label']) ?><\/span>\n                    <\/label>\n                  <?php endforeach; ?>\n                <\/div>\n              <\/fieldset>\n\n              <div class=\"quiz-v1__actions stack stack--md\">\n                <div class=\"quiz-v1__nav\">\n                  <button type=\"button\" class=\"quiz-v1__back link-arrow\" data-quiz-v1-back>\n                    <svg class=\"icon link-arrow__icon quiz-v1__back-icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-arrow-right\"><\/use>\n                    <\/svg>\n                    <span class=\"bodytext-strong\"><?= htmlspecialchars($back_label) ?><\/span>\n                  <\/button>\n\n                  <button\n                    type=\"button\"\n                    class=\"quiz-v1__continue btn btn--primary uibtntext quiz-v1__continue--compact\"\n                    data-quiz-v1-continue\n                    disabled\n                  >\n                    <?= htmlspecialchars($continue_label) ?>\n                  <\/button>\n                <\/div>\n\n                <p class=\"quiz-v1__privacy bodytext-strong\">\n                  <?php if ($show_privacy_icon): ?>\n                    <svg class=\"icon quiz-v1__privacy-icon\" width=\"22\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-shield\"><\/use>\n                    <\/svg>\n                  <?php endif; ?>\n                  <?= htmlspecialchars($privacy_text) ?>\n                <\/p>\n              <\/div>\n            <\/form>\n          <\/div>\n\n          <div class=\"quiz-v1__step-panel\" data-quiz-v1-step-panel=\"4\" hidden>\n            <form class=\"quiz-v1__form quiz-v1__form--lead stack stack--md popup-form--consent-gated\" action=\"#\" method=\"post\" data-quiz-v1-form=\"4\">\n              <p class=\"quiz-v1__question megatext-md\"><?= htmlspecialchars($step4_question) ?><\/p>\n\n              <div class=\"quiz-v1__fields stack stack--sm\">\n                <label class=\"field quiz-v1__field\">\n                  <input\n                    class=\"field__input quiz-v1__input\"\n                    type=\"text\"\n                    name=\"name\"\n                    placeholder=\"<?= htmlspecialchars($step4_name_label) ?>\"\n                    autocomplete=\"name\"\n                    required\n                    data-quiz-v1-field\n                  >\n                <\/label>\n                <label class=\"field quiz-v1__field\">\n                  <input\n                    class=\"field__input quiz-v1__input\"\n                    type=\"tel\"\n                    name=\"phone\"\n                    placeholder=\"<?= htmlspecialchars($step4_phone_label) ?>\"\n                    autocomplete=\"tel\"\n                    required\n                    data-quiz-v1-field\n                  >\n                <\/label>\n                <label class=\"field quiz-v1__field\">\n                  <input\n                    class=\"field__input quiz-v1__input\"\n                    type=\"email\"\n                    name=\"email\"\n                    placeholder=\"<?= htmlspecialchars($step4_email_label) ?>\"\n                    autocomplete=\"email\"\n                    data-quiz-v1-field\n                  >\n                <\/label>\n              <\/div>\n\n              <div class=\"quiz-v1__lead-actions stack stack--md\">\n                <label class=\"popup-form__consent quiz-v1__consent bodytext\">\n                  <input\n                    class=\"popup-form__consent-input\"\n                    type=\"checkbox\"\n                    name=\"consent\"\n                    required\n                    data-quiz-v1-consent\n                  >\n                  <span class=\"popup-form__consent-text\"><?= $step4_consent_html ?><\/span>\n                <\/label>\n\n                <button\n                  type=\"submit\"\n                  class=\"quiz-v1__submit btn btn--primary uibtntext\"\n                  data-quiz-v1-submit\n                  disabled\n                >\n                  <?= htmlspecialchars($step4_submit_label) ?>\n                <\/button>\n              <\/div>\n\n              <div class=\"quiz-v1__bonus\">\n                <?php\n                  $has_bonus_doctor = trim((string)$step4_bonus_doctor) !== '';\n                  $has_bonus_gift = trim((string)$promo_gift) !== '';\n                ?>\n                <?php if ($has_bonus_doctor || $has_bonus_gift): ?>\n                  <div class=\"quiz-v1__bonus-visual\" aria-hidden=\"true\">\n                    <?php if ($has_bonus_doctor): ?>\n                      <img\n                        class=\"quiz-v1__bonus-doctor\"\n                        src=\"<?= htmlspecialchars($step4_bonus_doctor) ?>\"\n                        alt=\"\"\n                        width=\"102\"\n                        height=\"102\"\n                        loading=\"lazy\"\n                        decoding=\"async\"\n                      >\n                    <?php endif; ?>\n                    <?php if ($has_bonus_gift): ?>\n                      <img\n                        class=\"quiz-v1__bonus-gift\"\n                        src=\"<?= htmlspecialchars($promo_gift) ?>\"\n                        alt=\"\"\n                        width=\"50\"\n                        height=\"50\"\n                        loading=\"lazy\"\n                        decoding=\"async\"\n                      >\n                    <?php endif; ?>\n                  <\/div>\n                <?php endif; ?>\n                <div class=\"quiz-v1__bonus-body stack stack--sm\">\n                  <?php if (trim((string)$step4_bonus_tag) !== ''): ?>\n                    <span class=\"quiz-v1__bonus-tag bodytext-sm\"><?= htmlspecialchars($step4_bonus_tag) ?><\/span>\n                  <?php endif; ?>\n                  <p class=\"quiz-v1__bonus-text leadtext\"><?= htmlspecialchars($step4_bonus_text) ?><\/p>\n                <\/div>\n              <\/div>\n            <\/form>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "reviews-variant-1": "<?php\n  $reviews = $text_reviews;\n  if ($video_review) {\n      $video_review['type'] = 'video';\n      $position = max(0, min(count($text_reviews), (int) $video_review_position));\n      $reviews = array_merge(\n          array_slice($text_reviews, 0, $position),\n          [$video_review],\n          array_slice($text_reviews, $position)\n      );\n  }\n?>\n<?php\n$reviews_v1_author = static function (array $review): string {\n    $name = trim($review['name'] ?? '');\n    $age = trim($review['age'] ?? '');\n    if ($name !== '' && $age !== '') {\n        return $name . ', ' . $age;\n    }\n\n    return $name !== '' ? $name : $age;\n};\n\n$reviews_v1_normalize_rating = static function (array $review): float {\n    $raw = $review['rating'] ?? 5;\n    if (!is_numeric($raw)) {\n        return 5.0;\n    }\n\n    return round(max(1, min(5, (float) $raw)), 1);\n};\n\n$reviews_v1_rating_stars = static function (float $rating): int {\n    return max(0, min(5, (int) floor($rating + 0.001)));\n};\n\n$reviews_v1_rating_label = static function (array $review) use ($reviews_v1_normalize_rating, $reviews_v1_rating_stars): string {\n    $custom = trim($review['rating_label'] ?? '');\n    if ($custom !== '') {\n        return $custom;\n    }\n\n    $rating = $reviews_v1_normalize_rating($review);\n    $tier = max(1, $reviews_v1_rating_stars($rating));\n    $labels = [\n        5 => 'Отлично',\n        4 => 'Хорошо',\n        3 => 'Нормально',\n        2 => 'Плохо',\n        1 => 'Ужасно',\n    ];\n\n    return ($labels[$tier] ?? 'Отлично') . ' \/ ' . number_format($rating, 1, '.', '');\n};\n\n$reviews_v1_render_stars = static function (float $rating, string $size = 'sm'): void {\n    $rating = max(0, min(5, round($rating, 1)));\n    ?>\n    <span\n      class=\"stars-rating stars-rating--<?= htmlspecialchars($size) ?>\"\n      style=\"--stars-rating-value: <?= htmlspecialchars(number_format($rating, 1, '.', '')) ?>\"\n      aria-hidden=\"true\"\n    >\n      <span class=\"stars-rating__layer stars-rating__layer--empty\">\n        <?php for ($i = 0; $i < 5; $i++): ?>\n          <svg class=\"icon stars-rating__icon\" aria-hidden=\"true\">\n            <use href=\"#icon-star\"><\/use>\n          <\/svg>\n        <?php endfor; ?>\n      <\/span>\n      <span class=\"stars-rating__layer stars-rating__layer--fill\">\n        <?php for ($i = 0; $i < 5; $i++): ?>\n          <svg class=\"icon stars-rating__icon\" aria-hidden=\"true\">\n            <use href=\"#icon-star\"><\/use>\n          <\/svg>\n        <?php endfor; ?>\n      <\/span>\n    <\/span>\n    <?php\n};\n?>\n<?php\n$has_cta_icon = trim((string) $chat_icon_src) !== '';\n$reviews_v1_section_style = $has_cta_icon\n  ? '--reviews-v1-chat-icon-src: url(\\'' . htmlspecialchars($chat_icon_src) . '\\')'\n  : '';\n?>\n<section class=\"reviews-v1 <?= htmlspecialchars(trim(\\app\\generator\\SectionBg::classString($section_bg) . ' ' . \\app\\generator\\ReviewCardBg::classString($card_bg, 'reviews-v1'))) ?>\"<?php if ($reviews_v1_section_style !== ''): ?> style=\"<?= $reviews_v1_section_style ?>\"<?php endif; ?>>\n  <div class=\"container\">\n    <div class=\"reviews-v1__inner stack stack--xl\">\n      <div class=\"reviews-v1__head\">\n        <div class=\"reviews-v1__head-main stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'reviews-v1__eyebrow') ?>\n          <div class=\"titles stack stack--md\">\n            <<?= $heading_level ?> class=\"reviews-v1__title megatext\">\n              <?= $title ?>\n            <\/<?= $heading_level ?>>\n            <p class=\"reviews-v1__lead leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p>\n          <\/div>\n        <\/div>\n\n        <div class=\"reviews-v1__head-actions\">\n          <a class=\"reviews-v1__all-link link-arrow bodytext-md\" href=\"<?= htmlspecialchars($all_link_url) ?>\">\n            <?= htmlspecialchars($all_link_label) ?>\n            <svg class=\"icon reviews-v1__all-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n              <use href=\"#icon-arrow-right\"><\/use>\n            <\/svg>\n          <\/a>\n\n          <?php if (count($reviews) > 1): ?>\n            <div class=\"reviews-v1__slider-nav slider-nav slider-nav--glass\">\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий отзыв\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий отзыв\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n            <\/div>\n          <?php endif; ?>\n        <\/div>\n      <\/div>\n\n      <div class=\"reviews-v1__body stack stack--xl\">\n        <div class=\"reviews-v1__slider-foot slider-foot\">\n          <div class=\"reviews-v1__carousel\">\n            <div class=\"reviews-v1__slider swiper\">\n              <div class=\"swiper-wrapper\">\n              <?php foreach ($reviews as $review): ?>\n                <?php\n                  $author_line = $reviews_v1_author($review);\n                  $rating = $reviews_v1_normalize_rating($review);\n                  $rating_value = number_format($rating, 1, '.', '');\n                ?>\n                <div class=\"swiper-slide\">\n                  <?php if (($review['type'] ?? '') === 'video'): ?>\n                    <article class=\"reviews-v1__card reviews-v1__card--video\">\n                      <button\n                        type=\"button\"\n                        class=\"reviews-v1__video-trigger\"\n                        data-popup-open=\"media\"\n                        data-popup-src=\"<?= htmlspecialchars($review['video_src']) ?>\"\n                        data-popup-kind=\"video\"\n                        data-popup-poster=\"<?= htmlspecialchars($review['poster'] ?? '') ?>\"\n                        data-popup-author=\"<?= htmlspecialchars($author_line) ?>\"\n                        data-popup-service=\"<?= htmlspecialchars($review['service'] ?? '') ?>\"\n                        data-popup-rating=\"<?= htmlspecialchars($rating_value) ?>\"\n                        aria-label=\"Смотреть видеоотзыв пациента <?= htmlspecialchars($review['name'] ?? '') ?>\"\n                      >\n                        <span class=\"reviews-v1__video-media\">\n                          <img class=\"reviews-v1__video-poster\" src=\"<?= htmlspecialchars($review['poster']) ?>\" alt=\"<?= htmlspecialchars('Видеоотзыв пациента ' . ($review['name'] ?? '')) ?>\" loading=\"lazy\" decoding=\"async\">\n                          <span class=\"reviews-v1__video-play\" aria-hidden=\"true\">\n                            <img src=\"\/assets\/src\/img\/reviews\/play-btn.svg\" alt=\"\" width=\"48\" height=\"48\" loading=\"lazy\" decoding=\"async\">\n                          <\/span>\n                        <\/span>\n                      <\/button>\n\n                      <div class=\"reviews-v1__video-foot stack stack--sm\">\n                        <div class=\"reviews-v1__video-author-row\">\n                          <?php if ($author_line !== ''): ?>\n                            <p class=\"reviews-v1__video-author bodytext-strong\"><?= htmlspecialchars($author_line) ?><\/p>\n                          <?php endif; ?>\n                          <?php $reviews_v1_render_stars($rating, 'sm'); ?>\n                        <\/div>\n                        <?php if (!empty($review['service'])): ?>\n                          <p class=\"reviews-v1__meta bodytext-strong\">\n                            <span class=\"reviews-v1__meta-label\">Услуга:<\/span>\n                            <span class=\"reviews-v1__meta-value\"><?= htmlspecialchars($review['service']) ?><\/span>\n                          <\/p>\n                        <?php endif; ?>\n                      <\/div>\n                    <\/article>\n                  <?php else: ?>\n                    <article class=\"reviews-v1__card reviews-v1__card--text stack stack--md\">\n                      <div class=\"reviews-v1__card-top\">\n                        <div class=\"reviews-v1__rating-head\" aria-label=\"Оценка <?= htmlspecialchars($rating_value) ?> из 5\">\n                          <p class=\"reviews-v1__rating-label bodytext-md\"><?= htmlspecialchars($reviews_v1_rating_label($review)) ?><\/p>\n                          <?php $reviews_v1_render_stars($rating, 'sm'); ?>\n                        <\/div>\n                        <?php if ($author_line !== ''): ?>\n                          <p class=\"reviews-v1__card-author bodytext-strong\"><?= htmlspecialchars($author_line) ?><\/p>\n                        <?php endif; ?>\n                      <\/div>\n\n                      <div class=\"reviews-v1__card-content stack stack--md\">\n                        <div class=\"reviews-v1__quote-block stack stack--sm\">\n                          <p class=\"reviews-v1__quote bodytext-md\"><?= htmlspecialchars($review['text']) ?><\/p>\n                          <button type=\"button\" class=\"reviews-v1__read-more\" data-reviews-v1-read-full hidden>\n                            Читать отзыв полностью\n                          <\/button>\n                        <\/div>\n\n                        <?php if (!empty($review['service']) || !empty($review['doctor'])): ?>\n                          <div class=\"reviews-v1__details stack stack--sm\">\n                            <?php if (!empty($review['service'])): ?>\n                              <p class=\"reviews-v1__meta bodytext-strong\">\n                                <span class=\"reviews-v1__meta-label\">Услуга:<\/span>\n                                <span class=\"reviews-v1__meta-value\"><?= htmlspecialchars($review['service']) ?><\/span>\n                              <\/p>\n                            <?php endif; ?>\n                            <?php if (!empty($review['doctor'])): ?>\n                              <p class=\"reviews-v1__meta bodytext-strong\">\n                                <span class=\"reviews-v1__meta-label\">Врач:<\/span>\n                                <span class=\"reviews-v1__meta-value\"><?= htmlspecialchars($review['doctor']) ?><\/span>\n                              <\/p>\n                            <?php endif; ?>\n                          <\/div>\n                        <?php endif; ?>\n\n                        <?php if (!empty($review['source_logo']) || !empty($review['date'])): ?>\n                          <div class=\"reviews-v1__card-foot\">\n                            <?php if (!empty($review['source_logo'])): ?>\n                              <img class=\"reviews-v1__source-logo\" src=\"<?= htmlspecialchars($review['source_logo']) ?>\" alt=\"\" width=\"124\" height=\"21\" loading=\"lazy\" decoding=\"async\">\n                            <?php else: ?>\n                              <span aria-hidden=\"true\"><\/span>\n                            <?php endif; ?>\n                            <?php if (!empty($review['date'])): ?>\n                              <p class=\"reviews-v1__date bodytext-strong\"><?= htmlspecialchars($review['date']) ?><\/p>\n                            <?php endif; ?>\n                          <\/div>\n                        <?php endif; ?>\n                      <\/div>\n\n                      <template class=\"reviews-v1__full-template\">\n                        <div class=\"popup__review-head\">\n                          <?php $reviews_v1_render_stars($rating, 'sm'); ?>\n                          <?php if ($author_line !== ''): ?>\n                            <p class=\"popup__review-author bodytext-strong\"><?= htmlspecialchars($author_line) ?><\/p>\n                          <?php endif; ?>\n                        <\/div>\n                        <div class=\"popup__review-quote\" data-reviews-v1-popup-quote><\/div>\n                        <?php if (!empty($review['service'])): ?>\n                          <p class=\"popup__review-meta-row bodytext-strong\">\n                            <span class=\"popup__review-meta-label\">Услуга:<\/span>\n                            <span class=\"popup__review-meta-value\"><?= htmlspecialchars($review['service']) ?><\/span>\n                          <\/p>\n                        <?php endif; ?>\n                        <?php if (!empty($review['doctor'])): ?>\n                          <p class=\"popup__review-meta-row bodytext-strong\">\n                            <span class=\"popup__review-meta-label\">Врач:<\/span>\n                            <span class=\"popup__review-meta-value\"><?= htmlspecialchars($review['doctor']) ?><\/span>\n                          <\/p>\n                        <?php endif; ?>\n                        <?php if (!empty($review['source_logo']) || !empty($review['date'])): ?>\n                          <div class=\"popup__review-foot\">\n                            <?php if (!empty($review['source_logo'])): ?>\n                              <img class=\"popup__review-source\" src=\"<?= htmlspecialchars($review['source_logo']) ?>\" alt=\"\" width=\"124\" height=\"21\" loading=\"lazy\" decoding=\"async\">\n                            <?php endif; ?>\n                            <?php if (!empty($review['date'])): ?>\n                              <p class=\"popup__review-date bodytext-strong\"><?= htmlspecialchars($review['date']) ?><\/p>\n                            <?php endif; ?>\n                          <\/div>\n                        <?php endif; ?>\n                      <\/template>\n                    <\/article>\n                  <?php endif; ?>\n                <\/div>\n              <?php endforeach; ?>\n              <\/div>\n              <div class=\"slider-pagination-host\">\n                <div class=\"reviews-v1__pagination slider-pagination--dots swiper-pagination\"><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"reviews-v1__platforms\">\n          <div class=\"reviews-v1__platforms-lead stack stack--md\">\n            <p class=\"reviews-v1__platforms-title megatext-md\">\n              <?= $platforms_title ?>\n            <\/p>\n            <button type=\"button\" class=\"reviews-v1__leave-review bodytext-strong\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id('leave-review')) ?>\" data-remote=\"1\">\n              <?= htmlspecialchars($leave_review_label) ?>\n            <\/button>\n          <\/div>\n\n          <div class=\"reviews-v1__platforms-grid\">\n            <?php foreach ($platforms as $platform): ?>\n              <?php\n                $platform_logo_w = max(1, (int) ($platform['logo_w'] ?? 196));\n                $platform_logo_h = max(1, (int) ($platform['logo_h'] ?? 42));\n              ?>\n              <a class=\"reviews-v1__platform\" href=\"<?= htmlspecialchars($platform['url']) ?>\" target=\"_blank\" rel=\"noopener noreferrer\">\n                <img\n                  class=\"reviews-v1__platform-logo\"\n                  src=\"<?= htmlspecialchars($platform['logo']) ?>\"\n                  alt=\"\"\n                  width=\"<?= $platform_logo_w ?>\"\n                  height=\"<?= $platform_logo_h ?>\"\n                  style=\"--reviews-v1-platform-logo-w: <?= $platform_logo_w ?>px; --reviews-v1-platform-logo-h: <?= $platform_logo_h ?>px\"\n                  loading=\"lazy\"\n                  decoding=\"async\"\n                >\n                <div class=\"reviews-v1__platform-rating\">\n                  <span class=\"reviews-v1__platform-score bodytext-lg\"><?= htmlspecialchars($platform['rating']) ?><\/span>\n                  <?php $reviews_v1_render_stars((float) $platform['rating'], 'lg'); ?>\n                <\/div>\n                <p class=\"reviews-v1__platform-count bodytext-strong\"><?= htmlspecialchars($platform['count']) ?><\/p>\n              <\/a>\n            <?php endforeach; ?>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"reviews-v1__cta\">\n        <div class=\"reviews-v1__cta-inner\">\n          <div class=\"reviews-v1__cta-bg\" aria-hidden=\"true\">\n            <img class=\"reviews-v1__cta-pattern\" src=\"<?= htmlspecialchars($cta_pattern_src) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <\/div>\n\n          <?php if ($has_cta_icon): ?>\n          <span class=\"reviews-v1__cta-icon\" aria-hidden=\"true\">\n            <span class=\"reviews-v1__cta-icon-mark\"><\/span>\n          <\/span>\n          <?php endif; ?>\n\n          <div class=\"reviews-v1__cta-copy stack stack--sm\">\n            <p class=\"reviews-v1__cta-title megatext-md\"><?= htmlspecialchars($cta_title) ?><\/p>\n            <p class=\"reviews-v1__cta-text bodytext-lg\"><?= htmlspecialchars($cta_text) ?><\/p>\n          <\/div>\n\n          <div class=\"reviews-v1__cta-actions stack stack--md\">\n            <button type=\"button\" class=\"btn btn--white\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id('cta')) ?>\" data-remote=\"1\">\n              <?= htmlspecialchars($cta_btn_label) ?>\n            <\/button>\n            <div class=\"reviews-v1__cta-notes bodytext\">\n              <?php foreach ($cta_notes as $index => $note): ?>\n                <?php if ($index > 0): ?>\n                  <span class=\"reviews-v1__cta-dot\" aria-hidden=\"true\"><\/span>\n                <?php endif; ?>\n                <span><?= htmlspecialchars($note) ?><\/span>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"reviews-v1__mobile-actions\">\n        <a class=\"btn btn--secondary reviews-v1__all-btn\" href=\"<?= htmlspecialchars($all_link_url) ?>\">\n          <?= htmlspecialchars($all_link_label) ?>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "treatment-plans-variant-1": "<?php\n  $plan_count = count($plans);\n  $is_scrollable_track = $plan_count > 3;\n?>\n<section\n  class=\"treatment-plans-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?><?= $is_scrollable_track ? ' treatment-plans-v1--scrollable' : '' ?>\"\n  style=\"--treatment-plans-v1-visible-count: <?= (int) $plan_count ?>; --treatment-plans-v1-check-icon-src: url('<?= htmlspecialchars('\/assets\/src\/img\/treatment-plans\/icon-check.svg') ?>')\"\n  data-plan-count=\"<?= (int) $plan_count ?>\"\n>\n  <div class=\"container\">\n    <div class=\"treatment-plans-v1__inner stack stack--xl\">\n      <div class=\"treatment-plans-v1__head\">\n        <div class=\"treatment-plans-v1__head-main stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'treatment-plans-v1__eyebrow') ?>\n          <<?= $heading_level ?> class=\"treatment-plans-v1__title megatext\">\n            <?= $title ?>\n          <\/<?= $heading_level ?>>\n          <p class=\"treatment-plans-v1__lead leadtext\"><?= htmlspecialchars($lead) ?><\/p>\n        <\/div>\n\n        <div class=\"treatment-plans-v1__head-aside\">\n          <div class=\"treatment-plans-v1__trust\">\n            <svg class=\"icon treatment-plans-v1__trust-icon\" width=\"26\" height=\"40\" aria-hidden=\"true\">\n              <use href=\"#icon-shield\"><\/use>\n            <\/svg>\n            <p class=\"treatment-plans-v1__trust-text bodytext-lg-compact\"><?= htmlspecialchars($trust_label) ?><\/p>\n          <\/div>\n          <div class=\"treatment-plans-v1__slider-toolbar\">\n            <div class=\"treatment-plans-v1__slider-nav slider-nav slider-nav--glass\">\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий план лечения\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий план лечения\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"treatment-plans-v1__slider-foot slider-foot\">\n        <div class=\"treatment-plans-v1__carousel\">\n          <div class=\"treatment-plans-v1__slider swiper\">\n            <div class=\"swiper-wrapper\">\n            <?php foreach ($plans as $index => $plan): ?>\n              <?php\n              $trigger_id = 'treatment-plans-v1-trigger-' . ($index + 1);\n              $panel_id = 'treatment-plans-v1-panel-' . ($index + 1);\n              $plan_icon = trim((string) ($plan['icon'] ?? ''));\n              $has_plan_icon = $plan_icon !== '';\n              $plan_features = [];\n              foreach (($plan['features'] ?? []) as $feature) {\n                  $feature_text = trim((string) $feature);\n                  if ($feature_text !== '') {\n                      $plan_features[] = $feature_text;\n                  }\n              }\n              ?>\n              <div class=\"swiper-slide\">\n                <article class=\"treatment-plans-v1__card\">\n                  <button\n                    type=\"button\"\n                    class=\"treatment-plans-v1__plan-trigger\"\n                    id=\"<?= htmlspecialchars($trigger_id) ?>\"\n                    aria-expanded=\"false\"\n                    aria-controls=\"<?= htmlspecialchars($panel_id) ?>\"\n                    data-treatment-plans-v1-trigger\n                  >\n                    <span class=\"treatment-plans-v1__plan-icon\" aria-hidden=\"true\">\n                      <span\n                        class=\"treatment-plans-v1__plan-icon-glyph\"\n                        style=\"--treatment-plans-v1-plan-icon-src: url('<?= htmlspecialchars($plan['icon']) ?>')\"\n                      ><\/span>\n                    <\/span>\n                    <span class=\"treatment-plans-v1__plan-heading\">\n                      <span class=\"treatment-plans-v1__plan-title megatext-sm\"><?= htmlspecialchars($plan['title']) ?><\/span>\n                      <span class=\"treatment-plans-v1__plan-price bodytext-lg\">от <?= htmlspecialchars($plan['price']) ?><\/span>\n                    <\/span>\n                    <svg class=\"icon treatment-plans-v1__plan-chevron\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                      <use href=\"#icon-chevron-down\"><\/use>\n                    <\/svg>\n                  <\/button>\n\n                  <div\n                    class=\"treatment-plans-v1__plan-panel\"\n                    id=\"<?= htmlspecialchars($panel_id) ?>\"\n                    role=\"region\"\n                    aria-labelledby=\"<?= htmlspecialchars($trigger_id) ?>\"\n                  >\n                    <div class=\"treatment-plans-v1__plan-panel-inner\">\n                      <div class=\"treatment-plans-v1__card-media\">\n                        <img\n                          class=\"treatment-plans-v1__card-photo\"\n                          src=\"<?= htmlspecialchars($plan['image']) ?>\"\n                          alt=\"\"\n                          width=\"520\"\n                          height=\"290\"\n                          loading=\"lazy\"\n                          decoding=\"async\"\n                        >\n                      <\/div>\n\n                      <div class=\"treatment-plans-v1__card-body stack stack--sm\">\n                        <div class=\"treatment-plans-v1__card-head<?= $has_plan_icon ? '' : ' treatment-plans-v1__card-head--no-icon' ?>\">\n                          <?php if ($has_plan_icon): ?>\n                            <span class=\"treatment-plans-v1__card-icon\" aria-hidden=\"true\">\n                              <img src=\"<?= htmlspecialchars($plan_icon) ?>\" alt=\"\" width=\"39\" height=\"39\" loading=\"lazy\" decoding=\"async\">\n                            <\/span>\n                          <?php endif; ?>\n                          <h3 class=\"treatment-plans-v1__card-title megatext-md\"><?= htmlspecialchars($plan['title']) ?><\/h3>\n                        <\/div>\n                        <p class=\"treatment-plans-v1__card-summary bodytext-lg\"><?= htmlspecialchars($plan['summary']) ?><\/p>\n\n                        <?php if ($plan_features !== []): ?>\n                        <div class=\"treatment-plans-v1__features\">\n                          <div class=\"treatment-plans-v1__features-divider\" aria-hidden=\"true\"><\/div>\n                          <ul class=\"treatment-plans-v1__features-list\">\n                            <?php foreach ($plan_features as $feature_text): ?>\n                              <li class=\"treatment-plans-v1__feature\">\n                                <span class=\"treatment-plans-v1__feature-icon\" aria-hidden=\"true\"><\/span>\n                                <span class=\"treatment-plans-v1__feature-text bodytext-md\"><?= htmlspecialchars($feature_text) ?><\/span>\n                              <\/li>\n                            <?php endforeach; ?>\n                          <\/ul>\n                          <div class=\"treatment-plans-v1__features-divider\" aria-hidden=\"true\"><\/div>\n                        <\/div>\n                        <?php endif; ?>\n\n                        <div class=\"treatment-plans-v1__card-foot\">\n                          <div class=\"treatment-plans-v1__price\">\n                            <span class=\"treatment-plans-v1__price-label bodytext-md\">от<\/span>\n                            <span class=\"treatment-plans-v1__price-value megatext\"><?= htmlspecialchars($plan['price']) ?><\/span>\n                          <\/div>\n                          <a class=\"treatment-plans-v1__more link-arrow bodytext-md\" href=\"<?= htmlspecialchars($plan['url']) ?>\">\n                            Подробнее\n                            <svg class=\"icon treatment-plans-v1__more-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                              <use href=\"#icon-arrow-right\"><\/use>\n                            <\/svg>\n                          <\/a>\n                          <a class=\"btn btn--primary treatment-plans-v1__plan-more\" href=\"<?= htmlspecialchars($plan['url']) ?>\">Подробнее<\/a>\n                        <\/div>\n                      <\/div>\n                    <\/div>\n                  <\/div>\n                <\/article>\n              <\/div>\n            <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"slider-pagination-host\">\n          <div class=\"treatment-plans-v1__pagination slider-pagination--dots swiper-pagination\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"treatment-plans-v1__disclaimer\">\n        <svg class=\"icon treatment-plans-v1__disclaimer-icon\" width=\"20\" height=\"20\" aria-hidden=\"true\">\n          <use href=\"#icon-info\"><\/use>\n        <\/svg>\n        <p class=\"treatment-plans-v1__disclaimer-text bodytext-md\"><?= htmlspecialchars($disclaimer) ?><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "brands-variant-2": "<section class=\"brands-v2 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?> section-space-y\">\n  <div class=\"container\">\n    <div class=\"brands-v2__inner\">\n      <div class=\"brands-v2__copy stack stack--md\">\n        <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'brands-v2__eyebrow') ?>\n        <div class=\"titles\">\n          <<?= $heading_level ?> class=\"brands-v2__title megatext\"><?= nl2br(htmlspecialchars($title)) ?><\/<?= $heading_level ?>>\n          <p class=\"brands-v2__subtitle leadtext\"><?= htmlspecialchars($lead) ?><\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"brands-v2__carousel-col\">\n        <div class=\"brands-v2__slider swiper\">\n          <div class=\"swiper-wrapper\">\n            <?php foreach ($slides as $slide): ?>\n              <div class=\"swiper-slide\">\n                <div class=\"brands-v2__slide-track\">\n                  <ul class=\"brands-v2__grid\" aria-label=\"Бренды и технологии\">\n                  <?php foreach ($slide as $logo): ?>\n                    <li class=\"brands-v2__card\">\n                      <img\n                        class=\"brands-v2__logo\"\n                        src=\"<?= htmlspecialchars($logo['src']) ?>\"\n                        alt=\"<?= htmlspecialchars($logo['alt'] ?? '') ?>\"\n                        loading=\"lazy\"\n                        decoding=\"async\"\n                      >\n                    <\/li>\n                  <?php endforeach; ?>\n                  <\/ul>\n                <\/div>\n              <\/div>\n            <?php endforeach; ?>\n          <\/div>\n        <\/div>\n\n        <?php if (count($slides) > 1): ?>\n          <div class=\"brands-v2__controls slider-controls slider-nav--glass\">\n            <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущий слайд\">\n              <svg class=\"icon brands-v2__arrow\" width=\"17\" height=\"11\" aria-hidden=\"true\">\n                <use href=\"#icon-slider-arrow\"><\/use>\n              <\/svg>\n            <\/button>\n\n            <div class=\"slider-pagination-host\">\n              <div class=\"brands-v2__pagination slider-pagination--dots is-always swiper-pagination\"><\/div>\n            <\/div>\n\n            <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующий слайд\">\n              <svg class=\"icon brands-v2__arrow\" width=\"17\" height=\"11\" aria-hidden=\"true\">\n                <use href=\"#icon-slider-arrow\"><\/use>\n              <\/svg>\n            <\/button>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "utp-in-numbers-variant-1": "<section class=\"utp-numbers-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\" id=\"<?= htmlspecialchars($section_id) ?>\">\n  <div class=\"container\">\n    <?php\n      $c01 = $cards['01'];\n      $c02 = $cards['02'];\n      $c03 = $cards['03'];\n      $c04 = $cards['04'];\n      $c05 = $cards['05'];\n\n      $utp_v1_has_icon = static function (array $card): bool {\n          $icon = trim((string) ($card['icon'] ?? ''));\n          if ($icon === '') {\n              return false;\n          }\n          return (bool) ($card['show_icon_box'] ?? true);\n      };\n\n      $c01_has_icon = $utp_v1_has_icon($c01);\n      $c03_has_icon = $utp_v1_has_icon($c03);\n      $c04_has_icon = $utp_v1_has_icon($c04);\n    ?>\n\n    <div class=\"utp-numbers-v1__layout\">\n      <div class=\"utp-numbers-v1__col-left\">\n        <div class=\"utp-numbers-v1__title-card utp-numbers-v1__tile--title\">\n          <<?= $heading_level ?> class=\"utp-numbers-v1__title megatext\"><?= $title ?><\/<?= $heading_level ?>>\n        <\/div>\n\n        <div class=\"utp-numbers-v1__left-bottom\">\n          <div class=\"utp-numbers-v1__tile utp-numbers-v1__tile--03 utp-numbers-v1__tile--stat utp-numbers-v1__tile--alt\">\n            <div class=\"utp-numbers-v1__bg\" aria-hidden=\"true\">\n              <img class=\"utp-numbers-v1__img\" src=\"<?= htmlspecialchars($c03['image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <\/div>\n            <span class=\"utp-numbers-v1__idx bodytext-strong\" aria-hidden=\"true\"><?= htmlspecialchars($c03['idx']) ?><\/span>\n\n            <div class=\"utp-numbers-v1__stat\">\n              <p class=\"utp-numbers-v1__stat-value displaytext-sm\"><?= htmlspecialchars($c03['value']) ?><\/p>\n              <p class=\"utp-numbers-v1__stat-text bodytext-lg\"><?= htmlspecialchars($c03['text']) ?><\/p>\n            <\/div>\n\n            <?php if ($c03_has_icon): ?>\n              <span class=\"utp-numbers-v1__icon-box utp-numbers-v1__icon-box--<?= htmlspecialchars($c03['icon_bg'] ?? 'surface') ?>\" aria-hidden=\"true\">\n                <img class=\"utp-numbers-v1__icon\" src=\"<?= htmlspecialchars(trim((string) $c03['icon'])) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n              <\/span>\n            <?php endif; ?>\n          <\/div>\n\n          <div class=\"utp-numbers-v1__tile utp-numbers-v1__tile--05 utp-numbers-v1__tile--photo\" aria-label=\"<?= htmlspecialchars($c05['alt'] ?? '') ?>\">\n            <div class=\"utp-numbers-v1__bg\" aria-hidden=\"true\">\n              <?php if (!empty($c05['video_mp4'])): ?>\n                <video class=\"utp-numbers-v1__img\" muted loop playsinline preload=\"none\" poster=\"<?= htmlspecialchars($c05['poster'] ?? '') ?>\">\n                  <source data-src=\"<?= htmlspecialchars($c05['video_mp4']) ?>\" type=\"video\/mp4\">\n                <\/video>\n              <?php else: ?>\n                <img class=\"utp-numbers-v1__img\" src=\"<?= htmlspecialchars($c05['image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n              <?php endif; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"utp-numbers-v1__col-right\">\n        <div class=\"utp-numbers-v1__right-stack\">\n          <div class=\"utp-numbers-v1__tile utp-numbers-v1__tile--01 utp-numbers-v1__tile--stat utp-numbers-v1__tile--brand\">\n            <div class=\"utp-numbers-v1__bg\" aria-hidden=\"true\">\n              <img class=\"utp-numbers-v1__img\" src=\"<?= htmlspecialchars($c01['image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <\/div>\n            <span class=\"utp-numbers-v1__idx bodytext-strong\" aria-hidden=\"true\"><?= htmlspecialchars($c01['idx']) ?><\/span>\n\n            <div class=\"utp-numbers-v1__stat\">\n              <p class=\"utp-numbers-v1__stat-value displaytext-sm\"><?= htmlspecialchars($c01['value']) ?><\/p>\n              <p class=\"utp-numbers-v1__stat-text bodytext-lg\"><?= htmlspecialchars($c01['text']) ?><\/p>\n            <\/div>\n\n            <?php if ($c01_has_icon): ?>\n              <span class=\"utp-numbers-v1__icon-box utp-numbers-v1__icon-box--<?= htmlspecialchars($c01['icon_bg'] ?? 'surface') ?>\" aria-hidden=\"true\">\n                <img class=\"utp-numbers-v1__icon\" src=\"<?= htmlspecialchars(trim((string) $c01['icon'])) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n              <\/span>\n            <?php endif; ?>\n          <\/div>\n\n          <div class=\"utp-numbers-v1__tile utp-numbers-v1__tile--04 utp-numbers-v1__tile--stat utp-numbers-v1__tile--brand\">\n            <div class=\"utp-numbers-v1__bg\" aria-hidden=\"true\">\n              <img class=\"utp-numbers-v1__img\" src=\"<?= htmlspecialchars($c04['image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n            <\/div>\n            <span class=\"utp-numbers-v1__idx bodytext-strong\" aria-hidden=\"true\"><?= htmlspecialchars($c04['idx']) ?><\/span>\n\n            <div class=\"utp-numbers-v1__stat\">\n              <p class=\"utp-numbers-v1__stat-value displaytext-sm\"><?= htmlspecialchars($c04['value']) ?><\/p>\n              <p class=\"utp-numbers-v1__stat-text bodytext-lg\"><?= htmlspecialchars($c04['text']) ?><\/p>\n            <\/div>\n\n            <?php if ($c04_has_icon): ?>\n              <span class=\"utp-numbers-v1__icon-box utp-numbers-v1__icon-box--<?= htmlspecialchars($c04['icon_bg'] ?? 'surface') ?>\" aria-hidden=\"true\">\n                <img class=\"utp-numbers-v1__icon\" src=\"<?= htmlspecialchars(trim((string) $c04['icon'])) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n              <\/span>\n            <?php endif; ?>\n          <\/div>\n        <\/div>\n\n        <div class=\"utp-numbers-v1__tile utp-numbers-v1__tile--02 utp-numbers-v1__tile--info utp-numbers-v1__tile--alt\">\n          <span class=\"utp-numbers-v1__idx bodytext-strong\" aria-hidden=\"true\"><?= htmlspecialchars($c02['idx']) ?><\/span>\n\n          <div class=\"utp-numbers-v1__info\">\n            <p class=\"utp-numbers-v1__info-title megatext-sm\"><?= htmlspecialchars($c02['title'] ?? '') ?><\/p>\n            <p class=\"utp-numbers-v1__info-text bodytext-md\"><?= htmlspecialchars($c02['text'] ?? '') ?><\/p>\n          <\/div>\n\n          <div class=\"utp-numbers-v1__info-media\" aria-hidden=\"true\">\n            <img class=\"utp-numbers-v1__img\" src=\"<?= htmlspecialchars($c02['image']) ?>\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "guarantees-variant-2": "<?php\n  $form_icon_src = trim((string) $form_icon_src);\n  $form_icon_sprite = trim((string) $form_icon_sprite);\n  $has_form_icon = $form_icon_src !== '' || $form_icon_sprite !== '';\n\n  $banner_image = trim((string) $banner_image);\n  $banner_image_mobile = trim((string) $banner_image_mobile);\n  $has_banner_image = $banner_image !== '';\n  $has_banner_image_mobile = $banner_image_mobile !== '';\n  $banner_image_mobile_effective = $has_banner_image_mobile ? $banner_image_mobile : $banner_image;\n  $has_banner_image_mobile_effective = $banner_image_mobile_effective !== '';\n\n  $banner_class_suffix = '';\n  if (!$has_banner_image) {\n    $banner_class_suffix .= ' guarantees-v2__banner--no-image';\n  }\n  if (!$has_banner_image_mobile_effective) {\n    $banner_class_suffix .= ' guarantees-v2__banner--no-image-mobile';\n  }\n\n  $banner_style_attr = '';\n  if ($has_banner_image) {\n    $banner_style_attr .= '--guarantees-v2-banner-image:url(\\'' . htmlspecialchars($banner_image, ENT_QUOTES) . '\\');';\n  }\n  if ($has_banner_image_mobile_effective) {\n    $banner_style_attr .= '--guarantees-v2-banner-image-mobile:url(\\'' . htmlspecialchars($banner_image_mobile_effective, ENT_QUOTES) . '\\');';\n  }\n?>\n<section class=\"guarantees-v2 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\">\n  <div class=\"container\">\n    <div class=\"guarantees-v2__grid\">\n      <div class=\"guarantees-v2__left stack stack--md\">\n        <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'guarantees-v2__eyebrow') ?>\n        <div class=\"titles\">\n          <<?= $heading_level ?> class=\"guarantees-v2__title megatext\"><?= $title ?><\/<?= $heading_level ?>>\n          <p class=\"guarantees-v2__lead leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"guarantees-v2__aside\">\n        <div class=\"guarantees-v2__cards\">\n          <?php foreach ($cards as $card): ?>\n            <?php\n              $card_icon = trim((string) ($card['icon'] ?? ''));\n              $has_card_icon = $card_icon !== '';\n            ?>\n            <article class=\"guarantees-v2__card\">\n              <span class=\"guarantees-v2__card-icon<?= $has_card_icon ? '' : ' guarantees-v2__card-icon--no-icon' ?>\" aria-hidden=\"true\">\n                <?php if ($has_card_icon): ?>\n                  <img\n                    src=\"<?= htmlspecialchars($card_icon) ?>\"\n                    alt=\"\"\n                    width=\"32\"\n                    height=\"32\"\n                    loading=\"lazy\"\n                    decoding=\"async\"\n                  >\n                <?php endif; ?>\n              <\/span>\n              <div class=\"guarantees-v2__card-copy stack stack--sm\">\n                <p class=\"guarantees-v2__card-title leadtext-xl\"><?= htmlspecialchars($card['title']) ?><\/p>\n                <p class=\"guarantees-v2__card-text bodytext\"><?= htmlspecialchars($card['text']) ?><\/p>\n              <\/div>\n            <\/article>\n          <?php endforeach; ?>\n        <\/div>\n\n        <div\n          class=\"guarantees-v2__banner guarantees-v2__banner--copy-<?= htmlspecialchars($banner_copy_style) ?><?= $banner_class_suffix ?>\"\n          <?php if ($banner_style_attr !== ''): ?>style=\"<?= $banner_style_attr ?>\"<?php endif; ?>\n        >\n          <?php if ($banner_copy_style === 'stack'): ?>\n            <div class=\"guarantees-v2__banner-copy stack stack--sm\">\n              <p class=\"guarantees-v2__banner-title leadtext-xl\"><?= htmlspecialchars($banner_title) ?><\/p>\n              <p class=\"guarantees-v2__banner-desc bodytext-md\"><?= htmlspecialchars($banner_text) ?><\/p>\n            <\/div>\n          <?php else: ?>\n            <p class=\"guarantees-v2__banner-text bodytext-md\"><?= $banner_text ?><\/p>\n          <?php endif; ?>\n        <\/div>\n      <\/div>\n\n      <div class=\"guarantees-v2__form-card\">\n        <div class=\"guarantees-v2__form-card-row<?= $has_form_icon ? '' : ' guarantees-v2__form-card-row--no-icon' ?>\">\n          <?php if ($has_form_icon): ?>\n            <span class=\"guarantees-v2__form-icon\" aria-hidden=\"true\">\n              <?php if ($form_icon_src !== ''): ?>\n                <img\n                  class=\"guarantees-v2__form-icon-img\"\n                  src=\"<?= htmlspecialchars($form_icon_src) ?>\"\n                  alt=\"\"\n                  width=\"34\"\n                  height=\"34\"\n                  loading=\"lazy\"\n                  decoding=\"async\"\n                >\n              <?php else: ?>\n                <svg class=\"icon guarantees-v2__form-icon-svg\" width=\"34\" height=\"34\" aria-hidden=\"true\">\n                  <use href=\"#<?= htmlspecialchars($form_icon_sprite) ?>\"><\/use>\n                <\/svg>\n              <?php endif; ?>\n            <\/span>\n          <?php endif; ?>\n          <div class=\"guarantees-v2__form-copy stack stack--sm\">\n            <p class=\"guarantees-v2__form-title leadtext-xl\"><?= htmlspecialchars($form_title) ?><\/p>\n            <p class=\"guarantees-v2__form-text bodytext-md\"><?= htmlspecialchars($form_text) ?><\/p>\n          <\/div>\n        <\/div>\n\n        <form class=\"guarantees-v2__form popup-form--consent-gated\" action=\"#\" method=\"post\">\n          <div class=\"guarantees-v2__form-controls\">\n            <label class=\"field guarantees-v2__field\">\n              <input class=\"field__input guarantees-v2__input\" type=\"tel\" name=\"phone\" aria-label=\"Телефон\" placeholder=\"<?= htmlspecialchars($phone_label) ?>\" required>\n            <\/label>\n            <button type=\"submit\" class=\"btn btn--primary guarantees-v2__submit popup-form__submit bodytext-sm\">\n              <?= htmlspecialchars($btn_label) ?>\n            <\/button>\n          <\/div>\n\n          <label class=\"popup-form__consent guarantees-v2__consent\">\n            <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n            <span class=\"popup-form__consent-text\"><?= $consent_html ?><\/span>\n          <\/label>\n        <\/form>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "gallery-variant-1": "<?php\n  $gallery_v1_initial_index = max(0, min(count($items) - 1, (int) $initial_index));\n?>\n<section class=\"gallery-v1 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\">\n  <div class=\"container\">\n    <div class=\"gallery-v1__inner stack stack--xl\">\n      <div class=\"gallery-v1__top\">\n        <div class=\"gallery-v1__copy stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'gallery-v1__eyebrow') ?>\n          <div class=\"titles\">\n            <<?= $heading_level ?> class=\"gallery-v1__title megatext\"><?= $title ?><\/<?= $heading_level ?>>\n            <p class=\"gallery-v1__lead leadtext\"><?= htmlspecialchars($lead) ?><\/p>\n          <\/div>\n\n          <button type=\"button\" class=\"btn btn--primary gallery-v1__cta\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id('cta')) ?>\" data-remote=\"1\">\n            <?= htmlspecialchars($cta_label) ?>\n          <\/button>\n        <\/div>\n\n        <div class=\"gallery-v1__hero swiper\">\n          <div class=\"swiper-wrapper\">\n            <?php foreach ($items as $item): ?>\n              <div class=\"swiper-slide gallery-v1__hero-slide\">\n                <img\n                  class=\"gallery-v1__hero-img\"\n                  src=\"<?= htmlspecialchars($item['src'] ?? '') ?>\"\n                  alt=\"<?= htmlspecialchars($item['alt'] ?? '') ?>\"\n                  loading=\"lazy\"\n                  decoding=\"async\"\n                >\n              <\/div>\n            <?php endforeach; ?>\n          <\/div>\n          <span class=\"gallery-v1__hero-loader ui-preloader-overlay\" data-gallery-v1-hero-loader aria-hidden=\"true\">\n            <span class=\"ui-preloader\"><\/span>\n          <\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"gallery-v1__bottom\">\n        <div class=\"gallery-v1__carousel\">\n          <div class=\"gallery-v1__slider swiper\">\n            <div class=\"swiper-wrapper\">\n              <?php foreach ($items as $i => $item): ?>\n                <?php\n                  $is_active = $i === $gallery_v1_initial_index;\n                  $thumb_class = 'gallery-v1__thumb';\n                  if ($is_active) $thumb_class .= ' is-active';\n                  $thumb_alt = trim((string) ($item['alt'] ?? ''));\n                  $thumb_label = $thumb_alt !== ''\n                    ? 'Показать фото: ' . $thumb_alt\n                    : 'Показать фото ' . ($i + 1);\n                ?>\n                <div class=\"swiper-slide gallery-v1__slide\">\n                  <button\n                    type=\"button\"\n                    class=\"<?= htmlspecialchars($thumb_class) ?>\"\n                    data-gallery-v1-thumb\n                    data-gallery-v1-index=\"<?= (int) $i ?>\"\n                    aria-label=\"<?= htmlspecialchars($thumb_label) ?>\"\n                    <?= $is_active ? 'aria-current=\"true\"' : '' ?>\n                  >\n                    <span class=\"gallery-v1__thumb-frame\" aria-hidden=\"true\">\n                      <span class=\"gallery-v1__thumb-inner\">\n                        <img\n                          class=\"gallery-v1__thumb-img\"\n                          src=\"<?= htmlspecialchars($item['src'] ?? '') ?>\"\n                          alt=\"<?= htmlspecialchars($item['alt'] ?? '') ?>\"\n                          loading=\"lazy\"\n                          decoding=\"async\"\n                          data-gallery-v1-src=\"<?= htmlspecialchars($item['src'] ?? '') ?>\"\n                          data-gallery-v1-alt=\"<?= htmlspecialchars($item['alt'] ?? '') ?>\"\n                        >\n                      <\/span>\n                    <\/span>\n                  <\/button>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <?php if (count($items) > 1): ?>\n          <div class=\"gallery-v1__controls slider-controls slider-nav--glass\">\n            <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущее фото\">\n              <svg class=\"icon gallery-v1__arrow\" width=\"17\" height=\"11\" aria-hidden=\"true\">\n                <use href=\"#icon-slider-arrow\"><\/use>\n              <\/svg>\n            <\/button>\n\n            <div class=\"slider-pagination-host\">\n              <div class=\"gallery-v1__pagination slider-pagination--dots is-always swiper-pagination\" aria-hidden=\"true\"><\/div>\n            <\/div>\n\n            <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующее фото\">\n              <svg class=\"icon gallery-v1__arrow\" width=\"17\" height=\"11\" aria-hidden=\"true\">\n                <use href=\"#icon-slider-arrow\"><\/use>\n              <\/svg>\n            <\/button>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "about-variant-1": "<?php\n  $more_url = trim((string) $more_url);\n  $has_more_link = $more_url !== '';\n?>\n<section class=\"about-v1 about-v1--profile-<?= htmlspecialchars($profile_side) ?> <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\">\n  <div class=\"container\">\n    <div class=\"about-v1__grid\">\n      <div class=\"about-v1__main\">\n        <div class=\"about-v1__copy-head stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'about-v1__eyebrow') ?>\n          <<?= $heading_level ?> class=\"about-v1__title megatext\">\n            <?= $title ?>\n          <\/<?= $heading_level ?>>\n        <\/div>\n\n        <div class=\"about-v1__scroll\">\n          <div class=\"about-v1__copy-viewport\" tabindex=\"0\">\n            <div class=\"about-v1__copy-body stack stack--md\">\n              <p class=\"about-v1__lead leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p>\n              <div class=\"about-v1__text bodytext-md\">\n                <?php foreach ($paragraphs as $paragraph): ?>\n                  <p><?= htmlspecialchars($paragraph) ?><\/p>\n                <?php endforeach; ?>\n              <\/div>\n              <p class=\"about-v1__closing leadtext-xl\"><?= htmlspecialchars($closing) ?><\/p>\n            <\/div>\n          <\/div>\n          <div class=\"about-v1__copy-fade\" aria-hidden=\"true\"><\/div>\n          <div class=\"about-v1__scrollbar\" aria-hidden=\"true\">\n            <div class=\"about-v1__scrollbar-thumb\"><\/div>\n          <\/div>\n        <\/div>\n\n        <button\n          type=\"button\"\n          class=\"about-v1__toggle bodytext-md\"\n          data-about-v1-toggle\n          data-expand-label=\"<?= htmlspecialchars($expand_label) ?>\"\n          data-collapse-label=\"<?= htmlspecialchars($collapse_label) ?>\"\n          aria-expanded=\"false\"\n          hidden\n        >\n          <span data-about-v1-toggle-label><?= htmlspecialchars($expand_label) ?><\/span>\n        <\/button>\n\n        <?php if ($has_more_link): ?>\n          <a class=\"about-v1__more link-arrow bodytext-md\" href=\"<?= htmlspecialchars($more_url) ?>\">\n            <?= htmlspecialchars($more_label) ?>\n            <svg class=\"icon about-v1__more-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n              <use href=\"#icon-arrow-right\"><\/use>\n            <\/svg>\n          <\/a>\n        <?php endif; ?>\n      <\/div>\n\n      <aside class=\"about-v1__profile\">\n        <div class=\"about-v1__profile-media\">\n          <img\n            class=\"about-v1__profile-photo\"\n            src=\"<?= htmlspecialchars($doctor_photo) ?>\"\n            alt=\"\"\n            width=\"660\"\n            height=\"518\"\n            loading=\"lazy\"\n            decoding=\"async\"\n          >\n        <\/div>\n        <div class=\"about-v1__profile-foot\">\n          <div class=\"about-v1__profile-meta stack stack--sm\">\n            <p class=\"about-v1__profile-name leadtext-xl\"><?= htmlspecialchars($doctor_name) ?><\/p>\n            <p class=\"about-v1__profile-role bodytext-md\"><?= htmlspecialchars($doctor_role) ?><\/p>\n          <\/div>\n          <img\n            class=\"about-v1__profile-sign\"\n            src=\"<?= htmlspecialchars($doctor_signature) ?>\"\n            alt=\"\"\n            width=\"214\"\n            height=\"102\"\n            loading=\"lazy\"\n            decoding=\"async\"\n          >\n        <\/div>\n      <\/aside>\n    <\/div>\n  <\/div>\n<\/section>",
            "news-variant-2": "<section class=\"news-v2 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\" id=\"news\">\n  <div class=\"container\">\n    <div class=\"news-v2__inner\">\n      <div class=\"news-v2__head\">\n        <div class=\"news-v2__head-main stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'news-v2__eyebrow') ?>\n          <div class=\"titles\">\n            <<?= $heading_level ?> class=\"news-v2__title megatext\">\n              <?= $title ?>\n            <\/<?= $heading_level ?>>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <a class=\"news-v2__all-link link-arrow bodytext-md\" href=\"<?= htmlspecialchars($all_link_url) ?>\">\n        <?= htmlspecialchars($all_link_label) ?>\n        <svg class=\"icon news-v2__all-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n          <use href=\"#icon-arrow-right\"><\/use>\n        <\/svg>\n      <\/a>\n\n      <div class=\"news-v2__slider-foot slider-foot\">\n        <div class=\"news-v2__carousel\">\n          <div class=\"news-v2__slider swiper\">\n            <div class=\"swiper-wrapper news-v2__grid\">\n              <?php foreach ($items as $item): ?>\n                <div class=\"swiper-slide\">\n                  <a\n                    class=\"news-v2__card\"\n                    href=\"<?= htmlspecialchars($item['url']) ?>\"\n                  >\n                    <div class=\"news-v2__card-media\">\n                      <img\n                        class=\"news-v2__card-img\"\n                        src=\"<?= htmlspecialchars($item['image']) ?>\"\n                        alt=\"\"\n                        width=\"290\"\n                        height=\"288\"\n                        loading=\"lazy\"\n                        decoding=\"async\"\n                      >\n                    <\/div>\n                    <div class=\"news-v2__card-content\">\n                      <?php\n                        $has_tag = trim((string)($item['category'] ?? '')) !== '';\n                        $has_expert = trim((string)($item['expert'] ?? '')) !== '';\n                        $has_date = trim((string)($item['date'] ?? '')) !== '';\n                        $has_read = trim((string)($item['read_time'] ?? '')) !== '';\n                      ?>\n                      <?php if ($has_tag || $has_expert): ?>\n                        <div class=\"news-v2__card-tags\">\n                          <?php if ($has_tag): ?>\n                            <span class=\"news-v2__tag bodytext-md\"><?= htmlspecialchars($item['category']) ?><\/span>\n                          <?php endif; ?>\n                          <?php if ($has_expert): ?>\n                            <span class=\"news-v2__expert bodytext-sm\"><?= htmlspecialchars($item['expert']) ?><\/span>\n                          <?php endif; ?>\n                        <\/div>\n                      <?php endif; ?>\n                      <p class=\"news-v2__card-title titletext-sm\"><?= htmlspecialchars($item['title']) ?><\/p>\n                      <?php if ($has_date || $has_read): ?>\n                        <div class=\"news-v2__meta bodytext\">\n                          <?php if ($has_date): ?>\n                            <time class=\"news-v2__meta-date\"><?= htmlspecialchars($item['date']) ?><\/time>\n                          <?php endif; ?>\n                          <?php if ($has_date && $has_read): ?>\n                            <span class=\"news-v2__meta-dot\" aria-hidden=\"true\"><\/span>\n                          <?php endif; ?>\n                          <?php if ($has_read): ?>\n                            <span class=\"news-v2__meta-read\">\n                              <svg class=\"icon news-v2__meta-clock\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                                <use href=\"#icon-clock\"><\/use>\n                              <\/svg>\n                              <span><?= htmlspecialchars($item['read_time']) ?><\/span>\n                            <\/span>\n                          <?php endif; ?>\n                        <\/div>\n                      <?php endif; ?>\n                    <\/div>\n                  <\/a>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"news-v2__pagination-host slider-pagination-host\">\n          <div class=\"news-v2__pagination slider-pagination--dots is-always swiper-pagination\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "promo-variant-2": "<section\n  class=\"promo-v2 <?= htmlspecialchars(\\app\\generator\\SectionBg::classString($section_bg)) ?>\"\n>\n  <div class=\"container\">\n    <div class=\"promo-v2__inner stack stack--xl\">\n      <div class=\"promo-v2__head\">\n        <div class=\"promo-v2__head-main stack stack--md\">\n          <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'promo-v2__eyebrow') ?>\n          <div class=\"titles\">\n            <<?= $heading_level ?> class=\"promo-v2__title megatext\"><?= $title ?><\/<?= $heading_level ?>>\n          <\/div>\n        <\/div>\n\n        <div class=\"promo-v2__head-actions\">\n          <a class=\"promo-v2__all-link link-arrow bodytext-md\" href=\"<?= htmlspecialchars($all_link_url) ?>\">\n            <?= htmlspecialchars($all_link_label) ?>\n            <svg class=\"icon promo-v2__all-link-icon link-arrow__icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n              <use href=\"#icon-arrow-right\"><\/use>\n            <\/svg>\n          <\/a>\n\n          <?php if (count($slides) > 1): ?>\n            <div class=\"promo-v2__slider-nav slider-nav slider-nav--brand\">\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--prev\" aria-label=\"Предыдущие предложения\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M9 2L4 7L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n              <button type=\"button\" class=\"slider-nav__btn slider-nav__btn--next\" aria-label=\"Следующие предложения\">\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n                  <path d=\"M5 2L10 7L5 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                <\/svg>\n              <\/button>\n            <\/div>\n          <?php endif; ?>\n        <\/div>\n      <\/div>\n\n      <div class=\"promo-v2__slider-foot slider-foot\">\n        <div class=\"promo-v2__carousel\">\n          <div class=\"promo-v2__slider swiper\">\n            <div class=\"swiper-wrapper\">\n              <?php foreach ($slides as $slide): ?>\n                <?php\n                  $featured = $slide['featured'] ?? [];\n                  $cards = $slide['cards'] ?? [];\n                  $featured_image = trim((string) ($featured['image'] ?? ''));\n                  $has_featured_image = $featured_image !== '';\n                  $featured_badge = trim((string) ($featured['badge'] ?? ''));\n                  $has_featured_badge = $featured_badge !== '';\n                  $badge_icon = trim((string) ($featured['badge_icon'] ?? ''));\n                  $has_badge_icon = $badge_icon !== '';\n                ?>\n                <div class=\"swiper-slide\">\n                  <div class=\"promo-v2__grid\">\n                    <article class=\"promo-v2__featured<?= $has_featured_image ? '' : ' promo-v2__featured--no-image' ?>\">\n                      <?php if ($has_featured_image): ?>\n                        <div class=\"promo-v2__featured-media\" aria-hidden=\"true\">\n                          <img\n                            src=\"<?= htmlspecialchars($featured_image) ?>\"\n                            alt=\"\"\n                            loading=\"lazy\"\n                            decoding=\"async\"\n                          >\n                        <\/div>\n                        <div class=\"promo-v2__featured-overlay\" aria-hidden=\"true\"><\/div>\n                      <?php endif; ?>\n\n                      <div class=\"promo-v2__featured-body\">\n                        <?php if ($has_featured_badge): ?>\n                          <p class=\"promo-v2__badge uibtntext<?= $has_badge_icon ? '' : ' promo-v2__badge--no-mark' ?>\">\n                            <?php if ($has_badge_icon): ?>\n                              <span\n                                class=\"promo-v2__badge-mark\"\n                                style=\"--promo-v2-badge-icon-src: url('<?= htmlspecialchars($badge_icon, ENT_QUOTES) ?>')\"\n                                aria-hidden=\"true\"\n                              >\n                                <span class=\"promo-v2__badge-icon-glyph\"><\/span>\n                              <\/span>\n                            <?php endif; ?>\n                            <span class=\"promo-v2__badge-text\"><?= htmlspecialchars($featured_badge) ?><\/span>\n                          <\/p>\n                        <?php endif; ?>\n\n                        <div class=\"promo-v2__featured-copy stack stack--sm\">\n                          <p class=\"promo-v2__featured-title megatext-md\"><?= $featured['title'] ?? '' ?><\/p>\n                          <p class=\"promo-v2__featured-text bodytext-lg-regular\"><?= htmlspecialchars($featured['text'] ?? '') ?><\/p>\n                        <\/div>\n\n                        <a class=\"promo-v2__featured-btn btn btn--primary uibtntext\" href=\"<?= htmlspecialchars($featured['button_url'] ?? '#') ?>\">\n                          <?= htmlspecialchars($featured['button_label'] ?? '') ?>\n                        <\/a>\n                      <\/div>\n                    <\/article>\n\n                    <?php foreach ($cards as $card): ?>\n                      <?php\n                        $card_image = trim((string) ($card['image'] ?? ''));\n                        $has_card_image = $card_image !== '';\n                        $card_icon = trim((string) ($card['icon'] ?? ''));\n                        $has_card_icon = $card_icon !== '';\n                        $card_class = 'promo-v2__card';\n                        if (($card['variant'] ?? '') === 'tint') {\n                            $card_class .= ' promo-v2__card--tint';\n                        } else {\n                            $card_class .= ' promo-v2__card--overlay';\n                        }\n                        if (!$has_card_image) {\n                            $card_class .= ' promo-v2__card--no-image';\n                        }\n                      ?>\n                      <a class=\"<?= htmlspecialchars($card_class) ?>\" href=\"<?= htmlspecialchars($card['url']) ?>\">\n                        <?php if ($has_card_image): ?>\n                          <div class=\"promo-v2__card-media\" aria-hidden=\"true\">\n                            <img\n                              src=\"<?= htmlspecialchars($card_image) ?>\"\n                              alt=\"\"\n                              loading=\"lazy\"\n                              decoding=\"async\"\n                            >\n                          <\/div>\n                        <?php endif; ?>\n                        <?php if (($card['variant'] ?? '') === 'overlay' && $has_card_image): ?>\n                          <div class=\"promo-v2__card-overlay\" aria-hidden=\"true\"><\/div>\n                        <?php endif; ?>\n\n                        <span class=\"promo-v2__card-icon<?= $has_card_icon ? '' : ' promo-v2__card-icon--no-icon' ?>\" aria-hidden=\"true\">\n                          <?php if ($has_card_icon): ?>\n                            <img\n                              class=\"promo-v2__card-icon-img\"\n                              src=\"<?= htmlspecialchars($card_icon) ?>\"\n                              alt=\"\"\n                              width=\"32\"\n                              height=\"32\"\n                              loading=\"lazy\"\n                              decoding=\"async\"\n                            >\n                          <?php endif; ?>\n                        <\/span>\n\n                        <div class=\"promo-v2__card-body stack stack--sm\">\n                          <p class=\"promo-v2__card-title megatext-md\"><?= htmlspecialchars($card['title']) ?><\/p>\n                          <p class=\"promo-v2__card-text bodytext-lg-regular\"><?= htmlspecialchars($card['text']) ?><\/p>\n                        <\/div>\n                      <\/a>\n                    <?php endforeach; ?>\n                  <\/div>\n                <\/div>\n              <?php endforeach; ?>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <?php if (count($slides) > 1): ?>\n          <div class=\"slider-pagination-host\">\n            <div class=\"promo-v2__pagination slider-pagination--dots swiper-pagination\"><\/div>\n          <\/div>\n        <?php endif; ?>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>",
            "cta-variant-1": "<?php\n  $has_text = ['\\\\app\\\\generator\\\\ContentPresence', 'hasText'];\n  $features = \\app\\generator\\ContentPresence::items($features, ['text']);\n  $has_intro = $has_text($eyebrow) || $has_text($title) || $has_text($lead);\n?>\n<?php\n  $bg_image = trim((string) $bg_image);\n  $bg_image_mobile = trim((string) $bg_image_mobile);\n  $has_bg_image = $bg_image !== '' || $bg_image_mobile !== '';\n  $bg_image_fallback = $bg_image !== '' ? $bg_image : $bg_image_mobile;\n  $cta_v1_section_classes = ['cta-v1'];\n  if ($layout === 'fullwidth') {\n      $cta_v1_section_classes[] = 'cta-v1--fullwidth';\n      if ($has_bg_image) {\n          $cta_v1_section_classes[] = 'has-block-bg';\n      }\n  } else {\n      $cta_v1_section_classes = array_merge($cta_v1_section_classes, \\app\\generator\\SectionBg::classes($section_bg));\n  }\n?>\n<section class=\"<?= htmlspecialchars(implode(' ', $cta_v1_section_classes)) ?>\">\n  <?php if ($layout === 'fullwidth'): ?>\n    <div class=\"cta-v1__bg block-bg\" aria-hidden=\"true\">\n      <picture>\n        <?php if (!empty($bg_image_mobile)): ?>\n          <source media=\"(max-width: 768px)\" srcset=\"<?= htmlspecialchars($bg_image_mobile) ?>\">\n        <?php endif; ?>\n        <img src=\"<?= htmlspecialchars($bg_image) ?>\" alt=\"<?= htmlspecialchars($bg_alt) ?>\" loading=\"lazy\" decoding=\"async\">\n      <\/picture>\n    <\/div>\n\n    <div class=\"container\">\n      <div class=\"cta-v1__inner\">\n  <?php else: ?>\n  <div class=\"container\">\n    <div class=\"cta-v1__card\">\n      <?php if ($has_bg_image): ?>\n        <div class=\"cta-v1__bg\" aria-hidden=\"true\">\n          <picture>\n            <?php if ($bg_image_mobile !== '' && $bg_image !== ''): ?>\n              <source media=\"(max-width: 768px)\" srcset=\"<?= htmlspecialchars($bg_image_mobile) ?>\">\n            <?php endif; ?>\n            <img src=\"<?= htmlspecialchars($bg_image_fallback) ?>\" alt=\"<?= htmlspecialchars($bg_alt) ?>\" loading=\"lazy\" decoding=\"async\">\n          <\/picture>\n        <\/div>\n      <?php endif; ?>\n\n      <div class=\"cta-v1__inner\">\n  <?php endif; ?>\n        <?php if ($has_intro): ?><div class=\"cta-v1__intro stack stack--md\">\n          <?php if ($has_text($eyebrow) || $has_text($title)): ?><div class=\"cta-v1__head\">\n            <?= \\app\\generator\\Eyebrow::renderBlock($eyebrow, 'cta-v1__eyebrow') ?>\n            <?php if ($has_text($title)): ?><<?= $heading_level ?> class=\"cta-v1__title megatext\"><?= $title ?><\/<?= $heading_level ?>><?php endif; ?>\n          <\/div><?php endif; ?>\n          <?php if ($has_text($lead)): ?><p class=\"cta-v1__lead leadtext-xl\"><?= htmlspecialchars($lead) ?><\/p><?php endif; ?>\n        <\/div><?php endif; ?>\n\n        <?php if ($features !== []): ?><ul class=\"cta-v1__features\">\n          <?php foreach ($features as $feature): ?>\n            <?php\n            $feature_icon = trim((string) ($feature['icon'] ?? ''));\n            $has_feature_icon = $feature_icon !== '';\n            ?>\n            <li class=\"cta-v1__feature<?= $has_feature_icon ? '' : ' cta-v1__feature--no-icon' ?>\">\n              <?php if ($has_feature_icon): ?>\n                <span class=\"cta-v1__feature-icon\" aria-hidden=\"true\">\n                  <img src=\"<?= htmlspecialchars($feature_icon) ?>\" alt=\"\" width=\"24\" height=\"24\" loading=\"lazy\" decoding=\"async\">\n                <\/span>\n              <?php endif; ?>\n              <span class=\"cta-v1__feature-text bodytext-lg\"><?= htmlspecialchars($feature['text']) ?><\/span>\n            <\/li>\n          <?php endforeach; ?>\n        <\/ul><?php endif; ?>\n\n        <form class=\"cta-v1__form popup-form--consent-gated\" action=\"<?=$form_data['action']?>\" method=\"post\" <?=$form_data['attr']?>>\n          <div class=\"cta-v1__form-grid\">\n            <label class=\"cta-v1__field\">\n                <select class=\"cta-v1__input cta-v1__select field__input\" name=\"<?=$form_data['fields']['concern']['name']?>\" aria-label=\"Что вас беспокоит?\">\n                    <?php foreach ($concerns as $label => $value): ?>\n                        <option value=\"<?= htmlspecialchars($value) ?>\"<?=$value==$form_data['fields']['concern']['value']?' selected':''?><?=$value===''?' disabled':''?>>\n                            <?= htmlspecialchars($label) ?>\n                        <\/option>\n                    <?php endforeach; ?>\n                <\/select>\n              <span class=\"cta-v1__select-icon\" aria-hidden=\"true\">\n                <svg class=\"icon\" width=\"16\" height=\"16\" aria-hidden=\"true\">\n                  <use href=\"#icon-chevron-down\"><\/use>\n                <\/svg>\n              <\/span>\n            <\/label>\n\n              <label class=\"cta-v1__field\">\n                  <input class=\"cta-v1__input field__input\" type=\"text\" name=\"<?=$form_data['fields']['name']['name']?>\" value=\"<?=$form_data['fields']['name']['value']?>\" aria-label=\"Имя\" placeholder=\"<?= htmlspecialchars($form_name_label) ?>\" autocomplete=\"name\" required>\n              <\/label>\n\n              <label class=\"cta-v1__field\">\n                  <input class=\"cta-v1__input field__input\" type=\"tel\" name=\"<?=$form_data['fields']['phone']['name']?>\" value=\"<?=$form_data['fields']['phone']['value']?>\" aria-label=\"Телефон\" placeholder=\"<?= htmlspecialchars($form_phone_label) ?>\" autocomplete=\"tel\" required>\n              <\/label>\n\n            <button type=\"submit\" class=\"cta-v1__submit popup-form__submit btn btn--primary\">\n              <?= htmlspecialchars($form_submit_label) ?>\n            <\/button>\n          <\/div>\n\n          <label class=\"cta-v1__consent popup-form__consent bodytext-sm\">\n            <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n            <span class=\"popup-form__consent-text\"><?= $consent_html ?><\/span>\n          <\/label>\n        <\/form>\n      <\/div>\n  <?php if ($layout === 'fullwidth'): ?>\n    <\/div>\n  <?php else: ?>\n    <\/div>\n  <\/div>\n  <?php endif; ?>\n<\/section>"
        },
        "layout": {
            "header": "<?php\n$site_header_root_classes = ['site-header', 'site-header-v1'];\nif (!empty($header_tool_icon_bg)) {\n    $site_header_root_classes[] = 'site-header-v1--tool-icon-bg';\n}\n?>\n<header class=\"<?= htmlspecialchars(implode(' ', $site_header_root_classes), ENT_QUOTES, 'UTF-8') ?>\" data-header-root>\n  <div class=\"site-header__shell\">\n    <div class=\"container\">\n      <div class=\"site-header__top\">\n        <div class=\"site-header__brand-row\">\n          <a class=\"site-header__brand\" href=\"<?= htmlspecialchars($header_logo_url) ?>\" aria-label=\"Аленте Стом\">\n            <img class=\"site-header__logo\" src=\"\/assets\/src\/img\/logo.svg\" alt=\"Аленте Стом\" width=\"264\" height=\"65\" loading=\"eager\" decoding=\"async\">\n          <\/a>\n\n          <div class=\"site-header__location uimeta\">\n            <svg class=\"site-header__location-icon icon\" aria-hidden=\"true\">\n              <use href=\"#icon-location\"><\/use>\n            <\/svg>\n            <span><?= htmlspecialchars($header_address) ?><\/span>\n          <\/div>\n        <\/div>\n\n        <div class=\"site-header__tools\">\n          <a class=\"site-header__tool bvi-open\" href=\"#\" aria-label=\"Версия для слабовидящих\">\n            <span class=\"site-header__tool-icon\" aria-hidden=\"true\">\n              <svg class=\"icon\" aria-hidden=\"true\">\n                <use href=\"#icon-eye\"><\/use>\n              <\/svg>\n            <\/span>\n            <span class=\"site-header__tool-label uimeta\">Версия для слабовидящих<\/span>\n          <\/a>\n\n          <a class=\"site-header__tool\" href=\"#account\" aria-label=\"Личный кабинет\">\n            <span class=\"site-header__tool-icon\" aria-hidden=\"true\">\n              <svg class=\"icon\" aria-hidden=\"true\">\n                <use href=\"#icon-user\"><\/use>\n              <\/svg>\n            <\/span>\n            <span class=\"site-header__tool-label uimeta\">Личный кабинет<\/span>\n          <\/a>\n\n          <a class=\"site-header__phone\" href=\"tel:<?= htmlspecialchars(preg_replace('\/[^0-9+]\/', '', $header_phone)) ?>\">\n            <span class=\"site-header__phone-number bodytext-md\"><?= htmlspecialchars($header_phone) ?><\/span>\n            <span class=\"site-header__phone-hours bodytext-sm\"><?= htmlspecialchars($header_hours) ?><\/span>\n          <\/a>\n\n          <button type=\"button\" class=\"site-header__cta btn uibtntext\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id('cta')) ?>\" data-remote=\"1\">\n            <?= htmlspecialchars($header_cta) ?>\n          <\/button>\n\n          <button\n            type=\"button\"\n            class=\"site-header__burger\"\n            aria-expanded=\"false\"\n            aria-controls=\"site-header-nav\"\n            aria-label=\"Открыть меню\"\n            data-header-toggle\n          >\n            <span><\/span>\n            <span><\/span>\n            <span><\/span>\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"site-header__nav-wrap glass glass--desktop-only\" id=\"site-header-nav\" data-header-panel>\n      <div class=\"container\">\n        <nav class=\"site-header__nav\" aria-label=\"Основная навигация\">\n          <ul class=\"site-header__menu\">\n            <?php foreach ($header_menu as $item): ?>\n              <?php $hasSub = !empty($item['submenu']); ?>\n              <?php $subId = $hasSub ? ('hdr-sub-' . substr(md5($item['label']), 0, 8)) : null; ?>\n              <?php\n                $menuItemExtraClass = $hasSub\n                  ? \\app\\generator\\HeaderDropdown::menuItemExtraClass($item['submenu'])\n                  : '';\n              ?>\n              <li\n                class=\"site-header__menu-item<?= $menuItemExtraClass !== '' ? ' ' . $menuItemExtraClass : '' ?>\"\n                <?= $hasSub ? 'data-dropdown' : '' ?>\n              >\n                <?php if ($hasSub): ?>\n                  <button\n                    type=\"button\"\n                    class=\"site-header__menu-link site-header__menu-link--toggle navtext\"\n                    aria-expanded=\"false\"\n                    aria-controls=\"<?= htmlspecialchars($subId) ?>\"\n                    data-dropdown-toggle\n                  >\n                    <span><?= htmlspecialchars($item['label']) ?><\/span>\n                    <span class=\"site-header__menu-dot\" aria-hidden=\"true\"><\/span>\n                  <\/button>\n\n                  <?php \\app\\generator\\HeaderDropdown::render($item, $subId); ?>\n                <?php else: ?>\n                  <a class=\"site-header__menu-link navtext\" href=\"<?= htmlspecialchars($item['url']) ?>\">\n                    <span><?= htmlspecialchars($item['label']) ?><\/span>\n                  <\/a>\n                <?php endif; ?>\n              <\/li>\n            <?php endforeach; ?>\n          <\/ul>\n        <\/nav>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/header>",
            "footer": "<footer class=\"site-footer footer-v1\" aria-label=\"Подвал сайта\">\n  <div class=\"container\">\n    <?php if (trim((string) $footer_decor) !== ''): ?>\n      <img class=\"footer-v1__bg\" src=\"<?= htmlspecialchars($footer_decor) ?>\" alt=\"\" aria-hidden=\"true\" loading=\"lazy\" decoding=\"async\">\n    <?php endif; ?>\n\n    <div class=\"footer-v1__top\">\n      <div class=\"footer-v1__brand\">\n        <a class=\"footer-v1__logo-link\" href=\"<?= htmlspecialchars($footer_logo_url) ?>\" aria-label=\"Аленте Стом\">\n          <img class=\"footer-v1__logo\" src=\"\/assets\/src\/img\/logo.svg\" alt=\"Аленте Стом\" width=\"264\" height=\"65\" loading=\"lazy\" decoding=\"async\">\n        <\/a>\n        <p class=\"footer-v1__tagline bodytext\"><?= htmlspecialchars($footer_tagline) ?><\/p>\n\n        <div class=\"footer-v1__contacts\">\n          <div class=\"footer-v1__contact-row bodytext-sm\">\n            <svg class=\"footer-v1__contact-icon icon\" aria-hidden=\"true\">\n              <use href=\"#icon-location\"><\/use>\n            <\/svg>\n            <span><?= htmlspecialchars($footer_address) ?><\/span>\n          <\/div>\n          <a class=\"footer-v1__contact-row footer-v1__contact-row--phone bodytext-sm\" href=\"tel:<?= htmlspecialchars(preg_replace('\/[^0-9+]\/', '', $footer_phone)) ?>\">\n            <svg class=\"footer-v1__contact-icon icon\" aria-hidden=\"true\">\n              <use href=\"#icon-phone\"><\/use>\n            <\/svg>\n            <span><?= htmlspecialchars($footer_phone) ?><\/span>\n          <\/a>\n          <p class=\"footer-v1__hours bodytext-sm\"><?= htmlspecialchars($footer_hours) ?><\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"footer-v1__menus\">\n        <nav class=\"footer-v1__nav\" aria-label=\"<?= htmlspecialchars($footer_nav_title) ?>\">\n          <p class=\"footer-v1__col-title bodytext-lg\"><?= htmlspecialchars($footer_nav_title) ?><\/p>\n          <ul class=\"footer-v1__list\">\n            <?php foreach ($footer_nav_cols as $col): ?>\n              <?php foreach ($col as $item): ?>\n                <li class=\"footer-v1__item\">\n                  <a class=\"footer-v1__link bodytext-lg-regular\" href=\"<?= htmlspecialchars($item['url']) ?>\"><?= htmlspecialchars($item['label']) ?><\/a>\n                <\/li>\n              <?php endforeach; ?>\n            <?php endforeach; ?>\n          <\/ul>\n        <\/nav>\n\n        <nav class=\"footer-v1__popular\" aria-label=\"<?= htmlspecialchars($footer_popular_title) ?>\">\n          <p class=\"footer-v1__col-title bodytext-lg\"><?= htmlspecialchars($footer_popular_title) ?><\/p>\n          <ul class=\"footer-v1__list\">\n            <?php foreach ($footer_popular_cols as $col): ?>\n              <?php foreach ($col as $item): ?>\n                <li class=\"footer-v1__item\">\n                  <a class=\"footer-v1__link bodytext-lg-regular\" href=\"<?= htmlspecialchars($item['url']) ?>\"><?= htmlspecialchars($item['label']) ?><\/a>\n                <\/li>\n              <?php endforeach; ?>\n            <?php endforeach; ?>\n          <\/ul>\n        <\/nav>\n      <\/div>\n\n      <div class=\"footer-v1__cta\">\n        <div class=\"footer-v1__cta-card\">\n          <div class=\"footer-v1__cta-head stack stack--sm\">\n            <p class=\"footer-v1__cta-title megatext-sm\"><?= htmlspecialchars($footer_form_title) ?><\/p>\n            <p class=\"footer-v1__cta-lead bodytext-lg\"><?= htmlspecialchars($footer_form_lead) ?><\/p>\n          <\/div>\n\n          <form class=\"footer-v1__form\" action=\"#\" method=\"post\">\n            <div class=\"footer-v1__form-row\">\n              <label class=\"footer-v1__field\">\n                <input class=\"field__input footer-v1__input\" type=\"tel\" name=\"phone\" aria-label=\"Телефон\" placeholder=\"+7 (___)-___-__-__\" autocomplete=\"tel\">\n              <\/label>\n              <button type=\"button\" class=\"btn btn--primary footer-v1__submit\" data-popup-open=\"<?= htmlspecialchars(\\app\\generator\\PageForms::id('cta')) ?>\" data-remote=\"1\"><?= htmlspecialchars($footer_form_btn) ?><\/button>\n            <\/div>\n            <label class=\"footer-v1__consent\">\n              <input class=\"footer-v1__checkbox\" type=\"checkbox\" name=\"consent\">\n              <span class=\"footer-v1__consent-text uimeta\"><?= $footer_form_consent_html ?><\/span>\n            <\/label>\n          <\/form>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"footer-v1__divider\" aria-hidden=\"true\"><\/div>\n\n    <div class=\"footer-v1__bottom\">\n      <div class=\"footer-v1__meta\">\n        <p class=\"footer-v1__meta-line uimeta\"><?= htmlspecialchars($footer_copyright) ?><\/p>\n        <p class=\"footer-v1__meta-line uimeta\"><?= htmlspecialchars($footer_company) ?><\/p>\n      <\/div>\n\n      <div class=\"footer-v1__bottom-links\">\n        <?php foreach ($footer_links as $link): ?>\n          <a class=\"footer-v1__bottom-link uimeta\" href=\"<?= htmlspecialchars($link['url']) ?>\"><?= htmlspecialchars($link['label']) ?><\/a>\n        <?php endforeach; ?>\n      <\/div>\n\n      <div class=\"footer-v1__aside\">\n        <a class=\"footer-v1__accessibility bvi-open\" href=\"<?= htmlspecialchars($footer_accessibility_url) ?>\">\n          <span class=\"footer-v1__accessibility-icon\" aria-hidden=\"true\">\n            <svg class=\"icon\" aria-hidden=\"true\">\n              <use href=\"#icon-eye\"><\/use>\n            <\/svg>\n          <\/span>\n          <span class=\"footer-v1__accessibility-label uimeta\"><?= htmlspecialchars($footer_accessibility_label) ?><\/span>\n        <\/a>\n\n        <div class=\"footer-v1__dev\">\n          <img class=\"footer-v1__dev-logo\" src=\"<?= htmlspecialchars($footer_dev_logo) ?>\" alt=\"Медицинский маркетинг Аленте\" width=\"221\" height=\"35\" loading=\"lazy\" decoding=\"async\">\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"footer-v1__legal\" aria-label=\"Юридическое предупреждение\">\n      <p class=\"footer-v1__legal-text megatext-md\"><?= htmlspecialchars($footer_disclaimer) ?><\/p>\n    <\/div>\n  <\/div>\n<\/footer>",
            "back-to-top": "<button type=\"button\" class=\"back-to-top\" aria-label=\"Наверх\" data-back-to-top hidden>\n  <span class=\"back-to-top__icon bodytext-lg\" aria-hidden=\"true\">↑<\/span>\n<\/button>"
        }
    },
    "config": [
        {
            "label": "Hero (Вар 4)",
            "name": "hero",
            "variant": "variant-4",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "image",
                    "label": "Фоновое изображение слайда"
                },
                {
                    "name": "image_alt",
                    "label": "Alt текст фона"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Подзаголовок"
                },
                {
                    "name": "link_title",
                    "label": "Текст кнопки"
                },
                {
                    "name": "video",
                    "label": "Видео"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над видео"
                },
                {
                    "name": "description2",
                    "label": "Цитата врача"
                },
                {
                    "name": "member_id",
                    "label": "Врач"
                }
            ],
            "items": [
                {
                    "label": "Преимущество",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок"
                        },
                        {
                            "name": "description",
                            "label": "Текст"
                        },
                        {
                            "name": "icon_id",
                            "label": "Иконка"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Преимущества (Вар 1)",
            "name": "benefits",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "article_id",
                    "label": "Статья"
                },
                {
                    "name": "icon_id",
                    "label": "Декор фона"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Преимущество",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок"
                        },
                        {
                            "name": "description",
                            "label": "Текст"
                        },
                        {
                            "name": "icon_id",
                            "label": "Иконка"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Наш подход (Вар 1)",
            "name": "our-approach",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "view",
                    "label": "Стиль нумерации шагов",
                    "type": "select",
                    "generator_name": "steps_num_style",
                    "items": {
                        "slash": "01 \/",
                        "badge": "Номер на подложке"
                    }
                },
                {
                    "name": "image",
                    "label": "Главное изображение"
                },
                {
                    "name": "image2",
                    "label": "Текстура фона"
                },
                {
                    "name": "image3",
                    "label": "Декор SVG (волна)"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                },
                {
                    "name": "eyebrow2",
                    "label": "Eyebrow CTA-блока"
                },
                {
                    "name": "title2",
                    "label": "Заголовок CTA-блока"
                },
                {
                    "name": "description2",
                    "label": "Подзаголовок CTA-блока"
                },
                {
                    "name": "description3",
                    "label": "Текст CTA-блока (правая колонка)"
                },
                {
                    "name": "link_title",
                    "label": "Текст кнопки CTA"
                }
            ],
            "items": [
                {
                    "label": "Шаг",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок шага"
                        },
                        {
                            "name": "description",
                            "label": "Текст шага"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Услуги (Вар 3)",
            "name": "services",
            "variant": "variant-3",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "link_title",
                    "label": "Текст кнопки «Подробнее»"
                },
                {
                    "name": "title2",
                    "label": "Текст ссылки «Все услуги»"
                },
                {
                    "name": "link",
                    "label": "Ссылка «Все услуги»"
                },
                {
                    "name": "view",
                    "label": "Стиль активного таба",
                    "type": "select",
                    "generator_name": "tab_active_style",
                    "items": {
                        "filled": "filled",
                        "soft": "soft"
                    }
                },
                {
                    "name": "image",
                    "label": "Изображение по умолчанию (если у услуги нет своего)"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ]
        },
        {
            "label": "Кейсы (Вар 1)",
            "name": "cases",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Кейс",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок"
                        },
                        {
                            "name": "description",
                            "label": "Категория"
                        },
                        {
                            "name": "description2",
                            "label": "Текст"
                        },
                        {
                            "name": "image",
                            "label": "Фото «До»"
                        },
                        {
                            "name": "image2",
                            "label": "Фото «После»"
                        }
                    ],
                    "subitems": {
                        "label": "Параметр",
                        "fields": [
                            {
                                "name": "title",
                                "label": "Подпись"
                            },
                            {
                                "name": "param1",
                                "label": "Значение"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "label": "Врачи (Вар 1)",
            "name": "doctors",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "link_title",
                    "label": "Текст ссылки «Все специалисты»"
                },
                {
                    "name": "link",
                    "label": "Ссылка «Все специалисты»"
                },
                {
                    "name": "eyebrow2",
                    "label": "Заголовок блока преимуществ"
                },
                {
                    "name": "image",
                    "label": "Фоновое изображение карточек"
                },
                {
                    "name": "view2",
                    "label": "Фон секции",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "Page",
                        "page-alt": "Page Alt",
                        "surface": "Surface",
                        "bg-gradient-page": "BG Gradient Page",
                        "bg-gradient-bottom-light": "BG Gradient Bottom Light",
                        "bg-gradient-top-light": "BG Gradient Top Light"
                    }
                },
                {
                    "name": "param1",
                    "label": "Стиль плашек",
                    "type": "select",
                    "generator_name": "badge_style",
                    "items": {
                        "fill": "fill",
                        "border": "border"
                    }
                }
            ],
            "items": [
                {
                    "label": "Преимущество",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок"
                        },
                        {
                            "name": "description",
                            "label": "Описание"
                        }
                    ]
                },
                {
                    "label": "Статистика",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Подпись"
                        },
                        {
                            "name": "description",
                            "label": "Значение"
                        }
                    ]
                }
            ]
        },
        {
            "label": "quiz-variant-1",
            "name": "quiz",
            "variant": "variant-1"
        },
        {
            "label": "Отзывы (Вар 1)",
            "name": "reviews",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "link_title",
                    "label": "Текст ссылки «Все отзывы»"
                },
                {
                    "name": "link",
                    "label": "Ссылка «Все отзывы»"
                },
                {
                    "name": "title2",
                    "label": "Заголовок блока площадок"
                },
                {
                    "name": "title3",
                    "label": "Видеоотзыв: имя \/ заголовок CTA"
                },
                {
                    "name": "description2",
                    "label": "Текст CTA"
                },
                {
                    "name": "description3",
                    "label": "Видеоотзыв: услуга"
                },
                {
                    "name": "param2",
                    "label": "Видеоотзыв: возраст"
                },
                {
                    "name": "number1",
                    "label": "Лимит текстовых отзывов"
                },
                {
                    "name": "number2",
                    "label": "Позиция видео в карусели"
                },
                {
                    "name": "number3",
                    "label": "Видеоотзыв: оценка"
                },
                {
                    "name": "image",
                    "label": "Видеоотзыв: постер"
                },
                {
                    "name": "video",
                    "label": "Видеоотзыв: файл"
                },
                {
                    "name": "param1",
                    "label": "Фон карточек",
                    "items": {
                        "mix": "mix",
                        "white": "white"
                    }
                },
                {
                    "name": "view2",
                    "label": "Фон секции",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "Page",
                        "page-alt": "Page Alt",
                        "surface": "Surface",
                        "bg-gradient-page": "BG Gradient Page",
                        "bg-gradient-bottom-light": "BG Gradient Bottom Light",
                        "bg-gradient-top-light": "BG Gradient Top Light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Площадка",
                    "fields": [
                        {
                            "name": "image",
                            "label": "Логотип"
                        },
                        {
                            "name": "title",
                            "label": "Количество отзывов (текст)"
                        },
                        {
                            "name": "param1",
                            "label": "Рейтинг"
                        },
                        {
                            "name": "param2",
                            "label": "Ширина логотипа"
                        },
                        {
                            "name": "param3",
                            "label": "Высота логотипа"
                        },
                        {
                            "name": "link",
                            "label": "Ссылка"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Планы лечения (Вар 1)",
            "name": "treatment-plans",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "title2",
                    "label": "Текст доверия (понятные цены)"
                },
                {
                    "name": "description2",
                    "label": "Дисклеймер"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "План лечения",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Название"
                        },
                        {
                            "name": "description",
                            "label": "Краткое описание"
                        },
                        {
                            "name": "icon",
                            "label": "Иконка"
                        },
                        {
                            "name": "image",
                            "label": "Изображение"
                        },
                        {
                            "name": "price",
                            "label": "Цена"
                        },
                        {
                            "name": "link",
                            "label": "Ссылка"
                        },
                        {
                            "name": "description2",
                            "label": "Особенности (каждый пункт с новой строки)"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Бренды (Вар 2)",
            "name": "brands",
            "variant": "variant-2",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Логотип",
                    "fields": [
                        {
                            "name": "image",
                            "label": "Логотип"
                        },
                        {
                            "name": "title",
                            "label": "Название (alt, если не задан alt)"
                        },
                        {
                            "name": "image_alt",
                            "label": "Alt-текст"
                        }
                    ]
                }
            ]
        },
        {
            "label": "UTP в цифрах (Вар 1)",
            "name": "utp-in-numbers",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Карточка",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок (для info-карточек)"
                        },
                        {
                            "name": "title2",
                            "label": "Значение (для stat-карточек)"
                        },
                        {
                            "name": "description",
                            "label": "Текст"
                        },
                        {
                            "name": "image",
                            "label": "Изображение"
                        },
                        {
                            "name": "image_alt",
                            "label": "Alt текст (для фото)"
                        },
                        {
                            "name": "icon",
                            "label": "Иконка (для stat-карточек)"
                        },
                        {
                            "name": "view",
                            "label": "Тип карточки",
                            "items": {
                                "stat": "Статистика",
                                "info": "Информационная",
                                "photo": "Фото"
                            }
                        },
                        {
                            "name": "view2",
                            "label": "Блок иконки",
                            "items": {
                                "surface": "Surface",
                                "bg-fill-soft": "BG Fill Soft",
                                "none": "Скрыть"
                            }
                        },
                        {
                            "name": "video",
                            "label": "Видео (mp4, для photo-карточек)"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Гарантии (Вар 2)",
            "name": "guarantees",
            "variant": "variant-2",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "view3",
                    "label": "Вид текста баннера",
                    "type": "select",
                    "generator_name": "banner_copy_style",
                    "items": {
                        "stack": "Заголовок и текст",
                        "single": "Один текст"
                    }
                },
                {
                    "name": "title2",
                    "label": "Заголовок баннера (stack) \/ текст (single)"
                },
                {
                    "name": "description2",
                    "label": "Текст баннера (stack)"
                },
                {
                    "name": "image",
                    "label": "Изображение баннера (десктоп)"
                },
                {
                    "name": "image2",
                    "label": "Изображение баннера (мобильное)"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Карточка",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Заголовок"
                        },
                        {
                            "name": "description",
                            "label": "Текст"
                        },
                        {
                            "name": "icon_id",
                            "label": "Иконка"
                        }
                    ]
                }
            ]
        },
        {
            "label": "Галерея (Вар 1)",
            "name": "gallery",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "link_title",
                    "label": "Текст кнопки"
                },
                {
                    "name": "link",
                    "label": "Попап кнопки"
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Фото",
                    "fields": [
                        {
                            "name": "image",
                            "label": "Изображение"
                        },
                        {
                            "name": "image_alt",
                            "label": "Alt текст"
                        }
                    ]
                }
            ]
        },
        {
            "label": "О компании (Вар 1)",
            "name": "about",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "description2",
                    "label": "Текст"
                },
                {
                    "name": "description3",
                    "label": "Завершающий текст"
                },
                {
                    "name": "link_title",
                    "label": "Текст ссылки"
                },
                {
                    "name": "link",
                    "label": "Ссылка"
                },
                {
                    "name": "member_id",
                    "label": "Сотрудник"
                },
                {
                    "name": "image",
                    "label": "Подпись"
                },
                {
                    "name": "view",
                    "label": "Вид",
                    "type": "select",
                    "generator_name": "profile_side",
                    "items": {
                        "right": "Изображение справа",
                        "left": "Изображение слева"
                    }
                },
                {
                    "name": "view2",
                    "label": "Фон",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ]
        },
        {
            "label": "News (Вар 2)",
            "name": "news",
            "variant": "variant-2",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "view2",
                    "label": "Фон секции",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "Page",
                        "page-alt": "Page Alt",
                        "surface": "Surface",
                        "bg-gradient-page": "BG Gradient Page",
                        "bg-gradient-bottom-light": "BG Gradient Bottom Light",
                        "bg-gradient-top-light": "BG Gradient Top Light"
                    }
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "link_title",
                    "label": "Текст ссылки «Все новости»"
                },
                {
                    "name": "link",
                    "label": "Ссылка «Все новости»"
                }
            ]
        },
        {
            "label": "Акции (Вар 2)",
            "name": "promo",
            "variant": "variant-2",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "view2",
                    "label": "Фон секции",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "link",
                    "label": "Ссылка «Все предложения»"
                },
                {
                    "name": "link_title",
                    "label": "Текст «Все предложения»"
                }
            ]
        },
        {
            "label": "CTA (Вар 1)",
            "name": "cta",
            "variant": "variant-1",
            "fields": [
                {
                    "name": "is_h1",
                    "label": "Заголовок H1"
                },
                {
                    "name": "view",
                    "label": "Ширина блока",
                    "type": "select",
                    "generator_name": "layout",
                    "items": {
                        "fullwidth": "На всю ширину",
                        "contained": "В контейнере"
                    }
                },
                {
                    "name": "eyebrow",
                    "label": "Текст над заголовком"
                },
                {
                    "name": "title",
                    "label": "Заголовок"
                },
                {
                    "name": "description",
                    "label": "Вступительный текст"
                },
                {
                    "name": "image",
                    "label": "Фоновое изображение"
                },
                {
                    "name": "image_alt",
                    "label": "Alt фона"
                },
                {
                    "name": "image2",
                    "label": "Фон на мобильном"
                },
                {
                    "name": "link_title",
                    "label": "Текст кнопки"
                },
                {
                    "name": "view2",
                    "label": "Фон секции (режим «В контейнере»)",
                    "type": "select",
                    "generator_name": "section_bg",
                    "items": {
                        "page": "page",
                        "white": "white",
                        "page-alt": "page-alt",
                        "surface": "surface",
                        "bg-gradient-page": "bg-gradient-page",
                        "bg-gradient-bottom-light": "bg-gradient-bottom-light",
                        "bg-gradient-top-light": "bg-gradient-top-light"
                    }
                }
            ],
            "items": [
                {
                    "label": "Преимущество",
                    "fields": [
                        {
                            "name": "title",
                            "label": "Текст"
                        },
                        {
                            "name": "icon_id",
                            "label": "Иконка"
                        }
                    ]
                }
            ]
        }
    ],
    "dependencies": {
        "hero-variant-4": [
            "swiper"
        ],
        "benefits-variant-1": [],
        "our-approach-variant-1": [],
        "services-variant-3": [],
        "cases-variant-1": [
            "swiper"
        ],
        "doctors-variant-1": [
            "swiper"
        ],
        "quiz-variant-1": [],
        "reviews-variant-1": [
            "swiper"
        ],
        "treatment-plans-variant-1": [
            "swiper"
        ],
        "brands-variant-2": [
            "swiper"
        ],
        "utp-in-numbers-variant-1": [],
        "guarantees-variant-2": [],
        "gallery-variant-1": [
            "swiper"
        ],
        "about-variant-1": [],
        "news-variant-2": [
            "swiper"
        ],
        "promo-variant-2": [
            "swiper"
        ],
        "cta-variant-1": [],
        "header": [
            "bvi"
        ],
        "footer": [
            "bvi"
        ],
        "back-to-top": []
    },
    "sprites": "<?php\n\/**\n * SVG sprite sheet — единственный источник переиспользуемых иконок.\n *\n * Подключается один раз в views\/project\/page.php.\n * В блоках: <svg class=\"icon\"><use href=\"#icon-{name}\"><\/use><\/svg>\n *\n * Критерии и полный список — docs\/PROJECT_RULES.md → «Иконки».\n *\/\n?>\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" style=\"display:none\">\n  <symbol id=\"icon-star\" viewBox=\"0 0 25 24\" fill=\"none\">\n    <path d=\"M11.2391 0.691212C11.5385 -0.230099 12.8419 -0.2301 13.1412 0.691211L15.3334 7.43792C15.4673 7.84994 15.8512 8.12891 16.2844 8.12891H23.3783C24.3471 8.12891 24.7498 9.36852 23.9661 9.93792L18.227 14.1076C17.8766 14.3623 17.7299 14.8136 17.8638 15.2257L20.0559 21.9724C20.3553 22.8937 19.3008 23.6598 18.5171 23.0904L12.778 18.9207C12.4275 18.6661 11.9529 18.6661 11.6024 18.9207L5.86331 23.0904C5.07959 23.6598 4.02511 22.8937 4.32446 21.9724L6.5166 15.2257C6.65048 14.8136 6.50382 14.3623 6.15333 14.1076L0.414236 9.93792C-0.369477 9.36852 0.0332973 8.12891 1.00202 8.12891H8.09593C8.52916 8.12891 8.91312 7.84995 9.04699 7.43792L11.2391 0.691212Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n  <symbol id=\"icon-play\" viewBox=\"0 0 9 10\" fill=\"none\">\n    <path d=\"M7.5 2.86902C8.83333 3.63882 8.83333 5.56332 7.5 6.33312L3 8.9312C1.66667 9.701 4.66831e-07 8.73875 5.34129e-07 7.19915L7.6126e-07 2.003C8.28558e-07 0.463396 1.66667 -0.498853 3 0.270947L7.5 2.86902Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n  <symbol id=\"icon-calendar\" viewBox=\"0 0 32 32\" fill=\"none\">\n    <path d=\"M25.3333 29.3332H6.66667C5.19391 29.3332 4 28.1393 4 26.6665V7.99984C4 6.52708 5.19391 5.33317 6.66667 5.33317H9.33333V2.6665H12V5.33317H20V2.6665H22.6667V5.33317H25.3333C26.8061 5.33317 28 6.52708 28 7.99984V26.6665C28 28.1393 26.8061 29.3332 25.3333 29.3332ZM6.66667 13.3332V26.6665H25.3333V13.3332H6.66667ZM6.66667 7.99984V10.6665H25.3333V7.99984H6.66667ZM22.6667 23.9998H20V21.3332H22.6667V23.9998ZM17.3333 23.9998H14.6667V21.3332H17.3333V23.9998ZM12 23.9998H9.33333V21.3332H12V23.9998ZM22.6667 18.6665H20V15.9998H22.6667V18.6665ZM17.3333 18.6665H14.6667V15.9998H17.3333V18.6665ZM12 18.6665H9.33333V15.9998H12V18.6665Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n  <symbol id=\"icon-cost\" viewBox=\"0 0 36 36\" fill=\"none\">\n    <path d=\"M15.1192 5.66016H5.27515C2.9452 5.66016 1.0564 7.54896 1.0564 9.87891C1.0564 12.2089 2.9452 14.0977 5.27515 14.0977H34.947V5.66016H20.8842\" stroke=\"currentColor\" stroke-width=\"1.63636\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M1.0564 9.8789V29.0039C1.0564 31.3339 2.9452 33.2227 5.27515 33.2227H34.947V14.0977\" stroke=\"currentColor\" stroke-width=\"1.63636\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M25.1008 9.87891L17.9993 2.77727L10.8977 9.87891\" stroke=\"currentColor\" stroke-width=\"1.63636\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M30.0227 9.87891H5.97583\" stroke=\"currentColor\" stroke-width=\"1.63636\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M34.9446 26.8242H26.5071V20.4961H34.9446\" stroke=\"currentColor\" stroke-width=\"1.63636\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n  <symbol id=\"icon-clock\" viewBox=\"0 0 38 38\" fill=\"none\">\n    <g stroke=\"currentColor\" stroke-width=\"1.79169\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <path d=\"M18.833 14.6523V18.8959L22.0948 22.1577\"\/>\n      <path d=\"M18.834 30.826C25.3876 30.826 30.7003 25.4847 30.7003 18.8959C30.7003 12.3071 25.3876 6.96582 18.834 6.96582C12.2805 6.96582 6.96777 12.3071 6.96777 18.8959C6.96777 25.4847 12.2805 30.826 18.834 30.826Z\"\/>\n      <path d=\"M18.8328 7.13672V8.39763\"\/>\n      <path d=\"M18.8328 29.395V30.6559\"\/>\n      <path d=\"M30.5937 18.896H29.3328\"\/>\n      <path d=\"M8.33391 18.896H7.073\"\/>\n      <path d=\"M27.1465 10.5806L26.2549 11.4722\"\/>\n      <path d=\"M11.4075 26.3193L10.5159 27.2109\"\/>\n      <path d=\"M27.1465 27.2109L26.2549 26.3193\"\/>\n      <path d=\"M11.4075 11.4722L10.5159 10.5806\"\/>\n      <path d=\"M33.748 28.8983C35.6568 26.0376 36.7701 22.5973 36.7701 18.896C36.7701 8.95489 28.7393 0.895996 18.8329 0.895996C8.9265 0.895996 0.895752 8.95489 0.895752 18.896C0.895752 28.8371 8.9265 36.896 18.8329 36.896C22.2952 36.896 25.5284 35.9116 28.2698 34.2064\"\/>\n    <\/g>\n  <\/symbol>\n  <symbol id=\"icon-clock-circle\" viewBox=\"0 0 50 50\" fill=\"none\">\n    <path d=\"M42.6777 7.32236C37.9559 2.60049 31.6777 0 25 0C18.3223 0 12.0441 2.60049 7.32227 7.32236C2.60039 12.0442 0 18.3223 0 25C0 31.6777 2.60039 37.9559 7.32227 42.6776C12.0441 47.3994 18.3223 50 25 50C31.6777 50 37.9559 47.3995 42.6777 42.6776C47.3996 37.9558 50 31.6777 50 25C50 18.3223 47.3996 12.0441 42.6777 7.32236ZM25 45.093C13.9206 45.093 4.90703 36.0793 4.90703 25C4.90703 24.9818 4.90762 24.9639 4.90771 24.9459C4.90771 24.9413 4.90703 24.9369 4.90703 24.9323C4.90703 24.9246 4.90801 24.9172 4.9082 24.9096C4.95693 13.963 13.8033 5.05703 24.727 4.91055C24.7498 4.90947 24.7725 4.90713 24.7956 4.90713C24.8095 4.90713 24.823 4.90879 24.8367 4.90918C24.8912 4.90879 24.9455 4.90713 25.0001 4.90713C36.0795 4.90713 45.0931 13.9208 45.0931 25.0001C45.0931 36.0794 36.0794 45.093 25 45.093Z\" fill=\"currentColor\"\/>\n    <path d=\"M40.2622 26.2071C39.4452 26.2071 38.7829 25.5448 38.7829 24.7278C38.7829 23.9108 39.4452 23.2485 40.2622 23.2485H42.0453C41.2078 15.038 34.549 8.52461 26.2746 7.91309V9.46533C26.2746 10.2823 25.6123 10.9446 24.7953 10.9446C23.9783 10.9446 23.316 10.2823 23.316 9.46533V7.94844C15.1641 8.74727 8.67061 15.2826 7.93594 23.4529H9.53281C10.3498 23.4529 11.0121 24.1152 11.0121 24.9322C11.0121 25.7492 10.3498 26.4115 9.53281 26.4115H7.92383C8.604 34.7134 15.2276 41.3573 23.5205 42.0699V40.1946C23.5205 39.3776 24.1828 38.7153 24.9998 38.7153C25.8168 38.7153 26.4791 39.3776 26.4791 40.1946V42.0699C34.8398 41.3515 41.5038 34.604 42.0911 26.2071H40.2622ZM30.9881 21.1038L26.0459 26.0461C25.7685 26.3235 25.3923 26.4794 24.9999 26.4794C24.6076 26.4794 24.2312 26.3235 23.9539 26.0461L15.3511 17.4433C14.7733 16.8656 14.7733 15.929 15.3511 15.3513C15.9287 14.7735 16.8653 14.7735 17.4431 15.3513L25 22.9081L28.8963 19.0118C29.4739 18.4341 30.4105 18.4341 30.9883 19.0118C31.5658 19.5895 31.5658 20.5262 30.9881 21.1038Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n  <symbol id=\"icon-cross\" viewBox=\"0 0 18.5 19\" fill=\"none\">\n    <path d=\"M18 10H12\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n    <path d=\"M6.5 10H0.5\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n    <path d=\"M9.49609 0.5V7.5\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n    <path d=\"M9.49609 11.5V18.5\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n  <symbol id=\"icon-close\" viewBox=\"0 0 16 16\" fill=\"none\">\n    <path d=\"M4 4l8 8M12 4 4 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n  <symbol id=\"icon-mega-close\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M6 18L18 6\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n    <path d=\"M6 6L18 18\" stroke=\"currentColor\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-arrow-diagonal\" viewBox=\"0 0 21 22\" fill=\"none\">\n    <path d=\"M3 19L19 3\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n    <path d=\"M8 3H19V14\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-linking-services-arrow\" viewBox=\"0 0 32 31\" fill=\"none\">\n    <path d=\"M30.4056 14.8491L16.9705 1.41406\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n    <path d=\"M30.4056 14.8477L17.6777 27.5756\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n    <path d=\"M4.94263 14.8547H28.9985\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-arrow-right\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M20.3536 12.3536C20.5488 12.1583 20.5488 11.8417 20.3536 11.6464L17.1716 8.46447C16.9763 8.2692 16.6597 8.2692 16.4645 8.46447C16.2692 8.65973 16.2692 8.97631 16.4645 9.17157L19.2929 12L16.4645 14.8284C16.2692 15.0237 16.2692 15.3403 16.4645 15.5355C16.6597 15.7308 16.9763 15.7308 17.1716 15.5355L20.3536 12.3536ZM20 12V11.5L4 11.5V12V12.5L20 12.5V12Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-slider-arrow\" viewBox=\"0 0 17 11\" fill=\"none\">\n    <path d=\"M0.21395 4.82528C-0.069158 5.10839 -0.069158 5.5674 0.21395 5.8505L4.82746 10.464C5.11057 10.7471 5.56958 10.7471 5.85269 10.464C6.1358 10.1809 6.1358 9.7219 5.85269 9.43879L1.75179 5.33789L5.85269 1.23699C6.1358 0.953883 6.1358 0.494874 5.85269 0.211766C5.56958 -0.071342 5.11057 -0.071342 4.82746 0.211766L0.21395 4.82528ZM0.726562 5.33789L0.726562 6.06283L16.8392 6.06283L16.8392 5.33789L16.8392 4.61295L0.726563 4.61295L0.726562 5.33789Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-download\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 14.6893L8.53033 11.2197C8.23744 10.9268 7.76256 10.9268 7.46967 11.2197C7.17678 11.5126 7.17678 11.9874 7.46967 12.2803L11.399 16.2096C11.7309 16.5416 12.2691 16.5416 12.601 16.2096L16.5303 12.2803C16.8232 11.9874 16.8232 11.5126 16.5303 11.2197C16.2374 10.9268 15.7626 10.9268 15.4697 11.2197L12 14.6893Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 15.5C11.5858 15.5 11.25 15.1642 11.25 14.75V2.75C11.25 2.33579 11.5858 2 12 2C12.4142 2 12.75 2.33579 12.75 2.75V14.75C12.75 15.1642 12.4142 15.5 12 15.5Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.5 15C2.91421 15 3.25 15.3358 3.25 15.75V20H20.75V16.25C20.75 15.8358 21.0858 15.5 21.5 15.5C21.9142 15.5 22.25 15.8358 22.25 16.25V20.65C22.25 21.1194 21.8694 21.5 21.4 21.5H2.6C2.13056 21.5 1.75 21.1194 1.75 20.65V15.75C1.75 15.3358 2.08579 15 2.5 15Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-patients-document\" viewBox=\"0 0 23.0625 25.4279\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.2524 1.77404C2.43593 1.77404 1.77404 2.43593 1.77404 3.2524V22.1755C1.77404 22.992 2.43593 23.6538 3.2524 23.6538H19.8101C20.6266 23.6538 21.2885 22.992 21.2885 22.1755V8.35059L14.7119 1.77404H3.2524ZM0 3.2524C0 1.45615 1.45615 0 3.2524 0H14.8344C15.2265 0 15.6025 0.155756 15.8797 0.433003L22.6295 7.18275C22.9067 7.46 23.0625 7.83603 23.0625 8.22812V22.1755C23.0625 23.9717 21.6063 25.4279 19.8101 25.4279H3.2524C1.45615 25.4279 0 23.9717 0 22.1755V3.2524Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.1914 1.17527C14.1914 0.279655 15.2742 -0.16887 15.9075 0.464426L22.5999 7.15678C23.2332 7.79008 22.7847 8.87292 21.8891 8.87292H15.1967C14.6415 8.87292 14.1914 8.42283 14.1914 7.86763V1.17527ZM15.9654 3.0312V7.09888H20.0331L15.9654 3.0312Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.91406 12.7151C5.91406 12.2253 6.31119 11.8281 6.80108 11.8281H16.2626C16.7525 11.8281 17.1496 12.2253 17.1496 12.7151C17.1496 13.205 16.7525 13.6022 16.2626 13.6022H6.80108C6.31119 13.6022 5.91406 13.205 5.91406 12.7151Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.91406 17.4456C5.91406 16.9557 6.31119 16.5586 6.80108 16.5586H16.2626C16.7525 16.5586 17.1496 16.9557 17.1496 17.4456C17.1496 17.9355 16.7525 18.3326 16.2626 18.3326H6.80108C6.31119 18.3326 5.91406 17.9355 5.91406 17.4456Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-info\" viewBox=\"0 0 20 20\" fill=\"none\">\n    <path d=\"M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C19.9939 15.5203 15.5203 19.9939 10 20ZM2 10.172C2.04732 14.5732 5.64111 18.1095 10.0425 18.086C14.444 18.0622 17.9995 14.4875 17.9995 10.086C17.9995 5.68451 14.444 2.10977 10.0425 2.086C5.64111 2.06246 2.04732 5.59876 2 10V10.172ZM12 15H9V11H8V9H11V13H12V15ZM11 7H9V5H11V7Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-check-circle\" viewBox=\"0 0 20 20\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 1.875C5.51992 1.875 1.875 5.51992 1.875 10C1.875 14.4801 5.51992 18.125 10 18.125C14.4801 18.125 18.125 14.4801 18.125 10C18.125 5.51992 14.4801 1.875 10 1.875ZM8.51562 14.0773L5.36719 10.5785L6.29648 9.74219L8.48398 12.1727L13.6719 5.99453L14.6305 6.79688L8.51562 14.0773Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-quote\" viewBox=\"0 0 44 44\" fill=\"none\">\n    <path d=\"M35 10.2176L34.4118 14.5251C32.8824 14.407 31.7647 14.7217 31.0588 15.4691C30.3529 16.2165 29.9216 17.2196 29.7647 18.4784C29.6078 19.7372 29.5686 21.0943 29.6471 22.5498H35V35H24.9412V20.1896C24.9412 16.5706 25.8431 13.8563 27.6471 12.0468C29.4902 10.2373 31.9412 9.62759 35 10.2176ZM20.0588 10.2176L19.4706 14.5251C17.9412 14.407 16.8235 14.7217 16.1176 15.4691C15.4118 16.2165 14.9804 17.2196 14.8235 18.4784C14.6667 19.7372 14.6275 21.0943 14.7059 22.5498H20.0588V35H10V20.1896C10 16.5706 10.902 13.8563 12.7059 12.0468C14.549 10.2373 17 9.62759 20.0588 10.2176Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-shield\" viewBox=\"0 0 26 28\" fill=\"none\">\n    <path d=\"M11.3237 13.6915C10.868 13.2321 10.1294 13.2321 9.67374 13.6915C9.21813 14.1508 9.21813 14.8956 9.67374 15.3549L11.4237 17.1194C11.6425 17.3399 11.9393 17.4639 12.2487 17.4639C12.5581 17.4639 12.8549 17.3399 13.0736 17.1194L17.7403 12.4142C18.1959 11.9549 18.1959 11.2101 17.7403 10.7508C17.2847 10.2914 16.546 10.2914 16.0904 10.7508L12.2487 14.6241L11.3237 13.6915Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.1332 0.252393C13.2987 -0.0841312 12.3679 -0.0841308 11.5335 0.252393L2.33333 3.96275C1.78332 4.18457 1.23471 4.56574 0.811194 5.04128C0.396317 5.50713 0 6.18239 0 6.99177V13.9341C0 19.0535 2.51203 22.4373 5.26002 24.572C7.97517 26.6811 10.9521 27.6047 12.0903 27.9034C12.5811 28.0322 13.0856 28.0322 13.5764 27.9034C14.7146 27.6047 17.6914 26.6811 20.4066 24.572C23.1546 22.4373 25.6667 19.0535 25.6667 13.9341V6.99177C25.6667 6.18239 25.2703 5.50713 24.8555 5.04128C24.432 4.56574 23.8833 4.18457 23.3333 3.96275L14.1332 0.252393ZM12.4 2.43668C12.6782 2.3245 12.9885 2.3245 13.2666 2.43668L22.4667 6.14703C22.683 6.23428 22.9345 6.40546 23.1194 6.61304C23.3128 6.83033 23.3333 6.96899 23.3333 6.99177V13.9341C23.3333 18.1515 21.3078 20.9022 18.9826 22.7083C16.6245 24.54 13.9928 25.3633 12.9887 25.6266C12.8833 25.6544 12.7834 25.6544 12.6779 25.6266C11.6739 25.3633 9.0421 24.54 6.68408 22.7083C4.3589 20.9022 2.33333 18.1515 2.33333 13.9341V6.99177C2.33333 6.96899 2.35382 6.83033 2.54733 6.61304C2.73222 6.40546 2.98357 6.23428 3.19991 6.14703L12.4 2.43668Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-field-chevron\" viewBox=\"0 0 7 14\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.146447 0.157712C0.341709 -0.0525706 0.658291 -0.0525706 0.853553 0.157712L6.85355 6.61925C7.04882 6.82953 7.04882 7.17047 6.85355 7.38075L0.853553 13.8423C0.658291 14.0526 0.341709 14.0526 0.146447 13.8423C-0.0488155 13.632 -0.0488155 13.2911 0.146447 13.0808L5.79289 7L0.146447 0.919211C-0.0488155 0.708929 -0.0488155 0.367994 0.146447 0.157712Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-chevron-down\" viewBox=\"0 0 16 16\" fill=\"none\">\n    <path d=\"M3.5 6.25L8 10.75L12.5 6.25\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-plus\" viewBox=\"0 0 16 16\" fill=\"none\">\n    <path d=\"M8 3.5v9M3.5 8h9\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-filter\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M1 6.485h22\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <path d=\"M3.515 10.485h16.97\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n    <circle cx=\"12\" cy=\"18\" r=\"3\" stroke=\"currentColor\" stroke-width=\"2\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-faq-arrow\" viewBox=\"0 0 31 32\" fill=\"none\">\n    <path d=\"M15.5572 30.4057L28.9922 16.9707\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n    <path d=\"M15.5547 30.4062L2.82677 17.6783\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n    <path d=\"M15.5516 4.94219V28.998\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-faq-question\" viewBox=\"0 0 41 44\" fill=\"none\">\n    <path d=\"M6.75312 9.76184C0.9875 11.4092 -0.659821 17.1748 1.81116 23.7641C3.45848 27.8824 5.1058 30.3534 5.92946 36.119C6.75312 40.2373 8.40044 42.7083 10.8714 42.7083C14.1661 42.7083 12.5187 33.648 14.1661 33.648C15.8134 33.648 14.9897 42.7083 18.2844 42.7083C20.7554 42.7083 22.4027 40.2373 23.2263 36.119C24.05 30.3534 25.6973 27.8824 27.3446 23.7641C29.8156 17.1748 28.1683 11.4092 22.4027 9.76184C19.108 8.93818 17.4607 11.4092 14.9897 11.4092C12.5187 11.4092 10.0478 8.93818 6.75312 9.76184Z\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M33.1088 13.8778C36.748 13.8778 39.6981 10.9277 39.6981 7.2885C39.6981 3.64934 36.748 0.699219 33.1088 0.699219C29.4697 0.699219 26.5195 3.64934 26.5195 7.2885C26.5195 10.9277 29.4697 13.8778 33.1088 13.8778Z\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M33.1094 3.16992V8.11188M33.1094 10.5829V11.4065\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-faq-aside\" viewBox=\"0 0 34 34\" fill=\"none\">\n    <path d=\"M9.29688 9.29696C9.29688 7.82998 10.4861 6.64071 11.9531 6.64071C13.4202 6.64071 14.6094 7.82998 14.6094 9.29696C14.6094 10.3181 14.0332 11.2046 13.1883 11.6492C12.3842 12.0723 11.9531 12.9762 11.9531 13.8848\" stroke=\"currentColor\" stroke-width=\"2.65625\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M11.9531 15.9375V18.5938\" stroke=\"currentColor\" stroke-width=\"2.65625\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M11.9531 22.5781L6.64062 25.2344V22.5781H3.98437C2.51733 22.5781 1.32812 21.3889 1.32812 19.9219V3.98438C1.32812 2.5174 2.51733 1.32813 3.98437 1.32813H19.9219C21.3889 1.32813 22.5781 2.5174 22.5781 3.98438V19.9219C22.5781 21.3889 21.3889 22.5781 19.9219 22.5781H11.9531Z\" stroke=\"currentColor\" stroke-width=\"2.65625\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M27.3594 8.76563H30.0156C31.4827 8.76563 32.6719 9.9549 32.6719 11.4219V26.6953C32.6719 28.1623 31.4827 29.3516 30.0156 29.3516H22.0469L16.7344 31.875V29.3516H14.0781C12.6111 29.3516 11.4219 28.1623 11.4219 26.6953\" stroke=\"currentColor\" stroke-width=\"2.65625\" stroke-miterlimit=\"10\" stroke-linecap=\"square\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-location\" viewBox=\"0 0 14 18\" fill=\"none\">\n    <path d=\"M7 18.0037C5.73693 16.9263 4.56619 15.7452 3.5 14.4727C1.9 12.5617 8.83662e-07 9.71571 8.83662e-07 7.00371C-0.00141728 4.17126 1.70425 1.6171 4.32107 0.53311C6.93789 -0.550883 9.95007 0.0489528 11.952 2.05271C13.2685 3.36332 14.0059 5.1461 14 7.00371C14 9.71571 12.1 12.5617 10.5 14.4727C9.43382 15.7452 8.26307 16.9263 7 18.0037ZM7 4.00371C5.92821 4.00371 4.93782 4.57551 4.40193 5.50371C3.86603 6.43192 3.86603 7.57551 4.40193 8.50371C4.93782 9.43192 5.92821 10.0037 7 10.0037C8.65686 10.0037 10 8.66057 10 7.00371C10 5.34686 8.65686 4.00371 7 4.00371Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-eye\" viewBox=\"0 0 30 30\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.75 15.0006C18.75 17.0716 17.0704 18.75 14.9994 18.75C12.9284 18.75 11.25 17.0716 11.25 15.0006C11.25 12.9284 12.9284 11.25 14.9994 11.25C17.0704 11.25 18.75 12.9284 18.75 15.0006Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.9972 23.4311C20.1432 23.4311 24.8499 20.2099 27.4999 14.8405C24.8499 9.47116 20.1432 6.25 14.9972 6.25H15.0026C9.85672 6.25 5.14999 9.47116 2.5 14.8405C5.14999 20.2099 9.85672 23.4311 15.0026 23.4311H14.9972Z\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-phone\" viewBox=\"0 0 16 16\" fill=\"none\">\n    <path d=\"M15 16C6.466 16.012 0 9.459 0 1.003 0 .45.448 0 1 0h2.639c.495 0 .916.364.989.854.174 1.029.516 2.173 1.016 3.251l.103.222c.143.309.046.675-.23.873-.817.584-1.129 1.759-.493 2.676.799 1.171 1.806 2.178 2.956 2.977.917.636 2.092.324 2.676-.493.198-.277.564-.374.872-.23l.221.102c1.078.499 2.222.841 3.397 1.016.49.072.854.493.854.989V15c0 .552-.448 1-1.001 1H15Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-user\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0006 2.75C10.0478 2.75 8.46484 4.33299 8.46484 6.28571C8.46484 8.23844 10.0478 9.82143 12.0006 9.82143C13.9533 9.82143 15.5363 8.23844 15.5363 6.28571C15.5363 4.33299 13.9533 2.75 12.0006 2.75ZM6.96484 6.28571C6.96484 3.50457 9.21941 1.25 12.0006 1.25C14.7817 1.25 17.0363 3.50457 17.0363 6.28571C17.0363 9.06686 14.7817 11.3214 12.0006 11.3214C9.21941 11.3214 6.96484 9.06686 6.96484 6.28571Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.30958 16.1661C5.86682 14.5023 8.39944 13.25 12.2857 13.25C16.172 13.25 18.7046 14.5023 20.2618 16.1661C21.7995 17.8088 22.3214 19.7847 22.3214 21.1429C22.3214 21.5571 21.9856 21.8929 21.5714 21.8929H3C2.58579 21.8929 2.25 21.5571 2.25 21.1429C2.25 19.7847 2.77196 17.8088 4.30958 16.1661ZM3.81378 20.3929H20.7576C20.6016 19.4301 20.14 18.2309 19.1667 17.1911C17.9382 15.8786 15.828 14.75 12.2857 14.75C8.74342 14.75 6.63318 15.8786 5.40471 17.1911C4.43143 18.2309 3.96986 19.4301 3.81378 20.3929Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-check\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M9.5 16.2 5.8 12.5l1.4-1.4 2.3 2.3 6.5-6.5 1.4 1.4z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-call\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M13.6875 0.9375C18.8565 0.9375 23.0625 5.14345 23.0625 10.3125\" stroke=\"currentColor\" stroke-width=\"1.875\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M13.6875 4.6875C16.7893 4.6875 19.3125 7.21069 19.3125 10.3125\" stroke=\"currentColor\" stroke-width=\"1.875\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M13.6875 8.4375C14.723 8.4375 15.5625 9.27698 15.5625 10.3125\" stroke=\"currentColor\" stroke-width=\"1.875\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M8.61776 8.75411L6.8592 10.5127C7.73815 11.6618 8.77254 12.8864 9.94357 14.0574C11.114 15.2278 12.3379 16.2617 13.4886 17.1415L15.2469 15.3833C15.9791 14.651 17.1663 14.651 17.8985 15.3833L21.876 19.3608L19.8873 21.3495L19.2695 21.9673C18.0244 23.2123 16.0906 23.4168 14.6009 22.478C12.6377 21.2408 9.86304 19.2802 7.29195 16.7091C4.72085 14.1381 2.76031 11.3634 1.52299 9.40009C0.58418 7.91045 0.788649 5.97658 2.03374 4.73153L2.65156 4.11372L4.64027 2.125L8.61776 6.10248C9.34999 6.83467 9.34999 8.02187 8.61776 8.75411Z\" stroke=\"currentColor\" stroke-width=\"1.875\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-route\" viewBox=\"0 0 24 24\" fill=\"none\">\n    <path d=\"M18.2722 13.875H20.067C20.8509 13.875 21.4864 14.5105 21.4864 15.2944C21.4864 16.0782 20.8509 16.7137 20.067 16.7137H14.5892C13.7853 16.7137 13.1336 17.3654 13.1336 18.1693C13.1336 18.9732 13.7853 19.6249 14.5892 19.6249H17.2559C17.9891 19.6249 18.5836 20.2193 18.5836 20.9526C18.5836 21.6859 17.9891 22.2803 17.2559 22.2803H5.82031\" stroke=\"currentColor\" stroke-width=\"1.39787\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M5.82098 22.1743C5.82098 22.1743 0.699219 19.1299 0.699219 15.2272C0.699219 12.4031 2.99681 10.1055 5.82098 10.1055C8.64515 10.1055 10.9427 12.4031 10.9427 15.2272C10.9427 19.1299 5.82098 22.1743 5.82098 22.1743Z\" stroke=\"currentColor\" stroke-width=\"1.39787\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M5.81999 17.1517C6.91575 17.1517 7.80403 16.2634 7.80403 15.1676C7.80403 14.0719 6.91575 13.1836 5.81999 13.1836C4.72423 13.1836 3.83594 14.0719 3.83594 15.1676C3.83594 16.2634 4.72423 17.1517 5.81999 17.1517Z\" stroke=\"currentColor\" stroke-width=\"1.39787\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M18.1804 13.765C18.1804 13.765 13.0586 10.7314 13.0586 6.82879C13.0586 4.00462 15.3562 1.70703 18.1804 1.70703C21.0045 1.70703 23.3021 4.00462 23.3021 6.82879C23.3021 10.7314 18.1804 13.765 18.1804 13.765Z\" stroke=\"currentColor\" stroke-width=\"1.39787\" stroke-miterlimit=\"10\"\/>\n    <path d=\"M18.1794 8.75325C19.2751 8.75325 20.1634 7.86496 20.1634 6.7692C20.1634 5.67344 19.2751 4.78516 18.1794 4.78516C17.0836 4.78516 16.1953 5.67344 16.1953 6.7692C16.1953 7.86496 17.0836 8.75325 18.1794 8.75325Z\" stroke=\"currentColor\" stroke-width=\"1.39787\" stroke-miterlimit=\"10\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-address\" viewBox=\"0 0 23 23\" fill=\"none\">\n    <path d=\"M18.041 9.65731C18.1948 9.07969 18.2812 8.49491 18.2812 7.91013C18.2812 4.0269 15.1332 0.878882 11.25 0.878882C7.36677 0.878882 4.21875 4.0269 4.21875 7.91013C4.21875 11.82 8.08392 15.7298 10.0828 17.4904C10.7536 18.0813 11.7464 18.0813 12.4172 17.4904C14.1171 15.9932 17.1668 12.9415 18.041 9.65731Z\" stroke=\"currentColor\" stroke-width=\"1.75781\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M13.0078 7.91016C13.0078 8.88095 12.2208 9.66797 11.25 9.66797C10.2792 9.66797 9.49219 8.88095 9.49219 7.91016C9.49219 6.93936 10.2792 6.15234 11.25 6.15234C12.2208 6.15234 13.0078 6.93936 13.0078 7.91016Z\" stroke=\"currentColor\" stroke-width=\"1.75781\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M4.16461 16.0402L2.64564 19.0782C2.52747 19.3145 2.46094 19.5811 2.46094 19.8633C2.46094 20.8341 3.24795 21.6211 4.21875 21.6211H18.2812C19.2521 21.6211 20.0391 20.8341 20.0391 19.8633C20.0391 19.5811 19.9726 19.3145 19.8544 19.0782L18.3324 16.0341\" stroke=\"currentColor\" stroke-width=\"1.75781\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-hours\" viewBox=\"0 0 23 23\" fill=\"none\">\n    <path d=\"M12.7267 17.0078H0.660156V3.29688H18.7656V13.0264\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M17.3154 21.8418C19.8153 21.8418 21.8418 19.8153 21.8418 17.3154C21.8418 14.8156 19.8153 12.7891 17.3154 12.7891C14.8156 12.7891 12.7891 14.8156 12.7891 17.3154C12.7891 19.8153 14.8156 21.8418 17.3154 21.8418Z\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M17.3135 15.4258V17.3154H15.8633\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M12.7891 3.29688H6.63672V1.97324C6.63672 1.24806 7.22462 0.660156 7.9498 0.660156H11.4759C12.2012 0.660156 12.7891 1.24806 12.7891 1.97324V3.29688Z\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M15.1361 8.2627H4.28973C2.28517 8.2627 0.660156 6.63769 0.660156 4.63312V3.29688H18.7656V4.63312C18.7656 6.63769 17.1406 8.2627 15.1361 8.2627Z\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n    <path d=\"M10.6643 10.8984H8.76342C8.14761 10.8984 7.64844 10.3993 7.64844 9.78346V8.26172H11.7793V9.78346C11.7793 10.3993 11.2801 10.8984 10.6643 10.8984Z\" stroke=\"currentColor\" stroke-width=\"1.31836\" stroke-miterlimit=\"10\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-whatsapp\" viewBox=\"0 0 27 27\" fill=\"none\">\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22.95 3.88125C20.4188 1.35 17.0438 0 13.5 0C6.075 0 0 6.075 0 13.5C0 15.8625 0.67501 18.225 1.85626 20.25L0 27L7.08752 25.1437C9.11252 26.1562 11.3062 26.8312 13.5 26.8312C20.925 26.8312 27 20.7563 27 13.3312C27 9.7875 25.4813 6.4125 22.95 3.88125ZM13.5 24.6375C11.475 24.6375 9.45001 24.1313 7.76251 23.1188L7.42499 22.95L3.20624 24.1312L4.38751 20.0812L4.04999 19.575C2.86874 17.7188 2.36249 15.6938 2.36249 13.6688C2.36249 7.59375 7.425 2.53125 13.5 2.53125C16.5375 2.53125 19.2375 3.7125 21.4313 5.7375C23.625 7.93125 24.6375 10.6313 24.6375 13.6688C24.6375 19.575 19.7437 24.6375 13.5 24.6375ZM19.575 16.2C19.2375 16.0312 17.55 15.1875 17.2125 15.1875C16.875 15.0188 16.7062 15.0188 16.5375 15.3563C16.3687 15.6938 15.6938 16.3687 15.525 16.7062C15.3563 16.875 15.1875 16.875 14.85 16.875C14.5125 16.7062 13.5 16.3687 12.15 15.1875C11.1375 14.3438 10.4625 13.1625 10.2938 12.825C10.125 12.4875 10.2938 12.3187 10.4625 12.15C10.6313 11.9812 10.8 11.8125 10.9688 11.6437C11.1375 11.475 11.1375 11.3063 11.3063 11.1375C11.475 10.9688 11.3063 10.8 11.3063 10.6313C11.3063 10.4625 10.6313 8.775 10.2938 8.1C10.125 7.59375 9.78752 7.59375 9.61877 7.59375C9.45002 7.59375 9.28123 7.59375 8.94373 7.59375C8.77498 7.59375 8.43748 7.59375 8.09998 7.93125C7.76248 8.26875 6.91876 9.1125 6.91876 10.8C6.91876 12.4875 8.09999 14.0063 8.26874 14.3438C8.43749 14.5125 10.6312 18.0562 14.0062 19.4062C16.875 20.5875 17.3813 20.25 18.0563 20.25C18.7313 20.25 20.0812 19.4062 20.25 18.7313C20.5875 17.8875 20.5875 17.2125 20.4188 17.2125C20.25 16.3688 19.9125 16.3688 19.575 16.2Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-telegram\" viewBox=\"0 0 27 23\" fill=\"none\">\n    <path d=\"M1.85611 9.63275C9.10385 6.47502 13.9368 4.39326 16.355 3.38745C23.2594 0.515667 24.6941 0.0168079 25.6292 0.000159698C25.8349 -0.00328763 26.2947 0.0476824 26.5926 0.289388C26.8441 0.493479 26.9133 0.769178 26.9464 0.962678C26.9795 1.15618 27.0208 1.59698 26.988 1.94141C26.6138 5.87266 24.9949 15.4128 24.1713 19.8158C23.8228 21.6789 23.1365 22.3036 22.4722 22.3648C21.0284 22.4976 19.9321 21.4106 18.5337 20.494C16.3455 19.0596 15.1094 18.1667 12.9854 16.767C10.5307 15.1494 12.122 14.2604 13.5209 12.8074C13.887 12.4272 20.2483 6.64109 20.3714 6.1162C20.3868 6.05055 20.4011 5.80585 20.2557 5.67664C20.1103 5.54743 19.8958 5.59162 19.7409 5.62676C19.5215 5.67657 16.0259 7.98705 9.25407 12.5582C8.26184 13.2395 7.36312 13.5715 6.55789 13.5541C5.6702 13.5349 3.96262 13.0522 2.69322 12.6396C1.13624 12.1334 -0.101213 11.8659 0.006541 11.0063C0.0626662 10.5586 0.679189 10.1008 1.85611 9.63275Z\" fill=\"currentColor\"\/>\n  <\/symbol>\n\n  <symbol id=\"icon-contacts-map-pin\" viewBox=\"0 0 31 45\" fill=\"none\">\n    <path d=\"M28.8322 16.0328C28.8322 28.5136 18.681 39.9173 15.8989 42.8082C15.5104 43.2119 14.892 43.2119 14.5035 42.8082C11.7215 39.9173 1.57031 28.5136 1.57031 16.0328C1.57031 7.35532 8.38578 1.57031 15.2012 1.57031C22.0167 1.57031 28.8322 7.35532 28.8322 16.0328Z\" fill=\"currentColor\"\/>\n    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.2037 3.1456C9.24237 3.1456 3.1456 8.2409 3.1456 16.0353C3.1456 21.8691 5.52748 27.5504 8.34206 32.2054C10.8763 36.3968 13.6923 39.6429 15.2037 41.2605C16.7151 39.6429 19.5311 36.3968 22.0654 32.2054C24.88 27.5504 27.2619 21.8691 27.2619 16.0353C27.2619 8.2409 21.1651 3.1456 15.2037 3.1456ZM0 16.0353C0 6.47472 7.53416 0 15.2037 0C22.8733 0 30.4075 6.47472 30.4075 16.0353C30.4075 22.6823 27.7137 28.9432 24.7572 33.833C21.7896 38.7411 18.4712 42.4085 17.0347 43.9013C16.0275 44.9479 14.38 44.9479 13.3728 43.9013C11.9363 42.4085 8.61789 38.7411 5.65025 33.833C2.69372 28.9432 0 22.6823 0 16.0353Z\" fill=\"currentColor\"\/>\n    <path d=\"M19.3966 18.3038C19.3966 20.6203 17.5187 22.4982 15.2022 22.4982C12.8857 22.4982 11.0078 20.6203 11.0078 18.3038C11.0078 15.9873 12.8857 14.1094 15.2022 14.1094C17.5187 14.1094 19.3966 15.9873 19.3966 18.3038Z\" fill=\"var(--text-on-brand)\"\/>\n  <\/symbol>\n<\/svg>\n",
    "popups": {
        "form-appointment": {
            "code": "<div class=\"popup\" data-popup=\"<?= htmlspecialchars($form_instance_id) ?>\" data-popup-type=\"<?= htmlspecialchars($form_instance_type) ?>\" hidden>\n    <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n    <div class=\"popup__dialog popup__dialog--appointment\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\">\n        <button type=\"button\" class=\"popup__close\" data-popup-close aria-label=\"Закрыть\">\n            <svg class=\"popup__close-icon\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" aria-hidden=\"true\">\n                <path d=\"M23.0817 0L12.8333 10.2483L2.585 0L0 2.585L10.2483 12.8333L0 23.0817L2.585 25.6667L12.8333 15.4183L23.0817 25.6667L25.6667 23.0817L15.4183 12.8333L25.6667 2.585L23.0817 0Z\" fill=\"currentColor\"\/>\n            <\/svg>\n        <\/button>\n        <div class=\"popup__appointment\">\n            <div class=\"popup__appointment-visual\" aria-hidden=\"true\">\n                <img\n                        src=\"<?= htmlspecialchars($popup_form_image) ?>\"\n                        alt=\"\"\n                        width=\"580\"\n                        height=\"551\"\n                        loading=\"lazy\"\n                        decoding=\"async\"\n                >\n            <\/div>\n            <div class=\"popup__appointment-main stack stack--lg\">\n                <div class=\"popup__head titles\">\n                    <span class=\"popup__title megatext-sm\" id=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\"><?= $popup_form_title ?><\/span>\n                    <p class=\"popup__lead bodytext-lg-regular\"><?= $popup_form_lead ?><\/p>\n                <\/div>\n                <form\n                        class=\"popup-form popup-form--appointment popup-form--consent-gated<?= $popup_form_show_name ? ' popup-form--with-name' : '' ?><?= $popup_form_show_service ? ' popup-form--with-service' : '' ?>\"\n                        method=\"post\"\n                        data-popup-form=\"<?= htmlspecialchars($form_instance_id) ?>\"\n                        data-popup-form-type=\"<?= htmlspecialchars($form_instance_type) ?>\"\n                        data-popup-form-show-name=\"<?= $popup_form_show_name ? '1' : '0' ?>\"\n                        data-popup-form-show-service=\"<?= $popup_form_show_service ? '1' : '0' ?>\"\n                        data-form-ajax=\"1\"\n                        action=\"\/?form=1\"\n                >\n                    <div class=\"popup-form__fields\">\n                        <?php if ($popup_form_show_service): ?>\n                            <label class=\"field field--select\">\n                                <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_form_service_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n                                <select class=\"field__input field__select\" name=\"<?=$popup_form_service_name?>\" required>\n                                    <option value=\"\" selected disabled><?= htmlspecialchars($popup_form_service_placeholder) ?><\/option>\n                                    <?php foreach ($popup_form_services as $service_option): ?>\n                                        <option value=\"<?= htmlspecialchars($service_option['value']) ?>\"<?=($popup_form_service_value==$service_option['value'])?' selected':''?>><?= htmlspecialchars($service_option['label']) ?><\/option>\n                                    <?php endforeach; ?>\n                                <\/select>\n                                <span class=\"field__select-icon\" aria-hidden=\"true\">\n                  <svg class=\"icon\" width=\"24\" height=\"24\" aria-hidden=\"true\">\n                    <use href=\"#icon-chevron-down\"><\/use>\n                  <\/svg>\n                <\/span>\n                            <\/label>\n                        <?php endif; ?>\n                        <?php if ($popup_form_show_name): ?>\n                            <label class=\"field\">\n                                <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_form_name_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n                                <input class=\"field__input\" type=\"text\" name=\"<?=$popup_form_name_name?>\" value=\"<?=$popup_form_name_value?>\" placeholder=\"<?= htmlspecialchars($popup_form_name_placeholder) ?>\" autocomplete=\"name\" required>\n                            <\/label>\n                        <?php endif; ?>\n                        <label class=\"field\">\n                            <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_form_phone_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n                            <input class=\"field__input\" type=\"tel\" name=\"<?=$popup_form_phone_name?>\" value=\"<?=$popup_form_phone_value?>\" placeholder=\"<?= htmlspecialchars($popup_form_phone_placeholder) ?>\" autocomplete=\"tel\" required>\n                        <\/label>\n                    <\/div>\n                    <div class=\"popup-form__legal-block stack\">\n                        <p class=\"popup-form__legal bodytext-sm\"><?= $popup_form_offer_html ?><\/p>\n                        <label class=\"popup-form__consent popup-form__consent--rich bodytext-sm\">\n                            <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n                            <span class=\"popup-form__consent-copy stack\">\n                <span class=\"popup-form__consent-title bodytext-sm\">Согласие на обработку персональных данных<span class=\"popup-form__consent-required\" aria-hidden=\"true\">*<\/span><\/span>\n                <span class=\"popup-form__consent-desc\"><?= $popup_form_consent_html ?><\/span>\n              <\/span>\n                        <\/label>\n                        <label class=\"popup-form__consent popup-form__consent--rich bodytext-sm\">\n                            <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"marketing\">\n                            <span class=\"popup-form__consent-copy stack\">\n                <span class=\"popup-form__consent-title bodytext-sm\">Согласие на рекламные и маркетинговые сообщения<\/span>\n                <span class=\"popup-form__consent-desc\"><?= $popup_form_marketing_html ?><\/span>\n              <\/span>\n                        <\/label>\n                        <button type=\"submit\" class=\"btn btn--primary popup-form__submit\" disabled><?= $popup_form_submit_label ?><\/button>\n                    <\/div>\n                <\/form>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n",
            "data": "<?php\n\/* ==== DATA ==== *\/\n\/\/ Попап «Записаться на приём» (data-popup=\"form\")\n\n$popup_form_show_name = true;\n$popup_form_name_label = 'Ваше имя';\n$popup_form_name_placeholder = 'Введите ваше имя';\n$popup_form_name_name = $popup_form_name_name??'name';\n$popup_form_name_value = $popup_form_name_value??'';\n\n$popup_form_show_service = true;\n$popup_form_service_label = 'Услуга';\n$popup_form_service_placeholder = 'Выберите нужную услугу';\n$popup_form_services = [\n    ['label' => 'Имплантация', 'value' => 'implant'],\n    ['label' => 'Протезирование', 'value' => 'prosthetics'],\n    ['label' => 'Лечение кариеса', 'value' => 'caries'],\n    ['label' => 'Ортодонтия', 'value' => 'orthodontics'],\n    ['label' => 'Гигиена и профилактика', 'value' => 'hygiene'],\n];\n$popup_form_service_name = $popup_form_service_name??'service';\n$popup_form_service_value = $popup_form_service_value??'';\n\n$popup_form_image = '\/assets\/src\/img\/popup\/popup-form-appointment.webp';\n$popup_form_title = 'Записаться на&nbsp;приём';\n$popup_form_lead = 'Оставьте свои контакты и&nbsp;мы свяжемся с&nbsp;вами в&nbsp;ближайшее время';\n\n$popup_form_phone_label = 'Ваш номер телефона';\n$popup_form_phone_placeholder = '+7 (___)-___-__-__';\n$popup_form_phone_name = $popup_form_phone_name??'phone';\n$popup_form_phone_value = $popup_form_phone_value??'';\n\n$popup_form_submit_label = 'Записаться на&nbsp;приём';\n\n$popup_form_offer_html = 'Нажимая кнопку «Записаться на&nbsp;приём», я&nbsp;принимаю условия <a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/offer\" onclick=\"event.stopPropagation()\">Публичной оферты.<\/a>';\n$popup_form_consent_html = 'Я&nbsp;даю согласие ООО «АЛЕНТЕ СТОМ» на&nbsp;обработку моих персональных данных (номер телефона, адрес электронной почты) в&nbsp;целях осуществления обратной связи и&nbsp;записи на&nbsp;приём. С&nbsp;<a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\" onclick=\"event.stopPropagation()\">Политикой конфиденциальности<\/a> сайта ознакомлен(а). Согласие может быть отозвано путём направления заявления на&nbsp;адрес privacy@alente-stom.ru';\n$popup_form_marketing_html = 'Я&nbsp;согласен(а) получать от&nbsp;ООО «АЛЕНТЕ СТОМ» рекламные сообщения (акции, спецпредложения) по&nbsp;электронной почте. Отписаться от&nbsp;рассылки можно в&nbsp;любое время по&nbsp;ссылке в&nbsp;письме.';\n\nreturn [\n    'popup_form_show_name' => $popup_form_show_name,\n    'popup_form_name_label' => $popup_form_name_label,\n    'popup_form_name_placeholder' => $popup_form_name_placeholder,\n    'popup_form_show_service' => $popup_form_show_service,\n    'popup_form_service_label' => $popup_form_service_label,\n    'popup_form_service_placeholder' => $popup_form_service_placeholder,\n    'popup_form_services' => $popup_form_services,\n    'popup_form_image' => $popup_form_image,\n    'popup_form_title' => $popup_form_title,\n    'popup_form_lead' => $popup_form_lead,\n    'popup_form_phone_label' => $popup_form_phone_label,\n    'popup_form_phone_placeholder' => $popup_form_phone_placeholder,\n    'popup_form_submit_label' => $popup_form_submit_label,\n    'popup_form_offer_html' => $popup_form_offer_html,\n    'popup_form_consent_html' => $popup_form_consent_html,\n    'popup_form_marketing_html' => $popup_form_marketing_html,\n    'popup_form_name_name' => $popup_form_name_name,\n    'popup_form_name_value' => $popup_form_name_value,\n    'popup_form_service_name' => $popup_form_service_name,\n    'popup_form_service_value' => $popup_form_service_value,\n    'popup_form_phone_name' => $popup_form_phone_name,\n    'popup_form_phone_value' => $popup_form_phone_value,\n];\n"
        },
        "form-question": {
            "code": "<div class=\"popup\" data-popup=\"<?= htmlspecialchars($form_instance_id) ?>\" data-popup-type=\"<?= htmlspecialchars($form_instance_type) ?>\" hidden>\n  <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n  <div class=\"popup__dialog popup__dialog--appointment popup__dialog--question\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\">\n    <button type=\"button\" class=\"popup__close\" data-popup-close aria-label=\"Закрыть\">\n      <svg class=\"popup__close-icon\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M23.0817 0L12.8333 10.2483L2.585 0L0 2.585L10.2483 12.8333L0 23.0817L2.585 25.6667L12.8333 15.4183L23.0817 25.6667L25.6667 23.0817L15.4183 12.8333L25.6667 2.585L23.0817 0Z\" fill=\"currentColor\"\/>\n      <\/svg>\n    <\/button>\n    <div class=\"popup__appointment popup__appointment--question\">\n      <div class=\"popup__appointment-visual\" aria-hidden=\"true\">\n        <img\n          src=\"<?= htmlspecialchars($popup_question_image) ?>\"\n          alt=\"\"\n          width=\"644\"\n          height=\"695\"\n          loading=\"lazy\"\n          decoding=\"async\"\n        >\n      <\/div>\n      <div class=\"popup__appointment-main stack stack--lg\">\n        <div class=\"popup__head titles\">\n          <span class=\"popup__title megatext-sm\" id=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\"><?= $popup_question_title ?><\/span>\n          <p class=\"popup__lead bodytext-lg-regular\"><?= $popup_question_lead ?><\/p>\n        <\/div>\n        <form class=\"popup-form popup-form--question popup-form--consent-gated\" method=\"post\" data-popup-form=\"<?= htmlspecialchars($form_instance_id) ?>\" data-popup-form-type=\"<?= htmlspecialchars($form_instance_type) ?>\">\n          <div class=\"popup-form__fields\">\n            <div class=\"popup-form__row popup-form__row--split\">\n              <label class=\"field\">\n                <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_question_name_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n                <input class=\"field__input\" type=\"text\" name=\"name\" placeholder=\"<?= htmlspecialchars($popup_question_name_placeholder) ?>\" autocomplete=\"name\" required>\n              <\/label>\n              <label class=\"field\">\n                <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_question_phone_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n                <input class=\"field__input\" type=\"tel\" name=\"phone\" placeholder=\"<?= htmlspecialchars($popup_question_phone_placeholder) ?>\" autocomplete=\"tel\" required>\n              <\/label>\n            <\/div>\n            <label class=\"field field--textarea\">\n              <span class=\"field__label bodytext-sm\"><?= htmlspecialchars($popup_question_message_label) ?><span class=\"field__required\" aria-hidden=\"true\">*<\/span><\/span>\n              <div class=\"field__textarea-wrap\">\n                <textarea\n                  class=\"field__input field__input--area field__input--comment\"\n                  name=\"message\"\n                  rows=\"4\"\n                  placeholder=\"<?= htmlspecialchars($popup_question_message_placeholder) ?>\"\n                  maxlength=\"<?= (int) $popup_question_message_maxlength ?>\"\n                  required\n                  data-char-counter-field\n                ><\/textarea>\n                <span class=\"field__counter bodytext-md\" data-char-counter aria-live=\"polite\">0\/<?= (int) $popup_question_message_maxlength ?><\/span>\n              <\/div>\n            <\/label>\n          <\/div>\n          <div class=\"popup-form__legal-block stack\">\n            <p class=\"popup-form__legal bodytext-sm\"><?= $popup_question_offer_html ?><\/p>\n            <label class=\"popup-form__consent popup-form__consent--rich bodytext-sm\">\n              <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n              <span class=\"popup-form__consent-copy stack\">\n                <span class=\"popup-form__consent-title bodytext-sm\">Согласие на обработку персональных данных<span class=\"popup-form__consent-required\" aria-hidden=\"true\">*<\/span><\/span>\n                <span class=\"popup-form__consent-desc\"><?= $popup_question_consent_html ?><\/span>\n              <\/span>\n            <\/label>\n            <label class=\"popup-form__consent popup-form__consent--rich bodytext-sm\">\n              <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"marketing\">\n              <span class=\"popup-form__consent-copy stack\">\n                <span class=\"popup-form__consent-title bodytext-sm\">Согласие на рекламные и маркетинговые сообщения<\/span>\n                <span class=\"popup-form__consent-desc\"><?= $popup_question_marketing_html ?><\/span>\n              <\/span>\n            <\/label>\n            <button type=\"submit\" class=\"btn btn--primary popup-form__submit\" disabled><?= htmlspecialchars($popup_question_submit_label) ?><\/button>\n          <\/div>\n        <\/form>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n",
            "data": "<?php\n\/* ==== DATA ==== *\/\n\/\/ Попап «Задать вопрос» (data-popup=\"form-question\")\n\n$popup_question_image = '\/assets\/src\/img\/popup\/popup-form-question.webp';\n$popup_question_title = 'Задать вопрос';\n$popup_question_lead = 'Оставьте ваш вопрос и&nbsp;мы ответим на&nbsp;него в&nbsp;ближайшее время';\n\n$popup_question_name_label = 'Ваше имя';\n$popup_question_name_placeholder = 'Введите ваше имя';\n$popup_question_phone_label = 'Ваш номер телефона';\n$popup_question_phone_placeholder = '+7 (___)-___-__-__';\n$popup_question_message_label = 'Ваш комментарий или вопрос';\n$popup_question_message_placeholder = 'Опишите ваш вопрос';\n$popup_question_message_maxlength = 1500;\n$popup_question_submit_label = 'Задать вопрос';\n\n$popup_question_offer_html = 'Нажимая кнопку «Задать вопрос», я&nbsp;принимаю условия <a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/offer\" onclick=\"event.stopPropagation()\">Публичной оферты.<\/a>';\n$popup_question_consent_html = 'Я&nbsp;даю согласие ООО «АЛЕНТЕ СТОМ» на&nbsp;обработку моих персональных данных (номер телефона, адрес электронной почты) в&nbsp;целях осуществления обратной связи и&nbsp;записи на&nbsp;приём. С&nbsp;<a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\" onclick=\"event.stopPropagation()\">Политикой конфиденциальности<\/a> сайта ознакомлен(а). Согласие может быть отозвано путём направления заявления на&nbsp;адрес privacy@alente-stom.ru';\n$popup_question_marketing_html = 'Я&nbsp;согласен(а) получать от&nbsp;ООО «АЛЕНТЕ СТОМ» рекламные сообщения (акции, спецпредложения) по&nbsp;электронной почте. Отписаться от&nbsp;рассылки можно в&nbsp;любое время по&nbsp;ссылке в&nbsp;письме.';\n\nreturn [\n    'popup_question_image' => $popup_question_image,\n    'popup_question_title' => $popup_question_title,\n    'popup_question_lead' => $popup_question_lead,\n    'popup_question_name_label' => $popup_question_name_label,\n    'popup_question_name_placeholder' => $popup_question_name_placeholder,\n    'popup_question_phone_label' => $popup_question_phone_label,\n    'popup_question_phone_placeholder' => $popup_question_phone_placeholder,\n    'popup_question_message_label' => $popup_question_message_label,\n    'popup_question_message_placeholder' => $popup_question_message_placeholder,\n    'popup_question_message_maxlength' => $popup_question_message_maxlength,\n    'popup_question_submit_label' => $popup_question_submit_label,\n    'popup_question_offer_html' => $popup_question_offer_html,\n    'popup_question_consent_html' => $popup_question_consent_html,\n    'popup_question_marketing_html' => $popup_question_marketing_html,\n];\n"
        },
        "form-review": {
            "code": "<div class=\"popup\" data-popup=\"<?= htmlspecialchars($form_instance_id) ?>\" data-popup-type=\"<?= htmlspecialchars($form_instance_type) ?>\" hidden>\n  <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n  <div class=\"popup__dialog popup__dialog--review-form\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\">\n    <button type=\"button\" class=\"popup__close\" data-popup-close aria-label=\"Закрыть\">\n      <svg class=\"popup__close-icon\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" aria-hidden=\"true\">\n        <path d=\"M23.0817 0L12.8333 10.2483L2.585 0L0 2.585L10.2483 12.8333L0 23.0817L2.585 25.6667L12.8333 15.4183L23.0817 25.6667L25.6667 23.0817L15.4183 12.8333L25.6667 2.585L23.0817 0Z\" fill=\"currentColor\"\/>\n      <\/svg>\n    <\/button>\n    <div class=\"popup__review-form stack stack--lg\">\n      <div class=\"popup__head\">\n        <span class=\"popup__title megatext-sm\" id=\"popup-title-<?= htmlspecialchars($form_instance_slug) ?>\"><?= htmlspecialchars($popup_review_title) ?><\/span>\n      <\/div>\n      <form\n        class=\"popup-form popup-form--review popup-form--consent-gated\"\n        method=\"post\"\n        data-popup-form=\"<?= htmlspecialchars($form_instance_id) ?>\"\n        data-popup-form-type=\"<?= htmlspecialchars($form_instance_type) ?>\"\n        data-form-success-message=\"<?= htmlspecialchars($popup_review_success_text) ?>\"\n      >\n        <div class=\"popup-form__fields\">\n          <fieldset class=\"field field--rating\">\n            <legend class=\"field__label popup-form__section-label bodytext-md bodytext-strong\"><?= htmlspecialchars($popup_review_rating_label) ?><\/legend>\n            <div class=\"rating-picks\">\n              <?php foreach ($popup_review_ratings as $rating): ?>\n                <?php\n                  $rating_value = (string) ($rating['value'] ?? '');\n                  $rating_id = 'review-form-rating-' . $form_instance_slug . '-' . $rating_value;\n                  $rating_checked = !empty($rating['checked']);\n                ?>\n                <input\n                  class=\"rating-picks__radio\"\n                  type=\"radio\"\n                  name=\"rating\"\n                  id=\"<?= htmlspecialchars($rating_id) ?>\"\n                  value=\"<?= htmlspecialchars($rating_value) ?>\"\n                  <?= $rating_checked ? 'checked' : '' ?>\n                  <?= $rating_checked ? 'required' : '' ?>\n                >\n                <label class=\"rating-picks__item\" for=\"<?= htmlspecialchars($rating_id) ?>\" aria-label=\"<?= htmlspecialchars($rating['label']) ?>\">\n                  <img\n                    class=\"rating-picks__icon\"\n                    src=\"<?= htmlspecialchars($rating['icon']) ?>\"\n                    alt=\"\"\n                    width=\"36\"\n                    height=\"36\"\n                    loading=\"lazy\"\n                    decoding=\"async\"\n                  >\n                  <span class=\"rating-picks__label bodytext-sm\"><?= htmlspecialchars($rating['label']) ?><\/span>\n                <\/label>\n              <?php endforeach; ?>\n            <\/div>\n          <\/fieldset>\n\n          <fieldset class=\"field field--topic\">\n            <legend class=\"field__label popup-form__section-label bodytext-md bodytext-strong\"><?= htmlspecialchars($popup_review_topic_label) ?><\/legend>\n            <div class=\"topic-picks\">\n              <?php foreach ($popup_review_topics as $topic): ?>\n                <?php\n                  $topic_value = (string) ($topic['value'] ?? '');\n                  $topic_id = 'review-form-topic-' . $form_instance_slug . '-' . $topic_value;\n                ?>\n                <input\n                  class=\"topic-picks__radio\"\n                  type=\"radio\"\n                  name=\"topic\"\n                  id=\"<?= htmlspecialchars($topic_id) ?>\"\n                  value=\"<?= htmlspecialchars($topic_value) ?>\"\n                  <?= !empty($topic['checked']) ? 'checked' : '' ?>\n                  <?= !empty($topic['checked']) ? 'required' : '' ?>\n                >\n                <label class=\"topic-picks__item\" for=\"<?= htmlspecialchars($topic_id) ?>\">\n                  <?php\n                    $topic_icon = (string) ($topic['icon'] ?? '');\n                    $topic_icon_ext = strtolower((string) pathinfo($topic_icon, PATHINFO_EXTENSION));\n                    $topic_svg_fs = Yii::getAlias('@webroot') . $topic_icon;\n                  ?>\n                  <?php if ($topic_icon_ext === 'svg' && is_file($topic_svg_fs)): ?>\n                    <?php\n                      $topic_svg = (string) file_get_contents($topic_svg_fs);\n                      $topic_svg = preg_replace(\n                        '\/<svg\\b\/',\n                        '<svg class=\"topic-picks__icon\" aria-hidden=\"true\"',\n                        $topic_svg,\n                        1\n                      );\n                      echo $topic_svg;\n                    ?>\n                  <?php else: ?>\n                    <span class=\"topic-picks__icon topic-picks__icon--mask\" style=\"--topic-icon: url('<?= htmlspecialchars($topic_icon) ?>')\" aria-hidden=\"true\"><\/span>\n                  <?php endif; ?>\n                  <span class=\"topic-picks__label bodytext-strong\"><?= htmlspecialchars($topic['label']) ?><\/span>\n                <\/label>\n              <?php endforeach; ?>\n            <\/div>\n          <\/fieldset>\n\n          <label class=\"field field--textarea\">\n            <span class=\"field__label popup-form__section-label bodytext-md bodytext-strong\"><?= htmlspecialchars($popup_review_text_label) ?><\/span>\n            <div class=\"field__textarea-wrap\">\n              <textarea\n                class=\"field__input field__input--area field__input--comment\"\n                name=\"text\"\n                rows=\"4\"\n                placeholder=\"<?= htmlspecialchars($popup_review_text_placeholder) ?>\"\n                maxlength=\"<?= (int) $popup_review_text_maxlength ?>\"\n                required\n                data-char-counter-field\n              ><\/textarea>\n              <span class=\"field__counter bodytext\" data-char-counter aria-live=\"polite\">0\/<?= (int) $popup_review_text_maxlength ?><\/span>\n            <\/div>\n          <\/label>\n\n          <div class=\"popup-form__row popup-form__row--split\">\n            <label class=\"field\">\n              <input class=\"field__input\" type=\"tel\" name=\"phone\" placeholder=\"<?= htmlspecialchars($popup_review_phone_placeholder) ?>\" aria-label=\"<?= htmlspecialchars($popup_review_phone_label) ?>\" autocomplete=\"tel\" required>\n            <\/label>\n            <label class=\"field\">\n              <input class=\"field__input\" type=\"text\" name=\"name\" placeholder=\"<?= htmlspecialchars($popup_review_name_placeholder) ?>\" aria-label=\"<?= htmlspecialchars($popup_review_name_label) ?>\" autocomplete=\"name\" required>\n            <\/label>\n          <\/div>\n        <\/div>\n\n        <div class=\"popup-form__legal-block\">\n          <label class=\"popup-form__consent bodytext\">\n            <input class=\"popup-form__consent-input\" type=\"checkbox\" name=\"consent\" required>\n            <span class=\"popup-form__consent-text\"><?= $popup_review_consent_html ?><\/span>\n          <\/label>\n          <button type=\"submit\" class=\"btn btn--primary popup-form__submit\"><?= htmlspecialchars($popup_review_submit_label) ?><\/button>\n        <\/div>\n      <\/form>\n    <\/div>\n  <\/div>\n<\/div>\n",
            "data": "<?php\n\/* ==== DATA ==== *\/\n\/\/ Попап «Оставить отзыв»\n\n$popup_review_title = 'Расскажите, как все прошло?';\n$popup_review_rating_label = 'Ваша оценка';\n$popup_review_topic_label = 'О чем ваш отзыв';\n$popup_review_text_label = 'Расскажите подробнее';\n$popup_review_text_placeholder = 'Введите текст отзыва';\n$popup_review_text_maxlength = 1500;\n$popup_review_name_label = 'ФИО';\n$popup_review_name_placeholder = 'Введите ваше ФИО';\n$popup_review_phone_label = 'Телефон';\n$popup_review_phone_placeholder = '+7(___) ___-__-__';\n$popup_review_submit_label = 'Оставить отзыв';\n$popup_review_success_text = \"Спасибо за отзыв.\\nПосле модерации, ваш отзыв будет опубликован\";\n\n$popup_review_consent_html = 'Нажимая на кнопку, вы соглашаетесь с <a class=\"popup-form__consent-link text-decoration-fade\" href=\"\/policy\" onclick=\"event.stopPropagation()\">политикой обработки персональных данных<\/a>';\n\n$popup_review_ratings = [\n    ['value' => '5', 'label' => 'Отлично', 'icon' => '\/assets\/src\/img\/popup\/review-rating-5.svg', 'checked' => true],\n    ['value' => '4', 'label' => 'Хорошо', 'icon' => '\/assets\/src\/img\/popup\/review-rating-4.svg', 'checked' => false],\n    ['value' => '3', 'label' => 'Нормально', 'icon' => '\/assets\/src\/img\/popup\/review-rating-3.svg', 'checked' => false],\n    ['value' => '2', 'label' => 'Есть замечания', 'icon' => '\/assets\/src\/img\/popup\/review-rating-2.svg', 'checked' => false],\n    ['value' => '1', 'label' => 'Плохо', 'icon' => '\/assets\/src\/img\/popup\/review-rating-1.svg', 'checked' => false],\n];\n\n$popup_review_topics = [\n    ['value' => 'doctor', 'label' => 'О враче', 'icon' => '\/assets\/src\/img\/popup\/review-topic-doctor.svg', 'checked' => true],\n    ['value' => 'clinic', 'label' => 'О клинике', 'icon' => '\/assets\/src\/img\/popup\/review-topic-clinic.svg', 'checked' => false],\n    ['value' => 'service', 'label' => 'Об услуге', 'icon' => '\/assets\/src\/img\/popup\/review-topic-service.svg', 'checked' => false],\n];\n\nreturn [\n    'popup_review_title' => $popup_review_title,\n    'popup_review_rating_label' => $popup_review_rating_label,\n    'popup_review_topic_label' => $popup_review_topic_label,\n    'popup_review_text_label' => $popup_review_text_label,\n    'popup_review_text_placeholder' => $popup_review_text_placeholder,\n    'popup_review_text_maxlength' => $popup_review_text_maxlength,\n    'popup_review_name_label' => $popup_review_name_label,\n    'popup_review_name_placeholder' => $popup_review_name_placeholder,\n    'popup_review_phone_label' => $popup_review_phone_label,\n    'popup_review_phone_placeholder' => $popup_review_phone_placeholder,\n    'popup_review_submit_label' => $popup_review_submit_label,\n    'popup_review_success_text' => $popup_review_success_text,\n    'popup_review_consent_html' => $popup_review_consent_html,\n    'popup_review_ratings' => $popup_review_ratings,\n    'popup_review_topics' => $popup_review_topics,\n];\n"
        },
        "global": {
            "code": "<?php\n\/** Глобальные попапы: media, review, form-success, form-error *\/\n?>\n  <div class=\"popup popup--media\" data-popup=\"media\" hidden>\n    <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n    <div class=\"popup__dialog popup__dialog--media\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Медиа\">\n      <button type=\"button\" class=\"popup__close\" data-popup-close aria-label=\"Закрыть\">\n        <svg class=\"popup__close-icon\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M23.0817 0L12.8333 10.2483L2.585 0L0 2.585L10.2483 12.8333L0 23.0817L2.585 25.6667L12.8333 15.4183L23.0817 25.6667L25.6667 23.0817L15.4183 12.8333L25.6667 2.585L23.0817 0Z\" fill=\"currentColor\"\/>\n        <\/svg>\n      <\/button>\n      <div class=\"popup__body stack stack--md\">\n        <div class=\"popup__media\" data-popup-media-slot><\/div>\n        <div class=\"popup__media-meta\" data-popup-media-meta hidden>\n          <div class=\"popup__media-meta-row\">\n            <p class=\"popup__media-author bodytext-strong\" data-popup-media-author><\/p>\n            <div class=\"popup__media-stars\" data-popup-media-stars aria-hidden=\"true\"><\/div>\n          <\/div>\n          <p class=\"popup__media-service bodytext-strong\" data-popup-media-service hidden>\n            <span class=\"popup__meta-value\" data-popup-media-service-value><\/span>\n          <\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"popup popup--review\" data-popup=\"review\" hidden>\n    <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n    <div class=\"popup__dialog popup__dialog--review\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Отзыв\">\n      <button type=\"button\" class=\"popup__close\" data-popup-close aria-label=\"Закрыть\">\n        <svg class=\"popup__close-icon\" width=\"26\" height=\"26\" viewBox=\"0 0 26 26\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M23.0817 0L12.8333 10.2483L2.585 0L0 2.585L10.2483 12.8333L0 23.0817L2.585 25.6667L12.8333 15.4183L23.0817 25.6667L25.6667 23.0817L15.4183 12.8333L25.6667 2.585L23.0817 0Z\" fill=\"currentColor\"\/>\n        <\/svg>\n      <\/button>\n      <div class=\"popup__body\">\n        <div class=\"popup__review\" data-popup-review-slot><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"popup popup--form-result\" data-popup=\"form-success\" hidden>\n    <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n    <div class=\"popup__dialog popup__dialog--form-result\" role=\"alertdialog\" aria-modal=\"true\" aria-labelledby=\"popup-title-form-success\">\n      <div class=\"popup-form-result\">\n        <p class=\"popup-form-result__text bodytext-lg bodytext-strong\" id=\"popup-title-form-success\" data-form-result-text data-default-text=\"<?= htmlspecialchars($popup_result_success_text) ?>\"><?= htmlspecialchars($popup_result_success_text) ?><\/p>\n        <button type=\"button\" class=\"btn btn--primary popup-form-result__ok\" data-popup-close><?= htmlspecialchars($popup_result_ok_label) ?><\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"popup popup--form-result\" data-popup=\"form-error\" hidden>\n    <div class=\"popup__overlay\" data-popup-close tabindex=\"-1\"><\/div>\n    <div class=\"popup__dialog popup__dialog--form-result\" role=\"alertdialog\" aria-modal=\"true\" aria-labelledby=\"popup-title-form-error\">\n      <div class=\"popup-form-result popup-form-result--error\">\n        <div class=\"popup-form-result__icon\" aria-hidden=\"true\">\n          <img src=\"<?= htmlspecialchars($popup_result_error_icon) ?>\" alt=\"\" width=\"64\" height=\"64\" loading=\"lazy\" decoding=\"async\">\n        <\/div>\n        <div class=\"popup-form-result__body\">\n          <p class=\"popup-form-result__text bodytext-lg\" id=\"popup-title-form-error\" data-form-result-text data-default-text=\"<?= htmlspecialchars($popup_result_error_text) ?>\"><?= htmlspecialchars($popup_result_error_text) ?><\/p>\n          <button type=\"button\" class=\"btn btn--primary popup-form-result__ok\" data-popup-close><?= htmlspecialchars($popup_result_ok_label) ?><\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n",
            "data": "<?php\n\/* ==== DATA ==== *\/\n\/\/ Общие попапы результата отправки (form-success \/ form-error)\n\n$popup_result_success_text = 'Ваше обращение успешно отправлено.';\n$popup_result_error_text = 'Чтото пошло не так....попробуйте отправить запрос позже.';\n$popup_result_ok_label = 'ОК';\n$popup_result_error_icon = '\/assets\/src\/img\/popup\/form-error-icon.svg';\n\nreturn [\n    'popup_result_success_text' => $popup_result_success_text,\n    'popup_result_error_text' => $popup_result_error_text,\n    'popup_result_ok_label' => $popup_result_ok_label,\n    'popup_result_error_icon' => $popup_result_error_icon,\n];\n"
        }
    },
    "forms_api": {
        "doc": "docs\/forms-api.md",
        "form_types": [
            "form-appointment",
            "form-question",
            "form-review"
        ],
        "legacy_ids": {
            "form-appointment": "form",
            "form-question": "form-question",
            "form-review": "review-form"
        },
        "instance_id_pattern": "{type}--{block}-{variant}-{blockId}--{localId}",
        "fragment": {
            "query": {
                "form": "1"
            },
            "selector_root": ".popups",
            "selector_popup": ".popup[data-popup=\"{id}\"]"
        },
        "global_popup_ids": [
            "media",
            "review",
            "form-success",
            "form-error"
        ],
        "snapshot_path": "dist\/4\/forms.fragment.html"
    }
}