/* Сезонное оформление витрины, v2: всё абсолютное/фиксированное, клики насквозь, вёрстку не двигает.
   Единственный сдвиг — отступ под гирлянду, и он есть с первой отрисовки (html.hw-on ставится в <head>). */
.hw{position:absolute;pointer-events:none;z-index:5;line-height:0;opacity:0;transition:opacity .4s ease}
.hw.is-ready{opacity:1}
.hw svg{display:block}
.hw-host{position:relative}

/* шляпа с паучком на голове гидры (холст 220×230); на другой высоте логотипа season.js масштабирует пропорционально */
.hw-hat{width:58px;height:61px;left:-12px;top:-30px;transform:rotate(-14deg);z-index:6}

/* гирлянда-флажки под шапкой; контенту — отступ на её высоту с первой отрисовки */
.hw-garland{left:50%;width:min(calc(100% - 32px),1468px);transform:translateX(-50%);top:100%;height:44px;display:flex;overflow:hidden;z-index:38;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent)} /* по ширине контента сайта (.nx-header-main 1500 - 2×16), 19.10.2026 */
.hw-garland__tile{flex:none;width:256px;height:44px}
html.hw-on body > main{margin-top:34px}
@media (max-width:767px){.hw-garland{height:30px}.hw-garland__tile{width:171px;height:30px}html.hw-on body > main{margin-top:22px}}

/* паутина в углах */
.hw-web{width:150px;height:150px;z-index:3}
.hw-web.is-ready{opacity:.8}
.hw-web--tr{top:0;right:0;transform:scaleX(-1);filter:drop-shadow(0 0 1px rgba(255,255,255,.9))}
.hw-web--sm.hw-web--tr{filter:none}
@media (max-width:767px){.hw-web--tr{filter:none}}
.hw-web--tl{top:0;left:0}
.hw-web--sm{width:84px;height:84px}
.hw-web--sm.is-ready{opacity:.55}
.hw-web--faint.is-ready{opacity:.4}
@media (max-width:767px){.hw-web{width:92px;height:92px}}

/* украшения на линиях заголовков разделов: мышь висит под линией, паучок спускается, тыква сидит на линии */
.hw-on-rule{z-index:4;transform:translateX(-50%)}
.hw-on-rule--hang_bat{top:-2px;width:64px;height:56px}
.hw-on-rule--line_spider{top:0;width:30px;height:60px}
.hw-on-rule--pumpkin{bottom:-2px;width:38px;height:36px}
.hw-on-rule--mid{bottom:auto} /* тыква по центру линии в ленивой секции — размеры ставит season.js */
/* кот (холст 60×92, линия на y=57) и совёнок (60×72, лапки на y=66) сидят на линии */
.hw-on-rule--perch_cat,.hw-on-rule--perch_snowman{top:-38px;width:40px;height:61px}
.hw-on-rule--perch_owl,.hw-on-rule--perch_bullfinch{top:-48px;width:44px;height:53px}
.hw-on-rule--gift{bottom:-2px;width:38px;height:36px}
@media (max-width:767px){.hw-on-rule--perch_cat,.hw-on-rule--perch_snowman{top:-32px;width:34px;height:52px}.hw-on-rule--perch_owl,.hw-on-rule--perch_bullfinch{top:-40px;width:37px;height:44px}.hw-on-rule--gift{width:32px;height:30px}.hw-on-rule--hang_bat{width:50px;height:44px}.hw-on-rule--line_spider{width:24px;height:48px}.hw-on-rule--pumpkin{width:32px;height:30px}}

/* котёл у заголовка рецептов */
.hw-cauldron{width:78px;height:78px;left:100%;margin-left:10px;top:-6px}
@media (max-width:767px){.hw-cauldron{display:none}} /* на телефоне ложится на стрелку «Дивитися всі рецепти» */

/* привидение выглядывает из-за верхнего края блока «Акции» (ПК) */
.hw-peek{width:64px;height:45px;right:56px;top:-45px;z-index:2}

/* мышки висят в ряду преимуществ, на стыках пунктов (ПК) */
.hw-ben-bat{top:-2px;width:60px;height:52px;margin-left:-30px;z-index:2}

/* привидение у кнопки чата (ПК) */
.hw-ghost{position:fixed;right:19px;bottom:calc(132px + env(safe-area-inset-bottom));width:52px;height:64px;z-index:49} /* над кнопкой чата (19.10.2026) */

/* хутор над подвалом: небо — градиент от страницы к подвалу, земля сцены того же цвета, что подвал.
   Высота растёт с шириной (холст 2400×240 «в обрез»), чтобы на широких экранах не резало сову сверху */
