

/* Start:/local/design/cheeselive/js/swiper/swiper-bundle.min.css?179266156918454*/
/**
 * Swiper 11.2.6
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 19, 2025
 */

@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.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{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
/* End */


/* Start:/local/design/cheeselive/js/fancyapps/fancybox/fancybox.css?179266156925343*/
:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, 0.1);--f-spinner-color-2: rgba(17, 24, 28, 0.8);--f-spinner-stroke: 2.75}.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{100%{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-throwOutUp{animation:var(--f-throw-out-duration, 0.175s) ease-out both f-throwOutUp}.f-throwOutDown{animation:var(--f-throw-out-duration, 0.175s) ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0, calc(var(--f-throw-out-distance, 150px) * -1), 0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0, var(--f-throw-out-distance, 150px), 0);opacity:0}}.f-zoomInUp{animation:var(--f-transition-duration, 0.2s) ease .1s both f-zoomInUp}.f-zoomOutDown{animation:var(--f-transition-duration, 0.2s) ease both f-zoomOutDown}@keyframes f-zoomInUp{from{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}to{transform:scale(1) translate3d(0, 0, 0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}}.f-fadeIn{animation:var(--f-transition-duration, 0.2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeIn;z-index:2}.f-fadeOut{animation:var(--f-transition-duration, 0.2s) var(--f-transition-easing, ease) var(--f-transition-delay, 0s) both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeOut{100%{opacity:0}}.f-fadeFastIn{animation:var(--f-transition-duration, 0.2s) ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:var(--f-transition-duration, 0.1s) ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}100%{opacity:1}}@keyframes f-fadeFastOut{100%{opacity:0}}.f-fadeSlowIn{animation:var(--f-transition-duration, 0.5s) ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:var(--f-transition-duration, 0.5s) ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeSlowOut{100%{opacity:0}}.f-crossfadeIn{animation:var(--f-transition-duration, 0.2s) ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:calc(var(--f-transition-duration, 0.2s)*.5) linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-crossfadeOut{100%{opacity:0}}.f-slideIn.from-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInNext}.f-slideIn.from-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideInPrev}.f-slideOut.to-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutNext}.f-slideOut.to-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translateX(100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideInNext{0%{transform:translateX(-100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideOutNext{100%{transform:translateX(-100%)}}@keyframes f-slideOutPrev{100%{transform:translateX(100%)}}.f-classicIn.from-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:var(--f-transition-duration, 0.85s) cubic-bezier(0.16, 1, 0.3, 1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translateX(-75px);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translateX(75px);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicOutNext{100%{transform:translateX(-75px);opacity:0}}@keyframes f-classicOutPrev{100%{transform:translateX(75px);opacity:0}}: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-hover-bg: #e0e0e0;--f-button-active-bg: #d0d0d0;--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--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-disabled-opacity: 0.65}.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;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);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media(hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}.f-carousel__nav .f-button.is-prev,.f-carousel__nav .f-button.is-next,.fancybox__nav .f-button.is-prev,.fancybox__nav .f-button.is-next{position:absolute;z-index:1}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-next{top:50%;transform:translateY(-50%)}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-prev{left:var(--f-button-prev-pos)}.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-next{right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev,.is-horizontal.is-rtl .fancybox__nav .f-button.is-prev{left:auto;right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next,.is-horizontal.is-rtl .fancybox__nav .f-button.is-next{right:auto;left:var(--f-button-prev-pos)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-next{top:auto;left:50%;transform:translateX(-50%)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-prev{top:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-next{bottom:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-prev svg,.is-vertical .f-carousel__nav .f-button.is-next svg,.is-vertical .fancybox__nav .f-button.is-prev svg,.is-vertical .fancybox__nav .f-button.is-next svg{transform:rotate(90deg)}.f-carousel__nav .f-button:disabled,.fancybox__nav .f-button:disabled{pointer-events:none}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden !important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-hover-color: #fff;--fancybox-bg: rgba(24, 24, 27, 0.98);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, 0.1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;top:0;left:0;bottom:0;right:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#f8f8f8;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:var(--fancybox-zIndex, 1050);outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;-ms-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:contain}.fancybox__container *,.fancybox__container *::before,.fancybox__container *::after{box-sizing:inherit}.fancybox__container::backdrop{background-color:rgba(0,0,0,0)}.fancybox__backdrop{position:fixed;top:0;left:0;bottom:0;right:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__viewport.is-draggable{cursor:move;cursor:grab}.fancybox__viewport.is-dragging{cursor:move;cursor:grabbing}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;overscroll-behavior:contain;transform:translate3d(0, 0, 0);backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video{overflow:hidden}.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide::before,.fancybox__slide::after{content:"";flex:0 0 0;margin:auto}.fancybox__backdrop:empty,.fancybox__viewport:empty,.fancybox__track:empty,.fancybox__slide:empty{display:block}.fancybox__content{align-self:center;display:flex;flex-direction:column;position:relative;margin:0;padding:2rem;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;border-radius:0;z-index:20}.is-loading .fancybox__content{opacity:0}.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:rgba(0,0,0,0);min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translate3d(0, 0, 0);backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-animating .fancybox__content,.is-dragging .fancybox__content{will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;object-fit:contain;user-select:none;filter:blur(0px)}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px 0;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:absolute;top:0;right:8px;z-index:40}.fancybox__content>.f-button.is-close-btn{--f-button-width: 34px;--f-button-height: 34px;--f-button-border-radius: 4px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: transparent;--f-button-hover-bg: transparent;--f-button-active-bg: transparent;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:absolute;top:-38px;right:0;opacity:.75}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:rgba(24,24,27,.5)}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 50%;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, 0.6);--f-button-active-bg: rgba(0, 0, 0, 0.6);--f-button-hover-bg: rgba(0, 0, 0, 0.6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:5px;right:5px}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 50%;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: transparent;--f-button-hover-bg: rgba(24, 24, 27, 0.3);--f-button-active-bg: rgba(24, 24, 27, 0.5);--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.5));--f-button-svg-disabled-opacity: 0.65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";top:-30px;right:-20px;left:-20px;bottom:-30px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -0.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -0.5));z-index:30;cursor:pointer}.fancybox-protected{position:absolute;top:0;left:0;right:0;bottom:0;z-index:40;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;object-fit:contain;z-index:40;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-enter-duration, 0.25s) ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:var(--f-backdrop-enter-duration, 0.35s) ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:var(--f-interface-exit-duration, 0.15s) ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:var(--f-backdrop-exit-duration, 0.35s) ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.fancybox__container.is-compact .has-iframe .fancybox__content,.fancybox__container.is-compact .has-map .fancybox__content,.fancybox__container.is-compact .has-pdf .fancybox__content{width:100%;height:100%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:960px;height:540px;max-width:100%;max-height:100%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:rgba(24,24,27,.9);color:#fff}.has-map .fancybox__content{background:#e5e3df}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:rgba(0,0,0,0)}.fancybox-placeholder{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 2px;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0}.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1}.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px}.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2, #e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden;transform:translate3d(0, 0, 0)}.f-thumbs__track{display:flex}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:max-content}.is-modern .f-thumbs__track::before{content:"";position:absolute;top:0;bottom:0;left:calc((var(--f-thumb-clip-width, 0))*-0.5);width:calc(var(--width, 0)*1px + var(--f-thumb-clip-width, 0));cursor:pointer}.is-modern .f-thumbs__slide{width:var(--f-thumb-clip-width);transform:translate3d(calc(var(--shift, 0) * -1px), 0, 0);transition:none;pointer-events:none}.is-modern.is-resting .f-thumbs__slide{transition:transform .33s ease}.is-modern.is-resting .f-thumbs__slide__button{transition:clip-path .33s ease}.is-using-tab .is-modern .f-thumbs__slide:focus-within{filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.f-thumbs__slide__button{appearance:none;width:var(--f-thumb-width);height:100%;margin:0 -100% 0 -100%;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:rgba(0,0,0,0);outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-modern .f-thumbs__slide__button{--clip-path: inset( 0 calc( ((var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0))) * (1 - var(--progress, 0)) * 0.5 ) round var(--f-thumb-border-radius, 0) );clip-path:var(--clip-path)}.is-classic .is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-classic .is-nav-selected .f-thumbs__slide__button::after{content:"";position:absolute;top:0;left:0;right:0;height:auto;bottom:0;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;object-fit:cover;border-radius:var(--f-thumb-border-radius)}.f-thumbs.is-horizontal .f-thumbs__track{padding:8px 0 12px 0}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 2px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(0.23, 1, 0.32, 1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 16px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px}.fancybox__thumbs.is-masked{max-height:0px !important}.is-closing .fancybox__thumbs{transition:none !important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, 0.94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: rgba(24, 24, 27, 0.65);--f-button-hover-bg: rgba(70, 70, 73, 0.65);--f-button-active-bg: rgba(90, 90, 93, 0.65);--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: 0.65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Adjusted","Segoe UI","Liberation Sans",sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);text-shadow:var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, 0.5));pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:17px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;user-select:none;pointer-events:none}
/* End */


/* Start:/local/design/cheeselive/css/style.fluid.css?1793220664118251*/
/* =========================================================
   Сыроварня Чудиновой — основной стиль
   Брейкпоинты (как в макете):
   > 1599   — Desktop 1920
   ≤ 1599   — Small desktop 1200
   ≤ 1023   — Tablet 768
   ≤ 767    — Mobile 360
   ========================================================= */

/* ---------- Reset ---------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, button, input, textarea {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    box-sizing: border-box;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, main {
    display: block;
}
*, *:before, *:after { box-sizing: border-box; }
ol, ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
img, svg { vertical-align: top; max-width: 100%; }
a { text-decoration: none; color: inherit; outline: none; }
button { background: none; cursor: pointer; color: inherit; }
input, textarea { outline: none; }

/* ---------- Tokens ---------- */
:root {
    --black: #3C352C;
    --grey: #59534C;
    --blue: #597597;
    --blue-dark: #4A6A91;
    --bg: #FAF9F5;
    --bej: #F3EEE5;
    --bej-50: rgba(243, 238, 229, 0.5);
    --stroke: #DFD8C8;
    --stroke-dark: #CAC4B6;
    --black-10: rgba(60, 53, 44, 0.1);
    --white: #FFFFFF;
    --white-10: rgba(255, 255, 255, 0.1);
    --popup-backdrop: rgba(41, 48, 56, .7);

    --gutter: 8rem;
    --section-gap: 8rem;
    --inner-gap: 5rem;
    --header-h: 13rem;

    --ease: cubic-bezier(.25, .8, .25, 1);
}

html {
    width: 100%;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    scroll-behavior: smooth;
}

/* ---------- Масштабирование ----------
   Все размеры в rem: 1rem = 10px макета (36px в макете = 3.6rem).
   Внутри каждого диапазона страница пропорционально масштабируется
   от ширины своего макета. Чтобы поменять поведение — правьте только этот блок.
   ≥ 1920      — как макет 1920 (не растёт дальше)
   1600–1919   — макет 1920 × (ширина / 1920)
   1200–1599   — макет 1200 1:1; 1024–1199 — уменьшается от 1200
   768–1023    — макет 768 × (ширина / 768), не больше ×1.1
   ≤ 767       — макет 360 × (ширина / 360), не больше ×1.2 */
html { font-size: 10px; }
@media (max-width: 1919px) { html { font-size: calc(100vw / 192); } }
@media (max-width: 1599px) { html { font-size: min(10px, calc(100vw / 120)); } }
@media (max-width: 1023px) { html { font-size: min(11px, calc(100vw / 76.8)); } }
@media (max-width: 767px)  { html { font-size: min(12px, calc(100vw / 36)); } }
html.has-open-popup,
html.with-fancybox,
body.no-scroll {
    overflow: hidden;
}
html.with-fancybox body.hide-scrollbar {
    overflow: clip !important;
    margin-right: var(--fancybox-body-margin, 0px);
}
html.with-fancybox {
    overflow-y: scroll;
}
body {
    font-family: "Inter", sans-serif;
    font-weight: 300;
    color: var(--black);
    background: var(--bg);
    font-size: 1.6rem;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
}

/* ---------- Layout ---------- */
.wrapper {
    min-width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.wrapper-inside {
    width: calc(100% - var(--gutter) * 2);
    max-width: 176rem;
    margin: 0 auto;
}
.content {
    flex-grow: 1;
}
.page-sections {
    display: flex;
    flex-direction: column;
    gap: var(--section-gap);
    padding-bottom: var(--section-gap);
}
.page-sections.pt {
    padding-top: var(--section-gap);
}
.section {
    position: relative;
}
.section-head {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}
.section-head.center {
    align-items: center;
    text-align: center;
}
.section-head-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}
.section-inner {
    display: flex;
    flex-direction: column;
    gap: var(--inner-gap);
}
.section-inner.center {
    align-items: center;
}
.section-btn {
    display: flex;
    justify-content: center;
}

/* ---------- Typography ---------- */
.prata { font-family: "Prata", serif; font-weight: 400; }
.h1 {
    font-family: "Prata", serif;
    font-weight: 400;
    font-size: 5.6rem;
    line-height: 1.3;
}
.h2 {
    font-family: "Prata", serif;
    font-weight: 400;
    font-size: 4.8rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--black);
}
.h2.tight { line-height: 1.25; }
.h2.center { text-align: center; }
.h2.white, .white { color: var(--white); }
.title-40 { font-family: "Prata", serif; font-size: 4rem; line-height: 1.3; }
.title-36 { font-family: "Prata", serif; font-size: 3.6rem; line-height: 1.25; text-transform: uppercase; }
.title-32 { font-family: "Prata", serif; font-size: 3.2rem; line-height: 1.3; }
.title-28 { font-family: "Prata", serif; font-size: 2.8rem; line-height: 1.25; }
.title-24 { font-family: "Prata", serif; font-size: 2.4rem; line-height: 1.3; }
.title-20 { font-family: "Prata", serif; font-size: 2rem; line-height: 1.4; }
.text-20 { font-size: 2rem; line-height: 1.4; }
.text-18 { font-size: 1.8rem; line-height: 1.4; }
.text-16 { font-size: 1.6rem; line-height: 1.4; }
.text-14 { font-size: 1.4rem; line-height: 1.3; }
.text-grey { color: var(--grey); }
.text-blue { color: var(--blue); }
.label {
    font-size: 1.6rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--grey);
}
.label.light { color: rgba(255, 255, 255, 0.7); }
.t-center { text-align: center; }

/* ---------- Icons ---------- */
.icon {
    display: inline-flex;
    flex-shrink: 0;
}
.icon svg {
    width: 100%;
    height: 100%;
}

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    height: 6rem;
    padding: 0 3rem;
    border-radius: 4rem;
    border: 1px solid transparent;
    font-family: "Inter", sans-serif;
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), opacity .3s var(--ease);
}
.btn .btn-arrow {
    width: 3rem;
    height: 1.3rem;
    transition: transform .3s var(--ease);
}
.btn:hover .btn-arrow {
    transform: translateX(.5rem);
}
.btn.wide { padding: 0 6rem; }
.btn.xwide { padding: 0 8rem; }
.btn.square { border-radius: 1rem; }
.btn.full { width: 100%; }

.btn-blue {
    background: var(--blue);
    color: var(--white);
}
.btn-blue:hover {
    background: var(--blue-dark);
}
.btn-bej {
    background: var(--bej);
    color: var(--black);
}
.btn-bej:hover {
    background: var(--stroke);
}
.btn-outline {
    border-color: var(--stroke);
    color: var(--grey);
}
.btn-outline:hover {
    background: var(--bej);
    border-color: var(--bej);
}
.btn-outline-dark {
    border-color: var(--stroke-dark);
    color: var(--black);
}
.btn-outline-dark:hover {
    background: var(--bej);
    border-color: var(--bej);
}
.btn-outline-light {
    border-color: var(--bej-50);
    color: var(--white);
}
.btn-outline-light:hover {
    background: var(--white);
    border-color: var(--white);
    color: var(--blue);
}
/* Обводочная кнопка на бежевой плашке: ховер не должен сливаться с фоном */
.shop-info .btn-outline:hover {
    background: var(--white);
    border-color: var(--white);
    color: var(--blue);
}

/* Круглая кнопка-иконка (корзина, бургер) */
.btn-circle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 6rem;
    height: 6rem;
    border-radius: 50%;
    border: 1px solid var(--stroke-dark);
    color: var(--black);
    transition: background-color .3s var(--ease), border-color .3s var(--ease);
}
.btn-circle:hover {
    background: var(--bej);
    border-color: var(--bej);
}
.btn-circle .icon {
    width: 2.6rem;
    height: 2.6rem;
}
.cart-count {
    position: absolute;
    top: -1px;
    right: -1px;
    min-width: 2rem;
    height: 2rem;
    padding: 0 .4rem;
    border-radius: 1rem;
    background: var(--blue);
    color: var(--white);
    font-size: 1rem;
    font-weight: 400;
    line-height: 2rem;
    text-align: center;
    transition: transform .3s var(--ease);
}
.cart-count:empty,
.cart-count[data-count="0"] {
    display: none;
}
.cart-count.bump {
    transform: scale(1.25);
}

/* Стрелки слайдеров */
.arrow-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4.2rem;
    height: 4.2rem;
    color: var(--black);
    cursor: pointer;
    transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.arrow-btn .icon {
    width: 4rem;
    height: 1.8rem;
}
.arrow-btn.prev .icon {
    transform: scaleX(-1);
}
.arrow-btn:hover {
    transform: translateX(.3rem);
}
.arrow-btn.prev:hover {
    transform: translateX(-.3rem);
}
.arrow-btn.swiper-button-disabled {
    opacity: .4;
    pointer-events: none;
}
.arrow-btn.white { color: var(--white); }
.arrow-btn.swiper-button-lock { display: none; }

.slider-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5rem;
}
.slider-nav.right {
    justify-content: flex-end;
    gap: 2rem;
}
.slider-fraction {
    font-size: 1.8rem;
    line-height: 1.4;
    color: var(--grey);
    white-space: nowrap;
}
.slider-fraction.white { color: var(--white); }

