commit 714d00cc6e724d66a299eae5793c33fd4ecac55b Author: web_103.2 Date: Wed Oct 14 11:09:36 2026 +0300 Dmitriy | init: Инициализация проекта. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb4ab34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# WordPress core and environment-specific files are generated locally. +/* + +# Конфигурация проекта. +!/.gitignore +!/README.md +!/THEME.md +!/composer.json +!/composer.lock +!/.env.example +!/wp-config.php +!/wp-config-local.php.example +!/config/ +!/config/** +/wp-config.php + +# The shared application theme is part of the monorepo. +!/wp-content/ +/wp-content/* +!/wp-content/themes/ +/wp-content/themes/* +!/wp-content/themes/hantico/ +!/wp-content/themes/hantico/** + +# Системный плагин управления региональными плагинами. +!/wp-content/mu-plugins/ +/wp-content/mu-plugins/* + +# Исходники внутренних плагинов. +!/wp-content/plugins/ +/wp-content/plugins/* + +# Runtime dependencies and generated assets are never committed. +**/vendor/ +**/node_modules/ +**/.idea/ +**/.env +**/.env.* +!/.env.example +**/*.log +/.tools/ +/vendor/ +/wordpress/ diff --git a/wp-content/themes/hantico/404.php b/wp-content/themes/hantico/404.php new file mode 100644 index 0000000..a9f8e9a --- /dev/null +++ b/wp-content/themes/hantico/404.php @@ -0,0 +1,19 @@ + + +
+ +
+
+
+

404

+
Страница не найдена
+ +
+
+
+ +
+ + \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/css/admin.css b/wp-content/themes/hantico/assets/css/admin.css new file mode 100644 index 0000000..22f8edf --- /dev/null +++ b/wp-content/themes/hantico/assets/css/admin.css @@ -0,0 +1,74 @@ +#edittag { + max-width: 1400px !important; +} + +.wpseo-admin-submit-fixed, +.wpseo-meta-section-react, +.wpseo-metabox-content, +.wpseo-meta-section, +.yoast-container, +.tab-block { + max-width: 100% !important; +} + +.yoast.wpseo-taxonomy-metabox-postbox { + margin-top: 20px; +} + +.yoast-sidebar__product, +.wp-submenu .yoast-premium-badge, +.ab-submenu .yoast-premium-badge, +[href^="admin.php?page=wpseo_brand_insights"], +[href^="admin.php?page=wpseo_upgrade_sidebar"], +[id^="wp-admin-bar-wpseo_brand_insights"], +[id^="wp-admin-bar-wpseo-get-premium"], +#wpseo_content_top .yoast_premium_upsell, +#premium-seo-analysis-upsell-ad-metabox, +#webinar-promo-notification { + display: none !important; +} + +.yoast-opengraph-image-notice #set-post-thumbnail>img { + box-shadow: none; +} + +#acf-term-fields>.acf-field>.acf-label label { + font-size: 13px; +} + +ul.acf-tab-group { + display: flex; + flex-wrap: wrap; +} + +.wp-core-ui .notice { + box-sizing: border-box; +} + +.row-actions .acfduplicate~.duplicate_post { + display: none; +} + +.row-actions .acfduplicate~.trash { + color: transparent; +} + +.row-actions .m4c-duplicate-post { + font-size: 0; +} + +.row-actions .m4c-duplicate-post:focus { + box-shadow: none; +} + +.row-actions .m4c-duplicate-post::after { + content: 'Дублировать'; + font-size: 13px; +} + +.row-actions .m4c-duplicate-post:focus::after { + color: #043959; + border-radius: 2px; + box-shadow: 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color, #3858e9); + outline: 2px solid transparent; +} \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/css/style.css b/wp-content/themes/hantico/assets/css/style.css new file mode 100644 index 0000000..5e12633 --- /dev/null +++ b/wp-content/themes/hantico/assets/css/style.css @@ -0,0 +1,5946 @@ +:root { + --icon-angle-down: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.44453 7.76144L-5.0361e-08 3.15212L1.11094 2L5 6.03325L8.88906 2L10 3.15212L5.55547 7.76144C5.40813 7.91419 5.20833 8 5 8C4.79167 8 4.59187 7.91419 4.44453 7.76144Z' fill='black' /%3E%3C/svg%3E"); + --icon-angle-left: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m2.2386 4.4445 4.6093-4.4445 1.1521 1.1109-4.0332 3.8891 4.0332 3.8891-1.1521 1.1109-4.6093-4.4445c-.15275-.14734-.23856-.34714-.23856-.55547s.085811-.40813.23856-.55547z' clip-rule='evenodd' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E%0A"); + --icon-angle-round: url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle transform='rotate(-90)' cx='-18' cy='18' r='18' fill='%23f5f5fa' stroke-width='.97297'/%3E%3Cpath d='m17.536 20.613-3.7133-3.6676.9282-.9168 3.2492 3.2093 3.2493-3.2093.9281.9168-3.7133 3.6676c-.1231.1215-.29.1898-.4641.1898-.174 0-.341-.0683-.4641-.1898z' clip-rule='evenodd' fill-rule='evenodd'/%3E%3C/svg%3E"); + --icon-checkmark: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m18.605 4.0883c.25317.24833.39546.5851.39546.93628 0 .35115-.14229.68791-.39546.93628l-10.124 9.9253c-.1338.13122-.29265.23526-.46747.30627-.17483.07101-.36221.10755-.55144.10755-.18924 0-.37662-.03654-.55144-.10755-.17483-.07101-.33368-.17505-.46747-.30627l-5.0301-4.9306c-.12901-.12216-.23191-.26828-.30271-.42984-.07079-.16156-.10805-.33533-.10961-.51116-.0015-.17583.03262-.35021.10053-.51296.06791-.16274.16821-.31059.29504-.43493.12683-.12434.27763-.22267.44364-.28925.166-.066583.34387-.10009.52322-.09856.17935.00153.35659.038061.52139.10746.16479.0694.31384.17028.43845.29676l4.1387 4.0575 9.2332-9.0523c.12546-.12306.27441-.22067.4383-.28728.16398-.0666.33966-.10088.51714-.10088.17748 0 .35316.03428.51714.10088.16389.0666.31284.16422.4383.28728z' clip-rule='evenodd' fill='%23ae001b' fill-rule='evenodd' stroke-width='.90001'/%3E%3C/svg%3E%0A"); + --icon-user: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 9C8.20435 9 7.44129 8.68393 6.87868 8.12132C6.31607 7.55871 6 6.79565 6 6C6 5.20435 6.31607 4.44129 6.87868 3.87868C7.44129 3.31607 8.20435 3 9 3C9.79565 3 10.5587 3.31607 11.1213 3.87868C11.6839 4.44129 12 5.20435 12 6C12 6.79565 11.6839 7.55871 11.1213 8.12132C10.5587 8.68393 9.79565 9 9 9ZM9 11.25C11.3895 11.25 13.5337 11.6782 15 13.5472V15H3V13.5472C4.46625 11.6775 6.6105 11.25 9 11.25Z' fill='%23515151' /%3E%3C/svg%3E"); + --icon-car: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m24 10.406v-1.875h-2.8649l-1.4392-3.87-.4622-.1274c-.0659-.01814-.9865-.26771-2.5462-.48047v-2.1784h-1.875v1.9792c-.624-.04818-1.2493-.07957-1.875-.09413v-1.8851h-1.875v1.8898c-.6258.01782-1.251.05177-1.875.10181v-1.9916h-1.875v2.1934c-1.5331.20784-2.463.44386-2.5311.46144l-.47555.12267-1.43 3.8787h-2.8759v1.875h2.0156l.024.0321-1.1363 1.4633-.02362.0371c-.57496.9024-.88015 1.9502-.87966 3.0202v6.2286c0 1.5509 1.2616 2.8125 2.8125 2.8125s2.8125-1.2616 2.8125-2.8125v-.4688h12.75v.4688c0 1.5509 1.2616 2.8125 2.8125 2.8125 1.5509 0 2.8125-1.2616 2.8125-2.8125v-6.2363c0-1.0656-.301-2.1051-.8707-3.006l-.0232-.0368-1.1263-1.4606.0333-.0416zm-18.281-4.1666c.96018-.19992 3.3193-.61467 6.3747-.61467 3.0194 0 5.2679.40889 6.1865.60881l1.168 3.1412h-14.885zm-1.9691 14.948c0 .5169-.42061.9375-.9375.9375s-.9375-.4206-.9375-.9375v-.4688h1.875zm17.438.9375c-.5169 0-.9375-.4206-.9375-.9375v-.4688h1.875v.4688c0 .5169-.4206.9375-.9375.9375zm.9375-3.2813h-20.25v-3.8847c0-.7008.195-1.3839.56438-1.9785l1.3439-1.7305h16.447l1.3359 1.7323c.3654.5918.5588 1.2735.5585 1.969zm-14.109-4.6875h7.9688v1.875h-7.9688zm-1.9219.9375c0 .5179-.41967.9375-.9375.9375h-.9375c-.51783 0-.9375-.4196-.9375-.9375 0-.5178.41967-.9375.9375-.9375h.9375c.51783 0 .9375.4197.9375.9375zm14.625 0c0 .5179-.4197.9375-.9376.9375h-.9374c-.5179 0-.9376-.4196-.9376-.9375 0-.5178.4197-.9375.9376-.9375h.9374c.5179 0 .9376.4197.9376.9375zm-9.6563-13.219h-1.875v-1.875h1.875zm3.75 0h-1.875v-1.875h1.875z' fill='%23fff'/%3E%3C/svg%3E"); + --icon-bike: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m7.5822 19.053c0-.9739-.79117-1.7633-1.7671-1.7633s-1.7671.7894-1.7671 1.7633.79117 1.7633 1.7671 1.7633 1.7671-.7894 1.7671-1.7633zm8.6589 0c0 .9739.7911 1.7633 1.7671 1.7633.9759 0 1.7671-.7894 1.7671-1.7633zm2.6507-14.107c-.488 0-.8836.39475-.8836.88166v.88166h1.7671v-1.7633zm-11.31 0v1.7633h-5.3014v-1.7633zm3.5342-3.5266v1.7633h-5.3013v-1.7633zm-1.7671 17.633c0 1.9477-1.5823 3.5266-3.5342 3.5266s-3.5342-1.5789-3.5342-3.5266h-1.5904v-2.645c0-4.3529 3.3545-7.9349 7.7753-7.9349h4.2411v1.7633h-1.7671v6.9906c2.9973-.4278 5.3014-2.9998 5.3014-6.1089v-3.0678l-1.9182-1.3406h.1511v-1.7633h1.9179c.3639-1.0273 1.3457-1.7633 2.4999-1.7633h2.6506v5.29h-2.1404c.0552.06103.1107.12356.1661.18761.9399 1.086 1.9896 2.7184 1.9896 4.6529 0 .4383-.0408.8608-.1097 1.2622 1.1254.7981 1.8616 2.1104 1.8616 3.5955v.8817h-1.7672c0 1.9477-1.5823 3.5266-3.5342 3.5266s-3.5342-1.5789-3.5342-3.5266zm-6.8918-1.7633h.29613c.61109-1.0541 1.7532-1.7633 3.0614-1.7633s2.4503.7092 3.0614 1.7633h.29613v-7.0533h-.70685c-3.3868 0-6.0082 2.7336-6.0082 6.1716zm15.551-6.1716c0 2.4927-1.152 4.7169-2.9536 6.1716h6.337c-.2311-.6527-.7117-1.1884-1.3295-1.4924l-.6429-.3164.1778-.693c.1194-.4655.1936-.9615.1936-1.4743 0-1.307-.725-2.5357-1.5599-3.5004-.0743-.08584-.1487-.16863-.2225-.24827z' fill='%23cacada'/%3E%3C/svg%3E%0A"); + --icon-truck: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m15.481 6.5h3.5186l.0508.12207 2.2763 5.4648 2.5674 1.4561.1006.0566v6.0274h-3.2148c-.4164 1.1923-1.5502 2.0516-2.8838 2.0517-1.3336-2e-4-2.4665-.8594-2.8828-2.0517h-6.0244c-.4163 1.1922-1.5493 2.0515-2.8828 2.0517-1.3338 0-2.4674-.8593-2.8838-2.0517h-3.2148v-17.24h15.474v4.1133zm-7.1816 13.95c.0059-.0071.01273-.0134.01856-.0205.00914-.0112.01642-.0239.02539-.0352-.01469.0186-.02881.0375-.04395.0557zm.18653-.2481c-.00655.0099-.01482.0186-.02149.0284.00668-.0098.01493-.0185.02149-.0284zm.11523-.1933c.01496-.0269.02984-.0537.04395-.0811-.0141.0274-.029.0542-.04395.0811zm-2.4951-2.6026c-.67062 0-1.2168.5461-1.2168 1.2168 4e-5.6706.5462 1.2168 1.2168 1.2168.67032-3e-4 1.2158-.5464 1.2158-1.2168-4e-5-.6705-.54548-1.2164-1.2158-1.2168zm11.79 0c-.6704 3e-4-1.2158.5462-1.2158 1.2168 0 .6705.5454 1.2166 1.2158 1.2168.6705-1e-4 1.2167-.5463 1.2168-1.2168-1e-4-.6706-.5463-1.2166-1.2168-1.2168zm-9.1602 2.3292c.0142-.0335.02709-.0675.04004-.1016-.01294.0341-.02585.0681-.04004.1016zm-5.3037-.1016c.00264.0069.00608.0136.00879.0205-.02883-.0737-.0546-.149-.07715-.2256l.06836.2051zm13.049-1.0108c0 .0419.0033.0832.0069.1241l-.0059-.1241c0-.0487.002-.097.0069-.1445l-.0079.1445zm-14.833-.6376h.00097v-5.5225h-.00097v5.5225zm.19922-10.647h8.8085v1.8398h-8.8085v1.6426h6.7559v1.8398h-6.7559v5.126h1.3223c.36463-1.2794 1.5409-2.2207 2.9365-2.2207 1.3952 3e-4 2.571.9414 2.9355 2.2207h4.6006v-13.561h-11.795v3.1123zm13.634 9.4179c.5589-.7221 1.4324-1.1903 2.4151-1.1904 1.3956 1e-4 2.5719.9413 2.9365 2.2207h1.3232v-3.1152l-1.7978-1.0205h-4.877v3.1054zm1.0118-.623c-.0594.0336-.1172.0697-.1739.1074.1131-.0752.2319-.1424.3555-.2012l-.1816.0938zm-10.635-.3584.24707-.0098c.16767 0 .33238.0142.49219.042-.07901-.0138-.15916-.0241-.24024-.0312l-.25097-.0118c-.08352 0-.16626.0037-.24805.0108zm12.038-.0108c-.1456 1e-4-.2888.0112-.4287.0323l.2119-.0235c.0716-.0052.1439-.0078.2168-.0078.127 0 .2522.0076.375.0235l-.1856-.0186c-.0626-.0041-.1258-.0058-.1894-.0059zm-2.4151-3.9531h3.7383l-1.4463-3.4717h-2.292v3.4717zm-13.833-.792h.00097v-2.039h-.00097v2.039zm0-3.4824h.00097v-3.5088h-.00097v3.5088z' fill='%23CACADA'/%3E%3C/svg%3E"); + --icon-play: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m53.986 25.627c3.3524 1.9484 3.3524 6.7982 0 8.7465l-42.906 24.937c-3.3645 1.9554-7.5794-.4765-7.5794-4.3733l2e-6-49.873c0-3.8967 4.2148-6.3287 7.5793-4.3732z' fill='%23fff'/%3E%3C/svg%3E"); + --icon-cross: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.6914 0V24' stroke='%2373798C'/%3E%3Cpath d='M24 11.6924L-8.9407e-07 11.6924' stroke='%2373798C'/%3E%3C/svg%3E%0A"); + --icon-quotes: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m21.45 13.688c0 2.797-2.2655 5.0625-5.0625 5.0625h-.3375c-.7467 0-1.35-.6033-1.35-1.35s.6033-1.35 1.35-1.35h.3375c1.3036 0 2.3625-1.0589 2.3625-2.3625v-.3375h-2.7c-1.4892 0-2.7-1.2108-2.7-2.7v-2.7c0-1.4892 1.2108-2.7 2.7-2.7h2.7c1.4892 0 2.7 1.2108 2.7 2.7zm-10.8 0c0 2.797-2.2655 5.0625-5.0625 5.0625h-.3375c-.74672 0-1.35-.6033-1.35-1.35s.60328-1.35 1.35-1.35h.3375c1.3036 0 2.3625-1.0589 2.3625-2.3625v-.3375h-2.7c-1.4892 0-2.7-1.2108-2.7-2.7v-2.7c0-1.4892 1.2108-2.7 2.7-2.7h2.7c1.4892 0 2.7 1.2108 2.7 2.7z' fill='%23d4d4d4'/%3E%3C/svg%3E"); + --icon-phone: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12.083 0h-4.1667c-1.2152.0013-2.3802.48463-3.2394 1.3439-.85925.85925-1.3426 2.0243-1.3439 3.2394v10.833c0 2.5275 2.0558 4.5833 4.5833 4.5833h4.1667c2.5267 0 4.5833-2.0558 4.5833-4.5833v-10.833c0-2.5275-2.0566-4.5833-4.5833-4.5833zm2.0833 15.417c0 1.1483-.9341 2.0833-2.0833 2.0833h-4.1667c-.55233-7e-4-1.0818-.2204-1.4724-.6109-.39056-.3906-.61026-.9201-.61093-1.4724v-10.833c0-1.1483.935-2.0833 2.0833-2.0833h4.1667c1.1492 0 2.0833.935 2.0833 2.0833zm-3.3333.4166h-1.6667c-.22102 0-.43298-.0878-.58926-.244-.15628-.1563-.24408-.3683-.24408-.5893s.0878-.433.24408-.5893c.15628-.1562.36824-.244.58926-.244h1.6667c.221 0 .433.0878.5892.244.1563.1563.2441.3683.2441.5893s-.0878.433-.2441.5893c-.1562.1562-.3682.244-.5892.244z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-location: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m8.3333 6.6667c0-.32963.09774-.65186.28088-.92595.18314-.27408.44343-.4877.74798-.61384.30454-.12615.63964-.15916.96294-.09485s.6203.22305.8534.45613c.2331.23309.3918.53006.4561.85336.0643.32331.0313.65842-.0948.96296-.1262.30454-.3398.56484-.6139.74798-.2741.18313-.5963.28088-.9259.28088-.44206 0-.86599-.17559-1.1785-.48815s-.48815-.73649-.48815-1.1785zm11.667 4.4783v4.2909c.0046.5768-.1236 1.1471-.3748 1.6664-.2511.5194-.6185.974-1.0736 1.3286-.4268.3348-.9248.5671-1.4557.679-.5308.1118-1.0803.1002-1.6059-.034-.0367-.0092-1.94-.6817-1.94-.6817-.3137-.0853-.6448-.0821-.9567.0092l-4.5833 1.4216c-.39857.116-.81156.1749-1.2267.175-.45298 4e-4-.9031-.0716-1.3333-.2133l-2.2825-.75c-.9261-.3-1.7325-.8873-2.3021-1.6767-.56959-.7894-.87274-1.7399-.86542-2.7133v-3.3967c-.0053-.6283.11821-1.251.36287-1.8298.24465-.57874.60528-1.1012 1.0596-1.5352.54195-.50655 1.2029-.86825 1.9217-1.0517-.01692-.89746.14569-1.7892.47826-2.623.33258-.83373.82843-1.5926 1.4584-2.232.61589-.62653 1.3504-1.1241 2.1606-1.4638.81023-.33968 1.68-.51462 2.5586-.51462.8785 0 1.7483.17494 2.5585.51462.8103.33968 1.5447.8373 2.1606 1.4638 1.2382 1.2556 1.935 2.9466 1.9409 4.71l.3883.13584c.8728.33462 1.6229.92735 2.1503 1.6992.5273.77182.8069 1.6869.8014 2.6216zm-12.941-1.4116 2.7442 2.6833c.02635.0267.05775.0479.09237.0624.03462.0144.07177.0219.10933.0219.0375 0 .0746-.0075.1093-.0219.0346-.0145.066-.0357.0923-.0624l2.75-2.6958c.7808-.80127 1.2166-1.8765 1.2141-2.9952-.0025-1.1187-.4431-2.192-1.2274-2.9898-.3836-.3908-.8412-.70122-1.3462-.91313-.5049-.21191-1.047-.32105-1.5946-.32105-.54764 0-1.0898.10914-1.5947.32105s-.96258.52233-1.3462.91313c-.78541.80039-1.2256 1.8769-1.2261 2.9982s.43884 2.1982 1.2236 2.9993zm10.441 1.4108c.0074-.4197-.112-.8319-.3428-1.1825-.2308-.35063-.5621-.62337-.9506-.78248-.3304.86521-.8369 1.6524-1.4875 2.3117l-2.7616 2.71c-.5189.5146-1.2201.8034-1.9509.8034-.73078 0-1.432-.2888-1.9508-.8034l-2.76-2.695c-.6311-.6402-1.1283-1.3997-1.4625-2.2342-.25379.09301-.4858.23709-.68167.42334-.20916.20087-.37491.44248-.487.70998-.11209.2674-.16813.555-.16467.845v3.3959c-.0088.4419.1239.8751.37877 1.2363.25487.3611.61854.6314 1.0379.7712l2.3133.7566c.34336.1129.71279.1196 1.06.0192l4.5925-1.4233c.7998-.2332 1.6501-.2288 2.4475.0124l1.8225.6484c.1505.031.3061.0286.4556-.0073s.2893-.1042.4094-.2002c.1537-.1221.2773-.2781.3609-.4557.0837-.1776.1253-.3722.1216-.5685z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-email: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m15.146.83336h-10.292c-1.1544.0013-2.2612.48464-3.0775 1.3439-.81629.85926-1.2754 2.0243-1.2767 3.2394v9.1667c.0013 1.2152.4604 2.3802 1.2767 3.2395.8163.8592 1.9231 1.3425 3.0775 1.3438h10.292c1.1544-.0013 2.2612-.4846 3.0775-1.3438.8163-.8593 1.2754-2.0243 1.2767-3.2395v-9.1666c-.0013-1.2152-.4604-2.3802-1.2767-3.2394-.8163-.85925-1.9231-1.3426-3.0775-1.3439zm0 2.5c.4801.0017.943.18879 1.3007.52584l-5.1458 5.4167c-.3495.35139-.81422.54746-1.2975.54746-.48332 0-.94804-.19607-1.2976-.54746l-5.1458-5.4167c.35613-.33553.81645-.52253 1.2944-.52584zm0 13.333h-10.292c-.52491 0-1.0283-.2194-1.3995-.6101-.37116-.3908-.57968-.9207-.57968-1.4732v-7.9025l4.1475 4.3658c.39089.4117.855.7382 1.3658.961.51081.2228 1.0583.3375 1.6112.3375.5529 0 1.1004-.1147 1.6113-.3375.5108-.2228.9749-.5493 1.3658-.961l4.1483-4.3658v7.9025c0 .5525-.2085 1.0824-.5797 1.4732-.3711.3907-.8746.6101-1.3995.6101z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-arrow-up: url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5527 7.72343L10.6257 7.71866L10.6359 3.27418L1.36009 12.5323L-0.000836289 11.1687L9.24981 1.93573L4.85983 1.92551L4.86459 -9.12876e-05L12.5711 0.0176185L12.5527 7.72343Z' fill='%23AE001B'/%3E%3C/svg%3E%0A"); + --icon-location-alt: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10 .75684c2.188 0 4.2865.8692 5.8336 2.4164 1.5472 1.5472 2.4164 3.6456 2.4164 5.8337 0 2.8178-1.5363 5.1241-3.1552 6.7787-.8088.8178-1.6913 1.5591-2.6363 2.2147l-.3905.2658-.1833.1219-.3456.22-.308.188-.3813.2218c-.2589.1477-.5518.2254-.8498.2254s-.5909-.0777-.8498-.2254l-.38128-.2218-.47667-.2934-.176-.1146-.37583-.2502c-1.0195-.6898-1.9691-1.4776-2.8352-2.3522-1.6188-1.6555-3.1552-3.9609-3.1552-6.7787 0-2.1881.86919-4.2865 2.4164-5.8337 1.5472-1.5472 3.6456-2.4164 5.8336-2.4164zm0 5.5c-.3611 0-.7187.07113-1.0524.20934-.33364.1382-.6368.34076-.89216.59612s-.45793.55852-.59613.89216c-.1382.33365-.20933.69125-.20933 1.0524 0 .3611.07113.7187.20933 1.0524.1382.3336.34077.6368.59613.8921.25536.2554.55852.4579.89216.5961.33368.1382.69128.2094 1.0524.2094.7293 0 1.4288-.2898 1.9445-.8055.5158-.5157.8055-1.2152.8055-1.9445 0-.72937-.2897-1.4288-.8055-1.9446-.5157-.51572-1.2152-.80546-1.9445-.80546z' fill='%23b2b7c9'/%3E%3C/svg%3E"); + --icon-clip: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m11.75 22c-1.7333 0-3.2083-.6083-4.425-1.825s-1.825-2.6917-1.825-4.425v-9.25c0-1.25.43767-2.3123 1.313-3.187s1.9377-1.3123 3.187-1.313c1.2493-.00067 2.312.437 3.188 1.313s1.3133 1.9383 1.312 3.187v6.5c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0967-.712-.288-.288-.4287-.288-.712v-6.5c-.0167-.7-.2623-1.2917-.737-1.775s-1.0623-.725-1.763-.725c-.70067 0-1.2923.24167-1.775.725s-.72433 1.075-.725 1.775v9.25c-.01667 1.1833.39167 2.1877 1.225 3.013s1.8417 1.2377 3.025 1.237c.2833 0 .55-.0293.8-.088s.4917-.1293.725-.212c.2667-.1.525-.0957.775.013s.425.296.525.562.096.5243-.012.775-.2957.4257-.563.525c-.35.1333-.7123.2377-1.087.313s-.7623.1127-1.163.112zm4.538-1.287c-.192-.192-.288-.4297-.288-.713v-2h-2c-.2833 0-.5207-.096-.712-.288s-.2873-.4293-.288-.712.0953-.52.288-.712.43-.288.712-.288h2v-2c0-.2833.096-.5207.288-.712s.4293-.2873.712-.288.5203.0953.713.288.2883.43.287.712v2h2c.2833 0 .521.096.713.288s.2877.4293.287.712-.0967.5203-.288.713-.4287.2883-.712.287h-2v2c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0957-.712-.287zm-7-4.001c-.192-.1907-.288-.428-.288-.712v-9c0-.28333.096-.52067.288-.712s.42933-.28733.712-.288c.2827-.00067.5203.09533.713.288s.2883.43.287.712v9c0 .2833-.096.521-.288.713s-.4293.2877-.712.287c-.28267-7e-4-.52-.0967-.712-.288zm7-6c-.192-.1913-.288-.4287-.288-.712v-3c0-.28333.096-.52067.288-.712s.4293-.28733.712-.288.5203.09533.713.288.2883.43.287.712v3c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0967-.712-.288z' fill='%23AE001B'/%3E%3C/svg%3E"); + --icon-close: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.28393 21.8529L21.8525 7.2843' stroke='%23737785' stroke-width='2' stroke-linecap='round' /%3E%3Cpath d='M21.8528 21.8529L7.28418 7.2843' stroke='%23737785' stroke-width='2' stroke-linecap='round' /%3E%3C/svg%3E"); + --icon-placemark: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4.9367 11.242c.34184.27009.69835.51702 1.0633.75794.36576-.23769.72054-.49062 1.0633-.75794.57144-.44926 1.1092-.93646 1.6094-1.458 1.153-1.2073 2.4042-2.9576 2.4042-4.9223 0-.63846-.13135-1.2707-.38649-1.8605-.25514-.58986-.62907-1.1258-1.1005-1.5773-.47144-.45146-1.0311-.80957-1.6471-1.0539-.61596-.24433-1.2761-.37008-1.9429-.37008-.66671 0-1.3269.12575-1.9429.37008-.61596.24433-1.1756.60244-1.6471 1.0539-.47143.45146-.8454.98742-1.1005 1.5773-.25514.58986-.38646 1.2221-.38646 1.8605 0 1.9647 1.2512 3.7144 2.4042 4.9223.50014.52172 1.0379 1.0086 1.6094 1.458zm1.0633-4.6246c-.48623 0-.95254-.18497-1.2964-.51422-.34382-.32924-.53697-.7758-.53697-1.2414s.19315-.91218.53697-1.2414c.34382-.32924.81013-.51421 1.2964-.51421.48623 0 .95254.18497 1.2964.51421.34382.32925.53697.77581.53697 1.2414s-.19315.91218-.53697 1.2414c-.34382.32925-.81013.51422-1.2964.51422z' fill='%2373798c' stroke-width='.92308'/%3E%3C/svg%3E"); + --icon-cookie: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 22c-1.3833 0-2.6833-.2627-3.9-.788-1.2167-.5254-2.275-1.2377-3.175-2.137-.9-.8994-1.6123-1.9577-2.137-3.175-.52467-1.2174-.78733-2.5174-.788-3.9 0-1.25.24167-2.475.725-3.675s1.1583-2.271 2.025-3.213 1.9083-1.7003 3.125-2.275c1.2167-.57467 2.55-.862 4-.862.35 0 .7083.01666 1.075.05.3667.03333.7417.09166 1.125.175-.15.75-.1 1.4583.15 2.125.25.66666.625 1.2207 1.125 1.662.5.44133 1.096.74566 1.788.913.692.16733 1.4043.12566 2.137-.125-.4333.98333-.3707 1.925.188 2.825.5587.90002 1.3877 1.3666 2.487 1.4.0167.1833.0293.354.038.512s.0127.329.012.513c0 1.3666-.2627 2.654-.788 3.862s-1.2377 2.2663-2.137 3.175c-.8993.9086-1.9577 1.6253-3.175 2.15-1.2173.5246-2.5173.7873-3.9.788zm-1.5-12c.4167 0 .771-.14566 1.063-.437.292-.29133.4377-.64566.437-1.063-7e-4-.41733-.1463-.77133-.437-1.062-.2907-.29067-.645-.43667-1.063-.438-.418-.00134-.772.14466-1.062.438-.29.29333-.436.64733-.438 1.062-.002.41467.144.769.438 1.063s.648.43963 1.062.437zm-2 5c.41667 0 .771-.1457 1.063-.437.292-.2914.4377-.6457.437-1.063-.00067-.4174-.14633-.7714-.437-1.062-.29067-.2907-.645-.4367-1.063-.438-.418-.0014-.772.1446-1.062.438-.29.2933-.436.6473-.438 1.062-.002.4146.144.769.438 1.063s.648.4396 1.062.437zm6.5 1c.2833 0 .521-.096.713-.288s.2877-.4294.287-.712c-7e-4-.2827-.0967-.52-.288-.712s-.4287-.288-.712-.288-.5207.096-.712.288-.2873.4293-.288.712c-7e-4.2826.0953.5203.288.713.1927.1926.43.2883.712.287zm-3 4c2.0333 0 3.8377-.7 5.413-2.1s2.4377-3.1834 2.587-5.35c-.8333-.3667-1.4877-.8667-1.963-1.5-.4753-.6334-.796-1.3417-.962-2.125-1.2833-.18333-2.3833-.73333-3.3-1.65-.9167-.91667-1.4833-2.0167-1.7-3.3-1.3333-.03334-2.504.20833-3.512.725-1.008.51666-1.85 1.1793-2.526 1.988-.676.80866-1.1843 1.6877-1.525 2.637s-.51133 1.841-.512 2.675c0 2.2166.77933 4.1043 2.338 5.663 1.5587 1.5586 3.446 2.3376 5.662 2.337z' fill='%23AE001B'/%3E%3C/svg%3E"); +} + +:root { + --color-text: #595757; + --color-grey: #eff1f8; + --color-grey-text: #676f8d; + --color-grey-light: #8a8f9f; + --color-grey-dark: #73798c; + --color-dark: #172d38; + --color-light: #fafafa; + --color-red: #ae001b; + --color-red-dark: #9a081e; + --gradient-grey: linear-gradient(180deg, #f5f5f9 0%, #f9f9f9 100%); +} + +:root { + --fs-h1-sm: clamp(30px, 17.5691px + 3.3149vw, 60px); + --fs-h2-sm: clamp(24px, 17.3702px + 1.768vw, 40px); + --fs-h3-sm: clamp(18px, 14.6851px + 0.884vw, 26px); + --fs-h1-lg: clamp(34px, 19.9116px + 3.7569vw, 68px); + --fs-h2-lg: clamp(24px, 10.7403px + 3.5359vw, 56px); + --fs-h3-lg: clamp(24px, 15.7127px + 2.2099vw, 44px); + --fs-title-lg: clamp(20px, 14.1989px + 1.547vw, 34px); + --fs-title-md: clamp(18px, 12.1989px + 1.547vw, 32px); + --fs-title-sm: clamp(16px, 12.6851px + 0.884vw, 24px); + --radius-lg: clamp(20px, 11.7127px + 2.2099vw, 40px); + --radius-md: clamp(15px, 8.7845px + 1.6575vw, 30px); + --radius-sm: clamp(15px, 12.9282px + 0.5525vw, 20px); + --space-section: clamp(40px, 6.8508px + 8.8398vw, 120px); +} + +@font-face { + font-family: "Onest"; + font-style: normal; + font-weight: 400; + src: url("../fonts/Onest-Regular.woff2") format("woff2"); +} +@font-face { + font-family: "Onest"; + font-style: normal; + font-weight: 500; + src: url("../fonts/Onest-Medium.woff2") format("woff2"); +} +@font-face { + font-family: "Onest"; + font-style: normal; + font-weight: 600; + src: url("../fonts/Onest-SemiBold.woff2") format("woff2"); +} +@font-face { + font-family: "Onest"; + font-style: normal; + font-weight: 700; + src: url("../fonts/Onest-Bold.woff2") format("woff2"); +} +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +:focus { + outline: none; +} + +:focus-visible { + outline: 2px solid var(--color-red); + outline-offset: -2px; +} + +::placeholder { + color: #8b8f9b; +} + +::selection { + background-color: var(--color-red); + color: #fff; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +html { + height: 100%; + scroll-behavior: smooth; +} + +body { + position: relative; + display: flex; + flex-direction: column; + min-width: 375px; + min-height: 100%; + overflow-x: hidden; + font-family: "Onest"; + font-size: 20px; + line-height: 1.5; + font-weight: normal; + letter-spacing: -0.01em; + color: var(--color-text); + text-decoration-skip-ink: none; + -webkit-tap-highlight-color: transparent; +} + +@media (max-width: 767.98px) { + body { + font-size: 18px; + } +} +@media (max-width: 575.98px) { + body { + font-size: 15px; + } +} +main { + display: flex; + flex-direction: column; + flex-grow: 1; +} + +fieldset { + border: none; +} + +input, +textarea { + font: inherit; + color: inherit; + border: none; + background: none; + box-shadow: none; + appearance: none; +} + +input::-webkit-contacts-auto-fill-button, input::-webkit-credentials-auto-fill-button, input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { + position: absolute; + visibility: hidden; +} +input::-webkit-contacts-auto-fill-button[type=number], input::-webkit-credentials-auto-fill-button[type=number], input::-webkit-outer-spin-button[type=number], input::-webkit-inner-spin-button[type=number] { + -moz-appearance: textfield; +} + +.inputs input, +.inputs textarea { + width: 100%; + outline: none; + font-size: 18px; + line-height: 1.3; + border-radius: 10px; + background-color: #fff; + border: 1px solid #efefef; +} +.inputs input:focus, +.inputs textarea:focus { + border-color: #ccc; +} +.inputs input { + height: 64px; + padding: 0 20px; +} +.inputs textarea { + width: 120px; + padding: 15px 20px; + resize: none; +} + +@media (max-width: 1023.98px) { + .inputs input { + height: 60px; + } +} +@media (max-width: 767.98px) { + .inputs input { + height: 56px; + } +} +@media (max-width: 575.98px) { + .inputs input, + .inputs textarea { + font-size: 15px; + } + .inputs input { + height: 50px; + } +} +.file-field { + position: relative; + display: inline-flex; +} +.file-field__label { + display: inline-flex; + align-items: center; + height: 45px; + padding-inline: 15px; + font-size: 16px; + line-height: 1.2; + color: var(--color-dark); + border-radius: 100px; + background-color: #ececf1; + cursor: pointer; + transition: background-color 0.25s ease; +} +.file-field__label::before { + content: ""; + display: block; + width: 24px; + aspect-ratio: 1; + flex-shrink: 0; + background: var(--icon-clip) center no-repeat; + background-size: contain; +} +.file-field__label:hover { + background-color: #cacdd9; +} +.file-field__text { + margin-left: 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.file-field__input { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + clip-path: inset(50%); +} +.file-field__input:focus-visible + .file-field__label { + outline: 2px solid var(--color-red); +} + +@media (max-width: 575.98px) { + .file-field__label { + height: 40px; + font-size: 13px; + } +} +button { + font: inherit; + border: none; + background: none; + appearance: none; +} + +img { + display: block; + max-width: 100%; + max-height: 100%; + height: auto; +} + +a { + text-decoration: none; +} + +ul, +ol { + list-style-type: none; +} + +h1 { + font-size: var(--fs-h1-sm); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h2 { + font-size: var(--fs-h2-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h3 { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h4 { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +.container { + max-width: 1360px; + width: 100%; + margin: 0 auto; + padding: 0 40px; +} + +@media (max-width: 1279.98px) { + .container { + padding: 0 20px; + } +} +@media (max-width: 575.98px) { + .container { + padding: 0 15px; + } +} +.section-title { + margin-bottom: 30px; + text-align: center; +} +.section-title span { + color: var(--color-red); +} +.section-descr { + margin-bottom: 50px; + text-align: center; +} + +@media (max-width: 1023.98px) { + .section-descr { + margin-bottom: 45px; + } +} +@media (max-width: 767.98px) { + .section-title { + margin-bottom: 25px; + text-align: center; + } + .section-descr { + margin-bottom: 40px; + text-align: center; + } +} +@media (max-width: 575.98px) { + .section-title { + margin-bottom: 15px; + text-align: center; + } + .section-descr { + margin-bottom: 25px; + text-align: center; + line-height: 1.3; + } +} +.page-title { + margin-bottom: 50px; + text-align: center; +} + +@media (max-width: 767.98px) { + .page-title { + margin-bottom: 40px; + } +} +@media (max-width: 575.98px) { + .page-title { + margin-bottom: 30px; + } +} +.btn { + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + border-radius: 100px; + font-size: 18px; + line-height: 1.2; + text-align: center; + overflow: hidden; + cursor: pointer; + color: var(--color-text); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; +} +.btn--lg { + height: 64px; + padding: 0 30px; + font-size: 20px; +} +.btn--md { + height: 58px; + padding: 0 25px; +} +.btn--sm { + height: 50px; + padding: 0 25px; +} +.btn--red { + color: #fff; + background-color: var(--color-red); +} +.btn--red:hover { + background-color: var(--color-red-dark); +} +.btn--transp-red { + color: var(--color-red); + border: 1px solid rgba(174, 0, 27, 0.5); +} +.btn--transp-red:hover { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); +} + +@media (max-width: 1023.98px) { + .btn--lg { + height: 60px; + } + .btn--md { + height: 54px; + } +} +@media (max-width: 767.98px) { + .btn { + font-size: 16px; + } + .btn--lg { + padding: 0 25px; + height: 56px; + font-size: 18px; + } + .btn--md { + height: 50px; + } +} +@media (max-width: 575.98px) { + .btn { + font-size: 15px; + } + .btn--lg { + height: 50px; + padding: 0 20px; + font-size: 16px; + } + .btn--md, .btn--sm { + height: 44px; + padding: 0 20px; + } +} +.breadcrumbs { + margin-top: 125px; + margin-bottom: clamp(20px, 1.3536px + 4.9724vw, 65px); +} +.breadcrumbs__inner { + overflow-x: auto; + scrollbar-width: none; +} +.breadcrumbs__inner::-webkit-scrollbar { + display: none; +} +.breadcrumbs__list { + display: flex; + width: max-content; +} +.breadcrumbs__item { + display: flex; + align-items: center; + font-size: 14px; + line-height: 1.2; +} +.breadcrumbs__item::after { + content: ""; + display: block; + width: 0.6em; + aspect-ratio: 1; + margin-inline: 0.5em; + transform: rotate(180deg); + mask: var(--icon-angle-left) center no-repeat; + -webkit-mask: var(--icon-angle-left) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: #c7c7c7; +} +.breadcrumbs__item.is-active::after { + display: none; +} +.breadcrumbs__item.is-active span { + color: var(--color-text); + cursor: default; +} +.breadcrumbs__link { + padding-block: 5px; + white-space: nowrap; + color: #a0a0a0; + transition: color 0.25s ease; +} +.breadcrumbs + section { + margin-top: 0; +} + +@media (max-width: 1279.98px) { + .breadcrumbs { + margin-top: clamp(65px, 48.4254px + 4.4199vw, 105px); + } + .breadcrumbs__inner { + margin-inline: -20px; + padding-inline: 20px; + } +} +@media (max-width: 575.98px) { + .breadcrumbs__inner { + margin-inline: -15px; + padding-inline: 15px; + } + .breadcrumbs__item { + font-size: 12px; + } +} +@media (hover: hover) { + .breadcrumbs__link[href]:hover { + color: var(--color-text); + } +} +.single-article .breadcrumbs, +.single-news .breadcrumbs { + margin-bottom: 0; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + white-space: nowrap; + border: 0; +} + +.swiper-slide { + min-width: 0; + height: auto; +} +.swiper-pagination { + position: relative; + display: flex; + max-width: 100%; + width: min-content; + height: 10px; + z-index: 2; + column-gap: 12px; + margin: 40px auto 0; + overflow: hidden; +} +.swiper-pagination-item { + height: 100%; + aspect-ratio: 1; + cursor: pointer; + border-radius: 50%; + background-color: #d9d9d9; + transition: background-color 0.25s ease; +} +.swiper-pagination-item.is-active { + background-color: var(--color-red); +} +.swiper-pagination-lock { + display: none; +} + +@media (max-width: 1279.98px) { + .swiper:not(.swiper-fade, .swiper-full) { + margin: 0 -20px; + padding: 0 20px; + } + .swiper:not(.swiper-fade, .swiper-full) .swiper-wrapper.is-grid { + column-gap: 20px; + } +} +@media (max-width: 575.98px) { + .swiper:not(.swiper-fade, .swiper-full) { + margin: 0 -15px; + padding: 0 15px; + } + .swiper:not(.swiper-fade, .swiper-full) .swiper-wrapper.is-grid { + column-gap: 15px; + } + .swiper-pagination { + margin-top: 30px; + } +} +.fancybox__slide.has-html { + padding: 15px; +} + +.form-fancybox .f-html { + opacity: 0; + transform: translate3d(0, -50%, 0); + transition: transform 0.3s ease, opacity 0.3s ease; +} +.form-fancybox .f-html.is-visible { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.form-fancybox .f-html.is-hidden { + opacity: 0; + transform: translate3d(0, -50%, 0); +} +.form-fancybox .f-html.is-replacing { + opacity: 0; + transform: translate3d(0, 0, 0); + transition: none; +} +.form-fancybox .f-html.is-replaced:not(.is-hidden) { + transform: translate3d(0, 0, 0); +} +.form-fancybox .f-html.is-replaced.is-hidden { + opacity: 0; + transform: translate3d(0, -50%, 0); +} + +.popups { + display: none; +} + +.popup { + position: relative; + max-width: 520px; + width: 100%; + padding-top: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-bottom: clamp(30px, 17.5691px + 3.3149vw, 60px); + padding-inline: clamp(20px, 9.6409px + 2.7624vw, 45px); + cursor: default; + border-radius: var(--radius-md); +} +.popup-title { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + text-align: center; + color: var(--color-dark); +} +.popup-message__info { + margin-top: clamp(15px, 10.8564px + 1.105vw, 25px); + line-height: 1.3; + text-align: center; + color: var(--color-text); +} +.popup-message__ok { + margin-top: clamp(25px, 18.7845px + 1.6575vw, 40px); + text-align: center; +} +.popup-message__ok-btn { + width: 165px; +} +.popup-close { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + top: 15px; + right: 15px; + cursor: pointer; + mask: var(--icon-close) center no-repeat; + -webkit-mask: var(--icon-close) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-dark); + transition: background-color 0.25s ease; +} +.popup-close:hover { + background-color: var(--color-red); +} + +@media (max-width: 1023.98px) { + .popup { + max-width: 480px; + } +} +@media (max-width: 767.98px) { + .popup-close { + width: 24px; + height: 24px; + top: 10px; + right: 10px; + } +} +@media (max-width: 575.98px) { + .popup-message__ok-btn { + width: 140px; + } +} +.header-main { + position: fixed; + top: 20px; + left: 0; + right: 0; + z-index: 20; + padding-right: var(--f-scrollbar-compensate, 0px); +} +.header-main__body { + display: grid; + grid-auto-flow: column; + align-items: center; + justify-content: space-between; + column-gap: 25px; + padding: 10px 10px 10px 20px; + border-radius: 100px; + border: 1px solid #f0f0f0; + background-color: #fff; +} +.header-logo { + flex-shrink: 0; +} +.header-logo__link { + display: block; + padding-top: 5px; +} +.header-logo__link img { + width: 122px; +} +.header-menu__item { + position: relative; + min-width: 0; + font-size: 18px; + line-height: 1.2; +} +.header-menu__link { + display: block; + padding: 10px 0; + color: var(--color-text); + transition: color 0.25s ease; +} +.header-menu__link:not([href]) { + cursor: default; +} +.header-menu__submenu-toggle { + display: none; +} +.header-menu__submenu { + opacity: 0; + visibility: hidden; +} +.header-menu__submenu li { + font-size: 16px; +} +.header-menu__submenu a { + padding: 8px 0; +} +.header-buttons { + display: grid; + grid-auto-flow: column; + align-items: center; + column-gap: 30px; +} +.header-buttons__login-btn { + padding: 10px 0; + border-radius: 0; +} +.header-buttons__login-btn::before { + content: ""; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: background-color 0.25s ease; +} +.header-buttons__login-btn:hover { + color: var(--color-red); +} +.header-buttons__login-btn:hover::before { + background-color: var(--color-red); +} +.header-buttons__download-btn { + height: 50px; + padding: 0 25px; +} +.header-buttons__menu-btn { + display: none; + align-content: center; + row-gap: 13%; + width: 44px; + aspect-ratio: 1; + border-radius: 50%; + border: 1px solid #eee; + transition: row-gap 0.25s ease; +} +.header-buttons__menu-btn span, .header-buttons__menu-btn::before, .header-buttons__menu-btn::after { + content: ""; + display: block; + width: 55%; + height: 1.5px; + margin: 0 auto; + border-radius: 10px; + transform: translateY(50%); + background-color: #535369; + transition: all 0.25s ease; +} +.header-buttons__menu-btn::after { + transform: translateY(50%) scaleX(65%); + transform-origin: 0 50%; +} +.header-buttons__menu-btn.is-active { + row-gap: 0; +} +.header-buttons__menu-btn.is-active span { + width: 0; + background-color: transparent; +} +.header-buttons__menu-btn.is-active::before { + transform: rotate(45deg) translate(1px, 1px); +} +.header-buttons__menu-btn.is-active::after { + transform: rotate(-45deg) translate(1px, -1px); + transform-origin: 50% 50%; +} +.header-dropdown { + position: fixed; + display: none; + align-items: unset; + height: 100%; + top: 0; + left: 0; + right: 0; + z-index: 10; + padding: 120px 0 40px; + overflow-x: hidden; + overflow-y: auto; + transform: translateY(-100%); + background-color: #fff; + transition: transform 0.4s ease-in-out; +} +.header-dropdown.is-active { + transform: translateY(0); +} +.header-login__btn { + width: 100%; + color: var(--color-grey-text); + background-color: #f4f5fc; +} +.header-login__btn::before { + content: ""; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); + transition: background-color 0.25s ease; +} +.header-login__btn:hover { + background-color: #ebecf2; +} + +@media (min-width: 1024px) { + .header-menu__list { + display: grid; + align-items: center; + grid-auto-flow: column; + column-gap: 30px; + } + .header-menu__list > li.has-children::after { + content: ""; + position: absolute; + display: block; + width: 10px; + height: 10px; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + pointer-events: none; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: background-color 0.25s ease; + } + .header-menu__list > li.has-children > a { + padding-right: 14px; + } + .header-menu__list > li > a { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .header-menu__list > li:hover::after { + background-color: var(--color-red); + } + .header-menu__list > li:hover > a { + color: var(--color-red); + } + .header-menu__list > li:hover > ul { + visibility: visible; + opacity: 1; + } + .header-menu__submenu { + position: absolute; + min-width: 200px; + max-width: 265px; + width: max-content; + top: calc(100% + 22px); + left: 0; + padding: 18px 30px; + z-index: 2; + border-radius: 20px; + background-color: var(--color-grey); + transition: visibility 0.25s ease, opacity 0.25s ease; + transition-delay: 0.02s; + } + .header-menu__submenu::before { + content: ""; + position: absolute; + display: block; + width: 100%; + height: 22px; + bottom: 100%; + left: 0; + } + .header-menu__submenu a { + color: var(--color-grey-dark); + } + .header-menu__submenu a:hover { + color: var(--color-grey-light); + } +} +@media (max-width: 1279.98px) { + .header-main { + display: flex; + height: clamp(50px, 41.7127px + 2.2099vw, 70px); + top: 0; + border-bottom: 1px solid #efefef; + background-color: #fff; + } + .header-main__body { + height: 100%; + padding: 0; + border-radius: 0; + background: none; + border: none; + } + .header-logo__link { + padding-left: 0; + } +} +@media (max-width: 1023.98px) { + .header-main .header-menu { + display: none; + } + .header-buttons { + column-gap: 10px; + } + .header-buttons__login-btn { + display: none; + } + .header-buttons__download-btn { + height: 44px; + } + .header-buttons__menu-btn { + display: grid; + } + .header-dropdown { + display: block; + } + .header-menu { + margin-top: 40px; + } + .header-menu__list > li.has-children { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + } + .header-menu__list > li.is-open > a { + color: var(--color-red); + } + .header-menu__list > li.is-open > button { + transform: rotate(-180deg); + background-color: var(--color-red); + } + .header-menu__list > li.is-open > ul { + opacity: 1; + visibility: visible; + } + .header-menu__submenu-toggle { + display: block; + width: 32px; + height: 32px; + margin: auto 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: 10px; + -webkit-mask-size: 10px; + background-color: var(--color-text); + transition: transform 0.25s ease, background-color 0.25s ease; + } + .header-menu__submenu { + grid-column: 1/-1; + height: 0; + overflow: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + } + .header-menu__submenu::before, .header-menu__submenu::after { + content: ""; + display: block; + height: 2px; + } +} +@media (max-width: 767.98px) { + .header-buttons__menu-btn { + width: 40px; + } + .header-buttons__download-btn { + height: 40px; + padding: 0 20px; + } + .header-dropdown { + padding: 110px 0 35px; + } + .header-menu { + margin-top: 35px; + } +} +@media (max-width: 575.98px) { + .header-logo__link img { + width: 100px; + } + .header-buttons { + column-gap: 8px; + } + .header-buttons__menu-btn { + width: 36px; + } + .header-buttons__download-btn { + height: 36px; + padding: 0 15px; + font-size: 14px; + } + .header-dropdown { + padding: 95px 0 30px; + } + .header-menu { + margin-top: 30px; + } + .header-menu__item { + font-size: 16px; + } + .header-menu__submenu li { + font-size: 15px; + } +} +.hero { + overflow: hidden; +} +.hero-main { + background: linear-gradient(145deg, #f5f5f9 0%, #f5f5f9 50%, #fff5e7 100%); +} +.hero-main__body { + position: relative; + display: grid; + grid-template-columns: clamp(450px, 150px + 39.0625vw, 650px) auto; + column-gap: 40px; + padding: 160px 0 50px; + z-index: 1; +} +.hero-main__left { + position: relative; + min-height: clamp(550px, 150px + 39.0625vw, 650px); +} +.hero-main__left::before { + content: ""; + position: absolute; + display: block; + width: 80%; + height: 110%; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + z-index: -1; + filter: blur(8px); + background: url(../img/bg/logo-bg.svg) center no-repeat; + background-size: contain; +} +.hero-title { + font-size: var(--fs-h1-lg); +} +.hero-title span { + color: var(--color-red); +} +.hero-descr { + max-width: 90%; + margin-top: 20px; +} +.hero-descr span { + display: inline-block; +} +.hero-buttons { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 12px; + row-gap: 8px; + margin-top: 50px; +} +.hero-qrcode { + display: grid; + grid-auto-flow: column; + justify-content: start; + align-items: center; + column-gap: 20px; + margin-top: 50px; +} +.hero-qrcode__img { + display: flex; + width: clamp(90px, 10px + 7.8125vw, 110px); + aspect-ratio: 1; + padding: 8px; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; +} +.hero-qrcode__img img { + width: 100%; +} +.hero-qrcode__info { + font-size: 14px; + line-height: 1.2; + color: #5d5e5f; +} +.hero-stores { + display: grid; + grid-auto-flow: column; + justify-content: start; + align-items: center; + column-gap: 20px; + margin-top: 50px; +} +.hero-store { + position: relative; + display: flex; + align-items: center; + padding-right: 20px; +} +.hero-store::after { + content: ""; + position: absolute; + display: block; + width: 1px; + height: 10px; + right: -1px; + top: 0; + bottom: 0; + margin: auto 0; + background-color: #dedede; +} +.hero-store:last-child { + padding-right: 0; +} +.hero-store:last-child::after { + display: none; +} +.hero-store:hover .hero-store__name { + color: var(--color-text); +} +.hero-store__icon { + display: flex; + width: 24px; + aspect-ratio: 1; +} +.hero-store__name { + margin-left: 5px; + margin: 2px 0 0 5px; + font-size: 14px; + line-height: 1.2; + font-weight: 500; + color: #000; + transition: color 0.25s ease; +} +.hero-img { + position: absolute; + width: clamp(375px, 182.3204px + 51.3812vw, 840px); + right: 0; + bottom: 0; + z-index: -1; + user-select: none; + -webkit-user-select: none; +} +.hero-features { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: flex-end; + height: 100%; +} +.hero-feature { + display: flex; + align-items: center; + height: 64px; + padding: 10px 20px 10px 10px; + border-radius: 100px; + border: 1px solid #ececec; + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + background: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 100%); +} +.hero-feature:nth-child(1) { + margin: 0 0 40% 40px; +} +.hero-feature:nth-child(3) { + margin: 40px 0 14% auto; +} +.hero-feature__icon { + display: flex; + flex-shrink: 0; + width: 36px; + aspect-ratio: 1; +} +.hero-feature__img { + display: flex; + flex-shrink: 0; + height: 100%; +} +.hero-feature__img img { + width: auto; +} +.hero-feature__title { + margin-left: 10px; + font-weight: 500; + font-size: 18px; + line-height: 1.2; + color: rgba(26, 20, 20, 0.8); +} +.hero-scroller { + overflow: hidden; + background-color: var(--color-dark); +} +.hero-scroller__track { + display: flex; + align-items: center; + width: max-content; + height: 54px; +} +.hero-scroller__group { + display: flex; + white-space: nowrap; + will-change: transform; +} +.hero-scroller__item { + position: relative; + padding-right: 40px; + margin-right: 40px; + font-weight: 600; + font-size: 18px; + line-height: 1.2; + color: #fff; +} +.hero-scroller__item::after { + content: ""; + position: absolute; + display: block; + width: 6px; + height: 6px; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + border-radius: 50%; + transform: translateX(50%); + background-color: var(--color-red); +} +.hero-footer .hero-stores { + display: none; +} + +@media (max-width: 1279.98px) { + .hero-main__body { + padding-top: clamp(75px, 48.0663px + 7.1823vw, 140px); + } +} +@media (max-width: 1023.98px) { + .hero-main__body { + padding-bottom: clamp(70px, -20px + 11.7188vw, 100px); + } + .hero-main__left { + min-height: clamp(420px, 240px + 23.4375vw, 480px); + } + .hero-main .hero-stores { + display: none; + } + .hero-buttons { + grid-auto-flow: row; + justify-content: unset; + max-width: 280px; + } + .hero-qrcode { + display: none; + } + .hero-feature { + height: 50px; + } + .hero-feature:nth-child(1) { + margin-left: 0; + } + .hero-feature:nth-child(2) { + margin-left: -40px; + } + .hero-feature:nth-child(3) { + margin-bottom: 0; + } + .hero-feature__icon { + width: 28px; + } + .hero-feature__title { + font-size: 16px; + } + .hero-scroller__track { + height: 48px; + } + .hero-scroller__item { + padding-right: 35px; + margin-right: 35px; + font-size: 16px; + } + .hero-footer .hero-stores { + display: grid; + } + .hero-stores { + justify-content: center; + } +} +@media (max-width: 767.98px) { + .hero-main__body { + grid-template-columns: 1fr; + padding-bottom: 0; + } + .hero-main__left { + min-height: unset; + } + .hero-main__left::before { + display: none; + } + .hero-main__right { + position: relative; + display: flex; + justify-content: center; + margin-top: 40px; + } + .hero-buttons { + max-width: unset; + margin-top: 30px; + } + .hero-features { + position: absolute; + justify-content: center; + width: clamp(345px, 216.1832px + 34.3511vw, 480px); + margin: 0 auto; + top: 0; + left: 0; + right: 0; + } + .hero-feature { + padding: 8px 12px 8px 8px; + height: 44px; + } + .hero-feature:nth-child(1) { + margin: 0 0 25% 60px; + } + .hero-feature:nth-child(2) { + margin-left: 0; + } + .hero-feature__icon { + width: 24px; + } + .hero-feature__title { + margin-left: 8px; + font-size: 14px; + } + .hero-img { + position: relative; + } + .hero-scroller__track { + height: 42px; + } + .hero-scroller__item { + padding-right: 30px; + margin-right: 30px; + font-size: 14px; + } + .hero-scroller__item::after { + width: 4px; + height: 4px; + } + .hero-stores { + column-gap: 15px; + margin-top: 40px; + } + .hero-store { + padding-right: 15px; + } + .hero-store__icon { + width: 20px; + } + .hero-store__name { + font-size: 12px; + } +} +@media (max-width: 575.98px) { + .hero-img { + margin: 0 -15px; + } + .hero-feature { + padding: 6px 12px 6px 6px; + height: 36px; + } + .hero-feature__icon { + width: 20px; + } + .hero-feature__title { + font-size: 12px; + } + .hero-scroller__track { + height: 36px; + } + .hero-scroller__item { + padding-right: 25px; + margin-right: 25px; + font-size: 12px; + } + .hero-stores { + column-gap: 12px; + margin-top: 30px; + } + .hero-store { + padding-right: 12px; + } + .hero-store__icon { + width: 16px; + } + .hero-store__name { + margin-left: 4px; + font-size: 10px; + } +} +.services { + margin-top: 70px; +} +.services-body { + display: flex; + flex-direction: column; +} +.services-title { + order: 2; + margin-top: 30px; + font: inherit; + text-align: center; + color: var(--color-text); +} +.services-grid { + --item-size: 70px; + --gap-min: 20px; + --gap-max: 70px; + display: flex; + justify-content: space-between; + width: min(100%, var(--items) * var(--item-size) + (var(--items) - 1) * var(--gap-max)); + margin: 0 auto; + gap: var(--gap-min); +} +.services-item { + display: flex; + width: var(--item-size); + aspect-ratio: 1; +} + +@media (max-width: 1023.98px) { + .services { + margin-top: 60px; + } +} +@media (max-width: 767.98px) { + .services { + margin-top: 50px; + } + .services-grid { + --item-size: 60px; + flex-wrap: wrap; + justify-content: center; + max-width: calc(var(--item-size) * 5 + var(--gap-min) * 4); + width: auto; + } +} +@media (max-width: 575.98px) { + .services { + margin-top: 40px; + } + .services-title { + margin-top: 25px; + } + .services-grid { + --item-size: 50px; + --gap-min: 8px; + } +} +.work--block { + margin-top: var(--space-section); +} +.work-grid { + display: grid; + row-gap: 30px; +} +.work-item { + display: grid; + grid-template-columns: 1.1fr 1fr; + column-gap: 40px; + padding-top: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-bottom: clamp(25px, 8.4254px + 4.4199vw, 65px); + padding-inline: clamp(20px, 1.3536px + 4.9724vw, 65px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); +} +.work-item__title { + font-size: var(--fs-h3-lg); + font-weight: 700; + line-height: 1.1; + color: var(--color-dark); +} +.work-item__list { + display: grid; + row-gap: 0.6em; + margin-top: 30px; + line-height: 1.3; +} +.work-item__li { + position: relative; + padding-left: 1.5em; +} +.work-item__li::before { + content: ""; + position: absolute; + display: block; + width: 1em; + aspect-ratio: 1; + top: 0.15em; + left: 0; + background: var(--icon-checkmark) center no-repeat; + background-size: contain; +} +.work-item__buttons { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 12px; + row-gap: 8px; + margin-top: 40px; +} +.work-item__img { + aspect-ratio: 1024/680; + align-self: center; + margin: -10px 0 -20px; +} +.work-item__img img { + width: 100%; + height: 100%; + object-fit: contain; +} + +@media (max-width: 1023.98px) { + .work-grid { + row-gap: 20px; + } + .work-item { + grid-template-columns: 1fr 1.1fr; + } + .work-item__list { + margin-top: 20px; + } + .work-item__buttons { + grid-auto-flow: row; + justify-content: unset; + max-width: 280px; + margin-top: 30px; + } + .work-item__img { + margin: 0; + } +} +@media (max-width: 767.98px) { + .work-item { + grid-template-columns: 1fr; + } + .work-item__buttons { + max-width: unset; + } + .work-item__img { + margin-top: 40px; + } +} +@media (max-width: 575.98px) { + .work-grid { + row-gap: 10px; + } + .work-item__img { + margin-top: 30px; + } +} +.advantages { + margin-top: var(--space-section); +} +.advantages-slider { + counter-reset: num; +} +.advantages-slider__wrapper.is-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: 1fr; + gap: 20px; +} +.advantages-item { + padding: 30px 30px 35px; + counter-increment: num; + border-radius: var(--radius-lg); + background: var(--gradient-grey); +} +.advantages-item::before { + content: counter(num, decimal-leading-zero); + position: absolute; + display: block; + top: 30px; + right: 30px; + font-size: 0.9em; + line-height: 1; + color: #b6b6c5; +} +.advantages-item__icon { + display: flex; + width: 50px; + aspect-ratio: 1; +} +.advantages-item__title { + min-height: 2.2em; + margin-top: 25px; + font-size: var(--fs-h3-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-dark); +} +.advantages-item__descr { + margin-top: 15px; + line-height: 1.4; +} + +@media (max-width: 1023.98px) { + .advantages-slider__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: calc((100% - 25px) / 2.25); + } +} +@media (max-width: 767.98px) { + .advantages-slider__wrapper.is-grid { + grid-auto-columns: calc((100% - 3.75px) / 1.25); + } + .advantages-item__icon { + width: 44px; + } + .advantages-item__title { + font-size: var(--fs-title-sm); + } + .advantages-item__descr { + line-height: 1.3; + } +} +@media (max-width: 575.98px) { + .advantages-item { + padding: 20px; + } + .advantages-item::before { + top: 20px; + right: 20px; + } + .advantages-item__icon { + width: 40px; + } + .advantages-item__title { + margin-top: 15px; + } + .advantages-item__descr { + margin-top: 10px; + } +} +.scheme { + margin-top: var(--space-section); + padding-top: clamp(40px, 23.4254px + 4.4199vw, 80px); + padding-bottom: clamp(40px, 15.1381px + 6.6298vw, 100px); + background-color: var(--color-dark); +} +.scheme-title, .scheme-descr { + color: #fff; +} +.scheme-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; + counter-reset: num; +} +.scheme-item { + padding: 30px 25px; + counter-increment: num; + border-radius: var(--radius-md); + background-color: #fff; +} +.scheme-item__top, .scheme-item__img { + display: flex; + aspect-ratio: 1.3/1; +} +.scheme-item__top { + flex-direction: column; + min-height: 0; +} +.scheme-item__img { + align-items: flex-start; + justify-content: center; +} +.scheme-item__img img { + width: var(--img-width); +} +.scheme-item__qrcode { + display: flex; + align-self: flex-start; + min-height: 0; + padding: 8px; + aspect-ratio: 1; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; +} +.scheme-item__qrcode img { + width: 100%; +} +.scheme-item__login { + margin-top: 12px; +} +.scheme-item__login-btn { + width: 100%; + height: 44px; + font-size: 16px; + color: var(--color-grey-text); + border: 1px solid #ececec; +} +.scheme-item__login-btn::before { + content: ""; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); +} +.scheme-item__login-btn:hover { + background-color: #f4f5fc; + border-color: #f4f5fc; +} +.scheme-item__title { + margin-top: 20px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-dark); +} +.scheme-item__title::before { + content: counter(num) "."; + display: block; + margin-bottom: 20px; + color: var(--color-red); +} +.scheme-item__descr { + margin-top: 20px; + font-size: 18px; + line-height: 1.3; +} + +@media (max-width: 1023.98px) { + .scheme-grid { + grid-template-columns: 1fr 1fr; + } + .scheme-item__top, .scheme-item__img { + aspect-ratio: 3.5/1; + } + .scheme-item__top { + flex-direction: row; + align-items: flex-end; + column-gap: 20px; + } + .scheme-item__qrcode { + height: 100%; + } + .scheme-item__login { + flex: 1; + margin-top: 0; + } + .scheme-item__img img { + height: 100%; + } + .scheme-item__title br { + display: none; + } +} +@media (max-width: 767.98px) { + .scheme-grid { + grid-template-columns: 1fr; + } + .scheme-item { + display: grid; + grid-template-columns: 1.8fr 1fr; + column-gap: 30px; + } + .scheme-item:first-child { + grid-template-columns: 1fr; + } + .scheme-item__top, .scheme-item__img { + aspect-ratio: unset; + } + .scheme-item__top { + order: 3; + margin-top: 30px; + } + .scheme-item__qrcode { + display: none; + } + .scheme-item__img { + grid-column: 2/3; + grid-row: 1/3; + } + .scheme-item__img img { + width: 100%; + height: auto; + } + .scheme-item__title { + margin-top: 0; + } +} +@media (max-width: 575.98px) { + .scheme-grid { + row-gap: 8px; + } + .scheme-item { + column-gap: 15px; + padding: 20px; + } + .scheme-item__top { + margin-top: 15px; + } + .scheme-item__login-btn { + height: 40px; + font-size: 15px; + } + .scheme-item__title::before { + margin-bottom: 10px; + } + .scheme-item__descr { + margin-top: 10px; + font-size: 15px; + } +} +.income { + margin-top: var(--space-section); +} +.income-calc { + display: grid; + grid-template-columns: 1fr 1.15fr; + column-gap: clamp(40px, -200px + 23.4375vw, 100px); + line-height: 1.2; +} +.income-calc--single .income-calc__top { + display: none; +} +.income-calc__top { + display: flex; + justify-content: center; + grid-column: 1/-1; + margin-bottom: 40px; +} +.income-calc__types { + display: grid; + grid-auto-flow: column; + column-gap: 6px; + padding: 6px; + border-radius: 100px; + border: 1px solid #ebebf1; +} +.income-calc__type { + position: relative; +} +.income-calc__type--taxi span::before { + mask-image: var(--icon-car); + -webkit-mask-image: var(--icon-car); +} +.income-calc__type--courier span::before { + mask-image: var(--icon-bike); + -webkit-mask-image: var(--icon-bike); +} +.income-calc__type--cargo span::before { + mask-image: var(--icon-truck); + -webkit-mask-image: var(--icon-truck); +} +.income-calc__type-input { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; + cursor: pointer; + border-radius: 100px; +} +.income-calc__type-input:checked + span { + color: #fff; + background-color: var(--color-dark); +} +.income-calc__type-input:checked + span::before { + background-color: #fff; +} +.income-calc__type-label { + display: flex; + align-items: center; + padding: 8px 15px; + font-size: 18px; + font-weight: 500; + border-radius: 100px; + transition: color 0.25s ease, background-color 0.25s ease; +} +.income-calc__type-label::before { + content: ""; + display: block; + width: 24px; + aspect-ratio: 1; + margin-right: 6px; + mask-position: center; + -webkit-mask-position: center; + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: #cacada; + transition: background-color 0.25s ease; +} +.income-calc__controls { + min-width: 0; +} +.income-calc__range { + margin-bottom: 40px; +} +.income-calc__range-top { + display: flex; + align-items: center; + justify-content: space-between; +} +.income-calc__range-value { + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-red); +} +.income-calc__range-number { + font-size: 1.5em; +} +.income-calc__range-input { + --range-track-height: 3px; + --range-thumb-width: 32px; + --range-thumb-height: 22px; + --range-progress: 0%; + display: block; + width: 100%; + height: var(--range-thumb-height); + margin-top: 12px; + cursor: pointer; +} +.income-calc__range-input::-webkit-slider-runnable-track { + height: var(--range-track-height); + border-radius: 100px; + background: linear-gradient(to right, var(--color-red) 0%, var(--color-red) var(--range-progress), #dedede var(--range-progress), #dedede 100%); +} +.income-calc__range-input::-webkit-slider-thumb { + width: var(--range-thumb-width); + height: var(--range-thumb-height); + margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) / 2); + border: 3px solid #fff; + border-radius: 100px; + background: var(--color-red); + box-shadow: 10px 4px 24px 0 #c4c4d7; + box-sizing: border-box; + appearance: none; +} +.income-calc__range-input::-moz-range-track { + height: var(--range-track-height); + border-radius: 100px; + background: #dedede; +} +.income-calc__range-input::-moz-range-progress { + height: var(--range-track-height); + border-radius: 100px; + background: var(--color-red); +} +.income-calc__range-input::-moz-range-thumb { + width: var(--range-thumb-width); + height: var(--range-thumb-height); + border: 3px solid #fff; + border-radius: 100px; + background: var(--color-red); + box-shadow: 10px 4px 24px 0 #c4c4d7; + box-sizing: border-box; + cursor: pointer; +} +.income-calc__range-input:focus { + outline: none; +} +.income-calc__range-input:focus-visible::-webkit-slider-thumb { + outline: 2px solid var(--color-red); +} +.income-calc__range-input:focus-visible::-moz-range-thumb { + outline: 2px solid var(--color-red); +} +.income-calc__radios { + min-width: 0; +} +.income-calc__radios-label { + margin-bottom: 20px; +} +.income-calc__radios-wrapper { + overflow-x: auto; + scrollbar-width: none; +} +.income-calc__radios-wrapper::-webkit-scrollbar { + display: none; +} +.income-calc__radios-inner { + display: grid; + justify-content: start; + grid-auto-flow: column; + column-gap: 6px; + width: max-content; +} +.income-calc__radio { + position: relative; + white-space: nowrap; +} +.income-calc__radio-input { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; + cursor: pointer; + border-radius: 100px; +} +.income-calc__radio-input:checked + span { + color: #fff; + background-color: var(--color-dark); +} +.income-calc__radio-input:checked + span::before { + background-color: #fff; +} +.income-calc__radio-label { + display: flex; + align-items: center; + padding: 10px 12px; + font-weight: 500; + font-size: 18px; + border-radius: 100px; + border: 1px solid #e2e2e2; + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; +} +.income-result { + padding: 30px; + overflow: hidden; + border-radius: var(--radius-md); + color: #fff; + background-color: var(--color-red); +} +.income-result__main { + min-width: 0; +} +.income-result__total { + display: block; + margin-top: 25px; + font-size: var(--fs-h1-sm); + font-weight: 600; + line-height: 1.1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.income-result__note { + margin-top: 5px; + font-size: 18px; +} +.income-result__stats { + display: grid; + grid-template-columns: 1.35fr 1.5fr 1fr; + column-gap: 20px; + margin-top: 25px; + padding-top: 20px; + border-top: 1px solid #b9354a; +} +.income-result__stat { + min-width: 0; +} +.income-result__stat-label { + font-size: 16px; + opacity: 0.6; +} +.income-result__stat-value { + display: block; + margin-top: 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: var(--fs-title-md); + font-weight: 600; + line-height: 1.1; +} +.income-footnote { + margin-top: 40px; + font-size: 13px; + line-height: 1.2; + text-align: center; +} + +@media (max-width: 1279.98px) { + .income-calc__radio-label { + font-size: 16px; + } +} +@media (max-width: 1023.98px) { + .income-calc { + grid-template-columns: 1fr; + } + .income-calc__range { + margin-bottom: 30px; + } + .income-calc__radios-wrapper { + margin-inline: -20px; + padding-inline: 20px; + } + .income-result { + display: grid; + align-items: center; + grid-template-columns: 1fr 1.5fr; + column-gap: 30px; + margin-top: 45px; + } + .income-result__total { + margin-top: 10px; + } + .income-result__stats { + margin-top: 0; + padding-top: 0; + border: none; + } +} +@media (max-width: 767.98px) { + .income-descr br { + display: none; + } + .income-calc__type-label { + font-size: 16px; + } + .income-calc__type-label::before { + width: 22px; + } + .income-result { + grid-template-columns: 1fr; + } + .income-result__stats { + margin-top: 20px; + padding-top: 15px; + border-top: 1px solid #b9354a; + } +} +@media (max-width: 575.98px) { + .income-calc__top { + margin-bottom: 30px; + } + .income-calc__types { + column-gap: 0; + } + .income-calc__type-label { + padding: 8px 10px; + font-size: 14px; + } + .income-calc__type-label::before { + width: 18px; + } + .income-calc__range { + margin-bottom: 20px; + } + .income-calc__range-input { + margin-top: 6px; + } + .income-calc__radios-label { + margin-bottom: 15px; + } + .income-calc__radios-wrapper { + margin-inline: -15px; + padding-inline: 15px; + } + .income-calc__radio-label { + font-size: 14px; + } + .income-result { + margin-top: 35px; + padding: 20px; + } + .income-result__note { + font-size: 15px; + } + .income-result__stats { + margin-top: 17px; + } + .income-result__stat-label { + font-size: 15px; + } + .income-footnote { + margin-top: 30px; + font-size: 12px; + } +} +.socials { + margin-top: var(--space-section); + padding-top: clamp(40px, 23.4254px + 4.4199vw, 80px); + background: var(--gradient-grey); +} +.socials-title { + text-align: center; +} +.socials-body { + display: grid; + grid-template-columns: 1.15fr 1fr; + column-gap: clamp(40px, -72.5px + 14.6484vw, 115px); + margin-top: clamp(25px, 14.6409px + 2.7624vw, 50px); +} +.socials-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; + margin-top: clamp(25px, -75px + 9.7656vw, 50px); +} +.socials-item { + display: grid; + align-items: center; + grid-template-columns: auto 1fr; + column-gap: 25px; + padding: 15px 30px; + border-radius: 15px; + color: var(--main-color); + background-color: #fff; + transition: color 0.25s ease, background-color 0.25s ease; +} +.socials-item:hover { + color: #fff; + background-color: var(--main-color); +} +.socials-item:hover .socials-item__icon::before, .socials-item:hover .socials-item__icon::after { + background-color: #fff; +} +.socials-item__icon { + display: flex; + align-items: flex-start; +} +.socials-item__icon::before { + content: ""; + display: block; + width: 32px; + height: 32px; + background-color: var(--icon-color); + mask: var(--social-icon) center no-repeat; + -webkit-mask: var(--social-icon) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + transition: background-color 0.25s ease; +} +.socials-item__name { + font-size: 18px; + line-height: 1.2; +} +.socials-item--vk { + --main-color: #366cfe; + --icon-color: currentColor; + --social-icon: url(../img/icons/vk.svg); +} +.socials-item--instagram { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/instagram.svg); +} +.socials-item--youtube { + --main-color: #e80b2e; + --icon-color: currentColor; + --social-icon: url(../img/icons/youtube.svg); +} +.socials-item--threads { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/threads.svg); +} +.socials-item--tiktok { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/tiktok.svg); +} +.socials-item--telegram { + --main-color: #3292dd; + --icon-color: currentColor; + --social-icon: url(../img/icons/telegram.svg); +} +.socials-item--dzen { + --main-color: #000; + --icon-color: #2c3036; + --social-icon: url(../img/icons/dzen.svg); +} +.socials-item--rutube { + --main-color: #0e0333; + --icon-color: currentColor; + --social-icon: url(../img/icons/rutube.svg); +} +.socials-item--rutube .socials-item__icon::after { + content: ""; + display: block; + width: 8px; + aspect-ratio: 1; + border-radius: 50%; + background-color: #ed143b; + transition: background-color 0.25s ease; +} +.socials-footnote { + margin-block: clamp(30px, -90px + 11.7188vw, 60px); + font-size: 11px; + line-height: 1.2; +} +.socials-img { + display: flex; + align-items: flex-end; +} +.socials-img img { + width: 100%; +} + +@media (max-width: 1023.98px) { + .socials-grid { + margin-top: 0; + } + .socials-item { + column-gap: 15px; + padding: 10px 15px; + border-radius: 10px; + } +} +@media (max-width: 767.98px) { + .socials-body { + grid-template-columns: 1fr; + } + .socials-footnote { + margin-bottom: 0; + } + .socials-img { + width: clamp(345px, 101.6794px + 64.8855vw, 600px); + margin: 40px auto 0; + } +} +@media (max-width: 575.98px) { + .socials-item { + column-gap: 10px; + } + .socials-item__icon::before { + width: 28px; + height: 28px; + } + .socials-item__name { + font-size: 16px; + } + .socials-item--rutube .socials-item__icon::after { + width: 6px; + } + .socials-footnote { + margin-top: 20px; + } + .socials-img { + margin-top: 30px; + } +} +.reviews--block { + margin-top: var(--space-section); +} +.reviews-slider { + -webkit-text-size-adjust: 100%; +} +.reviews-slider__container { + padding: 0 20px; +} +.reviews-slider__wrapper { + width: fit-content; + margin-inline: auto; +} +.reviews-slider__wrapper.is-grid { + display: grid; + justify-content: center; + grid-auto-flow: column; + column-gap: 20px; +} +.reviews-slider__bottom { + margin-top: 60px; +} +.reviews-slider__bottom:has(.swiper-pagination-lock) { + display: none; +} +.reviews-slider__pagination { + display: flex; + height: 2px; +} +.reviews-slider__pagination-item { + flex: 1; + height: 100%; + background-color: #e2e2e2; + transition: background-color 0.25s ease; +} +.reviews-slider__pagination-item.is-active { + background-color: var(--color-grey-dark); +} +.reviews-grid { + display: grid; + row-gap: clamp(30px, 9.2818px + 5.5249vw, 80px); + padding-top: 10px; +} +.reviews-slide { + display: flex; + flex-direction: column; + width: 414px; +} +.reviews-slide:last-child { + margin-right: 0 !important; +} +.reviews-slide__img { + position: relative; + aspect-ratio: 768/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); +} +.reviews-slide__img img { + width: 100%; + height: 100%; + object-fit: cover; +} +.reviews-slide__info { + display: flex; + flex-direction: column; + flex: 1; +} +.reviews-slide__user { + margin-top: 25px; + padding-right: 20px; + line-height: 1.1; +} +.reviews-slide__user-name { + font-size: var(--fs-title-sm); + font-weight: 600; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-dark); +} +.reviews-slide__user-descr { + margin-top: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.reviews-slide__comment { + display: flex; + flex-direction: column; + flex: 1; + margin-top: 30px; + padding: 25px; + font-size: 18px; + border-radius: var(--radius-sm); + background-color: #f6f6f6; +} +.reviews-slide__comment::before { + content: ""; + display: block; + width: 24px; + aspect-ratio: 1; + background: var(--icon-quotes) center no-repeat; + background-size: contain; +} +.reviews-slide__comment-text { + margin: 15px 0 auto; +} +.reviews-slide__comment-link { + align-self: flex-start; + margin-top: 10px; + color: var(--color-dark); + transition: color 0.25s ease; +} +.reviews-slide__comment-link:hover { + color: var(--color-red); +} +.reviews-item { + display: grid; + grid-template-columns: clamp(300px, 129px + 22.2656vw, 414px) 1fr; + column-gap: clamp(30px, -30px + 7.8125vw, 70px); +} +.reviews-item__img { + position: relative; + aspect-ratio: 768/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); +} +.reviews-item__img img { + width: 100%; + height: 100%; + object-fit: cover; +} +.reviews-item__user { + line-height: 1.1; +} +.reviews-item__user-name { + font-size: var(--fs-title-sm); + font-weight: 600; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-dark); +} +.reviews-item__user-descr { + margin-top: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.reviews-item__comment { + margin-top: 30px; + padding: 25px; + font-size: 18px; + border-radius: var(--radius-sm); + background-color: #f6f6f6; +} +.reviews-item__comment::before { + content: ""; + display: block; + width: 24px; + aspect-ratio: 1; + margin-bottom: 15px; + mask: var(--icon-quotes) center no-repeat; + -webkit-mask: var(--icon-quotes) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-red); +} +.reviews-item__comment-text { + margin-top: 15px; +} +.reviews-item__comment-link { + display: inline-block; + margin-top: 10px; + color: var(--color-dark); + transition: color 0.25s ease; +} +.reviews-item__comment-link:hover { + color: var(--color-red); +} +.reviews-showmore { + margin-top: clamp(30px, 9.2818px + 5.5249vw, 80px); + text-align: center; +} +.reviews-showmore.is-hidden { + display: none; +} +.reviews-showmore__btn { + max-width: 265px; + width: 100%; +} + +@media (max-width: 1279.98px) { + .reviews-slider__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: calc((100% - 40px) / 3); + justify-content: unset; + column-gap: 20px; + } + .reviews-slide { + width: 100%; + } +} +@media (max-width: 1023.98px) { + .reviews-slider__wrapper.is-grid { + grid-auto-columns: calc((100% - 25px) / 2.25); + } + .reviews-grid { + padding-top: 0; + } +} +@media (max-width: 767.98px) { + .reviews-slider__wrapper.is-grid { + grid-auto-columns: calc((100% - 3.75px) / 1.25); + } + .reviews-slider__bottom { + margin-top: 50px; + } + .reviews-item { + grid-template-columns: 1fr; + } + .reviews-item__user { + margin-top: 25px; + padding-right: 20px; + } + .reviews-showmore__btn { + max-width: unset; + } +} +@media (max-width: 575.98px) { + .reviews-slider__container { + padding: 0 15px; + } + .reviews-slider__wrapper.is-grid { + column-gap: 15px; + } + .reviews-slider__bottom { + margin-top: 30px; + } + .reviews-slide__user { + margin-top: 20px; + padding-right: 15px; + } + .reviews-slide__user-descr { + margin-top: 10px; + } + .reviews-slide__comment { + margin-top: 25px; + padding: 20px; + font-size: 15px; + } + .reviews-slide__comment::before { + width: 20px; + } + .reviews-slide__comment-text { + margin-top: 10px; + } + .reviews-item__user { + margin-top: 20px; + padding-right: 15px; + } + .reviews-item__user-descr { + margin-top: 10px; + } + .reviews-item__comment { + margin-top: 25px; + padding: 20px; + font-size: 15px; + } + .reviews-item__comment::before { + width: 20px; + margin-bottom: 10px; + } +} +.payments { + margin-top: var(--space-section); +} +.payments-body { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + padding-top: clamp(25px, 10.4972px + 3.8674vw, 60px); + border-radius: var(--radius-lg); + background: linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); +} +.payments-header { + width: clamp(300px, 92.8177px + 55.2486vw, 800px); + z-index: 1; +} +.payments-descr { + margin-bottom: 0; +} +.payments-images { + margin-top: clamp(60px, 15px + 5.8594vw, 90px); +} +.payments-images__phone { + display: flex; + width: clamp(240px, 190.2762px + 13.2597vw, 360px); + overflow: hidden; +} +.payments-images__phone img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: 50% 0; +} +.payments-images__messages img { + position: absolute; +} +.payments-images__messages img:nth-child(1) { + width: 24%; + left: 5%; + bottom: 46%; +} +.payments-images__messages img:nth-child(2) { + width: 19%; + left: 7%; + bottom: 7%; +} +.payments-images__messages img:nth-child(3) { + width: 19%; + right: 9%; + bottom: 42%; +} +.payments-images__coins img { + position: absolute; +} +.payments-images__coins img:nth-child(1) { + width: 9%; + left: 5%; + top: 10%; +} +.payments-images__coins img:nth-child(2) { + width: 6%; + right: 7%; + top: 14%; +} +.payments-images__coins img:nth-child(3) { + width: 16%; + right: 4%; + bottom: 4%; +} + +@media (max-width: 767.98px) { + .payments-images { + margin-top: 90px; + } + .payments-images__phone { + aspect-ratio: 240/260; + } + .payments-images__messages img:nth-child(1) { + width: 33%; + top: 32%; + bottom: unset; + } + .payments-images__messages img:nth-child(2) { + width: 31%; + top: 30%; + right: 5%; + left: unset; + bottom: unset; + } + .payments-images__messages img:nth-child(3) { + display: none; + } + .payments-images__coins img:nth-child(1) { + max-width: 90px; + width: 18%; + left: 4%; + bottom: 25%; + top: unset; + } + .payments-images__coins img:nth-child(2) { + max-width: 60px; + width: 10%; + top: 47%; + } + .payments-images__coins img:nth-child(3) { + max-width: 130px; + width: 26%; + right: 8%; + bottom: 6%; + } +} +.faq--block { + margin-top: var(--space-section); +} +.faq-item { + border-bottom: 1px solid #ededed; +} +.faq-item:first-child { + border-top: 1px solid #ededed; +} +.faq-item__question { + position: relative; + padding-block: 25px; + padding-right: clamp(60px, 35.1381px + 6.6298vw, 120px); + font-size: var(--fs-h3-sm); + font-weight: 600; + line-height: 1.2; + cursor: pointer; + color: var(--color-dark); + transition: color 0.25s ease; +} +.faq-item__question::after { + content: ""; + position: absolute; + display: block; + width: 1em; + height: 1em; + top: 0; + bottom: 0; + right: 0; + margin: auto 0; + background: var(--icon-cross) center no-repeat; + background-size: contain; + transition: transform 0.25s ease; +} +.faq-item__answer { + height: 0; + opacity: 0; + overflow: hidden; + visibility: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; +} +.faq-item__content { + padding-right: clamp(60px, 35.1381px + 6.6298vw, 120px); + padding-bottom: 25px; +} +.faq-item.is-active .faq-item__question::after { + transform: rotate(-45deg); +} +.faq-item.is-active .faq-item__answer { + opacity: 1; + visibility: visible; +} + +@media (max-width: 1023.98px) { + .faq-item__content { + padding-right: 0; + } +} +@media (max-width: 767.98px) { + .faq-item__question { + padding-block: 20px; + font-size: var(--fs-title-sm); + } + .faq-item__question::after { + width: 1.2em; + height: 1.2em; + } + .faq-item__content { + padding-bottom: 20px; + } +} +@media (max-width: 575.98px) { + .faq-item__question { + padding-block: 15px; + } + .faq-item__content { + padding-bottom: 15px; + } +} +@media (hover: hover) { + .faq-item__question:hover { + color: var(--color-grey-dark); + } +} +.articles--block { + margin-top: var(--space-section); +} +.articles--page { + margin-top: clamp(40px, 15.1381px + 6.6298vw, 100px); +} +.articles-title--sm { + margin-bottom: 40px; + font-size: var(--fs-h3-lg); +} +.articles-title--lg { + margin-bottom: 45px; + text-align: center; +} +.articles-filter { + margin-bottom: 30px; + overflow-x: auto; + scrollbar-width: none; +} +.articles-filter::-webkit-scrollbar { + display: none; +} +.articles-filter__list { + display: grid; + justify-content: start; + grid-auto-flow: column; + column-gap: 6px; + width: max-content; +} +.articles-filter__link { + display: flex; + align-items: center; + padding: 10px 15px; + border-radius: 10px; + color: #798079; + border: 1px solid #dcdcdc; + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; +} +.articles-filter__item { + font-size: 18px; + line-height: 1.2; + white-space: nowrap; +} +.articles-filter__item.is-active a { + color: #fff; + border-color: var(--color-dark); + background-color: var(--color-dark); +} +.articles-slider__wrapper.is-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; +} +.articles-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; + row-gap: 50px; + transition: opacity 0.25s ease; +} +.articles-grid.is-loading { + opacity: 0; +} +.articles-item { + display: flex; + flex-direction: column; +} +.articles-item__img-link { + display: block; + aspect-ratio: 768/435; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); +} +.articles-item__img-link img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} +.articles-item__info { + display: flex; + flex-direction: column; + margin-top: 25px; + flex: 1; +} +.articles-item__meta { + display: flex; + align-items: center; + line-height: 1.2; + white-space: nowrap; +} +.articles-item__date { + font-size: 15px; +} +.articles-item__tags { + display: grid; + grid-auto-flow: column; + column-gap: 6px; + margin-left: 15px; +} +.articles-item__tag { + padding: 6px 10px; + font-size: 14px; + border-radius: 10px; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; +} +.articles-item__title { + min-height: 2.4em; + margin-top: 25px; + padding-right: 20px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; +} +.articles-item__title-link { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + width: fit-content; + overflow: hidden; + color: var(--color-dark); + transition: color 0.25s ease; +} +.articles-item__title-link:hover { + color: var(--color-red); +} +.articles-item__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin: 20px 0 auto; + padding-right: 20px; + font-size: 18px; + line-height: 1.3; +} +.articles-item__read { + margin-top: 30px; +} +.articles-item__read-btn { + border-color: rgba(185, 185, 185, 0.5); +} +.articles-showmore { + margin-top: 50px; + text-align: center; + transition: opacity 0.25s ease; +} +.articles-showmore.is-loading { + opacity: 0; +} +.articles-showmore.is-hidden { + display: none; +} +.articles-showmore__btn { + max-width: 265px; + width: 100%; +} + +@media (max-width: 1279.98px) { + .articles-filter { + margin-inline: -20px; + padding-inline: 20px; + } +} +@media (max-width: 1023.98px) { + .articles-filter__item { + font-size: 16px; + } + .articles-slider__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: calc((100% - 25px) / 2.25); + } + .articles-grid { + grid-template-columns: 1fr 1fr; + } +} +@media (max-width: 767.98px) { + .articles-title--sm { + margin-bottom: 30px; + } + .articles-title--lg { + margin-bottom: 35px; + } + .articles-slider__wrapper.is-grid { + grid-auto-columns: calc((100% - 3.75px) / 1.25); + } + .articles-grid { + grid-template-columns: 1fr; + row-gap: 40px; + } + .articles-grid .articles-item__title { + min-height: unset; + padding-right: 0; + } + .articles-grid .articles-item__descr { + padding-right: 0; + } + .articles-showmore { + margin-top: 40px; + } + .articles-showmore__btn { + max-width: unset; + } +} +@media (max-width: 575.98px) { + .articles-title--sm, .articles-title--lg { + margin-bottom: 25px; + } + .articles-filter { + margin-bottom: 20px; + margin-inline: -15px; + padding-inline: 15px; + } + .articles-filter__item { + font-size: 14px; + } + .articles-filter__link { + padding: 7px 12px; + } + .articles-grid { + row-gap: 30px; + } + .articles-item__info { + margin-top: 20px; + } + .articles-item__date { + font-size: 13px; + } + .articles-item__tags { + margin-left: 10px; + } + .articles-item__tag { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + .articles-item__title { + margin-top: 20px; + padding-right: 15px; + } + .articles-item__descr { + margin-top: 15px; + padding-right: 15px; + font-size: 15px; + } + .articles-item__read { + margin-top: 20px; + } + .articles-showmore { + margin-top: 30px; + } +} +@media (hover: hover) { + .articles-filter__link:hover { + border-color: #a6a6a6; + } + .articles-item__img-link:hover img { + transform: scale(1.15); + } +} +.getapp { + margin-top: var(--space-section); +} +.getapp-body { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: clamp(40px, 2.5px + 4.8828vw, 65px); + padding-block: clamp(25px, 8.4254px + 4.4199vw, 65px); + padding-inline: clamp(20px, 1.3536px + 4.9724vw, 65px); + border-radius: var(--radius-lg); + background: url(../img/bg/dl-bg.webp) center no-repeat; + background-size: cover; +} +.getapp-body__right { + display: grid; + align-items: end; + grid-template-columns: 1fr 2.38fr; + column-gap: clamp(40px, 2.5px + 4.8828vw, 65px); + max-width: 500px; +} +.getapp-title { + color: #fff; +} +.getapp-descr { + margin-top: 25px; + font-size: 18px; + color: #fff; +} +.getapp-stores { + display: flex; + gap: 8px; + margin-top: 40px; +} +.getapp-store { + display: flex; + align-items: center; + justify-content: center; + height: 60px; + padding: 0 25px 0 20px; + border-radius: 100px; + color: #000; + background-color: #fff; + transition: background-color 0.25s ease; +} +.getapp-store:hover { + background-color: rgba(255, 255, 255, 0.8); +} +.getapp-store__icon { + display: flex; + width: 24px; + aspect-ratio: 1; + flex-shrink: 0; +} +.getapp-store__name { + margin-left: 10px; + font-size: 16px; + line-height: 1.2; + white-space: nowrap; +} +.getapp-qrcode { + display: flex; + padding: 10px; + border-radius: 10px; + background-color: #fff; +} +.getapp-qrcode img { + width: 100%; +} +.getapp-img { + display: flex; + margin-bottom: clamp(-65px, -8.4254px - 4.4199vw, -25px); + overflow: hidden; +} +.getapp-img img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: 50% 0; +} + +@media (max-width: 1279.98px) { + .getapp-body { + grid-template-columns: 1fr 1.2fr; + } + .getapp-body__right { + grid-template-columns: 1fr 2.5fr; + margin: 0 auto; + } + .getapp-stores { + flex-wrap: wrap; + } + .getapp-store { + height: 50px; + padding: 0 20px 0 15px; + } +} +@media (max-width: 1023.98px) { + .getapp-body { + grid-template-columns: 1.2fr 1fr; + } + .getapp-body__right { + grid-template-columns: 1fr; + } + .getapp-qrcode { + display: none; + } + .getapp-img { + width: clamp(240px, 190.2762px + 13.2597vw, 360px); + } +} +@media (max-width: 767.98px) { + .getapp-body { + grid-template-columns: 1fr; + } + .getapp-body__right { + display: flex; + justify-content: center; + max-width: unset; + margin: 40px 0 0; + } + .getapp-img { + aspect-ratio: 240/260; + } +} +@media (max-width: 575.98px) { + .getapp-body__right { + margin-top: 30px; + } + .getapp-descr { + margin-top: 15px; + font-size: 15px; + } + .getapp-stores { + margin-top: 25px; + } + .getapp-store { + height: 40px; + padding: 0 15px 0 12px; + } + .getapp-store__icon { + width: 20px; + } + .getapp-store__name { + margin-left: 8px; + font-size: 14px; + } +} +.footer { + margin-top: var(--space-section); + padding-block: clamp(35px, 22.5691px + 3.3149vw, 65px); + border-top-left-radius: var(--radius-lg); + border-top-right-radius: var(--radius-lg); + background-color: var(--color-grey); +} +.footer-top__body { + display: grid; + grid-template-columns: 1fr 1.75fr 220px; + column-gap: clamp(60px, -30px + 11.7188vw, 120px); +} +.footer-logo { + display: flex; + flex-direction: column; + align-items: flex-start; +} +.footer-logo__link img { + width: 122px; +} +.footer-info { + max-width: 240px; + margin-top: 20px; + font-size: 12px; + line-height: 1.3; + color: var(--color-grey-dark); +} +.footer-info p { + margin-bottom: 1.25em; +} +.footer-info p:last-child { + margin-bottom: 0; +} +.footer-contacts { + grid-column: 1/2; + grid-row: 2/5; + margin-top: 25px; + line-height: 1.2; +} +.footer-contacts__email { + display: flex; + font-size: 14px; +} +.footer-contacts__email-link { + color: var(--color-red); + transition: color 0.25s ease; +} +.footer-contacts__email-link:hover { + color: var(--color-red-dark); +} +.footer-contacts__map { + display: flex; + font-size: 12px; + margin-top: 15px; +} +.footer-contacts__map-link { + position: relative; + padding-left: 1.25em; + color: var(--color-grey-dark); + transition: color 0.25s ease; +} +.footer-contacts__map-link::before { + content: ""; + position: absolute; + display: block; + width: 1em; + height: 1em; + left: 0; + top: 0; + mask: var(--icon-placemark) center no-repeat; + -webkit-mask: var(--icon-placemark) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-dark); + transition: background-color 0.25s ease; +} +.footer-contacts__map-link:hover { + color: var(--color-red); +} +.footer-contacts__map-link:hover::before { + background-color: var(--color-red); +} +.footer-socials { + display: flex; + flex-wrap: wrap; + gap: 5px; + max-width: 200px; + margin-top: 30px; +} +.footer-socials__item { + display: flex; + align-items: center; + justify-content: center; + width: 44px; + aspect-ratio: 1; + border-radius: 12px; + border: 1px solid rgba(209, 216, 221, 0.5); + background-color: #fff; + transition: border-color 0.25s ease; +} +.footer-socials__item:hover { + border-color: #d1d1d1; +} +.footer-socials__item img { + width: 20px; + aspect-ratio: 1; +} +.footer-menu { + grid-row: 1/3; +} +.footer-menu__list { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: clamp(40px, 10px + 3.9063vw, 60px); + row-gap: clamp(30px, 7.5px + 2.9297vw, 45px); +} +.footer-menu__list > li > a { + font-weight: 700; +} +.footer-menu__item { + display: flex; + flex-direction: column; + align-items: flex-start; + font-size: 16px; + line-height: 1.2; +} +.footer-menu__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; +} +.footer-menu__link[href]:hover { + color: #8a8f9f; +} +.footer-menu__link:not([href]) { + cursor: default; +} +.footer-menu__submenu { + margin-top: 10px; +} +.footer-menu__submenu a { + padding: 10px 0; +} +.footer-menu__submenu-toggle { + display: none; +} +.footer-stores { + display: grid; + grid-template-columns: repeat(4, auto); + justify-content: start; + align-items: center; + gap: 6px; + margin-top: clamp(30px, 0px + 3.9063vw, 50px); + grid-column: 2/4; +} +.footer-store { + position: relative; + display: flex; + width: 128px; + aspect-ratio: 178/50; + transition: opacity 0.25s ease; +} +.footer-store:hover { + opacity: 0.8; +} +.footer-actions { + grid-row: 1/3; +} +.footer-qrcode__img { + display: flex; + max-width: 175px; + padding: 10px; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; +} +.footer-qrcode__img img { + width: 100%; +} +.footer-qrcode__info { + margin-top: 25px; + font-size: 14px; + line-height: 1.3; +} +.footer-buttons { + display: grid; + row-gap: 6px; + max-width: 265px; + margin-top: 25px; +} +.footer-buttons .btn { + height: 44px; + font-size: 16px; +} +.footer-buttons__login-btn { + width: 100%; + height: 44px; + color: var(--color-grey-text); + background-color: #dbdfec; +} +.footer-buttons__login-btn::before { + content: ""; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); +} +.footer-buttons__login-btn:hover { + background-color: #cacdd9; +} +.footer-bottom { + margin-top: clamp(35px, 22.5691px + 3.3149vw, 65px); + padding-top: 30px; + border-top: 1px solid #e5e8f4; + font-size: 12px; + line-height: 1.2; +} +.footer-bottom__body { + display: grid; + grid-template-columns: 1.3fr 1.75fr 1fr; + column-gap: 20px; +} +.footer-details { + color: var(--color-grey-dark); +} +.footer-copyright { + font-size: 14px; +} +.footer-madein { + display: flex; + align-items: center; + margin-top: 25px; +} +.footer-madein__icon { + display: flex; + width: 1.2em; + aspect-ratio: 1; + margin-left: 6px; +} +.footer-registry { + display: flex; + align-items: center; + margin-top: 25px; +} +.footer-registry__icon { + display: flex; + flex-shrink: 0; + width: 20px; + aspect-ratio: 1; +} +.footer-registry__text { + max-width: 265px; + margin-left: 10px; + font-size: 10px; +} +.footer-links { + display: flex; + justify-content: space-between; + column-gap: 20px; +} +.footer-links__list { + display: grid; + row-gap: 8px; +} +.footer-links__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; +} +.footer-links__link:hover { + color: var(--color-dark); +} +.footer-developer { + text-align: right; +} +.footer-developer__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; +} +.footer-developer__link span { + color: var(--color-red); +} +.footer-developer__link:hover { + color: var(--color-dark); +} + +@media (max-width: 1279.98px) { + .footer-bottom__body { + grid-template-columns: calc(38vw - 105px) 1.75fr 1fr; + } +} +@media (max-width: 1023.98px) { + .footer-top__body { + grid-template-columns: 1fr 1.5fr; + } + .footer-qrcode { + display: none; + } + .footer-info { + max-width: unset; + } + .footer-contacts { + grid-row: 2/3; + margin-top: 30px; + } + .footer-actions { + grid-column: 1/2; + grid-row: 3/4; + margin-top: 30px; + } + .footer-buttons { + margin-top: 0; + } + .footer-menu { + grid-row: 1/4; + } + .footer-stores { + grid-column: 1/-1; + } + .footer-bottom { + margin-top: 30px; + } + .footer-bottom__body { + grid-template-columns: 1fr 1.5fr; + column-gap: clamp(60px, -30px + 11.7188vw, 120px); + } + .footer-links { + column-gap: 40px; + } + .footer-developer { + order: 3; + margin-top: 30px; + text-align: left; + } +} +@media (max-width: 767.98px) { + .footer-top__body { + display: flex; + flex-direction: column; + } + .footer-buttons { + max-width: unset; + } + .footer-menu { + margin-top: 30px; + } + .footer-menu__list { + display: block; + } + .footer-menu__list > li { + align-items: center; + border-bottom: 1px solid #e5e7ef; + } + .footer-menu__list > li:first-child { + border-top: 1px solid #e5e7ef; + } + .footer-menu__list > li.has-children { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + } + .footer-menu__list > li.is-open > button { + transform: rotate(-180deg); + } + .footer-menu__list > li > a { + padding: 12px 0; + } + .footer-menu__item { + flex-direction: row; + } + .footer-menu__submenu-toggle { + display: block; + width: 32px; + height: 32px; + margin: auto 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: 10px; + -webkit-mask-size: 10px; + background-color: var(--color-text); + transition: transform 0.25s ease, background-color 0.25s ease; + } + .footer-menu__submenu { + grid-column: 1/-1; + margin-top: 0; + height: 0; + overflow: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + } + .footer-menu__submenu::after { + content: ""; + display: block; + height: 6px; + } + .footer-menu__submenu li { + font-size: 15px; + } + .footer-menu__submenu a { + padding: 8px 0; + } + .footer-socials { + max-width: unset; + } + .footer-bottom__body { + grid-template-columns: 1fr; + } + .footer-links { + justify-content: unset; + } + .footer-details { + order: 2; + padding-top: 30px; + margin-top: 30px; + border-top: 1px solid #e5e8f4; + } +} +@media (max-width: 575.98px) { + .footer-stores { + grid-template-columns: auto auto; + } + .footer-links { + flex-direction: column; + row-gap: 30px; + } +} +.blog { + margin-top: 145px; +} +.blog-header { + display: grid; + grid-template-columns: 1fr auto; + padding-block: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-inline: clamp(20px, 3.4254px + 4.4199vw, 60px); + column-gap: clamp(20px, -4.8619px + 6.6298vw, 80px); + border-radius: var(--radius-sm); + background: linear-gradient(198deg, #fef8ea 0%, #ffeff0 100%); +} +.blog-info { + max-width: 680px; +} +.blog-descr { + margin-top: clamp(15px, 8.7845px + 1.6575vw, 30px); + font-size: 18px; + line-height: 1.4; +} +.blog-logo { + width: clamp(48px, 21.4807px + 7.0718vw, 112px); + margin-right: 40px; +} +.blog-slider { + margin-top: clamp(25px, 6.3536px + 4.9724vw, 70px); +} +.blog-item { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 20px; +} +.blog-item__info { + padding-right: clamp(20px, -40px + 7.8125vw, 60px); +} +.blog-item__tags { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 6px; +} +.blog-item__tag { + padding: 6px 10px; + font-size: 14px; + line-height: 1.2; + border-radius: 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; +} +.blog-item__title { + margin-top: 20px; + font-size: var(--fs-h3-lg); + font-weight: 700; + line-height: 1.1; +} +.blog-item__title-link { + display: block; + color: var(--color-dark); + transition: color 0.25s ease; +} +.blog-item__title-link:hover { + color: var(--color-red); +} +.blog-item__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin-top: 20px; + font-size: 18px; + line-height: 1.3; +} +.blog-item__read { + margin-top: 30px; +} +.blog-item__read-btn { + border-color: rgba(185, 185, 185, 0.5); +} +.blog-item__img { + align-self: start; +} +.blog-item__img-link { + display: block; + aspect-ratio: 1024/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); +} +.blog-item__img-link img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} + +@media (max-width: 1279.98px) { + .blog { + margin-top: clamp(75px, 54.2818px + 5.5249vw, 125px); + } +} +@media (max-width: 1023.98px) { + .blog-logo { + margin-right: 0; + } + .blog-item__img { + margin-top: 55px; + } +} +@media (max-width: 767.98px) { + .blog-slider__container { + border-bottom-left-radius: var(--radius-sm); + border-bottom-right-radius: var(--radius-sm); + } + .blog-item { + grid-template-columns: 1fr; + } + .blog-item__info { + padding-right: 0; + } + .blog-item__img { + margin-top: 40px; + } +} +@media (max-width: 575.98px) { + .blog-descr { + font-size: 15px; + } + .blog-item__tag { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + .blog-item__title { + margin-top: 15px; + } + .blog-item__descr { + margin-top: 12px; + font-size: 15px; + } + .blog-item__read { + margin-top: 20px; + } + .blog-item__img { + margin-top: 25px; + } +} +@media (hover: hover) { + .blog-item__img-link:hover img { + transform: scale(1.15); + } +} +.content > *:first-child { + margin-top: 0; +} +.content > *:last-child { + margin-bottom: 0; +} +.content h1 + h2, +.content h1 + h3, +.content h1 + h4 { + margin-top: 0; +} +.content h1 { + margin-bottom: clamp(25px, 6.3536px + 4.9724vw, 70px); + text-align: center; +} +.content h2 + h3, +.content h3 + h4 { + margin-top: 0; +} +.content h2, +.content h3, +.content h4 { + margin-top: clamp(30px, 17.5691px + 3.3149vw, 60px); + margin-bottom: clamp(18px, 15.0994px + 0.7735vw, 25px); + font-weight: 600; +} +.content h2 { + font-size: var(--fs-h2-sm); +} +.content h3, +.content h4 { + font-size: var(--fs-h3-sm); + line-height: 1.3; +} +.content p, +.content ul, +.content ol { + margin-bottom: 1.25em; +} +.content li { + position: relative; + padding-left: 1.5em; +} +.content li:not(:last-child) { + margin-bottom: 0.5em; +} +.content li ul, +.content li ol { + margin-block: 0.5em; +} +.content li p { + margin-bottom: 0.5em; +} +.content ul > li::before { + content: ""; + position: absolute; + display: block; + width: 0.3em; + aspect-ratio: 1; + top: 0.6em; + left: 0.6em; + border-radius: 50%; + background-color: var(--color-red); +} +.content ol { + counter-reset: num; +} +.content ol > li { + counter-increment: num; +} +.content ol > li::before { + content: counter(num) "."; + position: absolute; + width: 1.25em; + left: 0; + top: 0; + font-weight: 500; + text-align: right; + color: var(--color-red); +} +.content b, +.content strong { + font-weight: 600; + color: var(--color-dark); +} +.content a { + display: inline-block; + color: var(--color-red); + transition: color 0.25s ease; +} +.content a:hover { + color: var(--color-red-dark); +} +.content img { + margin-block: 1.75em; + border-radius: var(--radius-sm); +} +.content .table-wrapper { + margin-block: 1.75em; + overflow-x: auto; + scrollbar-width: none; +} +.content .table-wrapper::-webkit-scrollbar { + width: 0; +} +.content table { + width: 100%; + border-collapse: collapse; +} +.content table th, +.content table td { + padding: 15px 20px; + border: 1px solid #eee; +} +.content table th { + text-align: left; + color: var(--color-dark); + background-color: var(--color-light); +} +.content--sm h2, +.content--sm h3, +.content--sm h4 { + margin-top: clamp(20px, 11.7127px + 2.2099vw, 40px); +} + +@media (max-width: 1023.98px) { + .content .table-wrapper { + margin-inline: -20px; + padding-inline: 20px; + } +} +@media (max-width: 767.98px) { + .content h3, + .content h4 { + line-height: 1.2; + } +} +@media (max-width: 575.98px) { + .content .table-wrapper { + margin-inline: -15px; + padding-inline: 15px; + } + .content table th, + .content table td { + padding: 10px 15px; + } +} +.article-goback { + display: flex; + margin-top: clamp(15px, 4.6409px + 2.7624vw, 40px); + margin-bottom: 20px; +} +.article-goback__btn { + position: relative; + display: flex; + align-items: center; + font-size: 14px; + line-height: 1.2; + color: var(--color-text); + transition: color 0.25s ease; +} +.article-goback__btn::before, .article-goback__btn::after { + content: ""; + display: block; + width: 2.55em; + aspect-ratio: 1; + border-radius: 50%; + border-width: 1px; + border-style: solid; +} +.article-goback__btn::before { + margin-right: 10px; + border-color: #f0f0f0; + background-color: #fff; + transition: background-color 0.25s ease; +} +.article-goback__btn::after { + position: absolute; + top: 0; + left: 0; + border-color: transparent; + background: var(--icon-angle-left) center no-repeat; + background-size: 0.6em; +} +.article-goback__btn:hover::before { + background-color: #f0f0f0; +} +.article-title { + text-align: center; +} +.article-img { + aspect-ratio: 1280/440; + margin-top: clamp(25px, 18.7845px + 1.6575vw, 40px); + border-radius: var(--radius-sm); + overflow: hidden; +} +.article-img img { + width: 100%; + height: 100%; + object-fit: cover; +} +.article-meta { + display: flex; + align-items: center; + justify-content: space-between; + column-gap: 30px; + margin-top: 30px; + line-height: 1.2; + white-space: nowrap; +} +.article-date { + font-size: 15px; +} +.article-tags { + display: grid; + grid-auto-flow: column; + column-gap: 6px; +} +.article-tags__item { + padding: 6px 10px; + font-size: 14px; + border-radius: 10px; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; +} +.article-body { + display: grid; + align-items: start; + grid-template-columns: 1fr 300px; + column-gap: clamp(40px, -300px + 33.2031vw, 125px); + margin-top: clamp(40px, 31.7127px + 2.2099vw, 60px); +} +.article-body.no-toc { + grid-template-columns: 1fr; + margin-top: clamp(30px, 17.5691px + 3.3149vw, 60px); +} +.article-main { + min-width: 0; +} +.article-sidebar { + position: sticky; + top: 112px; +} +.article-toc { + padding: 25px 30px; + background-color: var(--color-light); + border-radius: var(--radius-sm); +} +.article-toc__title { + font-size: var(--fs-h3-sm); + line-height: 1.2; + font-weight: 600; + color: var(--color-dark); +} +.article-toc__list { + display: grid; + row-gap: 18px; + margin-top: 25px; + max-height: calc(100vh - 260px); + overflow-y: auto; + scrollbar-width: none; +} +.article-toc__list::-webkit-scrollbar { + width: 0; +} +.article-toc__list.is-scrollable { + padding-right: 10px; + scrollbar-width: auto; +} +@-moz-document url-prefix() { + .article-toc__list.is-scrollable { + scrollbar-width: thin; + } +} +.article-toc__list.is-scrollable::-webkit-scrollbar { + width: 5px; +} +.article-toc__list.is-scrollable::-webkit-scrollbar-track { + background-color: #f0f0f0; + border-radius: 5px; +} +.article-toc__list.is-scrollable::-webkit-scrollbar-thumb { + background-color: #d9d9d9; + border-radius: 5px; +} +.article-toc__item { + font-size: 18px; + line-height: 1.2; +} +.article-toc__link { + color: var(--color-text); + transition: color 0.25s ease; +} +.article-toc__link:hover { + color: var(--color-red); +} + +@media (max-width: 1279.98px) { + .article-sidebar { + top: clamp(70px, 61.7127px + 2.2099vw, 90px); + } + .article-toc__list { + max-height: calc(100vh - 240px); + } +} +@media (max-width: 1023.98px) { + .article-body { + grid-template-columns: 1fr; + } + .article-sidebar { + position: unset; + top: unset; + order: -1; + margin-bottom: clamp(40px, 31.7127px + 2.2099vw, 60px); + } + .article-toc__list { + max-height: unset; + } +} +@media (max-width: 767.98px) { + .article-img { + aspect-ratio: 1280/720; + } +} +@media (max-width: 575.98px) { + .article-goback__btn { + font-size: 12px; + } + .article-meta { + flex-direction: column; + align-items: flex-start; + margin-top: 20px; + } + .article-tags__item { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + .article-date { + order: 2; + margin-top: 15px; + font-size: 13px; + } + .article-date:first-child:last-child { + margin-top: 0; + } + .article-toc { + padding: 20px; + } + .article-toc__list { + row-gap: 12px; + margin-top: 15px; + } + .article-toc__item { + font-size: 15px; + } +} +.requirements { + margin-top: var(--space-section); +} +.requirements-title { + text-align: center; +} +.requirements-main { + margin-top: 45px; +} +.requirements-main__list { + display: grid; + grid-template-columns: repeat(var(--items), 1fr); + gap: 20px; +} +.requirements-main__item { + display: grid; + align-content: center; + grid-template-columns: auto 1fr; + column-gap: 0.5em; + min-height: calc(2.6em + 24px); + padding: 12px 20px; + line-height: 1.3; + border-radius: 10px; + background-color: #f5f5fa; +} +.requirements-main__item::before { + content: ""; + position: relative; + display: block; + width: 1em; + height: 1em; + top: 0.15em; + background: var(--icon-checkmark) center no-repeat; + background-size: contain; +} +.requirements-main__item:has(p) { + align-content: start; + padding-block: 20px; +} +.requirements-main__item:has(p) strong { + display: block; + margin-bottom: 0.5em; +} +.requirements-docs { + margin-top: 60px; +} +.requirements-docs__title { + font-size: clamp(20px, 15.8564px + 1.105vw, 30px); + font-weight: 600; + text-align: center; +} +.requirements-docs__list { + display: grid; + justify-content: center; + grid-template-columns: auto auto; + column-gap: clamp(40px, -80px + 15.625vw, 120px); + row-gap: 15px; + margin-top: 40px; + counter-reset: num; +} +.requirements-docs__item { + position: relative; + padding-left: 1.85em; + line-height: 1.3; + counter-increment: num; +} +.requirements-docs__item::before { + content: counter(num); + position: absolute; + display: flex; + align-items: center; + justify-content: center; + width: 1.25em; + height: 1.25em; + top: 0; + left: 0; + border-radius: 100px; + color: #fff; + background-color: var(--color-red); +} + +@media (max-width: 767.98px) { + .requirements-main { + margin-top: 35px; + } + .requirements-main__list { + grid-template-columns: 1fr; + row-gap: 8px; + } + .requirements-main__item { + min-height: unset; + padding: 15px 20px; + } + .requirements-main__item:has(p) { + padding-block: 15px; + } + .requirements-docs { + margin-top: 45px; + } + .requirements-docs__list { + grid-template-columns: 1fr; + margin-top: 25px; + } +} +@media (max-width: 575.98px) { + .requirements-main { + margin-top: 25px; + } + .requirements-docs { + margin-top: 35px; + } + .requirements-docs__list { + row-gap: 12px; + margin-top: 20px; + } +} +.cities { + margin-top: var(--space-section); +} +.cities-title { + text-align: center; +} +.cities-list { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-top: 45px; + gap: 10px; +} +.cities-item { + display: flex; + min-width: 0; + font-size: 22px; + line-height: 1.1; +} +.cities-item__link { + padding: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + border-radius: 100px; + border: 1px solid #e2e2e2; + color: var(--color-text); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; +} +.cities-item__link:hover { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); +} +.cities-item.is-active a { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); +} + +@media (max-width: 1279.98px) { + .cities-item { + font-size: inherit; + } +} +@media (max-width: 1023.98px) { + .cities-item__link { + padding: 15px; + } +} +@media (max-width: 767.98px) { + .cities-list { + margin-top: 35px; + gap: 8px; + } + .cities-item__link { + padding: 12px 15px; + } +} +@media (max-width: 575.98px) { + .cities-list { + margin-top: 25px; + } + .cities-item__link { + padding: 10px 12px; + } +} +.jobs { + margin-top: var(--space-section); +} +.jobs-body { + padding-top: clamp(25px, 10.4972px + 3.8674vw, 60px); + padding-bottom: clamp(35px, 16.3536px + 4.9724vw, 80px); + padding-inline: clamp(20px, 1.3536px + 4.9724vw, 65px); + border-radius: var(--radius-lg); + background-color: var(--color-red); +} +.jobs-title { + color: #fff; + text-align: center; +} +.jobs-list { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-top: 45px; + gap: 10px; +} +.jobs-item { + display: flex; + min-width: 0; + font-size: 22px; + line-height: 1.1; +} +.jobs-item__link { + padding: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + border-radius: 100px; + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.5); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; +} +.jobs-item__link:hover { + color: var(--color-red); + border-color: #fff; + background-color: #fff; +} +.jobs-item.is-active a { + color: var(--color-red); + border-color: #fff; + background-color: #fff; +} + +@media (max-width: 1279.98px) { + .jobs-item { + font-size: inherit; + } +} +@media (max-width: 1023.98px) { + .jobs-item__link { + padding: 15px; + } +} +@media (max-width: 767.98px) { + .jobs-list { + margin-top: 35px; + gap: 8px; + } + .jobs-item__link { + padding: 12px 15px; + } +} +@media (max-width: 575.98px) { + .jobs-list { + margin-top: 25px; + } + .jobs-item__link { + padding: 10px 12px; + } +} +.news-grid { + display: grid; + row-gap: clamp(30px, 17.5691px + 3.3149vw, 60px); +} +.news-item { + display: grid; + grid-template-columns: clamp(300px, 129px + 22.2656vw, 414px) 1fr; + column-gap: 40px; +} +.news-item__img-link { + display: block; + aspect-ratio: 768/435; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); +} +.news-item__img-link img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; +} +.news-item__date { + display: block; + font-size: 15px; + line-height: 1.2; +} +.news-item__title { + margin-top: 15px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; +} +.news-item__title-link { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + width: fit-content; + color: var(--color-dark); + transition: color 0.25s ease; +} +.news-item__title-link:hover { + color: var(--color-red); +} +.news-item__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin-top: 15px; + font-size: 18px; + line-height: 1.3; +} +.news-item__read { + margin-top: 25px; +} +.news-item__read-btn { + border-color: rgba(185, 185, 185, 0.5); +} +.news-showmore { + margin-top: clamp(30px, 17.5691px + 3.3149vw, 60px); + text-align: center; +} +.news-showmore.is-hidden { + display: none; +} +.news-showmore__btn { + max-width: 265px; + width: 100%; +} + +@media (max-width: 1023.98px) { + .news-item { + column-gap: 30px; + } +} +@media (max-width: 767.98px) { + .news-item { + grid-template-columns: 1fr; + } + .news-item__info { + margin-top: 25px; + } + .news-showmore__btn { + max-width: unset; + } +} +@media (max-width: 575.98px) { + .news-item__info { + margin-top: 20px; + } + .news-item__date { + font-size: 13px; + } + .news-item__descr { + font-size: 15px; + } + .news-item__read { + margin-top: 20px; + } +} +@media (hover: hover) { + .news-item__img-link:hover img { + transform: scale(1.15); + } +} +.download { + padding-bottom: var(--space-section); + padding-top: 165px; + text-align: center; + background-image: url(../img/content/bag.webp), url(../img/content/car.webp), linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); + background-repeat: no-repeat; + background-position: calc(50% - 80px - 30vw) 30%, calc(50% + 280px + 20vw) 63%, center; + background-size: clamp(232px, 160px + 9.375vw, 280px) auto, clamp(450px, 315px + 17.5781vw, 540px) auto, cover; +} +.download-descr, .download-info { + font-size: 18px; + line-height: 1.3; +} +.download-descr { + margin-top: 25px; +} +.download-info { + margin-top: clamp(30px, 5.1381px + 6.6298vw, 90px); +} +.download-qrcode { + width: clamp(256px, 225.337px + 8.1768vw, 330px); + margin-top: clamp(30px, 17.5691px + 3.3149vw, 60px); + margin-inline: auto; + padding: var(--radius-sm); + background-color: #fff; + border-radius: var(--radius-md); + border: 1px solid #ececec; +} +.download-qrcode img { + width: 100%; +} +.download-stores { + display: grid; + grid-template-columns: repeat(4, auto); + justify-content: center; + align-items: center; + gap: 8px; + margin-top: clamp(35px, 28.7845px + 1.6575vw, 50px); +} +.download-store { + position: relative; + display: flex; + width: clamp(160px, 152.5414px + 1.989vw, 178px); + aspect-ratio: 178/50; + transition: opacity 0.25s ease; +} +.download-store:hover { + opacity: 0.8; +} + +@media (min-width: 1920px) { + .download { + background-position: calc(50% - 660px) 30%, calc(50% + 660px) 63%, center; + } +} +@media (max-width: 1279.98px) { + .download { + padding-top: clamp(80px, 53.0663px + 7.1823vw, 145px); + } +} +@media (max-width: 767.98px) { + .download { + min-height: 100vh; + background: linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); + } + .download-stores { + grid-template-columns: auto auto; + } +} +@media (max-width: 575.98px) { + .download-descr, .download-info { + font-size: 15px; + } + .download-descr { + margin-top: 20px; + } +} +.ymaps3--map-container .ymaps3--map-copyrights, +.ymaps3--map-container .ymaps3--controls_bottom { + display: none; +} +.ymaps3--map-container .ymaps3--controls { + z-index: 5; +} + +.contacts-body { + display: grid; + align-items: stretch; + grid-template-columns: 1fr 1.42fr; + column-gap: 20px; + min-height: clamp(400px, 160px + 23.4375vw, 460px); +} +.contacts-card { + display: flex; + flex-direction: column; + padding-top: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-bottom: clamp(25px, 10.4972px + 3.8674vw, 60px); + padding-inline: clamp(20px, 3.4254px + 4.4199vw, 60px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); +} +.contacts-card__title { + font-size: var(--fs-title-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} +.contacts-card__list { + display: grid; + row-gap: 20px; + margin-top: clamp(20px, 7.5691px + 3.3149vw, 50px); + margin-bottom: auto; +} +.contacts-card__item { + display: flex; + align-items: flex-start; + justify-content: flex-start; + overflow: hidden; + line-height: 1.2; + color: var(--color-dark); +} +.contacts-card__item::before { + content: ""; + position: relative; + display: block; + width: 20px; + aspect-ratio: 1; + flex-shrink: 0; + margin-right: 12px; + top: 0.15em; + background-position: center; + background-repeat: no-repeat; + background-size: contain; +} +.contacts-card__item--tel { + font-size: var(--fs-title-sm); + font-weight: 700; +} +.contacts-card__item--tel::before { + background-image: var(--icon-phone); +} +.contacts-card__item--tel a { + color: var(--color-dark); +} +.contacts-card__item--tel a:hover { + color: var(--color-red); +} +.contacts-card__item--address::before { + background-image: var(--icon-location); +} +.contacts-card__item--email::before { + background-image: var(--icon-email); +} +.contacts-card__item--email a { + color: var(--color-red); +} +.contacts-card__item--email a:hover { + color: var(--color-red-dark); +} +.contacts-card__item-link { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color 0.25s ease; +} +.contacts-card__download { + margin-top: clamp(25px, 10.4972px + 3.8674vw, 60px); +} +.contacts-map { + position: relative; + overflow: hidden; + border-radius: var(--radius-lg); + background-color: var(--color-light); +} +.contacts-map__container { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; +} +.contacts-map__marker { + transform: translate(-50%, -100%); +} +.contacts-map__marker.is-open { + transform: translate(-50%, calc(-100% - 14px)); +} +.contacts-map__marker.is-open .contacts-map__marker-button { + display: none; +} +.contacts-map__marker.is-open .contacts-map__popup { + display: block; +} +.contacts-map__marker-button { + display: block; + width: 60px; + height: 68px; + padding: 0; + border: 0; + background: none; + cursor: pointer; +} +.contacts-map__marker-icon { + display: block; + width: 60px; + height: 68px; + pointer-events: none; +} +.contacts-map__popup { + position: relative; + display: none; + width: max-content; + max-width: 260px; + min-width: 180px; + padding: 10px 36px 10px 12px; + border-radius: 10px; + background-color: #fff; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16); + font-size: 14px; + line-height: 1.2; +} +.contacts-map__popup::after { + content: ""; + position: absolute; + left: 50%; + bottom: -8px; + width: 16px; + height: 16px; + background-color: #fff; + transform: translateX(-50%) rotate(45deg); + box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.08); +} +.contacts-map__popup-title { + position: relative; + z-index: 1; + margin-bottom: 4px; + font-weight: 600; + color: var(--color-dark); +} +.contacts-map__popup-text { + position: relative; + z-index: 1; + color: var(--color-text); +} +.contacts-map__popup-close { + position: absolute; + top: 7px; + right: 7px; + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + padding: 0; + border: 0; + background: none; + color: #999; + cursor: pointer; + transition: color 0.25s ease; +} +.contacts-map__popup-close:hover { + color: #222; +} + +@media (max-width: 1023.98px) { + .contacts-body { + grid-template-columns: 1fr; + min-height: unset; + } + .contacts-map { + height: clamp(240px, 148.8398px + 24.3094vw, 460px); + order: -1; + } + .contacts-card { + margin-top: 20px; + } +} +@media (max-width: 767.98px) { + .contacts-card__item::before { + top: 0; + } +} +@media (max-width: 575.98px) { + .contacts-card { + margin-top: 15px; + } + .contacts-card__list { + row-gap: 15px; + } + .contacts-card__item::before { + width: 18px; + } + .contacts-card__download-btn { + width: 100%; + } +} +.about-hero { + display: grid; + grid-template-columns: 1.25fr 1fr; + column-gap: clamp(40px, -170px + 27.3438vw, 180px); +} +.about-hero__info { + margin-top: clamp(50px, -70px + 11.7188vw, 80px); + font-size: var(--fs-title-lg); + line-height: 1.3; + font-weight: 600; + color: var(--color-dark); +} +.about-stats { + --gap: clamp(40px, -340px + 37.1094vw, 135px); + display: grid; + grid-template-columns: repeat(4, 1fr); + column-gap: var(--gap); + margin-top: clamp(20px, -4.8619px + 6.6298vw, 80px); +} +.about-stats__item { + position: relative; +} +.about-stats__item::after { + content: ""; + position: absolute; + display: block; + width: 1px; + height: 25px; + top: 0; + bottom: 0; + right: calc(var(--gap) / -2); + margin: auto 0; + background-color: #d8d8e8; +} +.about-stats__item:last-child::after { + display: none; +} +.about-stats__item-value { + font-size: clamp(32px, 24.5414px + 1.989vw, 50px); + line-height: 1.1; + font-weight: 600; + white-space: nowrap; + color: var(--color-dark); +} +.about-stats__item-value span { + font-size: clamp(18px, 15.5138px + 0.663vw, 24px); +} +.about-stats__item-text { + margin-top: 12px; + font-size: 18px; + line-height: 1.3; +} +.about-cards { + display: grid; + row-gap: 40px; + margin-top: var(--space-section); +} +.about-card { + display: grid; + grid-template-columns: 1.7fr 1fr; + column-gap: 40px; + padding-block: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-inline: clamp(20px, 7.5691px + 3.3149vw, 50px); + border-radius: var(--radius-lg); +} +.about-card--first { + background: var(--gradient-grey); +} +.about-card--second { + grid-template-columns: 1fr auto; + border: 1px solid #ededed; +} +.about-card__title { + margin-bottom: clamp(18px, 15.0994px + 0.7735vw, 25px); + font-size: var(--fs-h2-sm); + font-weight: 600; +} +.about-card__img, .about-card__logo { + grid-column: 2/3; + grid-row: 1/4; +} +.about-card__img { + display: flex; + align-self: center; +} +.about-card__logo { + padding-top: 10px; +} +.about-card__logo img { + width: clamp(100px, 47.5px + 6.8359vw, 135px); +} + +@media (max-width: 1023.98px) { + .about-hero { + grid-template-columns: 1fr; + } + .about-hero__img { + width: clamp(345px, 197.6579px + 39.2912vw, 600px); + margin-inline: auto; + order: -1; + } + .about-stats { + grid-template-columns: 1fr 1fr; + row-gap: 40px; + } + .about-stats__item::after { + display: none; + } + .about-cards { + row-gap: 20px; + } + .about-card { + column-gap: 30px; + } +} +@media (max-width: 767.98px) { + .about-hero__info { + margin-top: 40px; + } + .about-stats { + row-gap: 30px; + } + .about-card { + grid-template-columns: 1fr; + } + .about-card__logo { + display: none; + } + .about-card__img { + grid-column: unset; + grid-row: unset; + margin: 5px 0 25px; + } + .about-card__content { + order: 3; + } +} +@media (max-width: 575.98px) { + .about-hero__info { + margin-top: 25px; + } + .about-stats { + column-gap: 30px; + row-gap: 20px; + } + .about-stats__item-text { + margin-top: 8px; + font-size: 15px; + } + .about-cards { + row-gap: 15px; + } +} +.features { + margin-top: var(--space-section); +} +.features-title { + text-align: center; +} +.features-cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 20px; + margin-top: 45px; +} +.features-card { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + padding-block: clamp(20px, 11.7127px + 2.2099vw, 40px); + padding-inline: clamp(20px, 9.6409px + 2.7624vw, 45px); + border-radius: var(--radius-lg); +} +.features-card--first { + border: 1px solid #ededed; +} +.features-card--first .features-card__img { + width: clamp(90px, 60.9945px + 7.7348vw, 160px); + margin-right: clamp(-45px, -9.6409px - 2.7624vw, -20px); + margin-block: clamp(-40px, -11.7127px - 2.2099vw, -20px); +} +.features-card--second { + background: linear-gradient(160deg, #29292d 0%, #083743 100%); +} +.features-card--second .features-card__title, +.features-card--second .features-card__descr { + color: #fff; +} +.features-card--second .features-card__img { + width: clamp(75px, 45.9945px + 7.7348vw, 145px); +} +.features-card--third { + grid-template-columns: 1fr; + grid-column: 2/3; + grid-row: 1/3; + background: var(--gradient-grey); +} +.features-card--third .features-card__img { + align-items: flex-end; + margin-top: clamp(20px, 11.7127px + 2.2099vw, 40px); + margin-bottom: clamp(-40px, -11.7127px - 2.2099vw, -20px); +} +.features-card__title { + font-size: clamp(16px, 10.1989px + 1.547vw, 30px); + line-height: 1.1; + font-weight: 600; + color: var(--color-dark); +} +.features-card__descr { + margin-top: clamp(12px, 4.5414px + 1.989vw, 30px); + padding-right: clamp(10px, -110px + 11.7188vw, 40px); + line-height: 1.3; +} +.features-card__img { + display: flex; + align-items: center; +} +.features-card__img img { + width: 100%; +} +.features-bottom { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + margin-top: 20px; +} +.features-slider { + min-width: 0; +} +.features-slider__wrapper.is-grid { + display: grid; + align-items: stretch; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; +} +.features-item { + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: clamp(140px, 104.779px + 9.3923vw, 225px); + padding: 25px; + line-height: 1.2; + border-radius: var(--radius-lg); + border: 1px solid #ededed; +} +.features-item__top { + display: grid; + align-items: center; + grid-template-columns: 1fr auto; + column-gap: 20px; +} +.features-item__title { + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; + color: var(--color-dark); +} +.features-item__icon { + display: flex; + width: clamp(30px, 21.7127px + 2.2099vw, 50px); + aspect-ratio: 1; +} +.features-item__descr { + margin-top: 20px; + line-height: 1.3; +} +.features-download { + display: flex; + width: 195px; + font-weight: 600; + line-height: 1.2; +} +.features-download__link { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; + padding: 25px; + border-radius: var(--radius-lg); + color: #fff; + background-color: var(--color-red); + transition: background-color 0.25s ease; +} +.features-download__link:hover { + background-color: var(--color-red-dark); +} +.features-download__link span { + display: flex; + align-items: center; + justify-content: center; + width: clamp(36px, 30.1989px + 1.547vw, 50px); + aspect-ratio: 1; + border-radius: 50%; + background-color: #fff; +} +.features-download__link span::before { + content: ""; + display: block; + width: 13px; + height: 13px; + background: var(--icon-arrow-up) center no-repeat; + background-size: contain; +} + +@media (max-width: 1023.98px) { + .features-card__descr { + font-size: 18px; + } + .features-bottom { + grid-template-columns: 1fr; + } + .features-slider__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: calc((100% - 30px) / 2.5); + } + .features-item__descr { + font-size: 18px; + } + .features-download { + display: block; + width: unset; + margin-top: 20px; + } + .features-download__link { + flex-direction: row; + align-items: center; + } +} +@media (max-width: 767.98px) { + .features-cards { + grid-template-columns: 1fr; + margin-top: 35px; + } + .features-card--third { + grid-column: unset; + grid-row: unset; + } + .features-card__descr br { + display: none; + } + .features-slider__wrapper.is-grid { + grid-auto-columns: calc((100% - 7.5px) / 1.5); + } +} +@media (max-width: 575.98px) { + .features-cards { + row-gap: 15px; + margin-top: 25px; + } + .features-card__descr { + margin-top: 15px; + font-size: 15px; + } + .features-bottom { + margin-top: 15px; + } + .features-item { + padding: 20px; + } + .features-item__descr { + font-size: 15px; + } + .features-download { + margin-top: 15px; + } + .features-download__link { + padding: 20px; + } +} +.vacancies-img { + aspect-ratio: 1280/300; + overflow: hidden; + border-radius: var(--radius-md); +} +.vacancies-img img { + width: 100%; + height: 100%; + object-fit: cover; +} +.vacancies-subtitle { + margin-top: clamp(40px, 23.4254px + 4.4199vw, 80px); + font-size: var(--fs-h2-sm); + text-align: center; +} +.vacancies-subtitle span { + display: inline-block; + width: 2ch; + margin-right: -2ch; + font-size: 13px; + font-weight: 400; + text-align: left; + vertical-align: text-top; +} +.vacancies-filter { + position: relative; + max-width: 430px; + margin: 25px auto 0; + font-size: 18px; + line-height: 1.3; + user-select: none; + -webkit-user-select: none; +} +.vacancies-filter__trigger { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + column-gap: 15px; + width: 100%; + height: 64px; + padding-inline: 20px; + background-color: #fff; + border: 1px solid #efefef; + border-radius: 10px; + cursor: pointer; + transition: border-color 0.25s ease; +} +.vacancies-filter__trigger::after { + content: ""; + display: block; + width: 12px; + height: 12px; + flex-shrink: 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: transform 0.25s ease; +} +.vacancies-filter__value { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-text); +} +.vacancies-filter__options { + position: absolute; + width: 100%; + top: calc(100% + 6px); + left: 0; + z-index: 2; + opacity: 0; + overflow: hidden; + visibility: hidden; + background-color: #fff; + border-radius: 10px; + border: 1px solid #ccc; + transition: opacity 0.25s ease, visibility 0.25s ease; +} +.vacancies-filter__link { + display: block; + padding: 15px 20px; + color: inherit; + cursor: pointer; + outline: none; + transition: color 0.25s ease, background-color 0.25s ease; +} +.vacancies-filter__link:hover, .vacancies-filter__link:focus { + background-color: var(--color-grey); +} +.vacancies-filter__option.is-selected a { + background-color: var(--color-grey); +} +.vacancies-filter.is-open .vacancies-filter__trigger { + border-color: #ccc; +} +.vacancies-filter.is-open .vacancies-filter__trigger::after { + transform: rotate(-180deg); +} +.vacancies-filter.is-open .vacancies-filter__options { + opacity: 1; + visibility: visible; +} +.vacancies-list { + display: grid; + row-gap: 20px; + margin-top: clamp(30px, -15px + 5.8594vw, 60px); + transition: opacity 0.25s ease; +} +.vacancies-list.is-loading { + opacity: 0; +} +.vacancies-item { + border-radius: var(--radius-md); + background-color: #fafaff; + border: 1px solid transparent; + transition: background-color 0.25s ease, border-color 0.25s ease; +} +.vacancies-item__header { + position: relative; + padding: 25px 80px 25px 25px; + line-height: 1.2; + cursor: pointer; +} +.vacancies-item__header::after { + content: ""; + position: absolute; + display: block; + width: 36px; + aspect-ratio: 1; + top: 25px; + right: 25px; + background: var(--icon-angle-round) center no-repeat; + background-size: contain; + transition: transform 0.25s ease; +} +.vacancies-item__title { + font-size: var(--fs-title-sm); + font-weight: 600; + color: var(--color-dark); +} +.vacancies-item__descr { + margin-top: 15px; + font-size: 18px; + line-height: 1.3; +} +.vacancies-item__city { + position: relative; + margin-top: 15px; + padding-left: 1.25em; + color: var(--color-dark); +} +.vacancies-item__city::before { + content: ""; + position: absolute; + display: block; + width: 1em; + height: 1em; + top: 0.1em; + left: 0; + background: var(--icon-location-alt) center no-repeat; + background-size: contain; +} +.vacancies-item__body { + position: relative; + height: 0; + opacity: 0; + overflow: hidden; + visibility: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; +} +.vacancies-item__body::before { + content: ""; + position: absolute; + display: block; + height: 1px; + top: 0; + left: 25px; + right: 25px; + background-color: #ededed; +} +.vacancies-item__content { + padding: 25px; +} +.vacancies-item__respond { + padding: 15px 25px 30px; +} +.vacancies-item.is-active { + border-color: #ededed; + background-color: transparent; +} +.vacancies-item.is-active .vacancies-item__header::after { + transform: rotate(-180deg); +} +.vacancies-item.is-active .vacancies-item__body { + opacity: 1; + visibility: visible; +} +.vacancies-showmore { + margin-top: clamp(30px, -15px + 5.8594vw, 60px); + text-align: center; + transition: opacity 0.25s ease; +} +.vacancies-showmore.is-loading { + opacity: 0; +} +.vacancies-showmore.is-hidden { + display: none; +} +.vacancies-showmore__btn { + max-width: 265px; + width: 100%; +} + +@media (max-width: 1023.98px) { + .vacancies-filter__trigger { + height: 60px; + } +} +@media (max-width: 767.98px) { + .vacancies-filter { + max-width: unset; + } + .vacancies-filter__trigger { + height: 56px; + } + .vacancies-filter__link { + padding-block: 12px; + } + .vacancies-img { + aspect-ratio: 1280/560; + } + .vacancies-item__respond { + padding-top: 10px; + } + .vacancies-item__respond-btn { + width: 100%; + } + .vacancies-showmore__btn { + max-width: unset; + } +} +@media (max-width: 575.98px) { + .vacancies-filter { + margin-top: 20px; + font-size: 15px; + } + .vacancies-filter__trigger { + height: 50px; + } + .vacancies-filter__trigger::after { + width: 10px; + height: 10px; + } + .vacancies-filter__link { + padding-block: 10px; + } + .vacancies-list { + row-gap: 15px; + margin-top: 25px; + } + .vacancies-subtitle span { + font-size: 12px; + } + .vacancies-item__header { + padding: 20px 70px 20px 20px; + } + .vacancies-item__header::after { + width: 30px; + top: 20px; + right: 20px; + } + .vacancies-item__descr { + margin-top: 10px; + font-size: 15px; + } + .vacancies-item__city { + margin-top: 10px; + } + .vacancies-item__content { + padding: 20px; + } + .vacancies-item__respond { + padding: 5px 20px 25px; + } + .vacancies-showmore { + margin-top: 25px; + } +} +.feedback { + margin-top: var(--space-section); +} +.feedback-body { + padding-top: clamp(25px, 10.4972px + 3.8674vw, 60px); + padding-bottom: clamp(30px, 13.4254px + 4.4199vw, 70px); + padding-inline: clamp(20px, 1.3536px + 4.9724vw, 65px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); +} +.feedback-descr { + margin-top: 25px; + line-height: 1.3; +} +.feedback-form__inputs { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 10px; + margin-top: 40px; +} +.feedback-form__file { + margin-top: 20px; +} +.feedback-form__submit { + margin-top: 40px; +} +.feedback-form__submit-btn { + max-width: 312px; + width: 100%; +} + +@media (max-width: 767.98px) { + .feedback-descr { + margin-top: 20px; + } + .feedback-form__inputs { + grid-template-columns: 1fr; + row-gap: 8px; + margin-top: 30px; + } + .feedback-form__submit-btn { + max-width: unset; + } +} +@media (max-width: 575.98px) { + .feedback-descr { + margin-top: 12px; + } + .feedback-form__inputs { + margin-top: 20px; + } + .feedback-form__file { + margin-top: 15px; + } + .feedback-form__submit { + margin-top: 25px; + } +} +.info { + margin-top: var(--space-section); +} +.info-title { + font-size: var(--fs-h2-sm); +} +.info-body { + padding-top: clamp(25px, 14.6409px + 2.7624vw, 50px); + padding-bottom: clamp(25px, 10.4972px + 3.8674vw, 60px); + padding-inline: clamp(20px, 7.5691px + 3.3149vw, 50px); + border-radius: var(--radius-lg); + border: 1px solid #ededed; +} +.info-content { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: clamp(20px, 7.5691px + 3.3149vw, 50px); + row-gap: clamp(20px, 13.7845px + 1.6575vw, 35px); + margin-top: clamp(20px, 13.7845px + 1.6575vw, 35px); +} +.info-content__row { + grid-column: 1/-1; +} + +@media (max-width: 1023.98px) { + .info-content { + grid-template-columns: 1fr; + } +} +.error { + display: flex; + flex-direction: column; + justify-content: center; + margin: 260px 0 100px; + flex: 1; +} +.error-body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; +} +.error-title { + font-size: clamp(80px, 67.5691px + 3.3149vw, 110px); +} +.error-gohome { + margin-top: clamp(20px, 11.7127px + 2.2099vw, 40px); +} +.error-gohome__btn { + width: clamp(180px, 155.1381px + 6.6298vw, 240px); +} + +@media (max-width: 1279.98px) { + .error { + margin-top: clamp(160px, 126.8508px + 8.8398vw, 240px); + } +} +.cookie-consent { + --offset: 40px; + position: fixed; + left: 0; + right: 0; + z-index: 5; + opacity: 0; + bottom: var(--offset); + transform: translateY(calc(100% + var(--offset))); + transition: transform 0.3s ease, opacity 0.3s ease; +} +.cookie-consent.is-active { + transform: translateY(0); + opacity: 1; +} +.cookie-consent__dialog { + display: grid; + align-items: center; + grid-template-columns: auto 1fr auto; + max-width: 800px; + margin-left: auto; + column-gap: 20px; + padding: 20px; + border-radius: var(--radius-sm); + background-color: var(--color-grey); +} +.cookie-consent__dialog::before { + content: ""; + display: block; + width: 36px; + aspect-ratio: 1; + background: var(--icon-cookie) center no-repeat; + background-size: contain; +} +.cookie-consent__info { + font-size: 14px; + line-height: 1.2; + color: var(--color-dark); +} +.cookie-consent__info a { + color: var(--color-red); + transition: color 0.25s ease; +} +.cookie-consent__info a:hover { + color: var(--color-red-dark); +} +.cookie-consent__buttons { + display: flex; + column-gap: 15px; +} +.cookie-consent__buttons .btn { + height: 48px; + font-size: 16px; +} +.cookie-consent__accept-btn { + padding: 0 25px; +} +.cookie-consent__reject-btn { + color: var(--color-grey-dark); +} +.cookie-consent__reject-btn:hover { + color: var(--color-red); +} + +@media (max-width: 1279.98px) { + .cookie-consent { + --offset: 20px; + } +} +@media (max-width: 767.98px) { + .cookie-consent__dialog { + align-items: start; + grid-template-columns: 1fr auto; + max-width: unset; + } + .cookie-consent__dialog::before { + grid-column: 2/3; + grid-row: 1/3; + } + .cookie-consent__info { + font-size: 12px; + } + .cookie-consent__buttons { + justify-self: start; + margin-top: 15px; + } + .cookie-consent__buttons .btn { + height: 40px; + font-size: 14px; + } + .cookie-consent__reject-btn { + order: 2; + } + .cookie-consent__accept-btn { + padding: 0 20px; + } +} +@media (max-width: 575.98px) { + .cookie-consent { + --offset: 15px; + } + .cookie-consent__dialog::before { + width: 28px; + } + .cookie-consent__info { + font-size: 10px; + } + .cookie-consent__buttons .btn { + height: 30px; + font-size: 12px; + } + .cookie-consent__accept-btn { + padding: 0 15px; + } +} +.specs { + margin-top: var(--space-section); + scroll-margin-top: 140px; +} +.specs-body { + display: grid; + grid-template-columns: 300px 1fr; + column-gap: clamp(45px, -55px + 9.7656vw, 70px); +} +.specs-tabs__list { + display: grid; + row-gap: 20px; + border-right: 1px solid #e8e6e6; +} +.specs-tabs__item { + position: relative; + padding-right: 30px; + font-size: 18px; + line-height: 1.1; + font-weight: 600; + color: var(--color-dark); + cursor: pointer; + transition: color 0.25s ease; +} +.specs-tabs__item::after { + content: ""; + position: absolute; + display: block; + top: 0; + right: -1px; + width: 1px; + height: 100%; + opacity: 0; + background-color: var(--color-red); + transition: opacity 0.25s ease; +} +.specs-tabs__item.is-active { + color: var(--color-red); +} +.specs-tabs__item.is-active::after { + opacity: 1; +} +.specs-panel { + animation: fade-in 0.5s ease both; +} +.specs-panel[hidden] { + display: none; +} +.specs-panel__title { + font-size: var(--fs-title-sm); +} +.specs-panel__content { + margin-top: clamp(20px, 13.7845px + 1.6575vw, 35px); +} +.specs-panel__footnotes { + margin-top: clamp(20px, 13.7845px + 1.6575vw, 35px); + font-size: 14px; +} +.specs-panel__footnotes p { + margin-bottom: 1.25em; +} +.specs-panel__footnotes p:last-child { + margin-bottom: 0; +} + +@media (max-width: 1023.98px) { + .specs-body { + grid-template-columns: 1fr; + } + .specs-tabs { + display: flex; + margin-inline: -20px; + padding-inline: 20px; + overflow-x: auto; + scrollbar-width: none; + } + .specs-tabs::-webkit-scrollbar { + width: 0; + } + .specs-tabs__list { + grid-auto-flow: column; + column-gap: 20px; + border-right: none; + border-bottom: 1px solid #e8e6e6; + } + .specs-tabs__item { + width: clamp(160px, 125.3313px + 9.245vw, 220px); + padding: 0 0 20px; + font-size: 16px; + } + .specs-tabs__item::after { + right: 0; + top: unset; + bottom: -1px; + width: 100%; + height: 1px; + } + .specs-panels { + margin-top: clamp(25px, 10.5547px + 3.8521vw, 50px); + } +} +@media (max-width: 767.98px) { + .specs-tabs__item { + font-size: 14px; + } + .specs-panel__footnotes { + font-size: 12px; + } +} +@media (max-width: 575.98px) { + .specs-tabs { + margin-inline: -15px; + padding-inline: 15px; + } + .specs-tabs__list { + column-gap: 15px; + } + .specs-tabs__item { + padding-bottom: 15px; + font-size: 12px; + } + .specs-panel__footnotes { + font-size: 10px; + } +} +@media (hover: hover) { + .specs-tabs__item:hover { + color: var(--color-red); + } +} \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/fonts/Onest-Bold.woff2 b/wp-content/themes/hantico/assets/fonts/Onest-Bold.woff2 new file mode 100644 index 0000000..3216049 Binary files /dev/null and b/wp-content/themes/hantico/assets/fonts/Onest-Bold.woff2 differ diff --git a/wp-content/themes/hantico/assets/fonts/Onest-Medium.woff2 b/wp-content/themes/hantico/assets/fonts/Onest-Medium.woff2 new file mode 100644 index 0000000..3e6a7c1 Binary files /dev/null and b/wp-content/themes/hantico/assets/fonts/Onest-Medium.woff2 differ diff --git a/wp-content/themes/hantico/assets/fonts/Onest-Regular.woff2 b/wp-content/themes/hantico/assets/fonts/Onest-Regular.woff2 new file mode 100644 index 0000000..c43e207 Binary files /dev/null and b/wp-content/themes/hantico/assets/fonts/Onest-Regular.woff2 differ diff --git a/wp-content/themes/hantico/assets/fonts/Onest-SemiBold.woff2 b/wp-content/themes/hantico/assets/fonts/Onest-SemiBold.woff2 new file mode 100644 index 0000000..70696e3 Binary files /dev/null and b/wp-content/themes/hantico/assets/fonts/Onest-SemiBold.woff2 differ diff --git a/wp-content/themes/hantico/assets/img/bg/dl-bg.webp b/wp-content/themes/hantico/assets/img/bg/dl-bg.webp new file mode 100644 index 0000000..421a5ab Binary files /dev/null and b/wp-content/themes/hantico/assets/img/bg/dl-bg.webp differ diff --git a/wp-content/themes/hantico/assets/img/bg/logo-bg.svg b/wp-content/themes/hantico/assets/img/bg/logo-bg.svg new file mode 100644 index 0000000..bb2c589 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/bg/logo-bg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/bg/vacancies.webp b/wp-content/themes/hantico/assets/img/bg/vacancies.webp new file mode 100644 index 0000000..dc5936b Binary files /dev/null and b/wp-content/themes/hantico/assets/img/bg/vacancies.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/article-lg.webp b/wp-content/themes/hantico/assets/img/content/article-lg.webp new file mode 100644 index 0000000..61ea458 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/article-lg.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/article-md.webp b/wp-content/themes/hantico/assets/img/content/article-md.webp new file mode 100644 index 0000000..aacab11 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/article-md.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/article1.webp b/wp-content/themes/hantico/assets/img/content/article1.webp new file mode 100644 index 0000000..dd511a0 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/article1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/article2.webp b/wp-content/themes/hantico/assets/img/content/article2.webp new file mode 100644 index 0000000..e8b09b5 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/article2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/article3.webp b/wp-content/themes/hantico/assets/img/content/article3.webp new file mode 100644 index 0000000..e44830e Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/article3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/bag.webp b/wp-content/themes/hantico/assets/img/content/bag.webp new file mode 100644 index 0000000..64f3d8f Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/bag.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/car.webp b/wp-content/themes/hantico/assets/img/content/car.webp new file mode 100644 index 0000000..4e0213f Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/car.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/certs.webp b/wp-content/themes/hantico/assets/img/content/certs.webp new file mode 100644 index 0000000..006a9cb Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/certs.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/client1.webp b/wp-content/themes/hantico/assets/img/content/client1.webp new file mode 100644 index 0000000..9b2c021 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/client1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/client2.webp b/wp-content/themes/hantico/assets/img/content/client2.webp new file mode 100644 index 0000000..0732fb1 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/client2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/client3.webp b/wp-content/themes/hantico/assets/img/content/client3.webp new file mode 100644 index 0000000..97dda43 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/client3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/client4.webp b/wp-content/themes/hantico/assets/img/content/client4.webp new file mode 100644 index 0000000..fd1d1d9 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/client4.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/coin1.webp b/wp-content/themes/hantico/assets/img/content/coin1.webp new file mode 100644 index 0000000..3254ae5 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/coin1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/coin2.webp b/wp-content/themes/hantico/assets/img/content/coin2.webp new file mode 100644 index 0000000..c589cd9 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/coin2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/coin3.webp b/wp-content/themes/hantico/assets/img/content/coin3.webp new file mode 100644 index 0000000..3708777 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/coin3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/direction1.webp b/wp-content/themes/hantico/assets/img/content/direction1.webp new file mode 100644 index 0000000..91cabd5 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/direction1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/direction2.webp b/wp-content/themes/hantico/assets/img/content/direction2.webp new file mode 100644 index 0000000..1afbb84 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/direction2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/direction3.webp b/wp-content/themes/hantico/assets/img/content/direction3.webp new file mode 100644 index 0000000..090f902 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/direction3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/feature1.webp b/wp-content/themes/hantico/assets/img/content/feature1.webp new file mode 100644 index 0000000..528371c Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/feature1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/feature2.svg b/wp-content/themes/hantico/assets/img/content/feature2.svg new file mode 100644 index 0000000..e832859 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/content/feature2.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/content/feature3.webp b/wp-content/themes/hantico/assets/img/content/feature3.webp new file mode 100644 index 0000000..725dbe6 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/feature3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/main.webp b/wp-content/themes/hantico/assets/img/content/main.webp new file mode 100644 index 0000000..5a1762f Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/main.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/message1.webp b/wp-content/themes/hantico/assets/img/content/message1.webp new file mode 100644 index 0000000..eb08a38 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/message1.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/message2.webp b/wp-content/themes/hantico/assets/img/content/message2.webp new file mode 100644 index 0000000..fcf8060 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/message2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/message3.webp b/wp-content/themes/hantico/assets/img/content/message3.webp new file mode 100644 index 0000000..b6d235a Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/message3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/people.webp b/wp-content/themes/hantico/assets/img/content/people.webp new file mode 100644 index 0000000..341bc2a Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/people.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/phone.webp b/wp-content/themes/hantico/assets/img/content/phone.webp new file mode 100644 index 0000000..ed676fe Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/phone.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/phone2.webp b/wp-content/themes/hantico/assets/img/content/phone2.webp new file mode 100644 index 0000000..cb44a03 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/phone2.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/phone3.webp b/wp-content/themes/hantico/assets/img/content/phone3.webp new file mode 100644 index 0000000..581eeb6 Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/phone3.webp differ diff --git a/wp-content/themes/hantico/assets/img/content/qrcode.svg b/wp-content/themes/hantico/assets/img/content/qrcode.svg new file mode 100644 index 0000000..73db961 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/content/qrcode.svg @@ -0,0 +1,701 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/content/step2.svg b/wp-content/themes/hantico/assets/img/content/step2.svg new file mode 100644 index 0000000..f5c2ac1 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/content/step2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/content/step3.svg b/wp-content/themes/hantico/assets/img/content/step3.svg new file mode 100644 index 0000000..2f3ddd2 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/content/step3.svg @@ -0,0 +1,16 @@ + +
+ + + + +
+ + + + + + + + +
diff --git a/wp-content/themes/hantico/assets/img/content/step4.svg b/wp-content/themes/hantico/assets/img/content/step4.svg new file mode 100644 index 0000000..191c525 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/content/step4.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/content/users.webp b/wp-content/themes/hantico/assets/img/content/users.webp new file mode 100644 index 0000000..62a967f Binary files /dev/null and b/wp-content/themes/hantico/assets/img/content/users.webp differ diff --git a/wp-content/themes/hantico/assets/img/icons/advantage1.svg b/wp-content/themes/hantico/assets/img/icons/advantage1.svg new file mode 100644 index 0000000..dcf23a8 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage2.svg b/wp-content/themes/hantico/assets/img/icons/advantage2.svg new file mode 100644 index 0000000..a0e741b --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage3.svg b/wp-content/themes/hantico/assets/img/icons/advantage3.svg new file mode 100644 index 0000000..87625d5 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage3.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage4.svg b/wp-content/themes/hantico/assets/img/icons/advantage4.svg new file mode 100644 index 0000000..f1ed5b3 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage4.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage5.svg b/wp-content/themes/hantico/assets/img/icons/advantage5.svg new file mode 100644 index 0000000..52cdb0a --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage5.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage6.svg b/wp-content/themes/hantico/assets/img/icons/advantage6.svg new file mode 100644 index 0000000..c2c573d --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage6.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage7.svg b/wp-content/themes/hantico/assets/img/icons/advantage7.svg new file mode 100644 index 0000000..cadabe3 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage7.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage8.svg b/wp-content/themes/hantico/assets/img/icons/advantage8.svg new file mode 100644 index 0000000..9302f1e --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage8.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/advantage9.svg b/wp-content/themes/hantico/assets/img/icons/advantage9.svg new file mode 100644 index 0000000..7e00a35 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/advantage9.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/appgallery-black.svg b/wp-content/themes/hantico/assets/img/icons/appgallery-black.svg new file mode 100644 index 0000000..ec00e94 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/appgallery-black.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/appgallery-lg.svg b/wp-content/themes/hantico/assets/img/icons/appgallery-lg.svg new file mode 100644 index 0000000..65e98ba --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/appgallery-lg.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/appgallery.svg b/wp-content/themes/hantico/assets/img/icons/appgallery.svg new file mode 100644 index 0000000..58a7bc0 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/appgallery.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/appstore-lg.svg b/wp-content/themes/hantico/assets/img/icons/appstore-lg.svg new file mode 100644 index 0000000..f59c282 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/appstore-lg.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/appstore.svg b/wp-content/themes/hantico/assets/img/icons/appstore.svg new file mode 100644 index 0000000..bc97cc0 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/appstore.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/dzen.svg b/wp-content/themes/hantico/assets/img/icons/dzen.svg new file mode 100644 index 0000000..d65af88 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/dzen.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/dzen2.svg b/wp-content/themes/hantico/assets/img/icons/dzen2.svg new file mode 100644 index 0000000..aeb4a5f --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/dzen2.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/favicon.png b/wp-content/themes/hantico/assets/img/icons/favicon.png new file mode 100644 index 0000000..76f874b Binary files /dev/null and b/wp-content/themes/hantico/assets/img/icons/favicon.png differ diff --git a/wp-content/themes/hantico/assets/img/icons/feature1.svg b/wp-content/themes/hantico/assets/img/icons/feature1.svg new file mode 100644 index 0000000..177c2f4 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/feature1.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/feature2.svg b/wp-content/themes/hantico/assets/img/icons/feature2.svg new file mode 100644 index 0000000..51dd9d1 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/feature2.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/feature3.svg b/wp-content/themes/hantico/assets/img/icons/feature3.svg new file mode 100644 index 0000000..622aa1e --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/feature3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/flag.svg b/wp-content/themes/hantico/assets/img/icons/flag.svg new file mode 100644 index 0000000..2e10c86 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/flag.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/gplay-black.svg b/wp-content/themes/hantico/assets/img/icons/gplay-black.svg new file mode 100644 index 0000000..cfad9dc --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/gplay-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/gplay-lg.svg b/wp-content/themes/hantico/assets/img/icons/gplay-lg.svg new file mode 100644 index 0000000..7db76af --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/gplay-lg.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/gplay.svg b/wp-content/themes/hantico/assets/img/icons/gplay.svg new file mode 100644 index 0000000..3389045 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/gplay.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/instagram.svg b/wp-content/themes/hantico/assets/img/icons/instagram.svg new file mode 100644 index 0000000..98fb9fe --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/instagram.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/lightning.svg b/wp-content/themes/hantico/assets/img/icons/lightning.svg new file mode 100644 index 0000000..0f2bd2b --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/lightning.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/logo.svg b/wp-content/themes/hantico/assets/img/icons/logo.svg new file mode 100644 index 0000000..cc5ffb3 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/logo2.svg b/wp-content/themes/hantico/assets/img/icons/logo2.svg new file mode 100644 index 0000000..6831986 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/logo2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/placemark.svg b/wp-content/themes/hantico/assets/img/icons/placemark.svg new file mode 100644 index 0000000..f76c1dc --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/placemark.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/img/icons/registry.svg b/wp-content/themes/hantico/assets/img/icons/registry.svg new file mode 100644 index 0000000..d0e06c6 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/registry.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/rustore-lg.svg b/wp-content/themes/hantico/assets/img/icons/rustore-lg.svg new file mode 100644 index 0000000..078eec3 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/rustore-lg.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/rustore.svg b/wp-content/themes/hantico/assets/img/icons/rustore.svg new file mode 100644 index 0000000..7d2b519 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/rustore.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/rutube.svg b/wp-content/themes/hantico/assets/img/icons/rutube.svg new file mode 100644 index 0000000..add328b --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/rutube.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service1.svg b/wp-content/themes/hantico/assets/img/icons/service1.svg new file mode 100644 index 0000000..fbd0bdb --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service1.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service2.svg b/wp-content/themes/hantico/assets/img/icons/service2.svg new file mode 100644 index 0000000..0c8fcb0 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service2.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service3.svg b/wp-content/themes/hantico/assets/img/icons/service3.svg new file mode 100644 index 0000000..6246868 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service3.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service4.svg b/wp-content/themes/hantico/assets/img/icons/service4.svg new file mode 100644 index 0000000..9b2d7b4 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service4.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service5.svg b/wp-content/themes/hantico/assets/img/icons/service5.svg new file mode 100644 index 0000000..f3b5957 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service5.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service6.svg b/wp-content/themes/hantico/assets/img/icons/service6.svg new file mode 100644 index 0000000..4d7d2da --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service6.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service7.svg b/wp-content/themes/hantico/assets/img/icons/service7.svg new file mode 100644 index 0000000..e005de7 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service7.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/service8.svg b/wp-content/themes/hantico/assets/img/icons/service8.svg new file mode 100644 index 0000000..6526cae --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/service8.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/stopwatch.svg b/wp-content/themes/hantico/assets/img/icons/stopwatch.svg new file mode 100644 index 0000000..bdb1355 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/stopwatch.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/hantico/assets/img/icons/telegram.svg b/wp-content/themes/hantico/assets/img/icons/telegram.svg new file mode 100644 index 0000000..50c9f42 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/telegram.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/threads.svg b/wp-content/themes/hantico/assets/img/icons/threads.svg new file mode 100644 index 0000000..20294d4 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/threads.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/tiktok.svg b/wp-content/themes/hantico/assets/img/icons/tiktok.svg new file mode 100644 index 0000000..db4fe53 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/tiktok.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/vk.svg b/wp-content/themes/hantico/assets/img/icons/vk.svg new file mode 100644 index 0000000..6df2c6d --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/vk.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/img/icons/youtube.svg b/wp-content/themes/hantico/assets/img/icons/youtube.svg new file mode 100644 index 0000000..f8fe001 --- /dev/null +++ b/wp-content/themes/hantico/assets/img/icons/youtube.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/hantico/assets/js/map.js b/wp-content/themes/hantico/assets/js/map.js new file mode 100644 index 0000000..7531ec3 --- /dev/null +++ b/wp-content/themes/hantico/assets/js/map.js @@ -0,0 +1,70 @@ +async function initContactsMap() { + if (!window.ymaps3) { + console.error('Yandex Maps API is not loaded'); + return; + } + await ymaps3.ready; + ymaps3.import.registerCdn('https://cdn.jsdelivr.net/npm/{package}', [ + '@yandex/ymaps3-default-ui-theme@0.0' + ]); + const { + YMap, + YMapDefaultSchemeLayer, + YMapDefaultFeaturesLayer, + YMapMarker, + YMapControls + } = ymaps3; + const { YMapZoomControl } = await ymaps3.import('@yandex/ymaps3-default-ui-theme'); + const mapElement = document.getElementById('map'); + if (!mapElement) return; + const { coordinates, address, markerIconUrl } = window.contactsMapData ?? {}; + if (!coordinates || !address) { + console.error('contactsMapData is missing required fields'); + return; + } + const map = new YMap( + mapElement, + { + location: { center: coordinates, zoom: 16 }, + behaviors: ['drag', 'dblClick', 'pinchZoom', 'magnifier'], + showScaleInCopyrights: true + }, + [ + new YMapDefaultSchemeLayer({}), + new YMapDefaultFeaturesLayer({}) + ] + ); + map.addChild(new YMapMarker({ coordinates }, createContactsMarker(address, markerIconUrl))); + const zoomControl = new YMapControls({ position: 'right' }); + zoomControl.addChild(new YMapZoomControl({})); + map.addChild(zoomControl); +} +function createContactsMarker(address, iconUrl) { + const el = document.createElement('div'); + el.className = 'contacts-map__marker'; + el.innerHTML = ` + +
+ +
Наш адрес:
+
${address}
+
+ `; + el.querySelector('.contacts-map__marker-button').addEventListener('click', (e) => { + e.stopPropagation(); + el.classList.add('is-open'); + }); + el.querySelector('.contacts-map__popup-close').addEventListener('click', (e) => { + e.stopPropagation(); + el.classList.remove('is-open'); + }); + document.addEventListener('click', () => el.classList.remove('is-open')); + return el; +} +document.addEventListener('DOMContentLoaded', initContactsMap); \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/js/scripts.js b/wp-content/themes/hantico/assets/js/scripts.js new file mode 100644 index 0000000..2e01e47 --- /dev/null +++ b/wp-content/themes/hantico/assets/js/scripts.js @@ -0,0 +1,1603 @@ +document.addEventListener('DOMContentLoaded', () => { + + // Брейкпоинты + const sizeXL = window.matchMedia('(min-width: 1280px)'); + const sizeLG = window.matchMedia('(min-width: 1024px)'); + const sizeMD = window.matchMedia('(min-width: 768px)'); + const sizeSM = window.matchMedia('(min-width: 576px)'); + const breakpoints = [sizeSM, sizeMD, sizeLG, sizeXL]; + + + // Выпадающее мобильное меню + const menuBtn = document.querySelector('.header-buttons__menu-btn'); + const headerDropdown = document.querySelector('.header-dropdown'); + if (menuBtn && headerDropdown) { + menuBtn.addEventListener('click', function () { + this.classList.toggle('is-active'); + if (this.classList.contains('is-active')) { + headerDropdown.classList.add('is-active'); + ScrollLock.lock({ + scrollable: ['.header-dropdown'], + fixed: ['.header-main'] + }); + } else { + headerDropdown.classList.remove('is-active'); + setTimeout(() => { + ScrollLock.unlock(); + }, 400); + } + }); + sizeLG.addEventListener('change', (e) => { + if (e.matches && menuBtn?.classList.contains('is-active')) { + menuBtn.classList.remove('is-active'); + headerDropdown?.classList.remove('is-active'); + ScrollLock.unlock(); + } + }); + } + + + // Открытие подменю в шапке на tablet + const headerMain = document.querySelector('.header-main'); + if (headerMain) { + const parentLinks = headerMain.querySelectorAll('.header-menu__list > li.has-children > a'); + parentLinks.forEach((link) => { + link.addEventListener('click', (event) => { + const item = link.closest('.header-menu__item.has-children'); + const submenu = item?.querySelector(':scope > .header-menu__submenu'); + if (!item || !submenu) return; + const isSubmenuVisible = window.getComputedStyle(submenu).visibility === 'visible'; + if (isSubmenuVisible) return; + event.preventDefault(); + }); + }); + } + + + // Подменю-аккордеон для mobile + function initMenuAccordion(prefix) { + const toggleSelector = `.${prefix}-menu__submenu-toggle`; + const itemSelector = `.${prefix}-menu__item.has-children`; + const submenuSelector = `.${prefix}-menu__submenu`; + document.querySelectorAll(toggleSelector).forEach(toggle => { + toggle.addEventListener('click', () => { + const item = toggle.closest(itemSelector); + if (!item || item.classList.contains('is-animating')) return; + const submenu = item.querySelector(`:scope > ${submenuSelector}`); + if (!submenu) return; + const isOpen = item.classList.contains('is-open'); + isOpen + ? closeSubmenu(submenu, item, toggle) + : openSubmenu(submenu, item, toggle); + }); + }); + } + function openSubmenu(submenu, item, toggle) { + item.classList.add('is-animating'); + submenu.style.height = '0px'; + item.classList.add('is-open'); + toggle.setAttribute('aria-expanded', 'true'); + submenu.offsetHeight; + submenu.style.height = `${submenu.scrollHeight}px`; + submenu.addEventListener('transitionend', function onTransitionEnd(event) { + if (event.propertyName !== 'height') return; + submenu.style.height = 'auto'; + item.classList.remove('is-animating'); + submenu.removeEventListener('transitionend', onTransitionEnd); + }); + } + function closeSubmenu(submenu, item, toggle) { + item.classList.add('is-animating'); + submenu.style.height = `${submenu.scrollHeight}px`; + submenu.offsetHeight; + item.classList.remove('is-open'); + toggle.setAttribute('aria-expanded', 'false'); + submenu.style.height = '0px'; + submenu.addEventListener('transitionend', function onTransitionEnd(event) { + if (event.propertyName !== 'height') return; + submenu.style.removeProperty('height'); + item.classList.remove('is-animating'); + submenu.removeEventListener('transitionend', onTransitionEnd); + }); + } + initMenuAccordion('header'); + initMenuAccordion('footer'); + + + // Бегущая строка с текстом + function initScroller(scroller) { + const track = scroller.querySelector('.hero-scroller__track'); + const originalGroup = scroller.querySelector('.hero-scroller__group'); + if (!track || !originalGroup) return; + const speed = Number(scroller.dataset.speed) || 80; + let offset = 0; + let lastTime = 0; + let rafId = null; + function clearClones() { + track.querySelectorAll('[data-scroller-clone]').forEach((clone) => { + clone.remove(); + }); + } + function fillTrack() { + clearClones(); + const scrollerWidth = scroller.offsetWidth; + const groupWidth = originalGroup.offsetWidth; + if (!scrollerWidth || !groupWidth) return; + let trackWidth = groupWidth; + while (trackWidth < scrollerWidth + groupWidth * 2) { + const clone = originalGroup.cloneNode(true); + clone.setAttribute('data-scroller-clone', ''); + clone.setAttribute('aria-hidden', 'true'); + track.appendChild(clone); + trackWidth += groupWidth; + } + } + function animate(time) { + if (!lastTime) lastTime = time; + const delta = (time - lastTime) / 1000; + lastTime = time; + offset -= speed * delta; + let firstGroup = track.firstElementChild; + while (firstGroup && Math.abs(offset) >= firstGroup.offsetWidth) { + offset += firstGroup.offsetWidth; + track.appendChild(firstGroup); + firstGroup = track.firstElementChild; + } + track.style.transform = `translate3d(${offset}px, 0, 0)`; + rafId = requestAnimationFrame(animate); + } + function restart() { + cancelAnimationFrame(rafId); + offset = 0; + lastTime = 0; + track.style.transform = 'translate3d(0, 0, 0)'; + fillTrack(); + rafId = requestAnimationFrame(animate); + } + const resizeObserver = new ResizeObserver(restart); + resizeObserver.observe(scroller); + if (document.fonts) { + document.fonts.ready.then(restart); + } else { + restart(); + } + } + document.querySelectorAll('[data-scroller]').forEach(initScroller); + + + // Универсальный helper для Swiper + class ResponsiveSwiper { + constructor(target, options = {}, breakpoint = null) { + this.el = typeof target === 'string' ? document.querySelector(target) : target; + if (!this.el) return; + this.options = options; + this.swiper = null; + this.breakpoint = breakpoint; + this.wrapper = this.el.querySelector('.swiper-wrapper'); + if (breakpoint) { + this.handle = this.handle.bind(this); + this.breakpoint.addEventListener('change', this.handle); + this.handle(this.breakpoint); + } else { + this.init(); + } + } + handle(e) { + e.matches ? this.destroy() : this.init(); + } + init() { + if (!this.swiper) { + this.wrapper?.classList.remove('is-grid'); + this.swiper = new Swiper(this.el, this.options); + } + } + destroy() { + if (this.swiper) { + this.swiper.destroy(true, true); + this.swiper = null; + this.wrapper?.classList.add('is-grid'); + } + } + } + + + // Остановка autoplay Swiper когда он не виден + function pauseSwiperAutoplayOnVisibility(swiper, options = {}) { + const { + threshold = 0.5, + root = null, + rootMargin = '0px' + } = options; + if (!swiper || !swiper.el || !swiper.autoplay || !swiper.params.autoplay) return; + if (!('IntersectionObserver' in window)) return; + const disableOnInteraction = swiper.params.autoplay.disableOnInteraction === true; + let stoppedByVisibility = false; + let stoppedByInteraction = false; + let isVisibleEnough = true; + function pauseByVisibility() { + if (stoppedByInteraction) return; + if (stoppedByVisibility) return; + if (!swiper.autoplay.running) return; + stoppedByVisibility = true; + swiper.autoplay.stop(); + } + function resumeByVisibility() { + if (stoppedByInteraction) return; + if (!stoppedByVisibility) return; + if (document.hidden) return; + swiper.autoplay.start(); + stoppedByVisibility = false; + } + function onAutoplayStop() { + if (stoppedByVisibility) return; + if (disableOnInteraction) { + stoppedByInteraction = true; + } + } + function onVisibilityChange() { + if (document.hidden) { + pauseByVisibility(); + } else if (isVisibleEnough) { + resumeByVisibility(); + } + } + swiper.on('autoplayStop', onAutoplayStop); + const observer = new IntersectionObserver((entries) => { + const entry = entries[0]; + isVisibleEnough = entry.isIntersecting && entry.intersectionRatio >= threshold; + if (isVisibleEnough) { + resumeByVisibility(); + } else { + pauseByVisibility(); + } + }, { + root, + rootMargin, + threshold: [0, threshold, 1] + }); + observer.observe(swiper.el); + document.addEventListener('visibilitychange', onVisibilityChange); + swiper.on('destroy', () => { + observer.disconnect(); + document.removeEventListener('visibilitychange', onVisibilityChange); + swiper.off('autoplayStop', onAutoplayStop); + }); + } + + + // Слайдер преимуществ + new ResponsiveSwiper('.advantages-slider__container', { + loop: false, + slidesPerView: 1.25, + spaceBetween: 15, + breakpoints: { + 576: { + slidesPerView: 1.25, + spaceBetween: 20 + }, + 768: { + slidesPerView: 2.25, + spaceBetween: 20 + } + } + }, sizeLG); + + + // Range-слайдеры в калькуляторе + document.querySelectorAll('.js-range-field').forEach((field) => { + const range = field.querySelector('.js-range'); + const numberEl = field.querySelector('.js-range-number'); + if (!range || !numberEl) return; + const updateRange = () => { + const min = range.min === '' ? 0 : Number(range.min); + const max = range.max === '' ? 100 : Number(range.max); + const value = Number(range.value); + const progress = max === min + ? 0 + : ((value - min) / (max - min)) * 100; + range.style.setProperty('--range-progress', `${progress}%`); + numberEl.textContent = value; + }; + updateRange(); + range.addEventListener('input', updateRange); + }); + + + // Калькулятор заработка + const calc = document.querySelector('.income-calc'); + if (calc) { + const formatMoney = (value) => { + return new Intl.NumberFormat('ru-RU').format(value) + ' ₽'; + }; + const rates = window.themeIncomeCalc?.rates || {}; + const updateCalc = () => { + const formData = new FormData(calc); + const type = formData.get('work_type'); + const city = formData.get('city'); + const hours = Number(formData.get('hours_per_day')); + const days = Number(formData.get('days_per_week')); + const hourIncome = Number(rates?.[type]?.[city]) || 0; + const dayIncome = hourIncome * hours; + const weekIncome = dayIncome * days; + const monthIncome = weekIncome * 4; + calc.querySelector('.js-income-hour').textContent = formatMoney(hourIncome); + calc.querySelector('.js-income-day').textContent = formatMoney(dayIncome); + calc.querySelector('.js-income-week').textContent = formatMoney(weekIncome); + calc.querySelector('.js-income-month').textContent = formatMoney(monthIncome); + }; + calc.addEventListener('input', updateCalc); + updateCalc(); + const footnoteTexts = { + taxi: 'класса авто, района, активности\u00a0водителя', + cargo: 'класса авто, района, активности\u00a0водителя', + courier: 'района, активности\u00a0курьера' + }; + document.querySelectorAll('.js-calc-type').forEach((radio) => { + radio.addEventListener('change', function () { + document.querySelector('.js-footnote-text').textContent = footnoteTexts[this.value]; + }); + }); + } + + + // Настройки Fancybox + const defaults = Fancybox.getDefaults(); + const carouselDefaults = defaults.Carousel || {}; + Object.assign(defaults, { + idle: false, + Hash: false, + placeFocusBack: false, + zoomEffect: false, + Carousel: { + ...carouselDefaults, + Thumbs: { + ...(carouselDefaults.Thumbs || {}), + type: 'classic', + showOnStart: false + } + }, + l10n: { + ...(Fancybox.l10n?.en_EN || {}), + CLOSE: 'Закрыть', + NEXT: 'Вперед', + PREV: 'Назад', + MODAL: 'Вы можете закрыть окно нажатием ESC', + ERROR: 'Ошибка, попробуйте повторить попытку', + IMAGE_ERROR: 'Изображение не найдено', + ELEMENT_NOT_FOUND: 'HTML элемент не найден', + AJAX_NOT_FOUND: 'Ошибка загрузки AJAX: Не найдено', + AJAX_FORBIDDEN: 'Ошибка загрузки AJAX: Запрещено', + IFRAME_ERROR: 'Ошибка при загрузке фрейма', + ITERATEZOOM: 'Увеличить', + TOGGLE_ZOOM: 'Увеличить', + TOGGLE_THUMBS: 'Предпросмотр', + TOGGLE_SLIDESHOW: 'Слайдшоу', + TOGGLE_FULLSCREEN: 'Полный экран', + DOWNLOAD: 'Загрузить' + }, + on: { + destroy: () => { + const interceptFocus = (e) => { + e.target.blur(); + document.removeEventListener('focusin', interceptFocus); + }; + document.addEventListener('focusin', interceptFocus); + setTimeout(() => { + document.removeEventListener('focusin', interceptFocus); + }, 50); + } + } + }); + + + // Сертификаты на странице О компании + Fancybox.bind('[data-fancybox="certs"]'); + + + // Слайдер отзывов + new ResponsiveSwiper('.reviews-slider__container', { + loop: false, + slidesPerView: 1.25, + spaceBetween: 15, + breakpoints: { + 576: { + slidesPerView: 1.25, + spaceBetween: 20 + }, + 768: { + slidesPerView: 2.25, + spaceBetween: 20 + }, + 1024: { + slidesPerView: 3, + spaceBetween: 20 + }, + 1280: { + slidesPerView: 'auto', + spaceBetween: 20 + } + }, + pagination: { + el: '.reviews-slider__pagination', + bulletClass: 'reviews-slider__pagination-item', + bulletActiveClass: 'is-active' + } + }); + + + // Аккордеон + function initAccordion(options) { + const { + rootSelector = document, + triggerSelector, + itemSelector, + panelSelector, + activeClass = 'is-active', + animatingClass = 'is-animating', + closeSiblings = false + } = options; + const root = typeof rootSelector === 'string' + ? document.querySelector(rootSelector) + : rootSelector; + if (!root) return; + function clearTransition(panel) { + if (panel._accordionTransitionHandler) { + panel.removeEventListener('transitionend', panel._accordionTransitionHandler); + panel._accordionTransitionHandler = null; + } + } + function openPanel(panel, item, trigger) { + clearTransition(panel); + item.classList.add(animatingClass); + panel.style.height = '0px'; + item.classList.add(activeClass); + trigger?.setAttribute('aria-expanded', 'true'); + panel.offsetHeight; + panel.style.height = `${panel.scrollHeight}px`; + panel._accordionTransitionHandler = function (event) { + if (event.propertyName !== 'height') return; + clearTransition(panel); + if (item.classList.contains(activeClass)) { + panel.style.height = 'auto'; + } + item.classList.remove(animatingClass); + }; + panel.addEventListener('transitionend', panel._accordionTransitionHandler); + } + function closePanel(panel, item, trigger) { + clearTransition(panel); + item.classList.add(animatingClass); + panel.style.height = `${panel.scrollHeight}px`; + panel.offsetHeight; + item.classList.remove(activeClass); + trigger?.setAttribute('aria-expanded', 'false'); + panel.style.height = '0px'; + panel._accordionTransitionHandler = function (event) { + if (event.propertyName !== 'height') return; + clearTransition(panel); + if (!item.classList.contains(activeClass)) { + panel.style.removeProperty('height'); + } + item.classList.remove(animatingClass); + }; + panel.addEventListener('transitionend', panel._accordionTransitionHandler); + } + function closeSiblingItems(currentItem) { + const parent = currentItem.parentElement; + if (!parent) return; + const siblings = parent.querySelectorAll(itemSelector); + siblings.forEach((item) => { + if (item === currentItem) return; + if (!item.classList.contains(activeClass)) return; + if (item.classList.contains(animatingClass)) return; + const panel = item.querySelector(`:scope > ${panelSelector}`); + const trigger = item.querySelector(`:scope ${triggerSelector}`); + if (!panel) return; + closePanel(panel, item, trigger); + }); + } + root.addEventListener('click', (event) => { + const trigger = event.target.closest(triggerSelector); + if (!trigger) return; + if (root !== document && !root.contains(trigger)) return; + const item = trigger.closest(itemSelector); + if (!item || item.classList.contains(animatingClass)) return; + const panel = item.querySelector(`:scope > ${panelSelector}`); + if (!panel) return; + const isOpen = item.classList.contains(activeClass); + if (isOpen) { + closePanel(panel, item, trigger); + } else { + if (closeSiblings) { + closeSiblingItems(item); + } + openPanel(panel, item, trigger); + } + }); + } + + + // FAQ + initAccordion({ + rootSelector: '.faq-list', + itemSelector: '.faq-item', + triggerSelector: '.faq-item__question', + panelSelector: '.faq-item__answer' + }); + + + // Слайдер статей + new ResponsiveSwiper('.articles-slider__container', { + loop: false, + slidesPerView: 1.25, + spaceBetween: 15, + breakpoints: { + 576: { + slidesPerView: 1.25, + spaceBetween: 20 + }, + 768: { + slidesPerView: 2.25, + spaceBetween: 20 + } + } + }, sizeLG); + + + // Слайдер блога + const blogSlider = new ResponsiveSwiper('.blog-slider__container', { + loop: true, + autoHeight: true, + autoplay: { + pauseOnMouseEnter: true, + disableOnInteraction: true + }, + effect: 'fade', + fadeEffect: { + crossFade: true, + }, + pagination: { + el: '.blog-slider__pagination', + type: 'bullets', + bulletElement: 'button', + horizontalClass: 'swiper-pagination', + bulletClass: 'swiper-pagination-item', + bulletActiveClass: 'is-active', + clickable: true + } + }); + pauseSwiperAutoplayOnVisibility(blogSlider.swiper, { threshold: 0.5 }); + + + // Плавная прокрутка якорей + document.addEventListener('click', (e) => { + const link = e.target.closest('.article-toc__link, .hero-buttons__info-btn, .vacancies-item__respond-btn'); + if (!link) return; + const href = link.getAttribute('href'); + if (!href) return; + let url; + try { + url = new URL(href, window.location.href); + } catch { + return; + } + if ( + url.origin !== window.location.origin || + url.pathname !== window.location.pathname || + !url.hash + ) { + return; + } + const targetId = decodeURIComponent(url.hash.slice(1)); + const target = document.getElementById(targetId); + if (!target) return; + e.preventDefault(); + const header = document.querySelector('.header-main'); + const headerRect = header ? header.getBoundingClientRect() : null; + const headerBottom = headerRect ? headerRect.bottom : 0; + const targetTop = target.getBoundingClientRect().top + window.scrollY - headerBottom - 20; + window.scrollTo({ top: targetTop, behavior: 'smooth' }); + }); + + + // Скролл длинного содержания статей + function initScrollableToc() { + const list = document.querySelector('.article-toc__list'); + if (!list) return; + function updateScrollableState() { + const isScrollable = list.scrollHeight > list.clientHeight; + list.classList.toggle('is-scrollable', isScrollable); + } + updateScrollableState(); + window.addEventListener('resize', updateScrollableState); + if (document.fonts) { + document.fonts.ready.then(updateScrollableState); + } + } + initScrollableToc(); + + + // AJAX-фильтр статей + function initArticlesFilter() { + const filter = document.querySelector('.articles-filter'); + const grid = document.querySelector('.articles-grid'); + const showMoreContainer = document.querySelector('.articles-showmore'); + const showMoreBtn = showMoreContainer?.querySelector('.articles-showmore__btn'); + if (!filter || !grid || !window.themeAjax?.nonces?.articles) return; + let currentRequest = null; + const getCategoryFromUrl = (url) => { + const parsedUrl = new URL(url, window.location.origin); + return parsedUrl.searchParams.get('category') || ''; + }; + const toggleShowMoreButton = () => { + if (!showMoreContainer) return; + const currentPage = parseInt(grid.dataset.page || 1, 10); + const maxPages = parseInt(grid.dataset.maxPages || 1, 10); + if (currentPage >= maxPages || maxPages === 0) { + showMoreContainer.classList.add('is-hidden'); + } else { + showMoreContainer.classList.remove('is-hidden'); + } + }; + const setLoading = (isLoading, isAppend) => { + if (!isAppend) { + grid.classList.toggle('is-loading', isLoading); + filter.classList.toggle('is-loading', isLoading); + if (showMoreContainer) { + showMoreContainer.classList.toggle('is-loading', isLoading); + } + } + if (showMoreBtn) { + showMoreBtn.disabled = isLoading; + if (isAppend && isLoading) { + showMoreBtn.textContent = 'Загрузка...'; + } else { + showMoreBtn.textContent = 'Показать еще'; + } + } + }; + const setActiveByCategory = (category) => { + const items = filter.querySelectorAll('.articles-filter__item'); + const links = filter.querySelectorAll('.articles-filter__link'); + items.forEach((item) => item.classList.remove('is-active')); + links.forEach((link) => { + const linkCategory = getCategoryFromUrl(link.href); + if (linkCategory === category) { + link.closest('.articles-filter__item')?.classList.add('is-active'); + } + }); + }; + const loadArticles = async (category = '', page = 1, append = false) => { + if (currentRequest) { + currentRequest.abort(); + } + currentRequest = new AbortController(); + const formData = new FormData(); + formData.append('action', 'theme_filter_articles'); + formData.append('nonce', window.themeAjax.nonces.articles); + formData.append('category', category); + formData.append('page', page); + setLoading(true, append); + try { + const response = await fetch(window.themeAjax.ajaxUrl, { + method: 'POST', + body: formData, + credentials: 'same-origin', + signal: currentRequest.signal, + }); + if (!response.ok) throw new Error('Network response was not ok'); + const result = await response.json(); + if (!result.success) throw new Error('Ajax request failed'); + if (append) { + grid.insertAdjacentHTML('beforeend', result.data.html); + } else { + grid.innerHTML = result.data.html; + } + grid.dataset.page = String(result.data.page); + grid.dataset.maxPages = String(result.data.max_pages); + grid.dataset.category = result.data.category; + toggleShowMoreButton(); + return result.data; + } catch (error) { + if (error.name !== 'AbortError') { + console.error(error); + } + return null; + } finally { + setLoading(false, append); + currentRequest = null; + } + }; + filter.addEventListener('click', async (event) => { + const link = event.target.closest('.articles-filter__link'); + if (!link) return; + event.preventDefault(); + const nextUrl = new URL(link.href, window.location.origin); + const category = getCategoryFromUrl(nextUrl.href); + setActiveByCategory(category); + grid.dataset.page = '1'; + const result = await loadArticles(category, 1, false); + if (!result) return; + if (window.location.href !== nextUrl.href) { + window.history.pushState({ articleCategory: category }, '', nextUrl.href); + } + }); + if (showMoreBtn) { + showMoreBtn.addEventListener('click', async () => { + const nextPage = parseInt(grid.dataset.page || 1, 10) + 1; + grid.dataset.page = String(nextPage); + const currentCategory = grid.dataset.category || ''; + + await loadArticles(currentCategory, nextPage, true); + }); + } + window.addEventListener('popstate', async () => { + const category = getCategoryFromUrl(window.location.href); + setActiveByCategory(category); + grid.dataset.page = '1'; + await loadArticles(category, 1, false); + }); + toggleShowMoreButton(); + } + initArticlesFilter(); + + + // Анимация статистики + const statsBlock = document.querySelector('.about-stats'); + const statItems = document.querySelectorAll('.about-stats__item-value'); + const easeOutExpo = (x) => { + return x === 1 ? 1 : 1 - Math.pow(2, -10 * x); + }; + const animateValue = (el) => { + const originalHTML = el.innerHTML.trim(); + const match = originalHTML.match(/^([\d\s,\xA0]+)(.*)$/i); + if (!match) return; + let numberStr = match[1]; + let suffix = match[2]; + const trailingSpaceMatch = numberStr.match(/([\s\xA0]+)$/); + if (trailingSpaceMatch) { + suffix = trailingSpaceMatch[1] + suffix; + numberStr = numberStr.replace(/([\s\xA0]+)$/, ''); + } + const isFloat = numberStr.includes(','); + const cleanNumber = parseFloat(numberStr.replace(/[\s\xA0]/g, '').replace(',', '.')); + if (isNaN(cleanNumber)) return; + const duration = 2000; + let startTimestamp = null; + const step = (timestamp) => { + if (!startTimestamp) startTimestamp = timestamp; + const progress = Math.min((timestamp - startTimestamp) / duration, 1); + const easeProgress = easeOutExpo(progress); + let currentValue = cleanNumber * easeProgress; + let displayValue = ''; + if (isFloat) { + displayValue = currentValue.toFixed(1).replace('.', ','); + } else { + displayValue = Math.round(currentValue).toLocaleString('ru-RU'); + } + el.innerHTML = displayValue + suffix; + if (progress < 1) { + window.requestAnimationFrame(step); + } else { + el.innerHTML = originalHTML; + } + }; + window.requestAnimationFrame(step); + }; + const observer = new IntersectionObserver((entries, obs) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + statItems.forEach(el => animateValue(el)); + obs.unobserve(entry.target); + } + }); + }, { + threshold: 0.3 + }); + if (statsBlock) { + observer.observe(statsBlock); + } + + + // Слайдер функций + new ResponsiveSwiper('.features-slider__container', { + loop: false, + slidesPerView: 1.5, + spaceBetween: 15, + breakpoints: { + 576: { + slidesPerView: 1.5, + spaceBetween: 20 + }, + 768: { + slidesPerView: 2.5, + spaceBetween: 20 + } + } + }, sizeLG); + + + // Вакансии + initAccordion({ + rootSelector: '.vacancies-list', + itemSelector: '.vacancies-item', + triggerSelector: '.vacancies-item__header', + panelSelector: '.vacancies-item__body', + // closeSiblings: true + }); + + + // AJAX-фильтр вакансий + function initVacanciesFilter() { + const filter = document.querySelector('.vacancies-filter'); + const trigger = filter?.querySelector('.vacancies-filter__trigger'); + const valueEl = filter?.querySelector('.vacancies-filter__value'); + const optionsList = filter?.querySelector('.vacancies-filter__options'); + const links = optionsList?.querySelectorAll('.vacancies-filter__link'); + const items = optionsList?.querySelectorAll('.vacancies-filter__option'); + const list = document.querySelector('.vacancies-list'); + const count = document.querySelector('.vacancies-count'); + const showMoreContainer = document.querySelector('.vacancies-showmore'); + const showMoreBtn = showMoreContainer?.querySelector('.vacancies-showmore__btn'); + if (!filter || !trigger || !optionsList || !list || !window.themeAjax?.nonces?.vacancies) return; + let currentRequest = null; + let activeIndex = Array.from(items).findIndex(i => i.classList.contains('is-selected')); + const open = () => { + filter.classList.add('is-open'); + trigger.setAttribute('aria-expanded', 'true'); + const targetLink = links[activeIndex >= 0 ? activeIndex : 0]; + if (targetLink) targetLink.focus(); + }; + const close = (returnFocus = false) => { + filter.classList.remove('is-open'); + trigger.setAttribute('aria-expanded', 'false'); + if (returnFocus) trigger.focus(); + }; + const getCategoryFromUrl = (url) => { + return new URL(url, window.location.origin).searchParams.get('category') || ''; + }; + const toggleShowMoreButton = () => { + if (!showMoreContainer) return; + const currentPage = parseInt(list.dataset.page || 1, 10); + const maxPages = parseInt(list.dataset.maxPages || 1, 10); + if (currentPage >= maxPages || maxPages === 0) { + showMoreContainer.classList.add('is-hidden'); + } else { + showMoreContainer.classList.remove('is-hidden'); + } + }; + const setLoading = (isLoading, isAppend) => { + if (!isAppend) { + list.classList.toggle('is-loading', isLoading); + filter.classList.toggle('is-loading', isLoading); + if (showMoreContainer) { + showMoreContainer.classList.toggle('is-loading', isLoading); + } + } + if (showMoreBtn) { + showMoreBtn.disabled = isLoading; + if (isAppend && isLoading) { + showMoreBtn.textContent = 'Загрузка...'; + } else { + showMoreBtn.textContent = 'Показать еще'; + } + } + }; + const loadVacancies = async (category = '', append = false) => { + if (currentRequest) currentRequest.abort(); + currentRequest = new AbortController(); + const formData = new FormData(); + formData.append('action', 'theme_filter_vacancies'); + formData.append('nonce', window.themeAjax.nonces.vacancies); + formData.append('category', category); + formData.append('page', list.dataset.page || 1); + setLoading(true, append); + try { + const response = await fetch(window.themeAjax.ajaxUrl, { + method: 'POST', + body: formData, + credentials: 'same-origin', + signal: currentRequest.signal, + }); + if (!response.ok) throw new Error('Network response was not ok'); + const result = await response.json(); + if (!result.success) throw new Error('Ajax request failed'); + if (append) { + list.insertAdjacentHTML('beforeend', result.data.html); + } else { + list.innerHTML = result.data.html; + } + list.dataset.page = String(result.data.page); + list.dataset.maxPages = String(result.data.max_pages); + list.dataset.category = result.data.category; + if (count) count.textContent = String(result.data.count); + toggleShowMoreButton(); + return result.data; + } catch (error) { + if (error.name !== 'AbortError') console.error(error); + return null; + } finally { + setLoading(false, append); + currentRequest = null; + } + }; + const selectOption = async (link) => { + const li = link.parentElement; + const category = getCategoryFromUrl(link.href); + const nextUrl = link.href; + items.forEach(i => i.classList.remove('is-selected')); + li.classList.add('is-selected'); + valueEl.textContent = link.textContent; + activeIndex = Array.from(items).indexOf(li); + close(true); + list.dataset.page = '1'; + const result = await loadVacancies(category, false); + if (!result) return; + if (window.location.href !== nextUrl) { + window.history.pushState({ vacancyCategory: category }, '', nextUrl); + } + }; + trigger.addEventListener('click', () => { + filter.classList.contains('is-open') ? close(false) : open(); + }); + trigger.addEventListener('keydown', e => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + filter.classList.contains('is-open') ? close(true) : open(); + } else if (e.key === 'Escape') { + close(true); + } else if (e.key === 'ArrowDown') { + e.preventDefault(); + open(); + } + }); + links.forEach((link, idx) => { + link.addEventListener('click', (e) => { + e.preventDefault(); + selectOption(link); + }); + link.addEventListener('keydown', e => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + selectOption(link); + } else if (e.key === 'ArrowDown') { + e.preventDefault(); + links[(idx + 1) % links.length].focus(); + } else if (e.key === 'ArrowUp') { + e.preventDefault(); + links[(idx - 1 + links.length) % links.length].focus(); + } else if (e.key === 'Escape') { + close(true); + } + }); + }); + document.addEventListener('click', e => { + if (filter.classList.contains('is-open') && !filter.contains(e.target)) { + close(false); + } + }); + if (showMoreBtn) { + showMoreBtn.addEventListener('click', async () => { + const nextPage = parseInt(list.dataset.page || 1, 10) + 1; + list.dataset.page = String(nextPage); + const currentCategory = list.dataset.category || ''; + await loadVacancies(currentCategory, true); + }); + } + window.addEventListener('popstate', async () => { + const category = getCategoryFromUrl(window.location.href); + const matchedLink = Array.from(links).find(l => getCategoryFromUrl(l.href) === category); + if (matchedLink) { + const matchedLi = matchedLink.parentElement; + items.forEach(i => i.classList.remove('is-selected')); + matchedLi.classList.add('is-selected'); + valueEl.textContent = matchedLink.textContent; + activeIndex = Array.from(items).indexOf(matchedLi); + } + list.dataset.page = '1'; + await loadVacancies(category, false); + }); + toggleShowMoreButton(); + } + initVacanciesFilter(); + + + // Кастомный file input + function updateFileField(input) { + const field = input.closest('.file-field'); + const text = field?.querySelector('.file-field__text'); + if (!field || !text) return; + const placeholder = text.dataset.placeholder || 'Прикрепить документ'; + const files = Array.from(input.files || []); + if (!files.length) { + text.textContent = placeholder; + field.classList.remove('is-filled'); + return; + } + field.classList.add('is-filled'); + if (files.length === 1) { + text.textContent = files[0].name; + } else { + text.textContent = `Выбрано файлов: ${files.length}`; + } + } + function resetFileFields(form) { + form.querySelectorAll('.file-field__input').forEach((input) => { + input.value = ''; + updateFileField(input); + }); + } + function initFileFields() { + document.querySelectorAll('.file-field__input').forEach((input) => { + updateFileField(input); + + input.addEventListener('change', () => { + updateFileField(input); + }); + }); + } + initFileFields(); + + + // Маска для поля "email или телефон" + function initContactInputs() { + const inputs = document.querySelectorAll('[data-masked-input]'); + if (!inputs.length) return; + function isValidEmail(value) { + return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value); + } + function getDigits(value) { + return value.replace(/\D/g, ''); + } + function hasEmailChars(value) { + return /[a-zа-яё@]/i.test(value); + } + function hasOnlyPhoneChars(value) { + return /^[\d\s()+.-]+$/.test(value); + } + function isDeleteInputType(inputType) { + return inputType && inputType.startsWith('delete'); + } + function getInputType(input, event) { + return event?.inputType || input._contactBefore?.inputType || ''; + } + function isDeleteEvent(input, event) { + return isDeleteInputType(getInputType(input, event)); + } + function normalizeRuPhoneDigits(value) { + const raw = value.trim(); + let digits = getDigits(value); + if (!digits) { + return raw.startsWith('+') ? '7' : ''; + } + if (digits[0] === '8') { + digits = `7${digits.slice(1)}`; + } else if (digits[0] === '9') { + digits = `7${digits}`; + } else if (digits[0] !== '7') { + digits = `7${digits}`; + } + return digits.slice(0, 11); + } + function formatRuPhone(value) { + const digits = normalizeRuPhoneDigits(value); + const rest = digits.slice(1); + if (!digits) return ''; + let result = '+7'; + if (rest.length > 0) result += ` (${rest.slice(0, 3)}`; + if (rest.length >= 3) result += ')'; + if (rest.length > 3) result += ` ${rest.slice(3, 6)}`; + if (rest.length > 6) result += `-${rest.slice(6, 8)}`; + if (rest.length > 8) result += `-${rest.slice(8, 10)}`; + return result; + } + function isPhoneOnlyInput(input) { + return input.type === 'tel' || input.dataset.contactMode === 'phone'; + } + function shouldUsePhoneMode(input, value) { + const raw = value.trim(); + if (isPhoneOnlyInput(input)) return true; + if (!raw) return false; + if (hasEmailChars(raw)) return false; + if (!hasOnlyPhoneChars(raw)) return false; + if (raw.startsWith('+')) return true; + const digits = getDigits(raw); + const threshold = Number(input.dataset.phoneThreshold || 4); + return digits.length >= threshold; + } + function shouldClearPhoneOnDelete(input, value, event) { + if (!isDeleteEvent(input, event)) return false; + const raw = value.trim(); + const digits = getDigits(raw); + if (!raw) return false; + if (!hasOnlyPhoneChars(raw)) return false; + return digits.length <= 1; + } + function removeDigitNearCaret(value, caretPosition, inputType) { + if (inputType === 'deleteContentForward') { + for (let i = caretPosition; i < value.length; i++) { + if (/\d/.test(value[i])) { + return value.slice(0, i) + value.slice(i + 1); + } + } + return value; + } + for (let i = caretPosition - 1; i >= 0; i--) { + if (/\d/.test(value[i])) { + return value.slice(0, i) + value.slice(i + 1); + } + } + return value; + } + function fixPhoneDeleteFormatting(input, value, event) { + const before = input._contactBefore; + const inputType = getInputType(input, event); + if (!before) return value; + if (!isDeleteInputType(inputType)) return value; + if (before.start !== before.end) return value; + const wasPhoneMode = shouldUsePhoneMode(input, before.value); + const isPhoneMode = shouldUsePhoneMode(input, value); + if (!wasPhoneMode && !isPhoneMode) return value; + const formattedCurrentValue = formatRuPhone(value); + if (formattedCurrentValue !== before.value) return value; + const beforeDigitsCount = getDigits(before.value).length; + const currentDigitsCount = getDigits(value).length; + if (currentDigitsCount < beforeDigitsCount) return value; + return removeDigitNearCaret(before.value, before.start, inputType); + } + function validateContactInput(input) { + const value = input.value.trim(); + if (!value) { + input.setCustomValidity(''); + return; + } + if (shouldUsePhoneMode(input, value)) { + const digits = normalizeRuPhoneDigits(value); + if (digits.length !== 11) { + input.setCustomValidity('Введите телефон полностью'); + return; + } + input.setCustomValidity(''); + return; + } + if (!isPhoneOnlyInput(input) && !isValidEmail(value)) { + input.setCustomValidity('Введите корректный email или телефон'); + return; + } + input.setCustomValidity(''); + } + function handleInput(input, event) { + let value = input.value; + if (!value.trim()) { + if (!isPhoneOnlyInput(input)) { + input.inputMode = 'email'; + } + input.setCustomValidity(''); + return; + } + const wasPhoneMode = input._contactBefore && shouldUsePhoneMode(input, input._contactBefore.value); + const isPhoneMode = shouldUsePhoneMode(input, value); + if (isPhoneMode || wasPhoneMode) { + value = fixPhoneDeleteFormatting(input, value, event); + if (shouldClearPhoneOnDelete(input, value, event)) { + input.value = ''; + if (!isPhoneOnlyInput(input)) { + input.inputMode = 'email'; + } + input.setCustomValidity(''); + return; + } + if (shouldUsePhoneMode(input, value) || wasPhoneMode || isPhoneOnlyInput(input)) { + input.inputMode = 'tel'; + input.value = formatRuPhone(value); + input.setCustomValidity(''); + return; + } + } + if (!isPhoneOnlyInput(input)) { + input.inputMode = 'email'; + } + input.setCustomValidity(''); + } + inputs.forEach(input => { + function rememberBeforeState(inputType = '') { + input._contactBefore = { + value: input.value, + start: input.selectionStart, + end: input.selectionEnd, + inputType + }; + } + input.addEventListener('keydown', event => { + if (event.key === 'Backspace') rememberBeforeState('deleteContentBackward'); + if (event.key === 'Delete') rememberBeforeState('deleteContentForward'); + }); + input.addEventListener('beforeinput', event => { + rememberBeforeState(event.inputType); + }); + input.addEventListener('input', event => { + handleInput(input, event); + }); + input.addEventListener('blur', () => { + validateContactInput(input); + }); + }); + const forms = new Set(Array.from(inputs).map(inp => inp.form).filter(Boolean)); + forms.forEach(form => { + if (form._contactValidationBound) return; + form.addEventListener('submit', event => { + let isFormValid = true; + let firstInvalidInput = null; + inputs.forEach(input => { + if (input.form === form) { + validateContactInput(input); + if (!input.validity.valid) { + isFormValid = false; + if (!firstInvalidInput) firstInvalidInput = input; + } + } + }); + if (!isFormValid) { + event.preventDefault(); + if (firstInvalidInput) { + firstInvalidInput.reportValidity(); + } + } + }); + form._contactValidationBound = true; + }); + } + initContactInputs(); + + + // Возврат в категорию блога + function initArticleBackUrl() { + const storageKey = 'articleBackUrl'; + const blogPath = '/blog'; + const normalizePath = (path) => { + return path.replace(/\/$/, ''); + }; + const isBlogArchivePath = (path) => { + return normalizePath(path) === blogPath; + }; + const isBlogSinglePath = (path) => { + const normalizedPath = normalizePath(path); + return /^\/blog\/[^/]+$/.test(normalizedPath); + }; + const saveBackUrlFromBlog = () => { + const articlesGrid = document.querySelector('.articles-grid'); + const articlesFilter = document.querySelector('.articles-filter'); + if (!articlesGrid && !articlesFilter) return; + document.addEventListener('click', (event) => { + const link = event.target.closest('a'); + if (!link) return; + if (!link.closest('.articles-item')) return; + if (link.closest('.articles-filter')) return; + const currentUrl = new URL(window.location.href); + if (!isBlogArchivePath(currentUrl.pathname)) return; + sessionStorage.setItem( + storageKey, + JSON.stringify({ + url: currentUrl.href, + time: Date.now(), + }) + ); + }); + }; + const applyBackUrlToButton = () => { + const currentUrl = new URL(window.location.href); + if (!isBlogSinglePath(currentUrl.pathname)) { + sessionStorage.removeItem(storageKey); + return; + } + const backButton = document.querySelector('.article-goback__btn'); + if (!backButton) return; + const savedData = sessionStorage.getItem(storageKey); + if (!savedData) return; + try { + const data = JSON.parse(savedData); + const savedUrl = new URL(data.url, window.location.origin); + if (savedUrl.origin !== window.location.origin) return; + if (!isBlogArchivePath(savedUrl.pathname)) return; + const oneDay = 24 * 60 * 60 * 1000; + if (Date.now() - data.time > oneDay) { + sessionStorage.removeItem(storageKey); + return; + } + backButton.href = savedUrl.href; + } catch (error) { + sessionStorage.removeItem(storageKey); + } + }; + saveBackUrlFromBlog(); + applyBackUrlToButton(); + } + initArticleBackUrl(); + + + // AJAX-загрузка постов + function initLoadMore(gridSelector) { + const grid = document.querySelector(gridSelector); + if (!grid) return; + const type = grid.dataset.type; + const nonce = window.themeAjax?.nonces?.[type]; + if (!nonce) return; + const showMoreContainer = grid.closest('[class*="-grid"]') + ?.parentElement + ?.querySelector('[class*="-showmore"]') + ?? grid.parentElement?.querySelector('[class*="-showmore"]'); + const showMoreBtn = showMoreContainer?.querySelector('[class*="-showmore__btn"]'); + if (!showMoreBtn) return; + let currentRequest = null; + const toggleButton = () => { + const current = parseInt(grid.dataset.page || 1, 10); + const max = parseInt(grid.dataset.maxPages || 1, 10); + showMoreContainer.classList.toggle('is-hidden', current >= max || max === 0); + }; + const setLoading = (isLoading) => { + grid.classList.toggle('is-loading', isLoading); + showMoreBtn.disabled = isLoading; + showMoreBtn.textContent = isLoading ? 'Загрузка...' : 'Показать еще'; + }; + const loadMore = async (page) => { + currentRequest?.abort(); + currentRequest = new AbortController(); + const formData = new FormData(); + formData.append('action', 'theme_load_more'); + formData.append('nonce', nonce); + formData.append('page', page); + formData.append('type', type); + setLoading(true); + try { + const response = await fetch(window.themeAjax.ajaxUrl, { + method: 'POST', + body: formData, + credentials: 'same-origin', + signal: currentRequest.signal, + }); + if (!response.ok) throw new Error('Network response was not ok'); + const result = await response.json(); + if (!result.success) throw new Error('Ajax request failed'); + grid.insertAdjacentHTML('beforeend', result.data.html); + grid.dataset.page = String(result.data.page); + grid.dataset.maxPages = String(result.data.max_pages); + toggleButton(); + } catch (error) { + if (error.name !== 'AbortError') { + console.error(`Load more error [${type}]:`, error); + } + } finally { + setLoading(false); + currentRequest = null; + } + }; + showMoreBtn.addEventListener('click', () => { + const nextPage = parseInt(grid.dataset.page || 1, 10) + 1; + loadMore(nextPage); + }); + toggleButton(); + } + initLoadMore('.news-grid'); + initLoadMore('.reviews-grid'); + + + // Отправка форм на AJAX + function initAjaxForms() { + const forms = document.querySelectorAll('[data-ajax-form]'); + if (!forms.length || typeof Fancybox === 'undefined') return; + const createThanksContent = () => { + const thanks = document.querySelector('#thanks'); + if (!thanks) { + console.error('Element "#thanks" not found'); + return null; + } + const clone = thanks.cloneNode(true); + clone.classList.add('is-cloned'); + clone.removeAttribute('id'); + clone.style.display = ''; + return clone; + }; + const replaceCurrentFancyboxContent = (form) => { + const thanksContent = createThanksContent(); + if (!thanksContent) return false; + const slide = form.closest('.fancybox__slide'); + if (!slide) return false; + const content = form.closest('.f-html') || slide.querySelector('.f-html'); + if (!content) return false; + content.classList.remove('is-visible', 'is-hidden', 'is-replaced'); + content.classList.add('is-replacing'); + void content.offsetWidth; + content.replaceChildren(thanksContent); + content.classList.remove('is-replacing'); + content.classList.add('is-replaced'); + void content.offsetWidth; + requestAnimationFrame(() => { + content.classList.add('is-visible'); + }); + return true; + }; + const showThanks = (form) => { + const isInsideFancybox = Boolean(form.closest('.fancybox__slide')); + if (isInsideFancybox) { + const isReplaced = replaceCurrentFancyboxContent(form); + if (isReplaced) return; + } + Fancybox.show([{ + src: '#thanks', + type: 'clone', + }], { + mainClass: 'form-fancybox', + closeButton: false, + dragToClose: false, + showClass: 'is-visible', + hideClass: 'is-hidden' + }); + }; + const setLoading = (form, isLoading) => { + form.classList.toggle('is-loading', isLoading); + form.querySelectorAll('[type="submit"]').forEach((button) => { + button.disabled = isLoading; + }); + }; + forms.forEach((form) => { + form.addEventListener('submit', async (event) => { + event.preventDefault(); + const senderUrl = form.dataset.ajaxUrl || form.action || window.sender; + if (!senderUrl) { + console.error('Form sender URL not found'); + return; + } + setLoading(form, true); + try { + const formData = new FormData(form); + const response = await fetch(senderUrl, { + method: 'POST', + body: formData, + credentials: 'same-origin', + }); + if (!response.ok) { + throw new Error('Form request failed'); + } + showThanks(form); + setTimeout(() => { + form.reset(); + resetFileFields(form); + }, 500); + } catch (error) { + console.error('Form submit error:', error); + } finally { + setLoading(form, false); + } + }); + }); + } + initAjaxForms(); + + + // Табы блока «О продукте» + function initTabs(tabsBlock) { + const tablist = tabsBlock.querySelector('[role="tablist"]'); + const tabs = Array.from(tabsBlock.querySelectorAll('[role="tab"]')); + const panels = Array.from(tabsBlock.querySelectorAll('[role="tabpanel"]')); + if (!tablist || !tabs.length || !panels.length) return; + const scrollTabIntoView = (tab, options = {}) => { + const { behavior = 'smooth', align = 'nearest' } = options; + if (tablist.scrollWidth <= tablist.clientWidth) return; + const styles = window.getComputedStyle(tablist); + const paddingStart = parseFloat(styles.paddingInlineStart) || 0; + const paddingEnd = parseFloat(styles.paddingInlineEnd) || 0; + const tabStart = tab.offsetLeft; + const tabEnd = tabStart + tab.offsetWidth; + const visibleStart = tablist.scrollLeft + paddingStart; + const visibleEnd = tablist.scrollLeft + tablist.clientWidth - paddingEnd; + let left = tablist.scrollLeft; + if (align === 'start' || tabStart < visibleStart) { + left = tabStart - paddingStart; + } else if (tabEnd > visibleEnd) { + left = tabEnd - tablist.clientWidth + paddingEnd; + } + tablist.scrollTo({ + left: Math.max(0, left), + behavior, + }); + }; + const activateTab = (activeTab, options = {}) => { + const { focus = false, scroll = true } = options; + const target = activeTab.dataset.tab; + if (!target) return; + tabs.forEach((tab) => { + const isActive = tab === activeTab; + tab.classList.toggle('is-active', isActive); + tab.setAttribute('aria-selected', String(isActive)); + tab.tabIndex = isActive ? 0 : -1; + }); + panels.forEach((panel) => { + const isActive = panel.dataset.tabPanel === target; + panel.classList.toggle('is-active', isActive); + panel.hidden = !isActive; + }); + if (focus) activeTab.focus(); + if (scroll) scrollTabIntoView(activeTab); + }; + tabs.forEach((tab) => { + tab.addEventListener('click', () => { + activateTab(tab); + }); + tab.addEventListener('keydown', (event) => { + const currentIndex = tabs.indexOf(tab); + let nextIndex = null; + switch (event.key) { + case 'ArrowRight': + case 'ArrowDown': + nextIndex = (currentIndex + 1) % tabs.length; + break; + case 'ArrowLeft': + case 'ArrowUp': + nextIndex = (currentIndex - 1 + tabs.length) % tabs.length; + break; + case 'Home': + nextIndex = 0; + break; + case 'End': + nextIndex = tabs.length - 1; + break; + default: + return; + } + event.preventDefault(); + activateTab(tabs[nextIndex], { focus: true }); + }); + }); + const initialTab = tabs.find((tab) => tab.getAttribute('aria-selected') === 'true') || tabs[0]; + activateTab(initialTab, { scroll: false }); + requestAnimationFrame(() => { + scrollTabIntoView(initialTab, { behavior: 'auto', align: 'start' }); + }); + } + document.querySelectorAll('[data-tabs]').forEach(initTabs); + + + // Согласие на использование cookie + function initCookieConsent() { + const cookieConsent = document.querySelector('.cookie-consent'); + if (!cookieConsent) return; + const cookieButtons = cookieConsent.querySelectorAll('.cookie-consent__buttons .btn'); + const cookieName = 'cookie_consent_accepted'; + const showDelay = 2000; + const getCookie = (name) => { + return document.cookie.split('; ').find(row => row.startsWith(`${name}=`))?.split('=')[1]; + }; + const setCookie = (name, value, days) => { + const maxAge = days * 24 * 60 * 60; + document.cookie = `${name}=${value}; max-age=${maxAge}; path=/; SameSite=Lax`; + }; + if (getCookie(cookieName) === 'true') return; + window.addEventListener('load', () => { + setTimeout(() => { + cookieConsent.classList.add('is-active'); + }, showDelay); + }); + cookieButtons.forEach((button) => { + button.addEventListener('click', () => { + cookieConsent.classList.remove('is-active'); + setCookie(cookieName, 'true', 30); + }); + }); + } + initCookieConsent(); + + + + + + + + + + + + + + + +}); \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/libs/fancybox/fancybox.css b/wp-content/themes/hantico/assets/libs/fancybox/fancybox.css new file mode 100644 index 0000000..f17a2d8 --- /dev/null +++ b/wp-content/themes/hantico/assets/libs/fancybox/fancybox.css @@ -0,0 +1 @@ +:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #f8f8f8;--f-button-shadow: none;--f-button-transition: all .15s ease;--f-button-transform: none;--f-button-outline-width: 1px;--f-button-outline-color: rgba(0, 0, 0, .7);--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-opacity: 1;--f-button-svg-disabled-opacity: .5;--f-button-svg-transition: opacity .15s ease;--f-button-svg-transform: none}.f-button{width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);transform:var(--f-button-transform);transition:var(--f-button-transition);backdrop-filter:var(--f-button-backdrop-filter);display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;pointer-events:all;cursor:pointer;overflow:hidden}@media(hover:hover){.f-button:hover:not([aria-disabled]){color:var(--f-button-hover-color, var(--f-button-color));background-color:var(--f-button-hover-bg, var(--f-button-bg))}}.f-button:active:not([aria-disabled]){color:var(--f-button-active-color, var(--f-button-hover-color, var(--f-button-color)));background-color:var(--f-button-active-bg, var(--f-button-hover-bg, var(--f-button-bg)))}.f-button:focus{outline:none}.f-button:focus-visible{outline:var(--f-button-outline-width) solid var(--f-button-outline-color);outline-offset:var(--f-button-outline-offset)}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);transform:var(--f-button-svg-transform);fill:var(--f-button-svg-fill);filter:var(--f-button-svg-filter);opacity:var(--f-button-svg-opacity, 1);transition:var(--f-button-svg-transition);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.f-button[aria-disabled]{cursor:default}.f-button[aria-disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}[data-panzoom-action=toggleFS] g:first-child{display:flex}[data-panzoom-action=toggleFS] g:last-child{display:none}.in-fullscreen [data-panzoom-action=toggleFS] g:first-child{display:none}.in-fullscreen [data-panzoom-action=toggleFS] g:last-child{display:flex}[data-autoplay-action=toggle] svg g:first-child{display:flex}[data-autoplay-action=toggle] svg g:last-child{display:none}.has-autoplay [data-autoplay-action=toggle] svg g:first-child{display:none}.has-autoplay [data-autoplay-action=toggle] svg g:last-child{display:flex}:fullscreen [data-fullscreen-action=toggle] svg [data-fullscreen-action=toggle] svg g:first-child{display:none}:fullscreen [data-fullscreen-action=toggle] svg [data-fullscreen-action=toggle] svg g:last-child{display:flex}:root{--f-spinner-color-1: rgba(0, 0, 0, .1);--f-spinner-color-2: rgba(17, 24, 28, .8);--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-border-radius: 50%;--f-spinner-border-width: 4px}.f-spinner{position:absolute;top:50%;left:50%;margin:0;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height);translate:-50% -50%;border:var(--f-spinner-border-width) solid var(--f-spinner-color-1);border-top-color:var(--f-spinner-color-2);border-radius:var(--f-spinner-border-radius);animation:f-spinner .75s linear infinite,f-fadeIn .2s ease .2s both}@keyframes f-spinner{to{rotate:360deg}}.f-panzoom,.f-zoomable{position:relative;overflow:hidden;display:flex;align-items:center;flex-direction:column}.f-panzoom:before,.f-panzoom:after,.f-zoomable:before,.f-zoomable:after{display:block;content:""}.f-panzoom:not(.has-controls):before,.f-zoomable:not(.has-controls):before{margin-bottom:auto}.f-panzoom:after,.f-zoomable:after{margin-top:auto}.f-panzoom.in-fullscreen,.f-zoomable.in-fullscreen{position:fixed;top:0;left:0;margin:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;aspect-ratio:unset!important;z-index:9999}.f-panzoom__wrapper{position:relative;min-width:0;min-height:0;max-width:100%;max-height:100%}.f-panzoom__wrapper.will-zoom-out{cursor:zoom-out}.f-panzoom__wrapper.can-drag{cursor:move;cursor:grab}.f-panzoom__wrapper.will-zoom-in{cursor:zoom-in}.f-panzoom__wrapper.is-dragging{cursor:move;cursor:grabbing}.f-panzoom__wrapper.has-error{display:none}.f-panzoom__content{display:block;min-width:0;min-height:0;max-width:100%;max-height:100%}.f-panzoom__content.is-lazyloading,.f-panzoom__content.has-lazyerror{visibility:hidden}img.f-panzoom__content{width:auto;height:auto;vertical-align:top;object-fit:contain;transition:none;user-select:none}.f-panzoom__wrapper>.f-panzoom__content{visibility:hidden}.f-panzoom__viewport{display:block;position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.f-panzoom__viewport>.f-panzoom__content{width:100%;height:100%;object-fit:fill}picture.f-panzoom__content img{vertical-align:top;width:100%;height:auto;max-height:100%;object-fit:contain;transition:none;user-select:none}.f-panzoom__protected{position:absolute;inset:0;z-index:1;user-select:none}html.with-panzoom-in-fullscreen{overflow:hidden}.f-fadeIn{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, .2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-fadeOut{to{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, .2s) ease both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, .2s) * .2) ease calc(var(--f-transition-duration, .2s) * .8) both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}to{opacity:1}}@keyframes f-crossfadeOut{to{opacity:0}}.is-horizontal .f-slideIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInNextX}.is-horizontal .f-slideIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInPrevX}.is-horizontal .f-slideOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutNextX}.is-horizontal .f-slideOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutPrevX}@keyframes f-slideInPrevX{0%{transform:translate(calc(100% + var(--f-carousel-gap, 0)))}to{transform:translateZ(0)}}@keyframes f-slideInNextX{0%{transform:translate(calc(-100% - var(--f-carousel-gap, 0)))}to{transform:translateZ(0)}}@keyframes f-slideOutNextX{to{transform:translate(calc(-100% - var(--f-carousel-gap, 0)))}}@keyframes f-slideOutPrevX{to{transform:translate(calc(100% + var(--f-carousel-gap, 0)))}}.is-vertical .f-slideIn.from-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInNextY}.is-vertical .f-slideIn.from-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideInPrevY}.is-vertical .f-slideOut.to-next{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutNextY}.is-vertical .f-slideOut.to-prev{animation:var(--f-transition-duration, .85s) cubic-bezier(.16,1,.3,1) f-slideOutPrevY}@keyframes f-slideInPrevY{0%{transform:translateY(calc(100% + var(--f-carousel-gap, 0)))}to{transform:translateZ(0)}}@keyframes f-slideInNextY{0%{transform:translateY(calc(-100% - var(--f-carousel-gap, 0)))}to{transform:translateZ(0)}}@keyframes f-slideOutNextY{to{transform:translateY(calc(-100% - var(--f-carousel-gap, 0)))}}@keyframes f-slideOutPrevY{to{transform:translateY(calc(100% + var(--f-carousel-gap, 0)))}}.f-zoomInUp{animation:var(--f-transition-duration, .3s) ease both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, .3s) ease both f-zoomOutDown}@keyframes f-zoomInUp{0%{transform:scale(var(--f-zoomInUp-scale, .975)) translate3d(var(--f-zoomInUp-x, 0),var(--f-zoomInUp-y, 16px),0);opacity:var(--f-zoomInUp-opacity, 0)}to{transform:scale(1) translateZ(0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(var(--f-zoomOutDown-scale, .975)) translate3d(var(--f-zoomOutDown-x, 0),var(--f-zoomOutDown-y, 16px),0);opacity:0}}.f-throwOutUp{animation:var(--f-throwOutUp-duration, .2s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throwOutDown-duration, .2s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0,calc(var(--f-throwOutUp-y, 150px) * -1),0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0,var(--f-throwOutDown-y, 150px),0);opacity:0}}.has-iframe .f-html,.has-pdf .f-html,.has-gmap .f-html{width:100%;height:100%;min-height:1px;overflow:visible}.has-pdf .f-html,.has-gmap .f-html{padding:0}.f-html{position:relative;box-sizing:border-box;margin:var(--f-html-margin, 0);padding:var(--f-html-padding, 2rem);color:var(--f-html-color, currentColor);background:var(--f-html-bg)}.is-loading>.f-html{opacity:0}.f-html.is-error{text-align:center}.f-iframe{display:block;margin:0;border:0;height:100%;width:100%}.f-caption{align-self:center;flex-shrink:0;margin:var(--f-caption-margin);padding:var(--f-caption-padding, 16px 8px);max-width:100%;max-height:calc(80vh - 100px);overflow:auto;overflow-wrap:anywhere;line-height:var(--f-caption-line-height);color:var(--f-caption-color);background:var(--f-caption-bg);font:var(--f-caption-font);text-wrap:balance}.has-html5video .f-html,.has-youtube .f-html,.has-vimeo .f-html{padding:0;width:100%;height:100%;min-height:1px;overflow:visible;max-width:var(--f-video-width, 960px);max-height:var(--f-video-height, 540px);aspect-ratio:var(--f-video-aspect-ratio);background:var(--f-video-bg, rgba(0, 0, 0, .9))}.f-html5video{border:0;display:block;height:100%;width:100%;background:transparent}.f-button.is-arrow{--f-button-width: var(--f-arrow-width, 46px);--f-button-height: var(--f-arrow-height, 46px);--f-button-svg-width: var(--f-arrow-svg-width, 24px);--f-button-svg-height: var(--f-arrow-svg-height, 24px);--f-button-svg-stroke-width: var(--f-arrow-svg-stroke-width, 1.75);--f-button-border-radius: var(--f-arrow-border-radius, unset);--f-button-bg: var(--f-arrow-bg, transparent);--f-button-hover-bg: var(--f-arrow-hover-bg, var(--f-arrow-bg));--f-button-active-bg: var(--f-arrow-active-bg, var(--f-arrow-hover-bg));--f-button-shadow: var(--f-arrow-shadow);--f-button-color: var(--f-arrow-color);--f-button-hover-color: var(--f-arrow-hover-color, var(--f-arrow-color));--f-button-active-color: var( --f-arrow-active-color, var(--f-arrow-hover-color) );overflow:visible}.f-button.is-arrow.is-prev,.f-button.is-arrow.is-next{position:absolute;transform:translate(0);z-index:20}.is-horizontal .f-button.is-arrow.is-prev,.is-horizontal .f-button.is-arrow.is-next{inset:50% auto auto;transform:translateY(-50%)}.is-horizontal.is-ltr .f-button.is-arrow.is-prev{left:var(--f-arrow-pos, 0)}.is-horizontal.is-ltr .f-button.is-arrow.is-next{right:var(--f-arrow-pos, 0)}.is-horizontal.is-rtl .f-button.is-arrow.is-prev{right:var(--f-arrow-pos, 0);transform:translateY(-50%) rotateY(180deg)}.is-horizontal.is-rtl .f-button.is-arrow.is-next{left:var(--f-arrow-pos, 0);transform:translateY(-50%) rotateY(180deg)}.is-vertical.is-ltr .f-button.is-arrow.is-prev,.is-vertical.is-rtl .f-button.is-arrow.is-prev{top:var(--f-arrow-pos, 0);right:auto;bottom:auto;left:50%;transform:translate(-50%)}.is-vertical.is-ltr .f-button.is-arrow.is-next,.is-vertical.is-rtl .f-button.is-arrow.is-next{top:auto;right:auto;bottom:var(--f-arrow-pos, 0);left:50%;transform:translate(-50%)}.is-vertical .f-button.is-arrow.is-prev svg,.is-vertical .f-button.is-arrow.is-next svg{transform:rotate(90deg)}.f-carousel__toolbar{display:grid;grid-template-columns:1fr auto 1fr;margin:var(--f-toolbar-margin, 0);padding:var(--f-toolbar-padding, 8px);line-height:var(--f-toolbar-line-height);background:var(--f-toolbar-bg, none);box-shadow:var(--f-toolbar-shadow, none);backdrop-filter:var(--f-toolbar-backdrop-filter);position:relative;z-index:20;color:var(--f-toolbar-color, currentColor);font-size:var(--f-toolbar-font-size, 17px);font-weight:var(--f-toolbar-font-weight, inherit);font-family:var(--f-toolbar-font, -apple-system, BlinkMacSystemFont, "Segoe UI Adjusted", "Segoe UI", "Liberation Sans", sans-serif);text-shadow:var(--f-toolbar-text-shadow);text-align:center;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;white-space:nowrap;pointer-events:none}.f-carousel__toolbar.is-absolute{position:absolute;top:0;left:0;right:0}.f-carousel__toolbar .f-button:focus-visible{position:relative;z-index:1}.f-carousel__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start;gap:var(--f-toolbar-gap, 0)}.f-carousel__toolbar__column.is-left{display:flex;justify-self:flex-start;justify-content:flex-start}.f-carousel__toolbar__column.is-middle{display:flex;justify-content:center}.f-carousel__toolbar__column.is-right{display:flex;justify-self:flex-end;justify-content:flex-end;flex-flow:nowrap}.f-carousel__toolbar__column{pointer-events:none}.f-carousel__toolbar__column>*{pointer-events:all}.f-counter{position:relative;display:flex;flex-direction:row;cursor:default;user-select:none;margin:var(--f-counter-margin, 0);padding:var(--f-counter-padding, 4px);line-height:var(--f-counter-line-height);background:var(--f-counter-bg);border-radius:var(--f-counter-border-radius)}.f-counter span{padding:0 var(--f-counter-gap, 4px)}:root{--f-thumbs-gap: 8px;--f-thumbs-margin: 0;--f-thumbs-padding-x: 8px;--f-thumbs-padding-y: 8px;--f-thumbs-bg: transparent;--f-thumbs-transition: max-height .3s ease, max-width .3s ease, padding .3s ease;--f-thumbs-z-index: 1;--f-thumbs-viewport-padding-x: 0px;--f-thumbs-viewport-padding-y: 0px;--f-thumb-width: 94px;--f-thumb-height: 76px;--f-thumb-clip-width: 46px;--f-thumb-extra-gap: 16px;--f-thumb-opacity: 1;--f-thumb-transition: opacity .3s ease, transform .15s ease;--f-thumb-border: none;--f-thumb-border-radius: 4px;--f-thumb-shadow: none;--f-thumb-bg: linear-gradient(rgba(0, 0, 0, .1), rgba(0, 0, 0, .05));--f-thumb-focus-shadow: inset 0 0 0 .8px #222, inset 0 0 0 2.25px #fff;--f-thumb-selected-shadow: inset 0 0 0 .8px #222, inset 0 0 0 2.25px #fff;--f-thumb-border-transition: all .1s ease;--f-thumb-img-width: 100%;--f-thumb-img-height: 100%;--f-thumb-img-fit: cover;--f-thumb-img-position: 50% 20%}.f-thumbs{--f-carousel-slide-width: var(--f-thumb-width);--f-carousel-slide-height: var(--f-thumb-height);--f-carousel-gap: var(--f-thumbs-gap);position:relative;box-sizing:border-box;flex-shrink:0;margin:var(--f-thumbs-margin);padding:var(--f-thumbs-padding-y) var(--f-thumbs-padding-x);overflow:hidden;background:var(--f-thumbs-bg);-webkit-tap-highlight-color:transparent;user-select:none;transition:var(--f-thumbs-transition);z-index:var(--f-thumbs-z-index)}.f-thumbs.is-horizontal{max-height:calc(var(--f-carousel-slide-height) + var(--f-thumbs-padding-y) * 2)}.f-thumbs.is-horizontal.is-hidden{max-height:0;--f-thumbs-padding-y: 0}.f-thumbs.is-vertical{max-width:calc(var(--f-carousel-slide-width) + var(--f-thumbs-padding-x) * 2)}.f-thumbs.is-vertical.is-hidden{max-width:0;--f-thumbs-padding-x: 0}.f-thumbs.is-scrollable.is-hidden{max-height:0;--f-thumbs-padding-y: 0}.f-thumbs.is-ltr{direction:ltr}.f-thumbs.is-rtl{direction:rtl}.f-thumbs img{display:block;width:var(--f-thumb-img-width);height:var(--f-thumb-img-height);object-fit:var(--f-thumb-img-fit);object-position:var(--f-thumb-img-position);pointer-events:none;border-radius:inherit;color:transparent}.f-thumbs img[data-lazy-src]{visibility:hidden}.f-thumbs img.has-lazyerror{display:none}.f-thumbs__viewport{box-sizing:border-box;height:100%;padding:var(--f-thumbs-viewport-padding-y) var(--f-thumbs-viewport-padding-x);overflow:visible;display:grid}.f-thumbs__slide{position:relative;box-sizing:border-box;grid-area:1/1;width:var(--f-carousel-slide-width);height:var(--f-carousel-slide-height);margin:0;padding:0;display:flex;align-items:center;flex-direction:column;cursor:pointer;overflow:visible}.f-thumbs__slide:hover button{opacity:var(--f-thumb-hover-opacity, 1);transform:var(--f-thumb-hover-transform, none)}.f-thumbs__slide:hover button:after{border:var(--f-thumb-hover-border, none);box-shadow:var(--f-thumb-hover-shadow, var(--f-thumb-shadow))}.f-thumbs__slide button{all:unset;display:block;margin:auto;padding:0;position:relative;overflow:visible;width:100%;height:100%;outline:none;transition:var(--f-thumb-transition);border-radius:var(--f-thumb-border-radius);opacity:var(--f-thumb-opacity);transform:var(--f-thumb-transform);background:var(--f-thumb-bg)}.f-thumbs__slide button:after{content:"";position:absolute;inset:0;z-index:1;transition:var(--f-thumb-border-transition);border-radius:inherit;border:var(--f-thumb-border);box-shadow:var(--f-thumb-shadow)}.f-thumbs__slide button:focus-within{opacity:var(--f-thumb-focus-opacity, 1);transform:var(--f-thumb-focus-transform, none)}.f-thumbs__slide button:focus-within:after{border:var(--f-thumb-focus-border, none);box-shadow:var(--f-thumb-focus-shadow, var(--f-thumb-shadow))}.f-thumbs__slide:active{opacity:var(--f-thumb-active-opacity, 1);transform:var(--f-thumb-active-transform, none)}.f-thumbs__slide:active:after{border:var(--f-thumb-active-border, none);box-shadow:var(--f-thumb-active-shadow, var(--f-thumb-shadow))}.f-thumbs__slide.is-selected{z-index:2}.f-thumbs__slide.is-selected button{opacity:var(--f-thumb-selected-opacity, 1);transform:var(--f-thumb-selected-transform, none)}.f-thumbs__slide.is-selected button:after{border:var(--f-thumb-selected-border, none);box-shadow:var(--f-thumb-selected-shadow, var(--f-thumb-shadow))}.f-thumbs.is-modern{--f-carousel-slide-width: calc( var(--f-thumb-clip-width) + var(--f-thumbs-gap) );--f-carousel-slide-height: var(--f-thumb-height);--f-carousel-gap: 0;--width-diff: calc((var(--f-thumb-width) - var(--f-thumb-clip-width)))}.f-thumbs.is-modern .f-thumbs__viewport{width:calc(100% + var(--f-carousel-slide-width) * 2 + var(--f-thumbs-padding-x));margin-inline:calc((var(--f-carousel-slide-width) + var(--f-thumbs-padding-x)) * -1)}.f-thumbs.is-modern .f-thumbs__slide{--clip-shift: calc((var(--width-diff) * .5) * var(--progress));--clip-path: inset( 0 var(--clip-shift) round var(--f-thumb-border-radius, 0) );padding:0;overflow:visible;left:var(--shift, 0);will-change:left;transition:left var(--f-transition-duration) var(--f-transition-easing)}.f-thumbs.is-modern .f-thumbs__slide button{display:block;margin-inline:50%;width:var(--f-thumb-width);clip-path:var(--clip-path);border:none;box-shadow:none;transition:clip-path var(--f-transition-duration) var(--f-transition-easing),opacity var(--f-thumb-transition-duration, .2s) var(--f-thumb-transition-easing, ease)}.f-thumbs.is-modern .f-thumbs__slide button:after{display:none}.f-thumbs.is-modern .f-thumbs__slide:focus:not(:focus-visible){outline:none}.f-thumbs.is-modern .f-thumbs__slide:focus-within:not(.is-selected) button:before{content:"";position:absolute;z-index:1;top:0;left:var(--clip-shift);bottom:0;right:var(--clip-shift);transition:border var(--f-transition-duration) var(--f-transition-easing),box-shadow var(--f-transition-duration) var(--f-transition-easing);border-radius:inherit;border:var(--f-thumb-focus-border, none);box-shadow:var(--f-thumb-focus-shadow, none)}.f-thumbs.is-modern{--f-transition-duration: .25s;--f-transition-easing: ease-out}.f-thumbs.is-modern.is-syncing{--f-transition-duration: 0s}.f-thumbs.is-scrollable .f-thumbs__viewport{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--f-thumb-width),1fr));grid-auto-rows:var(--f-thumb-height);gap:var(--f-thumbs-gap);overflow:auto;overscroll-behavior:contain;user-select:none}.f-thumbs.is-scrollable .f-thumbs__viewport .f-thumbs__slide{grid-area:auto;display:block;position:relative;max-width:100%;width:var(--f-thumb-width);height:var(--f-thumb-height);cursor:pointer;outline:none}:root{--f-progressbar-height: 3px;--f-progressbar-color: var(--f-carousel-theme-color, #575ad6);--f-progressbar-opacity: 1;--f-progressbar-z-index: 30}.f-progressbar{position:absolute;top:0;left:0;right:0;z-index:var(--f-progressbar-z-index);height:var(--f-progressbar-height);transform:scaleX(0);transform-origin:0;opacity:var(--f-progressbar-opacity);background:var(--f-progressbar-color);user-select:none;pointer-events:none;animation-name:f-progressbar;animation-play-state:running;animation-timing-function:linear}.f-progressbar:empty{display:block}button>.f-progressbar{--f-progressbar-height: 100%;--f-progressbar-opacity: .2}@keyframes f-progressbar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}[data-fullscreen-action=toggle] svg g:first-child{display:flex}[data-fullscreen-action=toggle] svg g:last-child{display:none}:fullscreen [data-fullscreen-action=toggle] svg g:first-child{display:none}:fullscreen [data-fullscreen-action=toggle] svg g:last-child{display:flex}.in-fullscreen-mode>.f-carousel{flex:1;min-width:0!important;min-height:0!important}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--f-body-margin, 0px) + var(--f-scrollbar-compensate, 0px));overflow:hidden!important;overscroll-behavior-y:none}.fancybox__dialog{position:fixed;inset:0;z-index:1050;width:100%;height:100vh;max-height:unset;max-width:unset;padding:0;margin:0;border:0;overflow:hidden;background:transparent;touch-action:none;overscroll-behavior:contain}.fancybox__dialog:focus{outline:none}.fancybox__dialog::backdrop{opacity:0}@supports (height: 100dvh){.fancybox__dialog{height:100dvh}}.fancybox__dialog *:empty{display:block}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-backdrop-bg: rgba(24, 24, 27, .95);--f-toolbar-margin: 0;--f-toolbar-padding: 8px;--f-toolbar-gap: 0;--f-toolbar-color: #ddd;--f-toolbar-font-size: 16px;--f-toolbar-font-weight: 500;--f-toolbar-font: -apple-system, BlinkMacSystemFont, "Segoe UI Adjusted", "Segoe UI", "Liberation Sans", sans-serif;--f-toolbar-line-height: var(--f-button-height);--f-toolbar-text-shadow: 1px 1px 1px rgba(0, 0, 0, .75);--f-toolbar-shadow: none;--f-toolbar-bg: none;--f-counter-margin: 0;--f-counter-padding: 0px 10px;--f-counter-gap: 4px;--f-counter-line-height: var(--f-button-height);--f-carousel-gap: 17px;--f-carousel-slide-width: 100%;--f-carousel-slide-height: 100%;--f-carousel-slide-padding: 0;--f-carousel-slide-bg: unset;--f-html-color: #222;--f-html-bg: #fff;--f-error-color: #fff;--f-error-bg: #333;--f-caption-margin: 0;--f-caption-padding: 16px 8px;--f-caption-color: var(--fancybox-color, #dbdbdb);--f-caption-bg: transparent;--f-caption-font: inherit;--f-caption-line-height: 1.375;--f-spinner-color-1: rgba(255, 255, 255, .2);--f-spinner-color-2: rgba(255, 255, 255, .8);--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-border-radius: 50%;--f-spinner-border-width: 4px;--f-progressbar-color: rgba(255, 255, 255);--f-button-width: 46px;--f-button-height: 46px;--f-button-color: #ddd;--f-button-hover-color: #fff;--f-button-outline-width: 1px;--f-button-outline-color: rgba(255, 255, 255, .75);--f-button-outline-offset: 0px;--f-button-bg: rgba(54, 54, 54, .75);--f-button-border: 0;--f-button-border-radius: 0;--f-button-shadow: none;--f-button-transition: all .2s ease;--f-button-transform: none;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.75;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, .01)), drop-shadow(1px 2px 1px rgba(24, 24, 27, .05));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: .5;--f-arrow-pos: 32px;--f-arrow-width: 50px;--f-arrow-height: 50px;--f-arrow-svg-width: 24px;--f-arrow-svg-height: 24px;--f-arrow-svg-stroke-width: 2.5;--f-arrow-border-radius: 50%;--f-arrow-bg: rgba(54, 54, 54, .65);--f-arrow-color: #ddd;--f-arrow-hover-color: #fff;--f-close-button-width: 30px;--f-close-button-height: 30px;--f-close-button-svg-width: 24px;--f-close-button-svg-height: 24px;--f-close-button-svg-stroke-width: 1.75;--f-close-border-radius: 4px;--f-close-button-color: #fff;--f-close-button-hover-color: #fff;--f-close-button-bg: transparent;--f-close-button-hover-bg: transparent;--f-close-button-active-bg: transparent;--f-thumbs-margin: 0px;--f-thumbs-padding-x: 8px;--f-thumbs-padding-y: 8px;--f-thumbs-bg: none;--f-thumb-transition: all .2s ease;--f-thumb-width: 94px;--f-thumb-height: 76px;--f-thumb-opacity: 1;--f-thumb-border: none;--f-thumb-shadow: none;--f-thumb-transform: none;--f-thumb-focus-opacity: 1;--f-thumb-focus-border: none;--f-thumb-focus-shadow: inset 0 0 0 2px rgba(255, 255, 255, .65);--f-thumb-focus-transform: none;--f-thumb-hover-opacity: 1;--f-thumb-hover-border: none;--f-thumb-hover-transform: none;--f-thumb-active-opacity: var(--f-thumb-hover-opacity);--f-thumb-active-border: var(--f-thumb-hover-border);--f-thumb-active-transform: var(--f-thumb-hover-transform);--f-thumb-selected-opacity: 1;--f-thumb-selected-border: none;--f-thumb-selected-shadow: inset 0 0 0 2px #fff;--f-thumb-selected-transform: none;--f-scrollbar-width: 7px;--f-scrollbar-track-bg: #444;--f-scrollbar-track-border-radius: 10px;--f-scrollbar-track-shadow: inset 0 0 6px rgba(0, 0, 0, .2);--f-scrollbar-thumb-bg: #ddd;--f-scrollbar-thumb-border-radius: 10px}.fancybox__container[theme=light]{--fancybox-color: #222;--fancybox-backdrop-bg: rgba(255, 255, 255, .97);--f-toolbar-color: var(--fancybox-color, #222);--f-toolbar-text-shadow: none;--f-toolbar-font-weight: 400;--f-html-color: var(--fancybox-color, #222);--f-html-bg: #fff;--f-error-color: #555;--f-error-bg: #fff;--f-video-bg: #fff;--f-caption-color: #333;--f-spinner-color-1: rgba(0, 0, 0, .2);--f-spinner-color-2: rgba(0, 0, 0, .8);--f-spinner-border-width: 3.5px;--f-progressbar-color: rgba(111, 111, 116);--f-button-color: #333;--f-button-hover-color: #000;--f-button-outline-color: rgba(0, 0, 0, .85);--f-button-bg: rgba(255, 255, 255, .85);--f-button-svg-stroke-width: 1.3;--f-button-svg-filter: none;--f-arrow-bg: rgba(255, 255, 255, .85);--f-arrow-color: #333;--f-arrow-hover-color: #000;--f-arrow-svg-stroke-width: 1.3;--f-close-button-color: #555;--f-close-button-hover-color: #000;--f-thumb-bg: linear-gradient(#ebeff2, #e2e8f0);--f-thumb-focus-shadow: 0 0 0 1.8px #fff, 0px 0px 0px 2.25px #888;--f-thumb-selected-shadow: 0 0 0 1.8px #fff, 0px 0px 0px 2.25px #000;--f-scrollbar-track-bg: #ddd;--f-scrollbar-thumb-bg: #444}.fancybox__container{position:absolute;inset:0;overflow:hidden;display:flex;flex-direction:column}.fancybox__container:focus{outline:none}.fancybox__container.has-vertical-thumbs{flex-direction:row-reverse}.fancybox__container.has-vertical-thumbs:not(.is-closing) .fancybox__viewport{overflow-x:clip;overflow-y:visible}.fancybox__container>*:not(.fancybox__carousel),.fancybox__container .fancybox__carousel>*:not(.fancybox__grid,.fancybox__viewport),.fancybox__container .fancybox__column>*:not(.fancybox__viewport),.fancybox__container .fancybox__slide:not(.is-selected),.fancybox__container .fancybox__slide.is-selected>*:not(.f-html,.f-panzoom__wrapper,.f-spinner){opacity:var(--f-drag-opacity, 1)}.fancybox__container:not(.is-ready,.is-hiding){visibility:hidden}.fancybox__container.is-revealing>*:not(.fancybox__carousel),.fancybox__container.is-revealing .fancybox__carousel>*:not(.fancybox__grid,.fancybox__viewport),.fancybox__container.is-revealing .fancybox__column>*:not(.fancybox__viewport),.fancybox__container.is-revealing .fancybox__slide:not(.is-selected),.fancybox__container.is-revealing .fancybox__slide.is-selected>*:not(.f-html,.f-panzoom__wrapper){animation:var(--f-interface-enter-duration, .35s) ease none f-fadeIn}.fancybox__container.is-hiding>*:not(.fancybox__carousel),.fancybox__container.is-hiding .fancybox__carousel>*:not(.fancybox__grid,.fancybox__viewport),.fancybox__container.is-hiding .fancybox__column>*:not(.fancybox__viewport),.fancybox__container.is-hiding .fancybox__slide.is-selected>*:not(.f-html,.f-panzoom__wrapper){animation:var(--f-interface-exit-duration, .35s) ease forwards f-fadeOut}.fancybox__container.is-hiding .fancybox__carousel .fancybox__slide:not(.is-selected){opacity:0}.fancybox__container.is-hiding{pointer-events:none}.fancybox__container.is-idle .f-carousel__toolbar{pointer-events:none;opacity:0}.fancybox__container.is-idle .f-button.is-arrow{opacity:0}.fancybox__container.is-idle.is-ready .f-carousel__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__container.is-idle.is-ready .f-button.is-arrow{animation:.15s ease-out both f-fadeOut}.fancybox__backdrop{position:fixed;inset:0;z-index:-1;background:var(--fancybox-backdrop-bg);filter:var(--fancybox-backdrop-filter)}.fancybox__carousel{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;position:relative;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__carousel.is-vertical{--f-carousel-slide-height: 100%}.fancybox__carousel.is-ltr{direction:ltr}.fancybox__carousel.is-rtl{direction:rtl}.fancybox__carousel>.f-button.is-arrow:before{position:absolute;content:"";inset:-30px;z-index:1}.fancybox__viewport{display:grid;flex:1;min-height:0;min-width:0;position:relative;overflow:visible;transform:translate3d(0,var(--f-drag-offset, 0),0)}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__viewport [data-selectable],.fancybox__viewport [contenteditable]{cursor:auto}.fancybox__slide{box-sizing:border-box;position:relative;grid-area:1/1;display:flex;align-items:center;flex-direction:column;width:var(--f-carousel-slide-width);height:var(--f-carousel-slide-height);min-width:0;min-height:0;max-width:100%;margin:0;padding:var(--f-carousel-slide-padding);background:var(--f-carousel-slide-bg);backface-visibility:hidden;transform:translateZ(0);will-change:transform}.fancybox__slide:before,.fancybox__slide:after{display:block;content:""}.fancybox__slide:before{margin-bottom:auto}.fancybox__slide:after{margin-top:auto}.fancybox__slide.is-selected{z-index:1}.fancybox__slide.f-zoomable{overflow:visible}.fancybox__slide.has-error{--f-html-color: var(--f-error-color, --f-html-color);--f-html-bg: var(--f-error-bg, --f-html-bg)}.fancybox__slide.has-html{overflow:auto;padding:8px}.fancybox__slide.has-iframe{overflow:hidden;padding:8px 0}.fancybox__slide.has-close-btn{padding-top:34px}.fancybox__slide.has-controls:before{margin:0}.fancybox__slide .f-spinner{cursor:pointer}.fancybox__container.is-closing .f-caption,.fancybox__slide.is-loading .f-caption{visibility:hidden}.fancybox__container.is-closing .fancybox__carousel,.fancybox__container.is-closing .fancybox__viewport,.fancybox__container.is-closing .fancybox__slide.is-selected{overflow:visible}.f-button.is-close-button{--f-button-width: var(--f-close-button-width);--f-button-height: var(--f-close-button-height);--f-button-border-radius: var(--f-close-border-radius);--f-button-color: var(--f-close-button-color);--f-button-hover-color: var(--f-close-button-hover-color);--f-button-bg: var(--f-close-button-bg);--f-button-hover-bg: var(--f-close-button-hover-bg);--f-button-active-bg: var(--f-close-button-active-bg);--f-button-svg-width: var(--f-close-button-svg-width);--f-button-svg-height: var(--f-close-button-svg-height);--f-button-svg-stroke-width: var(--f-close-button-svg-stroke-width);position:absolute;top:calc((var(--f-button-height) + 2px) * -1);right:0;z-index:10}.is-loading .f-button.is-close-button{visibility:hidden}.fancybox__thumbs{flex:0 1 100%}.fancybox__thumbs.is-scrollable{--f-thumbs-cols: 1;--f-thumbs-gap: 8px;--f-thumbs-transition: none;--f-thumbs-padding-x: 4px;--f-thumbs-padding-y: 8px;--f-thumbs-viewport-padding-x: 4px;--f-thumbs-viewport-padding-y: 0px;max-width:calc(var(--f-thumb-width) * var(--f-thumbs-cols) + var(--f-thumbs-gap) * (var(--f-thumbs-cols) - 1) + var(--f-thumbs-padding-x) * 2 + var(--f-thumbs-viewport-padding-x) * 2)}.fancybox__thumbs.is-scrollable ::-webkit-scrollbar{width:var(--f-scrollbar-width)}.fancybox__thumbs.is-scrollable ::-webkit-scrollbar-track{background:var(--f-scrollbar-track-bg);border-radius:var(--f-scrollbar-track-border-radius);box-shadow:var(--f-scrollbar-track-shadow)}.fancybox__thumbs.is-scrollable ::-webkit-scrollbar-thumb{background:var(--f-scrollbar-thumb-bg);border-radius:var(--f-scrollbar-thumb-border-radius)}.fancybox__thumbs.is-scrollable.is-hidden{max-width:0;--f-thumbs-padding-x: 0;max-height:unset;--f-thumbs-padding-y: unset}.fancybox__thumbs.is-scrollable .f-thumbs__viewport{overflow-x:hidden!important;grid-template-columns:repeat(auto-fill,calc((100% - var(--f-thumbs-gap) * (var(--f-thumbs-cols) - 1)) / var(--f-thumbs-cols)))!important} diff --git a/wp-content/themes/hantico/assets/libs/fancybox/fancybox.umd.js b/wp-content/themes/hantico/assets/libs/fancybox/fancybox.umd.js new file mode 100644 index 0000000..274c2dd --- /dev/null +++ b/wp-content/themes/hantico/assets/libs/fancybox/fancybox.umd.js @@ -0,0 +1,11 @@ +/*! License details at fancyapps.com/license */ +(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.window=e.window||{}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=e=>typeof e==`object`&&!!e&&e.constructor===Object&&Object.prototype.toString.call(e)===`[object Object]`,n=e=>typeof e==`string`,r=e=>e&&e!==null&&e instanceof Element&&`nodeType`in e,i=function(e){var t=new DOMParser().parseFromString(e,`text/html`).body;if(t.childElementCount>1){for(var n=document.createElement(`div`);t.firstChild;)n.appendChild(t.firstChild);return n}let r=t.firstChild;if(r&&!(r instanceof HTMLElement)){var n=document.createElement(`div`);return n.appendChild(r),n}return r},a=function(e){if(!(e&&e instanceof Element&&e.offsetParent))return!1;let t=!1,n=!1;if(e.scrollWidth>e.clientWidth){let n=window.getComputedStyle(e).overflowX,r=n.indexOf(`hidden`)!==-1,i=n.indexOf(`clip`)!==-1,a=n.indexOf(`visible`)!==-1;t=!r&&!i&&!a}if(e.scrollHeight>e.clientHeight){let t=window.getComputedStyle(e).overflowY,r=t.indexOf(`hidden`)!==-1,i=t.indexOf(`clip`)!==-1,a=t.indexOf(`visible`)!==-1;n=!r&&!i&&!a}return t||n},o=function(e,t=void 0){return!e||e===document.body||t&&e===t?null:a(e)?e:o(e.parentElement,t)},s=(e=!0,t=`--f-scrollbar-compensate`,n=`--f-body-margin`,r=`hide-scrollbar`)=>{let i=document,a=i.body,o=i.documentElement;if(e){if(a.classList.contains(r))return;let e=window.innerWidth-o.getBoundingClientRect().width;e<0&&(e=0),o.style.setProperty(t,`${e}px`);let i=parseFloat(window.getComputedStyle(a).marginRight);i&&a.style.setProperty(n,`${i}px`),a.classList.add(r)}else a.classList.remove(r),a.style.setProperty(n,``),i.documentElement.style.setProperty(t,``)},c=(e,...n)=>{let r=n.length;for(let i=0;i{let i=Array.isArray(r)?[]:{};e[n]||Object.assign(e,{[n]:i}),t(r)?Object.assign(e[n],c(e[n],r)):Array.isArray(r)?Object.assign(e,{[n]:[...r]}):Object.assign(e,{[n]:r})})}return e};function l(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}let u=function(e=0,t=0,n=0){return Math.max(Math.min(t,n),e)},d=function(e=0,t=0,n=0,r=0,i=0,a=!1){let o=(e-t)/(n-t)*(i-r)+r;return a?r{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.add(t)})},p=(e,t=``)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.remove(t)})},m=(e,t=``,n)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.toggle(t,n||!1)})};function h(e){return t(e)||Array.isArray(e)}function g(e,t){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>{let r=e[n],i=t[n];return typeof r==`function`?`${r}`==`${i}`:!h(r)||!h(i)?r===i:g(r,i)}):!1}let _=function(e){for(let t of x)t.getState()===v.Running&&t.tick(C?e-C:0);C=e,S=window.requestAnimationFrame(_)},v=function(e){return e[e.Initializing=0]=`Initializing`,e[e.Running=1]=`Running`,e[e.Paused=2]=`Paused`,e[e.Completed=3]=`Completed`,e[e.Destroyed=4]=`Destroyed`,e}({});var y=function(e){return e[e.Spring=0]=`Spring`,e[e.Ease=1]=`Ease`,e}(y||{});let b=function(e){return e[e.Loop=0]=`Loop`,e[e.Reverse=1]=`Reverse`,e}({}),x=new Set,S=null,C=0;function w(){let e=v.Initializing,t=y.Ease,n=0,r=0,i=w.Easings.Linear,a=500,o=0,s=0,c=0,l=0,d=1/0,f=.01,p=.01,m=!1,h={},C=null,T={},E={},D={},O=0,k=0,A=b.Loop,j=w.Easings.Linear,M=new Map;function N(e,t){M.set(e,[...M.get(e)||[],t])}function ee(e,t){M.has(e)&&M.set(e,M.get(e).filter(e=>e!==t))}function P(e,...t){for(let n of M.get(e)||[])n(...t)}function F(e){return r=0,e?C=setTimeout(()=>{I()},e):I(),B}function I(){e=v.Running,P(`start`,T,E)}function L(){return C&&=(clearTimeout(C),null),e===v.Running&&(e=v.Paused,P(`pause`,T)),B}function R(n){n>50&&(n=50),r+=n;let _=0,x=!1;if(e!==v.Running)return B;if(t===y.Ease){_=u(0,r/a,1),x=_===1;let e=A===b.Reverse?j:i;for(let t in T)T[t]=h[t]+(E[t]-h[t])*e(_)}if(t===y.Spring){let e=n*.001,t=0;for(let n in T){let r=E[n],i=T[n];if(!(typeof r==`number`&&!isNaN(r))||!(typeof i==`number`&&!isNaN(i)))continue;if(Math.abs(r-i)<=p){T[n]=r,D[n]=0;continue}D[n]||(typeof o==`object`&&typeof o[n]==`number`?D[n]=o[n]:typeof o==`number`?D[n]=o:D[n]=0);let a=D[n];a=u(Math.abs(d)*-1,a,Math.abs(d));let h=a*s*l,g=Math.abs(r-i)*c,_=((i>r?-1:1)*g-h)/s;a+=_*e,i+=a*e;let v=T[n]>r?ir,y=Math.abs(a){for(let e of x)e.destroy();S&&=(cancelAnimationFrame(S),null)},w.Easings={Linear:function(e){return e},EaseIn:function(e){return e===0?0:2**(10*e-10)},EaseOut:function(e){return e===1?1:1-2**(-10*e)},EaseInOut:function(e){return e===0?0:e===1?1:e<.5?2**(20*e-10)/2:(2-2**(-20*e+10))/2}};function T(e){return typeof TouchEvent<`u`&&e instanceof TouchEvent}function E(e,t){let n=[],r=T(e)?e[t]:e instanceof MouseEvent&&(t===`changedTouches`||e.type!==`mouseup`)?[e]:[];for(let e of r)n.push({x:e.clientX,y:e.clientY,ts:Date.now()});return n}function D(e){return E(e,`touches`)}function O(e){return E(e,`targetTouches`)}function k(e){return E(e,`changedTouches`)}function A(e){let t=e[0],n=e[1]||t;return{x:(t.x+n.x)/2,y:(t.y+n.y)/2,ts:n.ts}}function j(e){let t=e[0],n=e[1]||e[0];return t&&n?Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y))*-1:0}let M=e=>{e.cancelable&&e.preventDefault()},N={passive:!1},ee={panThreshold:5,swipeThreshold:3,ignore:[`textarea`,`input`,`select`,`[contenteditable]`,`[data-selectable]`,`[data-draggable]`]},P=!1,F=!0,I=(e,t)=>{let n={...ee,...t},r,i=[],a=[],o=[],s=!1,c=!1,l=!1,u=!1,d=0,f=0,p,m=0,h=0,g=0,_=0,v=0,y=0,b=0,x,S=[],C,w,T=new Map;function E(e,t){T.set(e,[...T.get(e)||[],t])}function I(e){let t=j(a),n=j(o),l=t&&n?t/n:0,u={srcEvent:r,isPanRecognized:s,isSwipeRecognized:c,firstTouch:i,previousTouch:o,currentTouch:a,deltaX:m,deltaY:h,offsetX:g,offsetY:_,velocityX:v,velocityY:y,velocity:Math.abs(v)>Math.abs(y)?v:y,angle:b,axis:x,scale:l,center:p};for(let t of T.get(e)||[])t(u)}function L(e){let t=e.target,r=e.composedPath()[0],i=n.ignore.join(`,`),a=e=>e&&e instanceof HTMLElement&&(e.matches(i)||e.closest(i));if(a(t)||a(r))return!1}function R(e){let t=Date.now();if(S=S.filter(e=>!e.ts||e.ts>t-100),e&&S.push(e),v=0,y=0,S.length>3){let e=S[0],t=S[S.length-1];if(e&&t){let n=t.x-e.x,r=t.y-e.y,i=e.ts&&t.ts?t.ts-e.ts:0;i>0&&(v=Math.abs(n)>3?n/(i/30):0,y=Math.abs(r)>3?r/(i/30):0)}}}function z(e){if(L(e)===!1)return;if(typeof MouseEvent<`u`&&e instanceof MouseEvent){if(P)return}else P=!0;if(typeof MouseEvent<`u`&&e instanceof MouseEvent){if(!e.buttons||e.button!==0)return;M(e)}e instanceof MouseEvent&&(window.addEventListener(`mousemove`,B),window.addEventListener(`mouseup`,V)),window.addEventListener(`blur`,H),r=e,a=O(e),i=[...a],o=[],f=a.length,p=A(a),f===1&&(s=!1,c=!1,l=!1),f&&R(A(a));let t=Date.now(),n=t-(d||t);u=n>0&&n<=250&&f===1,d=t,clearTimeout(C),I(`start`)}function B(e){if(!i.length||e.defaultPrevented||L(e)===!1)return;r=e,o=[...a],a=D(e);let t=A(o),c=A(D(e));if(R(c),f=a.length,p=c,o.length===a.length?(m=c.x-t.x,h=c.y-t.y):(m=0,h=0),i.length){let e=A(i);g=c.x-e.x,_=c.y-e.y}if(a.length>1){let e=j(a),t=j(o);Math.abs(e-t)>=.1&&(l=!0,I(`pinch`))}s||(s=Math.abs(g)>=n.panThreshold||Math.abs(_)>=n.panThreshold,s&&(F=!1,clearTimeout(w),w=void 0,b=Math.abs(Math.atan2(_,g)*180/Math.PI),x=b>45&&b<135?`y`:`x`,i=[...a],o=[...a],g=0,_=0,m=0,h=0,window.getSelection()?.removeAllRanges(),I(`panstart`))),s&&(m||h)&&I(`pan`),I(`move`)}function V(e){if(r=e,!i.length)return;let t=O(e),d=k(e);if(f=t.length,p=A(d),d.length&&R(A(d)),o=[...a],a=[...t],i=[...t],f>0)I(`end`),s=!1,c=!1,S=[];else{let e=n.swipeThreshold;(Math.abs(v)>e||Math.abs(y)>e)&&(c=!0),s&&I(`panend`),c&&I(`swipe`),!s&&!c&&!l&&(I(`tap`),u?I(`doubleTap`):C=setTimeout(function(){I(`singleTap`)},250)),I(`end`),te()}}function H(){clearTimeout(C),te(),s&&I(`panend`),I(`end`)}function te(){P=!1,s=!1,c=!1,u=!1,f=0,S=[],a=[],o=[],i=[],m=0,h=0,g=0,_=0,v=0,y=0,b=0,x=void 0,window.removeEventListener(`mousemove`,B),window.removeEventListener(`mouseup`,V),window.removeEventListener(`blur`,H),!F&&!w&&(w=setTimeout(()=>{F=!0,w=void 0},100))}function U(e){let t=e.target;P=!1,!(!t||e.defaultPrevented)&&(F||(M(e),e.stopPropagation()))}function W(){return e&&(e.addEventListener(`click`,U,N),e.addEventListener(`mousedown`,z,N),e.addEventListener(`touchstart`,z,N),e.addEventListener(`touchmove`,B,N),e.addEventListener(`touchend`,V),e.addEventListener(`touchcancel`,V)),ne}let ne={init:W,on:function(e,t){return E(e,t),ne},off:function(e,t){return T.has(e)&&T.set(e,T.get(e).filter(e=>e!==t)),ne},isPointerDown:()=>f>0,destroy:function(){clearTimeout(C),clearTimeout(w),w=void 0,e&&(e.removeEventListener(`click`,U,N),e.removeEventListener(`mousedown`,z,N),e.removeEventListener(`touchstart`,z,N),e.removeEventListener(`touchmove`,B,N),e.removeEventListener(`touchend`,V),e.removeEventListener(`touchcancel`,V)),e=null,te()}};return ne};I.isClickAllowed=()=>F;let L={IMAGE_ERROR:`This image couldn't be loaded.
Please try again later.`,MOVE_UP:`Move up`,MOVE_DOWN:`Move down`,MOVE_LEFT:`Move left`,MOVE_RIGHT:`Move right`,ZOOM_IN:`Zoom in`,ZOOM_OUT:`Zoom out`,TOGGLE_FULL:`Toggle zoom level`,TOGGLE_1TO1:`Toggle zoom level`,ITERATE_ZOOM:`Toggle zoom level`,ROTATE_CCW:`Rotate counterclockwise`,ROTATE_CW:`Rotate clockwise`,FLIP_X:`Flip horizontally`,FLIP_Y:`Flip vertically`,RESET:`Reset`,TOGGLE_FS:`Toggle fullscreen`},R=1e4,z=e=>{e.cancelable&&e.preventDefault()},B=(e,t=R)=>(e=parseFloat(e+``)||0,Math.round((e+2**-52)*t)/t),V=e=>e instanceof HTMLImageElement,H=function(e){return e.Reset=`reset`,e.Zoom=`zoom`,e.ZoomIn=`zoomIn`,e.ZoomOut=`zoomOut`,e.ZoomTo=`zoomTo`,e.ToggleCover=`toggleCover`,e.ToggleFull=`toggleFull`,e.ToggleMax=`toggleMax`,e.IterateZoom=`iterateZoom`,e.Pan=`pan`,e.Swipe=`swipe`,e.Move=`move`,e.MoveLeft=`moveLeft`,e.MoveRight=`moveRight`,e.MoveUp=`moveUp`,e.MoveDown=`moveDown`,e.RotateCCW=`rotateCCW`,e.RotateCW=`rotateCW`,e.FlipX=`flipX`,e.FlipY=`flipY`,e.ToggleFS=`toggleFS`,e}({}),te=function(e){return e.Cover=`cover`,e.Full=`full`,e.Max=`max`,e}({}),U={x:0,y:0,scale:1,angle:0,flipX:1,flipY:1},W=function(e){return e[e.Init=0]=`Init`,e[e.Loading=1]=`Loading`,e[e.Error=2]=`Error`,e[e.Ready=3]=`Ready`,e[e.Destroyed=4]=`Destroyed`,e}({}),ne={bounds:!0,classes:{container:`f-panzoom`,wrapper:`f-panzoom__wrapper`,content:`f-panzoom__content`,viewport:`f-panzoom__viewport`},clickAction:H.ToggleFull,dblClickAction:!1,gestures:{},height:`auto`,l10n:L,maxScale:4,minScale:1,mouseMoveFactor:1,panMode:`drag`,protected:!1,singleClickAction:!1,spinnerTpl:`
`,wheelAction:H.Zoom,width:`auto`},re=0,ie,G=0,ae=0,oe=(e,t={},a={})=>{let s=W.Init,c={...ne,...t},l={},d,h,_,v,y={...U},b={...U},x,S,C,T,E=[];function D(e){let t=c[e];return t&&typeof t==`function`?t(Ze):t}function O(e,t=[]){let n=D(`l10n`)||{};e=String(e).replace(/\{\{(\w+)\}\}/g,(e,t)=>n[t]||e);for(let n=0;nt),e}function j(){return e&&e.parentElement&&d&&s===W.Ready}let M=new Map;function N(e,t){for(let n of e instanceof Array?e:[e])M.set(n,[...M.get(n)||[],t]);return Ze}function ee(e,t){for(let n of e instanceof Array?e:[e])M.has(n)&&M.set(n,M.get(n).filter(e=>e!==t));return Ze}function P(e,...t){let n=[...M.get(e)||[]];c.on&&n.push(c.on[e]);for(let e of n)e&&typeof e==`function`&&e(Ze,...t);e!==`*`&&P(`*`,e,...t)}function F(){return s=W.Init,P(`init`),L(),te(),oe(),se(),Ze}function L(){for(let[e,t]of Object.entries({...a,...c.plugins||{}}))if(e&&!l[e]&&t instanceof Function){let n=t();n.init(Ze),l[e]=n}P(`initPlugins`)}function te(){let t={...ne.classes,...D(`classes`)},n=t.content?.split(` `).shift(),r=t.wrapper?.split(` `).shift(),i=t.viewport?.split(` `).shift();if(!(!n||!r||!i)&&e&&(f(e,t.container),h=e.querySelector(`.${n}:not(.is-clone)`),h)){if(h.setAttribute(`draggable`,`false`),d=e.querySelector(`.${r}`),d||(d=document.createElement(`div`),f(d,t.wrapper),h.insertAdjacentElement(`beforebegin`,d),d.insertAdjacentElement(`afterbegin`,h)),v=e.querySelector(`.${i}`),v||(v=document.createElement(`div`),f(v,t.viewport),d.insertAdjacentElement(`beforeend`,v)),v.contains(h)||v.insertAdjacentElement(`afterbegin`,h),_=e.querySelector(`.${n}.is-clone`),_||(_=h.cloneNode(!0),_.removeAttribute(`id`),f(_,`is-clone`),d.insertAdjacentElement(`afterbegin`,_)),h instanceof HTMLPictureElement&&(h=h.querySelector(`img`)),_ instanceof HTMLPictureElement&&(_=_.querySelector(`img`)),v instanceof HTMLPictureElement&&(v=v.querySelector(`img`)),v&&(v.style.visibility=`hidden`,D(`protected`))){v.addEventListener(`contextmenu`,e=>{z(e)});let e=document.createElement(`div`);f(e,`f-panzoom__protected`),v.appendChild(e)}P(`initLayout`)}}function oe(){if(e&&d&&!C){let e=null;C=new ResizeObserver(()=>{j()&&(e||=requestAnimationFrame(()=>{j()&&(Ae(),ke(),P(`refresh`)),e=null}))}),C.observe(d),E.push(()=>{C?.disconnect(),C=void 0,e&&=(cancelAnimationFrame(e),null)})}}function se(){if(!e||!h)return;if(!(V(h)&&V(_))){ge();return}let t=()=>{h&&V(h)&&h.decode().then(()=>{ge()}).catch(()=>{ge()})};if(s=W.Loading,e.classList.add(`is-loading`),P(`loading`),_.src&&_.complete){t();return}me(),_.addEventListener(`load`,t,!1),_.addEventListener(`error`,t,!1),E.push(()=>{_?.removeEventListener(`load`,t,!1),_?.removeEventListener(`error`,t,!1)})}function K(){S=w().on(`start`,(e,t)=>{t.angle!==void 0&&(t.angle=Math.round(t.angle/90)*90),t.flipX!==void 0&&(t.flipX=t.flipX>0?1:-1),t.flipY!==void 0&&(t.flipY=t.flipY>0?1:-1),b={...U,...t},Ae(),P(`animationStart`)}).on(`pause`,e=>{b={...U,...e}}).on(`step`,e=>{if(!j()){S?.end();return}if(y={...U,...e},xe()||!D(`bounds`)||X()||b.scale>y.scale||b.scalet.x[1]&&(r=!0),y.yt.y[1]&&(i=!0);let o=!1,s=!1,c=!1,l=!1;b.xt.x[1]&&(s=!0),b.yt.y[1]&&(c=!0);let d=!1;(r&&s||n&&o)&&(b.x=u(t.x[0],b.x,t.x[1]),d=!0),(i&&c||a&&l)&&(b.y=u(t.y[0],b.y,t.y[1]),d=!0),d&&S&&S.spring({tension:94,friction:17,maxSpeed:555*b.scale,restDelta:.1,restSpeed:.1,velocity:S.getCurrentVelocities()}).from(y).to(b).start(),Y()}).on(`end`,()=>{x?.isPointerDown()||ke(),S?.isRunning()||(Ae(),P(`animationEnd`))})}function ce(){let e=D(`gestures`);if(!e||!v||!h)return;let t=!1;x=I(v,e).on(`start`,e=>{if(!D(`gestures`)||!S||!j()||xe())return;let n=e.srcEvent;(y.scale>1||Ke(y.angle)||e.currentTouch.length>1)&&(n?.stopPropagation(),S.pause(),t=!0),e.currentTouch.length===1&&P(`touchStart`)}).on(`move`,e=>{t&&(b.scale!==1||Ke(b.angle)||e.currentTouch.length>1)&&(z(e.srcEvent),e.srcEvent?.stopPropagation())}).on(`pan`,e=>{if(!t)return;let n=e.srcEvent;(b.scale!==1||Ke(b.angle)||e.currentTouch.length>1)&&(z(n),J(H.Pan,e))}).on(`swipe`,e=>{t&&(b.scale>1||Ke(b.angle))&&J(H.Swipe,e)}).on(`tap`,e=>{P(`click`,e)}).on(`singleTap`,e=>{P(`singleClick`,e)}).on(`doubleTap`,e=>{P(`dblClick`,e)}).on(`pinch`,e=>{t&&(e.scale>q()?J(H.ZoomIn,e):e.scale{t&&(e.currentTouch.length?(e.srcEvent.stopPropagation(),z(e.srcEvent),S?.end()):(t=!1,Ae(),ke(),P(`touchEnd`)))}).init()}function le(){v&&(v.addEventListener(`wheel`,ue,{passive:!1}),E.push(()=>{v?.removeEventListener(`wheel`,ue,{passive:!1})}))}function ue(e){if(!j())return;let t=e.target;if(o(t))return;let n=Date.now(),r=u(-1,[-e.deltaX||0,-e.deltaY||0,-e.detail||0].reduce(function(e,t){return Math.abs(t)>Math.abs(e)?t:e}),1);P(`wheel`,e,r);let i=D(`wheelAction`);if(!i||e.defaultPrevented)return;let a=b.scale,s=a*(r>0?1.5:.5);if(i===H.Zoom){let t=Math.abs(e.deltaY)<100&&Math.abs(e.deltaX)<100?200:45;if(n-GB(o)&&B(a)>=B(o)?(ae+=Math.abs(r),s=o):(ae=0,s=u(i,s,o)),ae>7)return}switch(z(e),i){case H.Pan:J(i,{srcEvent:e,deltaX:-e.deltaX*2,deltaY:-e.deltaY*2});break;case H.Zoom:J(H.ZoomTo,{srcEvent:e,scale:s,center:{x:e.clientX,y:e.clientY}});break;default:J(i,{srcEvent:e})}}function de(t){let n=t.composedPath()[0];if(!I.isClickAllowed()||!r(n)||t.defaultPrevented||!e?.contains(n)||n.hasAttribute(`disabled`)||n.hasAttribute(`aria-disabled`)||n.hasAttribute(`data-carousel-go-prev`)||n.hasAttribute(`data-carousel-go-next`))return;let i=n.closest(`[data-panzoom-action]`),a=i?.dataset?.panzoomAction,o=i?.dataset?.panzoomValue||``;if(a){switch(z(t),a){case H.ZoomTo:case H.ZoomIn:case H.ZoomOut:J(a,{scale:parseFloat(o||``)||void 0});break;case H.MoveLeft:case H.MoveRight:J(a,{deltaX:parseFloat(o||``)||void 0});break;case H.MoveUp:case H.MoveDown:J(a,{deltaY:parseFloat(o||``)||void 0});break;case H.ToggleFS:Ye();break;default:J(a);break}return}if(!d?.contains(n))return;let s={srcEvent:t};if(J(D(`clickAction`),s),D(`dblClickAction`)){let e=Date.now(),t=e-(re||e),n=t>0&&t<=250;re=e,n?(ie&&=(clearTimeout(ie),void 0),J(D(`dblClickAction`),s)):ie=setTimeout(()=>{J(D(`singleClickAction`),s)},250)}}function fe(e){if(T=e,!j()||!xe()||y.scale<=1||b.scale<=1||(d?.dataset.animationName||``).indexOf(`zoom`)>-1)return;let t=Se(b.scale);if(!t)return;let{x:n,y:r}=t;J(H.Pan,{deltaX:n-b.x,deltaY:r-b.y})}function pe(){e?.addEventListener(`click`,de),document?.addEventListener(`mousemove`,fe),E.push(()=>{e?.removeEventListener(`click`,de),document?.removeEventListener(`mousemove`,fe)})}function me(){if(!e||e?.querySelector(`.f-spinner`))return;let t=i(D(`spinnerTpl`));t&&(t.classList.add(`f-spinner`),e.classList.add(`is-loading`),d?.insertAdjacentElement(`afterbegin`,t))}function he(){e&&(p(e,`is-loading`),e.querySelector(`.f-spinner`)?.remove())}function ge(){if(!e||!h)return;if(he(),V(h)&&!(h.complete&&h.naturalWidth)){s=W.Error,d?.classList.add(`has-error`),P(`error`);return}P(`loaded`);let{width:t,height:n}=ye();V(h)&&(h.setAttribute(`width`,t+``),h.setAttribute(`height`,n+``)),d&&(p(d,`has-error`),V(h)&&(d.setAttribute(`width`,t+``),d.setAttribute(`height`,n+``),d.style.aspectRatio=`${t/n||``}`)),K(),ce(),le(),pe();let r=_e();y={...r},b={...r},s=W.Ready,Y(),Ae(),P(`ready`),requestAnimationFrame(()=>{s===W.Ready&&(he(),v&&(v.style.visibility=``))})}function _e(){let e={...D(`startPos`)||{}},t=e.scale,n=1;n=typeof t==`string`?Ce(t):typeof t==`number`?t:q();let r={...U,...e,scale:n},i=xe()?Se(n):void 0;if(i){let{x:e,y:t}=i;r.x=e,r.y=t}return r}function ve(){let e={top:0,left:0,width:0,height:0};if(d){let t=d.getBoundingClientRect();Ke(b.angle)?(e.top=t.top+t.height*.5-t.width*.5,e.left=t.left+t.width*.5-t.height*.5,e.width=t.height,e.height=t.width):(e.top=t.top,e.left=t.left,e.width=t.width,e.height=t.height)}return e}function ye(){let e=D(`width`),t=D(`height`);if(h&&e===`auto`){let t=h.getAttribute(`width`);e=t?parseFloat(t+``):h.dataset.width===void 0?V(v)?v.naturalWidth:V(h)?h.naturalWidth:d?.getBoundingClientRect().width||0:parseFloat(h.dataset.width+``)}else e=n(e)?parseFloat(e):e;if(h&&t===`auto`){let e=h.getAttribute(`height`);t=e?parseFloat(e+``):h.dataset.height===void 0?V(v)?v.naturalHeight:V(h)?h.naturalHeight:d?.getBoundingClientRect().height||0:parseFloat(h.dataset.height+``)}else t=n(t)?parseFloat(t):t;return{width:e,height:t}}function be(){let e=ve();return{width:e.width,height:e.height}}function xe(){return D(`panMode`)===`mousemove`&&matchMedia(`(hover: hover)`).matches}function Se(e){let t=T||D(`event`),n=d?.getBoundingClientRect();if(!t||!n||e<=1)return{x:0,y:0};let r=(t.clientX||0)-n.left,i=(t.clientY||0)-n.top,{width:a,height:o}=be(),s=Oe(e);if(e>1){let t=D(`mouseMoveFactor`);t>1&&(e*=t)}let c=a*e,l=o*e,f=(c-a)*.5-(c-a)*(r/a*100/100),p=(l-o)*.5-(l-o)*(i/o*100/100);return f=u(s.x[0],f,s.x[1]),p=u(s.y[0],p,s.y[1]),{x:f,y:p}}function Ce(t){if(!t)return b.scale;if(!e)return 1;let n=e.getBoundingClientRect(),r=ve(),{width:i,height:a}=ye(),o=e=>{if(typeof e==`number`)return e;switch(e){case`min`:return 1;case`base`:return 1;case`cover`:return Math.max(n.height/r.height,n.width/r.width)||1;case`full`:case`max`:{let e=Ke(b.angle)?a:i;return e&&r.width?e/r.width:1}}},s=D(`minScale`),c=D(`maxScale`),l=Math.min(o(`full`),o(s)),d=typeof c==`number`?o(`full`)*c:Math.min(o(`full`),o(c));switch(t){case`min`:return l;case`base`:return u(l,1,d);case`cover`:return o(`cover`);case`full`:return Math.min(d,o(`full`));case`max`:return d}}function we(){return Ce(`min`)}function q(){return Ce(`base`)}function Te(){return Ce(`cover`)}function Ee(){return Ce(`full`)}function De(){return Ce(`max`)}function Oe(t){let n={x:[0,0],y:[0,0]},r=e?.getBoundingClientRect();if(!r)return n;let i=ve(),a=r.width,o=r.height,s=i.width,c=i.height;t=t===void 0?b.scale:t;let l=t,u=t;if(xe()&&t>1){let e=D(`mouseMoveFactor`);e>1&&(s*t>a+.01&&(l*=e),c*t>o+.01&&(u*=e))}if(s*=l,c*=u,s>a){n.x[0]=(a-s)*.5,n.x[1]=(s-a)*.5;let e=(i.left-r.left)*.5,t=(i.left+i.width-r.right)*.5;n.x[0]-=e+t,n.x[1]-=e+t}if(c>o){n.y[0]=(o-c)*.5,n.y[1]=(c-o)*.5;let e=(i.top-r.top)*.5,t=(i.top+i.height-r.bottom)*.5;n.y[0]-=e+t,n.y[1]-=e+t}return n}function ke(){if(!j()||!D(`bounds`)||!S)return;let e=we(),t=De(),n=u(e,b.scale,t);if(b.scalet+.01){J(H.ZoomTo,{scale:n});return}if(S.isRunning()||X())return;let r=Oe(n);b.xr.x[1]||b.yr.y[1]?(b.x=u(r.x[0],b.x,r.x[1]),b.y=u(r.y[0],b.y,r.y[1]),S.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:S.getCurrentVelocities()}),S.from(y).to(b).start()):Y()}function Ae(t){if(!j())return;let n=Ge(),r=X(),i=qe(),a=Je(),o=Be(),s=Ve();m(d,`is-fullsize`,a),m(d,`is-expanded`,i),m(d,`is-dragging`,r),m(d,`can-drag`,n),m(d,`will-zoom-in`,o),m(d,`will-zoom-out`,s);let c=Ue(),l=We(),u=He(),f=!j();for(let n of(t||e)?.querySelectorAll(`[data-panzoom-action]`)||[]){let e=n.dataset.panzoomAction,t=!1;if(f)t=!0;else switch(e){case H.ZoomIn:c||(t=!0);break;case H.ZoomOut:u||(t=!0);break;case H.ToggleFull:{l||u||(t=!0);let e=n.querySelector(`g`);e&&(e.style.display=a&&!t?`none`:``);break}case H.IterateZoom:{c||u||(t=!0);let e=n.querySelector(`g`);e&&(e.style.display=!c&&!t?`none`:``);break}case H.ToggleCover:case H.ToggleMax:c||u||(t=!0);break}t?(n.setAttribute(`aria-disabled`,``),n.setAttribute(`tabindex`,`-1`)):(n.removeAttribute(`aria-disabled`),n.removeAttribute(`tabindex`))}}function J(t,n){if(!t||!e||!h||!S||!j()||t===H.Swipe&&Math.abs(S.getCurrentVelocities().scale)>.01)return;let r={...b},i={...b},a=Oe(xe()?r.scale:y.scale),o=S.getCurrentVelocities(),s=ve();n||={};let c=(n.currentTouch?.length||0)>1,l=n.velocityX||0,d=n.velocityY||0,f=n.center;n.srcEvent&&(f=A(k(n.srcEvent)));let p=n.deltaX||0,m=n.deltaY||0;switch(t){case H.MoveRight:p=n.deltaX||100;break;case H.MoveLeft:p=n.deltaX||-100;break;case H.MoveUp:m=n.deltaY||-100;break;case H.MoveDown:m=n.deltaY||100;break}let _=[];if(typeof t==`number`)i.scale=t;else switch(t){case H.Reset:i={...U},i.scale=q();break;case H.ZoomTo:case H.ZoomIn:case H.ZoomOut:case H.ToggleCover:case H.ToggleFull:case H.ToggleMax:case H.IterateZoom:case H.Zoom:i.scale=ze(t,n);break;case H.Pan:case H.Move:case H.MoveLeft:case H.MoveRight:case H.MoveUp:case H.MoveDown:if(X()){let e=1,t=1;i.x<=a.x[0]&&l<=0&&(e=Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-a.x[0]))),e*=.2),i.x>=a.x[1]&&l>=0&&(e=Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-a.x[1]))),e*=.2),i.y<=a.y[0]&&d<=0&&(t=Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-a.y[0]))),t*=.2),i.y>=a.y[1]&&d>=0&&(t=Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-a.y[1]))),t*=.2),i.x+=p*e,i.y+=m*t}else i.x=u(a.x[0],i.x+p,a.x[1]),i.y=u(a.y[0],i.y+m,a.y[1]);break;case H.Swipe:let e=(e=0)=>Math.sign(e)*Math.abs(e)**1.5;i.x+=u(-1e3,e(l),1e3),i.y+=u(-1e3,e(d),1e3),d&&!l&&(i.x=u(a.x[0],i.x,a.x[1])),!d&&l&&(i.y=u(a.y[0],i.y,a.y[1])),o.x=l,o.y=d;break;case H.RotateCW:i.angle+=90;break;case H.RotateCCW:i.angle-=90;break;case H.FlipX:i.flipX*=-1;break;case H.FlipY:i.flipY*=-1;break}if(y.angle!==void 0&&Math.abs(y.angle)>=360&&(i.angle-=Math.floor(y.angle/360)*360,y.angle-=Math.floor(y.angle/360)*360),_.length){let e=_.findIndex(e=>e>i.scale+1/R);i.scale=_[e]||_[0]}if(c&&(i.scale=u(we()*(c?.8:1),i.scale,De()*(c?1.6:1))),xe()){let e=Se(i.scale);if(e){let{x:t,y:n}=e;i.x=t,i.y=n}}else if(Math.abs(i.scale-r.scale)>1e-4){let t=0,n=0;if(f)t=f.x,n=f.y;else{let r=e.getBoundingClientRect();t=r.x+r.width*.5,n=r.y+r.height*.5}let o=t-s.left,l=n-s.top;o-=s.width*.5,l-=s.height*.5;let d=(o-r.x)/r.scale,p=(l-r.y)/r.scale;i.x=o-d*i.scale,i.y=l-p*i.scale,!c&&D(`bounds`)&&(a=Oe(i.scale),i.x=u(a.x[0],i.x,a.x[1]),i.y=u(a.y[0],i.y,a.y[1]))}if(t===H.Swipe){let e=500*i.scale,t=o;S.spring({tension:94,friction:17,maxSpeed:e,restDelta:.1,restSpeed:.1,velocity:t})}else t===H.Pan||c?S.spring({tension:900,friction:17,restDelta:.01,restSpeed:.01,maxSpeed:1}):S.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:o});if(n.velocity===0||g(y,i))y={...i},b={...i},S.end(),Y(),Ae();else{if(g(b,i))return;S.from(y).to(i).start()}P(`action`,t)}function Y(){if(!h||!d||!v)return;let{width:e,height:t}=ye();Object.assign(d.style,{maxWidth:`min(${e}px, 100%)`,maxHeight:`min(${t}px, 100%)`});let{x:n,y:r,width:i,height:a,scale:o,angle:s,flipX:c,flipY:l}=je(),u=`translate(${B(n,100)}px, ${B(r,100)}px)`;c!==1||l!==1?u+=` scaleX(${B(o*c)}) scaleY(${B(o*l)})`:u+=` scale(${B(o)})`,s!==0&&(u+=` rotate(${s}deg)`),v.style.width=`${B(i)}px`,v.style.height=`${B(a)}px`,v.style.transform=`${u}`,P(`render`)}function je(){let{width:t,height:n}=ye(),{width:r,height:i}=be();if(!e)return{x:0,y:0,width:0,height:0,scale:0,flipX:0,flipY:0,angle:0,fitWidth:r,fitHeight:i,fullWidth:t,fullHeight:n};let{x:a,y:o,scale:s,angle:c,flipX:l,flipY:u}=y,d=1/Ee(),f=t,p=n,m=y.scale*d,h=b.scale*d,g=Math.max(r,i),_=Math.min(r,i);t>n?(f=g,p=_):(f=_,p=g),m=t>n?g*s/t||1:g*s/n||1;let v=f?t*h:0,x=p?n*h:0,S=f&&p?t*m/v:0;return a=a+f*.5-v*.5,o=o+p*.5-x*.5,{x:a,y:o,width:v,height:x,scale:S,flipX:l,flipY:u,angle:c,fitWidth:r,fitHeight:i,fullWidth:t,fullHeight:n}}function Me(){return S}function Ne(){return x}function Pe(){return e}function Fe(){return h}function Ie(){return d}function Le(){return v}function Re(){P(`destroy`);for(let e of Object.values(l))e?.destroy(Ze);for(let e of E)e();return d&&(d.style.aspectRatio=``,d.style.maxWidth=``,d.style.maxHeight=``),v&&(v.style.width=``,v.style.height=``,v.style.transform=``),d=void 0,h=void 0,v=void 0,y={...U},b={...U},S?.destroy(),S=void 0,x?.destroy(),x=void 0,s=W.Destroyed,Ze}function ze(e=D(`clickAction`),t={}){let n=b.scale,r=q(),i=[];if(typeof e==`number`)r=e;else if(e){switch(e){case H.ZoomTo:r=t.scale||1;break;case H.ZoomIn:r=n*(t.scale||2);break;case H.ZoomOut:r=n*(t.scale||.5);break;case H.ToggleCover:i=[q(),Te()];break;case H.ToggleFull:i=[q(),Ee()];break;case H.ToggleMax:i=[q(),De()];break;case H.IterateZoom:i=[q(),Ee(),De()];break;case H.Zoom:{let e=Ee();r=n>=e-.05?q():Math.min(e,n*(t.scale||2));break}}i.length&&(r=i.find(e=>e>n+1/R)??q())}return e!==H.ZoomTo&&(r=u(we(),r,De())),r}function Be(){return!!(j()&&ze()>b.scale)}function Ve(){return!!(j()&&ze()we())}function Ue(){return!!(j()&&b.scaleq())}function Je(){return!!(j()&&b.scale>=Ee())}function Ye(){let t=`in-fullscreen`,n=`with-panzoom-in-fullscreen`;e?.classList.toggle(t);let r=e?.classList.contains(t);r?(document.documentElement.classList.add(n),document.addEventListener(`keydown`,Xe,!0)):(document.documentElement.classList.remove(n),document.removeEventListener(`keydown`,Xe,!0)),Y(),P(r?`enterFS`:`exitFS`)}function Xe(e){e.key===`Escape`&&!e.defaultPrevented&&Ye()}let Ze={canDrag:Ge,canZoomIn:Ue,canZoomOut:He,canZoomToFull:We,destroy:Re,emit:P,execute:J,getBoundaries:Oe,getContainer:Pe,getContent:Fe,getFullDim:ye,getGestures:Ne,getMousemovePos:Se,getOptions:function(){return c},getPlugins:function(){return l},getScale:Ce,getStartPosition:_e,getState:function(){return s},getTransform:function(e){return e===!0?b:y},getTween:Me,getViewport:Le,getWrapper:Ie,init:F,isDragging:X,isExpanded:qe,isFullsize:Je,isMousemoveMode:xe,localize:O,off:ee,on:N,toggleFS:Ye,updateControls:Ae,version:`6.1.14`,willZoomIn:Be,willZoomOut:Ve};return Ze};oe.l10n={en_EN:L},oe.getDefaults=()=>ne;let se=(e,t)=>{let n=[];return e.childNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(!t||e.matches(t))&&n.push(e)}),n},K={...L,ERROR:`Something went wrong.
Please try again later.`,NEXT:`Next page`,PREV:`Previous page`,GOTO:`Go to page #%d`,DOWNLOAD:`Download`,TOGGLE_FULLSCREEN:`Toggle full-screen mode`,TOGGLE_EXPAND:`Toggle full-size mode`,TOGGLE_THUMBS:`Toggle thumbnails`,TOGGLE_AUTOPLAY:`Toggle slideshow`},ce=function(e){return e[e.Init=0]=`Init`,e[e.Ready=1]=`Ready`,e[e.Destroyed=2]=`Destroyed`,e}({}),le=function(e){return e[e.Loading=0]=`Loading`,e[e.Loaded=1]=`Loaded`,e[e.Error=2]=`Error`,e}({}),ue=e=>{e.cancelable&&e.preventDefault()},de={adaptiveHeight:!1,center:!0,classes:{container:`f-carousel`,isEnabled:`is-enabled`,isLTR:`is-ltr`,isRTL:`is-rtl`,isHorizontal:`is-horizontal`,isVertical:`is-vertical`,hasAdaptiveHeight:`has-adaptive-height`,viewport:`f-carousel__viewport`,slide:`f-carousel__slide`,isSelected:`is-selected`},dragFree:!1,enabled:!0,errorTpl:`
{{ERROR}}
`,fill:!0,infinite:!0,initialPage:0,l10n:K,rtl:!1,slides:[],slidesPerPage:`auto`,spinnerTpl:`
`,transition:`fade`,tween:{clamp:!0,mass:1,tension:160,friction:25,restDelta:1,restSpeed:1,velocity:0},vertical:!1},fe=0,pe,me,he=(e,a={},s={})=>{fe++;let l=ce.Init,h={...de},g={...de},_={},v,y,b,x=null,S=null,C=0,E=0,D=0,O=!1,k=!1,A=!1,j=`height`,M=0,N=!0,ee,P=0,F=0,L=0,R=0,z,B=`*`,V=[],H=[],te=new Set,U=[],W=[],ne=0,re=0,ie=0;function G(e,...t){let n=g[e];return n&&n instanceof Function?n(Z,...t):n}function ae(e,t=[]){let n=G(`l10n`)||{};e=String(e).replace(/\{\{(\w+)\}\}/g,(e,t)=>n[t]||e);for(let n=0;nt),e}let oe=new Map;function K(e,...t){let n=[...oe.get(e)||[]];g.on&&n.push(g.on[e]);for(let e of n)e&&e instanceof Function&&e(Z,...t);e===`click`&&Ye(t[0]),e!==`*`&&K(`*`,e,...t)}function le(e,t){for(let n of e instanceof Array?e:[e])oe.set(n,[...oe.get(n)||[],t]);return Z}function ge(e,t){for(let n of e instanceof Array?e:[e])oe.has(n)&&oe.set(n,oe.get(n).filter(e=>e!==t));return Z}function _e(){if(!e||!r(e))throw Error(`No Element found`);return l!==ce.Init&&(ot(),l=ce.Init),x=e,h=a,window.removeEventListener(`resize`,ye),h.breakpoints&&window.addEventListener(`resize`,ye),ye(),Z}function ve(e={},n){return ot(),l=ce.Init,z=void 0,B=`*`,a=e,h=e,t(n)&&(s=n),ye(),Z}function ye(){let e=c({},de,h),t=``,n=h.breakpoints||{};for(let[r,i]of Object.entries(n))window.matchMedia(r).matches&&(t+=r,c(e,i));if(!(z!==void 0&&t===z)){if(z=t,l!==ce.Init){let t=W[P]?.slides[0]?.index;t===void 0&&(t=g.initialSlide),e.initialSlide=t,e.slides=[];for(let t of V)t.isVirtual&&e.slides.push(t)}ot(),g=e,G(`enabled`)!==!1&&be()}}function be(){l=ce.Init,K(`init`),xe(),Se(),Ce(),Ge(),l=ce.Ready,f(x,(G(`classes`)||{}).isEnabled||``),at(),Y(),Ee(),Oe(),we(),K(`ready`)}function xe(){for(let[e,t]of Object.entries({...s,...g.plugins||{}}))if(e&&!_[e]&&t instanceof Function){let n=t();n.init(Z,he),_[e]=n}K(`initPlugins`)}function Se(){if(!x)return;let e=G(`classes`)||{};f(x,e.container);let n=G(`style`);if(n&&t(n))for(let[e,t]of Object.entries(n))x.style.setProperty(e,t);S=Array.from(x.querySelectorAll(`.${e.viewport}`)).filter(t=>t.closest(`.${e.container}`)===x).pop()||null,S||(S=document.createElement(`div`),f(S,e.viewport),S.append(...se(x,`.${e.slide}`)),x.insertAdjacentElement(`afterbegin`,S)),x.carousel=Z,K(`initLayout`)}function Ce(){if(!S)return;let e=G(`classes`)||{};V=[],[...se(S,`.${e.slide}`)].forEach(e=>{if(e.parentElement){let t=Be({el:e,isVirtual:!1,...e.dataset||{}});K(`createSlide`,t),V.push(t)}}),We();for(let e of V)K(`addSlide`,e);ze(G(`slides`));for(let e of V){let t=e.el;t?.parentElement===S&&(f(t,g.classes.slide),f(t,e.class),et(e),K(`attachSlideEl`,e))}K(`initSlides`)}function we(){if(!x||!S)return;x.addEventListener(`click`,Je),document.addEventListener(`mousemove`,q),me||(me=function(e){let t=e.target?.dataset?.carouselTarget;t&&(document.getElementById(`${t.split(`#`).pop()}`)?.carousel)?.emit(`click`,e)},document.addEventListener(`click`,me));let e=S.getBoundingClientRect();if(ne=e.height,re=e.width,!b){let e=null;b=new ResizeObserver(()=>{e||=requestAnimationFrame(()=>{Te(),e=null})}),b.observe(S)}}function q(e){pe=e}function Te(){if(l!==ce.Ready||!S)return;let e=W.length,t=S.getBoundingClientRect(),n=t.height,r=t.width;e>1&&(A&&Math.abs(n-ne)<.5||!A&&Math.abs(r-re)<.5)||(Ge(),Oe(),ne=n,re=r,!(A&&!ne||!A&&!re)&&(!x||!S||(e!==W.length||!v?.isPointerDown())&&(G(`dragFree`)&&(O||M>L&&M{(!v||!v.isPointerDown())&&(J(),at())}).on(`step`,e=>{let t=M;M=e.pos,M!==t&&(N=!1,at())}).on(`end`,e=>{v?.isPointerDown()||(M=e.pos,y&&!O&&(MR)?y.spring({clamp:!0,mass:1,tension:200,friction:25,velocity:0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:u(L,M,R)}).start():N||(N=!0,K(`settle`)))})}function De(){let e=G(`gestures`);v||e===!1||!S||(v=I(S,e).on(`start`,e=>{if(!y||G(`gestures`,e)===!1)return;let{srcEvent:t}=e;A&&T(t)&&!o(t.target)&&ue(t),y.pause(),y.getCurrentVelocities().pos=0;function n(e){let t=window.getComputedStyle(e),n=new DOMMatrixReadOnly(t.transform);return{width:n.m41||0,height:n.m42||0}}let r=W[P]?.slides[0],i=r?.el;r&&te.has(r.index)&&i&&(M=r.offset||0,M+=(n(i)[j]||0)*(k&&!A?1:-1)),X(),O||(MR)&&y.spring({clamp:!0,mass:1,tension:500,friction:25,velocity:y.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:u(L,M,R)}).start()}).on(`move`,e=>{if(G(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,deltaX:r,deltaY:i}=e;if(T(t)&&t.touches?.length>1)return;let a=t.target,s=o(a),c=s?s.scrollHeight>s.clientHeight?`y`:`x`:void 0;if(s&&s!==S&&(!n||n===c))return;if(!n){ue(t),t.stopPropagation(),t.stopImmediatePropagation();return}if(n===`y`&&!A||n===`x`&&A||(ue(t),t.stopPropagation(),!y))return;let l=k&&!A?1:-1,u=A?i:r,d=y?.isRunning()?y.getEndValues().pos:M,f=1;O||(d<=L&&u*l<0?(f=Math.max(.01,1-(Math.abs(1/Pe()*Math.abs(d-L))||0)),f*=.2):d>=R&&u*l>0&&(f=Math.max(.01,1-(Math.abs(1/Pe()*Math.abs(d-R))||0)),f*=.2)),d+=u*f*l,y.spring({clamp:!0,mass:1,tension:700,friction:25,velocity:y.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:d}).start()}).on(`panstart`,e=>{G(`gestures`,e)!==!1&&e?.axis===(A?`y`:`x`)&&f(S,`is-dragging`)}).on(`panend`,e=>{G(`gestures`,e)!==!1&&p(S,`is-dragging`)}).on(`end`,e=>{if(G(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,velocityX:r,velocityY:i,currentTouch:a}=e;if(a.length>0||!y)return;let s=t.target,c=o(s),l=c?c.scrollHeight>c.clientHeight?`y`:`x`:void 0,d=c&&(!n||n===l);A&&T(t)&&!n&&Je(t);let f=W.length,p=G(`dragFree`);if(!f)return;let m=d?0:G(`vertical`)?i:r;n!==(A?`y`:`x`)&&(m=0);let h=y?.isRunning()?y.getEndValues().pos:M,g=k&&!A?1:-1;if(d||(h+=m*(p?5:1)*g),!O&&(m*g<=0&&h=0&&h>R)){let e=0;Math.abs(m)>0&&(e=Math.abs(m)*2,e=Math.min(Pe()*.3,e)),h=u(L+e*-1,h,R+e),y.spring({clamp:!0,mass:1,tension:380,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:h}).start();return}if(p||_.Autoscroll?.isEnabled()){Math.abs(m)>10?y.spring({clamp:!0,mass:1,tension:150,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:h}).start():y.isRunning()||N||(N=!0,K(`settle`));return}if(!(p||_.Autoscroll?.isEnabled())&&(!(e.offsetX||e.offsetY)||n===`y`&&!A||n===`x`&&A)){nt(P,{transition:`tween`});return}let v=Me(h);Math.abs(m)>10&&v===P&&(m>0?v+=k&&!A?1:-1:v+=k&&!A?-1:1),nt(v,{transition:`tween`,tween:{velocity:m*-1}})}).init())}function Oe(){G(`gestures`)===!1?v&&=(v.destroy(),void 0):v||De(),m(S,`is-draggable`,!!v&&W.length>0)}function ke(e=`*`){let t=[];for(let n of V)(e===`*`||n.class&&n.class.includes(e)||n.el&&n.el?.classList.contains(e))&&t.push(n);ee=void 0,B=e,H=[...t]}function Ae(){ee=void 0,P=G(`initialPage`);let e=G(`initialSlide`)||void 0;e!==void 0&&(P=Z.getPageIndex(e)||0),P=u(0,P,W.length-1),M=W[P]?.pos||0,F=M}function J(){if(!y)return;let e=Me(y?.isRunning()?y.getEndValues().pos:M);e!==P&&(ee=P,P=e,et(),Y(),je(),K(`change`,P,ee))}function Y(){if(!x)return;for(let e of x.querySelectorAll(`[data-carousel-index]`))e.innerHTML=P+``;for(let e of x.querySelectorAll(`[data-carousel-page]`))e.innerHTML=P+1+``;for(let e of x.querySelectorAll(`[data-carousel-pages]`))e.innerHTML=W.length+``;let e=G(`classes`)||{},t=Array.from(x.querySelectorAll(`[data-carousel-go-to]`)).filter(t=>t.closest(`.${e.container}`)===x);for(let e of t)parseInt(e.dataset?.carouselGoTo||`-1`,10)===P?e.setAttribute(`aria-current`,`true`):e.removeAttribute(`aria-current`);for(let e of x.querySelectorAll(`[data-carousel-go-prev]`))e.toggleAttribute(`aria-disabled`,!st()),st()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);for(let e of x.querySelectorAll(`[data-carousel-go-next]`))e.toggleAttribute(`aria-disabled`,!ct()),ct()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);let n=!1,r=W[P]?.slides[0];r&&(r.downloadSrc||r.type===`image`&&r.src)&&(n=!0);for(let e of x.querySelectorAll(`[data-carousel-download]`))e.toggleAttribute(`aria-disabled`,!n)}function je(e){e||=W[P]?.slides[0];let t=e?.el;if(t)for(let n of t.querySelectorAll(`[data-slide-index]`))n.innerHTML=e.index+1+``}function Me(e){if(!W.length)return 0;let t=Ie(),n=e;O?n-=Math.floor((e-W[0]?.pos)/t)*t||0:n=u(W[0]?.pos,e,W[W.length-1]?.pos);let r=new Map,i=0;for(let e of W){let a=Math.abs(e.pos-n),o=Math.abs(e.pos-n-t),s=Math.abs(e.pos-n+t),c=Math.min(a,o,s);r.set(i,c),i++}let a=r.size>0?[...r.entries()].reduce((e,t)=>t[1]e+t.dim,0)+(H.length-(O&&e?0:1))*ie:0}function Le(e){let t=Ie(),n=Pe();if(!t||!S||!n)return[];let r=[];e=e===void 0?M:e,O&&(e-=Math.floor(e/t)*t||0);let i=0;for(let a of H){let o=(t=0)=>{r.indexOf(a)>-1||(a.pos=i-e+t||0,a.offset+t>e-a.dim-E+.51&&a.offset+t.05||i>=n)&&(W.push({index:W.length,slides:[],dim:0,offset:0,pos:0}),r=0,i=0),W[W.length-1]?.slides.push(t),r+=t.dim+ie,i++;let a=G(`center`),o=G(`fill`),s=0;for(let n of W){n.dim=(n.slides.length-1)*ie;for(let e of n.slides)n.dim+=e.dim;n.offset=s,n.pos=s,a!==!1&&(n.pos-=(e-n.dim)*.5),o&&!O&&t>e&&(n.pos=u(0,n.pos,t-e)),s+=n.dim+ie}let c=[],l;for(let e of W){let t={...e};l&&Math.abs(t.pos-l.pos)<.1?(l.dim+=t.dim,l.slides=[...l.slides,...t.slides]):(l=t,t.index=c.length,c.push(t))}W=c,P=u(0,P,W.length-1)}function ze(e,t){let n=[];for(let t of Array.isArray(e)?e:[e]){let e=Be({...t,isVirtual:!0});e.el||=document.createElement(`div`),K(`createSlide`,e),n.push(e)}V.splice(t===void 0?V.length:t,0,...n),We();for(let e of n)K(`addSlide`,e),Ve(e);return ke(B),n}function Be(e){return(n(e)||e instanceof HTMLElement)&&(e={html:e}),{index:-1,el:void 0,class:``,isVirtual:!0,dim:0,pos:0,offset:0,html:``,src:``,...e}}function Ve(e){let t=e.el;if(!e||!t)return;let n=e.html?e.html instanceof HTMLElement?e.html:i(e.html):void 0;n&&(f(n,`f-html`),e.htmlEl=n,f(t,`has-html`),t.append(n),K(`contentReady`,e))}function He(e){if(!S||!e)return;let t=e.el;if(t){if(t.setAttribute(`index`,e.index+``),t.parentElement!==S){f(t,g.classes.slide),f(t,e.class),et(e);let n;for(let t of V)if(t.index>e.index){n=t.el;break}S.insertBefore(t,n&&S.contains(n)?n:null),K(`attachSlideEl`,e)}return je(e),t}}function Ue(e){let t=e?.el;t&&(t.remove(),Ke(t),K(`detachSlideEl`,e))}function We(){for(let e=0;e0;for(let e of H)Ke(e.el);te.clear(),e&&at()}function qe(e){e.animationName?.substring(0,2)===`f-`&&(Ke(e.target),te.size||(p(x,`in-transition`),!N&&Math.abs(Z.getPosition(!0)-F)<.5&&(N=!0,K(`settle`))),at())}function Je(e){Ye(e),K(`click`,e)}function Ye(e){if(e.defaultPrevented)return;let t=e.composedPath()[0];if(t.closest(`[data-carousel-go-prev]`)){ue(e),Z.prev();return}if(t.closest(`[data-carousel-go-next]`)){ue(e),Z.next();return}let n=t.closest(`[data-carousel-go-to]`);if(n){ue(e),Z.goTo(parseFloat(n.dataset.carouselGoTo||``)||0);return}if(t.closest(`[data-carousel-download]`)){ue(e);let t=W[P]?.slides[0];if(t&&(t.downloadSrc||t.type===`image`&&t.src)){let e=t.downloadFilename,n=document.createElement(`a`),r=t.downloadSrc||t.src||``;n.href=r,n.target=`_blank`,n.download=e||r,n.click()}return}}function Xe(e){let t=e.el,n=t?.querySelector(`.f-spinner`);if(!t||n)return Z;let r=i(G(`spinnerTpl`));return r&&(f(r,`f-spinner`),t.insertAdjacentElement(`beforeend`,r)),Z}function Ze(e){let t=e.el;t&&t.querySelector(`.f-spinner`)?.remove()}function Qe(e,t){if(l===ce.Ready){Ze(e),$e(e);let n=e.el;if(n){let r=document.createElement(`div`);f(r,`f-html`),f(r,`is-error`),r.innerHTML=ae(t||`

{{ERROR}}

`),e.htmlEl=r,f(n,`has-html has-error`),n.insertAdjacentElement(`afterbegin`,r),K(`contentReady`,e)}}return Z}function $e(e){let t=e.el;t&&(t.querySelector(`.f-html.is-error`)?.remove(),p(t,`has-error`))}function et(e){e||=W[P]?.slides[0];let t=e?.el;if(!t)return;let r=G(`formatCaption`,e);r===void 0&&(r=e.caption),r||=``;let i=G(`captionEl`);if(i&&i instanceof HTMLElement){if(e.index!==P)return;if(n(r)&&(i.innerHTML=ae(r+``)),r instanceof HTMLElement){if(r.parentElement===i)return;i.innerHTML=``,r.parentElement&&(r=r.cloneNode(!0)),i.append(r)}return}if(!r)return;let a=e.captionEl||t.querySelector(`.f-caption`);!a&&r instanceof HTMLElement&&r.classList.contains(`f-caption`)&&(a=r),a||(a=document.createElement(`div`),f(a,`f-caption`),n(r)?a.innerHTML=ae(r+``):r instanceof HTMLElement&&(r.parentElement&&(r=r.cloneNode(!0)),a.append(r)));let o=`f-caption-${fe}_${e.index}`;a.setAttribute(`id`,o),a.dataset.selectable=`true`,f(t,`has-caption`),t.setAttribute(`aria-labelledby`,o),e.captionEl=a,t.insertAdjacentElement(`beforeend`,a)}function tt(e,t){if(!x||!C||!y||!t||!n(t)||t===`tween`)return!1;for(let e of U)if(C-e.dim>.5)return!1;if(E>.5||D>.5)return;let r=W.length,i=e>P?1:-1;e=O?(e%r+r)%r:u(0,e,r-1),k&&(i*=-1);let a=W[P]?.slides[0],o=a?.index,s=W[e]?.slides[0],c=s?.index,l=W[e]?.pos;if(c===void 0||o===void 0||o===c||M===l||Math.abs(C-(s?.dim||0))>1)return!1;N=!1,y.pause(),X(),f(x,`in-transition`),M=F=l;let d=He(a),m=He(s);return J(),d&&(te.add(o),d.style.transform=``,d.addEventListener(`animationend`,qe),p(d,g.classes.isSelected),d.inert=!1,f(d,`f-${t}Out to-${i>0?`next`:`prev`}`)),m&&(te.add(c),m.style.transform=``,m.addEventListener(`animationend`,qe),f(m,g.classes.isSelected),m.inert=!1,f(m,`f-${t}In from-${i>0?`prev`:`next`}`)),at(),!0}function nt(e,n={}){let{transition:r,tween:i}={transition:g.transition,tween:g.tween,...n||{}};if(!x||!y)return;let a=W.length;if(!a||tt(e,r))return;e=O?(e%a+a)%a:u(0,e,a-1),F=W[e||0]?.pos||0;let o=y.isRunning()?y.getEndValues().pos:M;if(Math.abs(F-o)<1){M=F,P!==e&&(et(),ee=P,P=e,Y(),je(),K(`change`,P,ee)),at(),N||(N=!0,K(`settle`));return}if(y.pause(),X(),O){let e=Ie(),t=Math.floor((o-W[0]?.pos)/e)||0,n=F+t*e,r=n-e;F=[n+e,n,r].reduce(function(e,t){return Math.abs(t-o)-1,s=n?.slides?.indexOf(r)>-1;if(r.isVirtual&&!a&&!o)continue;let c=He(r);if(c&&(t.push(r),s&&e.add(c),G(`adaptiveHeight`)&&s)){let e=(c.lastElementChild||c).getBoundingClientRect().height;i=i==null?e:Math.max(i,e)}}S&&i&&(S.style.height=`${i}px`),[...se(S,`.${g.classes.slide}`)].forEach(t=>{m(t,g.classes.isSelected,e.has(t));let n=V[parseInt(t.getAttribute(`index`)||`-1`)];if(!n){t.remove(),Ke(t);return}let i=te.has(n.index),a=U.indexOf(n)>-1;if(n.isVirtual&&!i&&!a){Ue(n);return}if(t.inert=!a,r===!1)return;let o=n.pos?Math.round(n.pos*1e4)/1e4:0,s=0,c=0,l=0,u=0;i||(s=A?0:k?o*-1:o,c=A?o:0,l=d(s,0,n.dim,0,100),u=d(c,0,n.dim,0,100)),r instanceof Function&&!i?r(Z,n,{x:s,y:c,xPercent:l,yPercent:u}):t.style.transform=s||c?`translate3d(${l}%, ${u}%,0)`:``}),K(`render`,t)}function ot(){x?.removeEventListener(`click`,Je),document.removeEventListener(`mousemove`,q),te.clear(),b?.disconnect(),b=void 0;for(let e of V){let t=e.el;t&&r(t)&&(e.state=void 0,Ze(e),$e(e),e.isVirtual?(Ue(e),e.el=void 0):(Ke(t),t.style.transform=``,S&&!S.contains(t)&&S.appendChild(t)))}for(let e of Object.values(_))e?.destroy();_={},v?.destroy(),v=void 0,y?.destroy(),y=void 0;for(let[e,t]of Object.entries(g.classes||{}))e!==`container`&&p(x,t);p(S,`is-draggable`)}function st(){return O||P>0}function ct(){return O||PP?-1:1;let r=Ie(),i=Ne(),a=n.pos,o=rt();if(O&&t!==!0){let e=Math.floor((o-W[0]?.pos)/r)||0;o-=e*r,a=[a+r,a,a-r].reduce(function(e,t){return Math.abs(t-o)P?-1:1;let n=rt(),r=Pe(),i=t.pos;if(O){let e=Ie(),t=Math.floor((n-W[0]?.pos)/e)||0,r=i+t*e,a=r-e;i=[r+e,r,a].reduce(function(e,t){return Math.abs(t-n)n&&i+t.dimn+r&&(n+r-i)/t.dim||0},getPages:function(){return W},getPlugins:function(){return _},getPosition:rt,getSlides:function(){return V},getState:function(){return l},getTotalSlideDim:Ie,getTween:function(){return y},getViewport:function(){return S},getViewportDim:Pe,getVisibleSlides:function(e){return e===void 0?U:Le(e)},goTo:nt,hasNavigated:function(){return ee!==void 0},hideError:$e,hideLoading:Ze,init:_e,isInfinite:function(){return O},isInTransition:function(){return te.size>0},isRTL:function(){return k},isSettled:function(){return N},isVertical:function(){return A},localize:ae,next:function(e={}){return nt(P+1,e),Z},off:ge,on:le,prev:function(e={}){return nt(P-1,e),Z},reInit:ve,remove:function(e){e===void 0&&(e=V.length-1);let t=V[e];return t&&(K(`removeSlide`,t),t.el&&=(Ke(t.el),t.el.remove(),void 0),V.splice(e,1),ke(B),Ge(),M=u(L,M,R),at()),Z},setPosition:it,showError:Qe,showLoading:Xe,version:`6.1.14`};return Z};he.l10n={en_EN:K},he.getDefaults=()=>de;let ge=function(e=``,t=``,n=``){return e.split(t).join(n)},_e={tpl:e=>`{{alt}}`},ve=()=>{let e;function r(n,r){let i=e?.getOptions().Zoomable,a=(t(i)?{..._e,...i}:_e)[n];return a&&typeof a==`function`&&r?a(r):a}function i(){e&&e.getOptions().Zoomable!==!1&&(e.on(`addSlide`,s),e.on(`removeSlide`,c),e.on(`attachSlideEl`,l),e.on(`click`,o),e.on(`change`,a),e.on(`ready`,a))}function a(){u();let t=e?.getVisibleSlides()||[];if(t.length>1||e?.getOption(`transition`)===`slide`)for(let n of t){let t=n.panzoomRef;t&&(e?.getPage().slides||[]).indexOf(n)<0&&t.execute(H.ZoomTo,{...t.getStartPosition()})}}function o(e,t){let n=t.target;!n||t.defaultPrevented||n.dataset.panzoomAction&&d(n.dataset.panzoomAction)}function s(t,i){let a=i.el;if(!e||!a||i.panzoomRef)return;let o=i.src||i.lazySrc||``,s=i.alt||i.caption||`Image #${i.index}`,c=i.srcset||i.lazySrcset||``,l=i.sizes||i.lazySizes||``;if(o&&n(o)&&!i.html&&(!i.type||i.type===`image`)){i.type=`image`,i.thumbSrc=i.thumbSrc||o;let e=r(`tpl`,i);e=ge(e,`{{src}}`,o+``),e=ge(e,`{{srcset}}`,c+``),e=ge(e,`{{sizes}}`,l+``),a.insertAdjacentHTML(`afterbegin`,e)}let d=a.querySelector(`.f-panzoom__content`);if(!d)return;d.setAttribute(`alt`,s+``);let f=oe(a,{width:i.width&&i.width!==`auto`?parseFloat(i.width+``):`auto`,height:i.height&&i.height!==`auto`?parseFloat(i.height+``):`auto`,classes:{container:`f-zoomable`},event:()=>e?.getLastMouseMove(),spinnerTpl:()=>e?.getOption(`spinnerTpl`)||``,...r(`Panzoom`)});f.on(`*`,(t,n,...r)=>{e&&(n===`loading`&&(i.state=0),n===`loaded`&&(i.state=1),n===`error`&&(i.state=2,e?.showError(i,`{{IMAGE_ERROR}}`)),e.emit(`panzoom:${n}`,i,...r),n===`loading`&&e.emit(`contentLoading`,i),n===`ready`&&e.emit(`contentReady`,i),i.index===e?.getPageIndex()&&u())}),i.panzoomRef=f}function c(e,t){t.panzoomRef&&=(t.panzoomRef.destroy(),void 0)}function l(e,t){let n=t.panzoomRef;if(n)switch(n.getState()){case W.Init:n.init();break;case W.Ready:n.execute(H.ZoomTo,{...n.getStartPosition(),velocity:0});break}}function u(){let t=e?.getContainer()||void 0,n=e?.getPage()?.slides[0]?.panzoomRef;if(t)if(n)n.updateControls(t);else for(let e of t.querySelectorAll(`[data-panzoom-action]`)||[])e.setAttribute(`aria-disabled`,``),e.setAttribute(`tabindex`,`-1`)}function d(t,...n){e?.getPage().slides[0].panzoomRef?.execute(t,...n)}return{init:function(t){e=t,e.on(`initPlugins`,i)},destroy:function(){if(e){e.off(`initPlugins`,i),e.off(`addSlide`,s),e.off(`removeSlide`,c),e.off(`attachSlideEl`,l),e.off(`click`,o),e.off(`change`,a),e.off(`ready`,a);for(let t of e.getSlides())c(e,t)}e=void 0},execute:d}},ye={syncOnChange:!1,syncOnClick:!0,syncOnHover:!1},be=()=>{let e,n;function r(){let n=e?.getOptions().Sync;return t(n)?{...ye,...n}:ye}function i(t){!e||!t||(n=t,e.getOptions().classes={...e.getOptions().classes,isSelected:``},e.getOptions().initialSlide=n.getPage()?.slides[0]?.index||0,r().syncOnChange&&e.on(`change`,l),r().syncOnClick&&e.on(`click`,d),r().syncOnHover&&e.getViewport()?.addEventListener(`mouseover`,f),a())}function a(){!e||!n||(e.on(`ready`,c),e.on(`refresh`,p),n.on(`change`,u),n.on(`filter`,m))}function o(){e?.off(`ready`,c),e?.off(`refresh`,p),e?.off(`change`,l),e?.off(`click`,d),e?.getViewport()?.removeEventListener(`mouseover`,f),n?.off(`change`,u),n?.off(`filter`,m),n=void 0}function s(){let t=r().target;e&&t&&i(t)}function c(){h()}function l(){if(e&&n){let t=e.getPage()?.slides||[],r=n.getPageIndex(t[0].index||0);r>-1&&n.goTo(r,e.hasNavigated()?void 0:{tween:!1,transition:!1}),h()}}function u(){if(e&&n){let t=e.getPageIndex(n.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,n.hasNavigated()?void 0:{tween:!1,transition:!1}),h()}}function d(t,r){if(!e||!n||e.getTween()?.isRunning())return;let i=e?.getOptions().classes.slide;if(!i)return;let a=r.target.closest(`.${i}`);if(a){let e=parseInt(a.getAttribute(`index`)||``)||0,t=n.getPageIndex(e);n.goTo(t)}}function f(t){e&&d(e,t)}function p(){if(e&&n){let t=e.getPageIndex(n.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,{tween:!1,transition:!1}),h()}}function m(t,r){e&&n&&(e.filter(r),u())}function h(){if(!n)return;let t=n.getPage()?.slides[0]?.index||0;for(let n of e?.getSlides()||[])n.el?.classList.toggle(`is-selected`,n.index===t)}return{init:function(t){e=t,e.on(`initSlides`,s)},destroy:function(){o(),e?.off(`initSlides`,s),e=void 0},getTarget:function(){return n}}},xe={showLoading:!0,preload:1},Se=`is-lazyloading`,Ce=`is-lazyloaded`,we=`has-lazyerror`,q=()=>{let e;function n(){let n=e?.getOptions().Lazyload;return t(n)?{...xe,...n}:xe}function r(t){let r=t.el;if(!r)return;let i=n(),a=`[data-lazy-src],[data-lazy-srcset],[data-lazy-bg]`,o=Array.from(r.querySelectorAll(a));r.matches(a)&&o.push(r);for(let n of o){let r=n.dataset.lazySrc,a=n.dataset.lazySrcset,o=n.dataset.lazySizes,s=n.dataset.lazyBg,c=(n instanceof HTMLImageElement||n instanceof HTMLSourceElement)&&(r||a),l=!!s;if(!(c||l))continue;let u=r||a||s;if(u){if(c){let s=n.parentElement?.classList.contains(`f-panzoom__wrapper`);i.showLoading&&e?.showLoading(t),n.addEventListener(`load`,()=>{e?.hideLoading(t),p(n,we),n instanceof HTMLImageElement?n.decode().finally(()=>{p(n,Se),f(n,Ce)}).catch(()=>void 0):(p(n,Se),f(n,Ce)),s||e?.emit(`lazyLoad:loaded`,t,n,u)}),n.addEventListener(`error`,()=>{e?.hideLoading(t),p(n,Se),f(n,we),s||e?.emit(`lazyLoad:error`,t,n,u)}),n.classList.add(`f-lazyload`),n.classList.add(Se),s||e?.emit(`lazyLoad:load`,t,n,u),r&&(n.src=r),a&&(n.srcset=a),o&&(n.sizes=o)}else l&&(n.style.backgroundImage=`url('${s}')`);delete n.dataset.lazySrc,delete n.dataset.lazySrcset,delete n.dataset.lazySizes,delete n.dataset.lazyBg}}}function i(){if(!e)return;let t=[...e.getVisibleSlides()],i=n().preload;if(i>0){let n=e.getPosition(),r=e.getViewportDim();t.push(...e.getVisibleSlides(n+r*i),...e.getVisibleSlides(n-r*i))}for(let e of t)r(e)}return{init:function(t){e=t,e.on(`render`,i)},destroy:function(){e?.off(`render`,i),e=void 0}}},Te={prevTpl:``,nextTpl:``},Ee=()=>{let e;function n(){let n=e?.getOptions().Arrows;return t(n)?{...Te,...n}:Te}let r,a;function o(){if(!e)return;let t=e.getViewport();t&&(r||(r=s(`prev`),r&&t.insertAdjacentElement(`beforebegin`,r)),a||(a=s(`next`),a&&t.insertAdjacentElement(`afterend`,a)),m(e.getContainer(),`has-arrows`,!0))}function s(t){let r=n(),a=``,o=i(e.localize(a))||void 0;return o&&f(o,r[`${t}Class`]),o}function c(){r?.remove(),r=void 0,a?.remove(),a=void 0,e?.getContainer()?.classList.remove(`has-arrows`)}function l(){e&&(r?.toggleAttribute(`aria-disabled`,!e.canGoPrev()),a?.toggleAttribute(`aria-disabled`,!e.canGoNext()))}function u(){e&&e.getOptions().Arrows!==!1&&e.getPages().length>1?(o(),l()):c()}return{init:function(t){e=t.on([`change`,`refresh`],u)},destroy:function(){c(),e?.off([`change`,`refresh`],u),e=void 0}}},De=``,Oe=``+De,ke={moveLeft:[`moveLeft`,`MOVE_LEFT`,``],moveRight:[`moveRight`,`MOVE_RIGHT`,``],moveUp:[`moveUp`,`MOVE_UP`,``],moveDown:[`moveDown`,`MOVE_DOWN`,``],zoomOut:[`zoomOut`,`ZOOM_OUT`,De],zoomIn:[`zoomIn`,`ZOOM_IN`,Oe],toggleFull:[`toggleFull`,`TOGGLE_FULL`,Oe],iterateZoom:[`iterateZoom`,`ITERATE_ZOOM`,Oe],toggle1to1:[`toggleFull`,`TOGGLE_FULL`,``],rotateCCW:[`rotateCCW`,`ROTATE_CCW`,``],rotateCW:[`rotateCW`,`ROTATE_CW`,``],flipX:[`flipX`,`FLIP_X`,``],flipY:[`flipY`,`FLIP_Y`,``],reset:[`reset`,`RESET`,``],toggleFS:[`toggleFS`,`TOGGLE_FS`,``]},Ae={};for(let e of Object.keys(ke)){let t=ke[e];Ae[e]={tpl:``}}let J=function(e){return e.Left=`left`,e.middle=`middle`,e.right=`right`,e}({}),Y={counter:{tpl:`
/
`},download:{tpl:``},autoplay:{tpl:``},thumbs:{tpl:``},...Ae},je={absolute:!1,display:{left:[],middle:[`zoomIn`,`zoomOut`,`toggle1to1`,`rotateCCW`,`rotateCW`,`flipX`,`flipY`,`reset`],right:[]},enabled:`auto`,items:{}},Me=()=>{let e,r;function a(n){let r=e?.getOptions().Toolbar,i=(t(r)?{...je,...r}:je)[n];return i&&typeof i==`function`&&e?i(e):i}function o(){if(!e||r||e?.getOptions().Toolbar===!1)return;let o=e.getContainer();if(!o)return;let s=a(`enabled`);if(!s)return;let l=a(`absolute`),u=e.getSlides().length>1,d=!1,p=!1;for(let t of e.getSlides())t.panzoomRef&&(d=!0),(t.downloadSrc||t.type===`image`&&t.src)&&(p=!0);let m=e.getPlugins().Thumbs?.isEnabled()||!1,h=u&&e.getPlugins().Autoplay||!1,g=e.getPlugins().Fullscreen&&(document.fullscreenEnabled||document.webkitFullscreenEnabled);if(s===`auto`&&(s=d),!s)return;r=o.querySelector(`.f-carousel__toolbar`)||void 0,r||(r=document.createElement(`div`),f(r,`f-carousel__toolbar`));let _=a(`display`),v=c({},Y,a(`items`));for(let a of[`left`,`middle`,`right`]){let o=_[a]||[],s=document.createElement(`div`);f(s,`f-carousel__toolbar__column is-${a}`);for(let r of o){let a;if(n(r)){if(r===`counter`&&!u||r===`autoplay`&&!h||Ae[r]&&!d||r===`fullscreen`&&!g||r===`thumbs`&&!m||r===`download`&&!p)continue;a=v[r]}if(t(r)&&(a=r),a&&a.tpl){let t=e.localize(a.tpl);t=t.split(``).join(``);let n=i(t);n&&(typeof a.click==`function`&&e&&n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),typeof a.click==`function`&&e&&a.click(e,t)}),s.append(n))}}r.append(s)}if(r.childElementCount){if(l&&f(r,`is-absolute`),!r.parentElement){let e=a(`parentEl`);e?e.insertAdjacentElement(`afterbegin`,r):o.insertAdjacentElement(`afterbegin`,r)}o.contains(r)&&(f(o,`has-toolbar`),l&&f(o,`has-absolute-toolbar`))}}return{init:function(t){e=t,e?.on(`initSlides`,o)},destroy:function(){e?.off(`initSlides`,o),p(e?.getContainer(),`has-toolbar has-absolute-toolbar`),r?.remove(),r=void 0},add:function(e,t){Y[e]=t},isEnabled:function(){return!!r}}},Ne={autoStart:!0,pauseOnHover:!0,showProgressbar:!0,timeout:2e3},Pe=()=>{let e,n,r=!1,i=!1,a=!1,o=null;function s(n){let r=e?.getOptions().Autoplay,i=(t(r)?{...Ne,...r}:Ne)[n];return i&&typeof i==`function`&&e?i(e):i}function c(){let t=e?.getPage()?.slides||[];for(let e of t)if(e.state===0)return!0;return!1}function l(){clearTimeout(n),n=void 0}function u(){if(!e||!r||a||i||n||!e.isSettled()||c())return;m();let t=s(`timeout`);n=setTimeout(()=>{if(!(!e||!r||i)){if(!e.isInfinite()&&e.getPageIndex()===e.getPages().length-1){e.goTo(0);return}e.next()}},t)}function d(){if(!e||e.getPages().length<2||e.getOptions().Autoplay===!1||r)return;r=!0,e.emit(`autoplay:start`,s(`timeout`)),f(e.getContainer(),`has-autoplay`),e.getTween()?.on(`start`,x);let t=e?.getContainer();t&&s(`pauseOnHover`)&&matchMedia(`(hover: hover)`).matches&&(t.addEventListener(`mouseenter`,S,!1),t.addEventListener(`mouseleave`,C,!1)),e.on(`change`,y),e.on(`settle`,b),e.on(`contentReady`,_),e.on(`panzoom:touchStart`,p),e.on(`panzoom:wheel`,p),e.isSettled()&&u()}function p(){if(l(),h(),e){if(r){e.emit(`autoplay:end`),e.getTween()?.off(`start`,x);let t=e.getContainer();t&&(t.classList.remove(`has-autoplay`),t.removeEventListener(`mouseenter`,S,!1),t.removeEventListener(`mouseleave`,C,!1))}e.off(`change`,y),e.off(`settle`,b),e.off(`contentReady`,_),e.off(`panzoom:touchStart`,p),e.off(`panzoom:wheel`,p)}r=!1,i=!1}function m(){if(!e||(h(),!s(`showProgressbar`)))return;let t=s(`progressbarParentEl`);if(!t&&e.getPlugins().Toolbar?.isEnabled()&&(t=e.getContainer()),!t&&e.getPlugins().Toolbar?.isEnabled()!==!0){let n=e.getPages()[0]?.slides||[],r=e.getPage()?.slides||[];n.length===1&&r.length===1&&(t=r[0].el)}if(t||=e.getViewport(),!t)return;o=document.createElement(`div`),f(o,`f-progressbar`),t.prepend(o);let n=s(`timeout`)||1e3;o.style.animationDuration=`${n}ms`}function h(){o&&=(o.remove(),null)}function g(){e&&e.getPages().length>1&&s(`autoStart`)&&d()}function _(){u()}function v(e,t){let n=t.target;!n||t.defaultPrevented||n.dataset.autoplayAction===`toggle`&&w.toggle()}function y(){!e||!e?.isInfinite()&&e.getPageIndex()===e.getPages().length-1?p():(l(),h())}function b(){u()}function x(){l(),h()}function S(){a=!0,r&&(l(),h())}function C(){a=!1,r&&!i&&e?.isSettled()&&u()}let w={init:function(t){e=t,e.on(`ready`,g),e.on(`click`,v)},destroy:function(){p(),e?.off(`ready`,g),e?.off(`click`,v),e=void 0},isEnabled(){return r},pause:function(){i=!0,l(),h()},resume:function(){i=!1,r&&!a&&u()},start(){d()},stop(){p()},toggle(){r?p():d()}};return w},Fe={Carousel:{Lazyload:{showLoading:!1}},minCount:2,showOnStart:!0,thumbTpl:`{{alt}}`,type:`modern`},Ie,Le=()=>{let e,n,r,a,o=0,s=0,l=!0,d;function p(n){let r=e?.getOptions().Thumbs,i=(t(r)?{...Fe,...r}:Fe)[n];return i&&typeof i==`function`&&e?i(e):i}function m(){if(!e||e?.getOptions().Thumbs===!1)return!1;let t=0;for(let n of e.getSlides())n.thumbSrc&&t++;return t>=p(`minCount`)}function h(){return p(`type`)===`modern`}function g(){return p(`type`)===`scrollable`}function _(){let t=[],n=e?.getSlides()||[];for(let e of n)t.push({index:e.index,class:e.thumbClass,html:v(e)});return t}function v(e){let t=e.thumb?e.thumb instanceof HTMLImageElement?e.thumb.src:e.thumb:e.thumbSrc||void 0,n=e.thumbAlt===void 0?`Thumbnail #${(e.index||0)+1}`:e.thumbAlt+``,r=p(`thumbTpl`);return r=ge(r,`{{alt}}`,n),r=ge(r,`{{src}}`,t+``),r=ge(r,`{{index}}`,`${e.index||0}`),r=ge(r,`{{page}}`,`${(e.index||0)+1}`),r}function y(e){return`
${e.html||``}
`}function b(t=!1){let n=e?.getContainer();if(!e||!n||r||!m())return;let i=p(`Carousel`)?.classes||{};if(i.container=i.container||`f-thumbs`,!r){let e=n.nextElementSibling;e?.classList.contains(i.container)&&(r=e)}if(!r){r=document.createElement(`div`);let e=p(`parentEl`);e?e.insertAdjacentElement(`beforeend`,r):n.insertAdjacentElement(`afterend`,r)}f(r,i.container),f(r,`f-thumbs`),f(r,`is-${p(`type`)}`),t&&f(r,`is-hidden`)}function x(){if(!r||!g())return;a=document.createElement(`div`),f(a,`f-thumbs__viewport`);let t=``;for(let e of _())typeof(e.html||``)==`string`&&(t+=y(e));a.innerHTML=t,r.append(a),r.addEventListener(`click`,t=>{t.preventDefault();let n=t.target.closest(`[index]`),r=parseInt(n?.getAttribute(`index`)||`-1`);e&&r>-1&&e.goTo(r)}),d=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&e.target instanceof HTMLImageElement&&(e.target.src=e.target.getAttribute(`data-lazy-src`)+``,e.target.removeAttribute(`data-lazy-src`),d?.unobserve(e.target))})},{root:a,rootMargin:`100px`}),r.querySelectorAll(`[data-lazy-src]`).forEach(e=>{d?.observe(e)}),e?.emit(`thumbs:ready`)}function S(){if(!Ie||!e||!r||g()||n)return;let t=_();if(!t.length)return;let i=c({},{Sync:{target:e},Lazyload:{preload:1},slides:t,classes:{container:`f-thumbs`,viewport:`f-thumbs__viewport`,slide:`f-thumbs__slide`},center:!0,fill:!h(),infinite:!1,dragFree:!0,rtl:e.getOptions().rtl||!1,slidesPerPage:e=>{let t=0;return h()&&(ee(),t=(o-s)*4),e&&e.getTotalSlideDim()<=e.getViewportDim()-t?1/0:1}},Fe.Carousel||{},p(`Carousel`)||{});n=Ie(r,i,{Sync:be,Lazyload:q}),n.on(`ready`,()=>{f(r,`is-syncing`),e?.emit(`thumbs:ready`),h()&&e?.on(`render`,D)}),n.on(`destroy`,()=>{e?.emit(`thumbs:destroy`)}),n.init(),n.getGestures()?.on(`start`,()=>{l=!1}),n.on(`click`,(e,t)=>{let n=t.target;if(n){let e=n.matches(`button`)?n:n.firstElementChild;e&&e.matches(`button`)&&(t.preventDefault(),e.focus({preventScroll:!0}))}}),f(e.getContainer(),`has-thumbs`),F()}function C(){r||(b(!0),x(),S()),r&&r.classList.toggle(`is-hidden`)}function w(){m()&&p(`showOnStart`)&&(b(),x())}function T(){m()&&(S(),e?.on(`addSlide`,k),e?.on(`removeSlide`,A),e?.on(`click`,j),e?.on(`refresh`,M),e?.getGestures()?.on(`start`,E),N(!0))}function E(){l=!0,document.activeElement?.closest(`.f-thumbs`)&&document.activeElement?.blur()}function D(){r?.classList.toggle(`is-syncing`,e?.hasNavigated()===!1||e?.getTween()?.isRunning()),F(),e?.getGestures()?.isPointerDown()&&P()}function O(){l=!0,N()}function k(e,t){let r={html:v(t)};if(n)n.add(r,t.index);else if(a){let e=i(y(r));if(e){a.append(e);let t=e.querySelector(`img`);t&&d?.observe(t)}}}function A(e,t){n?n.remove(t.index):a&&a.querySelector(`[index="${t.index}"]`)?.remove()}function j(e,t){let n=t.target;!t.defaultPrevented&&n?.dataset?.thumbsAction===`toggle`&&C()}function M(){N()}function N(t=!1){if(!e||!a||!g())return;let n=e.getPageIndex();a.querySelectorAll(`.is-selected`).forEach(e=>{e.classList.remove(`is-selected`)});let r=a.querySelector(`[index="${n}"]`);if(r){r.classList.add(`is-selected`);let e=a.getBoundingClientRect(),n=r.getBoundingClientRect(),i=r.offsetTop-a.offsetTop-e.height*.5+n.height*.5,o=r.scrollLeft-a.scrollLeft-e.width*.5+n.width*.5;a.scrollTo({top:i,left:o,behavior:t?`instant`:`smooth`})}}function ee(){if(!h()||!r)return;let e=e=>r&&parseFloat(getComputedStyle(r).getPropertyValue(`--f-thumb-`+e))||0;o=e(`width`),s=e(`clip-width`)}function P(){if(!h()||!e||!n||!l)return;let t=n.getTween(),r=n.getPages(),i=e.getPageIndex()||0,a=e.getPageProgress()||0;if(!e||!r||!r[i]||!t)return;let c=t.isRunning()?t.getCurrentValues().pos:n.getPosition();if(c===void 0)return;let d=r[i].pos+a*(o-s);d=u(r[0].pos,d,r[r.length-1].pos),t.from({pos:c}).to({pos:d}).start()}function F(){if(!h()||!e||!n)return;let t=n?.getSlides()||[],r=o*-.5;for(let n of t){let t=n.el;if(!t)continue;let i=e.getPageProgress(n.index)||0;i=Math.max(-1,Math.min(1,i)),i>-1&&i<1&&(r+=o*.5*(1-Math.abs(i))),i=Math.round(i*1e4)/1e4,r=Math.round(r*1e4)/1e4,t.style.setProperty(`--progress`,`${Math.abs(i)}`),t.style.setProperty(`--shift`,`${e?.isRTL()?r*-1:r}px`),i>-1&&i<1&&(r+=o*.5*(1-Math.abs(i)))}}return{init:function(t,n){Ie=n,e=t,e.on(`ready`,T),e.on(`initSlides`,w),e.on(`change`,O)},destroy:function(){g()&&e?.emit(`thumbs:destroy`),e?.off(`ready`,T),e?.off(`initSlides`,w),e?.off(`change`,O),e?.off(`render`,D),e?.off(`addSlide`,k),e?.off(`click`,j),e?.off(`refresh`,M),e?.getGestures()?.off(`start`,E),e?.getContainer()?.classList.remove(`has-thumbs`),e=void 0,n?.destroy(),n=void 0,r?.remove(),r=void 0},getCarousel:function(){return n},getContainer:function(){return r},getType:function(){return p(`type`)},isEnabled:m}},Re={autosize:!1,iframeAttr:{allow:`autoplay; fullscreen`,scrolling:`auto`},preload:!1},ze=()=>{let e;function r(){let n=e?.getOptions().Html;return t(n)?c({},Re,n):Re}function i(){return e?.getOptions().Html!==!1}function a(e){return e.type===`iframe`||e.type===`pdf`||e.type===`gmap`}function o(e){let t=`${e}`;return t.match(/^\d+$/)?`${t}px`:t}function s(e){if(e===void 0||e===``)return;let t=`${e}`.trim();if(!t.match(/^\d+(\.\d+)?(px)?$/))return;let n=parseFloat(t);return Number.isFinite(n)?n:void 0}function l(e,t){let n=e[t]??r()[t];return n===`true`?!0:n===`false`?!1:n}function u(e,t){if(!i())return;let r=t.type,a=t.src;if(!(r||!n(a))){if(a.charAt(0)===`#`?r=`inline`:a.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.((a)?png|avif|gif|jp(g|eg)|pjp(eg)?|jfif|svg|webp|bmp|ico|tif(f)?)((\?|#).*)?$)/i)?r=`image`:a.match(/\.(pdf)((\?|#).*)?$/i)?r=`pdf`:a.match(/\.(html|php)((\?|#).*)?$/i)&&(r=`iframe`),!r){let e=a.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+\.?\d+?)z))|(?:\?ll=))(.*)?/i);e&&(a=`https://maps.google.${e[1]}/?ll=${(e[2]?e[2]+`&z=`+Math.floor(parseFloat(e[3]))+(e[4]?e[4].replace(/^\//,`&`):``):e[4]+``).replace(/\?/,`&`)}&output=${e[4]&&e[4].indexOf(`layer=c`)>0?`svembed`:`embed`}`,r=`gmap`)}if(!r){let e=a.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i);e&&(a=`https://maps.google.${e[1]}/maps?q=${e[2].replace(`query=`,`q=`).replace(`api=1`,``)}&output=embed`,r=`gmap`)}r&&(t.src=a,t.type=r)}}function d(e,t){i()&&a(t)&&_(t)}function m(t,n){if(a(n)){let t=n.el;e?.hideError(n),n.contentEl?.remove(),n.contentEl=void 0,n.htmlEl?.remove(),n.htmlEl=void 0,t&&(p(t,`has-html has-iframe has-pdf has-gmap`),p(t,`is-loading`))}}function h(){for(let t of e?.getSlides()||[])a(t)&&(g(t),t.state===le.Loaded&&v(t))}function g(e){let t=e.htmlEl;if(!(!t||!a(e))&&(t.style.aspectRatio=``,t.style.width=``,t.style.height=``,t.style.maxWidth=``,t.style.maxHeight=``,e.width&&(t.style.maxWidth=o(e.width)),e.height&&(t.style.maxHeight=o(e.height)),e.aspectRatio)){let n=e.aspectRatio.split(`/`),r=parseFloat(n[0].trim()),i=n[1]?parseFloat(n[1].trim()):0,a=r&&i?r/i:r;t.offsetHeight;let o=t.getBoundingClientRect(),s=a<(o.width||1)/(o.height||1);t.style.aspectRatio=`${e.aspectRatio}`,t.style.width=s?`auto`:``,t.style.height=s?``:`auto`}}function _(t){let n=t.el,i=t.src;if(!e||!n||!i)return;let a=document.createElement(`iframe`);f(a,`f-iframe`);for(let[e,t]of Object.entries(r().iframeAttr||{}))a.setAttribute(e,t);a.onerror=()=>{t.state=le.Error,e?.showError(t,`{{IFRAME_ERROR}}`)};let o=document.createElement(`div`);f(o,`f-html`),o.append(a),t.htmlEl=o,t.contentEl=a,f(n,`has-html has-iframe has-${t.type}`),n.prepend(o),g(t);let s=l(t,`preload`),c=l(t,`autosize`);t.type===`iframe`&&(s||c)?(t.state=le.Loading,e.showLoading(t),f(n,`is-loading`),a.onload=()=>{if(!e||e.getState()===2||!a.src.length||t.contentEl!==a||!a.isConnected)return;t.state=le.Loaded;let r=a.dataset.ready!==`true`;a.dataset.ready=`true`,v(t),e.hideLoading(t),r&&e.emit(`contentReady`,t),p(n,`is-loading`)},a.src=`${i}`):(a.src=`${i}`,e.emit(`contentReady`,t))}function v(e){let t=e.contentEl,n=t?.parentElement,r=n?.style,i=l(e,`autosize`),a=s(e.width)||0,o=s(e.height)||0;if(a&&o&&(i=!1),!(!t||!n||!r||!i)){try{let e=window.getComputedStyle(n),i=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),s=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),c=t.contentWindow;if(c){let e=c.document,t=e.getElementsByTagName(`html`)[0],n=e.body;r.width=``;let l=window.getComputedStyle(n),u=parseFloat(l.marginLeft)+parseFloat(l.marginRight),d=n.style.overflow||``;n.style.overflow=`hidden`,a||=n.scrollWidth+u+i,r.flex=`0 0 auto`,r.width=`${a}px`,r.height=`${n.scrollHeight}px`,n.style.overflow=d,o=Math.max(t.scrollHeight,Math.ceil(t.getBoundingClientRect().height))+s}}catch{}(a||o)&&Object.assign(r,{flex:`0 1 auto`,width:a?`${a}px`:``,height:o?`${o}px`:``})}}return{init:function(t){e=t,e.on(`addSlide`,u),e.on(`attachSlideEl`,d),e.on(`detachSlideEl`,m),e.on(`refresh`,h)},destroy:function(){e?.off(`addSlide`,u),e?.off(`attachSlideEl`,d),e?.off(`detachSlideEl`,m),e?.off(`refresh`,h),e=void 0}}},Be=(e,t={})=>{let n=new URL(e),r=new URLSearchParams(n.search),i=new URLSearchParams;for(let[e,n]of[...r,...Object.entries(t)]){let t=n+``;if(e===`t`){let e=t.match(/((\d*)m)?(\d*)s?/);e&&i.set(`start`,parseInt(e[2]||`0`)*60+parseInt(e[3]||`0`)+``)}else i.set(e,t)}let a=i+``,o=e.match(/#t=((.*)?\d+s)/);return o&&(a+=`#t=${o[1]}`),a},Ve={autoplay:!1,html5videoTpl:``,iframeAttr:{allow:`autoplay; fullscreen`,scrolling:`no`,referrerPolicy:`strict-origin-when-cross-origin`,credentialless:``},vimeo:{byline:1,color:`00adef`,controls:1,dnt:1,muted:0},youtube:{controls:1,enablejsapi:1,nocookie:1,rel:0,fs:1}},He=()=>{let e,r=!1;function a(){let n=e?.getOptions().Video;return t(n)?{...Ve,...n}:Ve}function o(){return e?.getPage()?.slides[0]}let s=t=>{try{let n=JSON.parse(t.data);if(t.origin===`https://player.vimeo.com`){if(n.event===`ready`)for(let n of Array.from(e?.getContainer()?.getElementsByClassName(`f-iframe`)||[]))n instanceof HTMLIFrameElement&&n.contentWindow===t.source&&(n.dataset.ready=`true`)}else if(t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/)&&n.event===`onReady`){let e=document.getElementById(n.id);e&&(e.dataset.ready=`true`)}}catch{}};function c(){let e=o(),t=e?.el;if(t&&e?.type===`html5video`)try{let e=t.querySelector(`video`);if(e){let t=e.play();t!==void 0&&t.then(()=>{}).catch(t=>{e.muted=!0,e.play()})}}catch{}let n=e?.htmlEl;n instanceof HTMLIFrameElement&&n.contentWindow?.postMessage(`{"event":"command","func":"stopVideo","args":""}`,`*`)}function l(){let e=o(),t=e?.type;if(!(e?.el&&(t===`youtube`||t===`vimeo`)))return;let n=()=>{if(e.contentEl&&e.contentEl instanceof HTMLIFrameElement&&e.contentEl.contentWindow){let t;if(e.contentEl.dataset.ready===`true`){t=e.type===`youtube`?{event:`command`,func:`playVideo`}:{method:`play`,value:`true`},t&&e.contentEl.contentWindow.postMessage(JSON.stringify(t),`*`),e.poller=void 0;return}e.type===`youtube`&&(t={event:`listening`,id:e.contentEl.getAttribute(`id`)},e.contentEl.contentWindow.postMessage(JSON.stringify(t),`*`))}e.poller=setTimeout(n,250)};n()}function u(t){let r=t.el,o=t.src;if(!e||!r||!o)return;let s=t.html5videoTpl||a().html5videoTpl,c=t.html5videoFormat||a().html5videoFormat;if(!s)return;let l=t.poster||(t.thumb&&n(t.thumb)?t.thumb:``),u=i(s.replace(/\{\{src\}\}/gi,o+``).replace(/\{\{format\}\}/gi,c||``).replace(/\{\{poster\}\}/gi,l+``));if(!u)return;let d=document.createElement(`div`);f(d,`f-html`),d.append(u),t.contentEl=u,t.htmlEl=d,f(r,`has-${t.type}`),r.prepend(d),v(t),e.emit(`contentReady`,t)}function d(t){let n=t.el,r=t.src;if(!e||!n||!r)return;let i=document.createElement(`iframe`);f(i,`f-iframe`),i.setAttribute(`id`,`f-iframe_${t.videoId}`);for(let[e,t]of Object.entries(a().iframeAttr||{}))i.setAttribute(e,t);t.type===`youtube`&&(i.onload=()=>{e?.getState()===1&&i.contentWindow?.postMessage(JSON.stringify({event:`listening`,id:i.getAttribute(`id`)}),`*`)}),i.onerror=()=>{e?.showError(t,`{{IFRAME_ERROR}}`)};let o=document.createElement(`div`);f(o,`f-html`),o.append(i),t.contentEl=i,t.htmlEl=o,f(n,`has-html has-iframe has-${t.type}`),i.src=`${t.src}`,n.prepend(o),v(t),e.emit(`contentReady`,t)}function p(e,t){let r=t.src;if(!n(r))return;let i=t.type;if(!i||i===`html5video`){let e=r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i);e&&(i=`html5video`,t.html5videoFormat=t.html5videoFormat||`video/`+(e[1]===`ogv`?`ogg`:e[1]))}if(!i||i===`youtube`){let e=r.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i);if(e){let n={...a().youtube,...t.youtube||{}},o=`www.youtube${n.nocookie?`-nocookie`:``}.com`,s=Be(r,n),c=encodeURIComponent(e[2]);t.videoId=c,t.src=`https://${o}/embed/${c}?${s}`,t.thumb=t.thumb||`https://i.ytimg.com/vi/${c}/mqdefault.jpg`,i=`youtube`}}if(!i||i===`vimeo`){let e=r.match(/^.+vimeo.com\/(?:\/)?(video\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/);if(e){let n=Be(r,{...a().vimeo,...t.vimeo||{}}),o=encodeURIComponent(e[2]),s=e[5]||``;t.videoId=o,t.src=`https://player.vimeo.com/video/${o}?${s?`h=${s}${n?`&`:``}`:``}${n}`,i=`vimeo`}}t.type=i}function m(e,t){t.type===`html5video`&&u(t),(t.type===`youtube`||t.type===`vimeo`)&&d(t)}function h(e,t){(t.type===`html5video`||t.type===`youtube`||t.type===`vimeo`)&&(t.contentEl?.remove(),t.contentEl=void 0,t.htmlEl?.remove(),t.htmlEl=void 0),t.poller&&clearTimeout(t.poller)}function g(){r=!1}function _(){if(r)return;r=!0;let e=o();(e&&e.autoplay!==void 0?e.autoplay:a().autoplay)&&(c(),l())}function v(e){let t=e?.htmlEl;if(!(!e||!t||!(e.type===`html5video`||e.type===`youtube`||e.type===`vimeo`))){if(t.style.aspectRatio=``,t.style.width=``,t.style.height=``,t.style.maxWidth=``,t.style.maxHeight=``,e.width){let n=`${e.width}`;n.match(/^\d+$/)&&(n+=`px`),t.style.maxWidth=`${n}`}if(e.height){let n=`${e.height}`;n.match(/^\d+$/)&&(n+=`px`),t.style.maxHeight=`${n}`}if(e.aspectRatio){let n=e.aspectRatio.split(`/`),r=parseFloat(n[0].trim()),i=n[1]?parseFloat(n[1].trim()):0,a=r&&i?r/i:r;t.offsetHeight;let o=t.getBoundingClientRect(),s=a<(o.width||1)/(o.height||1);t.style.aspectRatio=`${e.aspectRatio}`,t.style.width=s?`auto`:``,t.style.height=s?``:`auto`}}}function y(){v(o())}return{init:function(t){e=t,e.on(`addSlide`,p),e.on(`attachSlideEl`,m),e.on(`detachSlideEl`,h),e.on(`ready`,_),e.on(`change`,g),e.on(`settle`,_),e.on(`refresh`,y),window.addEventListener(`message`,s)},destroy:function(){e?.off(`addSlide`,p),e?.off(`attachSlideEl`,m),e?.off(`detachSlideEl`,h),e?.off(`ready`,_),e?.off(`change`,g),e?.off(`settle`,_),e?.off(`refresh`,y),window.removeEventListener(`message`,s),e=void 0}}},Ue={autoStart:!1,btnTpl:``},We=`in-fullscreen-mode`,Ge=()=>{let e;function n(n){let r=e?.getOptions().Fullscreen,i=(t(r)?{...Ue,...r}:Ue)[n];return i&&typeof i==`function`&&e?i(e):i}function r(){e?.getPlugins().Toolbar?.add(`fullscreen`,{tpl:n(`btnTpl`)})}function i(){if(n(`autoStart`)){let e=o();e&&c(e)}}function a(e,t){let n=t.target;!n||t.defaultPrevented||n.dataset.fullscreenAction===`toggle`&&u()}function o(){return n(`el`)||e?.getContainer()||void 0}function s(){let e=document;return e.fullscreenEnabled?!!e.fullscreenElement:e.webkitFullscreenEnabled?!!e.webkitFullscreenElement:!1}function c(e){let t=document;e||=t.documentElement;let n;return t.fullscreenEnabled?n=e.requestFullscreen():t.webkitFullscreenEnabled&&(n=e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)),n&&n.then(()=>{e.classList.add(We)}),n}function l(){let e=document,t;return e.fullscreenEnabled?t=e.fullscreenElement&&e.exitFullscreen():e.webkitFullscreenEnabled&&(t=e.webkitFullscreenElement&&e.webkitExitFullscreen()),t&&t.then(()=>{o()?.classList.remove(We)}),t}function u(){if(s())l();else{let e=o();e&&c(e)}}return{init:function(t){e=t,e.on(`initPlugins`,r),e.on(`ready`,i),e.on(`click`,a)},destroy:function(){e?.off(`initPlugins`,r),e?.off(`ready`,i),e?.off(`click`,a)},exit:l,inFullscreen:s,request:c,toggle:u}};function Ke(){if(window.parent===window)return!1;try{var e=window.frameElement}catch{e=null}return e===null?location.protocol===`data:`:e.hasAttribute(`sandbox`)}let X,qe=!1,Je=!1,Ye=!1,Xe=!1,Ze,Qe=()=>{let e=new URL(document.URL).hash,t=e.slice(1).split(`-`),n=t[t.length-1],r=n&&/^\+?\d+$/.test(n)&&parseInt(t.pop()||`1`,10)||1;return{urlHash:e,urlSlug:t.join(`-`),urlIndex:r}},$e=()=>{let e=X?.getInstance(),t=e?.getState();return!!(e&&(t===0||t===1))},et=()=>{if(!X||$e())return;let{urlSlug:e,urlIndex:t}=Qe();if(!e)return;let n=document.querySelector(`[data-slug="${e}"]`);n&&X.fromTriggerEl(n),$e()||(n=document.querySelectorAll(`[data-fancybox="${e}"]`)[t-1],n&&X.fromTriggerEl(n,{startIndex:t-1})),$e()&&n&&!n.closest(`[inert]`)&&n.scrollIntoView({behavior:`instant`,block:`center`,inline:`center`})},tt=e=>{let n=e.getOptions().Hash,r=e.getSlide();return r&&(r.slug||r.fancybox||(t(n)?n.slug:``))||``},nt=e=>{let t=tt(e),n=e.getSlide();if(!n||!t)return``;let r=parseInt(n.index+``,10)+1,i=n.slug?`#${n.slug}`:`#${t}-${r}`;return(e.getCarousel()?.getPages()?.length||0)<2&&(i=`#${t}`),i},rt=()=>{if(!X||Ye)return;let e=X?.getInstance(),n=e?.getCarousel(),{urlSlug:r,urlIndex:i}=Qe(),a=e?.getOptions().Hash;if(a!==!1){if(e&&e.getState()===1&&n){let o=n.getSlides();for(let e of o||[])if(e.slug===r||(e.fancybox===r||t(a)&&a.slug===r)&&e.index===i-1){Je=!1,n.goTo(e.index);return}Xe=!0,e.close(),Xe=!1}et()}},it=()=>{X&&(Ze=setTimeout(()=>{qe=!0,et(),qe=!1},300),window.addEventListener(`hashchange`,rt,!1))},at;function ot(){history.scrollRestoration&&at&&(history.scrollRestoration=at,at=void 0)}let st=()=>{let e,t=``;function n(){if(!e||!e.isTopMost()||e.getOptions().Hash===!1)return;if(qe){let t=e.getOptions().sync;t&&t.goTo(e?.getCarousel()?.getPageIndex()||0,{transition:!1,tween:!1})}let n=e.getCarousel();if(!n||!e.getSlide())return;let i=tt(e);if(!i)return;let{urlHash:a,urlSlug:o}=Qe(),s=nt(e);a!==s&&(t=a),history.scrollRestoration&&!at&&(at=history.scrollRestoration,history.scrollRestoration=`manual`,window.addEventListener(`beforeunload`,ot)),n.on(`change`,r);let c=i!==o;try{window.history[c?`pushState`:`replaceState`]({},document.title,window.location.pathname+window.location.search+s),c&&(Je=!0)}catch{}}function r(){if(!e||!e.isTopMost()||e.getOptions().Hash===!1||!e.getSlide()||!tt(e))return;let t=nt(e);Ye=!0;try{window.history.replaceState({},document.title,window.location.pathname+window.location.search+t)}catch{}Ye=!1}function i(){if(!(!e||!e.isTopMost()||e.getOptions().Hash===!1||Xe)&&tt(e)){Ye=!0;try{Je&&!Ke()&&document.activeElement?.nodeName!==`IFRAME`?window.history.back():window.history.replaceState({},document.title,window.location.pathname+window.location.search+t)}catch{}Ye=!1}}return{init:function(t){clearTimeout(Ze),e=t,e.on(`ready`,n),e.on(`close`,i)},destroy:function(){e?.off(`ready`,n),e?.off(`close`,i);let t=e?.getCarousel();t&&t.off(`change`,r),e=void 0,X?.getInstance()||(ot(),window.removeEventListener(`beforeunload`,ot))}}};st.getInfoFromURL=Qe,st.startFromUrl=et,st.setup=function(e){X||(X=e,l()&&(/complete|interactive|loaded/.test(document.readyState)?it():document.addEventListener(`DOMContentLoaded`,it)))};let ct={...K,CLOSE:`Close`,NEXT:`Next`,PREV:`Previous`,MODAL:`You can close this modal content with the ESC key`,ELEMENT_NOT_FOUND:`HTML Element Not Found`,IFRAME_ERROR:`Error Loading Page`,NO_CAPTION:`No Caption`,TOGGLE_SIDEBAR:`Toggle sidebar`},Z=``;Me().add(`close`,{tpl:Z});let lt=e=>{e.cancelable&&e.preventDefault()},ut=e=>{let t=e.getBoundingClientRect(),n=e.closest(`[style]`),r=n?.parentElement;if(n&&n.style.transform&&r){let e=r.getBoundingClientRect();if(t.lefte.left+e.width-t.width||t.tope.top+e.height-t.height)return!1}let i=Math.max(document.documentElement.clientHeight,window.innerHeight),a=Math.max(document.documentElement.clientWidth,window.innerWidth);return!(t.bottom<0||t.top-i>=0||t.right<0||t.left-a>=0)};function dt(e){var t=e.getBoundingClientRect();return t.bottom>0&&t.right>0&&t.left<(window.innerWidth||document.documentElement.clientWidth)&&t.top<(window.innerHeight||document.documentElement.clientHeight)}let ft=(e,t,n,r,i=`contain`)=>{if(i===`contain`||e>n||t>r){let i=n/e,a=r/t,o=Math.min(i,a);e*=o,t*=o}return{width:e,height:t}},pt=(e=null,t=``,n)=>{if(!e||!e.parentElement||!t){n&&n();return}mt(e);let r=i=>{i.target===e&&e.dataset.animationName&&(e.removeEventListener(`animationend`,r),delete e.dataset.animationName,n&&n(),e.classList.remove(t))};e.dataset.animationName=t,e.addEventListener(`animationend`,r),f(e,t)},mt=e=>{e&&e.dispatchEvent(new CustomEvent(`animationend`,{bubbles:!1,cancelable:!0,currentTarget:e}))},Q=function(e){return e[e.Init=0]=`Init`,e[e.Ready=1]=`Ready`,e[e.Closing=2]=`Closing`,e[e.Destroyed=3]=`Destroyed`,e}({}),ht={ajax:null,backdropClick:`close`,Carousel:{},closeButton:`auto`,closeButtonTpl:Z,closeExisting:!1,delegateEl:void 0,dragToClose:!0,fadeEffect:!0,groupAll:!1,groupAttr:`data-fancybox`,hideClass:`f-fadeOut`,hideScrollbar:!0,id:void 0,idle:!1,keyboard:{Escape:`close`,Delete:`close`,Backspace:`close`,PageUp:`next`,PageDown:`prev`,ArrowUp:`prev`,ArrowDown:`next`,ArrowRight:`next`,ArrowLeft:`prev`},l10n:ct,mainClass:``,mainStyle:{},mainTpl:` +
+
+ +
+
`,modal:!0,on:{},parentEl:void 0,placeFocusBack:!0,showClass:`f-zoomInUp`,startIndex:0,sync:void 0,theme:`dark`,triggerEl:void 0,triggerEvent:void 0,zoomEffect:!0},gt=new Map,_t=0,vt=`with-fancybox`,yt=()=>{let e=Q.Init,a={...ht},l=-1,u={},h=[],g,_,v,y,b,x,S,C=!1,E=!0,D=0;function O(e,...t){let n=a[e];return n&&typeof n==`function`?n(Fe,...t):n}function k(e,t=[]){let n=O(`l10n`)||{};e=String(e).replace(/\{\{(\w+)\}\}/g,(e,t)=>n[t]||e);for(let n=0;nt),e}let A=new Map;function j(e,...t){let n=[...A.get(e)||[]];for(let[t,r]of Object.entries(a.on||{}))(t===e||t.split(` `).indexOf(e)>-1)&&n.push(r);for(let e of n)e&&typeof e==`function`&&e(Fe,...t);e!==`*`&&j(`*`,e,...t)}function M(t=[],n={}){e!==Q.Init&&(Fe.destroy(),e=Q.Init),a=c({},ht,n),l=O(`id`)||`fancybox-${++_t}`;let r=gt.get(l);if(r&&r.destroy(),gt.set(l,Fe),j(`init`),ee(),P(t),F(),L(),!(!g||!_)){if(O(`closeExisting`))for(let[e,t]of gt.entries())e!==l&&t.close();O(`fadeEffect`)?(setTimeout(()=>{N()},500),f(_,`is-revealing`)):N(),_.classList.add(`is-ready`),e=Q.Ready,j(`ready`)}}function N(){p(_,`is-revealing`);try{document.activeElement===g&&(_?.querySelector(`[autofocus]`)||_).focus()}catch{}}function ee(){for(let[e,t]of Object.entries({...$.Plugins,...a.plugins||{}}))if(e&&!u[e]&&t instanceof Function){let n=t();n.init(Fe),u[e]=n}j(`initPlugins`)}function P(e=[]){j(`initSlides`,e),h=[...e]}function F(){let e=O(`parentEl`)||document.body;if(!(e&&e instanceof HTMLElement)||(g=i(k(O(`mainTpl`)||``))||void 0,!g)||(_=g.querySelector(`.fancybox__container`),!(_&&_ instanceof HTMLElement)))return;let n=O(`mainClass`);n&&f(_,n);let r=O(`mainStyle`);if(r&&t(r))for(let[e,t]of Object.entries(r))_.style.setProperty(e,t);let a=O(`theme`),c=a===`auto`?window.matchMedia(`(prefers-color-scheme:light)`).matches:a===`light`;_.setAttribute(`theme`,c?`light`:`dark`),g.setAttribute(`id`,`${l}`),g.addEventListener(`keydown`,e=>{e.key===`Escape`&<(e)}),g.addEventListener(`wheel`,e=>{let t=e.target,n=O(`wheel`,e);t.closest(`.f-thumbs`)&&(n=`slide`);let r=n===`slide`,i=[-e.deltaX||0,-e.deltaY||0,-e.detail||0].reduce(function(e,t){return Math.abs(t)>Math.abs(e)?t:e}),a=Math.max(-1,Math.min(1,i)),s=Date.now();if(D&&s-D<300){r&<(e);return}D=s,j(`wheel`,e,a),!e.defaultPrevented&&(n===`close`?Y(e):n===`slide`&&y&&!o(t)&&(lt(e),y[a>0?`prev`:`next`]()))},{capture:!0,passive:!1}),g.addEventListener(`cancel`,e=>{Y(e)}),e.append(g),gt.size===1&&(O(`hideScrollbar`)&&s(!0),document.documentElement.classList.add(vt)),j(`initLayout`),g instanceof HTMLDialogElement&&(O(`modal`)?g.showModal():g.show())}function L(){if(v=g?.querySelector(`.fancybox__carousel`)||void 0,!v)return;v.fancybox=Fe;let e=c({},{Autoplay:{autoStart:!1,pauseOnHover:!1,progressbarParentEl:e=>{let t=e.getContainer();return t?.querySelector(`.f-carousel__toolbar [data-autoplay-action]`)||t}},Fullscreen:{el:_},Toolbar:{absolute:!0,items:{counter:{tpl:`
/
`}},display:{left:[`counter`],right:[`toggleFull`,`autoplay`,`fullscreen`,`thumbs`,`close`]}},Video:{autoplay:!0},Thumbs:{minCount:2,Carousel:{classes:{container:`fancybox__thumbs`}}},classes:{container:`fancybox__carousel`,viewport:`fancybox__viewport`,slide:`fancybox__slide`},spinnerTpl:`
`,dragFree:!1,slidesPerPage:1,plugins:{Sync:be,Arrows:Ee,Lazyload:q,Zoomable:ve,Html:ze,Video:He,Autoplay:Pe,Fullscreen:Ge,Thumbs:Le,Toolbar:Me}},O(`Carousel`)||{},{slides:h,enabled:!0,initialPage:O(`startIndex`)||0,l10n:O(`l10n`)});y=he(v,e),j(`initCarousel`,y),y.on(`*`,(e,t,...n)=>{j(`Carousel.${t}`,e,...n)}),y.on(`attachSlideEl`,R),y.on(`detachSlideEl`,z),y.on(`contentLoading`,ne),y.on(`contentReady`,re),y.on(`ready`,te),y.on(`change`,V),y.on(`settle`,W),y.on(`thumbs:ready`,ie),y.on(`thumbs:destroy`,ie),y.init()}function R(e,t){fe(t),ae(),t.el?.addEventListener(`click`,B),(t.type===`inline`||t.type===`clone`)&&Se(t),t.type===`ajax`&&Ce(t)}function z(e,t){pe(t),t.el?.removeEventListener(`click`,B),(t.type===`inline`||t.type===`clone`)&&we(t),t.xhr&&=(t.xhr.abort(),void 0)}function B(t){if(!ge())return;if(e!==Q.Ready){lt(t),t.stopPropagation();return}if(t.defaultPrevented||!I.isClickAllowed())return;let n=t.composedPath()[0];n.closest(`.fancybox__carousel`)&&n.classList.contains(`fancybox__slide`)&&oe(t)}function V(){E=!1,_&&y&&_.classList.remove(`is-revealing`),ae();let e=O(`sync`);if(y&&e){let t=e.getPageIndex(y.getPageIndex())||0;e.goTo(t,{transition:!1,tween:!1})}}function te(){de(),G(),ae(),De();let e=O(`sync`);y&&e&&e.getTween()?.start(),me(_e())}function W(){y?.canGoNext()?De():Ae()}function ne(e,t){fe(t)}function re(e,t){fe(t),me(t)}function ie(){let e=y?.getPlugins().Thumbs;m(_,`has-thumbs`,e?.isEnabled()||!1),m(_,`has-vertical-thumbs`,e?e.getType()===`scrollable`||e.getCarousel()?.isVertical()===!0:!1)}function G(){document.body.addEventListener(`click`,ue),document.body.addEventListener(`keydown`,K,{passive:!1,capture:!0})}function ae(){if(!_)return;let e=y?.getPages().length||0,t=y?.getPageIndex()||0,n=_.querySelectorAll(`[data-fancybox-index],[data-fancybox-page],[data-fancybox-pages]`);for(let r of n)r.hasAttribute(`data-fancybox-index`)?r.textContent=String(t):r.hasAttribute(`data-fancybox-page`)?r.textContent=String(t+1):r.textContent=String(e)}function oe(e){if(e.composedPath()[0].closest(`[data-fancybox-close]`)){Y(e);return}j(`backdropClick`,e),!e.defaultPrevented&&O(`backdropClick`)&&Y(e)}function se(){ke()}function K(t){if(!ge()||e!==Q.Ready)return;let n=t.key,i=O(`keyboard`);if(!i||t.ctrlKey||t.altKey||t.shiftKey)return;let a=t.composedPath()[0];if(!r(a)||n!==`Escape`&&(e=>{let t=[`input`,`textarea`,`select`,`option`,`video`,`iframe`,`[contenteditable]`,`[data-selectable]`,`[data-draggable]`].join(`,`);return e.matches(t)||e.closest(t)})(a)||(j(`keydown`,t),t.defaultPrevented))return;let o=i[n];if(o)switch(o){case`close`:Y(t);break;case`next`:lt(t),y?.next();break;case`prev`:lt(t),y?.prev();break}}function ue(t){if(!ge()||e!==Q.Ready||(ke(),t.defaultPrevented))return;let n=t.composedPath()[0],r=!!n.closest(`[data-fancybox-close]`),i=n.classList.contains(`fancybox__backdrop`);(r||i)&&oe(t)}function de(){let t=y?.getViewport();if(!O(`dragToClose`)||!y||!t||(b=I(t).init(),!b))return;let n=!1,r=0,i=0,a={},s=1;function c(){x?.spring({clamp:!0,mass:1,tension:i===0?140:960,friction:17,restDelta:.1,restSpeed:.1,maxSpeed:1/0}).from({y:r}).to({y:i}).start();let e=y?.getViewport()?.getBoundingClientRect().height||0,t=_e()?.panzoomRef;if(e&&t)if(i===0)t.execute(H.Reset);else{let n=d(Math.abs(r),0,e*.33,s,s*.77,!1);t.execute(H.ZoomTo,{scale:n})}}let l=e=>{let t=e.srcEvent,n=t.target;return y&&!(T(t)&&t.touches?.length>1)&&n&&!o(n)};x=w().on(`step`,n=>{if(_&&t&&e===Q.Ready){let e=t.getBoundingClientRect().height;r=Math.min(e,Math.max(e*-1,n.y));let i=d(Math.abs(r),0,e*.65,1,.2,!0);_.style.setProperty(`--f-drag-opacity`,i+``),_.style.setProperty(`--f-drag-offset`,r+`px`)}}),b.on(`start`,function(){n||(x?.pause(),i=r)}).on(`panstart`,e=>{if(!n&&l(e)&&e.axis===`y`){lt(e.srcEvent),n=!0,J(),y?.getViewport()?.classList.add(`is-dragging`);let t=_e()?.panzoomRef;if(t){s=t.getTransform().scale||1;let e=t.getOptions();a={...e},e.bounds=!1,e.gestures=!1}}else n=!1}).on(`pan`,function(e){n&&l(e)&&(lt(e.srcEvent),e.srcEvent.stopPropagation(),e.axis===`y`&&(i+=e.deltaY,c()))}).on(`end`,t=>{if(y?.getViewport()?.classList.remove(`is-dragging`),n){let e=_e()?.panzoomRef;if(e){e.getTween()?.end();let t=e.getOptions();t.bounds=a.bounds||!1,t.gestures=a.gestures||!1}l(t)&&t.axis===`y`&&(Math.abs(t.velocityY)>5||Math.abs(r)>50)&&Y(t.srcEvent,`f-throwOut`+(t.velocityY>0?`Down`:`Up`))}n=!1,e===Q.Ready&&r!==0&&(i=0,c())})}function fe(e){let{el:t,htmlEl:n,panzoomRef:r,closeButtonEl:a}=e,o=r?r.getWrapper():n;if(!t||!t.parentElement||!o)return;let s=O(`closeButton`);if(s===`auto`&&(s=y?.getPlugins().Toolbar?.isEnabled()!==!0),!s){pe(e);return}if(!a){let n=i(k(O(`closeButtonTpl`)));n&&(f(n,`is-close-button`),e.closeButtonEl=o.insertAdjacentElement(`afterbegin`,n),f(t,`has-close-btn`))}}function pe(e){e.closeButtonEl&&=(e.closeButtonEl.remove(),void 0),p(e.el,`has-close-btn`)}function me(e){if(!(E&&y&&y.getState()===ce.Ready&&e&&e.index===y.getOptions().initialPage&&e.el&&e.el.parentElement)||e.state!==void 0&&e.state!==le.Loaded)return;E=!1;let t=e.panzoomRef,n=t?.getTween(),r=O(`zoomEffect`)&&n?xe(e):void 0;if(t&&n&&r){let{x:e,y:i,scale:a}=t.getStartPosition();n.spring({tension:215,friction:25,restDelta:.001,restSpeed:.001,maxSpeed:1/0}).from(r).to({x:e,y:i,scale:a}).start();return}let i=t?.getContent()||e.htmlEl;i&&pt(i,O(`showClass`,e))}function ge(){return $.getInstance()?.getId()===l}function _e(){return y?.getPage()?.slides[0]}function ye(){let e=_e();return e?e.triggerEl||O(`triggerEl`):void 0}function xe(e){let t=e.thumbEl;if(!t||!ut(t))return;let n=e.panzoomRef?.getWrapper()?.getBoundingClientRect(),r=n?.width,i=n?.height;if(!r||!i)return;let a=t.getBoundingClientRect(),o=a.width,s=a.height,c=a.left,l=a.top;if(!(!a||!o||!s)){if(t instanceof HTMLImageElement){let e=window.getComputedStyle(t).getPropertyValue(`object-fit`);if(e===`contain`||e===`scale-down`){let{width:n,height:r}=ft(t.naturalWidth,t.naturalHeight,o,s,e);c+=(o-n)*.5,l+=(s-r)*.5,o=n,s=r}}if(!(Math.abs(r/i-o/s)>.1))return{x:c+o*.5-(n.left+r*.5),y:l+s*.5-(n.top+i*.5),scale:o/r}}}function Se(e){if(!y||!e||!e.el)return;let t=null;if(n(e.src)){let n=e.src.split(`#`,2).pop();t=n?document.getElementById(n):null}if(t){if(f(t,`f-html`),e.type===`clone`||t.closest(`.fancybox__carousel`)){t=t.cloneNode(!0);let n=t.dataset.animationName;n&&(t.classList.remove(n),delete t.dataset.animationName);let r=t.getAttribute(`id`);r=r?`${r}--clone`:`clone-${l}-${e.index}`,t.setAttribute(`id`,r)}else if(t.parentNode){let n=document.createElement(`div`);n.inert=!0,t.parentNode.insertBefore(n,t),e.placeholderEl=n}e.htmlEl=t,f(e.el,`has-html`),e.el.prepend(t),t.classList.remove(`hidden`),t.style.display===`none`&&(t.style.display=``),getComputedStyle(t).getPropertyValue(`display`)===`none`&&(t.style.display=t.dataset.display||`flex`),y?.emit(`contentReady`,e)}else y?.showError(e,`{{ELEMENT_NOT_FOUND}}`)}function Ce(t){let n=t.el;if(!n||t.htmlEl||t.xhr)return;y?.showLoading(t),t.state=le.Loading;let r=new XMLHttpRequest;r.onreadystatechange=function(){if(r.readyState===XMLHttpRequest.DONE&&e===Q.Ready)if(y?.hideLoading(t),t.state=le.Loaded,r.status===200){let e=r.responseText+``,i=null,a=null;if(t.filter){let n=document.createElement(`div`);n.innerHTML=e,a=n.querySelector(t.filter+``)}a&&a instanceof HTMLElement?i=a:(i=document.createElement(`div`),i.innerHTML=e),i.classList.add(`f-html`),t.htmlEl=i,n.classList.add(`has-html`),n.classList.add(`has-ajax`),n.prepend(i),y?.emit(`contentReady`,t)}else y?.showError(t)};let i=O(`ajax`)||null;r.open(i?`POST`:`GET`,t.src+``),r.setRequestHeader(`Content-Type`,`application/x-www-form-urlencoded`),r.setRequestHeader(`X-Requested-With`,`XMLHttpRequest`),r.send(i),t.xhr=r}function we(e){let t=e.htmlEl,n=e.placeholderEl;t&&(getComputedStyle(t).getPropertyValue(`display`)!==`none`&&(t.style.display=`none`),t.offsetHeight),n&&(t&&n.parentNode&&n.parentNode.insertBefore(t,n),n.remove()),e.htmlEl=void 0,e.placeholderEl=void 0}function Te(){S&&clearTimeout(S),S=void 0,document.removeEventListener(`mousemove`,se)}function De(){if(C||S)return;let e=O(`idle`);e&&(S=setTimeout(Oe,e))}function Oe(){_&&(Te(),f(_,`is-idle`),document.addEventListener(`mousemove`,se),C=!0)}function ke(){C&&(Ae(),De())}function Ae(){Te(),_?.classList.remove(`is-idle`),C=!1}function J(){let e=ye();e&&!dt(e)&&!e.closest(`[inert]`)&&e.scrollIntoView({behavior:`instant`,block:`center`,inline:`center`})}function Y(t,n){if(e===Q.Closing||e===Q.Destroyed)return;let r=new Event(`shouldClose`,{bubbles:!0,cancelable:!0});if(j(`shouldClose`,r,t),r.defaultPrevented)return;if(Te(),t){if(t.defaultPrevented)return;lt(t),t.stopPropagation(),t.stopImmediatePropagation()}if(e=Q.Closing,x?.pause(),b?.destroy(),y){y.getGestures()?.destroy(),y.getTween()?.pause();for(let e of y.getSlides()){let t=e.panzoomRef;t&&(c(t.getOptions(),{clickAction:!1,dblClickAction:!1,wheelAction:!1,bounds:!1,minScale:0,maxScale:1/0}),t.getGestures()?.destroy(),t.getTween()?.pause())}}let i=y?.getPlugins();i?.Autoplay?.stop();let a=i?.Fullscreen;a&&a.inFullscreen()?Promise.resolve(a.exit()).then(()=>{setTimeout(()=>{je(t,n)},150)}):je(t,n)}function je(t,n){if(e!==Q.Closing)return;j(`close`,t),E=!1,document.body.removeEventListener(`click`,ue),document.body.removeEventListener(`keydown`,K,{passive:!1,capture:!0}),O(`placeFocusBack`)&&J();let r=document.activeElement;r&&g?.contains(r)&&r.blur(),O(`fadeEffect`)&&(_?.classList.remove(`is-ready`),_?.classList.add(`is-hiding`)),_?.classList.add(`is-closing`);let i=_e(),a=i?.el,o=i?.panzoomRef,s=i?.panzoomRef?.getTween(),c=n||O(`hideClass`),l=!1,u=!1;if(y&&i&&a&&o&&s){let e;if(O(`zoomEffect`)&&i.state===le.Loaded&&(e=xe(i)),e){l=!0;let t=()=>{e=xe(i),e?s.to({...U,...e}):Ne()};o.on(`refresh`,()=>{t()}),s.easing(w.Easings.EaseOut).duration(350).from({...o.getTransform()}).to({...U,...e}).start(),a?.getAnimations()&&(a.style.animationPlayState=`paused`,requestAnimationFrame(()=>{t()}))}}let d=i?.htmlEl||i?.panzoomRef?.getWrapper();d&&mt(d),!l&&c&&d&&(u=!0,pt(d,c,()=>{Ne()})),l||u?setTimeout(()=>{Ne()},350):Ne()}function Ne(){if(e===Q.Destroyed)return;e=Q.Destroyed;let t=ye();j(`destroy`),O(`sync`)?.getPlugins().Autoplay?.resume(),O(`sync`)?.getPlugins().Autoscroll?.resume(),g instanceof HTMLDialogElement&&g.close(),y?.getContainer()?.classList.remove(`is-idle`),y?.destroy();for(let e of Object.values(u))e?.destroy();if(u={},g?.remove(),g=void 0,_=void 0,y=void 0,gt.delete(l),!gt.size&&(s(!1),document.documentElement.classList.remove(vt),O(`placeFocusBack`)&&t&&!t.closest(`[inert]`)))try{t?.focus({preventScroll:!0})}catch{}}let Fe={close:Y,destroy:Ne,getCarousel:function(){return y},getContainer:function(){return _},getId:function(){return l},getOptions:function(){return a},getPlugins:function(){return u},getSlide:function(){return _e()},getState:function(){return e},init:M,isCurrentSlide:function(e){let t=_e();return!e||!t?!1:t.index===e.index},isTopMost:function(){return ge()},localize:k,off:function(e,t){return A.has(e)&&A.set(e,A.get(e).filter(e=>e!==t)),Fe},on:function(e,t){return A.set(e,[...A.get(e)||[],t]),Fe},toggleIdle(e){(C||e===!0)&&Oe(),(!C||e===!1)&&Ae()}};return Fe};function bt(){for(let e of Object.values($.Plugins)){let t=e.setup;typeof t==`function`&&t($)}}function xt(e,t,n,r={}){if(!(e&&e instanceof Element)||!n)return;let i=$.openers.get(e)||new Map,a=i.get(t)||new Map;a.set(n,r),i.set(t,a),$.openers.set(e,i),i.size===1&&e.addEventListener(`click`,$.fromEvent),bt()}function St(e,t,n){if(!(e&&e instanceof Element)||!n)return;let r=$.openers.get(e)||new Map,i=r.get(t)||new Map;i&&n&&i.delete(n),(!i.size||!n)&&r.delete(t),r.size||($.openers.delete(e),e.removeEventListener(`click`,$.fromEvent))}function Ct(e,t,r,i){if(!l())return;let a=document.body,o=null,s=`[data-fancybox]`,c={};e instanceof Element&&(a=e),n(e)&&n(t)?(o=e,s=t):n(t)&&n(r)?(o=t,s=r):n(t)?s=t:n(e)&&(s=e),typeof t==`object`&&(c=t||{}),typeof r==`object`&&(c=r||{}),typeof i==`object`&&(c=i||{}),xt(a,o,s,c)}function wt(e,t,r){if(!l())return;let i=document.body,a=null,o=`[data-fancybox]`;e instanceof Element&&(i=e),n(e)&&n(t)?(a=e,o=t):n(t)&&n(r)?(a=t,o=r):n(t)?o=t:n(e)&&(o=e),St(i,a,o)}function Tt(e,t,r,i){if(!l())return;let a=document.body,o=null,s=`[data-fancybox]`,c={};e instanceof Element&&(a=e),n(e)&&n(t)?(o=e,s=t):n(t)&&n(r)?(o=t,s=r):n(t)?s=t:n(e)&&(s=e),typeof t==`object`&&(c=t||{}),typeof r==`object`&&(c=r||{}),typeof i==`object`&&(c=i||{});for(let[e,t]of $.openers)for(let[n,r]of t)for(let[t,i]of r)if(e===a&&n===o){let e=a.querySelector((n?`${n} `:``)+s);if(e&&e.matches(t))return $.fromTriggerEl(e,c)}}function Et(e){if(e.defaultPrevented||e.button&&e.button!==0||e.ctrlKey||e.metaKey||e.shiftKey)return;let t=e.composedPath()[0],n={triggerEvent:e};if(t.closest(`.fancybox__container.is-hiding`)){lt(e),e.stopPropagation();return}let r=t.closest(`[data-fancybox-delegate]`)||void 0;if(r){let e=r.dataset.fancyboxDelegate||``,i=document.querySelectorAll(`[data-fancybox="${e}"]`),a=parseInt(r.dataset.fancyboxIndex||``,10)||0;t=i[a]||i[0],c(n,{delegateEl:r,startIndex:a})}return Dt(t,n)}function Dt(e,t={}){if(!(e&&e instanceof Element))return;let n,r,i,a,o={};for(let[t,s]of $.openers)if(t.contains(e))for(let[l,u]of s){let s;if(l){for(let n of t.querySelectorAll(l))if(n.contains(e)){s=n;break}if(!s)continue}for(let[l,d]of u){let u=null;try{u=e.closest(l)}catch{}u&&(r=t,i=s,n=u,a=l,c(o,d||{}))}}if(!r||!a||!n)return;let s=c({},ht,t,o,{triggerEl:n}),l=[].slice.call((i||r).querySelectorAll(a)),u=n.closest(`.f-carousel`),d=u?.carousel;if(d&&!(i&&u.contains(i))){let e=[];for(let t of d?.getSlides()){let n=t.el;n&&(n.matches(a)?e.push(n):e.push(...[].slice.call(n.querySelectorAll(a))))}e.length&&(l=[...e],d.getPlugins().Autoplay?.pause(),d.getPlugins().Autoscroll?.pause(),s.sync=d)}if(s.groupAll===!1){let e=s.groupAttr,t=e&&n?n.getAttribute(`${e}`):``;l=e&&t&&t!==`true`?l.filter(n=>n.getAttribute(`${e}`)===t):[n]}if(!l.length)return;s.triggerEvent?.preventDefault();let f=$.getInstance(),p=f?.getState();if(f&&(p===Q.Init||p===Q.Ready)){let e=f.getOptions().triggerEl;if(e&&l.indexOf(e)>-1)return}return{...s.Carousel||{}}.rtl&&(l=l.reverse()),n&&t.startIndex===void 0&&(s.startIndex=l.indexOf(n)),$.fromNodes(l,s)}function Ot(e,t){t=c({},ht,t||{});let n=[],r=e=>e instanceof HTMLImageElement?e:e instanceof HTMLElement?e.querySelector(`img:not([aria-hidden])`):void 0;for(let i of e){let a=i.dataset||{},o=t.delegateEl&&e.indexOf(i)===t.startIndex?t.delegateEl:void 0,s=r(o)||r(i)||void 0,c=a.src||i.getAttribute(`href`)||i.getAttribute(`currentSrc`)||i.getAttribute(`src`)||void 0,l=a.thumb||a.thumbSrc||s?.getAttribute(`currentSrc`)||s?.getAttribute(`src`)||s?.dataset.lazySrc||void 0,u={src:c,alt:a.alt||s?.getAttribute(`alt`)||void 0,thumbSrc:l,thumbEl:s,triggerEl:i,delegateEl:o};for(let e in a){let t=a[e]+``;u[e]=t===`true`?e===`fancybox`?``:!0:t===`false`?!1:t}n.push(u)}return $.show(n,t)}let $={Plugins:{Hash:st},version:`6.1.14`,openers:new Map,bind:Ct,close:function(e=!0,...t){if(e)for(let e of gt.values())e.close(...t);else{let e=$.getInstance();e&&e.close(...t)}},destroy:function(){let e;for(;e=$.getInstance();)e.destroy();for(let e of $.openers.keys())e.removeEventListener(`click`,$.fromEvent);$.openers.clear()},fromEvent:Et,fromNodes:Ot,fromSelector:Tt,fromTriggerEl:Dt,getCarousel:function(){return $.getInstance()?.getCarousel()||void 0},getDefaults:function(){return ht},getInstance:function(e){if(e){let t=gt.get(e);return t&&t.getState()!==Q.Destroyed?t:void 0}return Array.from(gt.values()).reverse().find(e=>{if(e.getState()!==Q.Destroyed)return e})||void 0},getSlide:function(){return $.getInstance()?.getSlide()||void 0},show:function(e=[],t={}){return bt(),yt().init(e,t)},unbind:wt};e.Arrows=Ee,e.Autoplay=Pe,e.Carousel=he,e.CarouselSlideContentState=le,e.CarouselState=ce,e.Fancybox=$,e.FancyboxState=Q,e.Fullscreen=Ge,e.Html=ze,e.Lazyload=q,e.PANZOOM_DEFAULT_POS=U,e.Panzoom=oe,e.PanzoomAction=H,e.PanzoomState=W,e.PanzoomZoomLevel=te,e.Sync=be,e.Thumbs=Le,e.Toolbar=Me,e.ToolbarColumn=J,e.Video=He,e.Zoomable=ve}); \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/libs/scroll-lock/scroll-lock.js b/wp-content/themes/hantico/assets/libs/scroll-lock/scroll-lock.js new file mode 100644 index 0000000..e22e66f --- /dev/null +++ b/wp-content/themes/hantico/assets/libs/scroll-lock/scroll-lock.js @@ -0,0 +1,186 @@ +const ScrollLock = (() => { + let lockStack = []; + let allowTouchMoveEls = []; + let startY = 0; + + let isLocked = false; + + const fixedElements = new Map(); + + let originalBodyPaddingRight = ''; + let originalBodyOverflow = ''; + + function getScrollBarWidth() { + return window.innerWidth - document.documentElement.clientWidth; + } + + function resolveElements(scrollable) { + if (!scrollable) return []; + + const items = Array.isArray(scrollable) ? scrollable : [scrollable]; + + return items + .map((item) => { + if (typeof item === 'string') { + return document.querySelector(item); + } + return item; + }) + .filter(Boolean); + } + + function updateAllowedElements() { + const last = lockStack[lockStack.length - 1]; + + if (!last) { + allowTouchMoveEls = []; + return; + } + + allowTouchMoveEls = resolveElements(last.scrollable); + } + + function allowTouchMove(el) { + while (el && el !== document.body) { + if (allowTouchMoveEls.includes(el)) { + return true; + } + el = el.parentElement; + } + return false; + } + + function handleTouchStart(event) { + startY = event.touches[0].clientY; + } + + function handleTouchMove(event) { + const el = event.target; + + if (allowTouchMove(el)) { + const scrollableEl = allowTouchMoveEls.find((parent) => + parent.contains(el) + ); + + if (!scrollableEl) { + event.preventDefault(); + return; + } + + const currentY = event.touches[0].clientY; + const deltaY = currentY - startY; + + const isAtTop = scrollableEl.scrollTop === 0; + const isAtBottom = + scrollableEl.scrollHeight - scrollableEl.scrollTop <= + scrollableEl.clientHeight; + + if ((isAtTop && deltaY > 0) || (isAtBottom && deltaY < 0)) { + event.preventDefault(); + } + + return; + } + + event.preventDefault(); + } + + function applyBodyLock(fixed = []) { + const scrollBarWidth = getScrollBarWidth(); + + // сохраняем оригинальные стили body + originalBodyOverflow = document.body.style.overflow; + originalBodyPaddingRight = document.body.style.paddingRight; + + const bodyComputed = window.getComputedStyle(document.body); + const bodyPaddingRight = parseFloat(bodyComputed.paddingRight) || 0; + + document.body.style.overflow = 'hidden'; + + if (scrollBarWidth > 0) { + document.body.style.paddingRight = `${bodyPaddingRight + scrollBarWidth}px`; + } + + // фиксированные элементы (header и т.д.) + fixed.forEach((selector) => { + const elements = + typeof selector === 'string' + ? document.querySelectorAll(selector) + : [selector]; + + elements.forEach((element) => { + if (!element || fixedElements.has(element)) return; + + const computed = window.getComputedStyle(element); + const originalPadding = element.style.paddingRight; + const currentPadding = parseFloat(computed.paddingRight) || 0; + + fixedElements.set(element, originalPadding); + + if (scrollBarWidth > 0) { + element.style.paddingRight = `${currentPadding + scrollBarWidth}px`; + } + }); + }); + } + + function clearBodyLock() { + document.body.style.overflow = originalBodyOverflow; + document.body.style.paddingRight = originalBodyPaddingRight; + + fixedElements.forEach((padding, element) => { + element.style.paddingRight = padding; + }); + + fixedElements.clear(); + + originalBodyOverflow = ''; + originalBodyPaddingRight = ''; + } + + function lock({ scrollable = null, fixed = [] } = {}) { + lockStack.push({ scrollable, fixed }); + + updateAllowedElements(); + + if (isLocked) return; + + isLocked = true; + + applyBodyLock(fixed); + + document.addEventListener('touchstart', handleTouchStart, { + passive: false + }); + + document.addEventListener('touchmove', handleTouchMove, { + passive: false + }); + } + + function unlock() { + if (!lockStack.length) return; + + lockStack.pop(); + + if (lockStack.length === 0) { + isLocked = false; + + document.removeEventListener('touchstart', handleTouchStart); + document.removeEventListener('touchmove', handleTouchMove); + + clearBodyLock(); + + allowTouchMoveEls = []; + return; + } + + // возвращаем предыдущий state + updateAllowedElements(); + } + + return { + lock, + unlock + }; +})(); \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.css b/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.css new file mode 100644 index 0000000..498af98 --- /dev/null +++ b/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 12.1.4 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2026 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: April 29, 2026 + */ + +:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.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{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.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{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}::slotted(svg),svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon,::slotted(.swiper-navigation-icon){transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}} \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.js b/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.js new file mode 100644 index 0000000..ee96eb0 --- /dev/null +++ b/wp-content/themes/hantico/assets/libs/swiper/swiper-bundle.min.js @@ -0,0 +1,14 @@ +/** + * Swiper 12.1.4 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2026 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: April 29, 2026 + */ + +var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s={},a={}){const i=["__proto__","constructor","prototype"];Object.keys(a).filter(e=>i.indexOf(e)<0).forEach(i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])})}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e=""){return e.trim().split(" ").filter(e=>!!e.trim())}function l(e,t=0){return setTimeout(e,t)}function o(){return Date.now()}function d(e,t="x"){const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map(e=>e.replace(",",".")).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function c(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function p(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function u(...e){const t=Object(e[0]);for(let s=1;s"__proto__"!==e&&"constructor"!==e&&"prototype"!==e);for(let s=0,i=e.length;si?"next":"prev",c=(e,t)=>"next"===d&&e>=t||"prev"===d&&e<=t,p=()=>{n=(new Date).getTime(),null===l&&(l=n);const r=Math.max(Math.min((n-l)/o,1),0),d=.5-Math.cos(r*Math.PI)/2;let u=i+d*(t-i);if(c(u,t)&&(u=t),e.wrapperEl.scrollTo({[s]:u}),c(u,t))return e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout(()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[s]:u})}),void a.cancelAnimationFrame(e.cssModeFrameID);e.cssModeFrameID=a.requestAnimationFrame(p)};p()}function f(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function g(e,t=""){const s=r(),a=[...e.children];return s.HTMLSlotElement&&e instanceof HTMLSlotElement&&a.push(...e.assignedElements()),t?a.filter(e=>e.matches(t)):a}function v(e){try{return void console.warn(e)}catch(e){}}function w(e,t=[]){const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function b(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function y(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function E(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function x(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function S(e,t){t&&e.addEventListener("transitionend",function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))})}function T(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function M(e){return(Array.isArray(e)?e:[e]).filter(e=>!!e)}function C(e){return t=>Math.abs(t)>0&&e.browser&&e.browser.need3dFix&&Math.abs(t)%90==0?t+.001:t}function P(e,t=""){"undefined"!=typeof trustedTypes?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:e=>e}).createHTML(t):e.innerHTML=t}let L,I,z;function A(){return L||(L=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),L}function $(e={}){return I||(I=function({userAgent:e}={}){const t=A(),s=r(),a=s.navigator.platform,i=e||s.navigator.userAgent,n={ios:!1,android:!1},l=s.screen.width,o=s.screen.height,d=i.match(/(Android);?[\s\/]+([\d.]+)?/);let c=i.match(/(iPad)(?!\1).*OS\s([\d_]+)/);const p=i.match(/(iPod)(.*OS\s([\d_]+))?/),u=!c&&i.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===a;let h="MacIntel"===a;return!c&&h&&t.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${o}`)>=0&&(c=i.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),h=!1),d&&!m&&(n.os="android",n.android=!0),(c||u||p)&&(n.os="ios",n.ios=!0),n}(e)),I}function k(){return z||(z=function(){const e=r(),t=$();let s=!1;function a(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(a()){const t=String(e.navigator.userAgent);if(t.includes("Version/")){const[e,a]=t.split("Version/")[1].split(" ")[0].split(".").map(e=>Number(e));s=e<16||16===e&&a<2}}const i=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),n=a();return{isSafari:s||n,needPerspectiveFix:s,need3dFix:n||i&&t.ios,isWebView:i}}()),z}var O={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach(e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)}),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(...s){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy,t.apply(a,s)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach(e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)})}),s):s},emit(...e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsListeners)return t;let s,a,i;"string"==typeof e[0]||Array.isArray(e[0])?(s=e[0],a=e.slice(1,e.length),i=t):(s=e[0].events,a=e[0].data,i=e[0].context||t),a.unshift(i);return(Array.isArray(s)?s:s.split(" ")).forEach(e=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach(t=>{t.apply(i,[e,...a])}),t.eventsListeners&&t.eventsListeners[e]&&t.eventsListeners[e].forEach(e=>{e.apply(i,a)})}),t}};const D=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const G=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const X=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame(()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&!t.lazyPreloaderManaged&&t.remove())})),t&&!t.lazyPreloaderManaged&&t.remove()}},B=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},Y=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map((e,t)=>s+a+t)),void e.slides.forEach((t,s)=>{r.includes(t.column)&&B(e,s)})}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&B(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?x=parseFloat(x.replace("%",""))/100*E:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x-f-v,d.forEach(e=>{r?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""}),s.centeredSlides&&s.cssMode&&(m(a,"--swiper-centered-offset-before",""),m(a,"--swiper-centered-offset-after","")),s.cssMode&&(m(a,"--swiper-slides-offset-before",`${f}px`),m(a,"--swiper-slides-offset-after",`${v}px`));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(d):e.grid&&e.grid.unsetSlides();const I="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter(e=>void 0!==s.breakpoints[e].slidesPerView).length>0;for(let a=0;a=0&&(t+=h[s]+(s1&&(a||p.push(e.virtualSize-E))}if(l&&s.loop){const t=h[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==d.length-1).forEach(e=>{e.style[t]=`${x}px`})}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;h.forEach(t=>{e+=t+(x||0)}),e-=x;const t=e>E?e-E:0;p=p.map(e=>e<=0?-f:e>t?t+v:e)}if(s.centerInsufficientSlides){let e=0;if(h.forEach(t=>{e+=t+(x||0)}),e-=x,e{p[s]=e-t}),u.forEach((e,s)=>{u[s]=e+t})}}if(Object.assign(e,{slides:d,snapGrid:p,slidesGrid:u,slidesSizesGrid:h}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){m(a,"--swiper-centered-offset-before",-p[0]+"px"),m(a,"--swiper-centered-offset-after",e.size/2-h[h.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map(e=>e+t),e.slidesGrid=e.slidesGrid.map(e=>e+s)}if(c!==o&&e.emit("slidesLengthChange"),p.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),u.length!==b&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(l||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,a=e.el.classList.contains(t);c<=s.maxBackfaceHiddenSlides?a||e.el.classList.add(t):a&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach(e=>{s.push(e)});else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e],f=u>=0&&u1&&m<=t.size||u<=0&&m>=t.size;f&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e)),D(o,f,s.slideVisibleClass),D(o,h,s.slideFullyVisibleClass),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>g(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.find(e=>e.column===i),c=t.find(e=>e.column===i+1),d=t.find(e=>e.column===i-1)):o=t[i];o&&(n||(c=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),d=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]))),t.forEach(e=>{G(e,e===o,s.slideActiveClass),G(e,e===c,s.slideNextClass),G(e,e===d,s.slidePrevClass)}),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled)u=i.loop?c(d):d;else if(p){const e=t.slides.find(e=>e.column===d);let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&Y(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach(e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)});let r,n=!1;if(i)for(let e=0;eo?o:a&&er?"next":i=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame(()=>{m[e?"scrollLeft":"scrollTop"]=s})):m[e?"scrollLeft":"scrollTop"]=s,y&&requestAnimationFrame(()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1});else{if(!r.support.smoothScroll)return h({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;m.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}const E=k().isSafari;return y&&!i&&E&&r.isElement&&r.virtual.update(!1,!1,n),r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e=0,t,s=!0,a){if("string"==typeof e){e=parseInt(e,10)}const i=this;if(i.destroyed)return;void 0===t&&(t=i.params.speed);const r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.find(e=>1*e.getAttribute("data-swiper-slide-index")===t).column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s,slidesOffsetBefore:l,slidesOffsetAfter:o}=i.params,d=s||!!l||!!o;let c=i.params.slidesPerView;"auto"===c?c=i.slidesPerViewDynamic():(c=Math.ceil(parseFloat(i.params.slidesPerView,10)),d&&c%2==0&&(c+=1));let p=t-e1*t.getAttribute("data-swiper-slide-index")===e).column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame(()=>{i.slideTo(n,t,s,a)}),i},slideNext:function(e,t=!0,s){const a=this,{enabled:i,params:r,animating:n}=a;if(!i||a.destroyed)return a;void 0===e&&(e=a.params.speed);let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex{a.slideTo(a.activeIndex+o,e,t,s)}),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t=!0,s){const a=this,{params:i,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=a;if(!o||a.destroyed)return a;void 0===e&&(e=a.params.speed);const c=a.virtual&&i.virtual.enabled;if(i.loop){if(d&&!c&&i.loopPreventsSliding)return!1;a.loopFix({direction:"prev"}),a._clientLeft=a.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?a.translate:-a.translate),m=r.map(e=>p(e)),h=i.freeMode&&i.freeMode.enabled;let f=r[m.indexOf(u)-1];if(void 0===f&&(i.cssMode||h)){let e;r.forEach((t,s)=>{u>=t&&(e=s)}),void 0!==e&&(f=h?r[e]:r[e>0?e-1:e])}let g=0;if(void 0!==f&&(g=n.indexOf(f),g<0&&(g=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(g=g-a.slidesPerViewDynamic("previous",!0)+1,g=Math.max(g,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return i.loop&&0===a.activeIndex&&i.cssMode?(requestAnimationFrame(()=>{a.slideTo(g,e,t,s)}),!0):a.slideTo(g,e,t,s)},slideReset:function(e,t=!0,s){const a=this;if(!a.destroyed)return void 0===e&&(e=a.params.speed),a.slideTo(a.activeIndex,e,t,s)},slideToClosest:function(e,t=!0,s,a=.5){const i=this;if(i.destroyed)return;void 0===e&&(e=i.params.speed);let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.getSlideIndexWhenGrid(e.clickedIndex);const n=e.isElement?"swiper-slide":`.${t.slideClass}`,o=e.grid&&e.params.grid&&e.params.grid.rows>1;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?e.slideToLoop(i):r>(o?(e.slides.length-a)/2-(e.params.grid.rows-1):e.slides.length-a)?(e.loopFix(),r=e.getSlideIndex(g(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l(()=>{e.slideTo(r)})):e.slideTo(r)}else e.slideTo(r)}};var q={loopCreate:function(e,t){const s=this,{params:a,slidesEl:i}=s;if(!a.loop||s.virtual&&s.params.virtual.enabled)return;const r=()=>{g(i,`.${a.slideClass}, swiper-slide`).forEach((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})},n=s.grid&&a.grid&&a.grid.rows>1;a.loopAddBlankSlides&&(a.slidesPerGroup>1||n)&&(()=>{const e=g(i,`.${a.slideBlankClass}`);e.forEach(e=>{e.remove()}),e.length>0&&(s.recalcSlides(),s.updateSlides())})();const l=a.slidesPerGroup*(n?a.grid.rows:1),o=s.slides.length%l!==0,d=n&&s.slides.length%a.grid.rows!==0,c=e=>{for(let t=0;t1;d.lengthe.classList.contains(m.slideActiveClass))):L=i;const I="next"===s||!s,z="prev"===s||!s;let A=0,$=0;const k=(S?d[i].column:i)+(b&&void 0===a?-y/2+.5:0);if(k=0;t-=1)d[t].column===e&&T.push(t)}else T.push(C-t-1)}}else if(k+y>C-x){$=Math.max(k-(C-2*x),E),P&&($=Math.max($,y-C+w+1));for(let e=0;e<$;e+=1){const t=e-Math.floor(e/C)*C;S?d.forEach((e,s)=>{e.column===t&&M.push(s)}):M.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame(()=>{o.__preventObserver__=!1}),"cards"===o.params.effect&&d.length{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1}),I&&M.forEach(e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1}),o.recalcSlides(),"auto"===m.slidesPerView?o.updateSlides():S&&(T.length>0&&z||M.length>0&&I)&&o.slides.forEach((e,t)=>{o.grid.updateSlide(t,e,o.slides)}),m.watchSlidesProgress&&o.updateSlidesOffset(),t)if(T.length>0&&z){if(void 0===e){const e=o.slidesGrid[L],t=o.slidesGrid[L+A]-e;l?o.setTranslate(o.translate-t):(o.slideTo(L+Math.ceil(A),0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(a){const e=S?T.length/m.grid.rows:T.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(M.length>0&&I)if(void 0===e){const e=o.slidesGrid[L],t=o.slidesGrid[L-$]-e;l?o.setTranslate(o.translate-t):(o.slideTo(L-$,0,!1,!0),a&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=S?M.length/m.grid.rows:M.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const r={slideRealIndex:e,direction:s,setTranslate:a,activeSlideIndex:i,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach(e=>{!e.destroyed&&e.params.loop&&e.loopFix({...r,slideTo:e.params.slidesPerView===m.slidesPerView&&t})}):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...r,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView&&t})}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||!s||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach(e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e}),e.slides.forEach(e=>{e.removeAttribute("data-swiper-slide-index")}),a.forEach(e=>{s.append(e)}),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function _(e,t,s){const a=r(),{params:i}=e,n=i.edgeSwipeDetection,l=i.edgeSwipeThreshold;return!n||!(s<=l||s>=a.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function F(e){const t=this,s=a();let i=e;i.originalEvent&&(i=i.originalEvent);const n=t.touchEventsData;if("pointerdown"===i.type){if(null!==n.pointerId&&n.pointerId!==i.pointerId)return;n.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(n.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void _(t,i,i.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=i.target;if("wrapper"===l.touchEventsTarget&&!function(e,t){const s=r();let a=t.contains(e);!a&&s.HTMLSlotElement&&t instanceof HTMLSlotElement&&(a=[...t.assignedElements()].includes(e),a||(a=function(e,t){const s=[t];for(;s.length>0;){const t=s.shift();if(e===t)return!0;s.push(...t.children,...t.shadowRoot?t.shadowRoot.children:[],...t.assignedElements?t.assignedElements():[])}}(e,t)));return a}(p,t.wrapperEl))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=i.composedPath?i.composedPath():i.path;u&&i.target&&i.target.shadowRoot&&m&&(p=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!i.target||!i.target.shadowRoot);if(l.noSwiping&&(f?function(e,t=this){return function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=i.pageX,d.currentY=i.pageY;const g=d.currentX,v=d.currentY;if(!_(t,i,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;p.matches(n.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==p&&("mouse"===i.pointerType||"mouse"!==i.pointerType&&!p.matches(n.focusableElements))&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||i.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function W(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].find(e=>e.identifier===i.touchId),!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return p.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else{if(l&&(u>n.startX&&-s.translate<=s.maxTranslate()||u=s.minTranslate()))return;if(!l&&(un.startX&&s.translate>=s.minTranslate()))return}if(t.activeElement&&t.activeElement.matches(i.focusableElements)&&t.activeElement!==p.target&&"mouse"!==p.pointerType&&t.activeElement.blur(),t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",p),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",p),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||"touchmove"===p.type&&i.preventTouchMoveFromPointerMove)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(b&&y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),!1!==r._loopSwapReset&&i.isMoved&&i.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]-("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.activeIndex+1]+s.params.spaceBetween:0)-s.params.spaceBetween:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween+("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween:0):s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function j(e){const t=this,s=t.touchEventsData;let a,i=e;i.originalEvent&&(i=i.originalEvent);if("touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].find(e=>e.identifier===s.touchId),!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)){if(!(["pointercancel","contextmenu"].includes(i.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!r.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=o(),l(()=>{t.destroyed||(t.allowClick=!0)}),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&h=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=gr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(i.target===t.navigation.nextEl||i.target===t.navigation.prevEl)?i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function U(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;if(!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l)e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0);else{const t=n?e.virtual.slides:e.slides;e.slideTo(t.length-1,0,!1,!0)}e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout(()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()},500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function K(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function Z(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function Q(e){const t=this;X(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function J(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const ee=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r&&"string"!=typeof r&&(s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",U,!0):e[c]("observerUpdate",U,!0),r[d]("load",e.onLoad,{capture:!0}))};const te=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var se={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,snapToSlideEdge:!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 ae(e,t){return function(s={}){const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),u(t,s)):u(t,s)):u(t,s)}}const ie={eventsEmitter:O,update:H,translate:N,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e=!0,t){const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),R({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e=!0,t){const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),R({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:V,loop:q,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame(()=>{t.__preventObserver__=!1})},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame(()=>{e.__preventObserver__=!1}))}},events:{attachEvents:function(){const e=this,{params:t}=e;e.onTouchStart=F.bind(e),e.onTouchMove=W.bind(e),e.onTouchEnd=j.bind(e),e.onDocumentTouchStart=J.bind(e),t.cssMode&&(e.onScroll=Z.bind(e)),e.onClick=K.bind(e),e.onLoad=Q.bind(e),ee(e,"on")},detachEvents:function(){ee(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=a(),o="window"!==i.breakpointsBase&&i.breakpointsBase?"container":i.breakpointsBase,d=["window","container"].includes(i.breakpointsBase)||!i.breakpointsBase?e.el:l.querySelector(i.breakpointsBase),c=e.getBreakpoint(n,o,d);if(!c||e.currentBreakpoint===c)return;const p=(c in n?n[c]:void 0)||e.originalParams,m=te(e,i),h=te(e,p),f=e.params.grabCursor,g=p.grabCursor,v=i.enabled;m&&!h?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!m&&h&&(r.classList.add(`${i.containerModifierClass}grid`),(p.grid.fill&&"column"===p.grid.fill||!p.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),f&&!g?e.unsetGrabCursor():!f&&g&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach(t=>{if(void 0===p[t])return;const s=i[t]&&i[t].enabled,a=p[t]&&p[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()});const w=p.direction&&p.direction!==i.direction,b=i.loop&&(p.slidesPerView!==i.slidesPerView||w),y=i.loop;w&&s&&e.changeDirection(),u(e.params,p);const E=e.params.enabled,x=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),v&&!E?e.disable():!v&&E&&e.enable(),e.currentBreakpoint=c,e.emit("_beforeBreakpoint",p),s&&(b?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!y&&x?(e.loopCreate(t),e.updateSlides()):y&&!x&&e.loopDestroy()),e.emit("breakpoint",p)},getBreakpoint:function(e,t="window",s){if(!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map(e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}});l.sort((e,t)=>parseInt(e.value,10)-parseInt(t.value,10));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach(e=>{"object"==typeof e?Object.keys(e).forEach(a=>{e[a]&&s.push(t+a)}):"string"==typeof e&&s.push(t+e)}),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e&&"string"!=typeof e&&(e.classList.remove(...t),this.emitContainerClasses())}}},re={};class ne{constructor(...e){let t,s;1===e.length&&e[0].constructor&&"Object"===Object.prototype.toString.call(e[0]).slice(8,-1)?s=e[0]:[t,s]=e,s||(s={}),s=u({},s),t&&!s.el&&(s.el=t);const i=a();if(s.el&&"string"==typeof s.el&&i.querySelectorAll(s.el).length>1){const e=[];return i.querySelectorAll(s.el).forEach(t=>{const a=u({},s,{el:t});e.push(new ne(a))}),e}const r=this;r.__swiper__=!0,r.support=A(),r.device=$({userAgent:s.userAgent}),r.browser=k(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],s.modules&&Array.isArray(s.modules)&&s.modules.forEach(e=>{"function"==typeof e&&r.modules.indexOf(e)<0&&r.modules.push(e)});const n={};r.modules.forEach(e=>{e({params:s,swiper:r,extendParams:ae(s,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})});const l=u({},se,n);return r.params=u({},l,re,s),r.originalParams=u({},r.params),r.passedParams=u({},s),r.params&&r.params.on&&Object.keys(r.params.on).forEach(e=>{r.on(e,r.params.on[e])}),r.params&&r.params.onAny&&r.onAny(r.params.onAny),Object.assign(r,{enabled:r.params.enabled,el:t,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,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:r.params.allowSlideNext,allowSlidePrev:r.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:r.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}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){const{slidesEl:t,params:s}=this,a=E(g(t,`.${s.slideClass}, swiper-slide`)[0]);return E(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find(t=>1*t.getAttribute("data-swiper-slide-index")===e))}getSlideIndexWhenGrid(e){return this.grid&&this.params.grid&&this.params.grid.rows>1&&("column"===this.params.grid.fill?e=Math.floor(e/this.params.grid.rows):"row"===this.params.grid.fill&&(e%=Math.ceil(this.slides.length/this.params.grid.rows))),e}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=g(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter(t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter(e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach(s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)}),e.emit("_slideClasses",t)}slidesPerViewDynamic(e="current",t=!1){const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?Math.ceil(a[l].swiperSlideSize):0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&X(e,t)}),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t=!0){const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach(t=>{"vertical"===e?t.style.width="":t.style.height=""}),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&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){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.parentNode&&s.parentNode.host&&s.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return g(s,a())[0]})();return!i&&t.params.createElements&&(i=w("div",t.params.wrapperClass),s.append(i),g(s,`.${t.params.slideClass}`).forEach(e=>{i.append(e)})),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===y(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===y(s,"direction")),wrongRTL:"-webkit-box"===y(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))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();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach(e=>{e.complete?X(t,e):e.addEventListener("load",e=>{X(t,e.target)})}),Y(t),t.initialized=!0,Y(t),t.emit("init"),t.emit("afterInit"),t}destroy(e=!0,t=!0){const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i&&"string"!=typeof i&&i.removeAttribute("style"),r&&r.removeAttribute("style"),n&&n.length&&n.forEach(e=>{e.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")})),s.emit("destroy"),Object.keys(s.eventsListeners).forEach(e=>{s.off(e)}),!1!==e&&(s.el&&"string"!=typeof s.el&&(s.el.swiper=null),function(e){const t=e;Object.keys(t).forEach(e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}})}(s)),s.destroyed=!0),null}static extendDefaults(e){u(re,e)}static get extendedDefaults(){return re}static get defaults(){return se}static installModule(e){ne.prototype.__modules__||(ne.prototype.__modules__=[]);const t=ne.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach(e=>ne.installModule(e)),ne):(ne.installModule(e),ne)}}function le(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach(i=>{if(!s[i]&&!0===s.auto){let r=g(e.el,`.${a[i]}`)[0];r||(r=w("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}}),s}Object.keys(ie).forEach(e=>{Object.keys(ie[e]).forEach(t=>{ne.prototype[t]=ie[e][t]})}),ne.use([function({swiper:e,on:t,emit:s}){const a=r();let i=null,n=null;const l=()=>{e&&!e.destroyed&&e.initialized&&(s("beforeResize"),s("resize"))},o=()=>{e&&!e.destroyed&&e.initialized&&s("orientationchange")};t("init",()=>{e.params.resizeObserver&&void 0!==a.ResizeObserver?e&&!e.destroyed&&e.initialized&&(i=new ResizeObserver(t=>{n=a.requestAnimationFrame(()=>{const{width:s,height:a}=e;let i=s,r=a;t.forEach(({contentBoxSize:t,contentRect:s,target:a})=>{a&&a!==e.el||(i=s?s.width:(t[0]||t).inlineSize,r=s?s.height:(t[0]||t).blockSize)}),i===s&&r===a||l()})}),i.observe(e.el)):(a.addEventListener("resize",l),a.addEventListener("orientationchange",o))}),t("destroy",()=>{n&&a.cancelAnimationFrame(n),i&&i.unobserve&&e.el&&(i.unobserve(e.el),i=null),a.removeEventListener("resize",l),a.removeEventListener("orientationchange",o)})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=[],n=r(),l=(t,s={})=>{const r=new(n.MutationObserver||n.WebkitMutationObserver)(t=>{if(e.__preventObserver__)return;if(1===t.length)return void a("observerUpdate",t[0]);const s=function(){a("observerUpdate",t[0])};n.requestAnimationFrame?n.requestAnimationFrame(s):n.setTimeout(s,0)});r.observe(t,{attributes:void 0===s.attributes||s.attributes,childList:e.isElement||(void 0===s.childList||s).childList,characterData:void 0===s.characterData||s.characterData}),i.push(r)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),s("init",()=>{if(e.params.observer){if(e.params.observeParents){const t=x(e.hostEl);for(let e=0;e{i.forEach(e=>{e.disconnect()}),i.splice(0,i.length)})}]);const oe='';function de(e=""){return`.${e.trim().replace(/([\.:!+\/()[\]#>~*^$|=,'"@{}\\])/g,"\\$1").replace(/ /g,".")}`}function ce(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");P(t,e),a.append(t.children[0]),P(t,"")}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");P(t,e),i.prepend(t.children[0]),P(t,"")}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)}),a("setTranslate _virtualUpdated",()=>{s.params.effect===t&&i()}),a("setTransition",(e,a)=>{s.params.effect===t&&r(a)}),a("transitionEnd",()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach(e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(e=>e.remove())}),o()}}),a("virtualUpdate",()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame(()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)}))})}function ge(e,t){const s=f(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function ve({swiper:e,duration:t,transformElements:s,allSlides:a}){const{activeIndex:i}=e;if(e.params.virtualTranslate&&0!==t){let t,r=!1;t=a?s:s.filter(t=>{const s=t.classList.contains("swiper-slide-transform")?(t=>{if(!t.parentElement)return e.slides.find(e=>e.shadowRoot&&e.shadowRoot===t.parentNode);return t.parentElement})(t):t;return e.getSlideIndex(s)===i}),t.forEach(t=>{S(t,()=>{if(r)return;if(!e||e.destroyed)return;r=!0,e.animating=!1;const t=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(t)})})}}function we(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=f(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=w("div",a.split(" ")),i.append(r)),r}const be=[function({swiper:e,extendParams:t,on:s,emit:i}){let r;t({virtual:{enabled:!1,slides:[],cache:!0,slidesPerViewAutoSlideSize:320,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const n=a();e.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const l=n.createElement("div");function o(t,s){const a=e.params.virtual;if(a.cache&&e.virtual.cache[s])return e.virtual.cache[s];let i;return a.renderSlide?(i=a.renderSlide.call(e,t,s),"string"==typeof i&&(P(l,i),i=l.children[0])):i=e.isElement?w("swiper-slide"):w("div",e.params.slideClass),i.setAttribute("data-swiper-slide-index",s),a.renderSlide||P(i,t),a.cache&&(e.virtual.cache[s]=i),i}function d(t,s,a){const{slidesPerGroup:r,centeredSlides:n,slidesPerView:l,loop:d,initialSlide:c}=e.params;if(s&&!d&&c>0)return;const{addSlidesBefore:p,addSlidesAfter:u,slidesPerViewAutoSlideSize:m}=e.params.virtual,{from:h,to:f,slides:v,slidesGrid:w,offset:b}=e.virtual;e.params.cssMode||e.updateActiveIndex();const y=void 0===a?e.activeIndex||0:a;let E,x,S,T;if(E=e.rtlTranslate?"right":e.isHorizontal()?"left":"top","auto"===l)if(m){let t=e.size;t||(t=e.isHorizontal()?e.el.getBoundingClientRect().width:e.el.getBoundingClientRect().height),x=Math.max(1,Math.ceil(t/m))}else x=1;else x=l;n?(S=Math.floor(x/2)+r+u,T=Math.floor(x/2)+r+p):(S=x+(r-1)+u,T=(d?x:r)+p);let M=y-T,C=y+S;d||(M=Math.max(M,0),C=Math.min(C,v.length-1));let P=(e.slidesGrid[M]||0)-(e.slidesGrid[0]||0);function L(){e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),i("virtualUpdate")}if(d&&y>=T?(M-=T,n||(P+=e.slidesGrid[0])):d&&y{t.style[E]=P-Math.abs(e.cssOverflowAdjustment())+"px"}),e.updateProgress(),void i("virtualUpdate");if(e.params.virtual.renderExternal)return e.params.virtual.renderExternal.call(e,{offset:P,from:M,to:C,slides:function(){const e=[];for(let t=M;t<=C;t+=1)e.push(v[t]);return e}()}),void(e.params.virtual.renderExternalUpdate?L():i("virtualUpdate"));const I=[],z=[],A=e=>{let t=e;return e<0?t=v.length+e:t>=v.length&&(t-=v.length),t};if(t)e.slides.filter(t=>t.matches(`.${e.params.slideClass}, swiper-slide`)).forEach(e=>{e.remove()});else for(let t=h;t<=f;t+=1)if(tC){const s=A(t);e.slides.filter(t=>t.matches(`.${e.params.slideClass}[data-swiper-slide-index="${s}"], swiper-slide[data-swiper-slide-index="${s}"]`)).forEach(e=>{e.remove()})}const $=d?-v.length:0,k=d?2*v.length:v.length;for(let e=$;e=M&&e<=C){const s=A(e);void 0===f||t?z.push(s):(e>f&&z.push(s),e{e.slidesEl.append(o(v[t],t))}),d)for(let t=I.length-1;t>=0;t-=1){const s=I[t];e.slidesEl.prepend(o(v[s],s))}else I.sort((e,t)=>t-e),I.forEach(t=>{e.slidesEl.prepend(o(v[t],t))});g(e.slidesEl,".swiper-slide, swiper-slide").forEach(t=>{t.style[E]=P-Math.abs(e.cssOverflowAdjustment())+"px"}),L()}s("beforeInit",()=>{if(!e.params.virtual.enabled)return;let t;if(void 0===e.passedParams.virtual.slides){const s=[...e.slidesEl.children].filter(t=>t.matches(`.${e.params.slideClass}, swiper-slide`));s&&s.length&&(e.virtual.slides=[...s],t=!0,s.forEach((t,s)=>{t.setAttribute("data-swiper-slide-index",s),e.virtual.cache[s]=t,t.remove()}))}t||(e.virtual.slides=e.params.virtual.slides),e.classNames.push(`${e.params.containerModifierClass}virtual`),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0,d(!1,!0)}),s("setTranslate",()=>{e.params.virtual.enabled&&(e.params.cssMode&&!e._immediateVirtual?(clearTimeout(r),r=setTimeout(()=>{d()},100)):d())}),s("init update resize",()=>{e.params.virtual.enabled&&e.params.cssMode&&m(e.wrapperEl,"--swiper-virtual-size",`${e.virtualSize}px`)}),Object.assign(e.virtual,{appendSlide:function(t){if("object"==typeof t&&"length"in t)for(let s=0;s{const a=t[e],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),s[parseInt(e,10)+i]=a}),e.virtual.cache=s}d(!0),e.slideTo(a,0)},removeSlide:function(t){if(null==t)return;let s=e.activeIndex;if(Array.isArray(t))for(let a=t.length-1;a>=0;a-=1)e.params.virtual.cache&&(delete e.virtual.cache[t[a]],Object.keys(e.virtual.cache).forEach(s=>{s>t&&(e.virtual.cache[s-1]=e.virtual.cache[s],e.virtual.cache[s-1].setAttribute("data-swiper-slide-index",s-1),delete e.virtual.cache[s])})),e.virtual.slides.splice(t[a],1),t[a]{s>t&&(e.virtual.cache[s-1]=e.virtual.cache[s],e.virtual.cache[s-1].setAttribute("data-swiper-slide-index",s-1),delete e.virtual.cache[s])})),e.virtual.slides.splice(t,1),t0&&0===x(e.el,`.${e.params.slideActiveClass}`).length)return;const a=e.el,i=a.clientWidth,r=a.clientHeight,n=l.innerWidth,o=l.innerHeight,d=b(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let e=0;e=0&&s[0]<=n&&s[1]>=0&&s[1]<=o){if(0===s[0]&&0===s[1])continue;t=!0}}if(!t)return}const f=e.params.keyboard.speed;e.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&e.slideNext(f),((d||p)&&!s||(c||u)&&s)&&e.slidePrev(f)):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&e.slideNext(f),(d||m)&&e.slidePrev(f)),i("keyPress",r)}function d(){e.keyboard.enabled||(n.addEventListener("keydown",o),e.keyboard.enabled=!0)}function c(){e.keyboard.enabled&&(n.removeEventListener("keydown",o),e.keyboard.enabled=!1)}e.keyboard={enabled:!1},t({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0,speed:void 0}}),s("init",()=>{e.params.keyboard.enabled&&d()}),s("destroy",()=>{e.keyboard.enabled&&c()}),Object.assign(e.keyboard,{enable:d,disable:c})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();let n;t({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),e.mousewheel={enabled:!1};let d,c=o();const p=[];function u(){e.enabled&&(e.mouseEntered=!0)}function m(){e.enabled&&(e.mouseEntered=!1)}function h(t){return!(e.params.mousewheel.thresholdDelta&&t.delta=6&&o()-c<60||(t.direction<0?e.isEnd&&!e.params.loop||e.animating||(e.slideNext(),a("scroll",t.raw)):e.isBeginning&&!e.params.loop||e.animating||(e.slidePrev(),a("scroll",t.raw)),c=(new i.Date).getTime(),!1)))}function f(t){let s=t,i=!0;if(!e.enabled)return;if(t.target.closest(`.${e.params.mousewheel.noMousewheelClass}`))return;const r=e.params.mousewheel;e.params.cssMode&&s.preventDefault();let c=e.el;"container"!==e.params.mousewheel.eventsTarget&&(c=document.querySelector(e.params.mousewheel.eventsTarget));const u=c&&c.contains(s.target);if(!e.mouseEntered&&!u&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const f=e.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(e.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*f}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*f:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=e.getTranslate()+m*r.sensitivity;if(v>=e.minTranslate()&&(v=e.minTranslate()),v<=e.maxTranslate()&&(v=e.maxTranslate()),i=!!e.params.loop||!(v===e.minTranslate()||v===e.maxTranslate()),i&&e.params.nested&&s.stopPropagation(),e.params.freeMode&&e.params.freeMode.enabled){const t={time:o(),delta:Math.abs(m),direction:Math.sign(m)},i=d&&t.time=e.minTranslate()&&(o=e.minTranslate()),o<=e.maxTranslate()&&(o=e.maxTranslate()),e.setTransition(0),e.setTranslate(o),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses(),(!c&&e.isBeginning||!u&&e.isEnd)&&e.updateSlidesClasses(),e.params.loop&&e.loopFix({direction:t.direction<0?"next":"prev",byMousewheel:!0}),e.params.freeMode.sticky){clearTimeout(n),n=void 0,p.length>=15&&p.shift();const s=p.length?p[p.length-1]:void 0,a=p[0];if(p.push(t),s&&(t.delta>s.delta||t.direction!==s.direction))p.splice(0);else if(p.length>=15&&t.time-a.time<500&&a.delta-t.delta>=1&&t.delta<=6){const s=m>0?.8:.2;d=t,p.splice(0),n=l(()=>{!e.destroyed&&e.params&&e.slideToClosest(e.params.speed,!0,void 0,s)},0)}n||(n=l(()=>{if(e.destroyed||!e.params)return;d=t,p.splice(0),e.slideToClosest(e.params.speed,!0,void 0,.5)},500))}if(i||a("scroll",s),e.params.autoplay&&e.params.autoplay.disableOnInteraction&&e.autoplay.stop(),r.releaseOnEdges&&(o===e.minTranslate()||o===e.maxTranslate()))return!0}}else{const s={time:o(),delta:Math.abs(m),direction:Math.sign(m),raw:t};p.length>=2&&p.shift();const a=p.length?p[p.length-1]:void 0;if(p.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&h(s):h(s),function(t){const s=e.params.mousewheel;if(t.direction<0){if(e.isEnd&&!e.params.loop&&s.releaseOnEdges)return!0}else if(e.isBeginning&&!e.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function g(t){let s=e.el;"container"!==e.params.mousewheel.eventsTarget&&(s=document.querySelector(e.params.mousewheel.eventsTarget)),s[t]("mouseenter",u),s[t]("mouseleave",m),s[t]("wheel",f)}function v(){return e.params.cssMode?(e.wrapperEl.removeEventListener("wheel",f),!0):!e.mousewheel.enabled&&(g("addEventListener"),e.mousewheel.enabled=!0,!0)}function w(){return e.params.cssMode?(e.wrapperEl.addEventListener(event,f),!0):!!e.mousewheel.enabled&&(g("removeEventListener"),e.mousewheel.enabled=!1,!0)}s("init",()=>{!e.params.mousewheel.enabled&&e.params.cssMode&&w(),e.params.mousewheel.enabled&&v()}),s("destroy",()=>{e.params.cssMode&&v(),e.mousewheel.enabled&&w()}),Object.assign(e.mousewheel,{enable:v,disable:w})},function({swiper:e,extendParams:t,on:s,emit:a}){function i(t){let s;return t&&"string"==typeof t&&e.isElement&&(s=e.el.querySelector(t)||e.hostEl.querySelector(t),s)?s:(t&&("string"==typeof t&&(s=[...document.querySelectorAll(t)]),e.params.uniqueNavElements&&"string"==typeof t&&s&&s.length>1&&1===e.el.querySelectorAll(t).length?s=e.el.querySelector(t):s&&1===s.length&&(s=s[0])),t&&!s?t:s)}function r(t,s){const a=e.params.navigation;(t=M(t)).forEach(t=>{t&&(t.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===t.tagName&&(t.disabled=s),e.params.watchOverflow&&e.enabled&&t.classList[e.isLocked?"add":"remove"](a.lockClass))})}function n(){const{nextEl:t,prevEl:s}=e.navigation;if(e.params.loop)return r(s,!1),void r(t,!1);r(s,e.isBeginning&&!e.params.rewind),r(t,e.isEnd&&!e.params.rewind)}function l(t){t.preventDefault(),(!e.isBeginning||e.params.loop||e.params.rewind)&&(e.slidePrev(),a("navigationPrev"))}function o(t){t.preventDefault(),(!e.isEnd||e.params.loop||e.params.rewind)&&(e.slideNext(),a("navigationNext"))}function d(){const t=e.params.navigation;if(e.params.navigation=le(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!t.nextEl&&!t.prevEl)return;let s=i(t.nextEl),a=i(t.prevEl);Object.assign(e.navigation,{nextEl:s,prevEl:a}),s=M(s),a=M(a);const r=(s,a)=>{if(s){if(t.addIcons&&s.matches(".swiper-button-next,.swiper-button-prev")&&!s.querySelector("svg")){const e=document.createElement("div");P(e,oe),s.appendChild(e.querySelector("svg")),e.remove()}s.addEventListener("click","next"===a?o:l)}!e.enabled&&s&&s.classList.add(...t.lockClass.split(" "))};s.forEach(e=>r(e,"next")),a.forEach(e=>r(e,"prev"))}function c(){let{nextEl:t,prevEl:s}=e.navigation;t=M(t),s=M(s);const a=(t,s)=>{t.removeEventListener("click","next"===s?o:l),t.classList.remove(...e.params.navigation.disabledClass.split(" "))};t.forEach(e=>a(e,"next")),s.forEach(e=>a(e,"prev"))}t({navigation:{nextEl:null,prevEl:null,addIcons:!0,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),e.navigation={nextEl:null,prevEl:null,arrowSvg:oe},s("init",()=>{!1===e.params.navigation.enabled?p():(d(),n())}),s("toEdge fromEdge lock unlock",()=>{n()}),s("destroy",()=>{c()}),s("enable disable",()=>{let{nextEl:t,prevEl:s}=e.navigation;t=M(t),s=M(s),e.enabled?n():[...t,...s].filter(e=>!!e).forEach(t=>t.classList.add(e.params.navigation.lockClass))}),s("click",(t,s)=>{let{nextEl:i,prevEl:r}=e.navigation;i=M(i),r=M(r);const n=s.target;let l=r.includes(n)||i.includes(n);if(e.isElement&&!l){const e=s.path||s.composedPath&&s.composedPath();e&&(l=e.find(e=>i.includes(e)||r.includes(e)))}if(e.params.navigation.hideOnClick&&!l){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===n||e.pagination.el.contains(n)))return;let t;i.length?t=i[0].classList.contains(e.params.navigation.hiddenClass):r.length&&(t=r[0].classList.contains(e.params.navigation.hiddenClass)),a(!0===t?"navigationShow":"navigationHide"),[...i,...r].filter(e=>!!e).forEach(t=>t.classList.toggle(e.params.navigation.hiddenClass))}});const p=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")),c()};Object.assign(e.navigation,{enable:()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")),d(),n()},disable:p,update:n,init:d,destroy:c})},function({swiper:e,extendParams:t,on:s,emit:a}){const i="swiper-pagination";let r;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:e=>e,formatFractionTotal:e=>e,bulletClass:`${i}-bullet`,bulletActiveClass:`${i}-bullet-active`,modifierClass:`${i}-`,currentClass:`${i}-current`,totalClass:`${i}-total`,hiddenClass:`${i}-hidden`,progressbarFillClass:`${i}-progressbar-fill`,progressbarOppositeClass:`${i}-progressbar-opposite`,clickableClass:`${i}-clickable`,lockClass:`${i}-lock`,horizontalClass:`${i}-horizontal`,verticalClass:`${i}-vertical`,paginationDisabledClass:`${i}-disabled`}}),e.pagination={el:null,bullets:[]};let n=0;function l(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&0===e.pagination.el.length}function o(t,s){const{bulletActiveClass:a}=e.params.pagination;t&&(t=t[("prev"===s?"previous":"next")+"ElementSibling"])&&(t.classList.add(`${a}-${s}`),(t=t[("prev"===s?"previous":"next")+"ElementSibling"])&&t.classList.add(`${a}-${s}-${s}`))}function d(t){const s=t.target.closest(de(e.params.pagination.bulletClass));if(!s)return;t.preventDefault();const a=E(s)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===a)return;const t=(i=e.realIndex,r=a,n=e.slides.length,(r%=n)===1+(i%=n)?"next":r===i-1?"previous":void 0);"next"===t?e.slideNext():"previous"===t?e.slidePrev():e.slideToLoop(a)}else e.slideTo(a);var i,r,n}function c(){const t=e.rtl,s=e.params.pagination;if(l())return;let i,d,c=e.pagination.el;c=M(c);const p=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,u=e.params.loop?Math.ceil(p/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(d=e.previousRealIndex||0,i=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):void 0!==e.snapIndex?(i=e.snapIndex,d=e.previousSnapIndex):(d=e.previousIndex||0,i=e.activeIndex||0),"bullets"===s.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const a=e.pagination.bullets;let l,p,u;if(s.dynamicBullets&&(r=T(a[0],e.isHorizontal()?"width":"height",!0),c.forEach(t=>{t.style[e.isHorizontal()?"width":"height"]=r*(s.dynamicMainBullets+4)+"px"}),s.dynamicMainBullets>1&&void 0!==d&&(n+=i-(d||0),n>s.dynamicMainBullets-1?n=s.dynamicMainBullets-1:n<0&&(n=0)),l=Math.max(i-n,0),p=l+(Math.min(a.length,s.dynamicMainBullets)-1),u=(p+l)/2),a.forEach(e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map(e=>`${s.bulletActiveClass}${e}`)].map(e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e).flat();e.classList.remove(...t)}),c.length>1)a.forEach(t=>{const a=E(t);a===i?t.classList.add(...s.bulletActiveClass.split(" ")):e.isElement&&t.setAttribute("part","bullet"),s.dynamicBullets&&(a>=l&&a<=p&&t.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),a===l&&o(t,"prev"),a===p&&o(t,"next"))});else{const t=a[i];if(t&&t.classList.add(...s.bulletActiveClass.split(" ")),e.isElement&&a.forEach((e,t)=>{e.setAttribute("part",t===i?"bullet-active":"bullet")}),s.dynamicBullets){const e=a[l],t=a[p];for(let e=l;e<=p;e+=1)a[e]&&a[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));o(e,"prev"),o(t,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),n=(r*i-r)/2-u*r,l=t?"right":"left";a.forEach(t=>{t.style[e.isHorizontal()?l:"top"]=`${n}px`})}}c.forEach((t,r)=>{if("fraction"===s.type&&(t.querySelectorAll(de(s.currentClass)).forEach(e=>{e.textContent=s.formatFractionCurrent(i+1)}),t.querySelectorAll(de(s.totalClass)).forEach(e=>{e.textContent=s.formatFractionTotal(u)})),"progressbar"===s.type){let a;a=s.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const r=(i+1)/u;let n=1,l=1;"horizontal"===a?n=r:l=r,t.querySelectorAll(de(s.progressbarFillClass)).forEach(t=>{t.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,t.style.transitionDuration=`${e.params.speed}ms`})}"custom"===s.type&&s.renderCustom?(P(t,s.renderCustom(e,i+1,u)),0===r&&a("paginationRender",t)):(0===r&&a("paginationRender",t),a("paginationUpdate",t)),e.params.watchOverflow&&e.enabled&&t.classList[e.isLocked?"add":"remove"](s.lockClass)})}function p(){const t=e.params.pagination;if(l())return;const s=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;let i=e.pagination.el;i=M(i);let r="";if("bullets"===t.type){let a=e.params.loop?Math.ceil(s/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===t.type&&(r=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `),"progressbar"===t.type&&(r=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``),e.pagination.bullets=[],i.forEach(s=>{"custom"!==t.type&&P(s,r||""),"bullets"===t.type&&e.pagination.bullets.push(...s.querySelectorAll(de(t.bulletClass)))}),"custom"!==t.type&&a("paginationRender",i[0])}function u(){e.params.pagination=le(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const t=e.params.pagination;if(!t.el)return;let s;"string"==typeof t.el&&e.isElement&&(s=e.el.querySelector(t.el)),s||"string"!=typeof t.el||(s=[...document.querySelectorAll(t.el)]),s||(s=t.el),s&&0!==s.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&Array.isArray(s)&&s.length>1&&(s=[...e.el.querySelectorAll(t.el)],s.length>1&&(s=s.find(t=>x(t,".swiper")[0]===e.el))),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(e.pagination,{el:s}),s=M(s),s.forEach(s=>{"bullets"===t.type&&t.clickable&&s.classList.add(...(t.clickableClass||"").split(" ")),s.classList.add(t.modifierClass+t.type),s.classList.add(e.isHorizontal()?t.horizontalClass:t.verticalClass),"bullets"===t.type&&t.dynamicBullets&&(s.classList.add(`${t.modifierClass}${t.type}-dynamic`),n=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&s.classList.add(t.progressbarOppositeClass),t.clickable&&s.addEventListener("click",d),e.enabled||s.classList.add(t.lockClass)}))}function m(){const t=e.params.pagination;if(l())return;let s=e.pagination.el;s&&(s=M(s),s.forEach(s=>{s.classList.remove(t.hiddenClass),s.classList.remove(t.modifierClass+t.type),s.classList.remove(e.isHorizontal()?t.horizontalClass:t.verticalClass),t.clickable&&(s.classList.remove(...(t.clickableClass||"").split(" ")),s.removeEventListener("click",d))})),e.pagination.bullets&&e.pagination.bullets.forEach(e=>e.classList.remove(...t.bulletActiveClass.split(" ")))}s("changeDirection",()=>{if(!e.pagination||!e.pagination.el)return;const t=e.params.pagination;let{el:s}=e.pagination;s=M(s),s.forEach(s=>{s.classList.remove(t.horizontalClass,t.verticalClass),s.classList.add(e.isHorizontal()?t.horizontalClass:t.verticalClass)})}),s("init",()=>{!1===e.params.pagination.enabled?h():(u(),p(),c())}),s("activeIndexChange",()=>{void 0===e.snapIndex&&c()}),s("snapIndexChange",()=>{c()}),s("snapGridLengthChange",()=>{p(),c()}),s("destroy",()=>{m()}),s("enable disable",()=>{let{el:t}=e.pagination;t&&(t=M(t),t.forEach(t=>t.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass)))}),s("lock unlock",()=>{c()}),s("click",(t,s)=>{const i=s.target,r=M(e.pagination.el);if(e.params.pagination.el&&e.params.pagination.hideOnClick&&r&&r.length>0&&!i.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;const t=r[0].classList.contains(e.params.pagination.hiddenClass);a(!0===t?"paginationShow":"paginationHide"),r.forEach(t=>t.classList.toggle(e.params.pagination.hiddenClass))}});const h=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:t}=e.pagination;t&&(t=M(t),t.forEach(t=>t.classList.add(e.params.pagination.paginationDisabledClass))),m()};Object.assign(e.pagination,{enable:()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:t}=e.pagination;t&&(t=M(t),t.forEach(t=>t.classList.remove(e.params.pagination.paginationDisabledClass))),u(),p(),c()},disable:h,render:p,update:c,init:u,destroy:m})},function({swiper:e,extendParams:t,on:s,emit:i}){const r=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t,rtlTranslate:s}=e,{dragEl:a,el:i}=t,r=e.params.scrollbar,n=e.params.loop?e.progressLoop:e.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),e.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout(()=>{i.style.opacity=0,i.style.transitionDuration="400ms"},1e3))}function g(){if(!e.params.scrollbar.el||!e.scrollbar.el)return;const{scrollbar:t}=e,{dragEl:s,el:a}=t;s.style.width="",s.style.height="",c=e.isHorizontal()?a.offsetWidth:a.offsetHeight,p=e.size/(e.virtualSize+e.params.slidesOffsetBefore-(e.params.centeredSlides?e.snapGrid[0]:0)),d="auto"===e.params.scrollbar.dragSize?c*p:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",e.params.scrollbar.hide&&(a.style.opacity=0),e.params.watchOverflow&&e.enabled&&t.el.classList[e.isLocked?"add":"remove"](e.params.scrollbar.lockClass)}function v(t){return e.isHorizontal()?t.clientX:t.clientY}function y(t){const{scrollbar:s,rtlTranslate:a}=e,{el:i}=s;let r;r=(v(t)-b(i)[e.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=e.minTranslate()+(e.maxTranslate()-e.minTranslate())*r;e.updateProgress(n),e.setTranslate(n),e.updateActiveIndex(),e.updateSlidesClasses()}function E(t){const s=e.params.scrollbar,{scrollbar:a,wrapperEl:r}=e,{el:n,dragEl:l}=a;u=!0,o=t.target===l?v(t)-t.target.getBoundingClientRect()[e.isHorizontal()?"left":"top"]:null,t.preventDefault(),t.stopPropagation(),r.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(t),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="none"),i("scrollbarDragStart",t)}function x(t){const{scrollbar:s,wrapperEl:a}=e,{el:r,dragEl:n}=s;u&&(t.preventDefault&&t.cancelable?t.preventDefault():t.returnValue=!1,y(t),a.style.transitionDuration="0ms",r.style.transitionDuration="0ms",n.style.transitionDuration="0ms",i("scrollbarDragMove",t))}function S(t){const s=e.params.scrollbar,{scrollbar:a,wrapperEl:r}=e,{el:n}=a;u&&(u=!1,e.params.cssMode&&(e.wrapperEl.style["scroll-snap-type"]="",r.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=l(()=>{n.style.opacity=0,n.style.transitionDuration="400ms"},1e3)),i("scrollbarDragEnd",t),s.snapOnRelease&&e.slideToClosest())}function T(t){const{scrollbar:s,params:a}=e,i=s.el;if(!i)return;const n=i,l=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!n)return;const d="on"===t?"addEventListener":"removeEventListener";n[d]("pointerdown",E,l),r[d]("pointermove",x,l),r[d]("pointerup",S,o)}function C(){const{scrollbar:t,el:s}=e;e.params.scrollbar=le(e,e.originalParams.scrollbar,e.params.scrollbar,{el:"swiper-scrollbar"});const a=e.params.scrollbar;if(!a.el)return;let i,l;if("string"==typeof a.el&&e.isElement&&(i=e.el.querySelector(a.el)),i||"string"!=typeof a.el)i||(i=a.el);else if(i=r.querySelectorAll(a.el),!i.length)return;e.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(e.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(l=i.querySelector(de(e.params.scrollbar.dragClass)),l||(l=w("div",e.params.scrollbar.dragClass),i.append(l))),Object.assign(t,{el:i,dragEl:l}),a.draggable&&e.params.scrollbar.el&&e.scrollbar.el&&T("on"),i&&i.classList[e.enabled?"remove":"add"](...n(e.params.scrollbar.lockClass))}function P(){const t=e.params.scrollbar,s=e.scrollbar.el;s&&s.classList.remove(...n(e.isHorizontal()?t.horizontalClass:t.verticalClass)),e.params.scrollbar.el&&e.scrollbar.el&&T("off")}t({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),e.scrollbar={el:null,dragEl:null},s("changeDirection",()=>{if(!e.scrollbar||!e.scrollbar.el)return;const t=e.params.scrollbar;let{el:s}=e.scrollbar;s=M(s),s.forEach(s=>{s.classList.remove(t.horizontalClass,t.verticalClass),s.classList.add(e.isHorizontal()?t.horizontalClass:t.verticalClass)})}),s("init",()=>{!1===e.params.scrollbar.enabled?L():(C(),g(),f())}),s("update resize observerUpdate lock unlock changeDirection",()=>{g()}),s("setTranslate",()=>{f()}),s("setTransition",(t,s)=>{!function(t){e.params.scrollbar.el&&e.scrollbar.el&&(e.scrollbar.dragEl.style.transitionDuration=`${t}ms`)}(s)}),s("enable disable",()=>{const{el:t}=e.scrollbar;t&&t.classList[e.enabled?"remove":"add"](...n(e.params.scrollbar.lockClass))}),s("destroy",()=>{P()});const L=()=>{e.el.classList.add(...n(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.add(...n(e.params.scrollbar.scrollbarDisabledClass)),P()};Object.assign(e.scrollbar,{enable:()=>{e.el.classList.remove(...n(e.params.scrollbar.scrollbarDisabledClass)),e.scrollbar.el&&e.scrollbar.el.classList.remove(...n(e.params.scrollbar.scrollbarDisabledClass)),C(),g(),f()},disable:L,updateSize:g,setTranslate:f,init:C,destroy:P})},function({swiper:e,extendParams:t,on:s}){t({parallax:{enabled:!1}});const a="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",i=(t,s)=>{const{rtl:a}=e,i=a?-1:1,r=t.getAttribute("data-swiper-parallax")||"0";let n=t.getAttribute("data-swiper-parallax-x"),l=t.getAttribute("data-swiper-parallax-y");const o=t.getAttribute("data-swiper-parallax-scale"),d=t.getAttribute("data-swiper-parallax-opacity"),c=t.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):e.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const e=d-(d-1)*(1-Math.abs(s));t.style.opacity=e}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}t.style.transform=p},r=()=>{const{el:t,slides:s,progress:r,snapGrid:n,isElement:l}=e,o=g(t,a);e.isElement&&o.push(...g(e.hostEl,a)),o.forEach(e=>{i(e,r)}),s.forEach((t,s)=>{let l=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(l+=Math.ceil(s/2)-r*(n.length-1)),l=Math.min(Math.max(l,-1),1),t.querySelectorAll(`${a}, [data-swiper-parallax-rotate]`).forEach(e=>{i(e,l)})})};s("beforeInit",()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)}),s("init",()=>{e.params.parallax.enabled&&r()}),s("setTranslate",()=>{e.params.parallax.enabled&&r()}),s("setTransition",(t,s)=>{e.params.parallax.enabled&&((t=e.params.speed)=>{const{el:s,hostEl:i}=e,r=[...s.querySelectorAll(a)];e.isElement&&r.push(...i.querySelectorAll(a)),r.forEach(e=>{let s=parseInt(e.getAttribute("data-swiper-parallax-duration"),10)||t;0===t&&(s=0),e.style.transitionDuration=`${s}ms`})})(s)})},function({swiper:e,extendParams:t,on:s,emit:a}){const i=r();t({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,panOnMouseMove:!1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),e.zoom={enabled:!1};let n,l,o=1,c=!1,p=!1,u={x:0,y:0};const m=[],h={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},v={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w,y=1;function E(){if(m.length<2)return 1;const e=m[0].pageX,t=m[0].pageY,s=m[1].pageX,a=m[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function S(){const t=e.params.zoom,s=h.imageWrapEl.getAttribute("data-swiper-zoom")||t.maxRatio;if(t.limitToOriginalSize&&h.imageEl&&h.imageEl.naturalWidth){const e=h.imageEl.naturalWidth/h.imageEl.offsetWidth;return Math.min(e,s)}return s}function T(t){const s=e.isElement?"swiper-slide":`.${e.params.slideClass}`;return!!t.target.matches(s)||e.slides.filter(e=>e.contains(t.target)).length>0}function M(t){const s=`.${e.params.zoom.containerClass}`;return!!t.target.matches(s)||[...e.hostEl.querySelectorAll(s)].filter(e=>e.contains(t.target)).length>0}function C(t){if("mouse"===t.pointerType&&m.splice(0,m.length),!T(t))return;const s=e.params.zoom;if(n=!1,l=!1,m.push(t),!(m.length<2)){if(n=!0,h.scaleStart=E(),!h.slideEl){h.slideEl=t.target.closest(`.${e.params.slideClass}, swiper-slide`),h.slideEl||(h.slideEl=e.slides[e.activeIndex]);let a=h.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),h.imageEl=a,h.imageWrapEl=a?x(h.imageEl,`.${s.containerClass}`)[0]:void 0,!h.imageWrapEl)return void(h.imageEl=void 0);h.maxRatio=S()}if(h.imageEl){const[e,t]=function(){if(m.length<2)return{x:null,y:null};const e=h.imageEl.getBoundingClientRect();return[(m[0].pageX+(m[1].pageX-m[0].pageX)/2-e.x-i.scrollX)/o,(m[0].pageY+(m[1].pageY-m[0].pageY)/2-e.y-i.scrollY)/o]}();h.originX=e,h.originY=t,h.imageEl.style.transitionDuration="0ms"}c=!0}}function P(t){if(!T(t))return;const s=e.params.zoom,a=e.zoom,i=m.findIndex(e=>e.pointerId===t.pointerId);i>=0&&(m[i]=t),m.length<2||(l=!0,h.scaleMove=E(),h.imageEl&&(a.scale=h.scaleMove/h.scaleStart*o,a.scale>h.maxRatio&&(a.scale=h.maxRatio-1+(a.scale-h.maxRatio+1)**.5),a.scalee.pointerId===t.pointerId);i>=0&&m.splice(i,1),n&&l&&(n=!1,l=!1,h.imageEl&&(a.scale=Math.max(Math.min(a.scale,h.maxRatio),s.minRatio),h.imageEl.style.transitionDuration=`${e.params.speed}ms`,h.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,o=a.scale,c=!1,a.scale>1&&h.slideEl?h.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&h.slideEl&&h.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(h.originX=0,h.originY=0,h.slideEl=void 0)))}function I(){e.touchEventsData.preventTouchMoveFromPointerMove=!1}function z(t){const s="mouse"===t.pointerType&&e.params.zoom.panOnMouseMove;if(!T(t)||!M(t))return;const a=e.zoom;if(!h.imageEl)return;if(!f.isTouched||!h.slideEl)return void(s&&$(t));if(s)return void $(t);f.isMoved||(f.width=h.imageEl.offsetWidth||h.imageEl.clientWidth,f.height=h.imageEl.offsetHeight||h.imageEl.clientHeight,f.startX=d(h.imageWrapEl,"x")||0,f.startY=d(h.imageWrapEl,"y")||0,h.slideWidth=h.slideEl.offsetWidth,h.slideHeight=h.slideEl.offsetHeight,h.imageWrapEl.style.transitionDuration="0ms");const i=f.width*a.scale,r=f.height*a.scale;f.minX=Math.min(h.slideWidth/2-i/2,0),f.maxX=-f.minX,f.minY=Math.min(h.slideHeight/2-r/2,0),f.maxY=-f.minY,f.touchesCurrent.x=m.length>0?m[0].pageX:t.pageX,f.touchesCurrent.y=m.length>0?m[0].pageY:t.pageY;if(Math.max(Math.abs(f.touchesCurrent.x-f.touchesStart.x),Math.abs(f.touchesCurrent.y-f.touchesStart.y))>5&&(e.allowClick=!1),!f.isMoved&&!c){if(e.isHorizontal()&&(Math.floor(f.minX)===Math.floor(f.startX)&&f.touchesCurrent.xf.touchesStart.x))return f.isTouched=!1,void I();if(!e.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.yf.touchesStart.y))return f.isTouched=!1,void I()}t.cancelable&&t.preventDefault(),t.stopPropagation(),clearTimeout(w),e.touchEventsData.preventTouchMoveFromPointerMove=!0,w=setTimeout(()=>{e.destroyed||I()}),f.isMoved=!0;const n=(a.scale-o)/(h.maxRatio-e.params.zoom.minRatio),{originX:l,originY:p}=h;f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX+n*(f.width-2*l),f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY+n*(f.height-2*p),f.currentXf.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentYf.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),v.prevPositionX||(v.prevPositionX=f.touchesCurrent.x),v.prevPositionY||(v.prevPositionY=f.touchesCurrent.y),v.prevTime||(v.prevTime=Date.now()),v.x=(f.touchesCurrent.x-v.prevPositionX)/(Date.now()-v.prevTime)/2,v.y=(f.touchesCurrent.y-v.prevPositionY)/(Date.now()-v.prevTime)/2,Math.abs(f.touchesCurrent.x-v.prevPositionX)<2&&(v.x=0),Math.abs(f.touchesCurrent.y-v.prevPositionY)<2&&(v.y=0),v.prevPositionX=f.touchesCurrent.x,v.prevPositionY=f.touchesCurrent.y,v.prevTime=Date.now(),h.imageWrapEl.style.transform=`translate3d(${f.currentX}px, ${f.currentY}px,0)`}function A(){const t=e.zoom;h.slideEl&&e.activeIndex!==e.slides.indexOf(h.slideEl)&&(h.imageEl&&(h.imageEl.style.transform="translate3d(0,0,0) scale(1)"),h.imageWrapEl&&(h.imageWrapEl.style.transform="translate3d(0,0,0)"),h.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`),t.scale=1,o=1,h.slideEl=void 0,h.imageEl=void 0,h.imageWrapEl=void 0,h.originX=0,h.originY=0)}function $(e){if(o<=1||!h.imageWrapEl)return;if(!T(e)||!M(e))return;const t=i.getComputedStyle(h.imageWrapEl).transform,s=new i.DOMMatrix(t);if(!p)return p=!0,u.x=e.clientX,u.y=e.clientY,f.startX=s.e,f.startY=s.f,f.width=h.imageEl.offsetWidth||h.imageEl.clientWidth,f.height=h.imageEl.offsetHeight||h.imageEl.clientHeight,h.slideWidth=h.slideEl.offsetWidth,void(h.slideHeight=h.slideEl.offsetHeight);const a=-3*(e.clientX-u.x),r=-3*(e.clientY-u.y),n=f.width*o,l=f.height*o,d=h.slideWidth,c=h.slideHeight,m=Math.min(d/2-n/2,0),g=-m,v=Math.min(c/2-l/2,0),w=-v,b=Math.max(Math.min(f.startX+a,g),m),y=Math.max(Math.min(f.startY+r,w),v);h.imageWrapEl.style.transitionDuration="0ms",h.imageWrapEl.style.transform=`translate3d(${b}px, ${y}px, 0)`,u.x=e.clientX,u.y=e.clientY,f.startX=b,f.startY=y,f.currentX=b,f.currentY=y}function k(t){const s=e.zoom,a=e.params.zoom;if(!h.slideEl){t&&t.target&&(h.slideEl=t.target.closest(`.${e.params.slideClass}, swiper-slide`)),h.slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?h.slideEl=g(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:h.slideEl=e.slides[e.activeIndex]);let s=h.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),h.imageEl=s,h.imageWrapEl=s?x(h.imageEl,`.${a.containerClass}`)[0]:void 0}if(!h.imageEl||!h.imageWrapEl)return;let r,n,l,d,c,p,u,m,v,w,y,E,T,M,C,P,L,I;h.maxRatio=S(),e.params.cssMode&&(e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.touchAction="none"),h.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&t?(r=t.pageX,n=t.pageY):(r=f.touchesStart.x,n=f.touchesStart.y);const z=o,A="number"==typeof t?t:null;1===o&&A&&(r=void 0,n=void 0,f.touchesStart.x=void 0,f.touchesStart.y=void 0);const $=S();s.scale=A||$,o=A||$,!t||1===o&&A?(u=0,m=0):(L=h.slideEl.offsetWidth,I=h.slideEl.offsetHeight,l=b(h.slideEl).left+i.scrollX,d=b(h.slideEl).top+i.scrollY,c=l+L/2-r,p=d+I/2-n,v=h.imageEl.offsetWidth||h.imageEl.clientWidth,w=h.imageEl.offsetHeight||h.imageEl.clientHeight,y=v*s.scale,E=w*s.scale,T=Math.min(L/2-y/2,0),M=Math.min(I/2-E/2,0),C=-T,P=-M,z>0&&A&&"number"==typeof f.currentX&&"number"==typeof f.currentY?(u=f.currentX*s.scale/z,m=f.currentY*s.scale/z):(u=c*s.scale,m=p*s.scale),uC&&(u=C),mP&&(m=P)),A&&1===s.scale&&(h.originX=0,h.originY=0),f.currentX=u,f.currentY=m,h.imageWrapEl.style.transitionDuration="300ms",h.imageWrapEl.style.transform=`translate3d(${u}px, ${m}px,0)`,h.imageEl.style.transitionDuration="300ms",h.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function O(){const t=e.zoom,s=e.params.zoom;if(!h.slideEl){e.params.virtual&&e.params.virtual.enabled&&e.virtual?h.slideEl=g(e.slidesEl,`.${e.params.slideActiveClass}`)[0]:h.slideEl=e.slides[e.activeIndex];let t=h.slideEl.querySelector(`.${s.containerClass}`);t&&(t=t.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),h.imageEl=t,h.imageWrapEl=t?x(h.imageEl,`.${s.containerClass}`)[0]:void 0}h.imageEl&&h.imageWrapEl&&(h.maxRatio=S(),e.params.cssMode&&(e.wrapperEl.style.overflow="",e.wrapperEl.style.touchAction=""),t.scale=1,o=1,f.currentX=void 0,f.currentY=void 0,f.touchesStart.x=void 0,f.touchesStart.y=void 0,h.imageWrapEl.style.transitionDuration="300ms",h.imageWrapEl.style.transform="translate3d(0,0,0)",h.imageEl.style.transitionDuration="300ms",h.imageEl.style.transform="translate3d(0,0,0) scale(1)",h.slideEl.classList.remove(`${s.zoomedSlideClass}`),h.slideEl=void 0,h.originX=0,h.originY=0,e.params.zoom.panOnMouseMove&&(u={x:0,y:0},p&&(p=!1,f.startX=0,f.startY=0)))}function D(t){const s=e.zoom;s.scale&&1!==s.scale?O():k(t)}function G(){return{passiveListener:!!e.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!e.params.passiveListeners||{passive:!1,capture:!0}}}function X(){const t=e.zoom;if(t.enabled)return;t.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=G();e.wrapperEl.addEventListener("pointerdown",C,s),e.wrapperEl.addEventListener("pointermove",P,a),["pointerup","pointercancel","pointerout"].forEach(t=>{e.wrapperEl.addEventListener(t,L,s)}),e.wrapperEl.addEventListener("pointermove",z,a)}function B(){const t=e.zoom;if(!t.enabled)return;t.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=G();e.wrapperEl.removeEventListener("pointerdown",C,s),e.wrapperEl.removeEventListener("pointermove",P,a),["pointerup","pointercancel","pointerout"].forEach(t=>{e.wrapperEl.removeEventListener(t,L,s)}),e.wrapperEl.removeEventListener("pointermove",z,a)}Object.defineProperty(e.zoom,"scale",{get:()=>y,set(e){if(y!==e){const t=h.imageEl,s=h.slideEl;a("zoomChange",e,t,s)}y=e}}),s("init",()=>{e.params.zoom.enabled&&X()}),s("destroy",()=>{B()}),s("touchStart",(t,s)=>{e.zoom.enabled&&function(t){const s=e.device;if(!h.imageEl)return;if(f.isTouched)return;s.android&&t.cancelable&&t.preventDefault(),f.isTouched=!0;const a=m.length>0?m[0]:t;f.touchesStart.x=a.pageX,f.touchesStart.y=a.pageY}(s)}),s("touchEnd",(t,s)=>{e.zoom.enabled&&function(){const t=e.zoom;if(m.length=0,!h.imageEl)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=v.x*s,r=f.currentX+i,n=v.y*a,l=f.currentY+n;0!==v.x&&(s=Math.abs((r-f.currentX)/v.x)),0!==v.y&&(a=Math.abs((l-f.currentY)/v.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*t.scale,c=f.height*t.scale;f.minX=Math.min(h.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(h.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),h.imageWrapEl.style.transitionDuration=`${o}ms`,h.imageWrapEl.style.transform=`translate3d(${f.currentX}px, ${f.currentY}px,0)`}()}),s("doubleTap",(t,s)=>{!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&D(s)}),s("transitionEnd",()=>{e.zoom.enabled&&e.params.zoom.enabled&&A()}),s("slideChange",()=>{e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&A()}),Object.assign(e.zoom,{enable:X,disable:B,in:k,out:O,toggle:D})},function({swiper:e,extendParams:t,on:s}){function a(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function i(){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)}t({controller:{control:void 0,inverse:!1,by:"slide"}}),e.controller={control:void 0},s("beforeInit",()=>{if("undefined"!=typeof window&&("string"==typeof e.params.controller.control||e.params.controller.control instanceof HTMLElement)){return void("string"==typeof e.params.controller.control?[...document.querySelectorAll(e.params.controller.control)]:[e.params.controller.control]).forEach(t=>{if(e.controller.control||(e.controller.control=[]),t&&t.swiper)e.controller.control.push(t.swiper);else if(t){const s=`${e.params.eventsPrefix}init`,a=i=>{e.controller.control.push(i.detail[0]),e.update(),t.removeEventListener(s,a)};t.addEventListener(s,a)}})}e.controller.control=e.params.controller.control}),s("update",()=>{i()}),s("resize",()=>{i()}),s("observerUpdate",()=>{i()}),s("setTranslate",(t,s,a)=>{e.controller.control&&!e.controller.control.destroyed&&e.controller.setTranslate(s,a)}),s("setTransition",(t,s,a)=>{e.controller.control&&!e.controller.control.destroyed&&e.controller.setTransition(s,a)}),Object.assign(e.controller,{setTranslate:function(t,s){const i=e.controller.control;let r,n;const l=e.constructor;function o(t){if(t.destroyed)return;const s=e.rtlTranslate?-e.translate:e.translate;"slide"===e.params.controller.by&&(!function(t){e.controller.spline=e.params.loop?new a(e.slidesGrid,t.slidesGrid):new a(e.snapGrid,t.snapGrid)}(t),n=-e.controller.spline.interpolate(-s)),n&&"container"!==e.params.controller.by||(r=(t.maxTranslate()-t.minTranslate())/(e.maxTranslate()-e.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-e.minTranslate())*r+t.minTranslate()),e.params.controller.inverse&&(n=t.maxTranslate()-n),t.updateProgress(n),t.setTranslate(n,e),t.updateActiveIndex(),t.updateSlidesClasses()}if(Array.isArray(i))for(let e=0;e{s.updateAutoHeight()}),S(s.wrapperEl,()=>{i&&s.transitionEnd()})))}if(Array.isArray(i))for(r=0;r{e.setAttribute("tabIndex","0")})}function c(e){(e=M(e)).forEach(e=>{e.setAttribute("tabIndex","-1")})}function p(e,t){(e=M(e)).forEach(e=>{e.setAttribute("role",t)})}function u(e,t){(e=M(e)).forEach(e=>{e.setAttribute("aria-roledescription",t)})}function m(e,t){(e=M(e)).forEach(e=>{e.setAttribute("aria-label",t)})}function h(e){(e=M(e)).forEach(e=>{e.setAttribute("aria-disabled",!0)})}function f(e){(e=M(e)).forEach(e=>{e.removeAttribute("aria-disabled")})}function g(t){if(13!==t.keyCode&&32!==t.keyCode)return;const s=e.params.a11y,a=t.target;if(!e.pagination||!e.pagination.el||a!==e.pagination.el&&!e.pagination.el.contains(t.target)||t.target.matches(de(e.params.pagination.bulletClass))){if(e.navigation&&e.navigation.prevEl&&e.navigation.nextEl){const t=M(e.navigation.prevEl);M(e.navigation.nextEl).includes(a)&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?o(s.lastSlideMessage):o(s.nextSlideMessage)),t.includes(a)&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?o(s.firstSlideMessage):o(s.prevSlideMessage))}e.pagination&&a.matches(de(e.params.pagination.bulletClass))&&a.click()}}function v(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function b(){return v()&&e.params.pagination.clickable}const y=(e,t,s)=>{d(e),"BUTTON"!==e.tagName&&(p(e,"button"),e.addEventListener("keydown",g)),m(e,s)},x=t=>{r&&r!==t.target&&!r.contains(t.target)&&(i=!0),e.a11y.clicked=!0},S=()=>{i=!1,requestAnimationFrame(()=>{requestAnimationFrame(()=>{e.destroyed||(e.a11y.clicked=!1)})})},T=e=>{l=(new Date).getTime()},C=t=>{if(e.a11y.clicked||!e.params.a11y.scrollOnFocus)return;if((new Date).getTime()-l<100)return;const s=t.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!s||!e.slides.includes(s))return;r=s;const a=e.virtual&&e.params.virtual.enabled,n=(a?parseInt(s.getAttribute("data-swiper-slide-index"),10):e.slides.indexOf(s))===e.activeIndex,o=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(s);n||o||t.sourceCapabilities&&t.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,requestAnimationFrame(()=>{i||(e.params.loop?e.slideToLoop(e.getSlideIndexWhenGrid(parseInt(s.getAttribute("data-swiper-slide-index"))),0):a?e.slideTo(e.getSlideIndexWhenGrid(parseInt(s.getAttribute("data-swiper-slide-index"),10)),0):e.slideTo(e.getSlideIndexWhenGrid(e.slides.indexOf(s)),0),i=!1)}))},L=()=>{const t=e.params.a11y;t.itemRoleDescriptionMessage&&u(e.slides,t.itemRoleDescriptionMessage),t.slideRole&&p(e.slides,t.slideRole);const s=e.slides.length;t.slideLabelMessage&&e.slides.forEach((a,i)=>{const r=e.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;m(a,t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))})},I=()=>{const t=e.params.a11y;e.el.append(n);const s=e.el;t.containerRoleDescriptionMessage&&u(s,t.containerRoleDescriptionMessage),t.containerMessage&&m(s,t.containerMessage),t.containerRole&&p(s,t.containerRole);const i=e.wrapperEl,r=t.id||i.getAttribute("id")||`swiper-wrapper-${function(e=16){return"x".repeat(e).replace(/x/g,()=>Math.round(16*Math.random()).toString(16))}(16)}`;var l;if(l=r,M(i).forEach(e=>{e.setAttribute("id",l)}),t.wrapperLiveRegion){!function(e,t){(e=M(e)).forEach(e=>{e.setAttribute("aria-live",t)})}(i,e.params.autoplay&&e.params.autoplay.enabled?"off":"polite")}L();let{nextEl:o,prevEl:d}=e.navigation?e.navigation:{};if(o=M(o),d=M(d),o&&o.forEach(e=>y(e,0,t.nextSlideMessage)),d&&d.forEach(e=>y(e,0,t.prevSlideMessage)),b()){M(e.pagination.el).forEach(e=>{e.addEventListener("keydown",g)})}a().addEventListener("visibilitychange",T),e.el.addEventListener("focus",C,!0),e.el.addEventListener("pointerdown",x,!0),e.el.addEventListener("pointerup",S,!0)};s("beforeInit",()=>{n=w("span",e.params.a11y.notificationClass),n.setAttribute("aria-live","assertive"),n.setAttribute("aria-atomic","true")}),s("afterInit",()=>{e.params.a11y.enabled&&I()}),s("slidesLengthChange snapGridLengthChange slidesGridLengthChange",()=>{e.params.a11y.enabled&&L()}),s("fromEdge toEdge afterInit lock unlock",()=>{e.params.a11y.enabled&&function(){if(e.params.loop||e.params.rewind||!e.navigation)return;const{nextEl:t,prevEl:s}=e.navigation;s&&(e.isBeginning?(h(s),c(s)):(f(s),d(s))),t&&(e.isEnd?(h(t),c(t)):(f(t),d(t)))}()}),s("paginationUpdate",()=>{e.params.a11y.enabled&&function(){const t=e.params.a11y;v()&&e.pagination.bullets.forEach(s=>{e.params.pagination.clickable&&(d(s),e.params.pagination.renderBullet||(p(s,"button"),m(s,t.paginationBulletMessage.replace(/\{\{index\}\}/,E(s)+1)))),s.matches(de(e.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")})}()}),s("destroy",()=>{e.params.a11y.enabled&&function(){n&&n.remove();let{nextEl:t,prevEl:s}=e.navigation?e.navigation:{};t=M(t),s=M(s),t&&t.forEach(e=>e.removeEventListener("keydown",g)),s&&s.forEach(e=>e.removeEventListener("keydown",g)),b()&&M(e.pagination.el).forEach(e=>{e.removeEventListener("keydown",g)});a().removeEventListener("visibilitychange",T),e.el&&"string"!=typeof e.el&&(e.el.removeEventListener("focus",C,!0),e.el.removeEventListener("pointerdown",x,!0),e.el.removeEventListener("pointerup",S,!0))}()})},function({swiper:e,extendParams:t,on:s}){t({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let a=!1,i={};const n=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),l=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter(e=>""!==e),i=a.length;return{key:a[i-2],value:a[i-1]}},o=(t,s)=>{const i=r();if(!a||!e.params.history.enabled)return;let l;l=e.params.url?new URL(e.params.url):i.location;const o=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`):e.slides[s];let d=n(o.getAttribute("data-history"));if(e.params.history.root.length>0){let s=e.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${t?`${t}/`:""}${d}`}else l.pathname.includes(t)||(d=`${t?`${t}/`:""}${d}`);e.params.history.keepQuery&&(d+=l.search);const c=i.history.state;c&&c.value===d||(e.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},d=(t,s,a)=>{if(s)for(let i=0,r=e.slides.length;i{i=l(e.params.url),d(e.params.speed,i.value,!1)};s("init",()=>{e.params.history.enabled&&(()=>{const t=r();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);a=!0,i=l(e.params.url),i.key||i.value?(d(0,i.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",c)):e.params.history.replaceState||t.addEventListener("popstate",c)}})()}),s("destroy",()=>{e.params.history.enabled&&(()=>{const t=r();e.params.history.replaceState||t.removeEventListener("popstate",c)})()}),s("transitionEnd _freeModeNoMomentumRelease",()=>{a&&o(e.params.history.key,e.activeIndex)}),s("slideChange",()=>{a&&e.params.cssMode&&o(e.params.history.key,e.activeIndex)})},function({swiper:e,extendParams:t,emit:s,on:i}){let n=!1;const l=a(),o=r();t({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(t,s){if(e.virtual&&e.params.virtual.enabled){const t=e.slides.find(e=>e.getAttribute("data-hash")===s);if(!t)return 0;return parseInt(t.getAttribute("data-swiper-slide-index"),10)}return e.getSlideIndex(g(e.slidesEl,`.${e.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const d=()=>{s("hashChange");const t=l.location.hash.replace("#",""),a=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex];if(t!==(a?a.getAttribute("data-hash"):"")){const s=e.params.hashNavigation.getSlideIndex(e,t);if(void 0===s||Number.isNaN(s))return;e.slideTo(s)}},c=()=>{if(!n||!e.params.hashNavigation.enabled)return;const t=e.virtual&&e.params.virtual.enabled?e.slidesEl.querySelector(`[data-swiper-slide-index="${e.activeIndex}"]`):e.slides[e.activeIndex],a=t?t.getAttribute("data-hash")||t.getAttribute("data-history"):"";e.params.hashNavigation.replaceState&&o.history&&o.history.replaceState?(o.history.replaceState(null,null,`#${a}`||""),s("hashSet")):(l.location.hash=a||"",s("hashSet"))};i("init",()=>{e.params.hashNavigation.enabled&&(()=>{if(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)return;n=!0;const t=l.location.hash.replace("#","");if(t){const s=0,a=e.params.hashNavigation.getSlideIndex(e,t);e.slideTo(a||0,s,e.params.runCallbacksOnInit,!0)}e.params.hashNavigation.watchState&&o.addEventListener("hashchange",d)})()}),i("destroy",()=>{e.params.hashNavigation.enabled&&e.params.hashNavigation.watchState&&o.removeEventListener("hashchange",d)}),i("transitionEnd _freeModeNoMomentumRelease",()=>{n&&c()}),i("slideChange",()=>{n&&e.params.cssMode&&c()})},function({swiper:e,extendParams:t,on:s,emit:i,params:r}){let n,l;e.autoplay={running:!1,paused:!1,timeLeft:0},t({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let o,d,c,p,u,m,h,f=r&&r.autoplay?r.autoplay.delay:3e3,g=r&&r.autoplay?r.autoplay.delay:3e3,v=(new Date).getTime();function w(t){e&&!e.destroyed&&e.wrapperEl&&t.target===e.wrapperEl&&(e.wrapperEl.removeEventListener("transitionend",w),h||t.detail&&t.detail.bySwiperTouchMove||M())}const b=()=>{if(e.destroyed||!e.autoplay.running)return;e.autoplay.paused?d=!0:d&&(g=o,d=!1);const t=e.autoplay.paused?o:v+g-(new Date).getTime();e.autoplay.timeLeft=t,i("autoplayTimeLeft",t,t/f),l=requestAnimationFrame(()=>{b()})},y=()=>{let t=e.params.autoplay.delay;const s=(()=>{let t;if(t=e.virtual&&e.params.virtual.enabled?e.slides.find(e=>e.classList.contains("swiper-slide-active")):e.slides[e.activeIndex],!t)return;return parseInt(t.getAttribute("data-swiper-autoplay"),10)})();return!Number.isNaN(s)&&s>0&&(t=s),t},E=t=>{if(e.destroyed||!e.autoplay.running)return;cancelAnimationFrame(l),b();let s=t;void 0===s&&(s=y(),f=s,g=s),o=s;const a=e.params.speed,r=()=>{e&&!e.destroyed&&(e.params.autoplay.reverseDirection?!e.isBeginning||e.params.loop||e.params.rewind?(e.slidePrev(a,!0,!0),i("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(e.slides.length-1,a,!0,!0),i("autoplay")):!e.isEnd||e.params.loop||e.params.rewind?(e.slideNext(a,!0,!0),i("autoplay")):e.params.autoplay.stopOnLastSlide||(e.slideTo(0,a,!0,!0),i("autoplay")),e.params.cssMode&&(v=(new Date).getTime(),requestAnimationFrame(()=>{E()})))};return s>0?(clearTimeout(n),n=setTimeout(()=>{r()},s)):requestAnimationFrame(()=>{r()}),s},x=()=>{v=(new Date).getTime(),e.autoplay.running=!0,E(),i("autoplayStart")},S=()=>{e.autoplay.running=!1,clearTimeout(n),cancelAnimationFrame(l),i("autoplayStop")},T=(t,s)=>{if(e.destroyed||!e.autoplay.running)return;clearTimeout(n),t||(m=!0);const a=()=>{i("autoplayPause"),e.params.autoplay.waitForTransition?e.wrapperEl.addEventListener("transitionend",w):M()};if(e.autoplay.paused=!0,s)return void a();const r=o||e.params.autoplay.delay;o=r-((new Date).getTime()-v),e.isEnd&&o<0&&!e.params.loop||(o<0&&(o=0),a())},M=()=>{e.isEnd&&o<0&&!e.params.loop||e.destroyed||!e.autoplay.running||(v=(new Date).getTime(),m?(m=!1,E(o)):E(),e.autoplay.paused=!1,i("autoplayResume"))},C=()=>{if(e.destroyed||!e.autoplay.running)return;const t=a();"hidden"===t.visibilityState&&(m=!0,T(!0)),"visible"===t.visibilityState&&M()},P=t=>{"mouse"===t.pointerType&&(m=!0,h=!0,e.animating||e.autoplay.paused||T(!0))},L=t=>{"mouse"===t.pointerType&&(h=!1,e.autoplay.paused&&M())};s("init",()=>{e.params.autoplay.enabled&&(e.params.autoplay.pauseOnMouseEnter&&(e.el.addEventListener("pointerenter",P),e.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),x())}),s("destroy",()=>{e.el&&"string"!=typeof e.el&&(e.el.removeEventListener("pointerenter",P),e.el.removeEventListener("pointerleave",L)),a().removeEventListener("visibilitychange",C),e.autoplay.running&&S()}),s("_freeModeStaticRelease",()=>{(p||m)&&M()}),s("_freeModeNoMomentumRelease",()=>{e.params.autoplay.disableOnInteraction?S():T(!0,!0)}),s("beforeTransitionStart",(t,s,a)=>{!e.destroyed&&e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?T(!0,!0):S())}),s("sliderFirstMove",()=>{!e.destroyed&&e.autoplay.running&&(e.params.autoplay.disableOnInteraction?S():(c=!0,p=!1,m=!1,u=setTimeout(()=>{m=!0,p=!0,T(!0)},200)))}),s("touchEnd",()=>{if(!e.destroyed&&e.autoplay.running&&c){if(clearTimeout(u),clearTimeout(n),e.params.autoplay.disableOnInteraction)return p=!1,void(c=!1);p&&e.params.cssMode&&M(),p=!1,c=!1}}),s("slideChange",()=>{!e.destroyed&&e.autoplay.running&&e.autoplay.paused&&(o=y(),f=y())}),Object.assign(e.autoplay,{start:x,stop:S,pause:T,resume:M})},function({swiper:e,extendParams:t,on:s}){t({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const t=e.thumbs.swiper;return!(!t||t.destroyed)&&(t.params.virtual&&t.params.virtual.enabled)}function l(){const t=e.thumbs.swiper;if(!t||t.destroyed)return;const s=t.clickedIndex,a=t.clickedSlide;if(a&&a.classList.contains(e.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=t.params.loop?parseInt(t.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,e.params.loop?e.slideToLoop(i):e.slideTo(i)}function o(){const{thumbs:t}=e.params;if(i)return!1;i=!0;const s=e.constructor;if(t.swiper instanceof s){if(t.swiper.destroyed)return i=!1,!1;e.thumbs.swiper=t.swiper,Object.assign(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper.update()}else if(c(t.swiper)){const a=Object.assign({},t.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),e.thumbs.swiper=new s(a),r=!0}return e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",l),n()&&e.thumbs.swiper.on("virtualUpdate",()=>{d(!1,{autoScroll:!1})}),!0}function d(t,s){const a=e.thumbs.swiper;if(!a||a.destroyed)return;let i=1;const r=e.params.thumbs.slideThumbActiveClass;if(e.params.slidesPerView>1&&!e.params.centeredSlides&&(i=e.params.slidesPerView),e.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),a.slides.forEach(e=>e.classList.remove(r)),a.params.loop||n())for(let t=0;t{e.classList.add(r)});else for(let t=0;tt.getAttribute("data-swiper-slide-index")===`${e.realIndex}`);l=s.slides.indexOf(t),o=e.activeIndex>e.previousIndex?"next":"prev"}else l=e.realIndex,o=l>e.previousIndex?"next":"prev";r&&(l+="next"===o?i:-1*i),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(l)<0&&(s.params.centeredSlides?l=l>n?l-Math.floor(a/2)+1:l+Math.floor(a/2)-1:l>n&&s.params.slidesPerGroup,s.slideTo(l,t))}}(t?0:void 0)}e.thumbs={swiper:null},s("beforeInit",()=>{const{thumbs:t}=e.params;if(t&&t.swiper)if("string"==typeof t.swiper||t.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof t.swiper?s.querySelector(t.swiper):t.swiper;if(a&&a.swiper)t.swiper=a.swiper,o(),d(!0);else if(a){const s=`${e.params.eventsPrefix}init`,i=r=>{t.swiper=r.detail[0],a.removeEventListener(s,i),o(),d(!0),t.swiper.update(),e.update()};a.addEventListener(s,i)}return a},r=()=>{if(e.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)}),s("slideChange update resize observerUpdate",()=>{d()}),s("setTransition",(t,s)=>{const a=e.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)}),s("beforeDestroy",()=>{const t=e.thumbs.swiper;t&&!t.destroyed&&r&&t.destroy()}),Object.assign(e.thumbs,{init:o,update:d})},function({swiper:e,extendParams:t,emit:s,once:a}){t({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(e,{freeMode:{onTouchStart:function(){if(e.params.cssMode)return;const t=e.getTranslate();e.setTranslate(t),e.setTransition(0),e.touchEventsData.velocities.length=0,e.freeMode.onTouchEnd({currentPos:e.rtl?e.translate:-e.translate})},onTouchMove:function(){if(e.params.cssMode)return;const{touchEventsData:t,touches:s}=e;0===t.velocities.length&&t.velocities.push({position:s[e.isHorizontal()?"startX":"startY"],time:t.touchStartTime}),t.velocities.push({position:s[e.isHorizontal()?"currentX":"currentY"],time:o()})},onTouchEnd:function({currentPos:t}){if(e.params.cssMode)return;const{params:i,wrapperEl:r,rtlTranslate:n,snapGrid:l,touchEventsData:d}=e,c=o()-d.touchStartTime;if(t<-e.minTranslate())e.slideTo(e.activeIndex);else if(t>-e.maxTranslate())e.slides.length1){const t=d.velocities.pop(),s=d.velocities.pop(),a=t.position-s.position,r=t.time-s.time;e.velocity=a/r,e.velocity/=2,Math.abs(e.velocity)150||o()-t.time>300)&&(e.velocity=0)}else e.velocity=0;e.velocity*=i.freeMode.momentumVelocityRatio,d.velocities.length=0;let t=1e3*i.freeMode.momentumRatio;const c=e.velocity*t;let p=e.translate+c;n&&(p=-p);let u,m=!1;const h=20*Math.abs(e.velocity)*i.freeMode.momentumBounceRatio;let f;if(pe.minTranslate())i.freeMode.momentumBounce?(p-e.minTranslate()>h&&(p=e.minTranslate()+h),u=e.minTranslate(),m=!0,d.allowMomentumBounce=!0):p=e.minTranslate(),i.loop&&i.centeredSlides&&(f=!0);else if(i.freeMode.sticky){let t;for(let e=0;e-p){t=e;break}p=Math.abs(l[t]-p){e.loopFix()}),0!==e.velocity){if(t=n?Math.abs((-p-e.translate)/e.velocity):Math.abs((p-e.translate)/e.velocity),i.freeMode.sticky){const s=Math.abs((n?-p:p)-e.translate),a=e.slidesSizesGrid[e.activeIndex];t=s{e&&!e.destroyed&&d.allowMomentumBounce&&(s("momentumBounce"),e.setTransition(i.speed),setTimeout(()=>{e.setTranslate(u),S(r,()=>{e&&!e.destroyed&&e.transitionEnd()})},0))})):e.velocity?(s("_freeModeNoMomentumRelease"),e.updateProgress(p),e.setTransition(t),e.setTranslate(p),e.transitionStart(!0,e.swipeDirection),e.animating||(e.animating=!0,S(r,()=>{e&&!e.destroyed&&e.transitionEnd()}))):e.updateProgress(p),e.updateActiveIndex(),e.updateSlidesClasses()}else{if(i.freeMode.sticky)return void e.slideToClosest();i.freeMode&&s("_freeModeNoMomentumRelease")}(!i.freeMode.momentum||c>=i.longSwipesMs)&&(s("_freeModeStaticRelease"),e.updateProgress(),e.updateActiveIndex(),e.updateSlidesClasses())}}}})},function({swiper:e,extendParams:t,on:s}){let a,i,r,n;t({grid:{rows:1,fill:"column"}});const l=()=>{let t=e.params.spaceBetween;return"string"==typeof t&&t.indexOf("%")>=0?t=parseFloat(t.replace("%",""))/100*e.size:"string"==typeof t&&(t=parseFloat(t)),t};s("init",()=>{n=e.params.grid&&e.params.grid.rows>1}),s("update",()=>{const{params:t,el:s}=e,a=t.grid&&t.grid.rows>1;n&&!a?(s.classList.remove(`${t.containerModifierClass}grid`,`${t.containerModifierClass}grid-column`),r=1,e.emitContainerClasses()):!n&&a&&(s.classList.add(`${t.containerModifierClass}grid`),"column"===t.grid.fill&&s.classList.add(`${t.containerModifierClass}grid-column`),e.emitContainerClasses()),n=a}),e.grid={initSlides:t=>{const{slidesPerView:s}=e.params,{rows:n,fill:l}=e.params.grid,o=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:t.length;r=Math.floor(o/n),a=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==s&&"row"===l&&(a=Math.max(a,Math.floor(s)*n)),i=a/n},unsetSlides:()=>{e.slides&&e.slides.forEach(t=>{t.swiperSlideGridSet&&(t.style.height="",t.style[e.getDirectionLabel("margin-top")]="")})},updateSlide:(t,s,n)=>{const{slidesPerGroup:o}=e.params,d=l(),{rows:c,fill:p}=e.params.grid,u=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:n.length;let m,h,f;if("row"===p&&o>1){const e=Math.floor(t/(o*c)),i=t-c*o*e,r=0===e?o:Math.min(Math.ceil((u-e*c*o)/c),o);f=Math.floor(i/r),h=i-f*r+e*o,m=h+f*a/c,s.style.order=m}else"column"===p?(h=Math.floor(t/c),f=t-h*c,(h>r||h===r&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(t/i),h=t-f*i);s.row=f,s.column=h,s.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,s.style[e.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",s.swiperSlideGridSet=!0},updateWrapperSize:(t,s)=>{const{centeredSlides:i,roundLengths:r}=e.params,n=l(),{rows:o}=e.params.grid;if(e.virtualSize=(t+n)*a,e.virtualSize=Math.ceil(e.virtualSize/o)-n,e.params.cssMode||(e.wrapperEl.style[e.getDirectionLabel("width")]=`${e.virtualSize+n}px`),i){const t=[];for(let a=0;a{const{slides:t}=e;e.params.fadeEffect;for(let s=0;s{const s=e.slides.map(e=>f(e));s.forEach(e=>{e.style.transitionDuration=`${t}ms`}),ve({swiper:e,duration:t,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const a=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=w("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=w("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};fe({effect:"cube",swiper:e,on:s,setTranslate:()=>{const{el:t,wrapperEl:s,slides:i,width:r,height:n,rtlTranslate:l,size:o,browser:d}=e,c=C(e),p=e.params.cubeEffect,u=e.isHorizontal(),m=e.virtual&&e.params.virtual.enabled;let h,f=0;p.shadow&&(u?(h=e.wrapperEl.querySelector(".swiper-cube-shadow"),h||(h=w("div","swiper-cube-shadow"),e.wrapperEl.append(h)),h.style.height=`${r}px`):(h=t.querySelector(".swiper-cube-shadow"),h||(h=w("div","swiper-cube-shadow"),t.append(h))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.style.transform=w,p.slideShadows&&a(t,d,u)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,p.shadow)if(u)h.style.transform=`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${p.shadowScale})`;else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;h.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-89.99deg)`}const g=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${g}px) rotateX(${c(e.isHorizontal()?0:f)}deg) rotateY(${c(e.isHorizontal()?-f:0)}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:t=>{const{el:s,slides:a}=e;if(a.forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(e=>{e.style.transitionDuration=`${t}ms`})}),e.params.cubeEffect.shadow&&!e.isHorizontal()){const e=s.querySelector(".swiper-cube-shadow");e&&(e.style.transitionDuration=`${t}ms`)}},recreateShadows:()=>{const t=e.isHorizontal();e.slides.forEach(e=>{const s=Math.max(Math.min(e.progress,1),-1);a(e,s,t)})},getEffectParams:()=>e.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function({swiper:e,extendParams:t,on:s}){t({flipEffect:{slideShadows:!0,limitRotation:!0}});const a=(t,s)=>{let a=e.isHorizontal()?t.querySelector(".swiper-slide-shadow-left"):t.querySelector(".swiper-slide-shadow-top"),i=e.isHorizontal()?t.querySelector(".swiper-slide-shadow-right"):t.querySelector(".swiper-slide-shadow-bottom");a||(a=we("flip",t,e.isHorizontal()?"left":"top")),i||(i=we("flip",t,e.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};fe({effect:"flip",swiper:e,on:s,setTranslate:()=>{const{slides:t,rtlTranslate:s}=e,i=e.params.flipEffect,r=C(e);for(let n=0;n{const s=e.slides.map(e=>f(e));s.forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(e=>{e.style.transitionDuration=`${t}ms`})}),ve({swiper:e,duration:t,transformElements:s})},recreateShadows:()=>{e.params.flipEffect,e.slides.forEach(t=>{let s=t.progress;e.params.flipEffect.limitRotation&&(s=Math.max(Math.min(t.progress,1),-1)),a(t,s)})},getEffectParams:()=>e.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),fe({effect:"coverflow",swiper:e,on:s,setTranslate:()=>{const{width:t,height:s,slides:a,slidesSizesGrid:i}=e,r=e.params.coverflowEffect,n=e.isHorizontal(),l=e.translate,o=n?t/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth,p=C(e);for(let e=0,t=a.length;e0?u:0),s&&(s.style.opacity=-u>0?-u:0)}}},setTransition:t=>{e.slides.map(e=>f(e)).forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(e=>{e.style.transitionDuration=`${t}ms`})})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function({swiper:e,extendParams:t,on:s}){t({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const a=e=>"string"==typeof e?e:`${e}px`;fe({effect:"creative",swiper:e,on:s,setTranslate:()=>{const{slides:t,wrapperEl:s,slidesSizesGrid:i}=e,r=e.params.creativeEffect,{progressMultiplier:n}=r,l=e.params.centeredSlides,o=C(e);if(l){const t=i[0]/2-e.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${t}px))`}for(let s=0;s0&&(g=r.prev,f=!0),m.forEach((e,t)=>{m[t]=`calc(${e}px + (${a(g.translate[t])} * ${Math.abs(c*n)}))`}),h.forEach((e,t)=>{let s=g.rotate[t]*Math.abs(c*n);h[t]=s}),i.style.zIndex=-Math.abs(Math.round(d))+t.length;const v=m.join(", "),w=`rotateX(${o(h[0])}deg) rotateY(${o(h[1])}deg) rotateZ(${o(h[2])}deg)`,b=p<0?`scale(${1+(1-g.scale)*p*n})`:`scale(${1-(1-g.scale)*p*n})`,y=p<0?1+(1-g.opacity)*p*n:1-(1-g.opacity)*p*n,E=`translate3d(${v}) ${w} ${b}`;if(f&&g.shadow||!f){let e=i.querySelector(".swiper-slide-shadow");if(!e&&g.shadow&&(e=we("creative",i)),e){const t=r.shadowPerProgress?c*(1/r.limitProgress):c;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const x=ge(0,i);x.style.transform=E,x.style.opacity=y,g.origin&&(x.style.transformOrigin=g.origin)}},setTransition:t=>{const s=e.slides.map(e=>f(e));s.forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow").forEach(e=>{e.style.transitionDuration=`${t}ms`})}),ve({swiper:e,duration:t,transformElements:s,allSlides:!0})},perspective:()=>e.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!e.params.cssMode})})},function({swiper:e,extendParams:t,on:s}){t({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),fe({effect:"cards",swiper:e,on:s,setTranslate:()=>{const{slides:t,activeIndex:s,rtlTranslate:a}=e,i=e.params.cardsEffect,{startTranslate:r,isTouched:n}=e.touchEventsData,l=a?-e.translate:e.translate;for(let o=0;o0&&p<1&&(n||e.params.cssMode)&&l-1&&(n||e.params.cssMode)&&l>r;if(y||E){const t=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*t,g+=-.5*t,w+=96*t,h=(i.rotate||e.isHorizontal()?-25:0)*t*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!e.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=we("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+t.length;ge(0,d).style.transform=S}},setTransition:t=>{const s=e.slides.map(e=>f(e));s.forEach(e=>{e.style.transitionDuration=`${t}ms`,e.querySelectorAll(".swiper-slide-shadow").forEach(e=>{e.style.transitionDuration=`${t}ms`})}),ve({swiper:e,duration:t,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({_loopSwapReset:!1,watchSlidesProgress:!0,loopAdditionalSlides:e.params.cardsEffect.rotate?3:2,centeredSlides:!0,virtualTranslate:!e.params.cssMode})})}];return ne.use(be),ne}(); +//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/scss/_config.scss b/wp-content/themes/hantico/assets/scss/_config.scss new file mode 100644 index 0000000..37a3148 --- /dev/null +++ b/wp-content/themes/hantico/assets/scss/_config.scss @@ -0,0 +1,72 @@ +@use "mixins" as *; + +// Иконки +:root { + --icon-angle-down: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.44453 7.76144L-5.0361e-08 3.15212L1.11094 2L5 6.03325L8.88906 2L10 3.15212L5.55547 7.76144C5.40813 7.91419 5.20833 8 5 8C4.79167 8 4.59187 7.91419 4.44453 7.76144Z' fill='black' /%3E%3C/svg%3E"); + --icon-angle-left: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m2.2386 4.4445 4.6093-4.4445 1.1521 1.1109-4.0332 3.8891 4.0332 3.8891-1.1521 1.1109-4.6093-4.4445c-.15275-.14734-.23856-.34714-.23856-.55547s.085811-.40813.23856-.55547z' clip-rule='evenodd' fill='%23000' fill-rule='evenodd'/%3E%3C/svg%3E%0A"); + --icon-angle-round: url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle transform='rotate(-90)' cx='-18' cy='18' r='18' fill='%23f5f5fa' stroke-width='.97297'/%3E%3Cpath d='m17.536 20.613-3.7133-3.6676.9282-.9168 3.2492 3.2093 3.2493-3.2093.9281.9168-3.7133 3.6676c-.1231.1215-.29.1898-.4641.1898-.174 0-.341-.0683-.4641-.1898z' clip-rule='evenodd' fill-rule='evenodd'/%3E%3C/svg%3E"); + --icon-checkmark: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m18.605 4.0883c.25317.24833.39546.5851.39546.93628 0 .35115-.14229.68791-.39546.93628l-10.124 9.9253c-.1338.13122-.29265.23526-.46747.30627-.17483.07101-.36221.10755-.55144.10755-.18924 0-.37662-.03654-.55144-.10755-.17483-.07101-.33368-.17505-.46747-.30627l-5.0301-4.9306c-.12901-.12216-.23191-.26828-.30271-.42984-.07079-.16156-.10805-.33533-.10961-.51116-.0015-.17583.03262-.35021.10053-.51296.06791-.16274.16821-.31059.29504-.43493.12683-.12434.27763-.22267.44364-.28925.166-.066583.34387-.10009.52322-.09856.17935.00153.35659.038061.52139.10746.16479.0694.31384.17028.43845.29676l4.1387 4.0575 9.2332-9.0523c.12546-.12306.27441-.22067.4383-.28728.16398-.0666.33966-.10088.51714-.10088.17748 0 .35316.03428.51714.10088.16389.0666.31284.16422.4383.28728z' clip-rule='evenodd' fill='%23ae001b' fill-rule='evenodd' stroke-width='.90001'/%3E%3C/svg%3E%0A"); + --icon-user: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 9C8.20435 9 7.44129 8.68393 6.87868 8.12132C6.31607 7.55871 6 6.79565 6 6C6 5.20435 6.31607 4.44129 6.87868 3.87868C7.44129 3.31607 8.20435 3 9 3C9.79565 3 10.5587 3.31607 11.1213 3.87868C11.6839 4.44129 12 5.20435 12 6C12 6.79565 11.6839 7.55871 11.1213 8.12132C10.5587 8.68393 9.79565 9 9 9ZM9 11.25C11.3895 11.25 13.5337 11.6782 15 13.5472V15H3V13.5472C4.46625 11.6775 6.6105 11.25 9 11.25Z' fill='%23515151' /%3E%3C/svg%3E"); + --icon-car: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m24 10.406v-1.875h-2.8649l-1.4392-3.87-.4622-.1274c-.0659-.01814-.9865-.26771-2.5462-.48047v-2.1784h-1.875v1.9792c-.624-.04818-1.2493-.07957-1.875-.09413v-1.8851h-1.875v1.8898c-.6258.01782-1.251.05177-1.875.10181v-1.9916h-1.875v2.1934c-1.5331.20784-2.463.44386-2.5311.46144l-.47555.12267-1.43 3.8787h-2.8759v1.875h2.0156l.024.0321-1.1363 1.4633-.02362.0371c-.57496.9024-.88015 1.9502-.87966 3.0202v6.2286c0 1.5509 1.2616 2.8125 2.8125 2.8125s2.8125-1.2616 2.8125-2.8125v-.4688h12.75v.4688c0 1.5509 1.2616 2.8125 2.8125 2.8125 1.5509 0 2.8125-1.2616 2.8125-2.8125v-6.2363c0-1.0656-.301-2.1051-.8707-3.006l-.0232-.0368-1.1263-1.4606.0333-.0416zm-18.281-4.1666c.96018-.19992 3.3193-.61467 6.3747-.61467 3.0194 0 5.2679.40889 6.1865.60881l1.168 3.1412h-14.885zm-1.9691 14.948c0 .5169-.42061.9375-.9375.9375s-.9375-.4206-.9375-.9375v-.4688h1.875zm17.438.9375c-.5169 0-.9375-.4206-.9375-.9375v-.4688h1.875v.4688c0 .5169-.4206.9375-.9375.9375zm.9375-3.2813h-20.25v-3.8847c0-.7008.195-1.3839.56438-1.9785l1.3439-1.7305h16.447l1.3359 1.7323c.3654.5918.5588 1.2735.5585 1.969zm-14.109-4.6875h7.9688v1.875h-7.9688zm-1.9219.9375c0 .5179-.41967.9375-.9375.9375h-.9375c-.51783 0-.9375-.4196-.9375-.9375 0-.5178.41967-.9375.9375-.9375h.9375c.51783 0 .9375.4197.9375.9375zm14.625 0c0 .5179-.4197.9375-.9376.9375h-.9374c-.5179 0-.9376-.4196-.9376-.9375 0-.5178.4197-.9375.9376-.9375h.9374c.5179 0 .9376.4197.9376.9375zm-9.6563-13.219h-1.875v-1.875h1.875zm3.75 0h-1.875v-1.875h1.875z' fill='%23fff'/%3E%3C/svg%3E"); + --icon-bike: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m7.5822 19.053c0-.9739-.79117-1.7633-1.7671-1.7633s-1.7671.7894-1.7671 1.7633.79117 1.7633 1.7671 1.7633 1.7671-.7894 1.7671-1.7633zm8.6589 0c0 .9739.7911 1.7633 1.7671 1.7633.9759 0 1.7671-.7894 1.7671-1.7633zm2.6507-14.107c-.488 0-.8836.39475-.8836.88166v.88166h1.7671v-1.7633zm-11.31 0v1.7633h-5.3014v-1.7633zm3.5342-3.5266v1.7633h-5.3013v-1.7633zm-1.7671 17.633c0 1.9477-1.5823 3.5266-3.5342 3.5266s-3.5342-1.5789-3.5342-3.5266h-1.5904v-2.645c0-4.3529 3.3545-7.9349 7.7753-7.9349h4.2411v1.7633h-1.7671v6.9906c2.9973-.4278 5.3014-2.9998 5.3014-6.1089v-3.0678l-1.9182-1.3406h.1511v-1.7633h1.9179c.3639-1.0273 1.3457-1.7633 2.4999-1.7633h2.6506v5.29h-2.1404c.0552.06103.1107.12356.1661.18761.9399 1.086 1.9896 2.7184 1.9896 4.6529 0 .4383-.0408.8608-.1097 1.2622 1.1254.7981 1.8616 2.1104 1.8616 3.5955v.8817h-1.7672c0 1.9477-1.5823 3.5266-3.5342 3.5266s-3.5342-1.5789-3.5342-3.5266zm-6.8918-1.7633h.29613c.61109-1.0541 1.7532-1.7633 3.0614-1.7633s2.4503.7092 3.0614 1.7633h.29613v-7.0533h-.70685c-3.3868 0-6.0082 2.7336-6.0082 6.1716zm15.551-6.1716c0 2.4927-1.152 4.7169-2.9536 6.1716h6.337c-.2311-.6527-.7117-1.1884-1.3295-1.4924l-.6429-.3164.1778-.693c.1194-.4655.1936-.9615.1936-1.4743 0-1.307-.725-2.5357-1.5599-3.5004-.0743-.08584-.1487-.16863-.2225-.24827z' fill='%23cacada'/%3E%3C/svg%3E%0A"); + --icon-truck: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m15.481 6.5h3.5186l.0508.12207 2.2763 5.4648 2.5674 1.4561.1006.0566v6.0274h-3.2148c-.4164 1.1923-1.5502 2.0516-2.8838 2.0517-1.3336-2e-4-2.4665-.8594-2.8828-2.0517h-6.0244c-.4163 1.1922-1.5493 2.0515-2.8828 2.0517-1.3338 0-2.4674-.8593-2.8838-2.0517h-3.2148v-17.24h15.474v4.1133zm-7.1816 13.95c.0059-.0071.01273-.0134.01856-.0205.00914-.0112.01642-.0239.02539-.0352-.01469.0186-.02881.0375-.04395.0557zm.18653-.2481c-.00655.0099-.01482.0186-.02149.0284.00668-.0098.01493-.0185.02149-.0284zm.11523-.1933c.01496-.0269.02984-.0537.04395-.0811-.0141.0274-.029.0542-.04395.0811zm-2.4951-2.6026c-.67062 0-1.2168.5461-1.2168 1.2168 4e-5.6706.5462 1.2168 1.2168 1.2168.67032-3e-4 1.2158-.5464 1.2158-1.2168-4e-5-.6705-.54548-1.2164-1.2158-1.2168zm11.79 0c-.6704 3e-4-1.2158.5462-1.2158 1.2168 0 .6705.5454 1.2166 1.2158 1.2168.6705-1e-4 1.2167-.5463 1.2168-1.2168-1e-4-.6706-.5463-1.2166-1.2168-1.2168zm-9.1602 2.3292c.0142-.0335.02709-.0675.04004-.1016-.01294.0341-.02585.0681-.04004.1016zm-5.3037-.1016c.00264.0069.00608.0136.00879.0205-.02883-.0737-.0546-.149-.07715-.2256l.06836.2051zm13.049-1.0108c0 .0419.0033.0832.0069.1241l-.0059-.1241c0-.0487.002-.097.0069-.1445l-.0079.1445zm-14.833-.6376h.00097v-5.5225h-.00097v5.5225zm.19922-10.647h8.8085v1.8398h-8.8085v1.6426h6.7559v1.8398h-6.7559v5.126h1.3223c.36463-1.2794 1.5409-2.2207 2.9365-2.2207 1.3952 3e-4 2.571.9414 2.9355 2.2207h4.6006v-13.561h-11.795v3.1123zm13.634 9.4179c.5589-.7221 1.4324-1.1903 2.4151-1.1904 1.3956 1e-4 2.5719.9413 2.9365 2.2207h1.3232v-3.1152l-1.7978-1.0205h-4.877v3.1054zm1.0118-.623c-.0594.0336-.1172.0697-.1739.1074.1131-.0752.2319-.1424.3555-.2012l-.1816.0938zm-10.635-.3584.24707-.0098c.16767 0 .33238.0142.49219.042-.07901-.0138-.15916-.0241-.24024-.0312l-.25097-.0118c-.08352 0-.16626.0037-.24805.0108zm12.038-.0108c-.1456 1e-4-.2888.0112-.4287.0323l.2119-.0235c.0716-.0052.1439-.0078.2168-.0078.127 0 .2522.0076.375.0235l-.1856-.0186c-.0626-.0041-.1258-.0058-.1894-.0059zm-2.4151-3.9531h3.7383l-1.4463-3.4717h-2.292v3.4717zm-13.833-.792h.00097v-2.039h-.00097v2.039zm0-3.4824h.00097v-3.5088h-.00097v3.5088z' fill='%23CACADA'/%3E%3C/svg%3E"); + --icon-play: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m53.986 25.627c3.3524 1.9484 3.3524 6.7982 0 8.7465l-42.906 24.937c-3.3645 1.9554-7.5794-.4765-7.5794-4.3733l2e-6-49.873c0-3.8967 4.2148-6.3287 7.5793-4.3732z' fill='%23fff'/%3E%3C/svg%3E"); + --icon-cross: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.6914 0V24' stroke='%2373798C'/%3E%3Cpath d='M24 11.6924L-8.9407e-07 11.6924' stroke='%2373798C'/%3E%3C/svg%3E%0A"); + --icon-quotes: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m21.45 13.688c0 2.797-2.2655 5.0625-5.0625 5.0625h-.3375c-.7467 0-1.35-.6033-1.35-1.35s.6033-1.35 1.35-1.35h.3375c1.3036 0 2.3625-1.0589 2.3625-2.3625v-.3375h-2.7c-1.4892 0-2.7-1.2108-2.7-2.7v-2.7c0-1.4892 1.2108-2.7 2.7-2.7h2.7c1.4892 0 2.7 1.2108 2.7 2.7zm-10.8 0c0 2.797-2.2655 5.0625-5.0625 5.0625h-.3375c-.74672 0-1.35-.6033-1.35-1.35s.60328-1.35 1.35-1.35h.3375c1.3036 0 2.3625-1.0589 2.3625-2.3625v-.3375h-2.7c-1.4892 0-2.7-1.2108-2.7-2.7v-2.7c0-1.4892 1.2108-2.7 2.7-2.7h2.7c1.4892 0 2.7 1.2108 2.7 2.7z' fill='%23d4d4d4'/%3E%3C/svg%3E"); + --icon-phone: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12.083 0h-4.1667c-1.2152.0013-2.3802.48463-3.2394 1.3439-.85925.85925-1.3426 2.0243-1.3439 3.2394v10.833c0 2.5275 2.0558 4.5833 4.5833 4.5833h4.1667c2.5267 0 4.5833-2.0558 4.5833-4.5833v-10.833c0-2.5275-2.0566-4.5833-4.5833-4.5833zm2.0833 15.417c0 1.1483-.9341 2.0833-2.0833 2.0833h-4.1667c-.55233-7e-4-1.0818-.2204-1.4724-.6109-.39056-.3906-.61026-.9201-.61093-1.4724v-10.833c0-1.1483.935-2.0833 2.0833-2.0833h4.1667c1.1492 0 2.0833.935 2.0833 2.0833zm-3.3333.4166h-1.6667c-.22102 0-.43298-.0878-.58926-.244-.15628-.1563-.24408-.3683-.24408-.5893s.0878-.433.24408-.5893c.15628-.1562.36824-.244.58926-.244h1.6667c.221 0 .433.0878.5892.244.1563.1563.2441.3683.2441.5893s-.0878.433-.2441.5893c-.1562.1562-.3682.244-.5892.244z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-location: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m8.3333 6.6667c0-.32963.09774-.65186.28088-.92595.18314-.27408.44343-.4877.74798-.61384.30454-.12615.63964-.15916.96294-.09485s.6203.22305.8534.45613c.2331.23309.3918.53006.4561.85336.0643.32331.0313.65842-.0948.96296-.1262.30454-.3398.56484-.6139.74798-.2741.18313-.5963.28088-.9259.28088-.44206 0-.86599-.17559-1.1785-.48815s-.48815-.73649-.48815-1.1785zm11.667 4.4783v4.2909c.0046.5768-.1236 1.1471-.3748 1.6664-.2511.5194-.6185.974-1.0736 1.3286-.4268.3348-.9248.5671-1.4557.679-.5308.1118-1.0803.1002-1.6059-.034-.0367-.0092-1.94-.6817-1.94-.6817-.3137-.0853-.6448-.0821-.9567.0092l-4.5833 1.4216c-.39857.116-.81156.1749-1.2267.175-.45298 4e-4-.9031-.0716-1.3333-.2133l-2.2825-.75c-.9261-.3-1.7325-.8873-2.3021-1.6767-.56959-.7894-.87274-1.7399-.86542-2.7133v-3.3967c-.0053-.6283.11821-1.251.36287-1.8298.24465-.57874.60528-1.1012 1.0596-1.5352.54195-.50655 1.2029-.86825 1.9217-1.0517-.01692-.89746.14569-1.7892.47826-2.623.33258-.83373.82843-1.5926 1.4584-2.232.61589-.62653 1.3504-1.1241 2.1606-1.4638.81023-.33968 1.68-.51462 2.5586-.51462.8785 0 1.7483.17494 2.5585.51462.8103.33968 1.5447.8373 2.1606 1.4638 1.2382 1.2556 1.935 2.9466 1.9409 4.71l.3883.13584c.8728.33462 1.6229.92735 2.1503 1.6992.5273.77182.8069 1.6869.8014 2.6216zm-12.941-1.4116 2.7442 2.6833c.02635.0267.05775.0479.09237.0624.03462.0144.07177.0219.10933.0219.0375 0 .0746-.0075.1093-.0219.0346-.0145.066-.0357.0923-.0624l2.75-2.6958c.7808-.80127 1.2166-1.8765 1.2141-2.9952-.0025-1.1187-.4431-2.192-1.2274-2.9898-.3836-.3908-.8412-.70122-1.3462-.91313-.5049-.21191-1.047-.32105-1.5946-.32105-.54764 0-1.0898.10914-1.5947.32105s-.96258.52233-1.3462.91313c-.78541.80039-1.2256 1.8769-1.2261 2.9982s.43884 2.1982 1.2236 2.9993zm10.441 1.4108c.0074-.4197-.112-.8319-.3428-1.1825-.2308-.35063-.5621-.62337-.9506-.78248-.3304.86521-.8369 1.6524-1.4875 2.3117l-2.7616 2.71c-.5189.5146-1.2201.8034-1.9509.8034-.73078 0-1.432-.2888-1.9508-.8034l-2.76-2.695c-.6311-.6402-1.1283-1.3997-1.4625-2.2342-.25379.09301-.4858.23709-.68167.42334-.20916.20087-.37491.44248-.487.70998-.11209.2674-.16813.555-.16467.845v3.3959c-.0088.4419.1239.8751.37877 1.2363.25487.3611.61854.6314 1.0379.7712l2.3133.7566c.34336.1129.71279.1196 1.06.0192l4.5925-1.4233c.7998-.2332 1.6501-.2288 2.4475.0124l1.8225.6484c.1505.031.3061.0286.4556-.0073s.2893-.1042.4094-.2002c.1537-.1221.2773-.2781.3609-.4557.0837-.1776.1253-.3722.1216-.5685z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-email: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m15.146.83336h-10.292c-1.1544.0013-2.2612.48464-3.0775 1.3439-.81629.85926-1.2754 2.0243-1.2767 3.2394v9.1667c.0013 1.2152.4604 2.3802 1.2767 3.2395.8163.8592 1.9231 1.3425 3.0775 1.3438h10.292c1.1544-.0013 2.2612-.4846 3.0775-1.3438.8163-.8593 1.2754-2.0243 1.2767-3.2395v-9.1666c-.0013-1.2152-.4604-2.3802-1.2767-3.2394-.8163-.85925-1.9231-1.3426-3.0775-1.3439zm0 2.5c.4801.0017.943.18879 1.3007.52584l-5.1458 5.4167c-.3495.35139-.81422.54746-1.2975.54746-.48332 0-.94804-.19607-1.2976-.54746l-5.1458-5.4167c.35613-.33553.81645-.52253 1.2944-.52584zm0 13.333h-10.292c-.52491 0-1.0283-.2194-1.3995-.6101-.37116-.3908-.57968-.9207-.57968-1.4732v-7.9025l4.1475 4.3658c.39089.4117.855.7382 1.3658.961.51081.2228 1.0583.3375 1.6112.3375.5529 0 1.1004-.1147 1.6113-.3375.5108-.2228.9749-.5493 1.3658-.961l4.1483-4.3658v7.9025c0 .5525-.2085 1.0824-.5797 1.4732-.3711.3907-.8746.6101-1.3995.6101z' fill='%23d2d2dc'/%3E%3C/svg%3E"); + --icon-arrow-up: url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.5527 7.72343L10.6257 7.71866L10.6359 3.27418L1.36009 12.5323L-0.000836289 11.1687L9.24981 1.93573L4.85983 1.92551L4.86459 -9.12876e-05L12.5711 0.0176185L12.5527 7.72343Z' fill='%23AE001B'/%3E%3C/svg%3E%0A"); + --icon-location-alt: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m10 .75684c2.188 0 4.2865.8692 5.8336 2.4164 1.5472 1.5472 2.4164 3.6456 2.4164 5.8337 0 2.8178-1.5363 5.1241-3.1552 6.7787-.8088.8178-1.6913 1.5591-2.6363 2.2147l-.3905.2658-.1833.1219-.3456.22-.308.188-.3813.2218c-.2589.1477-.5518.2254-.8498.2254s-.5909-.0777-.8498-.2254l-.38128-.2218-.47667-.2934-.176-.1146-.37583-.2502c-1.0195-.6898-1.9691-1.4776-2.8352-2.3522-1.6188-1.6555-3.1552-3.9609-3.1552-6.7787 0-2.1881.86919-4.2865 2.4164-5.8337 1.5472-1.5472 3.6456-2.4164 5.8336-2.4164zm0 5.5c-.3611 0-.7187.07113-1.0524.20934-.33364.1382-.6368.34076-.89216.59612s-.45793.55852-.59613.89216c-.1382.33365-.20933.69125-.20933 1.0524 0 .3611.07113.7187.20933 1.0524.1382.3336.34077.6368.59613.8921.25536.2554.55852.4579.89216.5961.33368.1382.69128.2094 1.0524.2094.7293 0 1.4288-.2898 1.9445-.8055.5158-.5157.8055-1.2152.8055-1.9445 0-.72937-.2897-1.4288-.8055-1.9446-.5157-.51572-1.2152-.80546-1.9445-.80546z' fill='%23b2b7c9'/%3E%3C/svg%3E"); + --icon-clip: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m11.75 22c-1.7333 0-3.2083-.6083-4.425-1.825s-1.825-2.6917-1.825-4.425v-9.25c0-1.25.43767-2.3123 1.313-3.187s1.9377-1.3123 3.187-1.313c1.2493-.00067 2.312.437 3.188 1.313s1.3133 1.9383 1.312 3.187v6.5c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0967-.712-.288-.288-.4287-.288-.712v-6.5c-.0167-.7-.2623-1.2917-.737-1.775s-1.0623-.725-1.763-.725c-.70067 0-1.2923.24167-1.775.725s-.72433 1.075-.725 1.775v9.25c-.01667 1.1833.39167 2.1877 1.225 3.013s1.8417 1.2377 3.025 1.237c.2833 0 .55-.0293.8-.088s.4917-.1293.725-.212c.2667-.1.525-.0957.775.013s.425.296.525.562.096.5243-.012.775-.2957.4257-.563.525c-.35.1333-.7123.2377-1.087.313s-.7623.1127-1.163.112zm4.538-1.287c-.192-.192-.288-.4297-.288-.713v-2h-2c-.2833 0-.5207-.096-.712-.288s-.2873-.4293-.288-.712.0953-.52.288-.712.43-.288.712-.288h2v-2c0-.2833.096-.5207.288-.712s.4293-.2873.712-.288.5203.0953.713.288.2883.43.287.712v2h2c.2833 0 .521.096.713.288s.2877.4293.287.712-.0967.5203-.288.713-.4287.2883-.712.287h-2v2c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0957-.712-.287zm-7-4.001c-.192-.1907-.288-.428-.288-.712v-9c0-.28333.096-.52067.288-.712s.42933-.28733.712-.288c.2827-.00067.5203.09533.713.288s.2883.43.287.712v9c0 .2833-.096.521-.288.713s-.4293.2877-.712.287c-.28267-7e-4-.52-.0967-.712-.288zm7-6c-.192-.1913-.288-.4287-.288-.712v-3c0-.28333.096-.52067.288-.712s.4293-.28733.712-.288.5203.09533.713.288.2883.43.287.712v3c0 .2833-.096.521-.288.713s-.4293.2877-.712.287-.52-.0967-.712-.288z' fill='%23AE001B'/%3E%3C/svg%3E"); + --icon-close: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.28393 21.8529L21.8525 7.2843' stroke='%23737785' stroke-width='2' stroke-linecap='round' /%3E%3Cpath d='M21.8528 21.8529L7.28418 7.2843' stroke='%23737785' stroke-width='2' stroke-linecap='round' /%3E%3C/svg%3E"); + --icon-placemark: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4.9367 11.242c.34184.27009.69835.51702 1.0633.75794.36576-.23769.72054-.49062 1.0633-.75794.57144-.44926 1.1092-.93646 1.6094-1.458 1.153-1.2073 2.4042-2.9576 2.4042-4.9223 0-.63846-.13135-1.2707-.38649-1.8605-.25514-.58986-.62907-1.1258-1.1005-1.5773-.47144-.45146-1.0311-.80957-1.6471-1.0539-.61596-.24433-1.2761-.37008-1.9429-.37008-.66671 0-1.3269.12575-1.9429.37008-.61596.24433-1.1756.60244-1.6471 1.0539-.47143.45146-.8454.98742-1.1005 1.5773-.25514.58986-.38646 1.2221-.38646 1.8605 0 1.9647 1.2512 3.7144 2.4042 4.9223.50014.52172 1.0379 1.0086 1.6094 1.458zm1.0633-4.6246c-.48623 0-.95254-.18497-1.2964-.51422-.34382-.32924-.53697-.7758-.53697-1.2414s.19315-.91218.53697-1.2414c.34382-.32924.81013-.51421 1.2964-.51421.48623 0 .95254.18497 1.2964.51421.34382.32925.53697.77581.53697 1.2414s-.19315.91218-.53697 1.2414c-.34382.32925-.81013.51422-1.2964.51422z' fill='%2373798c' stroke-width='.92308'/%3E%3C/svg%3E"); + --icon-cookie: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 22c-1.3833 0-2.6833-.2627-3.9-.788-1.2167-.5254-2.275-1.2377-3.175-2.137-.9-.8994-1.6123-1.9577-2.137-3.175-.52467-1.2174-.78733-2.5174-.788-3.9 0-1.25.24167-2.475.725-3.675s1.1583-2.271 2.025-3.213 1.9083-1.7003 3.125-2.275c1.2167-.57467 2.55-.862 4-.862.35 0 .7083.01666 1.075.05.3667.03333.7417.09166 1.125.175-.15.75-.1 1.4583.15 2.125.25.66666.625 1.2207 1.125 1.662.5.44133 1.096.74566 1.788.913.692.16733 1.4043.12566 2.137-.125-.4333.98333-.3707 1.925.188 2.825.5587.90002 1.3877 1.3666 2.487 1.4.0167.1833.0293.354.038.512s.0127.329.012.513c0 1.3666-.2627 2.654-.788 3.862s-1.2377 2.2663-2.137 3.175c-.8993.9086-1.9577 1.6253-3.175 2.15-1.2173.5246-2.5173.7873-3.9.788zm-1.5-12c.4167 0 .771-.14566 1.063-.437.292-.29133.4377-.64566.437-1.063-7e-4-.41733-.1463-.77133-.437-1.062-.2907-.29067-.645-.43667-1.063-.438-.418-.00134-.772.14466-1.062.438-.29.29333-.436.64733-.438 1.062-.002.41467.144.769.438 1.063s.648.43963 1.062.437zm-2 5c.41667 0 .771-.1457 1.063-.437.292-.2914.4377-.6457.437-1.063-.00067-.4174-.14633-.7714-.437-1.062-.29067-.2907-.645-.4367-1.063-.438-.418-.0014-.772.1446-1.062.438-.29.2933-.436.6473-.438 1.062-.002.4146.144.769.438 1.063s.648.4396 1.062.437zm6.5 1c.2833 0 .521-.096.713-.288s.2877-.4294.287-.712c-7e-4-.2827-.0967-.52-.288-.712s-.4287-.288-.712-.288-.5207.096-.712.288-.2873.4293-.288.712c-7e-4.2826.0953.5203.288.713.1927.1926.43.2883.712.287zm-3 4c2.0333 0 3.8377-.7 5.413-2.1s2.4377-3.1834 2.587-5.35c-.8333-.3667-1.4877-.8667-1.963-1.5-.4753-.6334-.796-1.3417-.962-2.125-1.2833-.18333-2.3833-.73333-3.3-1.65-.9167-.91667-1.4833-2.0167-1.7-3.3-1.3333-.03334-2.504.20833-3.512.725-1.008.51666-1.85 1.1793-2.526 1.988-.676.80866-1.1843 1.6877-1.525 2.637s-.51133 1.841-.512 2.675c0 2.2166.77933 4.1043 2.338 5.663 1.5587 1.5586 3.446 2.3376 5.662 2.337z' fill='%23AE001B'/%3E%3C/svg%3E"); +} + + +// Цвета +:root { + --color-text: #595757; + --color-grey: #eff1f8; + --color-grey-text: #676f8d; + --color-grey-light: #8a8f9f; + --color-grey-dark: #73798c; + --color-dark: #172d38; + --color-light: #fafafa; + --color-red: #ae001b; + --color-red-dark: #9a081e; + --gradient-grey: linear-gradient(180deg, #f5f5f9 0%, #f9f9f9 100%); +} + + +// Размеры +:root { + --fs-h1-sm: #{fluid-clamp(30px, 60px)}; + --fs-h2-sm: #{fluid-clamp(24px, 40px)}; + --fs-h3-sm: #{fluid-clamp(18px, 26px)}; + --fs-h1-lg: #{fluid-clamp(34px, 68px)}; + --fs-h2-lg: #{fluid-clamp(24px, 56px)}; + --fs-h3-lg: #{fluid-clamp(24px, 44px)}; + --fs-title-lg: #{fluid-clamp(20px, 34px)}; + --fs-title-md: #{fluid-clamp(18px, 32px)}; + --fs-title-sm: #{fluid-clamp(16px, 24px)}; + --radius-lg: #{fluid-clamp(20px, 40px)}; + --radius-md: #{fluid-clamp(15px, 30px)}; + --radius-sm: #{fluid-clamp(15px, 20px)}; + --space-section: #{fluid-clamp(40px, 120px)}; +} + + +// Шрифты +@include font("Onest", normal, 400, "../fonts/Onest-Regular.woff2"); +@include font("Onest", normal, 500, "../fonts/Onest-Medium.woff2"); +@include font("Onest", normal, 600, "../fonts/Onest-SemiBold.woff2"); +@include font("Onest", normal, 700, "../fonts/Onest-Bold.woff2"); + + +// Брейкпоинты +$xl: 1280px; +$lg: 1024px; +$md: 768px; +$sm: 576px; \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/scss/_mixins.scss b/wp-content/themes/hantico/assets/scss/_mixins.scss new file mode 100644 index 0000000..e0c50b0 --- /dev/null +++ b/wp-content/themes/hantico/assets/scss/_mixins.scss @@ -0,0 +1,119 @@ +@use "sass:math"; +@use "sass:string"; + + +// Clamp-калькулятор +$fluid-min-vw: 375px !default; +$fluid-max-vw: 1280px !default; +$fluid-base-font-size: 16px !default; + +@function round-to($number, $digits: 4) { + $factor: 1; + @if $digits > 0 { + @for $i from 1 through $digits { + $factor: $factor * 10; + } + } + @return math.div(math.round($number * $factor), $factor); +} + +@function to-rem($value, $base-font-size: $fluid-base-font-size) { + @return math.div($value, $base-font-size) * 1rem; +} + +@function fluid-clamp($min-size, + $max-size, + $min-vw: $fluid-min-vw, + $max-vw: $fluid-max-vw, + $output: px, + $base-font-size: $fluid-base-font-size, + $digits: 4) { + $slope: math.div($max-size - $min-size, $max-vw - $min-vw); + $intercept: $min-size - $slope * $min-vw; + $vw-value: $slope * 100vw; + + @if $output == rem { + $min-size: round-to(to-rem($min-size, $base-font-size), $digits); + $max-size: round-to(to-rem($max-size, $base-font-size), $digits); + $intercept: round-to(to-rem($intercept, $base-font-size), $digits); + $vw-value: round-to($vw-value, $digits); + } + @else if $output == px { + $min-size: round-to($min-size, $digits); + $max-size: round-to($max-size, $digits); + $intercept: round-to($intercept, $digits); + $vw-value: round-to($vw-value, $digits); + } + @else { + @error "$output должен быть px или rem."; + } + + $clamp-min: $min-size; + $clamp-max: $max-size; + + @if $min-size > $max-size { + $clamp-min: $max-size; + $clamp-max: $min-size; + } + + $preferred: null; + + @if $vw-value < 0 { + $preferred: "#{$intercept} - #{$vw-value * -1}"; + } + @else if $vw-value > 0 { + $preferred: "#{$intercept} + #{$vw-value}"; + } + @else { + $preferred: "#{$intercept}"; + } + + @return string.unquote("clamp(#{$clamp-min}, #{$preferred}, #{$clamp-max})"); +} + + +// Расчет ширины слайдов в слайдере +@function slide-size($slides, $gap) { + @if not math.is-unitless($slides) { + @error "$slides должен быть числом без единицы измерения. Например: 2.25"; + } + + @if $slides <= 0 { + @error "$slides должен быть больше 0."; + } + + $gap-total: $gap * ($slides - 1); + + @return string.unquote("calc((100% - #{$gap-total}) / #{$slides})"); +} + + +// Подключение шрифтов +@mixin font($name, $style, $weight, $url) { + @font-face { + font-family: $name; + font-style: $style; + font-weight: $weight; + src: url($url) format("woff2"); + } +} + + +// Медиа-запросы +@mixin media-min($min) { + @media (min-width: $min) { + @content; + } +} + +@mixin media-max($max) { + @media (max-width: #{$max - 0.02px}) { + @content; + } +} + +@mixin media-min-max($min, $max) { + @media (min-width: $min) and (max-width: #{$max - 0.02px}) { + @content; + } +} \ No newline at end of file diff --git a/wp-content/themes/hantico/assets/scss/style.scss b/wp-content/themes/hantico/assets/scss/style.scss new file mode 100644 index 0000000..a3ee788 --- /dev/null +++ b/wp-content/themes/hantico/assets/scss/style.scss @@ -0,0 +1,6556 @@ +@use "mixins" as *; +@use "config" as *; + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +:focus { + outline: none; +} + +:focus-visible { + outline: 2px solid var(--color-red); + outline-offset: -2px; +} + +::placeholder { + color: #8b8f9b; +} + +::selection { + background-color: var(--color-red); + color: #fff; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +html { + height: 100%; + scroll-behavior: smooth; +} + +body { + position: relative; + display: flex; + flex-direction: column; + min-width: 375px; + min-height: 100%; + overflow-x: hidden; + font-family: "Onest"; + font-size: 20px; + line-height: 1.5; + font-weight: normal; + letter-spacing: -0.01em; + color: var(--color-text); + text-decoration-skip-ink: none; + -webkit-tap-highlight-color: transparent; +} + +@include media-max($md) { + body { + font-size: 18px; + } +} + +@include media-max($sm) { + body { + font-size: 15px; + } +} + +main { + display: flex; + flex-direction: column; + flex-grow: 1; +} + +fieldset { + border: none; +} + +input, +textarea { + font: inherit; + color: inherit; + border: none; + background: none; + box-shadow: none; + appearance: none; +} + +input { + &::-webkit-contacts-auto-fill-button, + &::-webkit-credentials-auto-fill-button, + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + position: absolute; + visibility: hidden; + &[type=number] { + -moz-appearance: textfield; + } + } +} + + +.inputs { + input, + textarea { + width: 100%; + outline: none; + font-size: 18px; + line-height: 1.3; + border-radius: 10px; + background-color: #fff; + border: 1px solid #efefef; + &:focus { + border-color: #ccc; + } + } + input { + height: 64px; + padding: 0 20px; + } + textarea { + width: 120px; + padding: 15px 20px; + resize: none; + } +} + +@include media-max($lg) { + .inputs { + input { + height: 60px; + } + } +} + +@include media-max($md) { + .inputs { + input { + height: 56px; + } + } +} + +@include media-max($sm) { + .inputs { + input, + textarea { + font-size: 15px; + } + input { + height: 50px; + } + } +} + + +.file-field { + position: relative; + display: inline-flex; + &__label { + display: inline-flex; + align-items: center; + height: 45px; + padding-inline: 15px; + font-size: 16px; + line-height: 1.2; + color: var(--color-dark); + border-radius: 100px; + background-color: #ececf1; + cursor: pointer; + transition: background-color 0.25s ease; + &::before { + content: ''; + display: block; + width: 24px; + aspect-ratio: 1; + flex-shrink: 0; + background: var(--icon-clip) center no-repeat; + background-size: contain; + } + &:hover { + background-color: #cacdd9; + } + } + &__text { + margin-left: 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + &__input { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + clip-path: inset(50%); + &:focus-visible { + + .file-field__label { + outline: 2px solid var(--color-red); + } + } + } +} + +@include media-max($sm) { + .file-field { + &__label { + height: 40px; + font-size: 13px; + } + } +} + + +button { + font: inherit; + border: none; + background: none; + appearance: none; +} + +img { + display: block; + max-width: 100%; + max-height: 100%; + height: auto; +} + +a { + text-decoration: none; +} + +ul, +ol { + list-style-type: none; +} + +h1 { + font-size: var(--fs-h1-sm); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h2 { + font-size: var(--fs-h2-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h3 { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +h4 { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); +} + +.container { + max-width: 1360px; + width: 100%; + margin: 0 auto; + padding: 0 40px; +} + +@include media-max($xl) { + .container { + padding: 0 20px; + } +} + +@include media-max($sm) { + .container { + padding: 0 15px; + } +} + +.section { + &-title { + margin-bottom: 30px; + text-align: center; + span { + color: var(--color-red); + } + } + &-descr { + margin-bottom: 50px; + text-align: center; + } +} + +@include media-max($lg) { + .section { + &-descr { + margin-bottom: 45px; + } + } +} + +@include media-max($md) { + .section { + &-title { + margin-bottom: 25px; + text-align: center; + } + &-descr { + margin-bottom: 40px; + text-align: center; + } + } +} + +@include media-max($sm) { + .section { + &-title { + margin-bottom: 15px; + text-align: center; + } + &-descr { + margin-bottom: 25px; + text-align: center; + line-height: 1.3; + } + } +} + + +.page { + &-title { + margin-bottom: 50px; + text-align: center; + } +} + +@include media-max($md) { + .page { + &-title { + margin-bottom: 40px; + } + } +} + +@include media-max($sm) { + .page { + &-title { + margin-bottom: 30px; + } + } +} + + +.btn { + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + border-radius: 100px; + font-size: 18px; + line-height: 1.2; + text-align: center; + overflow: hidden; + cursor: pointer; + color: var(--color-text); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; + &--lg { + height: 64px; + padding: 0 30px; + font-size: 20px; + } + &--md { + height: 58px; + padding: 0 25px; + } + &--sm { + height: 50px; + padding: 0 25px; + } + &--red { + color: #fff; + background-color: var(--color-red); + &:hover { + background-color: var(--color-red-dark); + } + } + &--transp-red { + color: var(--color-red); + border: 1px solid rgba(174, 0, 27, 0.5); + &:hover { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); + } + } +} + +@include media-max($lg) { + .btn { + &--lg { + height: 60px; + } + &--md { + height: 54px; + } + } +} + +@include media-max($md) { + .btn { + font-size: 16px; + &--lg { + padding: 0 25px; + height: 56px; + font-size: 18px; + } + &--md { + height: 50px; + } + } +} + +@include media-max($sm) { + .btn { + font-size: 15px; + &--lg { + height: 50px; + padding: 0 20px; + font-size: 16px; + } + &--md, + &--sm { + height: 44px; + padding: 0 20px; + } + } +} + + +.breadcrumbs { + margin-top: 125px; + margin-bottom: fluid-clamp(20px, 65px); + &__inner { + overflow-x: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } + } + &__list { + display: flex; + width: max-content; + } + &__item { + display: flex; + align-items: center; + font-size: 14px; + line-height: 1.2; + &::after { + content: ''; + display: block; + width: 0.6em; + aspect-ratio: 1; + margin-inline: 0.5em; + transform: rotate(180deg); + mask: var(--icon-angle-left) center no-repeat; + -webkit-mask: var(--icon-angle-left) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: #c7c7c7; + } + &.is-active { + &::after { + display: none; + } + span { + color: var(--color-text); + cursor: default; + } + } + } + &__link { + padding-block: 5px; + white-space: nowrap; + color: #a0a0a0; + transition: color 0.25s ease; + } + + section { + margin-top: 0; + } +} + +@include media-max($xl) { + .breadcrumbs { + margin-top: fluid-clamp(65px, 105px); + &__inner { + margin-inline: -20px; + padding-inline: 20px; + } + } +} + +@include media-max($sm) { + .breadcrumbs { + &__inner { + margin-inline: -15px; + padding-inline: 15px; + } + &__item { + font-size: 12px; + } + } +} + +@media (hover: hover) { + .breadcrumbs { + &__link[href]:hover { + color: var(--color-text); + } + } +} + +.single-article .breadcrumbs, +.single-news .breadcrumbs { + margin-bottom: 0; +} + + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0 0 0 0); + white-space: nowrap; + border: 0; +} + +.swiper { + &-slide { + min-width: 0; + height: auto; + } + &-pagination { + position: relative; + display: flex; + max-width: 100%; + width: min-content; + height: 10px; + z-index: 2; + column-gap: 12px; + margin: 40px auto 0; + overflow: hidden; + &-item { + height: 100%; + aspect-ratio: 1; + cursor: pointer; + border-radius: 50%; + background-color: #d9d9d9; + transition: background-color 0.25s ease; + &.is-active { + background-color: var(--color-red); + } + } + &-lock { + display: none; + } + } +} + +@include media-max($xl) { + .swiper { + &:not(.swiper-fade, .swiper-full) { + margin: 0 -20px; + padding: 0 20px; + .swiper-wrapper.is-grid { + column-gap: 20px; + } + } + } +} + +@include media-max($sm) { + .swiper { + &:not(.swiper-fade, .swiper-full) { + margin: 0 -15px; + padding: 0 15px; + .swiper-wrapper.is-grid { + column-gap: 15px; + } + } + &-pagination { + margin-top: 30px; + } + } +} + + +.fancybox { + &__slide { + &.has-html { + padding: 15px; + } + } +} + +.form-fancybox { + .f-html { + opacity: 0; + transform: translate3d(0, -50%, 0); + transition: transform 0.3s ease, opacity 0.3s ease; + &.is-visible { + opacity: 1; + transform: translate3d(0, 0, 0); + } + &.is-hidden { + opacity: 0; + transform: translate3d(0, -50%, 0); + } + &.is-replacing { + opacity: 0; + transform: translate3d(0, 0, 0); + transition: none; + } + &.is-replaced:not(.is-hidden) { + transform: translate3d(0, 0, 0); + } + &.is-replaced.is-hidden { + opacity: 0; + transform: translate3d(0, -50%, 0); + } + } +} + + +.popups { + display: none; +} + +.popup { + position: relative; + max-width: 520px; + width: 100%; + padding-top: fluid-clamp(25px, 50px); + padding-bottom: fluid-clamp(30px, 60px); + padding-inline: fluid-clamp(20px, 45px); + cursor: default; + border-radius: var(--radius-md); + &-title { + font-size: var(--fs-h3-lg); + line-height: 1.1; + font-weight: 700; + text-align: center; + color: var(--color-dark); + } + &-message { + &__info { + margin-top: fluid-clamp(15px, 25px); + line-height: 1.3; + text-align: center; + color: var(--color-text); + } + &__ok { + margin-top: fluid-clamp(25px, 40px); + text-align: center; + &-btn { + width: 165px; + } + } + } + &-close { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + top: 15px; + right: 15px; + cursor: pointer; + mask: var(--icon-close) center no-repeat; + -webkit-mask: var(--icon-close) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-dark); + transition: background-color 0.25s ease; + &:hover { + background-color: var(--color-red); + } + } +} + +@include media-max($lg) { + .popup { + max-width: 480px; + } +} + +@include media-max($md) { + .popup { + &-close { + width: 24px; + height: 24px; + top: 10px; + right: 10px; + } + } +} + +@include media-max($sm) { + .popup { + &-message { + &__ok-btn { + width: 140px; + } + } + } +} + + +.header { + &-main { + position: fixed; + top: 20px; + left: 0; + right: 0; + z-index: 20; + padding-right: var(--f-scrollbar-compensate, 0px); + &__body { + display: grid; + grid-auto-flow: column; + align-items: center; + justify-content: space-between; + column-gap: 25px; + padding: 10px 10px 10px 20px; + border-radius: 100px; + border: 1px solid #f0f0f0; + background-color: #fff; + } + } + &-logo { + flex-shrink: 0; + &__link { + display: block; + padding-top: 5px; + img { + width: 122px; + } + } + } + &-menu { + &__item { + position: relative; + min-width: 0; + font-size: 18px; + line-height: 1.2; + } + &__link { + display: block; + padding: 10px 0; + color: var(--color-text); + transition: color 0.25s ease; + &:not([href]) { + cursor: default; + } + } + &__submenu-toggle { + display: none; + } + &__submenu { + opacity: 0; + visibility: hidden; + li { + font-size: 16px; + } + a { + padding: 8px 0; + } + } + } + &-buttons { + display: grid; + grid-auto-flow: column; + align-items: center; + column-gap: 30px; + &__login-btn { + padding: 10px 0; + border-radius: 0; + &::before { + content: ''; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: background-color 0.25s ease; + } + &:hover { + color: var(--color-red); + &::before { + background-color: var(--color-red); + } + } + } + &__download-btn { + height: 50px; + padding: 0 25px; + } + &__menu-btn { + display: none; + align-content: center; + row-gap: 13%; + width: 44px; + aspect-ratio: 1; + border-radius: 50%; + border: 1px solid #eee; + transition: row-gap 0.25s ease; + span, + &::before, + &::after { + content: ''; + display: block; + width: 55%; + height: 1.5px; + margin: 0 auto; + border-radius: 10px; + transform: translateY(50%); + background-color: #535369; + transition: all 0.25s ease; + } + &::after { + transform: translateY(50%) scaleX(65%); + transform-origin: 0 50%; + } + &.is-active { + row-gap: 0; + span { + width: 0; + background-color: transparent; + } + &::before { + transform: rotate(45deg) translate(1px, 1px); + } + &::after { + transform: rotate(-45deg) translate(1px, -1px); + transform-origin: 50% 50%; + } + } + } + } + &-dropdown { + position: fixed; + display: none; + align-items: unset; + height: 100%; + top: 0; + left: 0; + right: 0; + z-index: 10; + padding: 120px 0 40px; + overflow-x: hidden; + overflow-y: auto; + transform: translateY(-100%); + background-color: #fff; + transition: transform 0.4s ease-in-out; + &.is-active { + transform: translateY(0); + } + } + &-login__btn { + width: 100%; + color: var(--color-grey-text); + background-color: #f4f5fc; + &::before { + content: ''; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); + transition: background-color 0.25s ease; + } + &:hover { + background-color: #ebecf2; + } + } +} + +@include media-min($lg) { + .header-menu { + &__list { + display: grid; + align-items: center; + grid-auto-flow: column; + column-gap: 30px; + > li { + &.has-children { + &::after { + content: ''; + position: absolute; + display: block; + width: 10px; + height: 10px; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + pointer-events: none; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: background-color 0.25s ease; + } + > a { + padding-right: 14px; + } + } + > a { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + &:hover { + &::after { + background-color: var(--color-red); + } + > a { + color: var(--color-red); + } + > ul { + visibility: visible; + opacity: 1; + } + } + } + } + &__submenu { + position: absolute; + min-width: 200px; + max-width: 265px; + width: max-content; + top: calc(100% + 22px); + left: 0; + padding: 18px 30px; + z-index: 2; + border-radius: 20px; + background-color: var(--color-grey); + transition: visibility 0.25s ease, opacity 0.25s ease; + transition-delay: 0.02s; + &::before { + content: ''; + position: absolute; + display: block; + width: 100%; + height: 22px; + bottom: 100%; + left: 0; + } + a { + color: var(--color-grey-dark); + &:hover { + color: var(--color-grey-light); + } + } + } + } +} + +@include media-max($xl) { + .header { + &-main { + display: flex; + height: fluid-clamp(50px, 70px); + top: 0; + border-bottom: 1px solid #efefef; + background-color: #fff; + &__body { + height: 100%; + padding: 0; + border-radius: 0; + background: none; + border: none; + } + } + &-logo { + &__link { + padding-left: 0; + } + } + } +} + +@include media-max($lg) { + .header { + &-main { + .header-menu { + display: none; + } + } + &-buttons { + column-gap: 10px; + &__login-btn { + display: none; + } + &__download-btn { + height: 44px; + } + &__menu-btn { + display: grid; + } + } + &-dropdown { + display: block; + } + &-menu { + margin-top: 40px; + &__list { + > li { + &.has-children { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + } + &.is-open { + > a { + color: var(--color-red); + } + > button { + transform: rotate(-180deg); + background-color: var(--color-red); + } + > ul { + opacity: 1; + visibility: visible; + } + } + } + } + &__submenu-toggle { + display: block; + width: 32px; + height: 32px; + margin: auto 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: 10px; + -webkit-mask-size: 10px; + background-color: var(--color-text); + transition: transform 0.25s ease, background-color 0.25s ease; + } + &__submenu { + grid-column: 1/-1; + height: 0; + overflow: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + &::before, + &::after { + content: ''; + display: block; + height: 2px; + } + } + } + } +} + +@include media-max($md) { + .header { + &-buttons { + &__menu-btn { + width: 40px; + } + &__download-btn { + height: 40px; + padding: 0 20px; + } + } + &-dropdown { + padding: 110px 0 35px; + } + &-menu { + margin-top: 35px; + } + } +} + +@include media-max($sm) { + .header { + &-logo__link img { + width: 100px; + } + &-buttons { + column-gap: 8px; + &__menu-btn { + width: 36px; + } + &__download-btn { + height: 36px; + padding: 0 15px; + font-size: 14px; + } + } + &-dropdown { + padding: 95px 0 30px; + } + &-menu { + margin-top: 30px; + &__item { + font-size: 16px; + } + &__submenu li { + font-size: 15px; + } + } + } +} + + +.hero { + overflow: hidden; + &-main { + background: linear-gradient(145deg, #f5f5f9 0%, #f5f5f9 50%, #fff5e7 100%); + &__body { + position: relative; + display: grid; + grid-template-columns: fluid-clamp(450px, 650px, 768px) auto; + column-gap: 40px; + padding: 160px 0 50px; + z-index: 1; + } + &__left { + position: relative; + min-height: fluid-clamp(550px, 650px, 1024px); + &::before { + content: ''; + position: absolute; + display: block; + width: 80%; + height: 110%; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + z-index: -1; + filter: blur(8px); + background: url(../img/bg/logo-bg.svg) center no-repeat; + background-size: contain; + } + } + } + &-title { + font-size: var(--fs-h1-lg); + span { + color: var(--color-red); + } + } + &-descr { + max-width: 90%; + margin-top: 20px; + span { + display: inline-block; + } + } + &-buttons { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 12px; + row-gap: 8px; + margin-top: 50px; + } + &-qrcode { + display: grid; + grid-auto-flow: column; + justify-content: start; + align-items: center; + column-gap: 20px; + margin-top: 50px; + &__img { + display: flex; + width: fluid-clamp(90px, 110px, 1024px); + aspect-ratio: 1; + padding: 8px; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; + img { + width: 100%; + } + } + &__info { + font-size: 14px; + line-height: 1.2; + color: #5d5e5f; + } + } + &-stores { + display: grid; + grid-auto-flow: column; + justify-content: start; + align-items: center; + column-gap: 20px; + margin-top: 50px; + } + &-store { + position: relative; + display: flex; + align-items: center; + padding-right: 20px; + &::after { + content: ''; + position: absolute; + display: block; + width: 1px; + height: 10px; + right: -1px; + top: 0; + bottom: 0; + margin: auto 0; + background-color: #dedede; + } + &:last-child { + padding-right: 0; + &::after { + display: none; + } + } + &:hover { + .hero-store__name { + color: var(--color-text); + } + } + &__icon { + display: flex; + width: 24px; + aspect-ratio: 1; + } + &__name { + margin-left: 5px; + margin: 2px 0 0 5px; + font-size: 14px; + line-height: 1.2; + font-weight: 500; + color: #000; + transition: color 0.25s ease; + } + } + &-img { + position: absolute; + width: fluid-clamp(375px, 840px); + right: 0; + bottom: 0; + z-index: -1; + user-select: none; + -webkit-user-select: none; + } + &-features { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: flex-end; + height: 100%; + } + &-feature { + display: flex; + align-items: center; + height: 64px; + padding: 10px 20px 10px 10px; + border-radius: 100px; + border: 1px solid #ececec; + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + background: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0) 100%); + &:nth-child(1) { + margin: 0 0 40% 40px; + } + &:nth-child(3) { + margin: 40px 0 14% auto; + } + &__icon { + display: flex; + flex-shrink: 0; + width: 36px; + aspect-ratio: 1; + } + &__img { + display: flex; + flex-shrink: 0; + height: 100%; + img { + width: auto; + } + } + &__title { + margin-left: 10px; + font-weight: 500; + font-size: 18px; + line-height: 1.2; + color: rgba(26, 20, 20, 0.8); + } + } + &-scroller { + overflow: hidden; + background-color: var(--color-dark); + &__track { + display: flex; + align-items: center; + width: max-content; + height: 54px; + } + &__group { + display: flex; + white-space: nowrap; + will-change: transform; + } + &__item { + position: relative; + padding-right: 40px; + margin-right: 40px; + font-weight: 600; + font-size: 18px; + line-height: 1.2; + color: #fff; + &::after { + content: ''; + position: absolute; + display: block; + width: 6px; + height: 6px; + right: 0; + top: 0; + bottom: 0; + margin: auto 0; + border-radius: 50%; + transform: translateX(50%); + background-color: var(--color-red); + } + } + } + &-footer { + .hero-stores { + display: none; + } + } +} + +@include media-max($xl) { + .hero { + &-main { + &__body { + padding-top: fluid-clamp(75px, 140px); + } + } + } +} + +@include media-max($lg) { + .hero { + &-main { + &__body { + padding-bottom: fluid-clamp(70px, 100px, 768px, 1024px); + } + &__left { + min-height: fluid-clamp(420px, 480px, 768px, 1024px); + } + .hero-stores { + display: none; + } + } + &-buttons { + grid-auto-flow: row; + justify-content: unset; + max-width: 280px; + } + &-qrcode { + display: none; + } + &-feature { + height: 50px; + &:nth-child(1) { + margin-left: 0; + } + &:nth-child(2) { + margin-left: -40px; + } + &:nth-child(3) { + margin-bottom: 0; + } + &__icon { + width: 28px; + } + &__title { + font-size: 16px; + } + } + &-scroller { + &__track { + height: 48px; + } + &__item { + padding-right: 35px; + margin-right: 35px; + font-size: 16px; + } + } + &-footer { + .hero-stores { + display: grid; + } + } + &-stores { + justify-content: center; + } + } +} + +@include media-max($md) { + .hero { + &-main { + &__body { + grid-template-columns: 1fr; + padding-bottom: 0; + } + &__left { + min-height: unset; + &::before { + display: none; + } + } + &__right { + position: relative; + display: flex; + justify-content: center; + margin-top: 40px; + } + } + &-buttons { + max-width: unset; + margin-top: 30px; + } + &-features { + position: absolute; + justify-content: center; + width: fluid-clamp(345px, 480px, 375px, 768px); + margin: 0 auto; + top: 0; + left: 0; + right: 0; + } + &-feature { + padding: 8px 12px 8px 8px; + height: 44px; + &:nth-child(1) { + margin: 0 0 25% 60px; + } + &:nth-child(2) { + margin-left: 0; + } + &__icon { + width: 24px; + } + &__title { + margin-left: 8px; + font-size: 14px; + } + } + &-img { + position: relative; + } + &-scroller { + &__track { + height: 42px; + } + &__item { + padding-right: 30px; + margin-right: 30px; + font-size: 14px; + &::after { + width: 4px; + height: 4px; + } + } + } + &-stores { + column-gap: 15px; + margin-top: 40px; + } + &-store { + padding-right: 15px; + &__icon { + width: 20px; + } + &__name { + font-size: 12px; + } + } + } +} + +@include media-max($sm) { + .hero { + &-img { + margin: 0 -15px; + } + &-feature { + padding: 6px 12px 6px 6px; + height: 36px; + &__icon { + width: 20px; + } + &__title { + font-size: 12px; + } + } + &-scroller { + &__track { + height: 36px; + } + &__item { + padding-right: 25px; + margin-right: 25px; + font-size: 12px; + } + } + &-stores { + column-gap: 12px; + margin-top: 30px; + } + &-store { + padding-right: 12px; + &__icon { + width: 16px; + } + &__name { + margin-left: 4px; + font-size: 10px; + } + } + } +} + + +.services { + margin-top: 70px; + &-body { + display: flex; + flex-direction: column; + } + &-title { + order: 2; + margin-top: 30px; + font: inherit; + text-align: center; + color: var(--color-text); + } + &-grid { + --item-size: 70px; + --gap-min: 20px; + --gap-max: 70px; + display: flex; + justify-content: space-between; + width: min(100%, calc(var(--items) * var(--item-size) + (var(--items) - 1) * var(--gap-max))); + margin: 0 auto; + gap: var(--gap-min); + } + &-item { + display: flex; + width: var(--item-size); + aspect-ratio: 1; + } +} + +@include media-max($lg) { + .services { + margin-top: 60px; + } +} + +@include media-max($md) { + .services { + margin-top: 50px; + &-grid { + --item-size: 60px; + flex-wrap: wrap; + justify-content: center; + max-width: calc(var(--item-size) * 5 + var(--gap-min) * 4); + width: auto; + } + } +} + +@include media-max($sm) { + .services { + margin-top: 40px; + &-title { + margin-top: 25px; + } + &-grid { + --item-size: 50px; + --gap-min: 8px; + } + } +} + + +.work { + &--block { + margin-top: var(--space-section); + } + &-grid { + display: grid; + row-gap: 30px; + } + &-item { + display: grid; + grid-template-columns: 1.1fr 1fr; + column-gap: 40px; + padding-top: fluid-clamp(25px, 50px); + padding-bottom: fluid-clamp(25px, 65px); + padding-inline: fluid-clamp(20px, 65px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); + &__title { + font-size: var(--fs-h3-lg); + font-weight: 700; + line-height: 1.1; + color: var(--color-dark); + } + &__list { + display: grid; + row-gap: 0.6em; + margin-top: 30px; + line-height: 1.3; + } + &__li { + position: relative; + padding-left: 1.5em; + &::before { + content: ''; + position: absolute; + display: block; + width: 1em; + aspect-ratio: 1; + top: 0.15em; + left: 0; + background: var(--icon-checkmark) center no-repeat; + background-size: contain; + } + } + &__buttons { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 12px; + row-gap: 8px; + margin-top: 40px; + } + &__img { + aspect-ratio: 1024/680; + align-self: center; + margin: -10px 0 -20px; + img { + width: 100%; + height: 100%; + object-fit: contain; + } + } + } +} + +@include media-max($lg) { + .work { + &-grid { + row-gap: 20px; + } + &-item { + grid-template-columns: 1fr 1.1fr; + &__list { + margin-top: 20px; + } + &__buttons { + grid-auto-flow: row; + justify-content: unset; + max-width: 280px; + margin-top: 30px; + } + &__img { + margin: 0; + } + } + } +} + +@include media-max($md) { + .work { + &-item { + grid-template-columns: 1fr; + &__buttons { + max-width: unset; + } + &__img { + margin-top: 40px; + } + } + } +} + +@include media-max($sm) { + .work { + &-grid { + row-gap: 10px; + } + &-item { + &__img { + margin-top: 30px; + } + } + } +} + + +.advantages { + margin-top: var(--space-section); + &-slider { + counter-reset: num; + &__wrapper.is-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: 1fr; + gap: 20px; + } + } + &-item { + padding: 30px 30px 35px; + counter-increment: num; + border-radius: var(--radius-lg); + background: var(--gradient-grey); + &::before { + content: counter(num, decimal-leading-zero); + position: absolute; + display: block; + top: 30px; + right: 30px; + font-size: 0.9em; + line-height: 1; + color: #b6b6c5; + } + &__icon { + display: flex; + width: 50px; + aspect-ratio: 1; + } + &__title { + min-height: 2.2em; + margin-top: 25px; + font-size: var(--fs-h3-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-dark); + } + &__descr { + margin-top: 15px; + line-height: 1.4; + } + } +} + +@include media-max($lg) { + .advantages { + &-slider { + &__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: slide-size(2.25, 20px); + } + } + } +} + +@include media-max($md) { + .advantages { + &-slider { + &__wrapper.is-grid { + grid-auto-columns: slide-size(1.25, 15px); + } + } + &-item { + &__icon { + width: 44px; + } + &__title { + font-size: var(--fs-title-sm); + } + &__descr { + line-height: 1.3; + } + } + } +} + +@include media-max($sm) { + .advantages { + &-item { + padding: 20px; + &::before { + top: 20px; + right: 20px; + } + &__icon { + width: 40px; + } + &__title { + margin-top: 15px; + } + &__descr { + margin-top: 10px; + } + } + } +} + + +.scheme { + margin-top: var(--space-section); + padding-top: fluid-clamp(40px, 80px); + padding-bottom: fluid-clamp(40px, 100px); + background-color: var(--color-dark); + &-title, + &-descr { + color: #fff; + } + &-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 20px; + counter-reset: num; + } + &-item { + padding: 30px 25px; + counter-increment: num; + border-radius: var(--radius-md); + background-color: #fff; + &__top, + &__img { + display: flex; + aspect-ratio: 1.3/1; + } + &__top { + flex-direction: column; + min-height: 0; + } + &__img { + align-items: flex-start; + justify-content: center; + img { + width: var(--img-width); + } + } + &__qrcode { + display: flex; + align-self: flex-start; + min-height: 0; + padding: 8px; + aspect-ratio: 1; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; + img { + width: 100%; + } + } + &__login { + margin-top: 12px; + &-btn { + width: 100%; + height: 44px; + font-size: 16px; + color: var(--color-grey-text); + border: 1px solid #ececec; + &::before { + content: ''; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); + } + &:hover { + background-color: #f4f5fc; + border-color: #f4f5fc; + } + } + } + &__title { + margin-top: 20px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-dark); + &::before { + content: counter(num) '.'; + display: block; + margin-bottom: 20px; + color: var(--color-red); + } + } + &__descr { + margin-top: 20px; + font-size: 18px; + line-height: 1.3; + } + } +} + +@include media-max($lg) { + .scheme { + &-grid { + grid-template-columns: 1fr 1fr; + } + &-item { + &__top, + &__img { + aspect-ratio: 3.5/1; + } + &__top { + flex-direction: row; + align-items: flex-end; + column-gap: 20px; + } + &__qrcode { + height: 100%; + } + &__login { + flex: 1; + margin-top: 0; + } + &__img img { + height: 100%; + } + &__title { + br { + display: none; + } + } + } + } +} + +@include media-max($md) { + .scheme { + &-grid { + grid-template-columns: 1fr; + } + &-item { + display: grid; + grid-template-columns: 1.8fr 1fr; + column-gap: 30px; + &:first-child { + grid-template-columns: 1fr; + } + &__top, + &__img { + aspect-ratio: unset; + } + &__top { + order: 3; + margin-top: 30px; + } + &__qrcode { + display: none; + } + &__img { + grid-column: 2/3; + grid-row: 1/3; + img { + width: 100%; + height: auto; + } + } + &__title { + margin-top: 0; + } + } + } +} + +@include media-max($sm) { + .scheme { + &-grid { + row-gap: 8px; + } + &-item { + column-gap: 15px; + padding: 20px; + &__top { + margin-top: 15px; + } + &__login-btn { + height: 40px; + font-size: 15px; + } + &__title::before { + margin-bottom: 10px; + } + &__descr { + margin-top: 10px; + font-size: 15px; + } + } + } +} + + +.income { + margin-top: var(--space-section); + &-calc { + display: grid; + grid-template-columns: 1fr 1.15fr; + column-gap: fluid-clamp(40px, 100px, 1024px); + line-height: 1.2; + &--single { + .income-calc__top { + display: none; + } + } + &__top { + display: flex; + justify-content: center; + grid-column: 1/-1; + margin-bottom: 40px; + } + &__types { + display: grid; + grid-auto-flow: column; + column-gap: 6px; + padding: 6px; + border-radius: 100px; + border: 1px solid #ebebf1; + } + &__type { + position: relative; + &--taxi span::before { + mask-image: var(--icon-car); + -webkit-mask-image: var(--icon-car); + } + &--courier span::before { + mask-image: var(--icon-bike); + -webkit-mask-image: var(--icon-bike); + } + &--cargo span::before { + mask-image: var(--icon-truck); + -webkit-mask-image: var(--icon-truck); + } + &-input { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; + cursor: pointer; + border-radius: 100px; + &:checked { + + span { + color: #fff; + background-color: var(--color-dark); + &::before { + background-color: #fff; + } + } + } + } + &-label { + display: flex; + align-items: center; + padding: 8px 15px; + font-size: 18px; + font-weight: 500; + border-radius: 100px; + transition: color 0.25s ease, background-color 0.25s ease; + &::before { + content: ''; + display: block; + width: 24px; + aspect-ratio: 1; + margin-right: 6px; + mask-position: center; + -webkit-mask-position: center; + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: #cacada; + transition: background-color 0.25s ease; + } + } + } + &__controls { + min-width: 0; + } + &__range { + margin-bottom: 40px; + &-top { + display: flex; + align-items: center; + justify-content: space-between; + } + &-value { + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.1; + color: var(--color-red); + } + &-number { + font-size: 1.5em; + } + &-input { + --range-track-height: 3px; + --range-thumb-width: 32px; + --range-thumb-height: 22px; + --range-progress: 0%; + display: block; + width: 100%; + height: var(--range-thumb-height); + margin-top: 12px; + cursor: pointer; + &::-webkit-slider-runnable-track { + height: var(--range-track-height); + border-radius: 100px; + background: linear-gradient(to right, + var(--color-red) 0%, + var(--color-red) var(--range-progress), + #dedede var(--range-progress), + #dedede 100%); + } + &::-webkit-slider-thumb { + width: var(--range-thumb-width); + height: var(--range-thumb-height); + margin-top: calc((var(--range-track-height) - var(--range-thumb-height)) / 2); + border: 3px solid #fff; + border-radius: 100px; + background: var(--color-red); + box-shadow: 10px 4px 24px 0 #c4c4d7; + box-sizing: border-box; + appearance: none; + } + &::-moz-range-track { + height: var(--range-track-height); + border-radius: 100px; + background: #dedede; + } + &::-moz-range-progress { + height: var(--range-track-height); + border-radius: 100px; + background: var(--color-red); + } + &::-moz-range-thumb { + width: var(--range-thumb-width); + height: var(--range-thumb-height); + border: 3px solid #fff; + border-radius: 100px; + background: var(--color-red); + box-shadow: 10px 4px 24px 0 #c4c4d7; + box-sizing: border-box; + cursor: pointer; + } + &:focus { + outline: none; + } + &:focus-visible::-webkit-slider-thumb { + outline: 2px solid var(--color-red); + } + &:focus-visible::-moz-range-thumb { + outline: 2px solid var(--color-red); + } + } + } + &__radios { + min-width: 0; + &-label { + margin-bottom: 20px; + } + &-wrapper { + overflow-x: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } + } + &-inner { + display: grid; + justify-content: start; + grid-auto-flow: column; + column-gap: 6px; + width: max-content; + } + } + &__radio { + position: relative; + white-space: nowrap; + &-input { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + z-index: 1; + cursor: pointer; + border-radius: 100px; + &:checked { + + span { + color: #fff; + background-color: var(--color-dark); + &::before { + background-color: #fff; + } + } + } + } + &-label { + display: flex; + align-items: center; + padding: 10px 12px; + font-weight: 500; + font-size: 18px; + border-radius: 100px; + border: 1px solid #e2e2e2; + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; + } + } + } + &-result { + padding: 30px; + overflow: hidden; + border-radius: var(--radius-md); + color: #fff; + background-color: var(--color-red); + &__main { + min-width: 0; + } + &__total { + display: block; + margin-top: 25px; + font-size: var(--fs-h1-sm); + font-weight: 600; + line-height: 1.1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + &__note { + margin-top: 5px; + font-size: 18px; + } + &__stats { + display: grid; + grid-template-columns: 1.35fr 1.5fr 1fr; + column-gap: 20px; + margin-top: 25px; + padding-top: 20px; + border-top: 1px solid #b9354a; + } + &__stat { + min-width: 0; + &-label { + font-size: 16px; + opacity: 0.6; + } + &-value { + display: block; + margin-top: 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: var(--fs-title-md); + font-weight: 600; + line-height: 1.1; + } + } + } + &-footnote { + margin-top: 40px; + font-size: 13px; + line-height: 1.2; + text-align: center; + } +} + +@include media-max($xl) { + .income { + &-calc { + &__radio-label { + font-size: 16px; + } + } + } +} + +@include media-max($lg) { + .income { + &-calc { + grid-template-columns: 1fr; + &__range { + margin-bottom: 30px; + } + &__radios-wrapper { + margin-inline: -20px; + padding-inline: 20px; + } + } + &-result { + display: grid; + align-items: center; + grid-template-columns: 1fr 1.5fr; + column-gap: 30px; + margin-top: 45px; + &__total { + margin-top: 10px; + } + &__stats { + margin-top: 0; + padding-top: 0; + border: none; + } + } + } +} + +@include media-max($md) { + .income { + &-descr br { + display: none; + } + &-calc { + &__type { + &-label { + font-size: 16px; + &::before { + width: 22px; + } + } + } + } + &-result { + grid-template-columns: 1fr; + &__stats { + margin-top: 20px; + padding-top: 15px; + border-top: 1px solid #b9354a; + } + } + } +} + +@include media-max($sm) { + .income { + &-calc { + &__top { + margin-bottom: 30px; + } + &__types { + column-gap: 0; + } + &__type { + &-label { + padding: 8px 10px; + font-size: 14px; + &::before { + width: 18px; + } + } + } + &__range { + margin-bottom: 20px; + &-input { + margin-top: 6px; + } + } + &__radios { + &-label { + margin-bottom: 15px; + } + &-wrapper { + margin-inline: -15px; + padding-inline: 15px; + } + } + &__radio-label { + font-size: 14px; + } + } + &-result { + margin-top: 35px; + padding: 20px; + &__note { + font-size: 15px; + } + &__stats { + margin-top: 17px; + } + &__stat-label { + font-size: 15px; + } + } + &-footnote { + margin-top: 30px; + font-size: 12px; + } + } +} + + +.socials { + margin-top: var(--space-section); + padding-top: fluid-clamp(40px, 80px); + background: var(--gradient-grey); + &-title { + text-align: center; + } + &-body { + display: grid; + grid-template-columns: 1.15fr 1fr; + column-gap: fluid-clamp(40px, 115px, 768px); + margin-top: fluid-clamp(25px, 50px); + } + &-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; + margin-top: fluid-clamp(25px, 50px, 1024px); + } + &-item { + display: grid; + align-items: center; + grid-template-columns: auto 1fr; + column-gap: 25px; + padding: 15px 30px; + border-radius: 15px; + color: var(--main-color); + background-color: #fff; + transition: color 0.25s ease, background-color 0.25s ease; + &:hover { + color: #fff; + background-color: var(--main-color); + .socials-item__icon { + &::before, + &::after { + background-color: #fff; + } + } + } + &__icon { + display: flex; + align-items: flex-start; + &::before { + content: ''; + display: block; + width: 32px; + height: 32px; + background-color: var(--icon-color); + mask: var(--social-icon) center no-repeat; + -webkit-mask: var(--social-icon) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + transition: background-color 0.25s ease; + } + } + &__name { + font-size: 18px; + line-height: 1.2; + } + &--vk { + --main-color: #366cfe; + --icon-color: currentColor; + --social-icon: url(../img/icons/vk.svg); + } + &--instagram { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/instagram.svg); + } + &--youtube { + --main-color: #e80b2e; + --icon-color: currentColor; + --social-icon: url(../img/icons/youtube.svg); + } + &--threads { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/threads.svg); + } + &--tiktok { + --main-color: #000; + --icon-color: currentColor; + --social-icon: url(../img/icons/tiktok.svg); + } + &--telegram { + --main-color: #3292dd; + --icon-color: currentColor; + --social-icon: url(../img/icons/telegram.svg); + } + &--dzen { + --main-color: #000; + --icon-color: #2c3036; + --social-icon: url(../img/icons/dzen.svg); + } + &--rutube { + --main-color: #0e0333; + --icon-color: currentColor; + --social-icon: url(../img/icons/rutube.svg); + .socials-item__icon::after { + content: ''; + display: block; + width: 8px; + aspect-ratio: 1; + border-radius: 50%; + background-color: #ed143b; + transition: background-color 0.25s ease; + } + } + } + &-footnote { + margin-block: fluid-clamp(30px, 60px, 1024px); + font-size: 11px; + line-height: 1.2; + } + &-img { + display: flex; + align-items: flex-end; + img { + width: 100%; + } + } +} + +@include media-max($lg) { + .socials { + &-grid { + margin-top: 0; + } + &-item { + column-gap: 15px; + padding: 10px 15px; + border-radius: 10px; + } + } +} + +@include media-max($md) { + .socials { + &-body { + grid-template-columns: 1fr; + } + &-footnote { + margin-bottom: 0; + } + &-img { + width: fluid-clamp(345px, 600px, 375px, 768px); + margin: 40px auto 0; + } + } +} + +@include media-max($sm) { + .socials { + &-item { + column-gap: 10px; + &__icon { + &::before { + width: 28px; + height: 28px; + } + } + &__name { + font-size: 16px; + } + &--rutube { + .socials-item__icon::after { + width: 6px; + } + } + } + &-footnote { + margin-top: 20px; + } + &-img { + margin-top: 30px; + } + } +} + + +.reviews { + &--block { + margin-top: var(--space-section); + } + &-slider { + -webkit-text-size-adjust: 100%; + &__container { + padding: 0 20px; + } + &__wrapper { + width: fit-content; + margin-inline: auto; + &.is-grid { + display: grid; + justify-content: center; + grid-auto-flow: column; + column-gap: 20px; + } + } + &__bottom { + margin-top: 60px; + &:has(.swiper-pagination-lock) { + display: none; + } + } + &__pagination { + display: flex; + height: 2px; + &-item { + flex: 1; + height: 100%; + background-color: #e2e2e2; + transition: background-color 0.25s ease; + &.is-active { + background-color: var(--color-grey-dark); + } + } + } + } + &-grid { + display: grid; + row-gap: fluid-clamp(30px, 80px); + padding-top: 10px; + } + &-slide { + display: flex; + flex-direction: column; + width: 414px; + &:last-child { + margin-right: 0 !important; + } + &__img { + position: relative; + aspect-ratio: 768/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + &__info { + display: flex; + flex-direction: column; + flex: 1; + } + &__user { + margin-top: 25px; + padding-right: 20px; + line-height: 1.1; + &-name { + font-size: var(--fs-title-sm); + font-weight: 600; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-dark); + } + &-descr { + margin-top: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + &__comment { + display: flex; + flex-direction: column; + flex: 1; + margin-top: 30px; + padding: 25px; + font-size: 18px; + border-radius: var(--radius-sm); + background-color: #f6f6f6; + &::before { + content: ''; + display: block; + width: 24px; + aspect-ratio: 1; + background: var(--icon-quotes) center no-repeat; + background-size: contain; + } + &-text { + margin: 15px 0 auto; + } + &-link { + align-self: flex-start; + margin-top: 10px; + color: var(--color-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } + } + &-item { + display: grid; + grid-template-columns: fluid-clamp(300px, 414px, 768px) 1fr; + column-gap: fluid-clamp(30px, 70px, 768px); + &__img { + position: relative; + aspect-ratio: 768/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + &__user { + line-height: 1.1; + &-name { + font-size: var(--fs-title-sm); + font-weight: 600; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-dark); + } + &-descr { + margin-top: 15px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + &__comment { + margin-top: 30px; + padding: 25px; + font-size: 18px; + border-radius: var(--radius-sm); + background-color: #f6f6f6; + &::before { + content: ''; + display: block; + width: 24px; + aspect-ratio: 1; + margin-bottom: 15px; + mask: var(--icon-quotes) center no-repeat; + -webkit-mask: var(--icon-quotes) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-red); + } + &-text { + margin-top: 15px; + } + &-link { + display: inline-block; + margin-top: 10px; + color: var(--color-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } + } + &-showmore { + margin-top: fluid-clamp(30px, 80px); + text-align: center; + &.is-hidden { + display: none; + } + &__btn { + max-width: 265px; + width: 100%; + } + } +} + +@include media-max($xl) { + .reviews { + &-slider { + &__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: slide-size(3, 20px); + justify-content: unset; + column-gap: 20px; + } + } + &-slide { + width: 100%; + } + } +} + +@include media-max($lg) { + .reviews { + &-slider { + &__wrapper.is-grid { + grid-auto-columns: slide-size(2.25, 20px); + } + } + &-grid { + padding-top: 0; + } + } +} + +@include media-max($md) { + .reviews { + &-slider { + &__wrapper.is-grid { + grid-auto-columns: slide-size(1.25, 15px); + } + &__bottom { + margin-top: 50px; + } + } + &-item { + grid-template-columns: 1fr; + &__user { + margin-top: 25px; + padding-right: 20px; + } + } + &-showmore { + &__btn { + max-width: unset; + } + } + } +} + +@include media-max($sm) { + .reviews { + &-slider { + &__container { + padding: 0 15px; + } + &__wrapper.is-grid { + column-gap: 15px; + } + &__bottom { + margin-top: 30px; + } + } + &-slide { + &__user { + margin-top: 20px; + padding-right: 15px; + &-descr { + margin-top: 10px; + } + } + &__comment { + margin-top: 25px; + padding: 20px; + font-size: 15px; + &::before { + width: 20px; + } + &-text { + margin-top: 10px; + } + } + } + &-item { + &__user { + margin-top: 20px; + padding-right: 15px; + &-descr { + margin-top: 10px; + } + } + &__comment { + margin-top: 25px; + padding: 20px; + font-size: 15px; + &::before { + width: 20px; + margin-bottom: 10px; + } + } + } + } +} + + +.payments { + margin-top: var(--space-section); + &-body { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + padding-top: fluid-clamp(25px, 60px); + border-radius: var(--radius-lg); + background: linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); + } + &-header { + width: fluid-clamp(300px, 800px); + z-index: 1; + } + &-descr { + margin-bottom: 0; + } + &-images { + margin-top: fluid-clamp(60px, 90px, 768px); + &__phone { + display: flex; + width: fluid-clamp(240px, 360px); + overflow: hidden; + img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: 50% 0; + } + } + &__messages img { + position: absolute; + &:nth-child(1) { + width: 24%; + left: 5%; + bottom: 46%; + } + &:nth-child(2) { + width: 19%; + left: 7%; + bottom: 7%; + } + &:nth-child(3) { + width: 19%; + right: 9%; + bottom: 42%; + } + } + &__coins img { + position: absolute; + &:nth-child(1) { + width: 9%; + left: 5%; + top: 10%; + } + &:nth-child(2) { + width: 6%; + right: 7%; + top: 14%; + } + &:nth-child(3) { + width: 16%; + right: 4%; + bottom: 4%; + } + } + } +} + +@include media-max($md) { + .payments { + &-images { + margin-top: 90px; + &__phone { + aspect-ratio: 240/260; + } + &__messages img { + &:nth-child(1) { + width: 33%; + top: 32%; + bottom: unset; + } + &:nth-child(2) { + width: 31%; + top: 30%; + right: 5%; + left: unset; + bottom: unset; + } + &:nth-child(3) { + display: none; + } + } + &__coins img { + &:nth-child(1) { + max-width: 90px; + width: 18%; + left: 4%; + bottom: 25%; + top: unset; + } + &:nth-child(2) { + max-width: 60px; + width: 10%; + top: 47%; + } + &:nth-child(3) { + max-width: 130px; + width: 26%; + right: 8%; + bottom: 6%; + } + } + } + } +} + + +.faq { + &--block { + margin-top: var(--space-section); + } + &-item { + border-bottom: 1px solid #ededed; + &:first-child { + border-top: 1px solid #ededed; + } + &__question { + position: relative; + padding-block: 25px; + padding-right: fluid-clamp(60px, 120px); + font-size: var(--fs-h3-sm); + font-weight: 600; + line-height: 1.2; + cursor: pointer; + color: var(--color-dark); + transition: color 0.25s ease; + &::after { + content: ''; + position: absolute; + display: block; + width: 1em; + height: 1em; + top: 0; + bottom: 0; + right: 0; + margin: auto 0; + background: var(--icon-cross) center no-repeat; + background-size: contain; + transition: transform 0.25s ease; + } + } + &__answer { + height: 0; + opacity: 0; + overflow: hidden; + visibility: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + } + &__content { + padding-right: fluid-clamp(60px, 120px); + padding-bottom: 25px; + } + &.is-active { + .faq-item__question::after { + transform: rotate(-45deg); + } + .faq-item__answer { + opacity: 1; + visibility: visible; + } + } + } +} + +@include media-max($lg) { + .faq-item__content { + padding-right: 0; + } +} + +@include media-max($md) { + .faq-item { + &__question { + padding-block: 20px; + font-size: var(--fs-title-sm); + &::after { + width: 1.2em; + height: 1.2em; + } + } + &__content { + padding-bottom: 20px; + } + } +} + +@include media-max($sm) { + .faq-item { + &__question { + padding-block: 15px; + } + &__content { + padding-bottom: 15px; + } + } +} + +@media (hover: hover) { + .faq-item__question:hover { + color: var(--color-grey-dark); + } +} + + +.articles { + &--block { + margin-top: var(--space-section); + } + &--page { + margin-top: fluid-clamp(40px, 100px); + } + &-title { + &--sm { + margin-bottom: 40px; + font-size: var(--fs-h3-lg); + } + &--lg { + margin-bottom: 45px; + text-align: center; + } + } + &-filter { + margin-bottom: 30px; + overflow-x: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + display: none; + } + &__list { + display: grid; + justify-content: start; + grid-auto-flow: column; + column-gap: 6px; + width: max-content; + } + &__link { + display: flex; + align-items: center; + padding: 10px 15px; + border-radius: 10px; + color: #798079; + border: 1px solid #dcdcdc; + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; + } + &__item { + font-size: 18px; + line-height: 1.2; + white-space: nowrap; + &.is-active a { + color: #fff; + border-color: var(--color-dark); + background-color: var(--color-dark); + } + } + } + &-slider { + &__wrapper.is-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; + } + } + &-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; + row-gap: 50px; + transition: opacity 0.25s ease; + &.is-loading { + opacity: 0; + } + } + &-item { + display: flex; + flex-direction: column; + &__img { + &-link { + display: block; + aspect-ratio: 768/435; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); + img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; + } + } + } + &__info { + display: flex; + flex-direction: column; + margin-top: 25px; + flex: 1; + } + &__meta { + display: flex; + align-items: center; + line-height: 1.2; + white-space: nowrap; + } + &__date { + font-size: 15px; + } + &__tags { + display: grid; + grid-auto-flow: column; + column-gap: 6px; + margin-left: 15px; + } + &__tag { + padding: 6px 10px; + font-size: 14px; + border-radius: 10px; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; + } + &__title { + min-height: 2.4em; + margin-top: 25px; + padding-right: 20px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; + &-link { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + width: fit-content; + overflow: hidden; + color: var(--color-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } + &__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin: 20px 0 auto; + padding-right: 20px; + font-size: 18px; + line-height: 1.3; + } + &__read { + margin-top: 30px; + &-btn { + border-color: rgba(185, 185, 185, 0.5); + } + } + } + &-showmore { + margin-top: 50px; + text-align: center; + transition: opacity 0.25s ease; + &.is-loading { + opacity: 0; + } + &.is-hidden { + display: none; + } + &__btn { + max-width: 265px; + width: 100%; + } + } +} + +@include media-max($xl) { + .articles { + &-filter { + margin-inline: -20px; + padding-inline: 20px; + } + } +} + +@include media-max($lg) { + .articles { + &-filter { + &__item { + font-size: 16px; + } + } + &-slider { + &__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: slide-size(2.25, 20px); + } + } + &-grid { + grid-template-columns: 1fr 1fr; + } + } +} + +@include media-max($md) { + .articles { + &-title { + &--sm { + margin-bottom: 30px; + } + &--lg { + margin-bottom: 35px; + } + } + &-slider { + &__wrapper.is-grid { + grid-auto-columns: slide-size(1.25, 15px); + } + } + &-grid { + grid-template-columns: 1fr; + row-gap: 40px; + .articles-item { + &__title { + min-height: unset; + padding-right: 0; + } + &__descr { + padding-right: 0; + } + } + } + &-showmore { + margin-top: 40px; + &__btn { + max-width: unset; + } + } + } +} + +@include media-max($sm) { + .articles { + &-title { + &--sm, + &--lg { + margin-bottom: 25px; + } + } + &-filter { + margin-bottom: 20px; + margin-inline: -15px; + padding-inline: 15px; + &__item { + font-size: 14px; + } + &__link { + padding: 7px 12px; + } + } + &-grid { + row-gap: 30px; + } + &-item { + &__info { + margin-top: 20px; + } + &__date { + font-size: 13px; + } + &__tags { + margin-left: 10px; + } + &__tag { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + &__title { + margin-top: 20px; + padding-right: 15px; + } + &__descr { + margin-top: 15px; + padding-right: 15px; + font-size: 15px; + } + &__read { + margin-top: 20px; + } + } + &-showmore { + margin-top: 30px; + } + } +} + +@media (hover: hover) { + .articles { + &-filter__link:hover { + border-color: #a6a6a6; + } + &-item__img-link:hover img { + transform: scale(1.15); + } + } +} + + +.getapp { + margin-top: var(--space-section); + &-body { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: fluid-clamp(40px, 65px, 768px); + padding-block: fluid-clamp(25px, 65px); + padding-inline: fluid-clamp(20px, 65px); + border-radius: var(--radius-lg); + background: url(../img/bg/dl-bg.webp) center no-repeat; + background-size: cover; + &__right { + display: grid; + align-items: end; + grid-template-columns: 1fr 2.38fr; + column-gap: fluid-clamp(40px, 65px, 768px); + max-width: 500px; + } + } + &-title { + color: #fff; + } + &-descr { + margin-top: 25px; + font-size: 18px; + color: #fff; + } + &-stores { + display: flex; + gap: 8px; + margin-top: 40px; + } + &-store { + display: flex; + align-items: center; + justify-content: center; + height: 60px; + padding: 0 25px 0 20px; + border-radius: 100px; + color: #000; + background-color: #fff; + transition: background-color 0.25s ease; + &:hover { + background-color: rgba(255, 255, 255, 0.8); + } + &__icon { + display: flex; + width: 24px; + aspect-ratio: 1; + flex-shrink: 0; + } + &__name { + margin-left: 10px; + font-size: 16px; + line-height: 1.2; + white-space: nowrap; + } + } + &-qrcode { + display: flex; + padding: 10px; + border-radius: 10px; + background-color: #fff; + img { + width: 100%; + } + } + &-img { + display: flex; + margin-bottom: fluid-clamp(-25px, -65px); + overflow: hidden; + img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: 50% 0; + } + } +} + +@include media-max($xl) { + .getapp { + &-body { + grid-template-columns: 1fr 1.2fr; + &__right { + grid-template-columns: 1fr 2.5fr; + margin: 0 auto; + } + } + &-stores { + flex-wrap: wrap; + } + &-store { + height: 50px; + padding: 0 20px 0 15px; + } + } +} + +@include media-max($lg) { + .getapp { + &-body { + grid-template-columns: 1.2fr 1fr; + &__right { + grid-template-columns: 1fr; + } + } + &-qrcode { + display: none; + } + &-img { + width: fluid-clamp(240px, 360px); + } + } +} + +@include media-max($md) { + .getapp { + &-body { + grid-template-columns: 1fr; + &__right { + display: flex; + justify-content: center; + max-width: unset; + margin: 40px 0 0; + } + } + &-img { + aspect-ratio: 240/260; + } + } +} + +@include media-max($sm) { + .getapp { + &-body { + &__right { + margin-top: 30px; + } + } + &-descr { + margin-top: 15px; + font-size: 15px; + } + &-stores { + margin-top: 25px; + } + &-store { + height: 40px; + padding: 0 15px 0 12px; + &__icon { + width: 20px; + } + &__name { + margin-left: 8px; + font-size: 14px; + } + } + } +} + + +.footer { + margin-top: var(--space-section); + padding-block: fluid-clamp(35px, 65px); + border-top-left-radius: var(--radius-lg); + border-top-right-radius: var(--radius-lg); + background-color: var(--color-grey); + &-top { + &__body { + display: grid; + grid-template-columns: 1fr 1.75fr 220px; + column-gap: fluid-clamp(60px, 120px, 768px); + } + } + &-logo { + display: flex; + flex-direction: column; + align-items: flex-start; + &__link { + img { + width: 122px; + } + } + } + &-info { + max-width: 240px; + margin-top: 20px; + font-size: 12px; + line-height: 1.3; + color: var(--color-grey-dark); + p { + margin-bottom: 1.25em; + &:last-child { + margin-bottom: 0; + } + } + } + &-contacts { + grid-column: 1/2; + grid-row: 2/5; + margin-top: 25px; + line-height: 1.2; + &__email { + display: flex; + font-size: 14px; + &-link { + color: var(--color-red); + transition: color 0.25s ease; + &:hover { + color: var(--color-red-dark); + } + } + } + &__map { + display: flex; + font-size: 12px; + margin-top: 15px; + &-link { + position: relative; + padding-left: 1.25em; + color: var(--color-grey-dark); + transition: color 0.25s ease; + &::before { + content: ''; + position: absolute; + display: block; + width: 1em; + height: 1em; + left: 0; + top: 0; + mask: var(--icon-placemark) center no-repeat; + -webkit-mask: var(--icon-placemark) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-dark); + transition: background-color 0.25s ease; + } + &:hover { + color: var(--color-red); + &::before { + background-color: var(--color-red); + } + } + } + } + } + &-socials { + display: flex; + flex-wrap: wrap; + gap: 5px; + max-width: 200px; + margin-top: 30px; + &__item { + display: flex; + align-items: center; + justify-content: center; + width: 44px; + aspect-ratio: 1; + border-radius: 12px; + border: 1px solid rgba(209, 216, 221, 0.5); + background-color: #fff; + transition: border-color 0.25s ease; + &:hover { + border-color: #d1d1d1; + } + img { + width: 20px; + aspect-ratio: 1; + } + } + } + &-menu { + grid-row: 1/3; + &__list { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: fluid-clamp(40px, 60px, 768px); + row-gap: fluid-clamp(30px, 45px, 768px); + > li > a { + font-weight: 700; + } + } + &__item { + display: flex; + flex-direction: column; + align-items: flex-start; + font-size: 16px; + line-height: 1.2; + } + &__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; + &[href]:hover { + color: #8a8f9f; + } + &:not([href]) { + cursor: default; + } + } + &__submenu { + margin-top: 10px; + a { + padding: 10px 0; + } + } + &__submenu-toggle { + display: none; + } + } + &-stores { + display: grid; + grid-template-columns: repeat(4, auto); + justify-content: start; + align-items: center; + gap: 6px; + margin-top: fluid-clamp(30px, 50px, 768px); + grid-column: 2/4; + } + &-store { + position: relative; + display: flex; + width: 128px; + aspect-ratio: 178/50; + transition: opacity 0.25s ease; + &:hover { + opacity: 0.8; + } + } + &-actions { + grid-row: 1/3; + } + &-qrcode { + &__img { + display: flex; + max-width: 175px; + padding: 10px; + border-radius: 10px; + background-color: #fff; + border: 1px solid #ececec; + img { + width: 100%; + } + } + &__info { + margin-top: 25px; + font-size: 14px; + line-height: 1.3; + } + } + &-buttons { + display: grid; + row-gap: 6px; + max-width: 265px; + margin-top: 25px; + .btn { + height: 44px; + font-size: 16px; + } + &__login-btn { + width: 100%; + height: 44px; + color: var(--color-grey-text); + background-color: #dbdfec; + &::before { + content: ''; + display: block; + width: 1.1em; + height: 1.1em; + margin: 0 4px 0.1em 0; + mask: var(--icon-user) center no-repeat; + -webkit-mask: var(--icon-user) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-grey-text); + } + &:hover { + background-color: #cacdd9; + } + } + } + &-bottom { + margin-top: fluid-clamp(35px, 65px); + padding-top: 30px; + border-top: 1px solid #e5e8f4; + font-size: 12px; + line-height: 1.2; + &__body { + display: grid; + grid-template-columns: 1.3fr 1.75fr 1fr; + column-gap: 20px; + } + } + &-details { + color: var(--color-grey-dark); + } + &-copyright { + font-size: 14px; + } + &-madein { + display: flex; + align-items: center; + margin-top: 25px; + &__icon { + display: flex; + width: 1.2em; + aspect-ratio: 1; + margin-left: 6px; + } + } + &-registry { + display: flex; + align-items: center; + margin-top: 25px; + &__icon { + display: flex; + flex-shrink: 0; + width: 20px; + aspect-ratio: 1; + } + &__text { + max-width: 265px; + margin-left: 10px; + font-size: 10px; + } + } + &-links { + display: flex; + justify-content: space-between; + column-gap: 20px; + &__list { + display: grid; + row-gap: 8px; + } + &__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-dark); + } + } + } + &-developer { + text-align: right; + &__link { + color: var(--color-grey-dark); + transition: color 0.25s ease; + span { + color: var(--color-red); + } + &:hover { + color: var(--color-dark); + } + } + } +} + +@include media-max($xl) { + .footer-bottom__body { + grid-template-columns: calc(38vw - 105px) 1.75fr 1fr; + } +} + +@include media-max($lg) { + .footer { + &-top { + &__body { + grid-template-columns: 1fr 1.5fr; + } + } + &-qrcode { + display: none; + } + &-info { + max-width: unset; + } + &-contacts { + grid-row: 2/3; + margin-top: 30px; + } + &-actions { + grid-column: 1/2; + grid-row: 3/4; + margin-top: 30px; + } + &-buttons { + margin-top: 0; + } + &-menu { + grid-row: 1/4; + } + &-stores { + grid-column: 1/-1; + } + &-bottom { + margin-top: 30px; + &__body { + grid-template-columns: 1fr 1.5fr; + column-gap: fluid-clamp(60px, 120px, 768px); + } + } + &-links { + column-gap: 40px; + } + &-developer { + order: 3; + margin-top: 30px; + text-align: left; + } + } +} + +@include media-max($md) { + .footer { + &-top { + &__body { + display: flex; + flex-direction: column; + } + } + &-buttons { + max-width: unset; + } + &-menu { + margin-top: 30px; + &__list { + display: block; + > li { + align-items: center; + border-bottom: 1px solid #e5e7ef; + &:first-child { + border-top: 1px solid #e5e7ef; + } + &.has-children { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + } + &.is-open { + > button { + transform: rotate(-180deg); + } + } + > a { + padding: 12px 0; + } + } + } + &__item { + flex-direction: row; + } + &__submenu-toggle { + display: block; + width: 32px; + height: 32px; + margin: auto 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: 10px; + -webkit-mask-size: 10px; + background-color: var(--color-text); + transition: transform 0.25s ease, background-color 0.25s ease; + } + &__submenu { + grid-column: 1/-1; + margin-top: 0; + height: 0; + overflow: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + &::after { + content: ''; + display: block; + height: 6px; + } + li { + font-size: 15px; + } + a { + padding: 8px 0; + } + } + } + &-socials { + max-width: unset; + } + &-bottom__body { + grid-template-columns: 1fr; + } + &-links { + justify-content: unset; + } + &-details { + order: 2; + padding-top: 30px; + margin-top: 30px; + border-top: 1px solid #e5e8f4 + } + } +} + +@include media-max($sm) { + .footer { + &-stores { + grid-template-columns: auto auto; + } + &-links { + flex-direction: column; + row-gap: 30px; + } + } +} + + +.blog { + margin-top: 145px; + &-header { + display: grid; + grid-template-columns: 1fr auto; + padding-block: fluid-clamp(25px, 50px); + padding-inline: fluid-clamp(20px, 60px); + column-gap: fluid-clamp(20px, 80px); + border-radius: var(--radius-sm); + background: linear-gradient(198deg, #fef8ea 0%, #ffeff0 100%); + } + &-info { + max-width: 680px; + } + &-descr { + margin-top: fluid-clamp(15px, 30px); + font-size: 18px; + line-height: 1.4; + } + &-logo { + width: fluid-clamp(48px, 112px); + margin-right: 40px; + } + &-slider { + margin-top: fluid-clamp(25px, 70px); + } + &-item { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 20px; + &__info { + padding-right: fluid-clamp(20px, 60px, 768px); + } + &__tags { + display: grid; + grid-auto-flow: column; + justify-content: start; + column-gap: 6px; + } + &__tag { + padding: 6px 10px; + font-size: 14px; + line-height: 1.2; + border-radius: 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; + } + &__title { + margin-top: 20px; + font-size: var(--fs-h3-lg); + font-weight: 700; + line-height: 1.1; + &-link { + display: block; + color: var(--color-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } + &__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin-top: 20px; + font-size: 18px; + line-height: 1.3; + } + &__read { + margin-top: 30px; + &-btn { + border-color: rgba(185, 185, 185, 0.5); + } + } + &__img { + align-self: start; + &-link { + display: block; + aspect-ratio: 1024/580; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); + img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; + } + } + } + } +} + +@include media-max($xl) { + .blog { + margin-top: fluid-clamp(75px, 125px); + } +} + +@include media-max($lg) { + .blog { + &-logo { + margin-right: 0; + } + &-item { + &__img { + margin-top: 55px; + } + } + } +} + +@include media-max($md) { + .blog { + &-slider { + &__container { + border-bottom-left-radius: var(--radius-sm); + border-bottom-right-radius: var(--radius-sm); + } + } + &-item { + grid-template-columns: 1fr; + &__info { + padding-right: 0; + } + &__img { + margin-top: 40px; + } + } + } +} + +@include media-max($sm) { + .blog { + &-descr { + font-size: 15px; + } + &-item { + &__tag { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + &__title { + margin-top: 15px; + } + &__descr { + margin-top: 12px; + font-size: 15px; + } + &__read { + margin-top: 20px; + } + &__img { + margin-top: 25px; + } + } + } +} + +@media (hover: hover) { + .blog-item__img-link:hover img { + transform: scale(1.15); + } +} + + +.content { + > *:first-child { + margin-top: 0; + } + > *:last-child { + margin-bottom: 0; + } + h1 + h2, + h1 + h3, + h1 + h4 { + margin-top: 0; + } + h1 { + margin-bottom: fluid-clamp(25px, 70px); + text-align: center; + } + h2 + h3, + h3 + h4 { + margin-top: 0; + } + h2, + h3, + h4 { + margin-top: fluid-clamp(30px, 60px); + margin-bottom: fluid-clamp(18px, 25px); + font-weight: 600; + } + h2 { + font-size: var(--fs-h2-sm); + } + h3, + h4 { + font-size: var(--fs-h3-sm); + line-height: 1.3; + } + p, + ul, + ol { + margin-bottom: 1.25em; + } + li { + position: relative; + padding-left: 1.5em; + &:not(:last-child) { + margin-bottom: 0.5em; + } + ul, + ol { + margin-block: 0.5em; + } + p { + margin-bottom: 0.5em; + } + } + ul > li::before { + content: ''; + position: absolute; + display: block; + width: 0.3em; + aspect-ratio: 1; + top: 0.6em; + left: 0.6em; + border-radius: 50%; + background-color: var(--color-red); + } + ol { + counter-reset: num; + > li { + counter-increment: num; + &::before { + content: counter(num) '.'; + position: absolute; + width: 1.25em; + left: 0; + top: 0; + font-weight: 500; + text-align: right; + color: var(--color-red); + } + } + } + b, + strong { + font-weight: 600; + color: var(--color-dark); + } + a { + display: inline-block; + color: var(--color-red); + transition: color 0.25s ease; + &:hover { + color: var(--color-red-dark); + } + } + img { + margin-block: 1.75em; + border-radius: var(--radius-sm); + } + .table-wrapper { + margin-block: 1.75em; + overflow-x: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + width: 0; + } + } + table { + width: 100%; + border-collapse: collapse; + th, + td { + padding: 15px 20px; + border: 1px solid #eee; + } + th { + text-align: left; + color: var(--color-dark); + background-color: var(--color-light); + } + } + &--sm { + h2, + h3, + h4 { + margin-top: fluid-clamp(20px, 40px); + } + } +} + +@include media-max($lg) { + .content { + .table-wrapper { + margin-inline: -20px; + padding-inline: 20px; + } + } +} + +@include media-max($md) { + .content { + h3, + h4 { + line-height: 1.2; + } + } +} + +@include media-max($sm) { + .content { + .table-wrapper { + margin-inline: -15px; + padding-inline: 15px; + } + table { + th, + td { + padding: 10px 15px; + } + } + } +} + + +.article { + &-goback { + display: flex; + margin-top: fluid-clamp(15px, 40px); + margin-bottom: 20px; + &__btn { + position: relative; + display: flex; + align-items: center; + font-size: 14px; + line-height: 1.2; + color: var(--color-text); + transition: color 0.25s ease; + &::before, + &::after { + content: ''; + display: block; + width: 2.55em; + aspect-ratio: 1; + border-radius: 50%; + border-width: 1px; + border-style: solid; + } + &::before { + margin-right: 10px; + border-color: #f0f0f0; + background-color: #fff; + transition: background-color 0.25s ease; + } + &::after { + position: absolute; + top: 0; + left: 0; + border-color: transparent; + background: var(--icon-angle-left) center no-repeat; + background-size: 0.6em; + } + &:hover { + &::before { + background-color: #f0f0f0; + } + } + } + } + &-title { + text-align: center; + } + &-img { + aspect-ratio: 1280/440; + margin-top: fluid-clamp(25px, 40px); + border-radius: var(--radius-sm); + overflow: hidden; + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + &-meta { + display: flex; + align-items: center; + justify-content: space-between; + column-gap: 30px; + margin-top: 30px; + line-height: 1.2; + white-space: nowrap; + } + &-date { + font-size: 15px; + } + &-tags { + display: grid; + grid-auto-flow: column; + column-gap: 6px; + &__item { + padding: 6px 10px; + font-size: 14px; + border-radius: 10px; + overflow: hidden; + text-overflow: ellipsis; + color: #798079; + background-color: #f6f6f6; + } + } + &-body { + display: grid; + align-items: start; + grid-template-columns: 1fr 300px; + column-gap: fluid-clamp(40px, 125px, 1024px); + margin-top: fluid-clamp(40px, 60px); + &.no-toc { + grid-template-columns: 1fr; + margin-top: fluid-clamp(30px, 60px); + } + } + &-main { + min-width: 0; + } + &-sidebar { + position: sticky; + top: 112px; + } + &-toc { + padding: 25px 30px; + background-color: var(--color-light); + border-radius: var(--radius-sm); + &__title { + font-size: var(--fs-h3-sm); + line-height: 1.2; + font-weight: 600; + color: var(--color-dark); + } + &__list { + display: grid; + row-gap: 18px; + margin-top: 25px; + max-height: calc(100vh - 260px); + overflow-y: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + width: 0; + } + &.is-scrollable { + padding-right: 10px; + scrollbar-width: auto; + @-moz-document url-prefix() { + scrollbar-width: thin; + } + &::-webkit-scrollbar { + width: 5px; + } + &::-webkit-scrollbar-track { + background-color: #f0f0f0; + border-radius: 5px; + } + &::-webkit-scrollbar-thumb { + background-color: #d9d9d9; + border-radius: 5px; + } + } + } + &__item { + font-size: 18px; + line-height: 1.2; + } + &__link { + color: var(--color-text); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } +} + +@include media-max($xl) { + .article { + &-sidebar { + top: fluid-clamp(70px, 90px); + } + &-toc { + &__list { + max-height: calc(100vh - 240px); + } + } + } +} + +@include media-max($lg) { + .article { + &-body { + grid-template-columns: 1fr; + } + &-sidebar { + position: unset; + top: unset; + order: -1; + margin-bottom: fluid-clamp(40px, 60px); + } + &-toc { + &__list { + max-height: unset; + } + } + } +} + +@include media-max($md) { + .article { + &-img { + aspect-ratio: 1280/720; + } + } +} + +@include media-max($sm) { + .article { + &-goback { + &__btn { + font-size: 12px; + } + } + &-meta { + flex-direction: column; + align-items: flex-start; + margin-top: 20px; + } + &-tags { + &__item { + padding: 5px 8px; + font-size: 12px; + border-radius: 5px; + } + } + &-date { + order: 2; + margin-top: 15px; + font-size: 13px; + &:first-child:last-child { + margin-top: 0; + } + } + &-toc { + padding: 20px; + &__list { + row-gap: 12px; + margin-top: 15px; + } + &__item { + font-size: 15px; + } + } + } +} + + +.requirements { + margin-top: var(--space-section); + &-title { + text-align: center; + } + &-main { + margin-top: 45px; + &__list { + display: grid; + grid-template-columns: repeat(var(--items), 1fr); + gap: 20px; + } + &__item { + display: grid; + align-content: center; + grid-template-columns: auto 1fr; + column-gap: 0.5em; + min-height: calc(2.6em + 24px); + padding: 12px 20px; + line-height: 1.3; + border-radius: 10px; + background-color: #f5f5fa; + &::before { + content: ''; + position: relative; + display: block; + width: 1em; + height: 1em; + top: 0.15em; + background: var(--icon-checkmark) center no-repeat; + background-size: contain; + } + &:has(p) { + align-content: start; + padding-block: 20px; + strong { + display: block; + margin-bottom: 0.5em; + } + } + } + } + &-docs { + margin-top: 60px; + &__title { + font-size: fluid-clamp(20px, 30px); + font-weight: 600; + text-align: center; + } + &__list { + display: grid; + justify-content: center; + grid-template-columns: auto auto; + column-gap: fluid-clamp(40px, 120px, 768px); + row-gap: 15px; + margin-top: 40px; + counter-reset: num; + } + &__item { + position: relative; + padding-left: 1.85em; + line-height: 1.3; + counter-increment: num; + &::before { + content: counter(num); + position: absolute; + display: flex; + align-items: center; + justify-content: center; + width: 1.25em; + height: 1.25em; + top: 0; + left: 0; + border-radius: 100px; + color: #fff; + background-color: var(--color-red); + } + } + } +} + +@include media-max($md) { + .requirements { + &-main { + margin-top: 35px; + &__list { + grid-template-columns: 1fr; + row-gap: 8px; + } + &__item { + min-height: unset; + padding: 15px 20px; + &:has(p) { + padding-block: 15px; + } + } + } + &-docs { + margin-top: 45px; + &__list { + grid-template-columns: 1fr; + margin-top: 25px; + } + } + } +} + +@include media-max($sm) { + .requirements { + &-main { + margin-top: 25px; + } + &-docs { + margin-top: 35px; + &__list { + row-gap: 12px; + margin-top: 20px; + } + } + } +} + + +.cities { + margin-top: var(--space-section); + &-title { + text-align: center; + } + &-list { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-top: 45px; + gap: 10px; + } + &-item { + display: flex; + min-width: 0; + font-size: 22px; + line-height: 1.1; + &__link { + padding: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + border-radius: 100px; + border: 1px solid #e2e2e2; + color: var(--color-text); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; + &:hover { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); + } + } + &.is-active a { + color: #fff; + border-color: var(--color-red); + background-color: var(--color-red); + } + } +} + +@include media-max($xl) { + .cities { + &-item { + font-size: inherit; + } + } +} + +@include media-max($lg) { + .cities { + &-item { + &__link { + padding: 15px; + } + } + } +} + +@include media-max($md) { + .cities { + &-list { + margin-top: 35px; + gap: 8px; + } + &-item { + &__link { + padding: 12px 15px; + } + } + } +} + +@include media-max($sm) { + .cities { + &-list { + margin-top: 25px; + } + &-item { + &__link { + padding: 10px 12px; + } + } + } +} + + +.jobs { + margin-top: var(--space-section); + &-body { + padding-top: fluid-clamp(25px, 60px); + padding-bottom: fluid-clamp(35px, 80px); + padding-inline: fluid-clamp(20px, 65px); + border-radius: var(--radius-lg); + background-color: var(--color-red); + } + &-title { + color: #fff; + text-align: center; + } + &-list { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-top: 45px; + gap: 10px; + } + &-item { + display: flex; + min-width: 0; + font-size: 22px; + line-height: 1.1; + &__link { + padding: 20px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + border-radius: 100px; + color: #fff; + border: 1px solid rgba(255, 255, 255, 0.5); + transition-property: color, background-color, border-color; + transition-duration: 0.25s; + transition-timing-function: ease; + &:hover { + color: var(--color-red); + border-color: #fff; + background-color: #fff; + } + } + &.is-active a { + color: var(--color-red); + border-color: #fff; + background-color: #fff; + } + } +} + +@include media-max($xl) { + .jobs { + &-item { + font-size: inherit; + } + } +} + +@include media-max($lg) { + .jobs { + &-item { + &__link { + padding: 15px; + } + } + } +} + +@include media-max($md) { + .jobs { + &-list { + margin-top: 35px; + gap: 8px; + } + &-item { + &__link { + padding: 12px 15px; + } + } + } +} + +@include media-max($sm) { + .jobs { + &-list { + margin-top: 25px; + } + &-item { + &__link { + padding: 10px 12px; + } + } + } +} + + +.news { + &-grid { + display: grid; + row-gap: fluid-clamp(30px, 60px); + } + &-item { + display: grid; + grid-template-columns: fluid-clamp(300px, 414px, 768px) 1fr; + column-gap: 40px; + &__img { + &-link { + display: block; + aspect-ratio: 768/435; + overflow: hidden; + border-radius: var(--radius-sm); + background-color: var(--color-light); + img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.3s ease; + } + } + } + &__date { + display: block; + font-size: 15px; + line-height: 1.2; + } + &__title { + margin-top: 15px; + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; + &-link { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + width: fit-content; + color: var(--color-dark); + transition: color 0.25s ease; + &:hover { + color: var(--color-red); + } + } + } + &__descr { + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + margin-top: 15px; + font-size: 18px; + line-height: 1.3; + } + &__read { + margin-top: 25px; + &-btn { + border-color: rgba(185, 185, 185, 0.5); + } + } + } + &-showmore { + margin-top: fluid-clamp(30px, 60px); + text-align: center; + &.is-hidden { + display: none; + } + &__btn { + max-width: 265px; + width: 100%; + } + } +} + +@include media-max($lg) { + .news { + &-item { + column-gap: 30px; + } + } +} + +@include media-max($md) { + .news { + &-item { + grid-template-columns: 1fr; + &__info { + margin-top: 25px; + } + } + &-showmore { + &__btn { + max-width: unset; + } + } + } +} + +@include media-max($sm) { + .news { + &-item { + &__info { + margin-top: 20px; + } + &__date { + font-size: 13px; + } + &__descr { + font-size: 15px; + } + &__read { + margin-top: 20px; + } + } + } +} + +@media (hover: hover) { + .news { + &-item__img-link:hover img { + transform: scale(1.15); + } + } +} + + +.download { + padding-bottom: var(--space-section); + padding-top: 165px; + text-align: center; + background-image: + url(../img/content/bag.webp), + url(../img/content/car.webp), + linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); + background-repeat: no-repeat; + background-position: + calc(50% - 80px - 30vw) 30%, + calc(50% + 280px + 20vw) 63%, + center; + background-size: + fluid-clamp(232px, 280px, 768px) auto, + fluid-clamp(450px, 540px, 768px) auto, + cover; + &-descr, + &-info { + font-size: 18px; + line-height: 1.3; + } + &-descr { + margin-top: 25px; + } + &-info { + margin-top: fluid-clamp(30px, 90px); + } + &-qrcode { + width: fluid-clamp(256px, 330px); + margin-top: fluid-clamp(30px, 60px); + margin-inline: auto; + padding: var(--radius-sm); + background-color: #fff; + border-radius: var(--radius-md); + border: 1px solid #ececec; + img { + width: 100%; + } + } + &-stores { + display: grid; + grid-template-columns: repeat(4, auto); + justify-content: center; + align-items: center; + gap: 8px; + margin-top: fluid-clamp(35px, 50px); + } + &-store { + position: relative; + display: flex; + width: fluid-clamp(160px, 178px); + aspect-ratio: 178/50; + transition: opacity 0.25s ease; + &:hover { + opacity: 0.8; + } + } +} + +@include media-min(1920px) { + .download { + background-position: calc(50% - 660px) 30%, calc(50% + 660px) 63%, center; + } +} + +@include media-max($xl) { + .download { + padding-top: fluid-clamp(80px, 145px); + } +} + +@include media-max($md) { + .download { + min-height: 100vh; + background: linear-gradient(145deg, #f5f5f9 50%, #fff5e7 100%); + &-stores { + grid-template-columns: auto auto; + } + } +} + +@include media-max($sm) { + .download { + &-descr, + &-info { + font-size: 15px; + } + &-descr { + margin-top: 20px; + } + } +} + + +.ymaps3--map-container { + .ymaps3--map-copyrights, + .ymaps3--controls_bottom { + display: none; + } + .ymaps3--controls { + z-index: 5; + } +} + + +.contacts { + &-body { + display: grid; + align-items: stretch; + grid-template-columns: 1fr 1.42fr; + column-gap: 20px; + min-height: fluid-clamp(400px, 460px, 1024px); + } + &-card { + display: flex; + flex-direction: column; + padding-top: fluid-clamp(25px, 50px); + padding-bottom: fluid-clamp(25px, 60px); + padding-inline: fluid-clamp(20px, 60px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); + &__title { + font-size: var(--fs-title-lg); + line-height: 1.1; + font-weight: 700; + color: var(--color-dark); + } + &__list { + display: grid; + row-gap: 20px; + margin-top: fluid-clamp(20px, 50px); + margin-bottom: auto; + } + &__item { + display: flex; + align-items: flex-start; + justify-content: flex-start; + overflow: hidden; + line-height: 1.2; + color: var(--color-dark); + &::before { + content: ''; + position: relative; + display: block; + width: 20px; + aspect-ratio: 1; + flex-shrink: 0; + margin-right: 12px; + top: 0.15em; + background-position: center; + background-repeat: no-repeat; + background-size: contain; + } + &--tel { + font-size: var(--fs-title-sm); + font-weight: 700; + &::before { + background-image: var(--icon-phone); + } + a { + color: var(--color-dark); + &:hover { + color: var(--color-red); + } + } + } + &--address { + &::before { + background-image: var(--icon-location); + } + } + &--email { + &::before { + background-image: var(--icon-email); + } + a { + color: var(--color-red); + &:hover { + color: var(--color-red-dark); + } + } + } + &-link { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + transition: color 0.25s ease; + } + } + &__download { + margin-top: fluid-clamp(25px, 60px); + } + } + &-map { + position: relative; + overflow: hidden; + border-radius: var(--radius-lg); + background-color: var(--color-light); + &__container { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + } + &__marker { + transform: translate(-50%, -100%); + &.is-open { + transform: translate(-50%, calc(-100% - 14px)); + .contacts-map__marker-button { + display: none; + } + .contacts-map__popup { + display: block; + } + } + &-button { + display: block; + width: 60px; + height: 68px; + padding: 0; + border: 0; + background: none; + cursor: pointer; + } + &-icon { + display: block; + width: 60px; + height: 68px; + pointer-events: none; + } + } + &__popup { + position: relative; + display: none; + width: max-content; + max-width: 260px; + min-width: 180px; + padding: 10px 36px 10px 12px; + border-radius: 10px; + background-color: #fff; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16); + font-size: 14px; + line-height: 1.2; + &::after { + content: ''; + position: absolute; + left: 50%; + bottom: -8px; + width: 16px; + height: 16px; + background-color: #fff; + transform: translateX(-50%) rotate(45deg); + box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.08); + } + &-title { + position: relative; + z-index: 1; + margin-bottom: 4px; + font-weight: 600; + color: var(--color-dark); + } + &-text { + position: relative; + z-index: 1; + color: var(--color-text); + } + &-close { + position: absolute; + top: 7px; + right: 7px; + display: flex; + align-items: center; + justify-content: center; + width: 20px; + height: 20px; + padding: 0; + border: 0; + background: none; + color: #999; + cursor: pointer; + transition: color 0.25s ease; + &:hover { + color: #222; + } + } + } + } +} + +@include media-max($lg) { + .contacts { + &-body { + grid-template-columns: 1fr; + min-height: unset; + } + &-map { + height: fluid-clamp(240px, 460px); + order: -1; + } + &-card { + margin-top: 20px; + } + } +} + +@include media-max($md) { + .contacts { + &-card { + &__item { + &::before { + top: 0; + } + } + } + } +} + +@include media-max($sm) { + .contacts { + &-card { + margin-top: 15px; + &__list { + row-gap: 15px; + } + &__item { + &::before { + width: 18px; + } + } + &__download { + &-btn { + width: 100%; + } + } + } + } +} + + +.about { + &-hero { + display: grid; + grid-template-columns: 1.25fr 1fr; + column-gap: fluid-clamp(40px, 180px, 768px); + &__info { + margin-top: fluid-clamp(50px, 80px, 1024px); + font-size: var(--fs-title-lg); + line-height: 1.3; + font-weight: 600; + color: var(--color-dark); + } + } + &-stats { + --gap: #{fluid-clamp(40px, 135px, 1024px)}; + display: grid; + grid-template-columns: repeat(4, 1fr); + column-gap: var(--gap); + margin-top: fluid-clamp(20px, 80px); + &__item { + position: relative; + &::after { + content: ''; + position: absolute; + display: block; + width: 1px; + height: 25px; + top: 0; + bottom: 0; + right: calc(var(--gap) / -2); + margin: auto 0; + background-color: #d8d8e8; + } + &:last-child::after { + display: none; + } + &-value { + font-size: fluid-clamp(32px, 50px); + line-height: 1.1; + font-weight: 600; + white-space: nowrap; + color: var(--color-dark); + span { + font-size: fluid-clamp(18px, 24px); + } + } + &-text { + margin-top: 12px; + font-size: 18px; + line-height: 1.3; + } + } + } + &-cards { + display: grid; + row-gap: 40px; + margin-top: var(--space-section); + } + &-card { + display: grid; + grid-template-columns: 1.7fr 1fr; + column-gap: 40px; + padding-block: fluid-clamp(25px, 50px); + padding-inline: fluid-clamp(20px, 50px); + border-radius: var(--radius-lg); + &--first { + background: var(--gradient-grey); + } + &--second { + grid-template-columns: 1fr auto; + border: 1px solid #ededed; + } + &__title { + margin-bottom: fluid-clamp(18px, 25px); + font-size: var(--fs-h2-sm); + font-weight: 600; + } + &__img, + &__logo { + grid-column: 2/3; + grid-row: 1/4; + } + &__img { + display: flex; + align-self: center; + } + &__logo { + padding-top: 10px; + img { + width: fluid-clamp(100px, 135px, 768px); + } + } + } +} + +@include media-max($lg) { + .about { + &-hero { + grid-template-columns: 1fr; + &__img { + width: fluid-clamp(345px, 600px, 375px, 1024px); + margin-inline: auto; + order: -1; + } + } + &-stats { + grid-template-columns: 1fr 1fr; + row-gap: 40px; + &__item::after { + display: none; + } + } + &-cards { + row-gap: 20px; + } + &-card { + column-gap: 30px; + } + } +} + +@include media-max($md) { + .about { + &-hero { + &__info { + margin-top: 40px; + } + } + &-stats { + row-gap: 30px; + } + &-card { + grid-template-columns: 1fr; + &__logo { + display: none; + } + &__img { + grid-column: unset; + grid-row: unset; + margin: 5px 0 25px; + } + &__content { + order: 3; + } + } + } +} + +@include media-max($sm) { + .about { + &-hero { + &__info { + margin-top: 25px; + } + } + &-stats { + column-gap: 30px; + row-gap: 20px; + &__item-text { + margin-top: 8px; + font-size: 15px; + } + } + &-cards { + row-gap: 15px; + } + } +} + + +.features { + margin-top: var(--space-section); + &-title { + text-align: center; + } + &-cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 20px; + margin-top: 45px; + } + &-card { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + padding-block: fluid-clamp(20px, 40px); + padding-inline: fluid-clamp(20px, 45px); + border-radius: var(--radius-lg); + &--first { + border: 1px solid #ededed; + .features-card__img { + width: fluid-clamp(90px, 160px); + margin-right: fluid-clamp(-20px, -45px); + margin-block: fluid-clamp(-20px, -40px); + } + } + &--second { + background: linear-gradient(160deg, #29292d 0%, #083743 100%); + .features-card__title, + .features-card__descr { + color: #fff; + } + .features-card__img { + width: fluid-clamp(75px, 145px); + } + } + &--third { + grid-template-columns: 1fr; + grid-column: 2/3; + grid-row: 1/3; + background: var(--gradient-grey); + .features-card__img { + align-items: flex-end; + margin-top: fluid-clamp(20px, 40px); + margin-bottom: fluid-clamp(-20px, -40px); + } + } + &__title { + font-size: fluid-clamp(16px, 30px); + line-height: 1.1; + font-weight: 600; + color: var(--color-dark); + } + &__descr { + margin-top: fluid-clamp(12px, 30px); + padding-right: fluid-clamp(10px, 40px, 1024px); + line-height: 1.3; + } + &__img { + display: flex; + align-items: center; + img { + width: 100%; + } + } + } + &-bottom { + display: grid; + grid-template-columns: 1fr auto; + column-gap: 20px; + margin-top: 20px; + } + &-slider { + min-width: 0; + &__wrapper.is-grid { + display: grid; + align-items: stretch; + grid-template-columns: repeat(3, 1fr); + column-gap: 20px; + } + } + &-item { + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: fluid-clamp(140px, 225px); + padding: 25px; + line-height: 1.2; + border-radius: var(--radius-lg); + border: 1px solid #ededed; + &__top { + display: grid; + align-items: center; + grid-template-columns: 1fr auto; + column-gap: 20px; + } + &__title { + font-size: var(--fs-title-sm); + font-weight: 600; + line-height: 1.2; + color: var(--color-dark); + } + &__icon { + display: flex; + width: fluid-clamp(30px, 50px); + aspect-ratio: 1; + } + &__descr { + margin-top: 20px; + line-height: 1.3; + } + } + &-download { + display: flex; + width: 195px; + font-weight: 600; + line-height: 1.2; + &__link { + display: flex; + flex-direction: column; + justify-content: space-between; + width: 100%; + padding: 25px; + border-radius: var(--radius-lg); + color: #fff; + background-color: var(--color-red); + transition: background-color 0.25s ease; + &:hover { + background-color: var(--color-red-dark); + } + span { + display: flex; + align-items: center; + justify-content: center; + width: fluid-clamp(36px, 50px); + aspect-ratio: 1; + border-radius: 50%; + background-color: #fff; + &::before { + content: ''; + display: block; + width: 13px; + height: 13px; + background: var(--icon-arrow-up) center no-repeat; + background-size: contain; + } + } + } + } +} + +@include media-max($lg) { + .features { + &-card { + &__descr { + font-size: 18px; + } + } + &-bottom { + grid-template-columns: 1fr; + } + &-slider { + &__wrapper.is-grid { + grid-template-columns: unset; + grid-auto-flow: column; + grid-auto-columns: slide-size(2.5, 20px); + } + } + &-item { + &__descr { + font-size: 18px; + } + } + &-download { + display: block; + width: unset; + margin-top: 20px; + &__link { + flex-direction: row; + align-items: center; + } + } + } +} + +@include media-max($md) { + .features { + &-cards { + grid-template-columns: 1fr; + margin-top: 35px; + } + &-card { + &--third { + grid-column: unset; + grid-row: unset; + } + &__descr { + br { + display: none; + } + } + } + &-slider { + &__wrapper.is-grid { + grid-auto-columns: slide-size(1.5, 15px); + } + } + } +} + +@include media-max($sm) { + .features { + &-cards { + row-gap: 15px; + margin-top: 25px; + } + &-card { + &__descr { + margin-top: 15px; + font-size: 15px; + } + } + &-bottom { + margin-top: 15px; + } + &-item { + padding: 20px; + &__descr { + font-size: 15px; + } + } + &-download { + margin-top: 15px; + &__link { + padding: 20px; + } + } + } +} + + +.vacancies { + &-img { + aspect-ratio: 1280/300; + overflow: hidden; + border-radius: var(--radius-md); + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + &-subtitle { + margin-top: fluid-clamp(40px, 80px); + font-size: var(--fs-h2-sm); + text-align: center; + span { + display: inline-block; + width: 2ch; + margin-right: -2ch; + font-size: 13px; + font-weight: 400; + text-align: left; + vertical-align: text-top; + } + } + &-filter { + position: relative; + max-width: 430px; + margin: 25px auto 0; + font-size: 18px; + line-height: 1.3; + user-select: none; + -webkit-user-select: none; + &__trigger { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + column-gap: 15px; + width: 100%; + height: 64px; + padding-inline: 20px; + background-color: #fff; + border: 1px solid #efefef; + border-radius: 10px; + cursor: pointer; + transition: border-color 0.25s ease; + &::after { + content: ''; + display: block; + width: 12px; + height: 12px; + flex-shrink: 0; + mask: var(--icon-angle-down) center no-repeat; + -webkit-mask: var(--icon-angle-down) center no-repeat; + mask-size: contain; + -webkit-mask-size: contain; + background-color: var(--color-text); + transition: transform 0.25s ease; + } + } + &__value { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: var(--color-text); + } + &__options { + position: absolute; + width: 100%; + top: calc(100% + 6px); + left: 0; + z-index: 2; + opacity: 0; + overflow: hidden; + visibility: hidden; + background-color: #fff; + border-radius: 10px; + border: 1px solid #ccc; + transition: opacity 0.25s ease, visibility 0.25s ease; + } + &__link { + display: block; + padding: 15px 20px; + color: inherit; + cursor: pointer; + outline: none; + transition: color 0.25s ease, background-color 0.25s ease; + &:hover, + &:focus { + background-color: var(--color-grey); + } + } + &__option { + &.is-selected a { + background-color: var(--color-grey); + } + } + &.is-open { + .vacancies-filter__trigger { + border-color: #ccc; + &::after { + transform: rotate(-180deg); + } + } + .vacancies-filter__options { + opacity: 1; + visibility: visible; + } + } + } + &-list { + display: grid; + row-gap: 20px; + margin-top: fluid-clamp(30px, 60px, 768px); + transition: opacity 0.25s ease; + &.is-loading { + opacity: 0; + } + } + &-item { + border-radius: var(--radius-md); + background-color: #fafaff; + border: 1px solid transparent; + transition: background-color 0.25s ease, border-color 0.25s ease; + &__header { + position: relative; + padding: 25px 80px 25px 25px; + line-height: 1.2; + cursor: pointer; + &::after { + content: ''; + position: absolute; + display: block; + width: 36px; + aspect-ratio: 1; + top: 25px; + right: 25px; + background: var(--icon-angle-round) center no-repeat; + background-size: contain; + transition: transform 0.25s ease; + } + } + &__title { + font-size: var(--fs-title-sm); + font-weight: 600; + color: var(--color-dark); + } + &__descr { + margin-top: 15px; + font-size: 18px; + line-height: 1.3; + } + &__city { + position: relative; + margin-top: 15px; + padding-left: 1.25em; + color: var(--color-dark); + &::before { + content: ''; + position: absolute; + display: block; + width: 1em; + height: 1em; + top: 0.1em; + left: 0; + background: var(--icon-location-alt) center no-repeat; + background-size: contain; + } + } + &__body { + position: relative; + height: 0; + opacity: 0; + overflow: hidden; + visibility: hidden; + will-change: height, opacity; + transition: height 0.25s ease, opacity 0.25s ease, visibility 0.25s ease; + &::before { + content: ''; + position: absolute; + display: block; + height: 1px; + top: 0; + left: 25px; + right: 25px; + background-color: #ededed; + } + } + &__content { + padding: 25px; + } + &__respond { + padding: 15px 25px 30px; + } + &.is-active { + border-color: #ededed; + background-color: transparent; + .vacancies-item__header::after { + transform: rotate(-180deg); + } + .vacancies-item__body { + opacity: 1; + visibility: visible; + } + } + } + &-showmore { + margin-top: fluid-clamp(30px, 60px, 768px); + text-align: center; + transition: opacity 0.25s ease; + &.is-loading { + opacity: 0; + } + &.is-hidden { + display: none; + } + &__btn { + max-width: 265px; + width: 100%; + } + } +} + + +@include media-max($lg) { + .vacancies { + &-filter { + &__trigger { + height: 60px; + } + } + } +} + +@include media-max($md) { + .vacancies { + &-filter { + max-width: unset; + &__trigger { + height: 56px; + } + &__link { + padding-block: 12px; + } + } + &-img { + aspect-ratio: 1280/560; + } + &-item { + &__respond { + padding-top: 10px; + &-btn { + width: 100%; + } + } + } + &-showmore { + &__btn { + max-width: unset; + } + } + } +} + +@include media-max($sm) { + .vacancies { + &-filter { + margin-top: 20px; + font-size: 15px; + &__trigger { + height: 50px; + &::after { + width: 10px; + height: 10px; + } + } + &__link { + padding-block: 10px; + } + } + &-list { + row-gap: 15px; + margin-top: 25px; + } + &-subtitle { + span { + font-size: 12px; + } + } + &-item { + &__header { + padding: 20px 70px 20px 20px; + &::after { + width: 30px; + top: 20px; + right: 20px; + } + } + &__descr { + margin-top: 10px; + font-size: 15px; + } + &__city { + margin-top: 10px; + } + &__content { + padding: 20px; + } + &__respond { + padding: 5px 20px 25px; + } + } + &-showmore { + margin-top: 25px; + } + } +} + + +.feedback { + margin-top: var(--space-section); + &-body { + padding-top: fluid-clamp(25px, 60px); + padding-bottom: fluid-clamp(30px, 70px); + padding-inline: fluid-clamp(20px, 65px); + border-radius: var(--radius-lg); + background: var(--gradient-grey); + } + &-descr { + margin-top: 25px; + line-height: 1.3; + } + &-form { + &__inputs { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 10px; + margin-top: 40px; + } + &__file { + margin-top: 20px; + } + &__submit { + margin-top: 40px; + &-btn { + max-width: 312px; + width: 100%; + } + } + } +} + +@include media-max($md) { + .feedback { + &-descr { + margin-top: 20px; + } + &-form { + &__inputs { + grid-template-columns: 1fr; + row-gap: 8px; + margin-top: 30px; + } + &__submit { + &-btn { + max-width: unset; + } + } + } + } +} + +@include media-max($sm) { + .feedback { + &-descr { + margin-top: 12px; + } + &-form { + &__inputs { + margin-top: 20px; + } + &__file { + margin-top: 15px; + } + &__submit { + margin-top: 25px; + } + } + } +} + + +.info { + margin-top: var(--space-section); + &-title { + font-size: var(--fs-h2-sm); + } + &-body { + padding-top: fluid-clamp(25px, 50px); + padding-bottom: fluid-clamp(25px, 60px); + padding-inline: fluid-clamp(20px, 50px); + border-radius: var(--radius-lg); + border: 1px solid #ededed; + } + &-content { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: fluid-clamp(20px, 50px); + row-gap: fluid-clamp(20px, 35px); + margin-top: fluid-clamp(20px, 35px); + &__row { + grid-column: 1/-1; + } + } +} + +@include media-max($lg) { + .info { + &-content { + grid-template-columns: 1fr; + } + } +} + + +.error { + display: flex; + flex-direction: column; + justify-content: center; + margin: 260px 0 100px; + flex: 1; + &-body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + } + &-title { + font-size: fluid-clamp(80px, 110px); + } + &-gohome { + margin-top: fluid-clamp(20px, 40px); + &__btn { + width: fluid-clamp(180px, 240px); + } + } +} + +@include media-max($xl) { + .error { + margin-top: fluid-clamp(160px, 240px); + } +} + + +.cookie-consent { + --offset: 40px; + position: fixed; + left: 0; + right: 0; + z-index: 5; + opacity: 0; + bottom: var(--offset); + transform: translateY(calc(100% + var(--offset))); + transition: transform 0.3s ease, opacity 0.3s ease; + &.is-active { + transform: translateY(0); + opacity: 1; + } + &__dialog { + display: grid; + align-items: center; + grid-template-columns: auto 1fr auto; + max-width: 800px; + margin-left: auto; + column-gap: 20px; + padding: 20px; + border-radius: var(--radius-sm); + background-color: var(--color-grey); + &::before { + content: ''; + display: block; + width: 36px; + aspect-ratio: 1; + background: var(--icon-cookie) center no-repeat; + background-size: contain; + } + } + &__info { + font-size: 14px; + line-height: 1.2; + color: var(--color-dark); + a { + color: var(--color-red); + transition: color 0.25s ease; + &:hover { + color: var(--color-red-dark); + } + } + } + &__buttons { + display: flex; + column-gap: 15px; + .btn { + height: 48px; + font-size: 16px; + } + } + &__accept-btn { + padding: 0 25px; + } + &__reject-btn { + color: var(--color-grey-dark); + &:hover { + color: var(--color-red); + } + } +} + +@include media-max($xl) { + .cookie-consent { + --offset: 20px; + } +} + +@include media-max($md) { + .cookie-consent { + &__dialog { + align-items: start; + grid-template-columns: 1fr auto; + max-width: unset; + &::before { + grid-column: 2/3; + grid-row: 1/3; + } + } + &__info { + font-size: 12px; + } + &__buttons { + justify-self: start; + margin-top: 15px; + .btn { + height: 40px; + font-size: 14px; + } + } + &__reject-btn { + order: 2; + } + &__accept-btn { + padding: 0 20px; + } + } +} + +@include media-max($sm) { + .cookie-consent { + --offset: 15px; + &__dialog { + &::before { + width: 28px; + } + } + &__info { + font-size: 10px; + } + &__buttons { + .btn { + height: 30px; + font-size: 12px; + } + } + &__accept-btn { + padding: 0 15px; + } + } +} + + +.specs { + margin-top: var(--space-section); + scroll-margin-top: 140px; + &-body { + display: grid; + grid-template-columns: 300px 1fr; + column-gap: fluid-clamp(45px, 70px, 1024px); + } + &-tabs { + &__list { + display: grid; + row-gap: 20px; + border-right: 1px solid #e8e6e6; + } + &__item { + position: relative; + padding-right: 30px; + font-size: 18px; + line-height: 1.1; + font-weight: 600; + color: var(--color-dark); + cursor: pointer; + transition: color 0.25s ease; + &::after { + content: ''; + position: absolute; + display: block; + top: 0; + right: -1px; + width: 1px; + height: 100%; + opacity: 0; + background-color: var(--color-red); + transition: opacity 0.25s ease; + } + &.is-active { + color: var(--color-red); + &::after { + opacity: 1; + } + } + } + } + &-panel { + animation: fade-in 0.5s ease both; + &[hidden] { + display: none; + } + &__title { + font-size: var(--fs-title-sm); + } + &__content { + margin-top: fluid-clamp(20px, 35px); + } + &__footnotes { + margin-top: fluid-clamp(20px, 35px); + font-size: 14px; + p { + margin-bottom: 1.25em; + &:last-child { + margin-bottom: 0; + } + } + } + } +} + +@include media-max($lg) { + .specs { + &-body { + grid-template-columns: 1fr; + } + &-tabs { + display: flex; + margin-inline: -20px; + padding-inline: 20px; + overflow-x: auto; + scrollbar-width: none; + &::-webkit-scrollbar { + width: 0; + } + &__list { + grid-auto-flow: column; + column-gap: 20px; + border-right: none; + border-bottom: 1px solid #e8e6e6; + } + &__item { + width: fluid-clamp(160px, 220px, 375px, 1024px); + padding: 0 0 20px; + font-size: 16px; + &::after { + right: 0; + top: unset; + bottom: -1px; + width: 100%; + height: 1px; + } + } + } + &-panels { + margin-top: fluid-clamp(25px, 50px, 375px, 1024px); + } + } +} + +@include media-max($md) { + .specs { + &-tabs { + &__item { + font-size: 14px; + } + } + &-panel { + &__footnotes { + font-size: 12px; + } + } + } +} + +@include media-max($sm) { + .specs { + &-tabs { + margin-inline: -15px; + padding-inline: 15px; + &__list { + column-gap: 15px; + } + &__item { + padding-bottom: 15px; + font-size: 12px; + } + } + &-panel { + &__footnotes { + font-size: 10px; + } + } + } +} + +@media (hover: hover) { + .specs-tabs__item:hover { + color: var(--color-red); + } +} \ No newline at end of file diff --git a/wp-content/themes/hantico/footer.php b/wp-content/themes/hantico/footer.php new file mode 100644 index 0000000..d802a21 --- /dev/null +++ b/wp-content/themes/hantico/footer.php @@ -0,0 +1,189 @@ + + + + +
+ +
+ + + + + + \ No newline at end of file diff --git a/wp-content/themes/hantico/functions.php b/wp-content/themes/hantico/functions.php new file mode 100644 index 0000000..4442bb9 --- /dev/null +++ b/wp-content/themes/hantico/functions.php @@ -0,0 +1,375 @@ +get('Version'); +} + + +// Стили и скрипты темы +function theme_assets() { + // Стили + wp_enqueue_style('swiper', get_theme_file_uri('assets/libs/swiper/swiper-bundle.min.css'), array(), '12.1.4'); + wp_enqueue_style('fancybox', get_theme_file_uri('assets/libs/fancybox/fancybox.css'), array(), '6.1.14'); + wp_enqueue_style('theme-style', get_theme_file_uri('assets/css/style.css'), array(), theme_asset_version('assets/css/style.css')); + // Скрипты + wp_enqueue_script('swiper', get_theme_file_uri('assets/libs/swiper/swiper-bundle.min.js'), array(), '12.1.4', array('strategy' => 'defer')); + wp_enqueue_script('scroll-lock', get_theme_file_uri('assets/libs/scroll-lock/scroll-lock.js'), array(), '2.0.0', array('strategy' => 'defer')); + wp_enqueue_script('fancybox', get_theme_file_uri('assets/libs/fancybox/fancybox.umd.js'), array(), '6.1.14', array('strategy' => 'defer')); + wp_enqueue_script('theme-scripts', get_theme_file_uri('assets/js/scripts.js'), array(), theme_asset_version('assets/js/scripts.js'), array('strategy' => 'defer')); + // Данные калькулятора + wp_add_inline_script( + 'theme-scripts', + 'window.themeIncomeCalc = ' . wp_json_encode( + [ + 'rates' => [ + 'taxi' => get_field('income_taxi', 'option'), + 'courier' => get_field('income_courier', 'option'), + 'cargo' => get_field('income_cargo', 'option') + ] + ] + ) . ';', + 'before' + ); + // AJAX + wp_add_inline_script( + 'theme-scripts', + 'window.themeAjax = ' . wp_json_encode( + [ + 'ajaxUrl' => admin_url('admin-ajax.php'), + 'nonces' => [ + 'news' => wp_create_nonce('theme_news_nonce'), + 'review' => wp_create_nonce('theme_review_nonce'), + 'articles' => wp_create_nonce('theme_articles_nonce'), + 'vacancies' => wp_create_nonce('theme_vacancies_nonce') + ] + ] + ) . ';', + 'before' + ); +} +add_action('wp_enqueue_scripts', 'theme_assets'); + + +// Стили для админки +function theme_admin_assets() { + wp_enqueue_style('theme-admin-style', get_theme_file_uri('assets/css/admin.css'), array(), theme_asset_version('assets/css/admin.css')); +} +add_action('admin_enqueue_scripts', 'theme_admin_assets', 100); + + +// Предзагрузка ресурсов +function theme_preload($preloads) { + $preloads[] = ['href' => get_theme_file_uri('assets/fonts/Onest-Regular.woff2'), 'as' => 'font', 'type' => 'font/woff2', 'crossorigin' => 'anonymous']; + $preloads[] = ['href' => get_theme_file_uri('assets/fonts/Onest-Medium.woff2'), 'as' => 'font', 'type' => 'font/woff2', 'crossorigin' => 'anonymous']; + $preloads[] = ['href' => get_theme_file_uri('assets/fonts/Onest-SemiBold.woff2'), 'as' => 'font', 'type' => 'font/woff2', 'crossorigin' => 'anonymous']; + $preloads[] = ['href' => get_theme_file_uri('assets/fonts/Onest-Bold.woff2'), 'as' => 'font', 'type' => 'font/woff2', 'crossorigin' => 'anonymous']; + $preloads[] = ['href' => get_theme_file_uri('assets/img/icons/logo.svg'), 'as' => 'image', 'fetchpriority' => 'high']; + return $preloads; +} +add_filter('wp_preload_resources', 'theme_preload'); + + +// Подключение Яндекс-карт +function theme_ymaps() { + if (!is_page_template('templates/template-contacts.php')) { + return; + } + wp_enqueue_script('ymaps-api', 'https://api-maps.yandex.ru/v3/?apikey=bdb94b0e-bc76-4928-859f-4061373c1894&lang=ru_RU', array(), null, array('strategy' => 'async')); + wp_enqueue_script('ymaps-map', get_theme_file_uri('assets/js/map.js'), array('ymaps-api'), theme_asset_version('assets/js/map.js'), array('strategy' => 'defer')); + $contacts = get_field('contacts', 89); + $coords_array = array_map('floatval', explode(',', $contacts['coords'])); + $map_data = wp_json_encode([ + 'coordinates' => $coords_array, + 'address' => $contacts['address'], + 'markerIconUrl' => get_theme_file_uri('assets/img/icons/placemark.svg') + ]); + wp_add_inline_script('ymaps-map', 'window.contactsMapData = ' . $map_data . ';', 'before'); +} +add_action('wp_enqueue_scripts', 'theme_ymaps'); + + +// Регистрация меню +function theme_register_menus() { + register_nav_menus([ + 'header-menu' => 'Меню в шапке', + 'footer-menu' => 'Меню в футере' + ]); +} +add_action('after_setup_theme', 'theme_register_menus'); + + +// Вывод меню +function theme_menu($name, $args = []) { + $block = !empty($args['menu_block']) + ? $args['menu_block'] + : $name . '-menu'; + $defaults = [ + 'theme_location' => $name . '-menu', + 'container' => 'nav', + 'container_class' => $block, + 'menu_block' => $block, + 'menu_class' => $block . '__list', + 'items_wrap' => '
    %3$s
', + 'submenu_toggle' => false, + 'fallback_cb' => false, + 'depth' => 2, + 'walker' => new Theme_Menu_Walker() + ]; + wp_nav_menu(array_merge($defaults, $args)); +} + + +// Кастомные размеры картинок +function theme_image_sizes() { + remove_image_size('1536x1536'); + remove_image_size('2048x2048'); + add_image_size('extra_large', 1280, 1280, false); +} +add_action('after_setup_theme', 'theme_image_sizes'); + + +// Добавить большой размер картинок в селектор +function theme_image_size_names_choose($sizes) { + $new_sizes = []; + foreach ($sizes as $size => $label) { + if ($size === 'full') { + $new_sizes['extra_large'] = 'Огромный'; + } + $new_sizes[$size] = $label; + } + return $new_sizes; +} +add_filter('image_size_names_choose', 'theme_image_size_names_choose'); + + +// Максимальный размер картинок +function theme_big_image_size_threshold() { + return 1920; +} +add_filter('big_image_size_threshold', 'theme_big_image_size_threshold'); + + +// Скрыть пункты меню в админке +function remove_admin_menu_items() { + remove_menu_page('edit.php'); + remove_menu_page('edit-comments.php'); +} +add_action('admin_menu', 'remove_admin_menu_items'); + + +// Перевести число в текст +function numToWords($number) { + $units = ['', 'first', 'second', 'third', 'fourth']; + $words = $units[$number]; + return $words; +} + + +// Редирект QR-кода на правильный стор +add_action('template_redirect', function () { + if (!is_page('download')) { + return; + } + if (($_GET['redirect'] ?? '') !== 'app') { + return; + } + $download = get_field('download', 'option'); + if (empty($download) || !is_array($download)) { + return; + } + $gplay = $download['gplay'] ?? ''; + $appstore = $download['appstore'] ?? ''; + $rustore = $download['rustore'] ?? ''; + $appgallery = $download['appgallery'] ?? ''; + $ua = strtolower($_SERVER['HTTP_USER_AGENT'] ?? ''); + $has = fn($v) => str_contains($ua, $v); + $isAndroid = $has('android'); + $isIOS = ( + $has('iphone') || + $has('ipod') || + $has('ipad') || + ( + $has('macintosh') && + $has('applewebkit') && + !$has('android') && + !$has('windows') && + !$has('linux') + ) + ); + $isHuawei = $has('huawei') || $has('honor'); + if ($isIOS && $appstore) { + wp_redirect($appstore, 302); + exit; + } + if ($isAndroid) { + if ($isHuawei && $appgallery) { + wp_redirect($appgallery, 302); + exit; + } + if ($gplay) { + wp_redirect($gplay, 302); + exit; + } + if ($rustore) { + wp_redirect($rustore, 302); + exit; + } + } +}); + + +// Фикс сдвига контента +function reload_paint_guard() { ?> + + +]*)>(.*?)~isu', + function ($m) use (&$toc_items, &$toc_index, $id_prefix) { + $title = trim(wp_strip_all_tags($m[2])); + if ($title === '') { + return $m[0]; + } + $toc_index++; + $attrs = $m[1]; + if (preg_match('~\sid=(["\'])(.*?)\1~i', $attrs, $id_match)) { + $id = $id_match[2]; + } else { + $id = $id_prefix . '-' . $toc_index; + $attrs = rtrim($attrs) . ' id="' . esc_attr($id) . '"'; + } + $toc_items[] = ['id' => $id, 'title' => $title]; + return '' . $m[2] . ''; + }, + $content + ); + return [ + 'content' => $processed ?? $content, + 'toc_items' => $toc_items, + ]; +} + + +// Исключить таксономии из карты сайта +add_filter('wpseo_sitemap_exclude_taxonomy', function ($excluded, $taxonomy) { + $excluded_taxonomies = [ + 'article_category', + 'landing_category', + 'vacancy_category', + ]; + if (in_array($taxonomy, $excluded_taxonomies, true)) { + return true; + } + return $excluded; +}, 10, 2); + + +// Яндекс-метрика +function theme_yandex_metrika() { + if (is_admin()) return; +?> + + + + + + + + + + + + + + + +> + +
+ +
+
+
+ + true]); ?> +
+
+
+
\ No newline at end of file diff --git a/wp-content/themes/hantico/inc/acf.php b/wp-content/themes/hantico/inc/acf.php new file mode 100644 index 0000000..72d0470 --- /dev/null +++ b/wp-content/themes/hantico/inc/acf.php @@ -0,0 +1,258 @@ + 'Общие блоки страниц', + 'menu_title' => 'Блоки страниц', + 'menu_slug' => 'common-blocks', + 'capability' => 'edit_posts', + 'position' => 25, + 'redirect' => false + )); +} + + +// Большой редактор ACF +new AcfWysiwygHeight(); +class AcfWysiwygHeight { + public function __construct() { + add_action( + 'acf/render_field_presentation_settings/type=wysiwyg', + [$this, 'add_height_setting'] + ); + add_filter( + 'acf/prepare_field/type=wysiwyg', + [$this, 'prepare_wysiwyg_field'] + ); + add_action( + 'acf/input/admin_head', + [$this, 'print_admin_css'] + ); + } + public function add_height_setting(array $field): void { + acf_render_field_setting( + $field, + [ + 'label' => __('Большой редактор', 'lang'), + 'name' => 'wpf_wysiwyg_large', + 'type' => 'true_false', + 'ui' => 1, + ] + ); + } + public function prepare_wysiwyg_field(array $field): array { + if (empty($field['wpf_wysiwyg_large'])) { + return $field; + } + $field['wrapper']['class'] = trim( + ($field['wrapper']['class'] ?? '') . ' wpf-wysiwyg-large' + ); + return $field; + } + public function print_admin_css(): void { +?> + + { + const attrName = attr.name.toLowerCase(); + if (tagName === 'a' && ['href', 'target', 'rel'].includes(attrName)) { + return; + } + if (tagName === 'img' && ['src', 'alt'].includes(attrName)) { + return; + } + if ((tagName === 'td' || tagName === 'th') && ['colspan', 'rowspan'].includes(attrName)) { + return; + } + if (tagName === 'ol' && attrName === 'start') { + return; + } + element.removeAttribute(attr.name); + }); + if (tagName === 'a') { + removeUnsafeHref(element); + if (element.getAttribute('target') === '_blank') { + element.setAttribute('rel', 'noopener'); + } + } + } + // Удаляем совсем служебные теги Google Docs / Office. + wrapper.querySelectorAll('script, style, meta, link, xml').forEach((element) => { + element.remove(); + }); + // b → strong. + wrapper.querySelectorAll('b').forEach((element) => { + replaceTag(element, 'strong'); + }); + // i → em. + wrapper.querySelectorAll('i').forEach((element) => { + replaceTag(element, 'em'); + }); + // span разворачиваем с сохранением смысла. + wrapper.querySelectorAll('span').forEach((span) => { + const isBold = isBoldStyle(span); + const isItalic = isItalicStyle(span); + if (isBold && isItalic) { + const strong = replaceTag(span, 'strong'); + const em = document.createElement('em'); + while (strong.firstChild) { + em.appendChild(strong.firstChild); + } + strong.appendChild(em); + return; + } + if (isBold) { + replaceTag(span, 'strong'); + return; + } + if (isItalic) { + replaceTag(span, 'em'); + return; + } + unwrapElement(span); + }); + // В ячейках таблиц p не нужен — оставляем содержимое. + wrapper.querySelectorAll('th, td').forEach((cell) => { + cell.querySelectorAll('p').forEach((paragraph) => { + unwrapElement(paragraph); + }); + }); + // Удаляем все теги вне белого списка, но оставляем их содержимое. + [...wrapper.querySelectorAll('*')].reverse().forEach((element) => { + const tagName = element.tagName.toLowerCase(); + if (!allowedTags.has(tagName)) { + unwrapElement(element); + } + }); + // Чистим атрибуты. + wrapper.querySelectorAll('*').forEach((element) => { + cleanAttributes(element); + }); + args.content = wrapper.innerHTML; +} +JS; + return $init; +} +add_filter('tiny_mce_before_init', 'theme_clean_tinymce_html_on_paste'); + + +// Обернуть таблицы во wrapper для скролла +function wrap_tables($html) { + if (trim($html) === '' || ! class_exists('DOMDocument')) { + return $html; + } + $old_errors = libxml_use_internal_errors(true); + $dom = new DOMDocument(); + $dom->loadHTML( + '
' . $html . '
', + LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD + ); + $xpath = new DOMXPath($dom); + $tables = $xpath->query('//table'); + foreach ($tables as $table) { + $parent = $table->parentNode; + if ( + $parent instanceof DOMElement + && $parent->tagName === 'div' + && strpos(' ' . $parent->getAttribute('class') . ' ', ' table-wrapper ') !== false + ) { + continue; + } + $wrapper = $dom->createElement('div'); + $wrapper->setAttribute('class', 'table-wrapper'); + $parent->insertBefore($wrapper, $table); + $wrapper->appendChild($table); + } + $root = $dom->getElementById('theme-root'); + $output = ''; + if ($root) { + foreach ($root->childNodes as $child) { + $output .= $dom->saveHTML($child); + } + } + libxml_clear_errors(); + libxml_use_internal_errors($old_errors); + return $output; +} diff --git a/wp-content/themes/hantico/inc/ajax.php b/wp-content/themes/hantico/inc/ajax.php new file mode 100644 index 0000000..780123c --- /dev/null +++ b/wp-content/themes/hantico/inc/ajax.php @@ -0,0 +1,125 @@ + 'article', + 'posts_per_page' => 12, + 'paged' => $page, + 'orderby' => 'date', + 'order' => 'DESC', + ]; + if (!empty($category)) { + $args['tax_query'] = [ + [ + 'taxonomy' => 'article_category', + 'field' => 'slug', + 'terms' => $category, + ] + ]; + } + $query = new WP_Query($args); + ob_start(); + if ($query->have_posts()) { + while ($query->have_posts()) { + $query->the_post(); + get_template_part('template-parts/articles-item'); + } + wp_reset_postdata(); + } + $html = ob_get_clean(); + wp_send_json_success([ + 'html' => $html, + 'page' => $page, + 'max_pages' => $query->max_num_pages, + 'category' => $category + ]); +} +add_action('wp_ajax_theme_filter_articles', 'theme_filter_articles'); +add_action('wp_ajax_nopriv_theme_filter_articles', 'theme_filter_articles'); + + +// AJAX-фильтр вакансий +function theme_filter_vacancies() { + check_ajax_referer('theme_vacancies_nonce', 'nonce'); + $category = isset($_POST['category']) ? sanitize_title($_POST['category']) : ''; + $page = isset($_POST['page']) ? max(1, absint($_POST['page'])) : 1; + $args = [ + 'post_type' => 'vacancy', + 'posts_per_page' => 12, + 'paged' => $page, + 'orderby' => 'date', + 'order' => 'DESC', + ]; + if (!empty($category)) { + $args['tax_query'] = [ + [ + 'taxonomy' => 'vacancy_category', + 'field' => 'slug', + 'terms' => $category, + ], + ]; + } + $query = new WP_Query($args); + ob_start(); + if ($query->have_posts()) { + while ($query->have_posts()) { + $query->the_post(); + get_template_part('template-parts/vacancies-item'); + } + wp_reset_postdata(); + } + $html = ob_get_clean(); + wp_send_json_success( + [ + 'html' => $html, + 'page' => $page, + 'count' => $query->found_posts, + 'max_pages' => $query->max_num_pages, + 'category' => $category + ] + ); +} +add_action('wp_ajax_theme_filter_vacancies', 'theme_filter_vacancies'); +add_action('wp_ajax_nopriv_theme_filter_vacancies', 'theme_filter_vacancies'); + + +// AJAX-загрузка постов +function theme_load_more() { + $allowed_types = [ + 'news' => 'template-parts/news-item', + 'review' => 'template-parts/reviews-item', + ]; + $type = isset($_POST['type']) ? sanitize_key($_POST['type']) : ''; + if (!array_key_exists($type, $allowed_types)) { + wp_send_json_error(['message' => 'Invalid type'], 400); + } + check_ajax_referer("theme_{$type}_nonce", 'nonce'); + $page = isset($_POST['page']) ? max(1, absint($_POST['page'])) : 1; + $query = new WP_Query([ + 'post_type' => $type, + 'posts_per_page' => 12, + 'paged' => $page, + 'orderby' => 'date', + 'order' => 'DESC', + ]); + ob_start(); + if ($query->have_posts()) { + while ($query->have_posts()) { + $query->the_post(); + get_template_part($allowed_types[$type]); + } + wp_reset_postdata(); + } + $html = ob_get_clean(); + wp_send_json_success([ + 'html' => $html, + 'page' => $page, + 'max_pages' => $query->max_num_pages, + ]); +} +add_action('wp_ajax_theme_load_more', 'theme_load_more'); +add_action('wp_ajax_nopriv_theme_load_more', 'theme_load_more'); diff --git a/wp-content/themes/hantico/inc/breadcrumbs.php b/wp-content/themes/hantico/inc/breadcrumbs.php new file mode 100644 index 0000000..0131f3c --- /dev/null +++ b/wp-content/themes/hantico/inc/breadcrumbs.php @@ -0,0 +1,56 @@ +
'; + + $post_type_pages = [ + 'article' => 'blog', + 'news' => 'news' + ]; + + echo $wrap_before; + + printf($link, esc_url(home_url('/')), esc_html('Главная')); + + if (is_page()) { + $post_id = get_queried_object_id(); + if ($post_id) { + $parents = array_reverse(get_post_ancestors($post_id)); + foreach ($parents as $parent_id) { + printf($link, esc_url(get_permalink($parent_id)), esc_html(get_the_title($parent_id))); + } + } + printf($active, esc_html(get_the_title())); + + } elseif (is_singular()) { + $post_type = get_post_type(); + if (isset($post_type_pages[$post_type])) { + $archive_page = get_page_by_path($post_type_pages[$post_type]); + if ($archive_page) { + printf($link, esc_url(get_permalink($archive_page)), esc_html(get_the_title($archive_page))); + } else { + printf($link, esc_url(home_url('/' . $post_type_pages[$post_type] . '/')), esc_html(ucfirst($post_type_pages[$post_type]))); + } + } else { + $archive_url = get_post_type_archive_link($post_type); + if ($archive_url) { + $post_type_object = get_post_type_object($post_type); + printf($link, esc_url($archive_url), esc_html($post_type_object->labels->name)); + } + } + printf($active, esc_html(get_the_title())); + + } elseif (is_404()) { + printf($active, esc_html('Страница не найдена')); + } + + echo $wrap_after; +} diff --git a/wp-content/themes/hantico/inc/menu.php b/wp-content/themes/hantico/inc/menu.php new file mode 100644 index 0000000..feb7fc0 --- /dev/null +++ b/wp-content/themes/hantico/inc/menu.php @@ -0,0 +1,96 @@ +menu_block)) { + return sanitize_html_class($args->menu_block); + } + return 'header-menu'; + } + private function build_attributes($atts) { + $attributes = ''; + foreach ($atts as $name => $value) { + if ($value === '' || $value === false || $value === null) { + continue; + } + if ($name === 'href') { + $value = esc_url($value); + } else { + $value = esc_attr($value); + } + $attributes .= ' ' . $name . '="' . $value . '"'; + } + return $attributes; + } + public function start_lvl(&$output, $depth = 0, $args = null) { + $block = $this->get_block($args); + $indent = str_repeat("\t", $depth); + $output .= "\n" . $indent . '
    ' . "\n"; + } + public function end_lvl(&$output, $depth = 0, $args = null) { + $indent = str_repeat("\t", $depth); + $output .= $indent . '
' . "\n"; + } + public function start_el(&$output, $item, $depth = 0, $args = null, $id = 0) { + $block = $this->get_block($args); + $indent = $depth ? str_repeat("\t", $depth) : ''; + $item_classes = ! empty($item->classes) ? (array) $item->classes : []; + $has_children = ! empty($this->has_children) + || in_array('menu-item-has-children', $item_classes, true); + $is_current = in_array('current-menu-item', $item_classes, true) + || in_array('current_page_item', $item_classes, true); + $is_current_parent = in_array('current-menu-parent', $item_classes, true) + || in_array('current-menu-ancestor', $item_classes, true) + || in_array('current_page_parent', $item_classes, true) + || in_array('current_page_ancestor', $item_classes, true); + $li_classes = [ + $block . '__item', + ]; + if ($has_children) { + $li_classes[] = 'has-children'; + } + if ($is_current) { + $li_classes[] = 'is-active'; + } + if ($is_current_parent) { + $li_classes[] = 'is-current-parent'; + } + $output .= $indent . '
  • '; + $title = apply_filters('the_title', $item->title, $item->ID); + $title = apply_filters('nav_menu_item_title', $title, $item, $args, $depth); + $atts = [ + 'href' => ! empty($item->url) ? $item->url : '', + 'class' => $block . '__link', + ]; + if (! empty($item->target)) { + $atts['target'] = $item->target; + } + if (! empty($item->xfn)) { + $atts['rel'] = $item->xfn; + } + if ($is_current) { + $atts['aria-current'] = 'page'; + } + $atts = apply_filters('nav_menu_link_attributes', $atts, $item, $args, $depth); + $item_output = ''; + $item_output .= ! empty($args->before) ? $args->before : ''; + $item_output .= 'build_attributes($atts) . '>'; + $item_output .= ! empty($args->link_before) ? $args->link_before : ''; + $item_output .= $title; + $item_output .= ! empty($args->link_after) ? $args->link_after : ''; + $item_output .= ''; + $show_submenu_toggle = ! empty($args->submenu_toggle); + if ($has_children && $show_submenu_toggle) { + $item_output .= ''; + } + $item_output .= ! empty($args->after) ? $args->after : ''; + $output .= apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args); + } + public function end_el(&$output, $item, $depth = 0, $args = null) { + $output .= '
  • ' . "\n"; + } +} diff --git a/wp-content/themes/hantico/index.php b/wp-content/themes/hantico/index.php new file mode 100644 index 0000000..67041f6 --- /dev/null +++ b/wp-content/themes/hantico/index.php @@ -0,0 +1,29 @@ + + + + + +
    + + + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/page.php b/wp-content/themes/hantico/page.php new file mode 100644 index 0000000..7478a21 --- /dev/null +++ b/wp-content/themes/hantico/page.php @@ -0,0 +1,24 @@ + + + + + +
    + + + +
    +
    +
    +
    +
    + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/screenshot.png b/wp-content/themes/hantico/screenshot.png new file mode 100644 index 0000000..ec50cf2 Binary files /dev/null and b/wp-content/themes/hantico/screenshot.png differ diff --git a/wp-content/themes/hantico/single-article.php b/wp-content/themes/hantico/single-article.php new file mode 100644 index 0000000..877ca3b --- /dev/null +++ b/wp-content/themes/hantico/single-article.php @@ -0,0 +1,69 @@ + + +
    + + + + +
    +
    +
    + Назад +
    +
    +

    +
    + +
    +
    +
    +
    +
    + + + +
    +
    +
    + + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/single-courier.php b/wp-content/themes/hantico/single-courier.php new file mode 100644 index 0000000..3934748 --- /dev/null +++ b/wp-content/themes/hantico/single-courier.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/themes/hantico/single-driver.php b/wp-content/themes/hantico/single-driver.php new file mode 100644 index 0000000..216063e --- /dev/null +++ b/wp-content/themes/hantico/single-driver.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/themes/hantico/single-news.php b/wp-content/themes/hantico/single-news.php new file mode 100644 index 0000000..4703b12 --- /dev/null +++ b/wp-content/themes/hantico/single-news.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/themes/hantico/style.css b/wp-content/themes/hantico/style.css new file mode 100644 index 0000000..2cc5213 --- /dev/null +++ b/wp-content/themes/hantico/style.css @@ -0,0 +1,8 @@ +/*! +Theme Name: Hantico +Author: SEO Jazz +Theme URI: https://seojazz.ru/ +Author URI: https://seojazz.ru/ +Update URI: https://seojazz.ru/ +Version: 1.0.0 +*/ \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/advantages.php b/wp-content/themes/hantico/template-parts/advantages.php new file mode 100644 index 0000000..2c7c877 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/advantages.php @@ -0,0 +1,29 @@ + +
    +
    +

    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/articles-item.php b/wp-content/themes/hantico/template-parts/articles-item.php new file mode 100644 index 0000000..8e4bbce --- /dev/null +++ b/wp-content/themes/hantico/template-parts/articles-item.php @@ -0,0 +1,41 @@ + + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/articles.php b/wp-content/themes/hantico/template-parts/articles.php new file mode 100644 index 0000000..df05fcf --- /dev/null +++ b/wp-content/themes/hantico/template-parts/articles.php @@ -0,0 +1,29 @@ + 'article', + 'posts_per_page' => 3, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + $blog_query = new WP_Query($blog_args); + if ($blog_query->have_posts()) : +?> +
    +
    +

    Новое в блоге Hantico

    +
    Полезные статьи и идеи для вдохновения
    +
    +
    +
    + have_posts()) { + $blog_query->the_post(); + get_template_part('template-parts/articles-item', null, ['class' => 'swiper-slide']); + } wp_reset_postdata(); + ?> +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/cities.php b/wp-content/themes/hantico/template-parts/cities.php new file mode 100644 index 0000000..b26549d --- /dev/null +++ b/wp-content/themes/hantico/template-parts/cities.php @@ -0,0 +1,77 @@ + +
    + +
    \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/faq.php b/wp-content/themes/hantico/template-parts/faq.php new file mode 100644 index 0000000..7caa563 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/faq.php @@ -0,0 +1,21 @@ + +
    +
    +

    Частые вопросы

    +
    Если не нашёл ответ — напиши в поддержку, там живые люди и отвечают быстро
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/features.php b/wp-content/themes/hantico/template-parts/features.php new file mode 100644 index 0000000..049a631 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/features.php @@ -0,0 +1,53 @@ + +
    +
    +

    +
    + +
    +
    +
    +
    +
    +
    + <?php echo $item['img']['alt']; ?> +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/feedback.php b/wp-content/themes/hantico/template-parts/feedback.php new file mode 100644 index 0000000..a5f6dc0 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/feedback.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/getapp.php b/wp-content/themes/hantico/template-parts/getapp.php new file mode 100644 index 0000000..05d5e0f --- /dev/null +++ b/wp-content/themes/hantico/template-parts/getapp.php @@ -0,0 +1,50 @@ + +
    +
    +
    +
    +

    Скачай и начни уже сегодня

    +
    Hantico есть на всех платформах. Установи приложение, пройди регистрацию — и через 15 минут ты готов к первому заказу
    + +
    +
    +
    + <?php echo $getapp_qrcode['alt']; ?> +
    +
    + +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/hero.php b/wp-content/themes/hantico/template-parts/hero.php new file mode 100644 index 0000000..0c4b9ff --- /dev/null +++ b/wp-content/themes/hantico/template-parts/hero.php @@ -0,0 +1,145 @@ + +
    +
    +
    +
    + +
    +
    + <?php echo $hero_img['alt']; ?> +
    + +
    + +
    +
    + <?php echo $item['icon']['alt']; ?> +
    +
    +
    + +
    + +
    +
    +
    +
    + +
    +
    +
      + +
    • + +
    +
    +
    + + +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/income.php b/wp-content/themes/hantico/template-parts/income.php new file mode 100644 index 0000000..630536d --- /dev/null +++ b/wp-content/themes/hantico/template-parts/income.php @@ -0,0 +1,115 @@ + +
    +
    +

    +
    +
    +
    +
    + Тип занятости + + + +
    +
    +
    +
    + График работы +
    +
    + + + 8 + ч + +
    + +
    +
    +
    + + + 5 + дн + +
    + +
    +
    +
    + Город +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    Твой доход месяц
    + 80 000 ₽ +
    при выбранном графике
    +
    +
    +
    + За день + 4 000 ₽ +
    +
    + За неделю + 20 000 ₽ +
    +
    + За час + 500 ₽ +
    +
    +
    +
    + +
    Расчёт примерный. Реальный доход зависит от сезона, класса авто, района, активности водителя
    + +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/info.php b/wp-content/themes/hantico/template-parts/info.php new file mode 100644 index 0000000..3e7b525 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/info.php @@ -0,0 +1,26 @@ + +
    +
    +
    +

    +
    + +
    + +
    +
    + +
    + +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/jobs.php b/wp-content/themes/hantico/template-parts/jobs.php new file mode 100644 index 0000000..02bed78 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/jobs.php @@ -0,0 +1,46 @@ + $post_type, + 'posts_per_page' => -1, + 'orderby' => 'menu_order', + 'order' => 'ASC', + 'tax_query' => [ + [ + 'taxonomy' => 'landing_category', + 'field' => 'slug', + 'terms' => 'vacancy' + ] + ] + ]; + $jobs_query = new WP_Query($jobs_args); + if ($jobs_query->have_posts()) : +?> +
    +
    +
    +

    +
      + have_posts()) : $jobs_query->the_post(); ?> +
    • + +
    • + +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/news-item.php b/wp-content/themes/hantico/template-parts/news-item.php new file mode 100644 index 0000000..c614e36 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/news-item.php @@ -0,0 +1,27 @@ + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/payments.php b/wp-content/themes/hantico/template-parts/payments.php new file mode 100644 index 0000000..705f135 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/payments.php @@ -0,0 +1,25 @@ +
    +
    +
    +
    +

    Деньги приходят мгновенно без задержек

    +
    Сразу после завершения заказа — без ожидания, без скрытых комиссий
    +
    +
    +
    + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/related.php b/wp-content/themes/hantico/template-parts/related.php new file mode 100644 index 0000000..a28a670 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/related.php @@ -0,0 +1,39 @@ + $post_type, + 'posts_per_page' => 6, + 'post__not_in' => [$current_post_id], + 'orderby' => 'date', + 'order' => 'DESC' + ]; + if ($terms) { + $term_ids = wp_list_pluck($terms, 'term_id'); + $related_args['tax_query'] = [ + [ + 'taxonomy' => 'article_category', + 'field' => 'term_id', + 'terms' => $term_ids, + ], + ]; + } + $related_query = new WP_Query($related_args); + if ($related_query->have_posts()) : + $title = $post_type === 'news' ? 'Другие новости' : 'Вам также может понравиться'; +?> +
    +
    +

    +
    + have_posts()) { + $related_query->the_post(); + get_template_part('template-parts/articles-item'); + } wp_reset_postdata(); + ?> +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/requirements.php b/wp-content/themes/hantico/template-parts/requirements.php new file mode 100644 index 0000000..9e9e185 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/requirements.php @@ -0,0 +1,38 @@ + +
    +
    +

    +
    +
      + +
    • + +
    +
    + +
    +

    +
      + +
    • + +
    +
    + +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/reviews-item.php b/wp-content/themes/hantico/template-parts/reviews-item.php new file mode 100644 index 0000000..55d9475 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/reviews-item.php @@ -0,0 +1,22 @@ +
    +
    + get_the_title(), + 'loading' => 'lazy', + 'decoding' => 'async' + ] + ); + ?> +
    +
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/reviews.php b/wp-content/themes/hantico/template-parts/reviews.php new file mode 100644 index 0000000..7c63d80 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/reviews.php @@ -0,0 +1,58 @@ + 'review', + 'posts_per_page' => 8, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + $reviews_query = new WP_Query($reviews_args); + if ($reviews_query->have_posts()) : +?> +
    +
    +
    +

    Отзывы наших клиентов

    +
    Живые истории водителей и курьеров, которые подключились к Hantico
    +
    +
    +
    +
    +
    + have_posts()) : $reviews_query->the_post(); ?> +
    +
    + get_the_title(), + 'loading' => 'lazy', + 'fetchpriority' => 'low', + 'decoding' => 'async' + ] + ); + ?> +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/scheme.php b/wp-content/themes/hantico/template-parts/scheme.php new file mode 100644 index 0000000..6242c06 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/scheme.php @@ -0,0 +1,47 @@ + +
    +
    +

    +
    +
    + +
    + +
    +
    + <?php echo $item['img']['alt']; ?> +
    + +
    + +
    + <?php echo $item['img']['alt']; ?> +
    + +
    +
    +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/services.php b/wp-content/themes/hantico/template-parts/services.php new file mode 100644 index 0000000..a791d02 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/services.php @@ -0,0 +1,20 @@ + +
    +
    +
    +

    +
    + +
    + <?php echo $item['alt']; ?> +
    + +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/socials.php b/wp-content/themes/hantico/template-parts/socials.php new file mode 100644 index 0000000..fbefef0 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/socials.php @@ -0,0 +1,71 @@ + +
    +
    +

    +
    +
    + + +
    *Instagram принадлежат компании Meta, признанной экстремистской на территории РФ
    + +
    +
    + <?php echo $socials_img['alt']; ?> +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/specs.php b/wp-content/themes/hantico/template-parts/specs.php new file mode 100644 index 0000000..633cb36 --- /dev/null +++ b/wp-content/themes/hantico/template-parts/specs.php @@ -0,0 +1,37 @@ + +
    +
    +

    +
    +
    +
    +
      + + + +
    +
    +
    + +
    > +

    +
    + +
    + +

    + +
    + +
    + +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/vacancies-item.php b/wp-content/themes/hantico/template-parts/vacancies-item.php new file mode 100644 index 0000000..9dde96b --- /dev/null +++ b/wp-content/themes/hantico/template-parts/vacancies-item.php @@ -0,0 +1,13 @@ +
    +
    +
    +
    +
    +
    + +
    \ No newline at end of file diff --git a/wp-content/themes/hantico/template-parts/work.php b/wp-content/themes/hantico/template-parts/work.php new file mode 100644 index 0000000..da8773d --- /dev/null +++ b/wp-content/themes/hantico/template-parts/work.php @@ -0,0 +1,41 @@ + +
    +
    +

    Направления подработки

    +
    + +
    +
    +
    +
      + +
    • + +
    +
    + + + + +
    +
    +
    + <?php echo $item['img']['alt']; ?> +
    +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-about.php b/wp-content/themes/hantico/templates/template-about.php new file mode 100644 index 0000000..2307ac8 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-about.php @@ -0,0 +1,87 @@ + + + + + +
    + + + + +
    +
    +

    +
    +
    +
    + <?php echo $about_img['alt']; ?> +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    + +
    +

    +
    + +
    + + <?php echo $item['img']['alt']; ?> + +
    + + + +
    + +
    + +
    +
    + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-blog.php b/wp-content/themes/hantico/templates/template-blog.php new file mode 100644 index 0000000..be3f7f1 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-blog.php @@ -0,0 +1,155 @@ + + + + + +
    + + 'article', + 'posts_per_page' => 6, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + $blog_query = new WP_Query($blog_args); + if ($blog_query->have_posts()) : + ?> +
    +
    + +
    +
    +

    +
    +
    + +
    + +
    +
    +
    + have_posts()) : $blog_query->the_post(); ?> +
    +
    + +
      + +
    • name; ?>
    • + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    +
    + + + 'article_category', + 'hide_empty' => true, + ]); + $blog_args = [ + 'post_type' => 'article', + 'posts_per_page' => 12, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + if (!empty($current_category)) { + $blog_args['tax_query'] = [ + [ + 'taxonomy' => 'article_category', + 'field' => 'slug', + 'terms' => $current_category + ], + ]; + } + $blog_query = new WP_Query($blog_args); + if ($blog_query->have_posts()) : + ?> +
    +
    +

    Все статьи

    + + + +
    + have_posts()) { + $blog_query->the_post(); + get_template_part('template-parts/articles-item'); + } wp_reset_postdata(); + ?> +
    + +
    +
    + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-cargo.php b/wp-content/themes/hantico/templates/template-cargo.php new file mode 100644 index 0000000..79af1ac --- /dev/null +++ b/wp-content/themes/hantico/templates/template-cargo.php @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-contacts.php b/wp-content/themes/hantico/templates/template-contacts.php new file mode 100644 index 0000000..7ec71ad --- /dev/null +++ b/wp-content/themes/hantico/templates/template-contacts.php @@ -0,0 +1,51 @@ + + + + + +
    + + + + +
    +
    +

    +
    +
    +
    Связаться с нами
    +
      +
    • + +
    • +
    • + +
    • + +
    + +
    +
    +
    +
    +
    +
    +
    + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-courier.php b/wp-content/themes/hantico/templates/template-courier.php new file mode 100644 index 0000000..d0a2b1d --- /dev/null +++ b/wp-content/themes/hantico/templates/template-courier.php @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-download.php b/wp-content/themes/hantico/templates/template-download.php new file mode 100644 index 0000000..d18878f --- /dev/null +++ b/wp-content/themes/hantico/templates/template-download.php @@ -0,0 +1,49 @@ + + + + + +
    + + +
    +
    +

    Сканируйте QR код

    +
    Наведите камеру для скачивания приложения
    +
    + <?php echo $download_qrcode['alt']; ?> +
    +
    Если вы сейчас используете мобильный телефон или планшет, то воспользуйтесь ссылками ниже
    + +
    +
    + + +
    \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-driver.php b/wp-content/themes/hantico/templates/template-driver.php new file mode 100644 index 0000000..d53aa94 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-driver.php @@ -0,0 +1,27 @@ + + + + + +
    + + + + + + + + + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-faq.php b/wp-content/themes/hantico/templates/template-faq.php new file mode 100644 index 0000000..064a1e8 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-faq.php @@ -0,0 +1,41 @@ + + + + + +
    + + + + +
    +
    +

    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-guide.php b/wp-content/themes/hantico/templates/template-guide.php new file mode 100644 index 0000000..82a6c96 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-guide.php @@ -0,0 +1,39 @@ + + + + + +
    + + + + +
    +
    +

    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-news.php b/wp-content/themes/hantico/templates/template-news.php new file mode 100644 index 0000000..f4b6645 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-news.php @@ -0,0 +1,51 @@ + + + + + +
    + + + + 'news', + 'posts_per_page' => 12, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + $news_query = new WP_Query($news_args); + if ($news_query->have_posts()) : + ?> +
    +
    +

    +
    + have_posts()) { + $news_query->the_post(); + get_template_part('template-parts/news-item'); + } wp_reset_postdata(); + ?> +
    + +
    +
    + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-reviews.php b/wp-content/themes/hantico/templates/template-reviews.php new file mode 100644 index 0000000..30257d0 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-reviews.php @@ -0,0 +1,53 @@ + + + + + +
    + + + + 'review', + 'posts_per_page' => 12, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + $reviews_query = new WP_Query($reviews_args); + if ($reviews_query->have_posts()) : + ?> +
    +
    +

    +
    + have_posts()) { + $reviews_query->the_post(); + get_template_part('template-parts/reviews-item'); + } wp_reset_postdata(); + ?> +
    + +
    +
    + + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-vacancies.php b/wp-content/themes/hantico/templates/template-vacancies.php new file mode 100644 index 0000000..3f17055 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-vacancies.php @@ -0,0 +1,107 @@ + + + + + +
    + + + + 'vacancy_category', + 'hide_empty' => true, + ]); + $vacancies_args = [ + 'post_type' => 'vacancy', + 'posts_per_page' => 12, + 'orderby' => 'date', + 'order' => 'DESC' + ]; + if (!empty($current_category)) { + $vacancies_args['tax_query'] = [ + [ + 'taxonomy' => 'vacancy_category', + 'field' => 'slug', + 'terms' => $current_category + ], + ]; + } + $vacancies_query = new WP_Query($vacancies_args); + if ($vacancies_query->have_posts()) : + ?> +
    +
    +

    +
    + +
    +

    Поиск вакансий found_posts; ?>

    + + + +
    + have_posts()) { + $vacancies_query->the_post(); + get_template_part('template-parts/vacancies-item'); + } wp_reset_postdata(); + ?> +
    + +
    +
    + + + + + +
    + + \ No newline at end of file diff --git a/wp-content/themes/hantico/templates/template-work.php b/wp-content/themes/hantico/templates/template-work.php new file mode 100644 index 0000000..24d14d3 --- /dev/null +++ b/wp-content/themes/hantico/templates/template-work.php @@ -0,0 +1,66 @@ + + + + + +
    + + + + +
    +
    +

    +
    + +
    +
    +
    +
      + +
    • + +
    +
    + + + + +
    +
    +
    + <?php echo $item['img']['alt']; ?> +
    +
    + +
    +
    +
    + + + + + + + + + +
    + + \ No newline at end of file