/* МОО «Мельница» — общие стили, подключаются в <head> каждой страницы.
   Классы fx-* проставлены в шаблонах; анимации появления включает fx.js (класс html.fx-on). */

:root{--pink:#D12556;--pink-dk:#B31E48;--ink:#2B2B2E;--line:#EFECEA;--ease:cubic-bezier(.22,.8,.24,1)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
::selection{background:rgba(209,37,86,.16);color:var(--ink)}
body{overflow-x:hidden}
/* iPhone в горизонтальном положении: контент не уходит под вырез экрана (viewport-fit=cover) */
body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
/* Рантайм ставит корню height:100% — тогда липкая шапка «отклеивается» после первого экрана */
#dc-root,#dc-root>.sc-host{height:auto!important;min-height:100%}
h1,h2,h3{overflow-wrap:break-word;hyphens:auto}
/* Единый интервал у заголовков разделов — на главной он задан в разметке, на остальных страницах был «normal» */
main h2{line-height:1.15}
img{max-width:100%}
[id]{scroll-margin-top:96px}
a,button{-webkit-tap-highlight-color:rgba(209,37,86,.12);touch-action:manipulation}
/* Кнопки — элементы управления: долгое нажатие не выделяет подпись */
button,.fx-btn,.mm-cta,.mm-burger,#fx-bar a,#fx-top{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
:focus-visible{outline:2.5px solid var(--pink);outline-offset:3px;border-radius:6px}

/* ---------- Шапка: закреплена сверху, полупрозрачная ---------- */
.mm-header{position:sticky!important;top:0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);transition:box-shadow .3s ease,background-color .3s ease}
html[data-scrolled] .mm-header{box-shadow:0 8px 28px rgba(43,43,46,.07);border-bottom-color:transparent!important}
.mm-header .mm-hd{transition:padding .3s ease}
.mm-nav a{position:relative;transition:color .2s ease}
.mm-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;border-radius:2px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}
.mm-nav a[aria-current="page"]::after{transform:scaleX(1)}
.mm-nav a[aria-current="page"]{color:var(--pink)!important}
.mm-cta{transition:transform .2s var(--ease),box-shadow .2s ease,background-color .2s ease}
/* Эффекты наведения — только для мыши: на телефоне :hover «залипает» после тапа */
@media (hover:hover) and (pointer:fine){
.mm-nav a:hover{color:var(--pink)!important}
.mm-nav a:hover::after{transform:scaleX(1)}
.mm-cta:hover{background:var(--pink-dk)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 6px 16px rgba(209,37,86,.28)}
}