/* Пагинация точками (как dotted в макете) */
.dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: auto !important;
}
.dots .swiper-pagination-bullet {
    width: .6rem;
    height: .6rem;
    margin: 0 !important;
    background: var(--black);
    opacity: .4;
    transition: opacity .3s;
}
.dots .swiper-pagination-bullet-active {
    opacity: 1;
}
.dots.white .swiper-pagination-bullet {
    background: var(--white);
}
.dots.swiper-pagination-lock { display: none; }

/* Ссылка с подчёркиванием при наведении (из старого проекта) */
.link {
    position: relative;
}
.link.line-link:before {
    content: "";
    position: absolute;
    width: 0;
    height: 1px;
    left: 0;
    bottom: -.2rem;
    background: currentColor;
    transition: width .3s;
}
.link.line-link:hover:before {
    width: 100%;
}

/* ---------- «Билетные» вырезы по углам (notch) ---------- */
.notch {
    --r: 2rem;
    -webkit-mask:
        radial-gradient(circle var(--r) at 0 0, transparent 98%, #000) top left,
        radial-gradient(circle var(--r) at 100% 0, transparent 98%, #000) top right,
        radial-gradient(circle var(--r) at 0 100%, transparent 98%, #000) bottom left,
        radial-gradient(circle var(--r) at 100% 100%, transparent 98%, #000) bottom right;
    -webkit-mask-size: 51% 51%;
    -webkit-mask-repeat: no-repeat;
    mask:
        radial-gradient(circle var(--r) at 0 0, transparent 98%, #000) top left,
        radial-gradient(circle var(--r) at 100% 0, transparent 98%, #000) top right,
        radial-gradient(circle var(--r) at 0 100%, transparent 98%, #000) bottom left,
        radial-gradient(circle var(--r) at 100% 100%, transparent 98%, #000) bottom right;
    mask-size: 51% 51%;
    mask-repeat: no-repeat;
}

/* ---------- Social ---------- */
.socials {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.social-small {
    display: inline-flex;
    width: 2.4rem;
    height: 2.4rem;
    color: var(--stroke-dark);
    transition: color .3s var(--ease);
}
.social-small .icon {
    width: 100%;
    height: 100%;
}
.social-small:hover {
    color: var(--blue);
}
.social-badge {
    display: inline-flex;
    width: 5rem;
    height: 5rem;
    transition: transform .3s var(--ease);
}
.social-badge img {
    width: 100%;
    height: 100%;
}
.social-badge:hover {
    transform: rotate(18deg) scale(1.05);
}

/* ---------- Forms ---------- */
.form {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    width: 100%;
}
.field {
    width: 100%;
    position: relative;
}
.field.half {
    width: calc(50% - 1rem);
}
.input {
    display: block;
    width: 100%;
    height: 6.6rem;
    padding: 0 2rem;
    border-radius: 1rem;
    border: 1px solid var(--stroke);
    background: var(--white);
    font-family: "Inter", sans-serif;
    font-weight: 300;
    font-size: 1.6rem;
    line-height: 1.4;
    color: var(--black);
    transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
}
textarea.input {
    height: 6.6rem;
    min-height: 6.6rem;
    padding: 2.1rem 2rem;
    resize: none;
    overflow: hidden;
}
.input::placeholder {
    color: var(--grey);
    opacity: 1;
}
.input:hover {
    border-color: var(--stroke-dark);
}
.input:focus {
    border-color: var(--blue);
}
.input.error,
.field.error .input {
    border-color: #C0563F;
}

.custom-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    position: relative;
    cursor: pointer;
    color: var(--grey);
    font-size: 1.4rem;
    line-height: 1.3;
}
.custom-checkbox-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}
.checkbox-icon {
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--stroke);
    border-radius: .6rem;
    background: var(--white);
    transition: background-color .2s ease, border-color .2s ease;
}
.checkbox-icon::after {
    content: "";
    display: block;
    width: 1.2rem;
    height: .6rem;
    margin: .6rem auto 0;
    border-left: .2rem solid #fff;
    border-bottom: .2rem solid #fff;
    opacity: 0;
    transform: rotate(-45deg) scale(.7);
    transition: opacity .2s ease, transform .2s ease;
}
.custom-checkbox .text {
    padding-top: .3rem;
}
.custom-checkbox .text a {
    text-decoration: underline;
    text-underline-offset: .2rem;
}
.custom-checkbox .text a:hover {
    text-decoration: none;
}
.custom-checkbox-input:checked + .checkbox-icon {
    border-color: var(--blue);
    background-color: var(--blue);
}
.custom-checkbox-input:checked + .checkbox-icon::after {
    opacity: 1;
    transform: rotate(-45deg) scale(1);
}
.custom-checkbox-input:focus-visible + .checkbox-icon {
    outline: .2rem solid var(--blue);
    outline-offset: .2rem;
}
.custom-checkbox:hover .checkbox-icon {
    border-color: var(--blue);
}
.custom-checkbox.error .checkbox-icon {
    border-color: #C0563F;
}
.custom-checkbox.light {
    color: var(--white);
    font-size: 1.2rem;
    text-align: left;
}
.custom-checkbox.light .checkbox-icon {
    border-color: var(--white);
}

/* Теги (фильтры, номиналы, способы получения) */
.tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 4.8rem;
    padding: 0 2rem;
    border-radius: 4rem;
    border: 1px solid var(--stroke);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--grey);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .3s var(--ease), border-color .3s var(--ease);
}
.tag:hover {
    border-color: var(--stroke-dark);
}
.tag.active {
    background: var(--bej);
    border-color: var(--bej);
}
.tags {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* =========================================================
   HEADER
   ========================================================= */
.header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--bg);
    transition: box-shadow .3s var(--ease), transform .4s var(--ease);
}
.header.scrolled {
    box-shadow: 0 1rem 3rem rgba(60, 53, 44, .06);
}
.header-container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    height: var(--header-h);
}
.header-left,
.header-right {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.header-right {
    justify-content: flex-end;
    gap: 3rem;
}
.header-contacts {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.header-phone {
    font-weight: 400;
    font-size: 1.6rem;
    line-height: 1.4;
    text-transform: uppercase;
    white-space: nowrap;
}
.header-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.btn-menu .icon {
    width: 2.4rem;
    height: 2rem;
    color: var(--stroke-dark);
}
.header-logo {
    display: block;
    padding: 0 4.2rem;
}
.header-logo img {
    display: block;
    width: 19.2rem;
    height: auto;
}
.header-logo .logo-short {
    display: none;
}

/* ---------- Меню (выезжающая панель) ---------- */
.shadow {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(41, 48, 56, .7);
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s var(--ease);
}
.shadow.active {
    opacity: 1;
    pointer-events: auto;
}
.menu {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 201;
    width: 60rem;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    padding: 6rem 6rem 4rem 8rem;
    background: var(--blue);
    color: var(--white);
    border-radius: 0 4rem 0 0;
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform .5s var(--ease);
}
.menu.active {
    transform: translateX(0);
}
.menu-close {
    position: absolute;
    top: 2.4rem;
    right: 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    transition: transform .3s var(--ease);
}
.menu-close .icon {
    width: 1.7rem;
    height: 1.7rem;
}
.menu-close:hover {
    transform: rotate(90deg);
}
.menu-inside {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
}
.menu-nav ul {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.menu-nav a {
    font-family: "Prata", serif;
    font-size: 3.2rem;
    line-height: 1.3;
    display: inline-block;
    transition: opacity .3s, transform .3s var(--ease);
}
.menu-nav a:hover {
    opacity: .7;
    transform: translateX(.6rem);
}
.menu-bottom {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.menu-contacts {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.menu-contacts .phone {
    font-size: 2.4rem;
    line-height: 1.4;
}
.menu-contacts .text-16 {
    font-size: 1.6rem;
}
.menu-bottom .btn {
    display: none;
}
.menu.active .menu-nav li {
    animation: menuItem .5s var(--ease) both;
}
.menu.active .menu-nav li:nth-child(2) { animation-delay: .04s; }
.menu.active .menu-nav li:nth-child(3) { animation-delay: .08s; }
.menu.active .menu-nav li:nth-child(4) { animation-delay: .12s; }
.menu.active .menu-nav li:nth-child(5) { animation-delay: .16s; }
.menu.active .menu-nav li:nth-child(6) { animation-delay: .20s; }
.menu.active .menu-nav li:nth-child(7) { animation-delay: .24s; }
.menu.active .menu-nav li:nth-child(8) { animation-delay: .28s; }
@keyframes menuItem {
    from { opacity: 0; transform: translateX(-2rem); }
    to { opacity: 1; transform: translateX(0); }
}

/* =========================================================
   POPUPS (Fancybox inline)
   ========================================================= */
.fancybox__container {
    --fancybox-bg: var(--popup-backdrop);
}
.fancybox__slide.has-inline {
    padding: 4rem 2rem;
}
.fancybox__content > .f-button.is-close-btn {
    display: none;
}
.popup {
    position: relative;
    display: none;
    color: var(--black);
    width: 70rem;
    max-width: 100%;
    padding: 6rem 5rem 5rem;
    border-radius: 3rem;
    background: var(--bej);
}
.popup-close {
    position: absolute;
    top: 2.4rem;
    right: 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--grey);
    transition: transform .3s var(--ease);
    z-index: 2;
}
.popup-close .icon {
    width: 1.7rem;
    height: 1.7rem;
}
.popup-close:hover {
    transform: rotate(90deg);
}
.popup-head {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    text-align: center;
    margin-bottom: 4rem;
}
.popup-thanks {
    padding: 6rem 5rem;
    text-align: center;
    display: none;
}
.popup-thanks-inside {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.popup-thanks .heart {
    width: 7.2rem;
    margin-bottom: 2rem;
}

/* =========================================================
   HERO (главный слайдер)
   ========================================================= */
.hero-slider .swiper-slide {
    height: auto;
}
.hero-slide {
    display: flex;
    gap: 1rem;
    height: 70rem;
}
.hero-panel {
    position: relative;
    flex: 0 0 calc(50% - .5rem);
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 10rem 6rem 4rem;
    background: var(--blue);
    color: var(--white);
}
.hero-text {
    display: flex;
    flex-direction: column;
    gap: 6rem;
    align-items: flex-start;
}
.hero-text-inside {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.hero-title {
    max-width: 73.8rem;
}
.hero-text .btn {
    width: 24rem;
}
.hero-image {
    position: relative;
    flex: 0 0 calc(50% - .5rem);
    min-width: 0;
    overflow: hidden;
    background: #EAEAEA;
}
.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.06);
    transition: transform 1.6s var(--ease);
}
.hero-slider .swiper-slide-active .hero-image img {
    transform: scale(1);
}
.hero-nav {
    position: absolute;
    right: calc(50% + 6.5rem);
    bottom: 4rem;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 2rem;
}
.hero-nav .arrow-btn {
    color: var(--white);
}
.hero-dots {
    display: none;
}
.hero-slider {
    position: relative;
}
.hero-slider .hero-text > * {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.hero-slider .swiper-slide-active .hero-text > * {
    opacity: 1;
    transform: translateY(0);
}
.hero-slider .swiper-slide-active .hero-text > *:nth-child(2) {
    transition-delay: .15s;
}

/* Преимущества под слайдером */
.adv-grid {
    display: flex;
    gap: 2rem;
    margin-top: 2rem;
}
.adv-item {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    gap: 2.4rem;
    padding: 3rem;
    border-radius: 2rem;
    background: var(--bej);
    font-size: 1.6rem;
    line-height: 1.4;
}
.adv-item img {
    flex-shrink: 0;
    width: 7.2rem;
    height: 7.2rem;
}

/* =========================================================
   КАРТОЧКИ КАТЕГОРИЙ
   ========================================================= */
.categories-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}
.categories-grid > .category-card {
    width: calc(25% - 1.5rem);
}
.category-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
    padding: 1rem 1rem 3rem;
    border-radius: 4rem;
    background: var(--bej);
    overflow: hidden;
}
.category-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 405 / 370;
}
.category-card-image-inside {
    width: 100%;
    height: 100%;
    border-radius: 3rem;
    overflow: hidden;
}
.category-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.category-card:hover .category-card-image img {
    transform: scale(1.06);
}
.category-card-badge {
    position: absolute;
    left: 50%;
    bottom: -2.5rem;
    width: 7rem;
    height: 7rem;
    transform: translateX(-50%);
    --badge-bg: #F3EEE5;
    --badge-fg: #597597;
    transition: transform .5s var(--ease);
}
.category-card-badge svg {
    width: 100%;
    height: 100%;
}
.category-card-badge svg path {
    transition: fill .3s var(--ease);
}
.category-card:hover .category-card-badge {
    --badge-bg: #597597;
    --badge-fg: #FFFFFF;
    transform: translateX(-50%) rotate(45deg);
}
.category-card-desc {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0 2rem;
    text-align: center;
    width: 100%;
}
.category-card-title {
    min-height: 8.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Prata", serif;
    font-size: 3.2rem;
    line-height: 1.3;
}
.category-card-text {
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--grey);
}

/* =========================================================
   КАРТОЧКИ ТОВАРОВ
   ========================================================= */
.product-card {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    height: 100%;
    padding: 1rem 1rem 3rem;
    border-radius: 4rem;
    background: var(--bej);
    overflow: hidden;
}
.product-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 405 / 340;
    border-radius: 3rem;
    overflow: hidden;
}
.product-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.product-card:hover .product-card-image img {
    transform: scale(1.06);
}
/* Шильдики «Популярное» / «Рекомендуем» — поверх фото, в левом верхнем углу */
.product-card-image {
    position: relative;
}
.product-badges {
    position: absolute;
    top: 1.6rem;
    left: 1.6rem;
    right: 1.6rem;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    pointer-events: none;
}
.product-badges.static {
    position: static;
    margin-bottom: .4rem;
}
.product-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    height: 2.8rem;
    padding: 0 1.2rem 0 1rem;
    border-radius: 2rem;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.product-badge svg {
    flex-shrink: 0;
    width: 1.3rem;
    height: 1.3rem;
}
.product-badge.popular {
    background: rgba(250, 249, 245, .88);
    color: var(--black);
}
.product-badge.popular svg {
    color: #C0563F;
}
.product-badge.featured {
    background: rgba(74, 106, 145, .9);
    color: var(--white);
}
.product-badges.static .product-badge.popular {
    background: var(--bg);
}
.product-card-info {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 2rem;
}
.product-card-desc {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-height: 8.4rem;
}
.product-card-title {
    font-family: "Prata", serif;
    font-size: 2rem;
    line-height: 1.4;
    transition: color .3s;
}
.product-card-title:hover {
    color: var(--blue);
}
.product-extra {
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--blue);
}
.product-extra--detail {
    margin-top: -1.6rem;
    font-size: 1.6rem;
}
.product-card-weight {
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--grey);
}
.product-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 5.6rem;
}
.product-card-price {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.3;
    white-space: nowrap;
}

