/* База для всех сайтов: сброс, механика формы, лайтбокс, появление блоков */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;cursor:pointer}
.hide{display:none!important}
.hp{position:absolute;left:-9999px}
.demo{background:#000;color:#ddd;font:13px/1.4 system-ui,sans-serif;text-align:center;padding:8px 16px;position:relative;z-index:60}
.demo b{color:#fff}

.rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}*{animation:none!important}}

.bform .frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bform .fld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.bform .fld input,.bform .fld select,.bform .fld textarea{font:inherit;font-size:16px;width:100%;padding:13px 14px;border-radius:var(--fr,10px);border:1.5px solid var(--fline,#ddd);background:var(--fbg,#fff);color:inherit}
.bform .fld input:focus,.bform .fld select:focus,.bform .fld textarea:focus{outline:none;border-color:var(--fokus,#000)}
.bform .consent{display:flex;gap:10px;font-size:13px;opacity:.75;margin:4px 0 18px;align-items:flex-start}
.bform .consent input{margin-top:3px}
.bform .bsend{width:100%;border:0}
.bform .bsend:disabled{opacity:.6}
.bform .bsend[aria-disabled]{opacity:.55;cursor:not-allowed;filter:grayscale(1)}
.bform .demo-lock{margin:0 0 12px;padding:12px 14px;border-radius:10px;background:#FFF4D6;color:#3A2E00;border-left:4px solid #E0A100;font-size:14px;line-height:1.45;text-align:left}
.bform .demo-lock b{display:block;font-weight:700}.bform .demo-lock a{color:inherit;font-weight:700;text-decoration:underline;white-space:nowrap}
.form-err{display:none;color:#d23;font-size:14px;margin-bottom:12px}
.form-ok{display:none;text-align:center;padding:40px 10px}
.form-ok b{display:block;font-size:24px;margin-bottom:8px}
@media (max-width:560px){.bform .frow{grid-template-columns:1fr;gap:0}}

.lbx{position:fixed;inset:0;background:rgba(8,8,8,.94);display:none;align-items:center;justify-content:center;z-index:90;padding:20px}
.lbx.on{display:flex}
.lbx img{max-height:88vh;max-width:92vw;border-radius:6px}
.lbx button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:48px;height:48px;border-radius:50%;font-size:22px}
.lbx-x{top:16px;right:16px}.lbx-p{left:16px}.lbx-n{right:16px}

.mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:50;display:none;gap:8px;transform:translateY(130%);transition:transform .3s}
.mbar.on{transform:none}
.mbar a{flex:1;text-align:center;text-decoration:none;padding:15px 10px;font-weight:700;font-size:15px}
@media (max-width:900px){.mbar{display:flex}}

/* ленты */
.rail-wrap{position:relative}
[data-rail]{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab;user-select:none;-webkit-user-select:none}
[data-rail]::-webkit-scrollbar{display:none}
[data-rail]>*{flex:0 0 auto;scroll-snap-align:start}
[data-rail] img{-webkit-user-drag:none;pointer-events:none}
[data-rail] a img,[data-rail] button img{pointer-events:none}
.rail-free{scroll-snap-type:none}
.rail-drag{scroll-snap-type:none!important;cursor:grabbing;scroll-behavior:auto}
.rail-nav{position:absolute;top:50%;z-index:3;width:46px;height:46px;margin-top:-23px;border-radius:50%;border:0;display:grid;place-items:center;font-size:18px;line-height:1;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s,background .2s}
.rail-nav[data-prev]{left:10px}.rail-nav[data-next]{right:10px}
.rail-wrap:hover .rail-nav{opacity:1;pointer-events:auto}
.rail-nav:disabled,.rail-wrap.rail-one .rail-nav{opacity:0!important;pointer-events:none!important}
@media (hover:none),(pointer:coarse){.rail-nav{display:none}}
.rail-bar{height:2px;background:rgba(127,127,127,.25);margin-top:18px;position:relative;overflow:hidden;border-radius:2px}
.rail-bar::after{content:"";position:absolute;inset:0;background:currentColor;transform-origin:left;transform:scaleX(calc(.12 + var(--p,0)*.88));transition:transform .15s}
.rail-one .rail-bar{display:none}
/* фото внутри карточки */
.pics{position:relative;overflow:hidden}
.pics [data-rail]{height:100%;cursor:pointer}
.pics [data-rail]>*{width:100%;height:100%;border:0;padding:0;background:none}
.pics [data-rail] img{width:100%;height:100%;object-fit:cover}
.pics .rail-nav{width:34px;height:34px;margin-top:-17px;font-size:14px;background:rgba(255,255,255,.88);color:#111}
.pics .dots{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:5px;z-index:2;pointer-events:none}
.pics .dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);transition:background .2s,transform .2s}
.pics .dots i.on{background:#fff;transform:scale(1.25)}
@media (hover:none),(pointer:coarse){.pics .rail-nav{display:grid;opacity:.85;pointer-events:auto}.pics .rail-nav:disabled{opacity:0!important}}

/* плашка cookie */
.ck{position:fixed;left:16px;bottom:16px;z-index:70;max-width:360px;display:flex;gap:14px;align-items:center;background:rgba(22,22,22,.95);color:#f2f2f2;padding:14px 14px 14px 18px;border-radius:14px;box-shadow:0 18px 40px -16px rgba(0,0,0,.5);font:13.5px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;opacity:0;transform:translateY(16px);transition:opacity .35s,transform .35s;pointer-events:none}
.ck.on{opacity:1;transform:none;pointer-events:auto}
.ck p{margin:0}.ck a{color:#fff;text-decoration:underline}
.ck button{flex:0 0 auto;border:0;border-radius:10px;background:#fff;color:#111;font:600 13.5px system-ui,sans-serif;padding:10px 14px;cursor:pointer}
@media (max-width:900px){.ck{left:10px;right:10px;bottom:84px;max-width:none}}
/* реквизиты в подвале */
.legal{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;line-height:1.5;opacity:.75;margin-top:10px;width:100%}
.legal a{color:inherit}

/* подсказка «дальше есть ещё»: полупрозрачный кружок со стрелкой в стиле сайта (цвета и форма стрелки — переменные --nx-*, их пишет build.py) */
.nx-hint{position:fixed;left:50%;bottom:var(--nx-b,18px);z-index:55;display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid var(--nx-line,rgba(255,255,255,.35));border-radius:50%;background:var(--nx-bg,rgba(24,20,30,.45));color:var(--nx-ink,#fff);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 14px 30px -14px rgba(0,0,0,.45);cursor:pointer;opacity:0;transform:translate(-50%,14px);transition:opacity .45s,transform .45s;pointer-events:none}
.nx-hint.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.nx-hint:hover{opacity:1}
.nx-hint svg{width:24px;height:24px;animation:nxb 1.8s ease-in-out infinite}
@keyframes nxb{50%{transform:translateY(4px)}}
@media (prefers-reduced-motion:reduce){.nx-hint svg{animation:none}}
section{scroll-margin-top:72px}

/* телефон: карточки не столбиком, а лентой — [data-mrail] превращается в ленту (core.js), стрелки под лентой */
.m-nav{display:none}
.m-list{display:contents}
@media (max-width:640px){
  [data-mrail][data-rail]{display:flex!important;flex-wrap:nowrap!important;grid-template-columns:none!important;gap:14px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;margin:0!important;padding:0 0 6px!important;min-width:0;width:100%!important;max-width:100%!important;background:none!important;border:0!important;column-count:auto!important}
  [data-mrail][data-rail]>*{flex:0 0 84%!important;width:84%!important;max-width:84%!important;scroll-snap-align:start;transform:none!important;margin:0!important;break-inside:auto}
  [data-mrail][data-rail]>.hide{display:none!important}
  .m-wrap{display:flex;flex-direction:column;min-width:0;max-width:100%;width:100%}
  .m-nav{order:2;display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
  .m-nav button{width:44px;height:44px;border-radius:50%;border:1.5px solid currentColor;background:transparent;color:inherit;font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:opacity .2s}
  .m-nav button:disabled{opacity:.25}
  .m-chips-all{display:none!important}
}

:root{--nx-arrow:thin;--nx-bg:rgba(242,176,74,0.85);--nx-ink:#15120E;--nx-stroke:1.6}