.hw-grave{position:relative;display:block;width:100%;height:max(200px,10vw);margin-top:28px;margin-bottom:-1px;
  background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#e6dcf3 8%,#b9a5dc 28%,#8a72b4 50%,#4a3a6c 70%,#2a2434 80%,#1e1e24 84%,#1e1e24 100%)}
@media (max-width:767px){.hw-grave{height:132px;margin-top:20px}}

/* кот в тыкве рядом с гидрой в пустой корзине */
.hw-cat{width:124px;height:124px}
@media (max-width:767px){.hw-cat{width:92px;height:92px}}

/* «Дякуємо за замовлення»: кот в тыкве вместо галочки; размер задан до отрисовки (html.hw-on) — страница не дёргается */
html.hw-on [data-checkout-success-icon]{position:relative;width:128px;height:128px;margin-top:-16px;background:none}
.hw-ok > :not(.hw){visibility:hidden}
.hw-ok-cat{inset:0;width:100%;height:100%}
html.hw-on .checkout-success > p:first-of-type::after{display:block;margin-top:6px;color:#e0620b;font-size:15px;font-weight:600}
html.hw-t-halloween .checkout-success > p:first-of-type::after{content:"Тыква уже несёт ваш заказ"}
html.hw-t-halloween:lang(uk) .checkout-success > p:first-of-type::after{content:"Гарбуз уже несе ваше замовлення"}
html.hw-t-newyear .checkout-success > p:first-of-type::after{content:"Ваш заказ уже мчит на санях";color:#c8343f}
html.hw-t-newyear:lang(uk) .checkout-success > p:first-of-type::after{content:"Ваше замовлення вже мчить на санях"}
@media (max-width:767px){html.hw-on [data-checkout-success-icon]{width:104px;height:104px;margin-top:-8px}}

/* взрыв конфет из кнопки «Купить» */
.hw-burst{position:fixed;width:260px;height:260px;margin:-130px 0 0 -130px;z-index:60}

/* мыши пролетают через верх экрана */
.hw-bats{position:fixed;left:0;top:30px;width:100vw;height:200px;z-index:45}

/* паук: рамка прозрачна для кликов, ловится только сам паук */
.hw-spider{position:fixed;top:0;right:7vw;width:90px;height:190px;z-index:47;pointer-events:none;line-height:0;
  transform:translateY(-105%);transition:transform 1.6s cubic-bezier(.3,1.25,.5,1)}
.hw-spider.is-down{transform:translateY(0)}
.hw-spider.is-run{transform:translateY(-110%);transition:transform .55s ease-in}
.hw-spider__art{width:100%;height:100%}
.hw-spider__hit{position:absolute;left:4px;right:4px;bottom:16px;height:56px;padding:0;border:0;border-radius:50%;background:none;
  cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}
/* подсказка «Поймай меня!» — один раз, слева от паука */
.hw-spider__tip{position:absolute;left:50%;top:100%;margin-top:-10px;padding:6px 10px;border-radius:12px;
  background:#fff;border:1px solid #e7e2f0;box-shadow:0 6px 18px rgba(43,30,69,.14);color:#2b1e45;font-size:13px;font-weight:600;
  line-height:1.2;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;pointer-events:none}
.hw-spider__tip{transform:translate(-50%,6px)}
.hw-spider__tip.is-on{opacity:1;transform:translate(-50%,0)}
/* на телефоне вместо надписи покачивается — «меня можно тронуть» */
.hw-spider.is-wiggle .hw-spider__art{animation:hw-wiggle .7s ease-in-out 2;transform-origin:50% 0}
@keyframes hw-wiggle{25%{transform:rotate(7deg)}75%{transform:rotate(-7deg)}}
.hw-spider__hit:focus-visible{outline:2px solid #7e6094;outline-offset:2px}
@media (max-width:767px){.hw-spider{right:6px;width:69px;height:146px;z-index:30}.hw-spider__hit{bottom:12px;height:44px}.hw-spider__tip{bottom:24px;font-size:12px}}
/* на широком экране — в правом поле, не над карточками */
@media (min-width:1200px){.hw-spider{right:max(2px,calc((100vw - 1112px) / 4 - 45px))}}
/* 768–1199: правого поля нет — паук лёг бы на карточки */
@media (min-width:768px) and (max-width:1199px){.hw-spider{display:none}}

/* промокод из паука */
.hw-promo{position:fixed;right:24px;top:96px;z-index:70;width:280px;padding:16px 16px 14px;border-radius:18px;
  background:#fff;border:1px solid #e7e2f0;box-shadow:0 18px 50px rgba(43,30,69,.22);color:#2b1e45;
  font-family:inherit;font-size:14px;line-height:1.4;display:grid;gap:4px;justify-items:center;text-align:center;
  opacity:0;transform:translateY(-10px) scale(.96);transition:opacity .3s,transform .3s}
.hw-promo.is-open{opacity:1;transform:none}
.hw-promo__anim{width:70px;height:66px}
.hw-promo b{font-size:18px}
.hw-promo span{color:#6b6280}
.hw-promo small{color:#a39bb0;font-size:12px}
.hw-promo__code{margin-top:6px;padding:9px 16px;border:2px dashed #ff8a1f;border-radius:12px;background:#fff7ef;
  color:#e0620b;font-family:inherit;font-size:19px;font-weight:700;line-height:1;letter-spacing:.06em;cursor:pointer}
.hw-promo__terms{color:#8d8695;font-size:12px}
.hw-promo__go{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border-radius:12px;
  background:#7e6094;color:#fff;font-weight:600;font-size:14px;text-decoration:none}
.hw-promo__go:hover{background:#6c5082;color:#fff}
.hw-promo__close{margin-top:2px;border:0;background:none;color:#6b6280;font-size:13px;cursor:pointer;padding:10px 16px;min-height:44px}
.hw-promo-bg{display:none}
/* телефон: окно по центру экрана поверх затемнения — у нижнего края его перекрывала панель браузера */
@media (max-width:767px){
  .hw-promo{left:16px;right:16px;width:auto;top:50%;bottom:auto;max-height:calc(100% - 32px);overflow:auto;transform:translateY(-46%) scale(.96)}
  .hw-promo.is-open{transform:translateY(-50%)}
  .hw-promo-bg{display:block;position:fixed;inset:0;z-index:69;background:rgba(30,30,36,.45);opacity:0;transition:opacity .3s;
    overscroll-behavior:contain;touch-action:none}
  .hw-promo-bg.is-open{opacity:1}
}

/* «Скрыть украшения» */
.hw-toggle{position:fixed;left:12px;bottom:12px;z-index:48;padding:6px 10px;border:1px solid #e7e2f0;border-radius:999px;
  background:rgba(255,255,255,.92);color:#6b6280;font-size:12px;line-height:1;cursor:pointer;
  box-shadow:0 4px 12px rgba(43,30,69,.08)}
.hw-toggle:hover{color:#2b1e45}
@media (max-width:767px){.hw-toggle{bottom:8px;left:8px;font-size:11px}}
/* на телефоне — обычной ссылкой в конце подвала (плашка ложилась на копирайт) */
.hw-toggle--inline{position:static;display:block;margin:0 auto 14px;border:0;background:none;box-shadow:none;color:#8d8695;
  text-decoration:underline;text-underline-offset:3px}

@media print{.hw,.hw-spider,.hw-promo,.hw-promo-bg,.hw-toggle,.hw-aside,.hw-cartcard,.hw-snow{display:none!important}}

/* украшение в строке заголовка («Супутні товари» на странице товара) */
.hw.hw-inline{position:relative;display:inline-block;width:26px;height:24px;margin-left:8px;vertical-align:-5px}

/* каталог: липкая карточка в пустой колонке под фильтрами */
.hw-aside{position:sticky;top:96px;margin-top:20px;padding:14px 16px 16px;border:1px solid #e7e2f0;border-radius:16px;background:#fff;
  display:grid;gap:4px;justify-items:center;text-align:center;color:#2b1e45;font-size:13px;line-height:1.35;opacity:0;transition:opacity .4s}
.hw-aside.is-ready{opacity:1}
.hw-aside__anim{width:110px;height:110px;margin-top:-6px}
.hw-aside b{font-size:15px}
.hw-aside span{color:#6b6280}
.hw-aside .hw-promo__code{font-size:16px;padding:7px 12px}

/* корзина: пойманный код одним нажатием / тизер */
.cartx-card.hw-cartcard{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hw-cartcard__anim{flex:none;width:40px;height:38px}
.hw-cartcard__text{flex:1 1 140px;font-size:14px;line-height:1.35;color:#2b1e45}
.hw-cartcard__btn{flex:none}

/* снегопад (Новый год) — только первый экран, ниже гаснет (season.js) */
.hw-snow{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:44}

/* ── Тап по коту и мыши (19.10.2026) ── */
.hw-on-rule--perch_cat,.hw-ben-bat,.hw-rec-bat{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hw-on-rule--perch_cat.hw-boop{animation:hw-boop .55s ease}
@keyframes hw-boop{0%,100%{transform:translateY(0)}35%{transform:translateY(-12px) scale(1.06)}60%{transform:translateY(0) scale(.97,1.03)}}
.hw-ben-bat.hw-gone,.hw-rec-bat.hw-gone{opacity:0;pointer-events:none;transition:opacity .12s}
.hw-flybat{position:fixed;width:120px;height:84px;z-index:2147483000;opacity:1;pointer-events:none;animation:hw-flybat 2.2s cubic-bezier(.35,0,.6,1) forwards;filter:drop-shadow(0 0 6px rgb(200 160 255 / .55))}
@keyframes hw-flybat{
  0%{transform:translate(0,0) scale(.75)}
  14%{transform:translate(0,14px) scale(.85)}
  32%{transform:translate(calc(var(--hw-fly-x,200px)*.18),-30px) rotate(var(--hw-fly-tilt,14deg)) scale(.95)}
  55%{transform:translate(calc(var(--hw-fly-x,200px)*.45),-110px) rotate(calc(var(--hw-fly-tilt,14deg)*-.6)) scale(.9)}
  80%{transform:translate(calc(var(--hw-fly-x,200px)*.8),-210px) rotate(var(--hw-fly-tilt,14deg)) scale(.7);opacity:1}
  100%{transform:translate(var(--hw-fly-x,200px),-300px) scale(.5);opacity:0}}


/* ── Блок рецептов на Хэллоуин: ночь при луне вместо котла (19.10.2026) ── */
.home-recipes--editorial.hw-night{border-color:#3b2a4c;color:#efe6f7;background:
  radial-gradient(circle at 88% 14%,rgb(255 214 120 / .22),transparent 18%),
  radial-gradient(circle at 12% 110%,rgb(124 255 140 / .10),transparent 40%),
  linear-gradient(160deg,#241532 0%,#1a0f25 55%,#120a1a 100%);box-shadow:0 18px 46px rgb(20 8 30 / .35)}
.home-recipes--editorial.hw-night::before{background-image:radial-gradient(1.2px 1.2px at 20px 30px,rgb(255 255 255 / .55),transparent 60%),radial-gradient(1px 1px at 120px 80px,rgb(255 255 255 / .4),transparent 60%),radial-gradient(1.4px 1.4px at 200px 20px,rgb(255 255 255 / .5),transparent 60%),radial-gradient(1px 1px at 300px 110px,rgb(255 255 255 / .35),transparent 60%);background-size:340px 160px;mask-image:linear-gradient(to bottom,#000,transparent 60%)}
.home-recipes--editorial.hw-night::after{position:absolute;z-index:-1;top:28px;right:11%;width:74px;height:74px;border-radius:50%;content:'';
  background:radial-gradient(circle at 34% 38%,rgb(0 0 0 / .08) 0 7px,transparent 8px),radial-gradient(circle at 62% 64%,rgb(0 0 0 / .07) 0 10px,transparent 11px),radial-gradient(circle at 40% 40%,#fff7d6,#f3d98a 70%,#e2bf62);
  box-shadow:0 0 40px 12px rgb(255 214 120 / .25)}
.hw-night .home-recipes__eyebrow{color:#ff9b3d}
.hw-night .home-recipes__heading{color:#fbf6ff;text-shadow:0 2px 18px rgb(140 90 200 / .35)}
.hw-night .home-recipes__lead{color:#c9bad6}
.hw-night .home-recipes__all{color:#efe3f8}
.hw-night .home-recipes__all-icon{border-color:#4b3760;background:#2a1b38;color:#efe3f8;box-shadow:0 5px 14px rgb(0 0 0 / .3)}
.hw-night .home-recipes__all:hover .home-recipes__all-icon,.hw-night .home-recipes__all:focus-visible .home-recipes__all-icon{border-color:#f27d1b;background:#f27d1b;color:#1a0f25}
.hw-night .home-recipes__chip{border-color:#4b3760;background:rgb(255 255 255 / .05);color:#d8c8e6}
.hw-night .home-recipes__chip:hover,.hw-night .home-recipes__chip:focus-visible{border-color:#f27d1b;color:#ffd2a8}
.hw-night .home-recipes__chip.is-active{border-color:#f27d1b;background:#f27d1b;color:#1a0f25}
.hw-night .home-recipes__card{box-shadow:0 0 0 1px rgb(242 125 27 / .18);transition:box-shadow .2s}
.hw-night .home-recipes__card:hover,.hw-night .home-recipes__card:focus-visible{box-shadow:0 0 0 2px #f27d1b,0 12px 34px rgb(242 125 27 / .35)}
.hw-web--night{width:120px;height:120px}
.hw-web--night.is-ready{opacity:.45}
.hw-rec-bat{top:0;width:70px;height:61px;margin-left:-35px;z-index:4;filter:drop-shadow(0 0 6px rgb(200 160 255 / .55))}