/* Кнопка «в корзину» и счётчик */
.cart-control {
    position: relative;
}
.btn-to-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    height: 5.6rem;
    padding: 0 3rem;
    border-radius: 4rem;
    background: var(--blue);
    color: var(--white);
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background-color .3s var(--ease);
}
.btn-to-cart .icon {
    width: 2rem;
    height: 2rem;
}
.btn-to-cart:hover {
    background: var(--blue-dark);
}
.counter {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    width: 17.2rem;
    height: 5.6rem;
    padding: 0 .6rem;
    border-radius: 4rem;
    background: var(--blue);
    color: var(--white);
}
.counter-btn {
    width: 4.4rem;
    height: 4.4rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    line-height: 1;
    color: var(--white);
    transition: background-color .3s;
}
.counter-btn:hover {
    background: rgba(255, 255, 255, .15);
}
.counter-value {
    flex-grow: 1;
    text-align: center;
    font-size: 1.6rem;
}
.cart-control.in-cart .btn-to-cart {
    display: none;
}
.cart-control.in-cart .counter {
    display: flex;
    animation: fadeIn .3s var(--ease);
}
@keyframes fadeIn {
    from { opacity: 0; transform: scale(.95); }
    to { opacity: 1; transform: scale(1); }
}

/* Табы популярных товаров */
.tabs {
    width: 100%;
    border-bottom: 1px solid var(--black-10);
    overflow-x: auto;
    scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none; }
.tabs-inside {
    display: flex;
    justify-content: center;
    gap: 5rem;
    min-width: max-content;
    margin: 0 auto;
}
.tab {
    position: relative;
    padding-bottom: 3rem;
    font-family: "Prata", serif;
    font-size: 2rem;
    line-height: 1.4;
    white-space: nowrap;
    opacity: .4;
    cursor: pointer;
    transition: opacity .3s;
}
.tab:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: var(--black);
    transform: scaleX(0);
    transition: transform .4s var(--ease);
}
.tab:hover {
    opacity: .7;
}
.tab.active {
    opacity: 1;
}
.tab.active:after {
    transform: scaleX(1);
}

.products-slider .swiper {
    overflow: visible;
}
.products-slider-wrap {
    overflow: hidden;
    width: 100%;
}
.products-slider .swiper-slide {
    width: calc(25% - 1.5rem);
    height: auto;
}
.products-slider .swiper-slide.is-hidden {
    display: none;
}

.products-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}
.products-grid > .product-card {
    width: calc(25% - 1.5rem);
    height: auto;
}

/* =========================================================
   СЕРТИФИКАТ (баннер на главной)
   ========================================================= */
.cert-banner {
    position: relative;
    padding-top: 4.4rem;
}
.cert-banner-inside {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 6rem;
    background: var(--blue);
    color: var(--white);
    min-height: 55.6rem;
}
.cert-banner-text {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5rem;
    width: 80.9rem;
    max-width: 50%;
    padding: 8rem 0;
}
.cert-banner-text-inside {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.cert-banner-image {
    position: absolute;
    right: 6rem;
    bottom: 0;
    width: 81rem;
    max-width: 46%;
    z-index: 2;
    pointer-events: none;
}
.cert-banner-image img {
    width: 100%;
    height: auto;
}

/* =========================================================
   О СЫРОВАРНЕ
   ========================================================= */
.about-block {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
.about-text {
    width: calc(50% - 1rem);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5rem;
    padding: 4rem 10rem 0 0;
}
.about-btn-mobile {
    display: none;
}
.about-photos {
    position: relative;
    width: calc(50% - 1rem);
}
.about-photos-slider {
    position: relative;
}
.about-photos-slide {
    position: relative;
    aspect-ratio: 870 / 624;
}
.photo-frame {
    position: absolute;
    padding: 1rem;
    border-radius: 3.4rem;
    background: var(--white);
    overflow: hidden;
}
.photo-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 2.4rem;
    background: #EAEAEA;
}
.photo-frame.big {
    left: 0;
    top: 0;
    width: 71.264%;
    height: 100%;
}
.photo-frame.small {
    left: 60.92%;
    top: 16.03%;
    width: 39.08%;
    height: 70.51%;
}
.about-photos-nav {
    position: absolute;
    left: 74.71%;
    top: 91.35%;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 2rem;
}
.about-photos-slider .swiper-slide {
    opacity: 0 !important;
    transition: opacity .3s 1.25s !important;
}
.about-photos-slider .swiper-slide-active {
    z-index: 2;
    opacity: 1 !important;
    transition-delay: 0s !important;
}

/* =========================================================
   ИСТОРИЯ / ВИДЕО («Восхитительно-уютное место»)
   ========================================================= */
.story {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5rem;
    padding: 8rem 6rem 6rem;
    border-radius: 4rem;
    background: var(--blue);
    color: var(--white);
    text-align: center;
}
.story-text {
    max-width: 116.6rem;
}
.story-video {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1640 / 824;
    border-radius: 2rem;
    overflow: hidden;
    background: #D7D7D7;
}
.story-video img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 28%;
}
.story-video > video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #000;
}
.play-btn {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 14rem;
    height: 14rem;
    transform: translate(-50%, -50%);
    transition: transform .5s var(--ease);
}
.play-btn img {
    width: 100%;
    height: 100%;
}
.story-video:hover .play-btn {
    transform: translate(-50%, -50%) scale(1.08) rotate(10deg);
}

/* =========================================================
   ОТЗЫВЫ
   ========================================================= */
.reviews-slider .swiper-slide {
    width: calc(25% - 1.5rem);
    height: auto;
}
.review-card {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    min-height: 40rem;
    height: 100%;
    padding: 3rem;
    border-radius: 4rem;
    background: var(--white);
    overflow: hidden;
}
.review-head {
    display: flex;
    align-items: flex-start;
    gap: 1.6rem;
}
.review-author {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--grey);
}
.review-quote {
    width: 3.4rem;
    transform: rotate(180deg);
}
.review-stars {
    width: 10.8rem;
    height: 2rem;
}
.review-text {
    font-size: 1.6rem;
    line-height: 1.4;
    overflow: hidden;
}
.btn-yandex .ya-logo {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
}
.btn-yandex .ya-logo img:first-child { width: 1.8rem; height: 2.3rem; }
.btn-yandex .ya-logo img:last-child { width: 11.1rem; height: 1.7rem; }

/* =========================================================
   ОПТ (синий блок с прайсами)
   ========================================================= */
.opt-block {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 0 6rem;
    background: var(--blue);
    color: var(--white);
}
.opt-text {
    flex: 0 0 calc(50% - 1rem);
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5rem;
    padding: 8rem 6rem 8rem 0;
}
.opt-features {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem 3rem;
}
.opt-feature {
    width: 35rem;
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    font-size: 1.8rem;
    line-height: 1.4;
}
.opt-feature img {
    width: 7.2rem;
    height: 7.2rem;
    flex-shrink: 0;
}
.opt-prices {
    flex: 0 0 calc(50% - 1rem);
    min-width: 0;
    display: flex;
    gap: 1rem;
}
.price-card {
    position: relative;
    width: 40rem;
    max-width: calc(50% - .5rem);
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 1rem 1rem 3rem;
    border-radius: 4rem;
    background: var(--blue-dark);
    text-align: center;
    color: var(--white);
}
.price-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 380 / 314;
}
.price-card-image-inside {
    width: 100%;
    height: 100%;
    border-radius: 3rem;
    overflow: hidden;
}
.price-card-image-inside img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.price-card:hover .price-card-image-inside img {
    transform: scale(1.06);
}
.price-card-badge {
    position: absolute;
    left: 50%;
    bottom: -2.5rem;
    width: 7rem;
    height: 7rem;
    transform: translateX(-50%);
    transition: transform .4s var(--ease);
}
.price-card:hover .price-card-badge {
    transform: translateX(-50%) translateY(.4rem);
}
.price-card-desc {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0 2rem;
}
.price-card-meta {
    font-size: 1.4rem;
    line-height: 1.3;
    color: rgba(255, 255, 255, .5);
}

/* =========================================================
   НОВОСТИ
   ========================================================= */
.news-card {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.news-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 425 / 420;
    border-radius: 2rem;
    overflow: hidden;
}
.news-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.news-card:hover .news-card-image img {
    transform: scale(1.05);
}
.news-card-desc {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.news-card-date {
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--grey);
}
.news-card-title {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.3;
    transition: color .3s;
}
.news-card:hover .news-card-title {
    color: var(--blue);
}
.news-slider .swiper-slide {
    width: calc(25% - 1.5rem);
    height: auto;
}
.news-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 4rem 2rem;
}
.news-grid > .news-card {
    width: calc(25% - 1.5rem);
}

/* =========================================================
   КОНТАКТЫ + ФОРМА
   ========================================================= */