/* Шапка: на узких экранах меню прячется под кнопку-«гамбургер» */
.mm-burger,.mm-phone-ico{display:none!important}
.mm-i-close,.mm-open .mm-i-open{display:none}
.mm-open .mm-i-close{display:inline}
/* Полная шапка не помещается в 1280px контента — подпись под логотипом прячем всегда */
.mm-hd{gap:16px!important}
.mm-nav{gap:14px!important;font-size:14.5px!important}
.mm-sub{display:none!important}
@media (max-width:1300px){
.mm-hd{gap:12px!important}
.mm-nav{gap:11px!important;font-size:14px!important}
}
@media (max-width:1180px){
.mm-hd{gap:10px!important;padding:10px 16px!important}
.mm-phone-txt{display:none!important}
.mm-phone-ico{display:flex!important;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #E4E1DD;border-radius:50%;color:#D12556;transition:background-color .2s ease}
.mm-phone-ico:active{background:#FDF3F6}
.mm-burger{display:flex!important;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #E4E1DD;border-radius:10px;background:#fff;cursor:pointer;padding:0;color:#2B2B2E}
.mm-nav,.mm-cta{display:none!important}
.mm-open{max-height:calc(100vh - 8px);max-height:calc(100dvh - 8px);overflow-y:auto;overscroll-behavior:contain}
.mm-open .mm-nav{display:flex!important;order:10;flex-basis:100%;flex-direction:column;gap:0!important;font-size:17px!important;border-top:1px solid #F1EFEC;margin-top:4px}
.mm-open .mm-nav a{padding:13px 2px;border-bottom:1px solid #F1EFEC;animation:fxMenuIn .25s var(--ease) both}
.mm-open .mm-nav a::after{display:none}
.mm-open .mm-nav a[aria-current="page"]{padding-left:12px;border-left:3px solid var(--pink)}
.mm-open .mm-nav a:nth-child(2){animation-delay:.03s}.mm-open .mm-nav a:nth-child(3){animation-delay:.06s}
.mm-open .mm-nav a:nth-child(4){animation-delay:.09s}.mm-open .mm-nav a:nth-child(5){animation-delay:.12s}
.mm-open .mm-nav a:nth-child(6){animation-delay:.15s}.mm-open .mm-nav a:nth-child(7){animation-delay:.18s}
.mm-open .mm-cta{display:block!important;order:11;flex-basis:100%;text-align:center;padding:14px 0!important;margin-bottom:6px;animation:fxMenuIn .25s .12s var(--ease) both}
}
/* Режим «Аа» (страница увеличена через zoom): шапка сразу компактная — медиазапросы увеличения не видят */
html[data-zoom] .mm-hd{gap:10px!important;padding:10px 16px!important}
html[data-zoom] .mm-phone-txt{display:none!important}
html[data-zoom] .mm-phone-ico{display:flex!important;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #E4E1DD;border-radius:50%;color:#D12556;transition:background-color .2s ease}
html[data-zoom] .mm-phone-ico:active{background:#FDF3F6}
html[data-zoom] .mm-burger{display:flex!important;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid #E4E1DD;border-radius:10px;background:#fff;cursor:pointer;padding:0;color:#2B2B2E}
html[data-zoom] .mm-nav,html[data-zoom] .mm-cta{display:none!important}
html[data-zoom] .mm-open{max-height:calc(100vh - 8px);max-height:calc(100dvh - 8px);overflow-y:auto;overscroll-behavior:contain}
html[data-zoom] .mm-open .mm-nav{display:flex!important;order:10;flex-basis:100%;flex-direction:column;gap:0!important;font-size:17px!important;border-top:1px solid #F1EFEC;margin-top:4px}
html[data-zoom] .mm-open .mm-nav a{padding:13px 2px;border-bottom:1px solid #F1EFEC;animation:fxMenuIn .25s var(--ease) both}
html[data-zoom] .mm-open .mm-nav a::after{display:none}
html[data-zoom] .mm-open .mm-nav a[aria-current="page"]{padding-left:12px;border-left:3px solid var(--pink)}
html[data-zoom] .mm-open .mm-nav a:nth-child(2){animation-delay:.03s}
html[data-zoom] .mm-open .mm-nav a:nth-child(3){animation-delay:.06s}
html[data-zoom] .mm-open .mm-nav a:nth-child(4){animation-delay:.09s}
html[data-zoom] .mm-open .mm-nav a:nth-child(5){animation-delay:.12s}
html[data-zoom] .mm-open .mm-nav a:nth-child(6){animation-delay:.15s}
html[data-zoom] .mm-open .mm-nav a:nth-child(7){animation-delay:.18s}
html[data-zoom] .mm-open .mm-cta{display:block!important;order:11;flex-basis:100%;text-align:center;padding:14px 0!important;margin-bottom:6px;animation:fxMenuIn .25s .12s var(--ease) both}
@media (max-width:520px){
html[data-zoom] .mm-hd{gap:6px!important;padding:8px 10px!important}
html[data-zoom] .mm-hd>a:first-child span{display:none}
html[data-zoom] .mm-hd>a:first-child img{height:32px!important}
html[data-zoom] .mm-phone-ico,html[data-zoom] .mm-burger{width:40px!important;height:40px!important}
}
@keyframes fxMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Главная, «Четыре шага»: 4 → 2×2 → 1, без одинокой карточки */
@media (max-width:1100px){.mm-steps{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:560px){.mm-steps{grid-template-columns:1fr!important}}

/* ---------- Мелкие детали ---------- */
/* Подпись над заголовком секции — с розовым штрихом */
.fx-eyebrow{display:flex;align-items:center;gap:10px}
.fx-eyebrow::before{content:"";flex:none;width:15px;height:15px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-12 -12 24 24'%3E%3Cg fill='%23D12556'%3E%3Crect x='-2.5' y='-11.5' width='5' height='9.5' rx='2' transform='rotate(45)'/%3E%3Crect x='-2.5' y='-11.5' width='5' height='9.5' rx='2' transform='rotate(135)'/%3E%3Crect x='-2.5' y='-11.5' width='5' height='9.5' rx='2' transform='rotate(225)'/%3E%3Crect x='-2.5' y='-11.5' width='5' height='9.5' rx='2' transform='rotate(315)'/%3E%3Ccircle r='2.2'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;animation:fxSpin 14s linear infinite}

/* Карточки: мягкий подъём и подсветка под курсором */
.fx-card{position:relative;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .2s ease}
.fx-hover{overflow:hidden;isolation:isolate}
.fx-hover::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .25s ease;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),rgba(209,37,86,.07),transparent 65%)}
@media (hover:hover) and (pointer:fine){
.fx-hover:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(43,43,46,.09);border-color:rgba(209,37,86,.28)!important}
.fx-hover:hover::before{opacity:1}
}
.fx-hover:active{transform:translateY(-1px) scale(.995)}

/* Стрелка «→» сдвигается при наведении */
.fx-arr{display:inline-block;transition:transform .2s var(--ease)}
a:focus-visible .fx-arr{transform:translateX(4px)}
@media (hover:hover) and (pointer:fine){a:hover .fx-arr{transform:translateX(4px)}}

/* Кнопки: подъём, блик */
.fx-btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),box-shadow .25s ease,background-color .2s ease,color .2s ease}
.fx-btn::after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;z-index:-1;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-150%) skewX(-18deg);transition:transform .7s var(--ease)}
.fx-btn-o::after{background:linear-gradient(105deg,transparent,rgba(209,37,86,.12),transparent)}
@media (hover:hover) and (pointer:fine){
.fx-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(209,37,86,.28)!important;color:#fff}
.fx-btn-o:hover{color:var(--pink-dk)!important;background:#FDF3F6!important}
/* Блик едет через transform, а не left — без пересчёта раскладки */
.fx-btn:hover::after{transform:translateX(300%) skewX(-18deg)}
}
.fx-btn:active{transform:translateY(0) scale(.98)}
/* Отклик на нажатие у остальных кнопок — интерфейс сразу «слышит» палец или клик */
.mm-burger{transition:transform .12s var(--ease)}
.mm-cta:active,.mm-burger:active,button[aria-label$="история"]:active{transform:scale(.97)!important}
#fx-top.on:active{transform:scale(.94)}
/* «Копировать» в реквизитах: ширина под «Скопировано ✓» — строка не прыгает, цвет меняется плавно */
button[title="Скопировать"]{min-width:124px;text-align:center;transition:color .2s ease,border-color .2s ease,transform .12s var(--ease)}
button[title="Скопировать"]:active{transform:scale(.97)}
/* Счётчик цифр: цифры одной ширины — число не «дрожит», пока считает */
.fx-stats>div>div:first-child{font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- Контент из админки: длинное, пустое, битое ---------- */
/* Длинное слово без пробелов переносится, а не обрезается краем карточки */
main .fx-card,main h1,main h2,main h3{overflow-wrap:anywhere}
/* Длинный текст новости/проекта — не больше 5 строк, полностью — по ссылке «Читать» */
main article.fx-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden}
/* Пустая дата/рубрика не оставляет пустую строку; ссылка без адреса не показывается */
main .fx-card div:has(>.sc-interp:only-child:empty){display:none}
main .fx-card a[href=""]{display:none}
/* Пустые списки — без осиротевших заголовков */
section[data-screen-label="История"]:has(h2>.sc-interp:only-child:empty),
section[data-screen-label="Команда"]:not(:has(.fx-team>*)),
section[data-screen-label="Текущие проекты"]:not(:has(.fx-proj>*)),
section[data-screen-label="Завершённые проекты"]:not(:has(>h2+div>*)){display:none!important}
/* Битое фото — заглушка с мельницей (подставляет fx.js); видео без файла прячем */
img.fx-noimg{object-fit:cover!important}
video.fx-novideo{display:none!important}

/* Мельница-разделитель и большая мельница на фоне первого экрана */
.fx-hero{position:relative;overflow:hidden}
.fx-hero>*{position:relative;z-index:1}
.fx-hero>.fx-hero-mill{position:absolute;z-index:0;left:-170px;top:-150px;width:560px;height:560px;opacity:.06;pointer-events:none}
@keyframes fxSpin{to{transform:rotate(360deg)}}
@media (max-width:700px){.fx-hero>.fx-hero-mill{left:auto;right:-150px;top:-120px;width:380px;height:380px;opacity:.05}}

/* Слайдшоу: медленное «дыхание» фото */
.fx-hero [data-bg-img]{animation:fxKen 16s ease-in-out infinite alternate;will-change:transform}
@keyframes fxKen{from{transform:scale(1.001)}to{transform:scale(1.07)}}

/* Партнёры: цвет при наведении */
.fx-partner{transition:filter .25s ease,opacity .25s ease,transform .25s var(--ease)}

/* Обложка карточки без фото */
.fx-cover img{transition:transform .3s var(--ease),opacity .25s ease}

/* Карта-картинка: ведёт в Яндекс Карты */
.fx-map{transition:box-shadow .3s ease,border-color .3s ease}
.fx-map>span>span{transition:color .2s ease}

@media (hover:hover) and (pointer:fine){
.fx-partner:hover{filter:none!important;opacity:1!important;transform:scale(1.05)}
.fx-card:hover .fx-cover img{transform:rotate(45deg);opacity:.32}
.fx-map:hover{box-shadow:0 14px 34px rgba(43,43,46,.12);border-color:rgba(209,37,86,.3)!important}
.fx-map:hover>span>span{color:var(--pink)!important}
}

/* Проекты: ровно 4 карточки — сеткой 2×2, без одинокой в ряду */
@media (min-width:700px){.fx-proj:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)!important}}

/* ---------- Мельницы и «ветер» ---------- */
/* Спокойное вращение — CSS-анимация: 15°/с при data-speed="1", длительность = 24s / data-speed.
   «Порыв ветра» при прокрутке fx.js добавляет свойством rotate поверх неё */
.fx-rotor{transform-box:fill-box;transform-origin:center;will-change:transform;animation:fxSpin 24s linear infinite}
.fx-rotor[data-speed="0.4"]{animation-duration:60s}
.fx-rotor[data-speed="0.8"]{animation-duration:30s}
.fx-rotor[data-speed="1.15"]{animation-duration:20.87s}
.fx-rotor[data-speed="1.35"]{animation-duration:17.78s}
.fx-rotor[data-speed="2"]{animation-duration:12s}

/* Пейзаж над подвалом: холмы, облака, мельницы */
.fx-land{position:relative;height:clamp(96px,11vw,150px);margin-top:50px;overflow:hidden;pointer-events:none}
.fx-land+footer{margin-top:0!important;border-top:0!important}
.fx-hills{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:72%}
.fx-land-mill{position:absolute;bottom:14%;height:78%;width:auto;filter:drop-shadow(0 6px 10px rgba(120,90,70,.10))}
.fx-land-mill-1{left:7%;height:64%;bottom:30%}
.fx-land-mill-2{left:76%;height:94%;bottom:22%}
.fx-land-mill-3{left:88%;height:58%;bottom:30%}
.fx-cloud{position:absolute;top:14%;width:120px;height:30px;border-radius:30px;background:#F6EEF0;opacity:.9;animation:fxCloud 70s linear infinite}
.fx-cloud::before,.fx-cloud::after{content:"";position:absolute;bottom:8px;border-radius:50%;background:inherit}
.fx-cloud::before{left:18px;width:46px;height:40px}
.fx-cloud::after{left:52px;width:38px;height:32px}
.fx-cloud-2{top:30%;width:90px;height:24px;opacity:.7;animation-duration:95s;animation-delay:-48s}
@keyframes fxCloud{from{transform:translateX(-160px)}to{transform:translateX(calc(100vw + 40px))}}
@media (max-width:640px){
.fx-land-mill-1{left:4%}
.fx-land-mill-2{left:70%}
.fx-land-mill-3{left:86%}
}

/* Мельница на главной справа от цифр */
section[data-screen-label="Цифры"]{position:relative}
.fx-stats-mill{position:absolute;right:24px;bottom:6px;height:190px;width:auto;pointer-events:none;filter:drop-shadow(0 8px 14px rgba(120,90,70,.12))}
@media (max-width:900px){.fx-stats-mill{display:none}}

/* Значки в карточках */
.fx-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;color:var(--pink);background:linear-gradient(135deg,#FDE9EF,#FCEBDD);box-shadow:inset 0 0 0 1px rgba(209,37,86,.08);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .25s ease}
.fx-icon::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.fx-i-home{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11.5 12 4l9 7.5M5 10v10h5v-6h4v6h5V10'/%3E%3C/svg%3E")}
.fx-i-doc{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E")}
.fx-i-work{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h16v11H4zM9 8V6a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2M4 13h16'/%3E%3C/svg%3E")}
.fx-i-heart{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/%3E%3C/svg%3E")}
.fx-i-people{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM15.5 5.3a3 3 0 0 1 0 5.4M3 20a6 6 0 0 1 12 0M17 14.3a6 6 0 0 1 4 5.7'/%3E%3C/svg%3E")}
.fx-i-tea{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h12v4a5 5 0 0 1-5 5H9a5 5 0 0 1-5-5zM16 11.5h1.5a2.5 2.5 0 0 1 0 5H16M8 3.5v3M12 3.5v3'/%3E%3C/svg%3E")}
.mm-steps .fx-icon{position:absolute;top:22px;right:22px}
.fx-svc .fx-icon{margin-bottom:12px}
@media (hover:hover) and (pointer:fine){.fx-card:hover .fx-icon{transform:rotate(-8deg) scale(1.1);background:linear-gradient(135deg,#FBD6E1,#FBE0C8)}}

/* Мягкие цветные пятна под первым экраном каждой страницы */
.fx-hero::before,main>section:first-child:not(.fx-hero)::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
background:radial-gradient(38% 55% at 12% 18%,rgba(209,37,86,.15),transparent 70%),radial-gradient(34% 50% at 88% 22%,rgba(246,160,110,.2),transparent 70%),radial-gradient(40% 60% at 55% 100%,rgba(234,190,105,.2),transparent 70%);
animation:fxBlob 22s ease-in-out infinite alternate;-webkit-mask-image:radial-gradient(ellipse at center,#000 35%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 35%,transparent 75%)}
.fx-hero{isolation:isolate}
main>section:first-child:not(.fx-hero){position:relative;isolation:isolate}
/* Пятна дрейфуют через transform — слой двигается без перерисовки каждый кадр */
@keyframes fxBlob{0%{transform:translate3d(-4%,-3%,0) scale(1.04)}50%{transform:translate3d(1%,1%,0) scale(1.08)}100%{transform:translate3d(4%,3%,0) scale(1.04)}}

/* ---------- Колоски и зёрна ---------- */
.fx-wheat{position:absolute;bottom:-2px;height:46%;width:auto;transform-origin:50% 100%;animation:fxSway 4s ease-in-out infinite alternate}
.fx-wheat-1{left:1.4%;height:42%;animation-duration:3.6s}
.fx-wheat-2{left:3%;height:52%;animation-duration:4.3s;animation-delay:-1.2s}
.fx-wheat-3{left:4.6%;height:38%;animation-duration:3.9s;animation-delay:-2.1s}
.fx-wheat-4{left:57.5%;height:40%;animation-duration:4.1s;animation-delay:-.6s}
.fx-wheat-5{left:59.1%;height:50%;animation-duration:3.7s;animation-delay:-1.8s}
.fx-wheat-6{left:93%;height:44%;animation-duration:4.4s;animation-delay:-.9s}
.fx-wheat-7{left:94.6%;height:54%;animation-duration:3.8s;animation-delay:-2.4s}
.fx-wheat-8{left:96.2%;height:40%;animation-duration:4.2s;animation-delay:-1.5s}
@keyframes fxSway{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
.fx-grain{position:absolute;width:5px;height:9px;border-radius:50%;background:linear-gradient(#EBC883,#D6A955);opacity:0;animation:fxDrift 12s linear infinite}
.fx-grain-1{left:12%;bottom:30%;animation-delay:0s}
.fx-grain-2{left:30%;bottom:40%;animation-delay:-3s;animation-duration:14s}
.fx-grain-3{left:48%;bottom:26%;animation-delay:-6s}
.fx-grain-4{left:66%;bottom:36%;animation-delay:-8s;animation-duration:15s}
.fx-grain-5{left:82%;bottom:28%;animation-delay:-4.5s;animation-duration:11s}
.fx-grain-6{left:22%;bottom:22%;animation-delay:-10s;animation-duration:13s}
@keyframes fxDrift{0%{opacity:0;transform:translate(0,0) rotate(0)}12%{opacity:.85}80%{opacity:.6}100%{opacity:0;transform:translate(-140px,-70px) rotate(300deg)}}
@media (max-width:640px){.fx-wheat-4,.fx-wheat-5{display:none}.fx-grain-4,.fx-grain-6{display:none}}

/* ---------- «Спасибо»: мельница среди колосьев, конфетти из зёрен и лепестков ---------- */
.fx-thanks-art{display:flex;align-items:flex-end;justify-content:center;height:170px;padding:0 8px}
.fx-thanks-mill{height:170px;width:auto;margin:0 -6px;filter:drop-shadow(0 10px 16px rgba(120,90,70,.14))}
.fx-thanks-art .fx-wheat{position:static;width:auto;height:72px;margin:0 -4px}
.fx-thanks-art .fx-tw-2,.fx-thanks-art .fx-tw-3{height:92px;animation-delay:-1.6s}
.fx-thanks-art .fx-tw-4{animation-delay:-.8s}
main[data-screen-label="Спасибо"]{position:relative;isolation:isolate}
main[data-screen-label="Спасибо"]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(30% 34% at 50% 34%,rgba(234,190,105,.18),transparent 70%),radial-gradient(40% 40% at 30% 70%,rgba(209,37,86,.08),transparent 70%),radial-gradient(40% 40% at 72% 66%,rgba(246,160,110,.12),transparent 70%)}
html.fx-on main[data-screen-label="Спасибо"]>*{animation:fxUp .9s var(--ease) both}
html.fx-on main[data-screen-label="Спасибо"]>:nth-child(2){animation-delay:.25s}
html.fx-on main[data-screen-label="Спасибо"]>:nth-child(3){animation-delay:.4s}
html.fx-on main[data-screen-label="Спасибо"]>:nth-child(4){animation-delay:.55s}
html.fx-on main[data-screen-label="Спасибо"]>:nth-child(5){animation-delay:.7s}
#fx-confetti{position:fixed;inset:0;z-index:95;pointer-events:none;overflow:hidden}
#fx-confetti i{position:absolute;top:-24px;display:block;border-radius:50%;animation:fxFall var(--d,5s) cubic-bezier(.3,.1,.6,1) var(--dl,0s) both}
#fx-confetti i.petal{border-radius:0 60% 0 60%}
@keyframes fxFall{0%{transform:translate(0,0) rotate(0);opacity:0}8%{opacity:1}100%{transform:translate(var(--x,0),108vh) rotate(var(--r,360deg));opacity:.9}}
@media (max-width:640px){.fx-thanks-art{height:140px}.fx-thanks-mill{height:140px}.fx-thanks-art .fx-wheat{height:58px}.fx-thanks-art .fx-tw-2,.fx-thanks-art .fx-tw-3{height:74px}}

/* ---------- Детали на страницах ---------- */
/* «О нас»: линия истории заполняется розовым, когда этап появляется на экране */
.fx-tl>div:not(:last-child) .fx-tl-line{background-image:linear-gradient(#D12556,#F2A9BF)!important;background-repeat:no-repeat!important;background-size:100% 0%!important;transition:background-size 1.4s var(--ease) .25s}
.fx-tl>div[data-fx="in"]:not(:last-child) .fx-tl-line,html:not(.fx-on) .fx-tl>div:not(:last-child) .fx-tl-line{background-size:100% 100%!important}
/* «Проекты»: живая точка у «Идёт сейчас» */
.fx-live::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;vertical-align:1px;border-radius:50%;background:var(--pink);animation:fxPulse 2s ease-out infinite}
@keyframes fxPulse{0%{box-shadow:0 0 0 0 rgba(209,37,86,.55)}70%{box-shadow:0 0 0 7px rgba(209,37,86,0)}100%{box-shadow:0 0 0 0 rgba(209,37,86,0)}}
/* «Контакты»: телефон горячей линии время от времени «звонит» */
.fx-ring{padding-right:84px!important}
.fx-ring::after{content:"";position:absolute;right:26px;top:50%;width:34px;height:34px;margin-top:-17px;background:#fff;opacity:.95;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center/contain no-repeat;animation:fxRing 4s ease-in-out infinite}
@keyframes fxRing{0%,62%,100%{transform:rotate(0)}66%{transform:rotate(-14deg)}70%{transform:rotate(12deg)}74%{transform:rotate(-10deg)}78%{transform:rotate(8deg)}82%{transform:rotate(0)}}
/* «Истории»: декоративные кавычки */
.fx-quote{position:relative}
.fx-quote::before{content:"«";position:absolute;right:clamp(16px,3vw,32px);top:0;font-family:Forum,serif;font-size:clamp(90px,12vw,150px);line-height:1;color:rgba(209,37,86,.10);pointer-events:none}
/* Маркеры-зёрнышки в списках */
.fx-grain-li{position:relative;padding-left:52px!important}
.fx-grain-li::before,.fx-grains li::before{content:"";position:absolute;border-radius:50%;background:linear-gradient(160deg,#EDCB86,#D3A24E);transform:rotate(28deg)}
.fx-grain-li::before{left:22px;top:50%;width:10px;height:16px;margin-top:-8px}
.fx-grains{list-style:none;padding-left:0!important}
.fx-grains li{position:relative;padding-left:24px}
.fx-grains li::before{left:5px;top:.62em;width:7px;height:11px}
.fx-grains-no li::before{background:#D8D0C8}
@media (hover:hover) and (pointer:fine){.fx-grain-li:hover::before{animation:fxWiggle .6s ease}}
@keyframes fxWiggle{0%,100%{transform:rotate(28deg)}35%{transform:rotate(8deg)}70%{transform:rotate(40deg)}}
@media (max-width:640px){.fx-ring{padding-right:70px!important}.fx-ring::after{right:20px;width:28px;height:28px;margin-top:-14px}}

/* Подвал: ссылки */
footer a{transition:color .2s ease}

/* Точки-переключатели историй: зона нажатия больше самой точки */
button[aria-label^="История "]{position:relative;transition:transform .2s ease,background-color .3s ease}
button[aria-label^="История "]::after{content:"";position:absolute;inset:-10px}
button[aria-label$="история"]{transition:border-color .2s ease,color .2s ease,transform .2s ease}
@media (hover:hover) and (pointer:fine){
footer a:hover{color:var(--pink)!important}
button[aria-label^="История "]:hover{transform:scale(1.35)}
button[aria-label$="история"]:hover{border-color:var(--pink)!important;color:var(--pink)!important}
#fx-top:hover{color:var(--pink)}
}

/* ---------- Появление при прокрутке (только если fx.js запустился) ---------- */
html.fx-on [data-fx]{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:var(--fx-d,0s)}
html.fx-on [data-fx].fx-card{transition:opacity .6s var(--ease),transform .6s var(--ease),box-shadow .25s var(--ease),border-color .2s ease;transition-delay:var(--fx-d,0s),var(--fx-d,0s),0s,0s}
html.fx-on [data-fx="in"]{opacity:1;transform:none}
html.fx-on [data-fx="in"].fx-hover:hover{transition-delay:0s}
/* Первый экран главной — плавный вход при загрузке */
html.fx-on .fx-hero>div>*{animation:fxUp .9s var(--ease) both}
html.fx-on .fx-hero>div>:nth-child(2){animation-delay:.08s}
html.fx-on .fx-hero>div>:nth-child(3){animation-delay:.16s}
html.fx-on .fx-hero>div>:nth-child(4){animation-delay:.24s}
html.fx-on .fx-hero>div>:nth-child(5){animation-delay:.32s}
html.fx-on .fx-hero>div[role="img"]{animation:fxPhoto 1.1s .1s var(--ease) both}
html.fx-done .fx-hero>div>*,html.fx-done .fx-hero>div[role="img"],html.fx-done main[data-screen-label="Спасибо"]>*{animation:none!important}
@keyframes fxUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fxPhoto{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}

/* ---------- Элементы, которые добавляет fx.js ---------- */
#fx-progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:90;background:linear-gradient(90deg,#E8577F,var(--pink));transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
#fx-top{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:22px;z-index:80;width:46px;height:46px;border-radius:50%;border:1px solid #E7E4E0;background:rgba(255,255,255,.95);color:var(--ink);box-shadow:0 8px 24px rgba(43,43,46,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;transition:opacity .3s ease,transform .3s var(--ease),color .2s ease}
#fx-top.on{opacity:1;transform:none;pointer-events:auto}
#fx-bar{display:none}
@media (max-width:760px){
#fx-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:85;padding:10px calc(12px + env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left,0px));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid #ECEAE6;box-shadow:0 -8px 24px rgba(43,43,46,.06);transform:translateY(110%);transition:transform .35s var(--ease)}
#fx-bar.on{transform:none}
#fx-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;font:600 15.5px/1.1 'Golos Text',system-ui,sans-serif;text-decoration:none;transition:transform .12s var(--ease)}
#fx-bar a:active{transform:scale(.97)}
#fx-bar .call{border:1.5px solid #E4E1DD;color:var(--ink);background:#fff}
#fx-bar .call svg{color:var(--pink)}
#fx-bar .give{flex:.8;background:var(--pink);color:#fff;box-shadow:0 6px 16px rgba(209,37,86,.25)}
body.fx-has-bar{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
#fx-top{bottom:calc(84px + env(safe-area-inset-bottom));right:calc(12px + env(safe-area-inset-right,0px));width:42px;height:42px}
}

/* ---------- Мобильная версия ---------- */
@media (max-width:640px){
input,textarea,select{font-size:16px!important} /* без авто-зума iOS */
.fx-hero{padding-top:28px!important}
.fx-hero .fx-btn,.fx-cta-row .fx-btn{flex:1 1 100%;text-align:center;box-sizing:border-box}
/* Команда — по два в ряд */
.fx-team{grid-template-columns:repeat(2,1fr)!important;gap:14px!important}
.fx-team>div>div:nth-last-child(2){font-size:14.5px!important}
.fx-team>div>div:last-child{font-size:12.5px!important}
.fx-partner{height:42px!important}
/* Цифры — в один ряд */
/* Флекс, а не сетка: длинное число («1 284 500+») не наезжает на соседа, а уводит его на новую строку */
.fx-stats{display:flex!important;flex-wrap:wrap;gap:12px!important}
.fx-stats>div{flex:1 1 78px}
.fx-stats>div>div:first-child{font-size:30px!important}
.fx-stats>div>div:last-child{font-size:12.5px!important;max-width:none!important;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
footer a{padding:4px 0}
section{scroll-margin-top:72px}
h2{text-wrap:balance}
}
/* Ссылка растягивается на всю карточку — нажимается вся карточка */
:has(>.fx-stretch){position:relative}
.fx-stretch::after{content:"";position:absolute;inset:0;border-radius:inherit}

/* Удобная длина строки: не шире ~65–75 букв (центрированные тексты не трогаем) */
main p:not([style*="text-align: center"]){max-width:min(100%,64ch)!important}
.mm-phone-txt+.mm-phone-txt{font-size:12px!important}

/* Телефон: мелкий текст (11–12.5px) — до 13px, чтобы читался без увеличения */
@media (max-width:640px){
main [style*="font-size: 11px"],main [style*="font-size: 11.5px"],main [style*="font-size: 12px"],main [style*="font-size: 12.5px"],
footer [style*="font-size: 11px"],footer [style*="font-size: 11.5px"],footer [style*="font-size: 12px"],footer [style*="font-size: 12.5px"],
.fx-stats>div>div:last-child,.fx-team>div>div:last-child{font-size:13px!important}
/* Удобные зоны нажатия (не меньше ~40px) */
button[aria-label="Версия для слабовидящих"]{min-height:44px}
a:has(>.fx-arr){display:inline-block;padding-top:9px;padding-bottom:9px}
footer a{padding:8px 0!important}
button[title="Скопировать"]{min-height:38px;padding-left:14px!important;padding-right:14px!important}
}
@media (max-width:400px){
.mm-hd{gap:8px!important;padding:8px 12px!important}
.mm-hd>a:first-child{gap:7px!important}
.mm-hd>a:first-child img{height:38px!important}
.mm-hd>a:first-child span span:first-child{font-size:21px!important}
.mm-hd button[aria-label="Версия для слабовидящих"]{padding:8px 10px!important}
}
/* Самые узкие телефоны (320–350px): шапка в одну строку */
@media (max-width:350px){
.mm-hd{gap:6px!important;padding:8px 10px!important}
.mm-hd>a:first-child img{height:32px!important}
.mm-hd>a:first-child span span:first-child{font-size:18px!important}
.mm-hd button[aria-label="Версия для слабовидящих"]{padding:6px 8px!important}
.mm-phone-ico,.mm-burger{width:40px!important;height:40px!important}
}
@media (max-width:380px){
main section{padding-left:16px!important;padding-right:16px!important}
footer>div{padding-left:16px!important;padding-right:16px!important}
}

/* Админ-панель на телефоне: меню разделов — горизонтальной лентой */
@media (max-width:820px){
[data-screen-label="Админ — контент"]{display:flex!important;flex-direction:column;align-items:stretch!important;padding:14px 12px 60px!important;gap:14px!important}
[data-screen-label="Админ — шапка"]{position:static!important}
[data-screen-label="Админ — шапка"]>div>div:first-of-type div:first-child{font-size:17px!important}
[data-screen-label="Админ — шапка"] a,[data-screen-label="Админ — шапка"] button{padding:7px 12px!important;font-size:13px!important}
[data-screen-label="Админ — шапка"] img{height:30px!important}
[data-screen-label="Админ — контент"]>nav{position:sticky!important;top:0!important;z-index:20;flex-direction:row!important;overflow-x:auto;gap:6px!important;padding:8px 0;background:#F4F2EF;scrollbar-width:none}
[data-screen-label="Админ — контент"]>nav a{flex:none;white-space:nowrap;background:#fff;border:1px solid #E7E4E0}
[data-screen-label="Админ — шапка"]>div{padding:10px 12px!important;gap:10px!important}
[data-screen-label="Админ — шапка"]>div>div:nth-child(2)>div:nth-child(2){display:none}
[data-screen-label="Админ — контент"] section{padding:16px 14px 18px!important}
}

@media (prefers-reduced-motion:reduce){
.fx-hero [data-bg-img],.fx-eyebrow::before,.fx-cloud,.fx-hero::before,main>section:first-child::before{animation:none!important}
.fx-wheat,.fx-live::before,.fx-ring::after,.fx-grain-li::before,.fx-rotor{animation:none!important}
.fx-grain,#fx-confetti{display:none!important}
html.fx-on [data-fx]{opacity:1!important;transform:none!important;transition:none!important}
html.fx-on .fx-hero>div>*,html.fx-on .fx-hero>div[role="img"],.mm-open .mm-nav a,.mm-open .mm-cta{animation:none!important}
}
@media print{
#fx-progress,#fx-top,#fx-bar,.fx-hero-mill,.fx-land,.fx-stats-mill,#fx-confetti{display:none!important}
html.fx-on [data-fx]{opacity:1!important;transform:none!important}
.mm-header{position:static!important}
}