.contact-block {
    display: flex;
    gap: 1rem;
}
.contact-info {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4rem;
    padding: 6rem;
    background: var(--blue);
    color: var(--white);
}
.contact-shop {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.contact-shop-name {
    font-size: 2.4rem;
    line-height: 1.4;
}
.contact-shop-data {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
.contact-shop-data .phone {
    font-size: 2rem;
    line-height: 1.4;
}
.contact-shop-data .address {
    font-size: 1.6rem;
    line-height: 1.4;
}
.contact-form {
    width: calc(50% - .5rem);
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    padding: 6rem 3.7rem;
    background: var(--bej);
}
.contact-form-inside {
    width: 100%;
    max-width: 80rem;
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
.contact-form-head {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    text-align: center;
}
.map {
    position: relative;
    width: 100%;
    height: 50rem;
    border-radius: 4rem;
    overflow: hidden;
    background: #EDEAE2;
    margin-top: 2rem;
}
.map > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.map-pin {
    position: absolute;
    display: block;
    width: 4.6rem;
    height: 6.9rem;
    transform: translate(-50%, -100%);
    cursor: pointer;
    transition: transform .3s var(--ease);
}
.map-pin:hover {
    transform: translate(-50%, -100%) translateY(-.6rem);
}
.map-pin-label {
    position: absolute;
    left: 50%;
    bottom: calc(100% + .8rem);
    transform: translateX(-50%) translateY(.6rem);
    min-width: 22rem;
    padding: 1.2rem 1.6rem;
    border-radius: 1.4rem;
    background: var(--white);
    box-shadow: 0 1rem 3rem rgba(60, 53, 44, .15);
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--black);
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s, transform .3s var(--ease);
}
.map-pin-label b {
    display: block;
    font-family: "Prata", serif;
    font-weight: 400;
    font-size: 1.6rem;
    margin-bottom: .4rem;
}
.map-pin:hover .map-pin-label,
.map-pin.active .map-pin-label {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}
.map-pin img {
    width: 100%;
    height: 100%;
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer {
    background: var(--blue-dark);
    color: var(--white);
    border-radius: 4rem 4rem 0 0;
    padding: 6rem 0 3rem;
}
.footer-inside {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}
.footer-top {
    display: flex;
    gap: 2rem;
    padding-bottom: 4rem;
    border-bottom: 1px solid var(--white-10);
}
.footer-subscribe-title {
    width: calc(50% - 1rem);
    padding-right: 8rem;
    font-family: "Prata", serif;
    font-size: 3.2rem;
    line-height: 1.3;
}
.footer-subscribe {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.footer-subscribe-row {
    display: flex;
    gap: 2rem;
}
.footer-subscribe-row .input {
    flex: 1 1 0;
    min-width: 0;
}
.footer-subscribe-row .btn {
    width: 27.7rem;
    height: 6.6rem;
    flex-shrink: 0;
    gap: 1rem;
}
.footer-subscribe-row .btn-blue:hover {
    background: var(--white);
    color: var(--blue);
}
.footer-middle {
    display: flex;
    gap: 2rem;
    padding-bottom: 4rem;
    border-bottom: 1px solid var(--white-10);
}
.footer-logo {
    width: 27.7rem;
    flex-shrink: 0;
}
.footer-logo img {
    width: 100%;
    height: auto;
}
.footer-contacts {
    width: 57.4rem;
    padding-left: 14.8rem;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.footer-contacts-data {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    font-size: 1.6rem;
    line-height: 1.4;
}
.footer-contacts-data .phone {
    font-size: 2.4rem;
}
.footer-nav {
    flex-grow: 1;
    display: flex;
    gap: 2rem;
}
.footer-nav ul {
    width: 27.6rem;
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
}
.footer-nav ul:last-child {
    width: auto;
    flex-grow: 1;
}
.footer-nav a {
    font-weight: 400;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
}
.footer-bottom {
    display: flex;
    gap: 2rem;
    font-size: 1.2rem;
    line-height: 1.3;
}
.footer-bottom > * {
    flex: 1 1 0;
}
.footer-bottom > *:last-child {
    text-align: right;
}
.footer a:hover {
    opacity: .75;
}

/* =========================================================
   ВНУТРЕННИЕ СТРАНИЦЫ — общий заголовок
   ========================================================= */
.page-title {
    background: var(--bej);
    padding: 8rem 0;
}
.page-title-inside {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5rem;
    text-align: center;
}
.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    font-size: 1.4rem;
    line-height: 1.3;
    color: var(--grey);
}
.breadcrumbs .icon {
    width: 1.5rem;
    height: 1.5rem;
}
.breadcrumbs a:hover {
    color: var(--blue);
}
.breadcrumbs.left {
    padding-top: 3rem;
}

/* SEO-текст */
.seo-text {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding-right: 10rem;
}

/* =========================================================
   КАТАЛОГ — фильтр-теги
   ========================================================= */
.filter {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.filter-arrow {
    flex-shrink: 0;
    width: 6rem;
    height: 4.8rem;
    border-radius: 4rem;
    background: var(--bej);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black);
    transition: background-color .3s;
}
.filter-arrow .icon {
    width: 2rem;
    height: 1.8rem;
}
.filter-arrow.prev .icon {
    transform: scaleX(-1);
}
.filter-arrow:hover {
    background: var(--stroke);
}
.filter-arrow.disabled .icon {
    opacity: .4;
}
.filter.is-fit .filter-arrow {
    display: none;
}
.filter.no-scroll .filter-arrow {
    display: none;
}
.filter-tags {
    flex-grow: 1;
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-behavior: smooth;
}
.filter-tags::-webkit-scrollbar { display: none; }
.catalog-list {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

/* Каталог: панель над товарами — фильтр-теги слева, сортировка по цене справа */
.catalog-toolbar {
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 2rem;
}
.catalog-toolbar > .filter {
    flex: 1 1 auto;
    min-width: 0;
}
.catalog-toolbar.only-sort {
    justify-content: flex-end;
}
.catalog-sort {
    position: relative;
    flex-shrink: 0;
    z-index: 20;
}
.catalog-sort-btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    height: 4.8rem;
    padding: 0 2rem;
    border-radius: 4rem;
    border: 1px solid var(--stroke);
    background: var(--bg);
    font: inherit;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--grey);
    white-space: nowrap;
    cursor: pointer;
    transition: border-color .3s var(--ease), background-color .3s var(--ease);
}
.catalog-sort-btn:hover,
.catalog-sort.open .catalog-sort-btn {
    border-color: var(--stroke-dark);
}
.catalog-sort-btn:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}
.catalog-sort-value {
    color: var(--black);
}
.catalog-sort-chev {
    flex-shrink: 0;
    width: 1.2rem;
    height: .8rem;
    margin-left: .6rem;
    color: var(--black);
    transition: transform .3s var(--ease);
}
.catalog-sort.open .catalog-sort-chev {
    transform: rotate(180deg);
}
.catalog-sort.loading .catalog-sort-btn {
    opacity: .6;
    cursor: progress;
}
.catalog-sort-menu {
    position: absolute;
    top: calc(100% + .8rem);
    right: 0;
    min-width: 100%;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .8rem;
    border-radius: 2.4rem;
    border: 1px solid var(--stroke);
    background: var(--bg);
    box-shadow: 0 1.6rem 4rem rgba(60, 53, 44, .12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-.8rem);
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s linear .25s;
}
.catalog-sort.open .catalog-sort-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility 0s;
}
.catalog-sort-option {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 4.4rem;
    padding: 0 4.4rem 0 1.6rem;
    border-radius: 1.6rem;
    font-size: 1.4rem;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--grey);
    white-space: nowrap;
    transition: background-color .2s var(--ease), color .2s var(--ease);
}
.catalog-sort-option:hover,
.catalog-sort-option:focus-visible {
    background: var(--bej-50);
    color: var(--black);
    outline: none;
}
.catalog-sort-option.active {
    background: var(--bej);
    color: var(--black);
}
.catalog-sort-option.active::after {
    content: "";
    position: absolute;
    right: 1.8rem;
    top: 50%;
    width: 1rem;
    height: .55rem;
    margin-top: -.45rem;
    border-left: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(-45deg);
}

/* =========================================================
   КАРТОЧКА ТОВАРА (детальная)
   ========================================================= */
.product-detail {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
/* Фото товара — вертикальные 2:3 (как исходники). Высота галереи
   подстраивается под высоту окна, ширина считается из пропорций. */
.product-gallery {
    --main-h: clamp(52rem, calc(100svh - var(--header-h) - 14rem), 72rem);
    --thumb-h: calc((var(--main-h) - 11.6rem) / 3);
    display: flex;
    gap: 2rem;
    height: var(--main-h);
    flex-shrink: 0;
}
.product-thumbs {
    width: calc(var(--thumb-h) * 2 / 3);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.product-thumbs-arrow {
    width: 100%;
    height: 3.8rem;
    flex-shrink: 0;
    border-radius: 2rem;
    background: var(--bej);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--black);
    transition: background-color .3s;
}
.product-thumbs-arrow .icon {
    width: 1.8rem;
    height: 1.6rem;
    transform: rotate(-90deg);
}
.product-thumbs-arrow.next .icon {
    transform: rotate(90deg);
}
.product-thumbs-arrow:hover {
    background: var(--stroke);
}
.product-thumbs-arrow.swiper-button-disabled .icon {
    opacity: .4;
}
.product-thumbs-arrow.swiper-button-lock {
    display: none;
}
/* Ровно 3 миниатюры в высоту (slidesPerView: 3 в main.fluid.js) */
.product-thumbs .swiper {
    height: calc(var(--thumb-h) * 3 + 2rem);
    width: 100%;
    flex-shrink: 0;
    margin: 0;
}
.product-thumbs .swiper-slide {
    border-radius: 1.6rem;
    overflow: hidden;
    opacity: .5;
    cursor: pointer;
    transition: opacity .3s;
}
.product-thumbs .swiper-slide:hover,
.product-thumbs .swiper-slide-thumb-active {
    opacity: 1;
}
.product-thumbs .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.product-main-image {
    flex: none;
    height: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 3rem;
    overflow: hidden;
}
.product-main-image .swiper {
    height: 100%;
}
/* Горизонтальные фото (3:2): галерея шире, миниатюры рядом под фото
   (direction: horizontal, slidesPerView: 5 — в main.fluid.js) */
.product-detail--landscape .product-gallery {
    width: calc(60% - 1rem);
    height: auto;
    flex-direction: column-reverse;
    gap: 1rem;
    align-self: flex-start;
}
.product-detail--landscape .product-thumbs {
    width: 100%;
}
.product-detail--landscape .product-thumbs-arrow {
    display: none;
}
.product-detail--landscape .product-thumbs .swiper {
    height: auto;
}
.product-detail--landscape .product-thumbs .swiper-slide {
    height: auto;
    aspect-ratio: 3 / 2;
}
.product-detail--landscape .product-main-image {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
}
.product-main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.product-main-image .dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 1.6rem !important;
    z-index: 2;
    display: none;
}
.product-info {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 5rem;
    border-radius: 3rem;
    background: var(--bej);
}
.product-info > * {
    max-width: 88rem;
}
.product-info-title {
    font-family: "Prata", serif;
    font-size: 4.8rem;
    line-height: 1.4;
}
/* Детальное описание товара (HTML из визуального редактора) */
.product-description > * + * {
    margin-top: 1.4rem;
}
.product-description h2,
.product-description h3,
.product-description h4 {
    font-family: "Prata", serif;
    line-height: 1.3;
}
.product-description h2 { font-size: 2.4rem; }
.product-description h3 { font-size: 2rem; }
.product-description h4 { font-size: 1.8rem; }
.product-description * + h2,
.product-description * + h3,
.product-description * + h4 {
    margin-top: 2.4rem;
}
.product-description strong,
.product-description b {
    font-weight: 600;
}
.product-description em,
.product-description i {
    font-style: italic;
}
.product-description u {
    text-decoration: underline;
}
.product-description s,
.product-description del,
.product-description strike {
    text-decoration: line-through;
}
.product-description a {
    color: var(--blue);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .25em;
    transition: color .3s;
}
.product-description a:hover {
    color: var(--blue-dark);
    text-decoration-color: transparent;
}
.product-description ul,
.product-description ol {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
.product-description li {
    position: relative;
    padding-left: 2.2rem;
}
.product-description ul > li:before {
    content: "";
    position: absolute;
    left: .4rem;
    top: calc(.7em - .3rem);
    width: .6rem;
    height: .6rem;
    border-radius: 50%;
    background: var(--blue);
}
.product-description ol {
    counter-reset: product-ol;
}
.product-description ol > li {
    counter-increment: product-ol;
}
.product-description ol > li:before {
    content: counter(product-ol) ".";
    position: absolute;
    left: 0;
    color: var(--blue);
}
.product-description li > ul,
.product-description li > ol {
    margin-top: .6rem;
}
.product-description blockquote {
    padding-left: 2rem;
    border-left: 2px solid var(--blue);
    font-style: italic;
}
.product-description hr {
    height: 1px;
    border: 0;
    background: var(--stroke);
    margin: 2.4rem 0;
}
.product-description img {
    height: auto;
    border-radius: 1.6rem;
}
.product-description table {
    width: 100%;
}
.product-description th,
.product-description td {
    padding: .8rem 1.2rem .8rem 0;
    border-bottom: 1px solid var(--stroke);
    text-align: left;
    vertical-align: top;
}
.product-description th {
    font-weight: 600;
}
.product-info-bottom {
    display: flex;
    align-items: center;
    gap: 5rem;
}
.product-info-price {
    font-family: "Prata", serif;
    font-size: 3.2rem;
    line-height: 1.3;
    white-space: nowrap;
}
.product-info .btn-to-cart {
    width: 24.4rem;
}
.product-info .counter {
    width: 24.4rem;
}

/* =========================================================
   НОВОСТЬ (детальная)
   ========================================================= */
.article {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
.article-image {
    width: 57.3rem;
    flex-shrink: 0;
    aspect-ratio: 573 / 700;
    border-radius: 2.4rem;
    overflow: hidden;
    background: #EAEAEA;
}
.article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.article-body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding-left: 4rem;
}
.rich-text {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.rich-text .lead {
    font-family: "Prata", serif;
    font-size: 2rem;
    line-height: 1.4;
}
.rich-text .text-block p,
.rich-text .text-block ul {
    font-size: 1.8rem;
    line-height: 1.4;
    margin-bottom: 1.4rem;
}
.rich-text .text-block p:last-child {
    margin-bottom: 0;
}
.rich-text ul li {
    position: relative;
    padding-left: 1.8rem;
}
.rich-text ul li:before {
    content: "•";
    position: absolute;
    left: .2rem;
}
.rich-text a {
    color: var(--blue);
    transition: opacity .3s;
}
.rich-text a:hover {
    opacity: .7;
}
.article-divider {
    height: 1px;
    background: var(--stroke);
}
.article-share {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    color: var(--grey);
    font-size: 1.6rem;
}
.article-share-left {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.article-share .socials {
    gap: .4rem;
}

/* =========================================================
   О СЫРОВАРНЕ (страница)
   ========================================================= */
.stats {
    display: flex;
    gap: 2rem;
}
.stat-card {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 4rem;
    border-radius: 2.4rem;
    background: var(--bej);
}
.stat-card-num {
    font-family: "Prata", serif;
    font-size: 6.4rem;
    line-height: 1.25;
    color: var(--blue);
}
.stat-card-text {
    font-size: 1.8rem;
    line-height: 1.5;
}
.principles {
    display: flex;
    align-items: center;
    gap: 6rem;
    padding: 8rem 6rem 8rem 8rem;
    background: var(--blue);
    color: var(--white);
}
.principles-text {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.principles-text .text-18 {
    line-height: 1.5;
}
.principles-list li {
    display: flex;
    align-items: center;
    gap: 3rem;
    padding: 2.4rem 0;
    border-top: 1px solid rgba(255, 255, 255, .3);
}
.principles-list .num {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
    color: rgba(255, 255, 255, .6);
}
.principles-list .text {
    font-size: 2rem;
    line-height: 1.5;
}
.principles-image {
    width: 82rem;
    max-width: 50%;
    flex-shrink: 0;
    aspect-ratio: 820 / 640;
    border-radius: 3rem;
    overflow: hidden;
}
.principles-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.assortment-head {
    display: flex;
    justify-content: space-between;
    gap: 6rem;
}
.assortment-head-left {
    width: 70rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3rem;
}
.assortment-head .text-18 {
    width: 100rem;
    max-width: 57%;
}

/* =========================================================
   ОБЩИЕ «ЛЕНДИНГОВЫЕ» БЛОКИ (чиз-бар, опт, доставка, сертификат)
   ========================================================= */
.split {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
.split > * {
    flex: 0 0 calc(50% - 1rem);
    min-width: 0;
}
.cover-image {
    border-radius: 4rem;
    overflow: hidden;
    position: relative;
    background: #EAEAEA;
}
.cover-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Чиз-бар hero */
.promo-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
    min-height: 72rem;
    padding: 7rem;
    background: var(--blue);
    color: var(--white);
}
.promo-card-top {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
}
.promo-card-title {
    font-family: "Prata", serif;
    font-size: 5.6rem;
    line-height: 1.25;
    text-transform: uppercase;
}
.promo-card-subtitle {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
}
.promo-card .text-18 {
    line-height: 1.5;
}
.promo-card-bottom {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.promo-price {
    display: flex;
    align-items: center;
    gap: 2.4rem;
    padding-top: 2.4rem;
    border-top: 1px solid rgba(255, 255, 255, .3);
}
.promo-price-value {
    font-family: "Prata", serif;
    font-size: 4rem;
    line-height: 1.25;
    white-space: nowrap;
}
.promo-price-text {
    font-size: 1.8rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, .8);
}
.btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
}

/* Карточки с фото (события, аудитория) */
.cards-row {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
.cards-row > * {
    flex: 1 1 0;
    min-width: 0;
}
.photo-card {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    padding: 1rem 1rem 3rem;
    border-radius: 3rem;
    background: var(--bej);
}
.photo-card-image {
    width: 100%;
    height: 30rem;
    border-radius: 2.4rem;
    overflow: hidden;
}
.photo-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.photo-card:hover .photo-card-image img {
    transform: scale(1.05);
}
.photo-card-desc {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    padding: 0 2rem;
}
.photo-card-title {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
}
.photo-card-text {
    font-size: 1.6rem;
    line-height: 1.5;
    color: var(--grey);
}
.photo-card.big {
    padding-bottom: 4rem;
}
.photo-card.big .photo-card-image {
    height: 36rem;
}
.photo-card.big .photo-card-desc {
    padding: 0 3rem;
}
.photo-card.big .photo-card-title {
    font-size: 2.8rem;
}
.photo-card.big .photo-card-text {
    font-size: 1.8rem;
}

/* Нумерованные карточки (что входит, почему удобно, как получить) */
.num-card {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 4rem;
    border-radius: 3rem;
    border: 1px solid var(--stroke);
    background: var(--white);
    transition: border-color .3s, transform .4s var(--ease);
}
.num-card:hover {
    border-color: var(--stroke-dark);
    transform: translateY(-.4rem);
}
.num-card-num {
    font-family: "Prata", serif;
    font-size: 4.8rem;
    line-height: 1.25;
    color: var(--blue);
}
.num-card-desc {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}
.num-card-title {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
}
.num-card-text {
    font-size: 1.8rem;
    line-height: 1.5;
    color: var(--grey);
}
.num-card.small {
    padding: 3rem;
    gap: 2rem;
}
.num-card.small .num-card-num {
    font-size: 4rem;
}
.num-card.small .num-card-text {
    font-size: 1.6rem;
}
.fact-card {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    padding: 4rem;
    border-radius: 3rem;
    border: 1px solid var(--stroke);
    background: var(--white);
}
.fact-card-value {
    font-family: "Prata", serif;
    font-size: 4rem;
    line-height: 1.25;
    color: var(--blue);
}
.fact-card-text {
    font-size: 1.8rem;
    line-height: 1.5;
    color: var(--grey);
}

/* Галерея фуршетов */
.gallery-slider .swiper-slide {
    height: 34rem !important;
    border-radius: 2.4rem;
    overflow: hidden;
}
.gallery-slider .swiper-slide a {
    display: block;
    width: 100%;
    height: 100%;
}
.gallery-slider .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.gallery-slider .swiper-slide:hover img {
    transform: scale(1.05);
}
.gallery-slider .swiper {
    width: 100%;
    height: 70rem;
}

/* Блок заявки (фото + форма) */
.request {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
.request-image {
    width: calc(50% - 1rem);
    flex-shrink: 0;
    min-height: 63.2rem;
}
.request .contact-form {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

/* Шаги (опт) */
.steps {
    display: flex;
    flex-direction: column;
    padding: 9.6rem 11.2rem;
    background: var(--blue);
    color: var(--white);
}
.steps-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 3.2rem 4.8rem;
    padding-bottom: 5.6rem;
    margin-bottom: 7.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
}
.steps-intro {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 72rem;
}
.steps-head .text-18 {
    line-height: 1.5;
    color: rgba(255, 255, 255, .8);
}
.steps-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
}
.steps-list {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4.8rem;
}
/* пунктир, соединяющий шаги */
.steps-list:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 3.2rem;
    border-top: 1px dashed rgba(255, 255, 255, .35);
}
.step {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 3.2rem;
}
.step-num {
    position: relative;
    z-index: 1;
    width: 6.4rem;
    height: 6.4rem;
    border-radius: 50%;
    background: var(--bej);
    color: var(--blue);
    box-shadow: 0 0 0 1.2rem var(--blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: "Prata", serif;
    font-size: 2.6rem;
    line-height: 1;
}
.step-body {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
}
.step-title {
    font-family: "Prata", serif;
    font-size: 2.8rem;
    line-height: 1.2;
}
.step-text {
    max-width: 32rem;
    font-size: 1.7rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, .8);
}

/* Опт — интро */
.intro {
    display: flex;
    align-items: center;
    gap: 6rem;
}
.intro-text {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.intro-text .title-32 {
    line-height: 1.25;
}
.intro-text .text-18 {
    line-height: 1.5;
}
.intro-image {
    width: 84rem;
    max-width: 50%;
    flex-shrink: 0;
    aspect-ratio: 840 / 620;
}

/* Доставка */
.delivery-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4rem;
    padding: 7rem;
}
.delivery-card.blue {
    background: var(--blue);
    color: var(--white);
}
.delivery-card.bej {
    background: var(--bej);
    border-radius: 4rem;
}
.delivery-card .text-18 {
    line-height: 1.5;
}
.delivery-facts {
    display: flex;
    gap: 2rem;
    width: 100%;
}
.delivery-fact {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: 2.4rem;
    border-radius: 2rem;
    background: rgba(255, 255, 255, .1);
}
.delivery-fact-value {
    font-family: "Prata", serif;
    font-size: 2.8rem;
    line-height: 1.25;
}
.delivery-fact-text {
    font-size: 1.6rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, .8);
}
.delivery-free {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    width: 100%;
    padding: 2.4rem 3rem;
    border-radius: 2rem;
    background: var(--white);
    color: var(--blue);
}
.delivery-free-title {
    font-family: "Prata", serif;
    font-size: 3.2rem;
    line-height: 1.2;
}
.delivery-free-text {
    font-size: 1.8rem;
    line-height: 1.4;
    color: var(--black);
}
.delivery-note {
    display: flex;
    gap: 1.6rem;
    width: 100%;
    padding: 2.4rem;
    border-radius: 2rem;
    border: 1px dashed rgba(255, 255, 255, .4);
    font-size: 1.6rem;
    line-height: 1.5;
}
.delivery-note .mark {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
}
.shop-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    padding: 3rem;
    border-radius: 2.4rem;
    background: var(--white);
}
.shop-card-name {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
}
.shop-card-address {
    font-size: 1.8rem;
    line-height: 1.5;
    color: var(--grey);
}
.shop-card-phone {
    font-weight: 400;
    font-size: 2rem;
    line-height: 1.5;
}
.shop-card-note {
    font-size: 1.4rem;
    line-height: 1.5;
    color: var(--blue);
}
.shop-card .btn-row {
    gap: 1.2rem;
}
.map.big {
    height: 61rem;
    margin-top: 0;
}

/* Контакты — магазины */
.shop-row {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
.shop-row-image {
    width: calc(50% - 1rem);
    flex-shrink: 0;
    min-height: 60rem;
}
.shop-info {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 6rem;
    border-radius: 4rem;
    background: var(--bej);
}
.shop-info .text-18 {
    line-height: 1.5;
}
.shop-info-data {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.shop-info-item {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
.shop-info-item .caption {
    font-size: 1.4rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--grey);
}
.shop-info-item .value {
    font-weight: 400;
    font-size: 2rem;
    line-height: 1.5;
}
.shop-thumbs {
    display: flex;
    gap: 1.2rem;
}
.shop-thumbs a {
    flex: 1 1 0;
    height: 11rem;
    border-radius: 1.6rem;
    overflow: hidden;
}
.shop-thumbs img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s var(--ease);
}
.shop-thumbs a:hover img {
    transform: scale(1.08);
}
.partners-strip {
    display: flex;
    align-items: center;
    gap: 4rem;
    padding: 5rem 6rem;
    border-radius: 4rem;
    border: 1px solid var(--stroke);
    background: var(--white);
}
.partners-strip-text {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.partners-strip-text .text-18 {
    line-height: 1.5;
    color: var(--grey);
}

/* Сертификат (страница) */
.cert-product {
    display: flex;
    gap: 2rem;
    align-items: stretch;
}
.cert-product-image {
    width: calc(50% - 1rem);
    flex-shrink: 0;
    min-height: 68rem;
    background: var(--bej);
}
.cert-product-info {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3.2rem;
    padding: 4rem 2rem 4rem 6rem;
}
.cert-product-info .title-40 {
    line-height: 1.25;
}
.cert-product-info .text-18 {
    line-height: 1.5;
}
.cert-nominal {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}
.cert-nominal .caption {
    font-size: 1.4rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--grey);
}
.cert-price-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3rem;
    padding-top: 2.4rem;
    border-top: 1px solid var(--stroke);
}
.cert-price {
    font-family: "Prata", serif;
    font-size: 4.8rem;
    line-height: 1.25;
    white-space: nowrap;
}
.cert-price-row .btn-row {
    gap: 1.6rem;
}
.dot-list {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
}
.dot-list li {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    font-size: 1.6rem;
    line-height: 1.5;
}
.dot-list li:before {
    content: "";
    flex-shrink: 0;
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
    background: var(--blue);
}
.custom-sum {
    display: none;
    max-width: 30rem;
}
.custom-sum.active {
    display: block;
}
.gift-card {
    display: flex;
    align-items: center;
    gap: 4rem;
    padding: 1rem 5rem 1rem 1rem;
    border-radius: 4rem;
}
.gift-card.blue {
    background: var(--blue);
    color: var(--white);
}
.gift-card.bej {
    background: var(--bej);
}
.gift-card-image {
    width: 36rem;
    max-width: 42%;
    flex-shrink: 0;
    aspect-ratio: 360 / 420;
    border-radius: 3rem;
    overflow: hidden;
}
.gift-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s var(--ease);
}
.gift-card:hover .gift-card-image img {
    transform: scale(1.05);
}
.gift-card-text {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
}
.gift-card-text .caption {
    font-size: 1.4rem;
    line-height: 1.5;
    text-transform: uppercase;
    opacity: .7;
}
.gift-card-text .text-16 {
    line-height: 1.5;
}
.gift-card.blue .gift-card-text .text-16 {
    color: rgba(255, 255, 255, .85);
}

/* =========================================================
   КОРЗИНА
   ========================================================= */
.cart {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}
.cart-left {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.cart-box {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    padding: 4rem;
    border-radius: 3rem;
    border: 1px solid var(--stroke);
    background: var(--white);
}
.cart-box-head {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.cart-box-head .title-28 {
    flex-grow: 1;
}
.cart-clear {
    font-size: 1.4rem;
    line-height: 1.5;
    color: var(--grey);
    transition: color .3s;
}
.cart-clear:hover {
    color: var(--blue);
}
.cart-labels,
.cart-item {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.cart-labels {
    font-size: 1.4rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--grey);
    padding-bottom: 3rem;
    border-bottom: 1px solid var(--stroke);
    margin-bottom: -3rem;
}
.cart-labels .col-product { flex-grow: 1; }
.cart-labels .col-qty,
.cart-item .qty { width: 16rem; flex-shrink: 0; }
.cart-labels .col-sum,
.cart-item .sum { width: 14rem; flex-shrink: 0; text-align: right; }
.cart-labels .col-remove,
.cart-item .remove { width: 2.4rem; flex-shrink: 0; }
.cart-items {
    display: flex;
    flex-direction: column;
}
.cart-item {
    padding: 3rem 0;
    border-bottom: 1px solid var(--stroke);
    transition: opacity .3s, transform .3s;
}
.cart-item.removing {
    opacity: 0;
    transform: translateX(2rem);
}
.cart-item-product {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 2.4rem;
}
.cart-item-image {
    width: 11rem;
    height: 11rem;
    flex-shrink: 0;
    border-radius: 2rem;
    overflow: hidden;
}
.cart-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cart-item-name {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}
.cart-item-name .title {
    font-family: "Prata", serif;
    font-size: 2.2rem;
    line-height: 1.25;
}
.cart-item-name .meta {
    font-size: 1.4rem;
    line-height: 1.5;
    color: var(--grey);
}
.qty-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 4.8rem;
    padding: 0 .8rem;
    border-radius: 4rem;
    border: 1px solid var(--stroke);
    font-weight: 400;
}
.qty-box button {
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    font-size: 1.8rem;
    line-height: 1;
    transition: background-color .3s;
}
.qty-box button:hover {
    background: var(--bej);
}
.qty-box .value {
    font-size: 1.6rem;
}
.cart-item .sum {
    font-family: "Prata", serif;
    font-size: 2.4rem;
    line-height: 1.25;
    white-space: nowrap;
}
.cart-item .remove {
    height: 2.4rem;
    font-weight: 400;
    font-size: 2.4rem;
    line-height: 1;
    color: var(--grey);
    transition: color .3s, transform .3s;
}
.cart-item .remove:hover {
    color: var(--black);
    transform: rotate(90deg);
}
.cart-promo {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}
.cart-promo .input {
    width: 40rem;
    max-width: 100%;
}
.cart-promo .btn-continue {
    margin-left: auto;
}
.cart-empty {
    display: none;
    padding: 2rem 0;
    font-size: 1.8rem;
    color: var(--grey);
}
.cart-box.is-empty .cart-empty {
    display: block;
}
.cart-box.is-empty .cart-labels {
    display: none;
}
.checkout-group {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}
.checkout-group .caption {
    font-size: 1.4rem;
    line-height: 1.5;
    text-transform: uppercase;
    color: var(--grey);
}
.checkout-row {
    display: flex;
    gap: 1.6rem;
}
.checkout-row > * {
    flex: 1 1 0;
    min-width: 0;
}
.checkout-note {
    font-size: 1.4rem;
    line-height: 1.5;
    color: var(--blue);
}
.cart-summary {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
    width: 60rem;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
    padding: 4rem;
    border-radius: 3rem;
    background: var(--bej);
}
.summary-row {
    display: flex;
    gap: 1rem;
    font-size: 1.8rem;
    line-height: 1.5;
}
.summary-row .name {
    flex-grow: 1;
    color: var(--grey);
}
.summary-row .value {
    font-weight: 400;
    white-space: nowrap;
}
.summary-divider {
    height: 1px;
    background: var(--stroke);
}
.summary-total {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-family: "Prata", serif;
    line-height: 1.25;
}
.summary-total .name {
    flex-grow: 1;
    font-size: 2.4rem;
}
.summary-total .value {
    font-size: 4rem;
    white-space: nowrap;
}
.cart-summary .custom-checkbox {
    font-size: 1.3rem;
    line-height: 1.5;
}
.cart-summary .custom-checkbox .checkbox-icon {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: .4rem;
}
.cart-summary .custom-checkbox .checkbox-icon::after {
    width: .9rem;
    height: .4rem;
    margin-top: .5rem;
}
.cart-summary .custom-checkbox .text {
    padding-top: 0;
}
.summary-note {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: 2.4rem;
    border-radius: 2rem;
    background: var(--white);
    line-height: 1.5;
}
.summary-note .title {
    font-weight: 400;
    font-size: 1.6rem;
}
.summary-note .text {
    font-size: 1.4rem;
    color: var(--grey);
}

/* Секции со слайдерами обрезаем по краю экрана */
.section-categories,
.section-products,
.section-reviews,
.section-news,
.section-assortment,
.section-gallery {
    overflow: hidden;
}

/* ---------- Картинки внутри блоков с aspect-ratio ---------- */
.category-card-image-inside,
.price-card-image-inside {
    position: absolute;
    inset: 0;
}
.product-card-image,
.news-card-image,
.story-video,
.product-main-image,
.article-image,
.principles-image,
.gift-card-image {
    position: relative;
    min-height: 0;
}
.product-card-image img,
.news-card-image img,
.story-video > img,
.article-image img,
.principles-image img,
.gift-card-image img {
    position: absolute;
    inset: 0;
}

/* ---------- Анимации появления ---------- */
[data-parallax] {
    overflow: hidden;
}

/* =========================================================
   ≤ 1599 — Small desktop (макет 1200)
   ========================================================= */
@media (max-width: 1599px) {
    :root {
        --gutter: 4rem;
    }
    .h1 { font-size: 3.6rem; }

    .header-phone { font-size: 1.4rem; }
    .header-right { gap: 2rem; }
    .header-contacts .socials { display: none; }

    .category-card-title { font-size: 2.4rem; min-height: 6.2rem; }
    .category-card { gap: 2rem; }

    .products-slider .swiper-slide { width: calc(33.333% - 1.3334rem); }

    .cert-banner { padding-top: 4rem; }
    .cert-banner-inside { padding: 0 4rem; min-height: 0; }
    .cert-banner-text { max-width: 52%; padding: 6rem 0; gap: 4rem; }
    .cert-banner-text .text-20 { font-size: 1.6rem; }
    .cert-banner-image { right: 0; max-width: 50%; }

    .story { padding: 6rem 4rem 4rem; }

    .reviews-slider .swiper-slide { width: calc(33.333% - 1.3334rem); }

    .news-slider .swiper-slide { width: calc(33.333% - 1.3334rem); }
    .news-grid > .news-card { width: calc(33.333% - 1.3334rem); }

    .request .contact-form { width: auto; flex: 1 1 0; min-width: 0; }

    .footer-subscribe-title { font-size: 2.4rem; padding-right: 2rem; }
    .footer-subscribe-row .btn { width: 18rem; }
    .footer-contacts { width: auto; padding-left: 4rem; }
    .footer-nav ul { width: auto; flex: 1 1 0; }
    .footer-logo { width: 20rem; }

    .product-info-title { font-size: 4rem; }
    .product-info { padding: 4rem; gap: 2.4rem; }
    .product-info-bottom { gap: 3rem; }

    .article-image { width: 45%; }
    .article-body { padding-left: 2rem; }

    .stats { flex-wrap: wrap; }
    .stat-card { flex: 1 1 calc(50% - 1rem); }
    .principles { padding: 6rem 4rem; gap: 4rem; }
    .assortment-head { flex-direction: column; gap: 3rem; }
    .assortment-head .text-18 { max-width: 100%; width: auto; }

    .promo-card { padding: 5rem; min-height: 60rem; }
    .promo-card-title { font-size: 4.4rem; }
    .cards-row.wrap-md { flex-wrap: wrap; }
    .cards-row.wrap-md > * { flex: 1 1 calc(50% - 1rem); }
    .num-card { padding: 3rem; }
    .gallery-slider .swiper { height: 58rem; }
    .gallery-slider .swiper-slide { height: 28rem !important; }
    .request-image { min-height: 0; }

    .steps { padding: 8rem 7.2rem; }

    .delivery-card { padding: 5rem 4rem; }

    .shop-info { padding: 4rem; }
    .shop-row-image { min-height: 0; }

    .cert-product-info { padding: 2rem 0 2rem 2rem; }
    .gift-card { flex-direction: column; align-items: stretch; padding: 1rem 1rem 4rem; }
    .gift-card-image { width: 100%; max-width: 100%; aspect-ratio: 16 / 10; }
    .gift-card-text { padding: 0 3rem; }

    .cart { flex-direction: column; align-items: stretch; }
    .cart-summary { position: static; width: 100%; }
}

/* Промежуток 1024–1279: разгружаем шапку и hero */
@media (max-width: 1279px) {
    .header-contacts { display: none; }
    /* Каталог: ≤1279 — по 3 карточки в ряд */
    .products-grid > .product-card { width: calc(33.333% - 1.3334rem); }
    .header-logo img { min-width: 16rem; }
    .adv-item br { display: none; }
}

/* =========================================================
   ≤ 1023 — Tablet (макет 768)
   ========================================================= */
@media (max-width: 1023px) {
    :root {
        --gutter: 2rem;
        --section-gap: 5rem;
        --inner-gap: 3rem;
        --header-h: 7.8rem;
    }
    .h2 { font-size: 3.6rem; }
    .title-40 { font-size: 3.2rem; }
    .title-32 { font-size: 2.4rem; }
    .text-20 { font-size: 1.6rem; }
    .text-18 { font-size: 1.6rem; }

    .btn { height: 5rem; font-size: 1.2rem; }

    .header-logo { padding: 0 2rem; }
    .header-logo .logo-full { display: none; }
    .header-logo .logo-short { display: block; width: 13.9rem; }
    .header-left .btn-catalog,
    .header-contacts { display: none; }
    .btn-menu { height: 5rem; padding: 0 2rem; font-size: 1.2rem; }
    .btn-circle { width: 5rem; height: 5rem; }
    .btn-circle .icon { width: 2.2rem; height: 2.2rem; }
    .header-right .btn-request { height: 4.7rem; font-size: 1.2rem; }

    .hero-slide { flex-direction: column-reverse; gap: 0; min-height: 0; }
    .hero-image { flex: none; }
    .hero-panel {
        flex: none;
        align-items: center;
        text-align: center;
        padding: 4rem 4rem 5rem;
    }
    .hero-text { align-items: center; gap: 3rem; }
    .hero-title { max-width: 100%; }
    .hero-text .text-20 { font-size: 1.4rem; }
    .hero-nav { display: none; }
    .hero-dots {
        display: flex;
        position: absolute;
        top: 39rem !important;
        bottom: auto !important;
        height: .6rem;
        left: 0;
        right: 0;
        z-index: 3;
    }
    .hero-panel { padding-top: 6rem; }

    .adv-grid { flex-wrap: wrap; gap: 1rem; }
    .adv-item {
        flex: 1 1 calc(50% - .5rem);
        flex-direction: row;
        text-align: left;
        padding: 2rem;
        gap: 2rem;
        font-size: 1.2rem;
    }
    .adv-item img { width: 4rem; height: 4rem; }

    .categories-grid > .category-card { width: calc(50% - 1rem); }
    .category-card-title { font-size: 2.4rem; }

    .products-slider .swiper-slide { width: calc(50% - 1rem); }
    .products-slider-wrap,
    .reviews-slider .swiper,
    .news-slider .swiper { overflow: visible; }
    .tab { font-size: 1.8rem; padding-bottom: 1.6rem; }
    .tabs-inside { gap: 4rem; justify-content: flex-start; }
    .product-card-price { font-size: 2rem; }
    .btn-to-cart { height: 5rem; padding: 0 2rem; font-size: 1.2rem; }
    .counter { height: 5rem; width: 15rem; }

    .cert-banner { padding-top: 0; }
    .cert-banner-inside { padding: 0 3rem; align-items: stretch; }
    .cert-banner-text { padding: 4rem 0; gap: 3rem; max-width: 58%; }
    .cert-banner-text-inside { gap: 2rem; }
    .cert-banner-text .text-20 { font-size: 1.2rem; }
    .cert-banner-image { max-width: 46%; right: -1rem; }

    .story { padding: 4rem 2rem 2rem; gap: 3rem; }
    .play-btn { width: 8rem; height: 8rem; }

    .reviews-slider .swiper-slide { width: calc(50% - 1rem); }
    .review-card { padding: 2rem; min-height: 38rem; }
    .review-text { font-size: 1.4rem; }

    .opt-block { padding: 5rem 2rem; gap: 3rem; }
    .opt-text { gap: 3rem; }
    .opt-feature { width: 30rem; font-size: 1.4rem; }
    .opt-feature img { width: 5rem; height: 5rem; }
    .price-card-desc .title-24 { font-size: 1.8rem; }

    .news-slider .swiper-slide { width: calc(50% - 1rem); }
    .news-grid > .news-card { width: calc(50% - 1rem); }
    .news-card-title { font-size: 2rem; }

    .contact-info { padding: 4rem 2rem; gap: 3rem; }
    .contact-shop-name { font-size: 1.8rem; }
    .contact-shop-data .phone { font-size: 1.6rem; }
    .contact-shop-data .address { font-size: 1.4rem; }
    .contact-form { padding: 4rem 2rem; }
    .contact-form-inside { gap: 3rem; }
    .map { height: 36rem; }
    .map.big { height: 40rem; }
    .input { height: 5.6rem; font-size: 1.4rem; }
    textarea.input { height: 5.6rem; min-height: 5.6rem; padding: 1.7rem 2rem; }

    .footer { padding: 4rem 0 3rem; }
    .footer-top { flex-direction: column; align-items: center; text-align: center; gap: 2rem; }
    .footer-subscribe-title { width: 100%; padding: 0; font-size: 2rem; }
    .footer-subscribe { width: 100%; max-width: 52rem; align-items: center; }
    .footer-subscribe-row { flex-direction: column; width: 100%; gap: 2rem; }
    .footer-subscribe-row .btn { width: 100%; height: 5rem; }
    .footer-subscribe-row .input { flex: none; }
    .footer-middle { flex-direction: column; align-items: center; text-align: center; gap: 3rem; }
    .footer-contacts { padding: 0; align-items: center; gap: 2rem; }
    .footer-nav { display: none; }
    .footer-bottom { flex-direction: column; align-items: center; text-align: center; gap: 1rem; }
    .footer-bottom > *:last-child { text-align: center; }
    .footer-logo { width: 16rem; }

    .page-title { padding: 5rem 0; }
    .page-title-inside { gap: 3rem; }
    .seo-text { padding: 0; gap: 2rem; }

    /* Детальная товара: на планшете галерея над описанием, по центру */
    .product-detail { flex-direction: column; }
    .product-gallery { --main-h: 64rem; justify-content: center; }
    .product-detail--landscape .product-gallery { width: 100%; }
    .product-info { padding: 3rem; gap: 2rem; }
    .product-info-title { font-size: 3.2rem; }
    .product-info-bottom { gap: 3rem; }

    .article { flex-direction: column; }
    .article-image { width: 100%; aspect-ratio: 4 / 3; }
    .article-body { padding: 0; }
    .rich-text .text-block p,
    .rich-text .text-block ul { font-size: 1.6rem; }

    .stat-card { padding: 3rem; }
    .stat-card-num { font-size: 4.8rem; }
    .stat-card-text { font-size: 1.6rem; }
    .principles { flex-direction: column; align-items: stretch; padding: 5rem 3rem; }
    .principles-image { max-width: 100%; width: 100%; }
    .principles-list .text { font-size: 1.6rem; }

    .split { flex-direction: column; }
    .split > * { flex: none; width: 100%; }
    .promo-card { padding: 5rem 3rem; min-height: 0; }
    .promo-card-title { font-size: 3.6rem; }
    .promo-card-subtitle { font-size: 2rem; }
    .split .cover-image { min-height: 40rem; }
    .cards-row { flex-wrap: wrap; }
    .cards-row > * { flex: 1 1 calc(50% - 1rem); }
    .cards-row.cols-3 > * { flex: 1 1 calc(50% - 1rem); }
    .photo-card-image { height: 24rem; }
    .photo-card.big .photo-card-image { height: 28rem; }
    .photo-card.big .photo-card-title { font-size: 2.2rem; }
    .photo-card.big .photo-card-text { font-size: 1.6rem; }
    .num-card-num { font-size: 4rem; }
    .num-card-title { font-size: 2rem; }
    .num-card-text { font-size: 1.6rem; }
    .fact-card { padding: 3rem; }
    .fact-card-value { font-size: 3.2rem; }
    .fact-card-text { font-size: 1.6rem; }
    .gallery-slider .swiper { height: 44rem; }
    .gallery-slider .swiper-slide { height: 21rem !important; }
    .request { flex-direction: column; }
    .request .contact-form { flex: none; width: 100%; }
    .request-image { width: 100%; min-height: 36rem; }

    .steps { padding: 6rem 4rem; }
    .steps-head { padding-bottom: 4rem; margin-bottom: 5rem; }
    .steps-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5rem 4rem; }
    .steps-list:before { display: none; }
    .intro { flex-direction: column-reverse; gap: 3rem; }
    .intro-image { width: 100%; max-width: 100%; }

    .delivery-card { padding: 4rem 3rem; gap: 3rem; }
    .delivery-fact-value { font-size: 2.2rem; }

    .shop-row,
    .shop-row.reverse { flex-direction: column; }
    .shop-row.reverse .shop-row-image { order: -1; }
    .shop-row-image { width: 100%; min-height: 40rem; }
    .shop-info { padding: 4rem 3rem; }
    .shop-info-item .value { font-size: 1.8rem; }
    .partners-strip { flex-direction: column; align-items: flex-start; padding: 4rem 3rem; gap: 3rem; }

    .cert-product { flex-direction: column; }
    .cert-product-image { width: 100%; min-height: 0; aspect-ratio: 870 / 680; }
    .cert-product-info { padding: 0; gap: 2.4rem; }
    .cert-price { font-size: 4rem; }
    .split.gifts { flex-direction: column; }

    .cart-box { padding: 3rem 2rem; gap: 2rem; }
    .cart-labels { display: none; }
    .cart-item { flex-wrap: wrap; padding: 2rem 0; gap: 1.6rem; position: relative; }
    .cart-item-product { flex: 1 1 100%; padding-right: 4rem; }
    .cart-item .remove { position: absolute; top: 2rem; right: 0; }
    .cart-item .sum { margin-left: auto; }
    .cart-promo { flex-wrap: wrap; }
    .cart-promo .input { flex: 1 1 20rem; }
    .cart-promo .btn-continue { margin-left: 0; width: 100%; }
    .cart-summary { padding: 3rem 2rem; }
    .summary-total .value { font-size: 3.2rem; }
}

/* =========================================================
   ≤ 767 — Mobile (макет 360)
   ========================================================= */
@media (max-width: 767px) {
    :root {
        --header-h: 7.4rem;
    }
    .h1 { font-size: 2.4rem; line-height: 1.4; }
    .h2 { font-size: 2.8rem; }
    .title-40 { font-size: 2.8rem; }
    .title-36 { font-size: 2.4rem; }
    .title-28 { font-size: 2.2rem; }
    .title-24 { font-size: 2rem; }
    .text-16 { font-size: 1.4rem; }

    .header-container { grid-template-columns: 1fr auto 1fr; }
    .btn-menu {
        width: 5rem;
        padding: 0;
        justify-content: center;
    }
    .btn-menu .btn-menu-text { display: none; }
    .header-right .btn-request { display: none; }

    .menu {
        width: 100%;
        border-radius: 0;
        padding: 4rem 3rem 4rem;
    }
    .menu-nav a { font-size: 2.4rem; }
    .menu-nav ul { gap: 1.4rem; }
    .menu-bottom { gap: 2.4rem; }
    .menu-bottom .btn { display: inline-flex; width: 100%; }
    .menu-contacts .phone { font-size: 2rem; }

    .popup { padding: 5rem 2rem 3rem; border-radius: 2rem; }
    .popup-head { gap: 1.6rem; margin-bottom: 3rem; }
    .popup-head .title-32 { font-size: 2.4rem; }
    .fancybox__slide.has-inline { padding: 2rem 1rem; }
    .form { gap: 1.2rem; }
    .field.half { width: 100%; }

    .hero-section .wrapper-inside { width: 100%; }
    .hero-panel { padding-top: 6rem; }
    .hero-panel { padding: 6rem 2rem 3rem; }
    .hero-panel.notch,
    .hero-image.notch { --r: 2rem; }

    .adv-grid { flex-direction: column; padding: 0 2rem; }
    .adv-item { flex: 1 1 auto; font-size: 1.4rem; }
    .adv-item img { width: 5rem; height: 5rem; }

    .categories-slider { overflow: visible; }
    .categories-slider .categories-grid { flex-wrap: nowrap; gap: 0; justify-content: flex-start; }
    .categories-slider .categories-grid > .category-card { width: 31rem; flex-shrink: 0; }
    .category-card-image { aspect-ratio: 290 / 250; }
    .category-card-badge { width: 5rem; height: 5rem; bottom: -1.5rem; }
    .category-card-title { font-size: 2rem; min-height: 5.6rem; }
    .category-card-text { display: none; }
    .category-card { gap: 2rem; }

    .products-slider .swiper-slide { width: 30rem; }
    /* Каталог: мобильный — по 2 карточки в ряд */
    .products-grid { gap: 1rem; }
    .products-grid > .product-card { width: calc(50% - .5rem); }
    .product-card { padding-bottom: 2rem; }
    .product-card-image { aspect-ratio: 280 / 260; }
    .product-card-title { font-size: 1.8rem; }
    .product-card-desc { min-height: 8rem; }
    .tabs-inside { justify-content: flex-start; }
    .products-slider .slider-nav .arrow-btn { display: none; }

    .cert-banner-wrap { width: 100%; }
    .cert-banner {
        background: var(--blue);
        padding-bottom: 0;
        -webkit-mask:
            radial-gradient(circle 2rem at 0 0, transparent 98%, #000) top left,
            radial-gradient(circle 2rem at 100% 0, transparent 98%, #000) top right,
            radial-gradient(circle 2rem at 0 100%, transparent 98%, #000) bottom left,
            radial-gradient(circle 2rem at 100% 100%, transparent 98%, #000) bottom right;
        -webkit-mask-size: 51% 51%;
        -webkit-mask-repeat: no-repeat;
        mask:
            radial-gradient(circle 2rem at 0 0, transparent 98%, #000) top left,
            radial-gradient(circle 2rem at 100% 0, transparent 98%, #000) top right,
            radial-gradient(circle 2rem at 0 100%, transparent 98%, #000) bottom left,
            radial-gradient(circle 2rem at 100% 100%, transparent 98%, #000) bottom right;
        mask-size: 51% 51%;
        mask-repeat: no-repeat;
    }
    .cert-banner-inside {
        flex-direction: column;
        padding: 4rem 2rem 0;
        align-items: stretch;
        -webkit-mask: none;
        mask: none;
    }
    .cert-banner-text {
        width: 100%;
        max-width: 100%;
        padding: 0;
        align-items: center;
        text-align: center;
    }
    .cert-banner-text .text-20 { font-size: 1.4rem; }
    .cert-banner-image {
        position: relative;
        right: auto;
        width: 100%;
        max-width: 36rem;
        margin: 2rem auto 0;
    }

    .about-photos-slide { aspect-ratio: 320 / 300; }
    .photo-frame.big { width: 100%; padding: .6rem; border-radius: 2rem; }
    .photo-frame.big img { border-radius: 1.4rem; }
    .photo-frame.small { display: none; }
    .about-photos-nav { display: none; }
    .about-text .title-24 { font-size: 2rem; }

    .story-wrap { width: 100%; }
    .story { border-radius: 3rem; padding: 4rem 2rem 2rem; }
    .story-video { aspect-ratio: 320 / 220; border-radius: 1.6rem; }
    .play-btn { width: 6rem; height: 6rem; }

    .reviews-slider .swiper-slide { width: 30rem; }
    .review-card { min-height: 34rem; }

    .opt-wrap { width: 100%; }
    .opt-block { padding: 4rem 2rem; }

    .news-slider .swiper-slide { width: 30rem; }
    .news-grid > .news-card { width: 100%; }
    .news-card-image { aspect-ratio: 300 / 250; }
    .news-card-desc { gap: 1rem; }

    .contact-wrap { width: 100%; }
    .contact-form-head .title-32 { font-size: 2.4rem; }
    .map { height: 30rem; border-radius: 0; }
    .map.big { height: 32rem; border-radius: 3rem; }

    .footer-subscribe-title { font-size: 2rem; }
    .footer-top { padding-bottom: 3rem; }
    .footer-inside { gap: 3rem; }

    .page-title { padding: 4rem 0; }
    .page-title .h2 { font-size: 2.8rem; }
    .seo-text .title-32 { font-size: 2.2rem; }
    .filter-arrow { display: none; }
    .filter-tags { margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter); }

    .section-head-row { align-items: center; }
    .section-head-row .title-40 { font-size: 2.4rem; }
    .section-head-row .btn { display: none; }

    .product-gallery { flex-direction: column-reverse; }
    .product-thumbs { display: none; }
    .product-gallery { height: auto; }
    .product-main-image { height: auto; width: 100%; aspect-ratio: 2 / 3; border-radius: 2.4rem; position: relative; }
    .product-detail--landscape .product-main-image { flex: none; width: 100%; }
    .product-main-image .dots { display: flex; }
    .product-main-image .dots .swiper-pagination-bullet { background: var(--white); }
    .product-info { padding: 3rem 2rem; }
    .product-info-title { font-size: 2.6rem; line-height: 1.3; }
    .product-info-bottom { flex-wrap: wrap; gap: 2rem; }
    .product-info .btn-to-cart,
    .product-info .counter { width: 100%; }

    .article-share { flex-direction: column; align-items: flex-start; }
    .article-share-left { flex-wrap: wrap; }

    .stats { flex-direction: column; }
    .stat-card { flex: none; width: 100%; padding: 2.4rem; }
    .stat-card-num { font-size: 4rem; }
    .principles-wrap { width: 100%; }
    .principles { padding: 4rem 2rem; }
    .principles-list li { gap: 1.6rem; }

    .promo-card-wrap { width: 100%; }
    .promo-card { padding: 4rem 2rem; }
    .promo-card-title { font-size: 2.8rem; }
    .promo-price { flex-direction: column; align-items: flex-start; gap: .6rem; }
    .promo-price-value { font-size: 3.2rem; }
    .btn-row .btn { flex: 1 1 100%; }
    .split .cover-image { min-height: 28rem; border-radius: 3rem; }
    .cards-row { flex-direction: column; }
    .cards-row > *,
    .cards-row.cols-3 > * { flex: none; width: 100%; }
    .photo-card-image,
    .photo-card.big .photo-card-image { height: 22rem; }
    .gallery-slider .swiper { height: 46rem; }
    .gallery-slider .swiper-slide { height: 22rem !important; }
    .section-head-row .slider-nav { display: none; }
    .request-image { min-height: 26rem; border-radius: 3rem; }
    .request .contact-form { margin: 0 calc(var(--gutter) * -1); }

    .steps { padding: 4.8rem 2.4rem; }
    .steps-head { padding-bottom: 3.2rem; margin-bottom: 4rem; }
    .steps-actions, .steps-actions .btn { width: 100%; }
    .steps-list { grid-template-columns: 1fr; gap: 3.2rem; }
    .steps-list:before { display: block; top: 0; bottom: 0; right: auto; left: 2.4rem; border-top: 0; border-left: 1px dashed rgba(255, 255, 255, .35); }
    .step { flex-direction: row; align-items: flex-start; gap: 2rem; }
    .step-num { width: 4.8rem; height: 4.8rem; font-size: 2rem; box-shadow: 0 0 0 .8rem var(--blue); }
    .step-body { gap: .8rem; padding-top: 1rem; }
    .step-title { font-size: 2.2rem; }
    .step-text { max-width: none; font-size: 1.5rem; }

    .delivery-card { padding: 4rem 2rem; }
    .delivery-card.bej { border-radius: 3rem; }
    .delivery-facts { flex-direction: column; gap: 1rem; }
    .delivery-free { padding: 2rem; }
    .delivery-free-title { font-size: 2.4rem; }
    .delivery-free-text { font-size: 1.6rem; }
    .shop-card { padding: 2.4rem 2rem; }
    .shop-card .btn-row .btn { flex: 1 1 100%; }

    .shop-row-image { min-height: 28rem; border-radius: 3rem; }
    .shop-info { padding: 3rem 2rem; border-radius: 3rem; gap: 2rem; }
    .shop-thumbs { gap: .8rem; }
    .shop-thumbs a { height: 7rem; border-radius: 1.2rem; }
    .partners-strip { padding: 3rem 2rem; border-radius: 3rem; }
    .partners-strip .btn { width: 100%; }

    .cert-product-image { border-radius: 3rem; }
    .cert-price { font-size: 3.6rem; }
    .cert-price-row { gap: 2rem; }
    .gift-card { border-radius: 3rem; padding-bottom: 3rem; }
    .gift-card-text { padding: 0 1rem; }
    .gift-card-text .btn { width: 100%; }

    .cart-item-image { width: 8rem; height: 8rem; border-radius: 1.4rem; }
    .cart-item-product { gap: 1.6rem; }
    .cart-item-name .title { font-size: 1.8rem; }
    .cart-item .qty { width: 13rem; }
    .cart-item .sum { font-size: 2rem; width: auto; }
    .checkout-row { flex-direction: column; }
    .checkout-row > * { flex: none; }
    .cart-box-head { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .footer { margin: 0 2rem; border-radius: 3rem 3rem 0 0; padding: 4rem 0 3rem; }
    .footer .wrapper-inside { width: calc(100% - 4rem); }
    .footer-subscribe .custom-checkbox { order: 1; }
    .footer-subscribe-row { display: contents; }
    .footer-subscribe-row .btn { order: 2; }
    .footer-subscribe { gap: 2rem; }
    .tags .tag { white-space: normal; text-align: center; height: auto; min-height: 4.4rem; padding: 1rem 1.6rem; }
}

/* =========================================================
   ДОРАБОТКИ ГЛАВНОЙ (28.10.2026)
   ========================================================= */

/* ---------- Анимации без мерцания ----------
   Класс .js-anim ставится скриптом в <head> (только там, где работает GSAP)
   и снимается из main.js, когда GSAP уже выставил стартовые состояния. */
.js-anim [data-animate="fade-up"],
.js-anim [data-animate="section"] [data-animate="card"] {
    opacity: 0;
    visibility: hidden;
}

/* ---------- Главный баннер ----------
   Высота = пропорции картинки (1750×1400). На десктопе текст, отступы и стрелки
   масштабируются от ширины баннера: --hs = 1px макета 1920 (баннер 1760px). */
.hero-slider {
    container-type: inline-size;
    --hs: calc(100cqw / 1760);
}
.hero-slide { height: auto; }
.hero-image { aspect-ratio: 1750 / 1400; }

@media (min-width: 1024px) {
    .hero-panel { padding: calc(100 * var(--hs)) calc(60 * var(--hs)) calc(40 * var(--hs)); }
    .hero-text { gap: calc(60 * var(--hs)); }
    .hero-text-inside { gap: calc(30 * var(--hs)); }
    .hero-text .hero-title { font-size: calc(56 * var(--hs)); }
    .hero-text .text-20 { font-size: max(1.3rem, calc(20 * var(--hs))); }
    .hero-nav { right: calc(50% + 65 * var(--hs)); bottom: calc(40 * var(--hs)); }
}
@media (max-width: 1023px) {
    /* точки — сразу под картинкой: 80cqw = высота картинки 5:4 */
    .hero-dots { top: calc(80cqw + 3rem) !important; }
}

/* ---------- Баннер сертификата: текст не заходит под картинку ---------- */
@media (max-width: 1599px) and (min-width: 1024px) {
    .cert-banner-text { max-width: 48%; }
}

/* ---------- Преимущества под баннером: в строку до 1280 ---------- */
@media (max-width: 1599px) {
    .adv-item { gap: 2rem; padding: 2.4rem; font-size: 1.4rem; }
    .adv-item img { width: 6rem; height: 6rem; }
}
@media (max-width: 1279px) and (min-width: 1024px) {
    .adv-item { flex-direction: column; text-align: center; padding: 2.4rem 1.6rem; }
}

/* ---------- Каталог продукции ---------- */
/* 4 в ряд до 1024, на планшете 3, на мобильном 2 (без описания) */
@media (max-width: 1279px) and (min-width: 768px) {
    /* длинные описания не растягивают узкие карточки: показываем первые 5 строк */
    .categories-grid:not(.swiper-wrapper) .category-card-text {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 5;
        overflow: hidden;
    }
}
@media (max-width: 1023px) {
    .categories-grid { justify-content: center; }
    .categories-grid > .category-card { width: calc(33.333% - 1.3334rem); }
    .category-card-title { font-size: 2rem; min-height: 5.2rem; }
}
@media (max-width: 767px) {
    /* сетка без слайдера (шаблон catalog_cards); слайдер — шаблон catalog_cards_slider */
    .categories-grid:not(.swiper-wrapper) { gap: 1rem; }
    .categories-grid:not(.swiper-wrapper) > .category-card { width: calc(50% - .5rem); gap: 1.6rem; padding: .6rem .6rem 1.6rem; border-radius: 2.4rem; }
    .categories-grid:not(.swiper-wrapper) .category-card-image-inside { border-radius: 1.8rem; }
    .categories-grid:not(.swiper-wrapper) .category-card-badge { width: 4rem; height: 4rem; bottom: -1.4rem; }
    .categories-grid:not(.swiper-wrapper) .category-card-desc { padding: 0 .4rem; }
    .categories-grid:not(.swiper-wrapper) .category-card-title { font-size: 1.6rem; min-height: 4.2rem; }
}

/* ---------- Популярные товары: табы ---------- */
.tabs.is-scrollable { cursor: grab; }
.tabs.is-dragging { cursor: grabbing; user-select: none; }
.tabs.is-scrollable:not(.at-start):not(.at-end) {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4rem, #000 calc(100% - 4rem), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 4rem, #000 calc(100% - 4rem), transparent);
}
.tabs.is-scrollable.at-start:not(.at-end) {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 4rem), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 4rem), transparent);
}
.tabs.is-scrollable.at-end:not(.at-start) {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 4rem);
    mask-image: linear-gradient(90deg, transparent, #000 4rem);
}

/* ---------- О сыроварне ---------- */
/* смена слайда: старый слайд остаётся под новым, большое фото раскрывается шторкой слева,
   маленькое — шторкой снизу чуть позже; старые фото исчезают только когда новые уже открылись */
/* уходящий слайд прячется только после раскрытия нового (задержка 1.2s) */
.about-photos-slider .photo-frame.big {
    clip-path: inset(0 100% 0 0 round 3.4rem);
    transition: clip-path 0s 1.2s;
}
.about-photos-slider .photo-frame.big img {
    transform: scale(1.18);
    transition: transform 0s 1.2s;
}
.about-photos-slider .photo-frame.small {
    clip-path: inset(100% 0 0 0 round 3.4rem);
    transition: clip-path 0s 1.2s;
}
.about-photos-slider .photo-frame.small img {
    transform: scale(1.2);
    transition: transform 0s 1.2s;
}
.about-photos-slider .swiper-slide-active .photo-frame.big {
    clip-path: inset(0 0 0 0 round 3.4rem);
    transition: clip-path 1.1s cubic-bezier(.65, 0, .25, 1);
}
.about-photos-slider .swiper-slide-active .photo-frame.big img {
    transform: scale(1);
    transition: transform 1.6s var(--ease);
}
.about-photos-slider .swiper-slide-active .photo-frame.small {
    clip-path: inset(0 0 0 0 round 3.4rem);
    transition: clip-path .9s cubic-bezier(.65, 0, .25, 1) .3s;
}
.about-photos-slider .swiper-slide-active .photo-frame.small img {
    transform: scale(1);
    transition: transform 1.4s var(--ease) .3s;
}
@media (prefers-reduced-motion: reduce) {
    .about-photos-slider .photo-frame.big,
    .about-photos-slider .photo-frame.big img,
    .about-photos-slider .photo-frame.small,
    .about-photos-slider .photo-frame.small img { transition: none; }
}

/* в строку до 1024 */
@media (max-width: 1599px) and (min-width: 1024px) {
    .about-block { align-items: center; gap: 4rem; }
    .about-text { flex: 1 1 0; min-width: 0; width: auto; padding: 0; gap: 3rem; }
    .about-photos { flex: none; width: 54%; min-width: 0; }
}
@media (max-width: 1023px) {
    .about-block { flex-direction: column; align-items: center; gap: 3rem; }
    .about-text { width: 100%; padding: 0; align-items: center; text-align: center; gap: 2rem; }
    .about-text .h2 { text-align: center; }
    .about-photos { width: 100%; }
    .about-block .about-text .btn { display: none; }
    .about-block .about-btn-mobile { display: flex; }
}
@media (max-width: 767px) {
    .about-photos-slider .photo-frame.big { clip-path: inset(0 100% 0 0 round 2rem); }
    .about-photos-slider .swiper-slide-active .photo-frame.big { clip-path: inset(0 0 0 0 round 2rem); }
}

/* ---------- «Восхитительно-уютное место»: текст слева, видео справа ----------
   Та же форма и сетка, что у блока «Без компромиссов» (.principles):
   билетные вырезы, те же отступы и та же ширина медиа-колонки, чтобы колонки совпадали по вертикали */
@media (min-width: 1024px) {
    .story {
        --r: 2rem;
        display: grid;
        grid-template-columns: minmax(0, 1fr) min(82rem, 50%);
        grid-template-rows: 1fr auto auto 1fr;
        column-gap: 6rem;
        row-gap: 3rem;
        align-items: start;
        padding: 8rem 6rem 8rem 8rem;
        border-radius: 0;
        text-align: left;
        -webkit-mask:
            radial-gradient(circle var(--r) at 0 0, transparent 98%, #000) top left,
            radial-gradient(circle var(--r) at 100% 0, transparent 98%, #000) top right,
            radial-gradient(circle var(--r) at 0 100%, transparent 98%, #000) bottom left,
            radial-gradient(circle var(--r) at 100% 100%, transparent 98%, #000) bottom right;
        -webkit-mask-size: 51% 51%;
        -webkit-mask-repeat: no-repeat;
        mask:
            radial-gradient(circle var(--r) at 0 0, transparent 98%, #000) top left,
            radial-gradient(circle var(--r) at 100% 0, transparent 98%, #000) top right,
            radial-gradient(circle var(--r) at 0 100%, transparent 98%, #000) bottom left,
            radial-gradient(circle var(--r) at 100% 100%, transparent 98%, #000) bottom right;
        mask-size: 51% 51%;
        mask-repeat: no-repeat;
    }
    .story > .h2 { grid-column: 1; grid-row: 2; }
    .story > .story-text { grid-column: 1; grid-row: 3; max-width: none; }
    .story > .story-video { grid-column: 2; grid-row: 1 / 5; align-self: center; aspect-ratio: 820 / 640; border-radius: 3rem; }
}
@media (max-width: 1599px) and (min-width: 1024px) {
    .story { padding: 6rem 4rem; column-gap: 4rem; }
    .story > .h2 { font-size: 3.6rem; line-height: 1.3; }
}

/* ---------- Отзывы ---------- */
@media (max-width: 767px) {
    .reviews-slider .swiper-slide { height: auto; }
}

/* ---------- Оптовая продажа ---------- */
/* ниже 1600 — без иконок, преимущества обычным списком; в строку до 1024 */
@media (max-width: 1599px) {
    .opt-features { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem 3rem; }
    .opt-feature { width: auto; gap: 1.2rem; font-size: 1.6rem; text-align: left; }
    .opt-feature img { display: none; }
    .opt-feature::before {
        content: "";
        flex: 0 0 .7rem;
        height: .7rem;
        margin-top: .6em;
        border-radius: 50%;
        background: currentColor;
        opacity: .7;
    }
}
@media (max-width: 1599px) and (min-width: 1024px) {
    .opt-block { padding: 0 4rem; gap: 4rem; }
    .opt-text { flex: 1 1 0; padding: 5rem 0; gap: 3rem; }
    .opt-text .h2 { font-size: 4rem; line-height: 1.3; }
    .opt-prices { flex: 0 0 auto; width: 56rem; max-width: 50%; }
}
@media (max-width: 1023px) {
    .opt-block { flex-direction: column; align-items: stretch; padding: 5rem 3rem 3rem; gap: 3rem; }
    .opt-text { flex: none; width: 100%; padding: 0; align-items: center; text-align: center; gap: 2.4rem; }
    .opt-text .h2 { text-align: center; }
    .opt-feature { width: auto; font-size: 1.4rem; }
    .opt-prices { flex: none; width: 100%; justify-content: center; }
    .price-card { width: 30rem; }
}
@media (max-width: 767px) {
    .opt-block { padding: 4rem 2rem 2rem; }
    .opt-features { grid-template-columns: 1fr; gap: 1rem; }
    .opt-prices { gap: 1rem; }
    .price-card { flex: 1 1 0; width: auto; max-width: none; gap: 2rem; padding: .6rem .6rem 1.6rem; border-radius: 2.4rem; }
    .price-card-image-inside { border-radius: 1.8rem; }
    .price-card-badge { width: 4.4rem; height: 4.4rem; bottom: -1.6rem; }
    .price-card-desc { padding: 0 .4rem; gap: .6rem; }
    .price-card-desc .title-24 { font-size: 1.4rem; }
    .price-card-meta { font-size: 1.2rem; }
}

/* ---------- Связаться с нами: в строку до 1024 ---------- */
@media (max-width: 1599px) and (min-width: 1024px) {
    .contact-info { padding: 5rem 4rem; gap: 3rem; }
    .contact-form { padding: 5rem 4rem; }
    .contact-form-inside { gap: 3rem; }
}
@media (max-width: 1023px) {
    .contact-block { flex-direction: column; }
    .contact-info { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem 2rem; }
    .contact-info .h2 { grid-column: 1 / -1; }
    .contact-form { width: 100%; }
}
@media (max-width: 767px) {
    .contact-info { grid-template-columns: 1fr; text-align: center; }
    .contact-info .h2 { text-align: center; }
    .contact-shop { align-items: center; }
}

/* ---------- Кнопки на мобильном: по ширине текста, как «подробнее о компании» ---------- */
@media (max-width: 767px) {
    .btn.wide,
    .btn.xwide { padding: 0 4rem; }
    .section-btn .btn,
    .hero-text .btn,
    .cert-banner-text .btn,
    .opt-text .btn { max-width: 100%; }
}

/* =========================================================
   КАТАЛОГ: сетка карточек товаров
   ≥1280 — 4 в ряд, 768–1279 — 3 в ряд, ≤767 — 2 в ряд
   ========================================================= */
/* 1280–1599: 4 в ряд — ужимаем низ карточки, чтобы цена и кнопка помещались */
@media (max-width: 1599px) and (min-width: 1280px) {
    .products-grid .product-card-info { padding: 0 1.2rem; }
    .products-grid .product-card-price { font-size: 2rem; }
    .products-grid .btn-to-cart { padding: 0 1.8rem; gap: .8rem; }
    .products-grid .counter { width: 14rem; }
    .products-grid .counter-btn { width: 4rem; height: 4rem; }
}
/* ≤1023: узкие карточки — цена над кнопкой, кнопка на всю ширину */
@media (max-width: 1023px) {
    .products-grid .product-card-info { padding: 0 1.2rem; }
    .products-grid .product-card-bottom { flex-direction: column; align-items: stretch; gap: 1.2rem; }
    .products-grid .btn-to-cart { width: 100%; }
    .products-grid .counter { width: 100%; }
}
@media (max-width: 767px) {
    .products-grid .product-card { gap: 1.2rem; padding: .6rem .6rem 1.4rem; border-radius: 2.4rem; }
    .products-grid .product-card-image { border-radius: 1.8rem; }
    .products-grid .product-card-info { padding: 0 .6rem; }
    .products-grid .product-card-desc { min-height: 0; gap: .6rem; }
    .products-grid .product-card-title { font-size: 1.5rem; line-height: 1.3; }
    .products-grid .product-card-weight { font-size: 1.2rem; }
    .products-grid .product-extra { font-size: 1.2rem; }
    .products-grid .product-card-bottom { min-height: 0; gap: .8rem; }
    .products-grid .product-card-price { font-size: 1.8rem; }
    .products-grid .btn-to-cart { height: 4.4rem; padding: 0 1rem; gap: .6rem; font-size: 1.1rem; }
    .products-grid .btn-to-cart .icon { width: 1.6rem; height: 1.6rem; }
    .products-grid .counter { height: 4.4rem; padding: 0 .4rem; }
    .products-grid .counter-btn { width: 3.6rem; height: 3.6rem; font-size: 1.8rem; }
    .products-grid .counter-value { font-size: 1.4rem; }
}

/* =========================================================
   КАТАЛОГ: фильтр-теги — уменьшаем на адаптиве
   ========================================================= */
@media (max-width: 1599px) {
    .filter-tags .tag { height: 4.4rem; padding: 0 1.8rem; font-size: 1.3rem; }
    .filter-arrow { width: 5.2rem; height: 4.4rem; }
    .catalog-list { gap: 4rem; }
    .catalog-sort-btn { height: 4.4rem; padding: 0 1.8rem; font-size: 1.3rem; }
    .catalog-sort-option { font-size: 1.3rem; }
}
@media (max-width: 1023px) {
    .filter-tags { gap: .8rem; }
    .filter-tags .tag { height: 3.8rem; padding: 0 1.5rem; font-size: 1.15rem; }
    .filter-arrow { width: 4.6rem; height: 3.8rem; }
    .filter-arrow .icon { width: 1.6rem; height: 1.4rem; }
    .catalog-list { gap: 3rem; }
    /* На планшете и телефоне сортировка уходит под теги, слева */
    .catalog-toolbar { flex-direction: column; align-items: stretch; gap: 1.2rem; }
    .catalog-toolbar.only-sort { align-items: flex-start; }
    .catalog-sort { align-self: flex-start; }
    .catalog-sort-btn { height: 3.8rem; padding: 0 1.5rem; font-size: 1.15rem; }
    .catalog-sort-menu { right: auto; left: 0; border-radius: 2rem; }
    .catalog-sort-option { min-height: 4rem; font-size: 1.15rem; border-radius: 1.4rem; }
}
@media (max-width: 1023px) {
    .product-badges { top: 1.2rem; left: 1.2rem; right: 1.2rem; gap: .4rem; }
    .product-badge { height: 2.4rem; padding: 0 1rem 0 .8rem; font-size: 1rem; gap: .4rem; }
    .product-badge svg { width: 1.1rem; height: 1.1rem; }
}
@media (max-width: 767px) {
    .filter-tags { gap: .6rem; }
    .filter-tags .tag { height: 3.4rem; padding: 0 1.3rem; font-size: 1.1rem; }
    .catalog-list { gap: 2.4rem; }
    .catalog-toolbar { gap: 1rem; }
    .catalog-sort-btn { height: 3.4rem; padding: 0 1.3rem; font-size: 1.1rem; }
    .catalog-sort-option { min-height: 3.8rem; font-size: 1.1rem; }
}

/* End */


/* Start:/local/design/cheeselive/css/cookies.fluid.css?17931833312640*/
.cookie-notice[hidden] {
    display: none !important;
}
.cookie-notice {
    position: fixed;
    right: max(2.4rem, env(safe-area-inset-right));
    bottom: max(2.4rem, env(safe-area-inset-bottom));
    z-index: 90;
    display: flex;
    align-items: flex-start;
    gap: 1.8rem;
    width: 55rem;
    max-width: calc(100% - 4.8rem);
    max-height: calc(100dvh - 4.8rem);
    overflow-y: auto;
    padding: 2.6rem;
    border: 1px solid var(--stroke);
    border-radius: 2.4rem;
    background: var(--bej);
    box-shadow: 0 1.2rem 4.8rem rgba(60, 53, 44, .12);
    animation: cookie-notice-appear .3s var(--ease);
}
.cookie-notice-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 4.8rem;
    width: 4.8rem;
    height: 4.8rem;
    border-radius: 50%;
    color: var(--blue);
    background: var(--bg);
}
.cookie-notice-icon svg {
    width: 3.8rem;
    height: 3.8rem;
}
.cookie-notice-body {
    flex: 1;
    min-width: 0;
}
.cookie-notice-title {
    margin-bottom: 1rem;
    font-family: "Prata", serif;
    font-size: 2rem;
    line-height: 1.45;
}
.cookie-notice-text {
    font-size: 1.4rem;
    line-height: 1.6;
    color: var(--grey);
}
.cookie-notice-text a {
    color: var(--blue-dark);
    text-decoration: underline;
    text-underline-offset: .3rem;
}
.cookie-notice-text a:hover {
    text-decoration: none;
}
.cookie-notice .cookie-notice-accept {
    height: 4.2rem;
    margin-top: 1.8rem;
    padding: 0 2.5rem;
    font-size: 1.2rem;
}
.cookie-notice a:focus-visible,
.cookie-notice button:focus-visible {
    outline: .2rem solid var(--blue-dark);
    outline-offset: .4rem;
}
@keyframes cookie-notice-appear {
    from { opacity: 0; transform: translateY(1.2rem); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 767px) {
    .cookie-notice {
        right: max(1.2rem, env(safe-area-inset-right));
        bottom: max(1.2rem, env(safe-area-inset-bottom));
        width: calc(100% - 2.4rem);
        max-width: none;
        max-height: calc(100dvh - 2.4rem);
        padding: 2rem;
        gap: 1.2rem;
        border-radius: 2rem;
    }
    .cookie-notice-icon {
        flex-basis: 3.6rem;
        width: 3.6rem;
        height: 3.6rem;
    }
    .cookie-notice-icon svg { width: 3rem; height: 3rem; }
    .cookie-notice-title { font-size: 1.7rem; }
    .cookie-notice-text { font-size: 1.3rem; }
    .cookie-notice .cookie-notice-accept { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .cookie-notice { animation: none; }
}

/* End */
/* /local/design/cheeselive/js/swiper/swiper-bundle.min.css?179266156918454 */
/* /local/design/cheeselive/js/fancyapps/fancybox/fancybox.css?179266156925343 */
/* /local/design/cheeselive/css/style.fluid.css?1793220664118251 */
/* /local/design/cheeselive/css/cookies.fluid.css?17931833312640 */
