{"id":6,"date":"2025-12-21T17:28:27","date_gmt":"2025-12-21T17:28:27","guid":{"rendered":"https:\/\/dastarkhan.asia\/uz\/?page_id=6"},"modified":"2025-12-25T06:04:35","modified_gmt":"2025-12-25T06:04:35","slug":"home","status":"publish","type":"page","link":"https:\/\/dastarkhan.asia\/uz\/","title":{"rendered":"Bosh sahifa"},"content":{"rendered":"\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<section class=\"da-banner\" data-base=\"\/wp-content\/uploads\/da-banner\/\" data-ver=\"\" aria-label=\"DA Banner\">\r\n  <div class=\"da-banner__bg\" aria-hidden=\"true\"><\/div>\r\n\r\n  <!-- 3 \u0441\u043b\u043e\u044f: new \/ mid \/ old -->\r\n  <img class=\"da-banner__img da-banner__new\" src=\"\/wp-content\/uploads\/da-banner\/01-DA-Banner.png\" alt=\"\" decoding=\"async\" loading=\"eager\">\r\n  <img class=\"da-banner__img da-banner__mid\" alt=\"\" decoding=\"async\" loading=\"eager\">\r\n  <img class=\"da-banner__img da-banner__old\" alt=\"\" decoding=\"async\" loading=\"eager\">\r\n<\/section>\r\n\r\n<style>\r\n.da-banner{\r\n  width:100%;\r\n  aspect-ratio:2\/1;\r\n  position:relative;\r\n  overflow:hidden;\r\n  border-radius:28px;\r\n\r\n  \/* \u0444\u043e\u043d \u043f\u0430\u043d\u0435\u043b\u0438 = tone-200 *\/\r\n  background-color: var(--tone-200, #EDE9FE) !important;\r\n}\r\n\r\n.da-banner__bg{\r\n  position:absolute;\r\n  inset:0;\r\n  z-index:0;\r\n  background-color: var(--tone-200, #EDE9FE) !important;\r\n}\r\n\r\n.da-banner__img{\r\n  position:absolute;\r\n  inset:0;\r\n  z-index:1;\r\n  width:100%;\r\n  height:100%;\r\n  object-fit:contain;\r\n  object-position:center;\r\n  pointer-events:none;\r\n\r\n  opacity:0;\r\n  will-change:opacity;\r\n}\r\n\r\n\/* \u0434\u043e \u0441\u0442\u0430\u0440\u0442\u0430: \u043f\u0435\u0440\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432\u0438\u0434\u043d\u0430 *\/\r\n.da-banner__new{ opacity:1; }\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n\r\n  if (window.DA_BANNER_CLEAN_12 === true) return;\r\n  window.DA_BANNER_CLEAN_12 = true;\r\n\r\n  var COUNT = 12;\r\n\r\n  var PART = 5000;                 \/\/ 5 \u0441\u0435\u043a\r\n  var STEP = PART;                 \/\/ \u043d\u043e\u0432\u0430\u044f \u043a\u0430\u0436\u0434\u044b\u0435 5 \u0441\u0435\u043a\r\n  var LIFE = PART * 3;             \/\/ 15 \u0441\u0435\u043a \u0436\u0438\u0437\u043d\u044c (5+5+5)\r\n\r\n  function pad2(n){\r\n    n = String(n);\r\n    if (n.length < 2) n = '0' + n;\r\n    return n;\r\n  }\r\n\r\n  function safeBase(s){\r\n    if (!s) return '\/wp-content\/uploads\/da-banner\/';\r\n    if (s.charAt(s.length - 1) === '\/') return s;\r\n    return s + '\/';\r\n  }\r\n\r\n  function buildUrl(base, i, ver){\r\n    var u = base + pad2(i) + '-DA-Banner.png';\r\n    if (ver) u = u + '?v=' + encodeURIComponent(ver);\r\n    return u;\r\n  }\r\n\r\n  function preload(url){\r\n    return new Promise(function(resolve){\r\n      var img = new Image();\r\n      img.onload = function(){\r\n        if (img.decode) {\r\n          img.decode().then(function(){ resolve(true); }).catch(function(){ resolve(true); });\r\n        } else {\r\n          resolve(true);\r\n        }\r\n      };\r\n      img.onerror = function(){ resolve(false); };\r\n      img.src = url;\r\n    });\r\n  }\r\n\r\n  function phase(age){\r\n    \/\/ age \u0432 \u043c\u0441: 0..5 fade-in, 5..10 hold, 10..15 fade-out\r\n    if (age < 0) return 0;\r\n    if (age < PART) return age \/ PART;\r\n    if (age < (2 * PART)) return 1;\r\n    if (age < (3 * PART)) return 1 - ((age - (2 * PART)) \/ PART);\r\n    return 0;\r\n  }\r\n\r\n  function init(banner){\r\n    if (banner.dataset.daInit === '1') return;\r\n    banner.dataset.daInit = '1';\r\n\r\n    var base = safeBase(banner.getAttribute('data-base'));\r\n    var ver = banner.getAttribute('data-ver') || '';\r\n\r\n    var imgNew = banner.querySelector('.da-banner__new');\r\n    var imgMid = banner.querySelector('.da-banner__mid');\r\n    var imgOld = banner.querySelector('.da-banner__old');\r\n    if (!imgNew) return;\r\n    if (!imgMid) return;\r\n    if (!imgOld) return;\r\n\r\n    \/\/ \u0441\u043e\u0431\u0440\u0430\u0442\u044c urls 01..12\r\n    var urls = [];\r\n    for (var i=1; i<=COUNT; i++){\r\n      urls.push(buildUrl(base, i, ver));\r\n    }\r\n\r\n    \/\/ \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c 01 \u0441\u0440\u0430\u0437\u0443\r\n    imgNew.src = urls[0];\r\n    imgNew.style.opacity = '1';\r\n    imgMid.style.opacity = '0';\r\n    imgOld.style.opacity = '0';\r\n\r\n    var state = {\r\n      ready: false,\r\n      running: false,\r\n\r\n      inView: true,\r\n      tabVisible: document.hidden ? false : true,\r\n\r\n      rafId: null,\r\n      t0: 0,\r\n      pausedAt: 0,\r\n\r\n      lastStep: -999999,\r\n      slotIdx: [-1, -1, -1] \/\/ new\/mid\/old\r\n    };\r\n\r\n    function ensureSlot(which, idx){\r\n      if (state.slotIdx[which] === idx) return;\r\n      state.slotIdx[which] = idx;\r\n\r\n      if (which === 0) imgNew.src = urls[idx];\r\n      if (which === 1) imgMid.src = urls[idx];\r\n      if (which === 2) imgOld.src = urls[idx];\r\n    }\r\n\r\n    function stop(){\r\n      if (!state.running) return;\r\n      state.running = false;\r\n      state.pausedAt = performance.now();\r\n      if (state.rafId) cancelAnimationFrame(state.rafId);\r\n      state.rafId = null;\r\n    }\r\n\r\n    function start(){\r\n      if (state.running) return;\r\n      if (!state.ready) return;\r\n\r\n      if (state.pausedAt > 0) {\r\n        var now = performance.now();\r\n        var dt = now - state.pausedAt;\r\n        state.t0 = state.t0 + dt;\r\n        state.pausedAt = 0;\r\n      }\r\n\r\n      state.running = true;\r\n      state.rafId = requestAnimationFrame(frame);\r\n    }\r\n\r\n    function sync(){\r\n      if (!state.ready) return;\r\n\r\n      var shouldRun = false;\r\n      if (state.inView) {\r\n        if (state.tabVisible) shouldRun = true;\r\n      }\r\n\r\n      if (shouldRun) start();\r\n      else stop();\r\n    }\r\n\r\n    function frame(now){\r\n      if (!state.running) return;\r\n\r\n      var t = now - state.t0;\r\n      if (t < 0) t = 0;\r\n\r\n      \/\/ \u0448\u0430\u0433 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u043e \u0441\u0434\u0432\u0438\u0433\u043e\u043c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b #01 \u0431\u044b\u043b\u0430 \u0443\u0436\u0435 \u0432 \"\u043f\u043b\u0430\u0442\u043e\" \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435\r\n      \/\/ t=0 => step=1 => new=#02 fade-in, mid=#01 hold\r\n      var step = Math.floor((t + STEP) \/ STEP);\r\n      var frac = t - ((step - 1) * STEP); \/\/ 0..STEP\r\n\r\n      var N = COUNT;\r\n\r\n      var idxNew = step % N;              \/\/ 0..11 (new)\r\n      var idxMid = idxNew - 1; if (idxMid < 0) idxMid += N;\r\n      var idxOld = idxNew - 2; if (idxOld < 0) idxOld += N;\r\n\r\n      if (step !== state.lastStep) {\r\n        state.lastStep = step;\r\n\r\n        ensureSlot(0, idxNew);\r\n        ensureSlot(1, idxMid);\r\n        ensureSlot(2, idxOld);\r\n\r\n        imgNew.style.zIndex = '3';\r\n        imgMid.style.zIndex = '2';\r\n        imgOld.style.zIndex = '1';\r\n      }\r\n\r\n      \/\/ \u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u0442\u0440\u0451\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0432 \u0438\u0445 LIFE=15\u0441\r\n      var ageNew = frac + (0 * STEP);   \/\/ 0..5\r\n      var ageMid = frac + (1 * STEP);   \/\/ 5..10\r\n      var ageOld = frac + (2 * STEP);   \/\/ 10..15\r\n\r\n      var oNew = phase(ageNew);\r\n      var oMid = phase(ageMid);\r\n      var oOld = phase(ageOld);\r\n\r\n      \/\/ \u0441\u0442\u0430\u0440\u0442 \u0431\u0435\u0437 \"\u0441\u0442\u0430\u0440\u043e\u0439\" (\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c #12 \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043a\u0440\u0443\u0433\u0430)\r\n      if (t < (2 * STEP)) oOld = 0;\r\n\r\n      imgNew.style.opacity = String(oNew);\r\n      imgMid.style.opacity = String(oMid);\r\n      imgOld.style.opacity = String(oOld);\r\n\r\n      state.rafId = requestAnimationFrame(frame);\r\n    }\r\n\r\n    \/\/ \u0430\u0432\u0442\u043e\u043f\u0430\u0443\u0437\u0430: \u0432\u043a\u043b\u0430\u0434\u043a\u0430\r\n    document.addEventListener('visibilitychange', function(){\r\n      state.tabVisible = document.hidden ? false : true;\r\n      sync();\r\n    });\r\n\r\n    \/\/ \u0430\u0432\u0442\u043e\u043f\u0430\u0443\u0437\u0430: \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u043b\u043e\u043a\u0430\r\n    if (window.IntersectionObserver) {\r\n      var io = new IntersectionObserver(function(entries){\r\n        var ok = false;\r\n        if (entries) {\r\n          if (entries.length) {\r\n            var e = entries[0];\r\n            if (e) {\r\n              if (e.isIntersecting) {\r\n                if (e.intersectionRatio >= 0.15) ok = true;\r\n              }\r\n            }\r\n          }\r\n        }\r\n        state.inView = ok;\r\n        sync();\r\n      }, { threshold: [0, 0.15, 0.3, 0.6] });\r\n      io.observe(banner);\r\n    }\r\n\r\n    \/\/ preload \u0432\u0441\u0435\u0445 12, \u0437\u0430\u0442\u0435\u043c \u0441\u0442\u0430\u0440\u0442\r\n    var tasks = [];\r\n    for (var j=0; j<urls.length; j++){\r\n      tasks.push(preload(urls[j]));\r\n    }\r\n\r\n    Promise.all(tasks).then(function(){\r\n      state.ready = true;\r\n\r\n      \/\/ \u0441\u0442\u0430\u0440\u0442: #01 \u0443\u0436\u0435 \u0441\u0442\u043e\u0438\u0442, #02 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f\r\n      var now0 = performance.now();\r\n      state.t0 = now0;\r\n\r\n      \/\/ \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043c src \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043c\u0438\u0433\u0430\u043b\u043e\r\n      imgMid.src = urls[0];  \/\/ #01\r\n      imgNew.src = urls[1];  \/\/ #02\r\n      imgOld.src = urls[11]; \/\/ #12, \u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u0440\u044b\u0442\u0430 \u043f\u0435\u0440\u0432\u044b\u0435 10 \u0441\u0435\u043a\r\n\r\n      sync();\r\n    });\r\n  }\r\n\r\n  var banners = document.querySelectorAll('.da-banner');\r\n  for (var k=0; k<banners.length; k++){\r\n    init(banners[k]);\r\n  }\r\n});\r\n<\/script>\n\n\n\n<!-- ===== ZIGZAG \u2022 KEY SECTIONS (2\u00d72) \u2014 fixed order + staged slideshows ===== -->\r\n<section class=\"da-sections-zz\">\r\n  <div class=\"zz-grid\">\r\n    <!-- B: \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-topbar\"><a class=\"zz-title\" href=\"#\">Key sections<\/a><\/div>\r\n\r\n    <!-- A: \u0440\u0430\u043c\u043a\u0430 + \u043f\u0430\u043d\u0435\u043b\u044c -->\r\n    <div class=\"zz-frame\">\r\n      <div class=\"zz-panel\">\r\n        <div class=\"sec-grid\" aria-label=\"Key sections\">\r\n          <!-- \u041f\u043b\u0438\u0442\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0441\u0440\u0430\u0437\u0443 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 (1..4) -->\r\n          <a class=\"sec sec--principles\" href=\"#\"><div class=\"sec-inner\">\r\n            <div class=\"sec-media\"><img class=\"ph ph-a\" alt=\"\"><img class=\"ph ph-b\" alt=\"\"><\/div>\r\n            <div class=\"sec-body\"><div class=\"sec-title\"><\/div><\/div>\r\n          <\/div><\/a>\r\n\r\n          <a class=\"sec sec--recipes\" href=\"#\"><div class=\"sec-inner\">\r\n            <div class=\"sec-media\"><img class=\"ph ph-a\" alt=\"\"><img class=\"ph ph-b\" alt=\"\"><\/div>\r\n            <div class=\"sec-body\"><div class=\"sec-title\"><\/div><\/div>\r\n          <\/div><\/a>\r\n\r\n          <a class=\"sec sec--products\" href=\"#\"><div class=\"sec-inner\">\r\n            <div class=\"sec-media\"><img class=\"ph ph-a\" alt=\"\"><img class=\"ph ph-b\" alt=\"\"><\/div>\r\n            <div class=\"sec-body\"><div class=\"sec-title\"><\/div><\/div>\r\n          <\/div><\/a>\r\n\r\n          <a class=\"sec sec--projects\" href=\"#\"><div class=\"sec-inner\">\r\n            <div class=\"sec-media\"><img class=\"ph ph-a\" alt=\"\"><img class=\"ph ph-b\" alt=\"\"><\/div>\r\n            <div class=\"sec-body\"><div class=\"sec-title\"><\/div><\/div>\r\n          <\/div><\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- C: \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-botbar\">\r\n      <span class=\"zz-copy\"><span class=\"label\">All sections:<\/span> <span class=\"count\">4<\/span><\/span>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ===== \u043e\u0431\u0449\u0438\u0439 \u043a\u0430\u0440\u043a\u0430\u0441 \u0437\u0438\u0433\u0437\u0430\u0433\u0430 (\u043f\u0430\u043b\u0438\u0442\u0440\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430) ===== *\/\r\n.da-sections-zz, .da-sections-zz *{ box-sizing:border-box; }\r\n.da-sections-zz{ --bar-h:32px; --top-w:70%; --bot-w:25%; width:100%; max-width:100%; overflow-x:hidden; }\r\n.da-sections-zz .zz-grid{ display:grid; grid-template-rows:var(--bar-h) auto var(--bar-h); gap:0; }\r\n\r\n\/* \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e \u2014 \u0441\u043a\u0440\u0443\u0433\u043b\u0451\u043d TL *\/\r\n.da-sections-zz .zz-topbar{\r\n  width:var(--top-w); height:var(--bar-h); justify-self:start;\r\n  display:flex; align-items:center; padding:0 12px;\r\n  background:var(--da-bg-chrome, var(--tone-100)); border-top-left-radius:16px;\r\n  box-shadow:0 3px 8px rgba(0,0,0,.10);\r\n}\r\n.da-sections-zz .zz-title{\r\n  color:var(--da-ink, var(--tone-900)); font-weight:700; text-decoration:none;\r\n  font-size:1.2rem; line-height:1.15;\r\n}\r\n\r\n\/* \u0440\u0430\u043c\u043a\u0430 (A) \u0438 \u043f\u0430\u043d\u0435\u043b\u044c (D) *\/\r\n.da-sections-zz .zz-frame{\r\n  background:var(--da-bg-chrome, var(--tone-100));\r\n  border-top-right-radius:12px; border-bottom-left-radius:12px;\r\n  padding:12px; box-shadow:0 4px 18px rgba(0,0,0,.08); max-width:100%; overflow:hidden;\r\n}\r\n.da-sections-zz .zz-panel{\r\n  background:var(--da-bg-chrome, var(--tone-100)); border:none; padding:0; border-radius:12px;\r\n}\r\n\r\n\/* \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e \u2014 BR; \u0442\u0435\u043a\u0441\u0442 \u0432\u043f\u0440\u0430\u0432\u043e, \u043c\u043e\u0436\u0435\u0442 \u00ab\u0432\u044b\u043f\u043e\u043b\u0437\u0430\u0442\u044c\u00bb \u0432\u043b\u0435\u0432\u043e *\/\r\n.da-sections-zz .zz-botbar{\r\n  width:var(--bot-w); height:var(--bar-h); justify-self:end; position:relative;\r\n  display:flex; align-items:center; background:var(--da-bg-chrome, var(--tone-100));\r\n  border-bottom-right-radius:16px; box-shadow:0 3px 8px rgba(0,0,0,.10);\r\n}\r\n.da-sections-zz .zz-copy{\r\n  position:absolute; right:12px; top:50%; transform:translateY(-50%);\r\n  white-space:nowrap; color:var(--da-primary-strong, var(--tone-600));\r\n  font-weight:600; font-size:.92rem;\r\n}\r\n.da-sections-zz .zz-copy .label{ margin-right:.35rem; }\r\n\r\n\/* ===== \u0441\u0435\u0442\u043a\u0430 2\u00d72 \u043d\u0430 \u0432\u0441\u0435\u0445 \u044d\u043a\u0440\u0430\u043d\u0430\u0445 ===== *\/\r\n.da-sections-zz .sec-grid{\r\n  display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px;\r\n}\r\n@media (min-width: 720px){\r\n  .da-sections-zz .sec-grid{ gap:16px; }\r\n}\r\n\r\n\/* \u043f\u043b\u0438\u0442\u043a\u0430 *\/\r\n.da-sections-zz .sec{\r\n  display:block; text-decoration:none; color:var(--da-ink, var(--tone-900));\r\n  background:#fff; border-radius:12px; overflow:hidden;\r\n  box-shadow:0 4px 12px rgba(0,0,0,.08);\r\n  transition: transform .15s ease, box-shadow .15s ease;\r\n}\r\n.da-sections-zz .sec:hover{ transform: translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.12); }\r\n\r\n.da-sections-zz .sec-inner{\r\n  display:grid; grid-template-columns: 1fr; grid-template-rows:auto auto;\r\n}\r\n@media (min-width:720px){\r\n  .da-sections-zz .sec-inner{\r\n    grid-template-columns: 42% 58%;\r\n    grid-template-rows: auto;\r\n    align-items: center;\r\n  }\r\n}\r\n\r\n\/* \u043c\u0435\u0434\u0438\u0430: \u0434\u0432\u0430 \u0441\u043b\u043e\u044f \u0434\u043b\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043a\u0440\u043e\u0441\u0441\u0444\u0435\u0439\u0434\u0430 *\/\r\n.da-sections-zz .sec-media{\r\n  position:relative; width:100%; aspect-ratio:3\/2; overflow:hidden;\r\n}\r\n.da-sections-zz .sec-media .ph{\r\n  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;\r\n  opacity:0; transition: opacity .6s ease;\r\n}\r\n.da-sections-zz .sec-media .ph.active{ opacity:1; }\r\n\r\n.da-sections-zz .sec-body{ padding:12px 12px 14px; }\r\n.da-sections-zz .sec-title{\r\n  font-weight:700; font-size:1rem; line-height:1.25; color:var(--da-ink, var(--tone-900));\r\n}\r\n\r\n\/* RTL \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 *\/\r\n.da-sections-zz[dir=\"rtl\"] .sec-inner{ direction: rtl; }\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  const root = document.querySelector('.da-sections-zz'); if(!root) return;\r\n\r\n  \/* ISO \u0438 \u0431\u0430\u0437\u0430 *\/\r\n  const firstSeg=(location.pathname.replace(\/^\\\/+\/,'').split('\/')[0]||'').toLowerCase();\r\n  const ISO=['kz','kg','uz','tm','tj','mn','cn','ru','af','in','pk','ir'];\r\n  const code = ISO.includes(firstSeg) ? firstSeg : 'int';\r\n  const langBase = (code==='int') ? '\/' : `\/${code}\/`;\r\n\r\nconst HUB = 'key-sections';\r\n\r\n\r\n  if (['af','pk','ir'].includes(code)) root.setAttribute('dir','rtl');\r\n\r\n  \/* \u041b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f *\/\r\n  const L = {\r\n    int:{ title:'Key sections', total:'All sections:', s1:'Nutrition Principles', s2:'Delicious Recipes', s3:'Ingredients & Products', s4:'Development Projects' },\r\n    ru :{ title:'\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b', total:'\u0412\u0441\u0435\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432:', s1:'\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0438\u0442\u0430\u043d\u0438\u044f', s2:'\u0420\u0435\u0446\u0435\u043f\u0442\u044b \u0432\u043a\u0443\u0441\u043d\u044b\u0445 \u0431\u043b\u044e\u0434', s3:'\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u044b', s4:'\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b' },\r\n    kz :{ title:'\u041d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440', total:'\u0411\u0430\u0440\u043b\u044b\u049b \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440:', s1:'\u0422\u0430\u043c\u0430\u049b\u0442\u0430\u043d\u0443 \u049b\u0430\u0493\u0438\u0434\u0430\u0442\u0442\u0430\u0440\u044b', s2:'\u0414\u04d9\u043c\u0434\u0456 \u0440\u0435\u0446\u0435\u043f\u0442\u0435\u0440', s3:'\u04e8\u043d\u0456\u043c\u0434\u0435\u0440 \u043c\u0435\u043d \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u0442\u0435\u0440', s4:'\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430\u043b\u044b \u0436\u043e\u0431\u0430\u043b\u0430\u0440' },\r\n    kg :{ title:'\u041d\u0435\u0433\u0438\u0437\u0433\u0438 \u0431\u04e9\u043b\u04af\u043c\u0434\u04e9\u0440', total:'\u0416\u0430\u043b\u043f\u044b \u0431\u04e9\u043b\u04af\u043c\u0434\u04e9\u0440:', s1:'\u0422\u0430\u043c\u0430\u043a\u0442\u0430\u043d\u0443\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0442\u0435\u0440\u0438', s2:'\u0414\u0430\u0430\u043c\u0434\u0443\u0443 \u0440\u0435\u0446\u0435\u043f\u0442\u0442\u0435\u0440', s3:'\u04e8\u043d\u04af\u043c\u0434\u04e9\u0440 \u0436\u0430\u043d\u0430 \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u0442\u0435\u0440', s4:'\u04e8\u043d\u04af\u0433\u04af\u04af \u0434\u043e\u043b\u0431\u043e\u043e\u0440\u043b\u043e\u0440\u0443' },\r\n    uz :{ title:'Asosiy bo\u2018limlar', total:'Jami bo\u2018limlar:', s1:'Oziqlanish tamoyillari', s2:'Mazali retseptlar', s3:'Mahsulotlar va ingredientlar', s4:'Istiqbolli loyihalar' },\r\n    tm :{ title:'Esasy b\u00f6l\u00fcmler', total:'Jemi b\u00f6l\u00fcmler:', s1:'I\u00fdmitlenmegi\u0148 \u00fd\u00f6relgeleri', s2:'Tagamly reseptler', s3:'\u00d6n\u00fcmler we ingredientler', s4:'Perspektiwaly taslamalar' },\r\n    tj :{ title:'\u049a\u0438\u0441\u043c\u04b3\u043e\u0438 \u0430\u0441\u043e\u0441\u04e3', total:'\u04b2\u0430\u043c\u0430 \u049b\u0438\u0441\u043c\u04b3\u043e:', s1:'\u041f\u0440\u0438\u043d\u0441\u0438\u043f\u04b3\u043e\u0438 \u0493\u0438\u0437\u043e', s2:'\u0414\u043e\u0440\u0443\u0445\u0430\u0442\u04b3\u043e\u0438 \u0431\u043e\u043b\u0430\u0437\u0437\u0430\u0442', s3:'\u041c\u0430\u04b3\u0441\u0443\u043b\u043e\u0442 \u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u04b3\u043e', s4:'\u041b\u043e\u0438\u04b3\u0430\u04b3\u043e\u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u04e3' },\r\n    mn :{ title:'\u0413\u043e\u043b \u0445\u044d\u0441\u0433\u04af\u04af\u0434', total:'\u041d\u0438\u0439\u0442 \u0445\u044d\u0441\u044d\u0433:', s1:'\u0425\u043e\u043e\u043b \u0442\u044d\u0436\u044d\u044d\u043b\u0438\u0439\u043d \u0437\u0430\u0440\u0447\u0438\u043c', s2:'\u0410\u043c\u0442\u0442\u0430\u0439 \u0436\u043e\u0440', s3:'\u0411\u04af\u0442\u044d\u044d\u0433\u0434\u044d\u0445\u04af\u04af\u043d \u0431\u0430 \u043d\u0430\u0439\u0440\u043b\u0430\u0433\u0430', s4:'\u0418\u0440\u044d\u044d\u0434\u04af\u0439\u043d \u0442\u04e9\u0441\u043b\u04af\u04af\u0434' },\r\n    cn :{ title:'\u5173\u952e\u680f\u76ee', total:'\u5168\u90e8\u680f\u76ee\uff1a', s1:'\u5065\u5eb7\u996e\u98df\u539f\u5219', s2:'\u7f8e\u5473\u98df\u8c31', s3:'\u98df\u6750\u4e0e\u4ea7\u54c1', s4:'\u53d1\u5c55\u9879\u76ee' },\r\n    af :{ title:'\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', total:'\u0647\u0645\u0647\u0654 \u0628\u062e\u0634\u200c\u0647\u0627:', s1:'\u0627\u0635\u0648\u0644 \u062a\u063a\u0630\u06cc\u0647', s2:'\u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u0634\u0645\u0632\u0647', s3:'\u0645\u0648\u0627\u062f \u0648 \u0645\u062d\u0635\u0648\u0644\u0627\u062a', s4:'\u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u0627\u06cc' },\r\n    in :{ title:'\u092e\u0941\u0916\u094d\u092f \u0905\u0928\u0941\u092d\u093e\u0917', total:'\u0915\u0941\u0932 \u0905\u0928\u0941\u092d\u093e\u0917:', s1:'\u092a\u094b\u0937\u0923 \u0915\u0947 \u0938\u093f\u0926\u094d\u0927\u093e\u0902\u0924', s2:'\u0938\u094d\u0935\u093e\u0926\u093f\u0937\u094d\u091f \u0930\u0947\u0938\u093f\u092a\u0940', s3:'\u0938\u093e\u092e\u0917\u094d\u0930\u0940 \u0935 \u0909\u0924\u094d\u092a\u093e\u0926', s4:'\u0935\u093f\u0915\u093e\u0938 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u090f\u0901' },\r\n    pk :{ title:'\u0627\u06c1\u0645 \u062d\u0635\u06d2', total:'\u06a9\u0644 \u062d\u0635\u06d2:', s1:'\u063a\u0630\u0627\u0626\u06cc\u062a \u06a9\u06d2 \u0627\u0635\u0648\u0644', s2:'\u0645\u0632\u06cc\u062f\u0627\u0631 \u062a\u0631\u06a9\u06cc\u0628\u06cc\u06ba', s3:'\u0627\u062c\u0632\u0627\u0621 \u0627\u0648\u0631 \u0645\u0635\u0646\u0648\u0639\u0627\u062a', s4:'\u062a\u0631\u0642\u06cc\u0627\u062a\u06cc \u0645\u0646\u0635\u0648\u0628\u06d2' },\r\n    ir :{ title:'\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', total:'\u0647\u0645\u0647\u0654 \u0628\u062e\u0634\u200c\u0647\u0627:', s1:'\u0627\u0635\u0648\u0644 \u062a\u063a\u0630\u06cc\u0647', s2:'\u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u0634\u0645\u0632\u0647', s3:'\u0645\u0648\u0627\u062f \u0648 \u0645\u062d\u0635\u0648\u0644\u0627\u062a', s4:'\u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u0627\u06cc' },\r\n  }[code];\r\n\r\n  root.querySelector('.zz-title').textContent = L.title;\r\n  root.querySelector('.zz-title').href = `${langBase}key-sections\/`;\r\n  const totalLabel = root.querySelector('.zz-copy .label');\r\n  if (totalLabel) totalLabel.textContent = L.total;\r\n\r\n  \/* \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2014 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a 1..4 *\/\r\n  const SECTIONS = [\r\n    { key:'principles', slug:'principles', label:L.s1 },\r\n    { key:'recipes',    slug:'recipes',    label:L.s2 },\r\n    { key:'products',   slug:'products',   label:L.s3 },\r\n    { key:'projects',   slug:'projects',   label:L.s4 },\r\n  ];\r\n\r\n  const nodes = {\r\n    principles: root.querySelector('.sec--principles'),\r\n    recipes:    root.querySelector('.sec--recipes'),\r\n    products:   root.querySelector('.sec--products'),\r\n    projects:   root.querySelector('.sec--projects'),\r\n  };\r\n\r\n  const restBase = `${langBase}wp-json\/wp\/v2\/`;\r\n  const FALLBACK = '\/wp-content\/uploads\/general\/no_image.jpg';\r\n\r\n  \/\/ Helpers\r\n  async function jget(url){\r\n    const r = await fetch(url);\r\n    if(!r.ok) throw new Error('HTTP '+r.status);\r\n    return r.json();\r\n  }\r\n  function dedupe(arr){ const s=new Set(); return arr.filter(u=> (u && !s.has(u) && s.add(u))); }\r\n\r\n  async function getCatId(slug){\r\n    try{\r\n      const j = await jget(`${restBase}categories?slug=${encodeURIComponent(slug)}`);\r\n      return (Array.isArray(j) && j[0]?.id) ? j[0].id : null;\r\n    }catch(_){ return null; }\r\n  }\r\n\r\n  async function getFeaturedImagesByCat(catId, limit=20){\r\n    if(!catId) return [];\r\n    try{\r\n      const posts = await jget(`${restBase}posts?per_page=${limit}&categories=${catId}&_embed=1&orderby=date&order=desc`);\r\n      const urls = [];\r\n\r\n      for(const p of posts){\r\n        let u = p?._embedded?.['wp:featuredmedia']?.[0]?.source_url;\r\n        if(!u && p?.featured_media){ \/\/ \u0437\u0430\u043f\u0430\u0441\u043d\u043e\u0439 \u043f\u043b\u0430\u043d: \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a media\r\n          try{\r\n            const m = await jget(`${restBase}media\/${p.featured_media}`);\r\n            u = m?.source_url || null;\r\n          }catch(_){}\r\n        }\r\n        if(u) urls.push(u);\r\n      }\r\n      return dedupe(urls);\r\n    }catch(_){ return []; }\r\n  }\r\n\r\n  \/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u043b\u0438\u0442\u043a\u0438 \u0441\u0440\u0430\u0437\u0443 \u0438 \u0441\u0441\u044b\u043b\u043a\u0438\r\n  for(const s of SECTIONS){\r\n    const a = nodes[s.key];\r\n    if(!a) continue;\r\n\r\n\r\na.href = `${langBase}${HUB}\/${s.slug}\/`;\r\n\r\n\r\n    a.querySelector('.sec-title').textContent = s.label;\r\n    \/\/ \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443\r\n    const [phA, phB] = a.querySelectorAll('.ph');\r\n    if (phA) { phA.src = FALLBACK; phA.classList.add('active'); }\r\n    if (phB) { phB.src = FALLBACK; }\r\n  }\r\n\r\n  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f\u043c \u0432 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435\r\n  const tiles = [];  \/\/ {el, imgs[], idx, activeLayer}\r\n  (async function buildAll(){\r\n    for (const s of SECTIONS){\r\n      const a = nodes[s.key];\r\n      if(!a) continue;\r\n      const catId = await getCatId(s.slug);\r\n      const imgs = await getFeaturedImagesByCat(catId, 24);\r\n      const list = imgs.length ? imgs : [FALLBACK];\r\n\r\n      const [phA, phB] = a.querySelectorAll('.ph');\r\n      \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 (\u0441\u0430\u043c\u043e\u0435 \u043d\u043e\u0432\u043e\u0435)\r\n      const startIdx = 0; \/\/ \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 (\u043e\u043d\u0438 \u0443\u0436\u0435 \u043f\u043e \u0434\u0430\u0442\u0435)\r\n      phA.src = list[startIdx]; phA.classList.add('active');\r\n      phB.src = list[(startIdx+1) % list.length];\r\n\r\n      tiles.push({\r\n        el: a,\r\n        imgs: list,\r\n        idx: startIdx,\r\n        active: 'A'  \/\/ \u043a\u0430\u043a\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u0430 ('A' \u0438\u043b\u0438 'B')\r\n      });\r\n    }\r\n\r\n    \/\/ \u0421\u0442\u0430\u0440\u0442\u0443\u0435\u043c \u00ab\u0448\u043e\u0443\u00bb: \u0447\u0435\u0440\u0435\u0437 7s, \u0437\u0430\u0442\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0435 3s \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0421\u041b\u0415\u0414\u0423\u042e\u0429\u0423\u042e \u043f\u043b\u0438\u0442\u043a\u0443 \u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438\r\n    let tilePtr = 0;\r\n    function advanceTile(t){\r\n      const a = t.el;\r\n      const [phA, phB] = a.querySelectorAll('.ph');\r\n      if(!phA || !phB || t.imgs.length < 2) return;\r\n\r\n      \/\/ \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\r\n      t.idx = (t.idx + 1) % t.imgs.length;\r\n\r\n      \/\/ \u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u0437\u0430\u0442\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u0444\u0435\u0439\u0434\r\n      if (t.active === 'A'){\r\n        phB.src = t.imgs[t.idx];\r\n        phA.classList.remove('active');\r\n        \/\/ \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b src\r\n        requestAnimationFrame(()=>{ phB.classList.add('active'); });\r\n        t.active = 'B';\r\n      } else {\r\n        phA.src = t.imgs[t.idx];\r\n        phB.classList.remove('active');\r\n        requestAnimationFrame(()=>{ phA.classList.add('active'); });\r\n        t.active = 'A';\r\n      }\r\n    }\r\n\r\n\/\/ \u041c\u0430\u0441\u0442\u0435\u0440-\u0442\u0430\u0439\u043c\u0435\u0440: \u0441\u0442\u0430\u0440\u0442 \u0441\u0440\u0430\u0437\u0443, \u0448\u0430\u0433 \u043a\u0430\u0436\u0434\u044b\u0435 2000 \u043c\u0441\r\nif (tiles.length) {\r\n  let tilePtr = 0;\r\n  function tick(){\r\n    advanceTile(tiles[tilePtr]);\r\n    tilePtr = (tilePtr + 1) % tiles.length;\r\n  }\r\n  tick();                 \/\/ \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u043f\u043b\u0438\u0442\u043a\u0443\r\n  setInterval(tick, 2000); \/\/ \u0434\u0430\u043b\u0435\u0435 \u2014 \u043a\u0430\u0436\u0434\u044b\u0435 2 \u0441\u0435\u043a\r\n}\r\n\r\n  })();\r\n\r\n  \/\/ \u0423\u0448\u043a\u0438: \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\/\u0441\u0441\u044b\u043b\u043a\u0430\/\u0441\u0447\u0451\u0442\u0447\u0438\u043a\r\n  root.querySelector('.zz-title').href = `${langBase}key-sections\/`;\r\n  const cnt = root.querySelector('.zz-copy .count'); if (cnt) cnt.textContent = '4';\r\n});\r\n<\/script>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<style>\r\n\/* ===== Modal: \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043a\u043a\u043e\u0440\u0434\u0435\u043e\u043d \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 ===== *\/\r\n.da-sections-acc{position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center;\r\n  background:rgba(0,0,0,.6);}\r\n.da-sections-acc.is-open{display:flex;}\r\n.da-sections-acc .dz-dialog{\r\n  width:min(96vw, 860px); height:min(90vh, 820px);\r\n  background:var(--wp--preset--color--base, #fff); border-radius:16px;\r\n  border:1px solid rgba(0,0,0,.08); box-shadow:0 20px 60px rgba(0,0,0,.35);\r\n  display:flex; flex-direction:column; overflow:hidden;\r\n}\r\n.da-sections-acc[dir=\"rtl\"] .dz-dialog{direction:rtl;}\r\n\r\n.da-sections-acc .dz-head{\r\n  display:flex; align-items:center; justify-content:space-between; gap:8px;\r\n  padding:12px 14px; background:var(--da-bg-chrome, var(--tone-100));\r\n  border-bottom:1px solid rgba(0,0,0,.08);\r\n}\r\n.da-sections-acc .dz-title{margin:0; font-size:1rem; font-weight:700; color:var(--da-ink, var(--tone-900));}\r\n.da-sections-acc .dz-close{appearance:none; border:none; background:transparent; font-size:26px; line-height:1;\r\n  color:var(--da-ink, var(--tone-900)); padding:4px 8px; border-radius:8px; cursor:pointer;}\r\n.da-sections-acc .dz-close:hover{background:rgba(0,0,0,.06);}\r\n\r\n.da-sections-acc .dz-body{flex:1; overflow:auto; padding:14px; background:var(--wp--preset--color--base, #fff);}\r\n.da-sections-acc .acc{display:flex; flex-direction:column; gap:14px; max-width:720px; margin:0 auto;}\r\n\r\n.acc-item{border:1px solid rgba(0,0,0,.06); border-radius:12px; overflow:hidden;\r\n  box-shadow:0 4px 12px rgba(0,0,0,.08); background:#fff;}\r\n.acc-trigger{width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;\r\n  padding:12px 14px; background:var(--da-bg-chrome, var(--tone-100)); border:none; cursor:pointer; text-align:start;}\r\n.acc-label{font-weight:700; color:var(--da-ink, var(--tone-900));}\r\n.acc-chevron{transition:transform .18s ease;}\r\n.acc-trigger[aria-expanded=\"true\"] .acc-chevron{transform:rotate(180deg);}\r\n\r\n.acc-panel{padding:8px 14px 12px; background:#fff; border-top:1px solid rgba(0,0,0,.06);}\r\n.acc-panel[hidden]{display:none !important;}\r\n\r\n.dz-tree{list-style:none; margin:0; padding:0;}\r\n.dz-tree > li{margin:6px 0;}\r\n.dz-tree a{text-decoration:none; color:var(--da-ink, var(--tone-900));}\r\n.dz-tree a:hover{text-decoration:underline;}\r\n.dz-tree ul{list-style:none; margin:6px 0 6px 14px; padding:0; border-left:1px dashed rgba(0,0,0,.15);}\r\n.da-sections-acc[dir=\"rtl\"] .dz-tree ul{margin:6px 14px 6px 0; border-left:none; border-right:1px dashed rgba(0,0,0,.15);}\r\n.dz-tree ul li{padding-left:10px;}\r\n.da-sections-acc[dir=\"rtl\"] .dz-tree ul li{padding-left:0; padding-right:10px;}\r\n\r\n.acc-skeleton{display:block; height:18px; background:linear-gradient(90deg, #eee, #f6f6f6, #eee);\r\n  border-radius:6px; margin:8px 0; animation:dzShimmer 1.1s infinite;}\r\n@keyframes dzShimmer{0%{background-position:-120px 0}100%{background-position:120px 0}}\r\n\r\n\r\n\/* Button link to \/[iso]\/key-sections\/ *\/\r\n.da-sections-acc .dz-actions{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:10px;\r\n}\r\n\r\n.da-sections-acc .dz-openpage{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:8px;\r\n  padding:8px 12px;\r\n  border-radius:12px;\r\n  text-decoration:none;\r\n  font-weight:700;\r\n  font-size:.95rem;\r\n  line-height:1;\r\n  background: var(--tone-600, #10B981);\r\n  color: var(--on-600, #FFFFFF);\r\n  box-shadow:0 6px 16px rgba(0,0,0,.18);\r\n  border: 1px solid rgba(0,0,0,.06);\r\n}\r\n.da-sections-acc .dz-openpage:hover{ filter: brightness(.98); }\r\n.da-sections-acc .dz-openpage:active{ transform: translateY(1px); }\r\n.da-sections-acc .dz-openpage:focus-visible{ outline:2px solid rgba(0,0,0,.25); outline-offset:2px; }\r\n\r\n\/* RTL: actions stay together; no special changes needed, but keep spacing consistent *\/\r\n.da-sections-acc[dir=\"rtl\"] .dz-actions{ flex-direction: row-reverse; }\r\n\r\n\r\n\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  document.addEventListener('DOMContentLoaded', function(){\r\n    const trigger = document.querySelector('.da-sections-zz .zz-title');\r\n    if(!trigger) return;\r\n\r\n    \/* ISO\/\u043b\u043e\u043a\u0430\u043b\u044c\/RTL *\/\r\n    const firstSeg=(location.pathname.replace(\/^\\\/+\/,'').split('\/')[0]||'').toLowerCase();\r\n    const ISO=['kz','kg','uz','tm','tj','mn','cn','ru','af','in','pk','ir'];\r\n    const code = ISO.includes(firstSeg) ? firstSeg : 'int';\r\n    const langBase = (code==='int')? '\/' : `\/${code}\/`;\r\n    const restBase = `${langBase}wp-json\/wp\/v2\/`;\r\n\r\nfunction setHubLink(){\r\n  var openA = modal ? modal.querySelector('.dz-openpage') : null;\r\n  if (!openA) return;\r\n\r\n  \/\/ fallback, \u0435\u0441\u043b\u0438 REST \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\r\n  openA.href = langBase + 'key-sections\/';\r\n}\r\n\r\n\r\n\r\n    const RTL = ['af','pk','ir'].includes(code);\r\n\r\n    const TEXT={\r\n      int:{modal:'Key sections', openPage:'Key sections overview', cols:['Nutrition Principles','Delicious Recipes','Ingredients & Products','Development Projects']},\r\n      ru :{modal:'\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b', openPage:'\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432', cols:['\u041f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0438\u0442\u0430\u043d\u0438\u044f','\u0420\u0435\u0446\u0435\u043f\u0442\u044b \u0432\u043a\u0443\u0441\u043d\u044b\u0445 \u0431\u043b\u044e\u0434','\u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438 \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u044b','\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b']},\r\n      kz :{modal:'\u041d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440', openPage:'\u041d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b', cols:['\u0422\u0430\u043c\u0430\u049b\u0442\u0430\u043d\u0443 \u049b\u0430\u0493\u0438\u0434\u0430\u0442\u0442\u0430\u0440\u044b','\u0414\u04d9\u043c\u0434\u0456 \u0440\u0435\u0446\u0435\u043f\u0442\u0435\u0440','\u04e8\u043d\u0456\u043c\u0434\u0435\u0440 \u043c\u0435\u043d \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u0442\u0435\u0440','\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0430\u043b\u044b \u0436\u043e\u0431\u0430\u043b\u0430\u0440']},\r\n      kg :{modal:'\u041d\u0435\u0433\u0438\u0437\u0433\u0438 \u0431\u04e9\u043b\u04af\u043c\u0434\u04e9\u0440', openPage:'\u041d\u0435\u0433\u0438\u0437\u0433\u0438 \u0431\u04e9\u043b\u04af\u043c\u0434\u04e9\u0440\u0434\u04af\u043d \u0441\u04af\u0440\u04e9\u0442\u0442\u04e9\u043b\u04af\u0448\u04af', cols:['\u0422\u0430\u043c\u0430\u043a\u0442\u0430\u043d\u0443\u0443 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0442\u0435\u0440\u0438','\u0414\u0430\u0430\u043c\u0434\u0443\u0443 \u0440\u0435\u0446\u0435\u043f\u0442\u0442\u0435\u0440','\u04e8\u043d\u04af\u043c\u0434\u04e9\u0440 \u0436\u0430\u043d\u0430 \u0438\u043d\u0433\u0440\u0435\u0434\u0438\u0435\u043d\u0442\u0442\u0435\u0440','\u04e8\u043d\u04af\u0433\u04af\u04af \u0434\u043e\u043b\u0431\u043e\u043e\u0440\u043b\u043e\u0440\u0443']},\r\n      uz :{modal:'Asosiy bo\u2018limlar', openPage:'Asosiy bo\u2018limlar tavsifi', cols:['Oziqlanish tamoyillari','Mazali retseptlar','Mahsulotlar va ingredientlar','Istiqbolli loyihalar']},\r\n      tm :{modal:'Esasy b\u00f6l\u00fcmler', openPage:'Esasy b\u00f6l\u00fcmleri\u0148 be\u00fdany', cols:['I\u00fdmitlenmegi\u0148 \u00fd\u00f6relgeleri','Tagamly reseptler','\u00d6n\u00fcmler we ingredientler','Perspektiwaly taslamalar']},\r\n      tj :{modal:'\u049a\u0438\u0441\u043c\u04b3\u043e\u0438 \u0430\u0441\u043e\u0441\u04e3', openPage:'\u0422\u0430\u0432\u0441\u0438\u0444\u0438 \u049b\u0438\u0441\u043c\u04b3\u043e\u0438 \u0430\u0441\u043e\u0441\u04e3', cols:['\u041f\u0440\u0438\u043d\u0441\u0438\u043f\u04b3\u043e\u0438 \u0493\u0438\u0437\u043e','\u0414\u043e\u0440\u0443\u0445\u0430\u0442\u04b3\u043e\u0438 \u0431\u043e\u043b\u0430\u0437\u0437\u0430\u0442','\u041c\u0430\u04b3\u0441\u0443\u043b\u043e\u0442 \u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u04b3\u043e','\u041b\u043e\u0438\u04b3\u0430\u04b3\u043e\u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u04e3']},\r\n      mn :{modal:'\u0413\u043e\u043b \u0445\u044d\u0441\u0433\u04af\u04af\u0434', openPage:'\u0413\u043e\u043b \u0445\u044d\u0441\u0433\u04af\u04af\u0434\u0438\u0439\u043d \u0442\u0430\u0439\u043b\u0431\u0430\u0440', cols:['\u0425\u043e\u043e\u043b \u0442\u044d\u0436\u044d\u044d\u043b\u0438\u0439\u043d \u0437\u0430\u0440\u0447\u0438\u043c','\u0410\u043c\u0442\u0442\u0430\u0439 \u0436\u043e\u0440','\u0411\u04af\u0442\u044d\u044d\u0433\u0434\u044d\u0445\u04af\u04af\u043d \u0431\u0430 \u043d\u0430\u0439\u0440\u043b\u0430\u0433\u0430','\u0418\u0440\u044d\u044d\u0434\u04af\u0439\u043d \u0442\u04e9\u0441\u043b\u04af\u04af\u0434']},\r\n      cn :{modal:'\u5173\u952e\u680f\u76ee', openPage:'\u5173\u952e\u680f\u76ee\u8bf4\u660e', cols:['\u5065\u5eb7\u996e\u98df\u539f\u5219','\u7f8e\u5473\u98df\u8c31','\u98df\u6750\u4e0e\u4ea7\u54c1','\u53d1\u5c55\u9879\u76ee']},\r\n      af :{modal:'\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', openPage:'\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', cols:['\u0627\u0635\u0648\u0644 \u062a\u063a\u0630\u06cc\u0647','\u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u0634\u0645\u0632\u0647','\u0645\u0648\u0627\u062f \u0648 \u0645\u062d\u0635\u0648\u0644\u0627\u062a','\u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u0627\u06cc']},\r\n      in :{modal:'\u092e\u0941\u0916\u094d\u092f \u0905\u0928\u0941\u092d\u093e\u0917', openPage:'\u092e\u0941\u0916\u094d\u092f \u0905\u0928\u0941\u092d\u093e\u0917 \u0935\u093f\u0935\u0930\u0923', cols:['\u092a\u094b\u0937\u0923 \u0915\u0947 \u0938\u093f\u0926\u094d\u0927\u093e\u0902\u0924','\u0938\u094d\u0935\u093e\u0926\u093f\u0937\u094d\u091f \u0930\u0947\u0938\u093f\u092a\u0940','\u0938\u093e\u092e\u0917\u094d\u0930\u0940 \u0935 \u0909\u0924\u094d\u092a\u093e\u0926','\u0935\u093f\u0915\u093e\u0938 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e\u090f\u0901']},\r\n      pk :{modal:'\u0627\u06c1\u0645 \u062d\u0635\u06d2', openPage:'\u0627\u06c1\u0645 \u062d\u0635\u0651\u0648\u06ba \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644', cols:['\u063a\u0630\u0627\u0626\u06cc\u062a \u06a9\u06d2 \u0627\u0635\u0648\u0644','\u0645\u0632\u06cc\u062f\u0627\u0631 \u062a\u0631\u06a9\u06cc\u0628\u06cc\u06ba','\u0627\u062c\u0632\u0627\u0621 \u0627\u0648\u0631 \u0645\u0635\u0646\u0648\u0639\u0627\u062a','\u062a\u0631\u0642\u06cc\u0627\u062a\u06cc \u0645\u0646\u0635\u0648\u0628\u06d2']},\r\n      ir :{modal:'\u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', openPage:'\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc', cols:['\u0627\u0635\u0648\u0644 \u062a\u063a\u0630\u06cc\u0647','\u062f\u0633\u062a\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u0634\u0645\u0632\u0647','\u0645\u0648\u0627\u062f \u0648 \u0645\u062d\u0635\u0648\u0644\u0627\u062a','\u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u0627\u06cc']}\r\n    }[code];\r\n\r\n    const SECTIONS=[\r\n      {slug:'principles', label:TEXT.cols[0]},\r\n      {slug:'recipes',    label:TEXT.cols[1]},\r\n      {slug:'products',   label:TEXT.cols[2]},\r\n      {slug:'projects',   label:TEXT.cols[3]},\r\n    ];\r\n\r\n    let modal=null;\r\n    function ensureModal(){\r\n      if(modal) return modal;\r\n      modal=document.createElement('div');\r\n      modal.className='da-sections-acc';\r\n      if (RTL) modal.setAttribute('dir','rtl');\r\n      modal.innerHTML=`\r\n        <div class=\"dz-dialog\" role=\"dialog\" aria-modal=\"true\" aria-label=\"${TEXT.modal}\">\r\n\r\n\r\n<div class=\"dz-head\">\r\n  <h3 class=\"dz-title\">\ud83d\udcda Content<\/h3>\r\n\r\n  <div class=\"dz-actions\">\r\n    <a class=\"dz-openpage\" href=\"#\" aria-label=\"Open Key sections page\">...<\/a>\r\n    <button class=\"dz-close\" aria-label=\"Close\">\u00d7<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n          <div class=\"dz-body\"><div class=\"acc\"><\/div><\/div>\r\n        <\/div>`;\r\n      document.body.appendChild(modal);\r\n\r\nvar openA = modal.querySelector('.dz-openpage');\r\nif (openA) openA.textContent = TEXT.openPage || 'Key sections overview';\r\n\r\n\r\n      modal.querySelector('.dz-close').addEventListener('click', closeModal);\r\n      modal.addEventListener('click', e=>{ if(e.target===modal) closeModal(); });\r\n      document.addEventListener('keydown', e=>{ if(e.key==='Escape') closeModal(); });\r\n      return modal;\r\n    }\r\n    function openModal(){ ensureModal(); modal.classList.add('is-open');setHubLink(); if(!modal.dataset.built){ buildAcc(); modal.dataset.built='1'; } }\r\n    function closeModal(){ if(modal) modal.classList.remove('is-open'); }\r\n    trigger.addEventListener('click', e=>{ e.preventDefault(); openModal(); });\r\n\r\n    \/* ===== WP REST helpers ===== *\/\r\n    async function jget(url){ const r=await fetch(url); if(!r.ok) throw new Error('HTTP '+r.status); return r.json(); }\r\n    async function getPageIdBySlug(slug){\r\n      try{ const j=await jget(`${restBase}pages?slug=${encodeURIComponent(slug)}&per_page=1&_fields=id`);\r\n           return j?.[0]?.id||null; }catch(_){ return null; }\r\n    }\r\n    async function findChildUnder(parentId, slug){\r\n      try{\r\n        if(parentId){\r\n          const j=await jget(`${restBase}pages?parent=${parentId}&per_page=100&_fields=id,link,title,slug`);\r\n          const m=(Array.isArray(j)?j:[]).find(p=>p.slug===slug);\r\n          if(m) return m;\r\n        }\r\n        const k=await jget(`${restBase}pages?slug=${encodeURIComponent(slug)}&per_page=1&_fields=id,link,title,parent,slug`);\r\n        return k?.[0]||null;\r\n      }catch(_){ return null; }\r\n    }\r\n    async function getChildren(parentId){\r\n      try{ const j=await jget(`${restBase}pages?parent=${parentId}&per_page=100&_fields=id,link,title`);\r\n           return Array.isArray(j)?j:[]; }catch(_){ return []; }\r\n    }\r\n    async function buildChildrenTree(liRoot, parentId){\r\n      const kids=await getChildren(parentId);\r\n      if(!kids.length) return;\r\n      const ul=document.createElement('ul'); liRoot.appendChild(ul);\r\n      for(const k of kids){\r\n        const li=document.createElement('li');\r\n        const a=document.createElement('a');\r\n        a.href=k.link||'#';\r\n        a.innerHTML=k.title?.rendered||'';\r\n        li.appendChild(a);\r\n        ul.appendChild(li);\r\n        await buildChildrenTree(li, k.id);\r\n      }\r\n    }\r\n\r\n    async function buildAcc(){\r\n      const acc = modal.querySelector('.acc');\r\n\r\n\r\nconst HUB = 'key-sections';\r\n\r\n\r\n\r\n\r\nconst hubId = await getPageIdBySlug(HUB);\r\n\r\n\r\n      for(const s of SECTIONS){\r\n        const item=document.createElement('div'); item.className='acc-item';\r\n        item.innerHTML=`\r\n          <button class=\"acc-trigger\" aria-expanded=\"false\">\r\n            <span class=\"acc-label\">${s.label}<\/span>\r\n            <span class=\"acc-chevron\" aria-hidden=\"true\">\u25be<\/span>\r\n          <\/button>\r\n          <div class=\"acc-panel\" hidden>\r\n            <ul class=\"dz-tree\">\r\n              <li class=\"root\">\r\n                <a class=\"root-link\" href=\"${langBase}${HUB}\/${s.slug}\/\">${s.label}<\/a>\r\n                <span class=\"acc-skeleton\" style=\"width:60%\"><\/span>\r\n                <span class=\"acc-skeleton\" style=\"width:40%\"><\/span>\r\n              <\/li>\r\n            <\/ul>\r\n          <\/div>`;\r\n        acc.appendChild(item);\r\n\r\n        const triggerBtn=item.querySelector('.acc-trigger');\r\n        const panel=item.querySelector('.acc-panel');\r\n        let built=false;\r\n\r\n        triggerBtn.addEventListener('click', async ()=>{\r\n          const exp = triggerBtn.getAttribute('aria-expanded')==='true';\r\n          triggerBtn.setAttribute('aria-expanded', String(!exp));\r\n          panel.hidden = exp;\r\n          if(!built){\r\n            const rootLi = panel.querySelector('.dz-tree .root');\r\n            const rootA  = rootLi.querySelector('.root-link');\r\n\r\n\r\nconst sec = await findChildUnder(hubId, s.slug);\r\n\r\n\r\n            if(sec){\r\n              rootA.href = sec.link || rootA.href;\r\n              if(sec.title?.rendered) rootA.innerHTML = sec.title.rendered;\r\n              await buildChildrenTree(rootLi, sec.id);\r\n            }\r\n            \/\/ \u0443\u0431\u0440\u0430\u0442\u044c \u00ab\u0441\u043a\u0435\u043b\u0435\u0442\u00bb\r\n            rootLi.querySelectorAll('.acc-skeleton').forEach(el=>el.remove());\r\n            built=true;\r\n          }\r\n        });\r\n      }\r\n    }\r\n  });\r\n})();\r\n<\/script>\r\n\r\n\r\n\r\n<script>\r\n\/* Count sections on page load (works even if DOMContentLoaded has already fired) *\/\r\n(function () {\r\n  function ready(fn){ \r\n    if (document.readyState !== 'loading') fn(); \r\n    else document.addEventListener('DOMContentLoaded', fn);\r\n  }\r\n\r\n  ready(async function () {\r\n    const wrap = document.querySelector('.da-sections-zz');\r\n    const out  = wrap?.querySelector('.zz-botbar .zz-copy .count');\r\n    if (!wrap || !out) return;\r\n\r\n    \/* ISO \/ site base *\/\r\n    const firstSeg = (location.pathname.replace(\/^\\\/+\/,'').split('\/')[0]||'').toLowerCase();\r\n    const ISO = ['kz','kg','uz','tm','tj','mn','cn','ru','af','in','pk','ir'];\r\n    const code = ISO.includes(firstSeg) ? firstSeg : 'int';\r\n    const langBase = (code==='int') ? '\/' : `\/${code}\/`;\r\n    const restBase = `${langBase}wp-json\/wp\/v2\/`;\r\n\r\n    async function jget(u){\r\n      try { const r = await fetch(u, {credentials:'same-origin'}); if(!r.ok) throw 0; return await r.json(); }\r\n      catch(_) { return null; }\r\n    }\r\n    async function getPageIdBySlug(slug){\r\n      const j = await jget(`${restBase}pages?slug=${encodeURIComponent(slug)}&per_page=1&_fields=id`);\r\n      return j?.[0]?.id ?? null;\r\n    }\r\n    async function findChildUnder(parentId, slug){\r\n      if (parentId){\r\n        const j = await jget(`${restBase}pages?parent=${parentId}&per_page=100&_fields=id,slug`);\r\n        const m = (Array.isArray(j)?j:[]).find(p=>p.slug===slug);\r\n        if (m) return m;\r\n      }\r\n      const k = await jget(`${restBase}pages?slug=${encodeURIComponent(slug)}&per_page=1&_fields=id,slug,parent`);\r\n      return k?.[0] ?? null;\r\n    }\r\n    async function getChildrenIds(parentId){\r\n      let all=[], page=1, batch=[];\r\n      do{\r\n        const j = await jget(`${restBase}pages?parent=${parentId}&per_page=100&page=${page}&_fields=id`);\r\n        batch = Array.isArray(j)?j:[];\r\n        all.push(...batch.map(o=>o.id));\r\n        page++;\r\n      } while(batch.length===100);\r\n      return all;\r\n    }\r\n    async function countTree(id){\r\n      let total = 1;\r\n      const kids = await getChildrenIds(id);\r\n      for (const cId of kids){ total += await countTree(cId); }\r\n      return total;\r\n    }\r\n\r\n    try{\r\n\r\nconst HUB = 'key-sections';\r\nconst hubId = await getPageIdBySlug(HUB);\r\n\r\n      const slugs  = ['principles','recipes','products','projects'];\r\n      let total = 0;\r\n\r\n      for (const s of slugs){\r\n        const node = await findChildUnder(hubId, s);\r\n        total += node ? (await countTree(node.id)) : 1;\r\n      }\r\n      out.textContent = String(total);\r\n    } catch(_) { \/* \u0442\u0438\u0445\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c *\/ }\r\n  });\r\n})();\r\n<\/script>\n\n\n\n<!-- ===== ZIGZAG \u2022 LATEST (up to 8 posts) ===== -->\r\n<section class=\"da-latest-zz\"\r\n         data-limit=\"8\"\r\n         data-cats=\"\"\r\n         data-title-lines=\"3\"\r\n         data-excerpt-lines=\"4\">\r\n  <div class=\"zz-grid\">\r\n    <!-- B: \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-topbar\"><a class=\"zz-title\" href=\"#\">Latest updates<\/a><\/div>\r\n\r\n    <!-- A: \u0440\u0430\u043c\u043a\u0430 + \u043f\u0430\u043d\u0435\u043b\u044c -->\r\n    <div class=\"zz-frame\">\r\n      <div class=\"zz-panel\">\r\n        <div class=\"da-latest-grid\" aria-live=\"polite\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- C: \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-botbar\">\r\n      <span class=\"zz-copy\"><span class=\"label\">All posts:<\/span> <span class=\"count\">0<\/span><\/span>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ==== \u043a\u0430\u0440\u043a\u0430\u0441 \u0437\u0438\u0433\u0437\u0430\u0433\u0430 (\u043f\u0430\u043b\u0438\u0442\u0440\u0430 \u043e\u0431\u0449\u0430\u044f) ==== *\/\r\n.da-latest-zz, .da-latest-zz *{ box-sizing:border-box; }\r\n.da-latest-zz{ --bar-h:32px; --top-w:70%; --bot-w:25%;\r\n  --zz-label-size:.95rem;        \/* \u0435\u0434\u0438\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0443\u0448\u0435\u043a *\/\r\n  width:100%; max-width:100%; overflow-x:hidden;\r\n}\r\n.da-latest-zz .zz-grid{ display:grid; grid-template-rows:var(--bar-h) auto var(--bar-h); gap:0; }\r\n\r\n\/* B \u2014 \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e *\/\r\n.da-latest-zz .zz-topbar{\r\n  width:var(--top-w); height:var(--bar-h); justify-self:start;\r\n  display:flex; align-items:center; padding:0 12px;\r\n  background:var(--da-bg-chrome, var(--tone-100)); border-top-left-radius:16px;\r\n  box-shadow:0 3px 8px rgba(0,0,0,.10);\r\n}\r\n.da-latest-zz .zz-title{\r\n  font-weight:800; color:var(--da-ink, var(--tone-900));\r\n  font-size:var(--zz-label-size); text-decoration:none;\r\n  font-size:1.2rem; line-height:1.15;\r\n}\r\n\r\n\/* A \u2014 \u0440\u0430\u043c\u043a\u0430\/\u043f\u0430\u043d\u0435\u043b\u044c *\/\r\n.da-latest-zz .zz-frame{\r\n  background:var(--da-bg-chrome, var(--tone-100));\r\n  border-top-right-radius:12px; border-bottom-left-radius:12px;\r\n  padding:12px; box-shadow:0 4px 18px rgba(0,0,0,.08);\r\n}\r\n.da-latest-zz .zz-panel{\r\n  background:var(--da-bg-chrome, var(--tone-100)); border:none; padding:0; border-radius:12px;\r\n}\r\n\r\n\/* C \u2014 \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e \u0441 \u043f\u0440\u0430\u0432\u044b\u043c \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435\u043c *\/\r\n.da-latest-zz .zz-botbar{\r\n  width:var(--bot-w); height:var(--bar-h); justify-self:end; position:relative;\r\n  display:flex; align-items:center; background:var(--da-bg-chrome, var(--tone-100));\r\n  border-bottom-right-radius:16px; box-shadow:0 3px 8px rgba(0,0,0,.10);\r\n}\r\n.da-latest-zz .zz-copy{\r\n  position:absolute; right:12px; top:50%; transform:translateY(-50%);\r\n  white-space:nowrap; font-weight:600; color:var(--da-primary-strong, var(--tone-600));\r\n  font-size:var(--zz-label-size);\r\n}\r\n.da-latest-zz .zz-copy .count{ font-weight:800; }\r\n\r\n\/* ==== \u0441\u0435\u0442\u043a\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a ==== *\/\r\n.da-latest-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; max-width:100%; }\r\n@media (min-width:720px){ .da-latest-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; } }\r\n@media (min-width:1024px){ .da-latest-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; } }\r\n\r\n\/* \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 *\/\r\n.da-card{ background:#fff; border-radius:10px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.08); display:flex; flex-direction:column; }\r\n.da-thumb{ position:relative; width:100%; aspect-ratio:3\/2; overflow:hidden; background:#f3f3f3; }\r\n.da-thumb > img{ width:100%; height:100%; object-fit:cover; display:block; }\r\n\/* \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442 \u0432\u043d\u0438\u0437 + \u043f\u043e\u0434\u043b\u043e\u0436\u043a\u0430 \u043f\u043e\u0434 1-\u044e \u0441\u0442\u0440\u043e\u043a\u0443 *\/\r\n.da-thumb::before{\r\n  content:\"\"; position:absolute; inset:0;\r\n  background:linear-gradient(to bottom, rgba(255,255,255,0) 50%, rgba(255,255,255,0.65) 80%, #ffffff 100%);\r\n  pointer-events:none;\r\n}\r\n.da-thumb::after{\r\n  content:\"\"; position:absolute; left:0; right:0; bottom:0; height:1.8em; background:rgba(255,255,255,.40);\r\n  pointer-events:none;\r\n}\r\n.da-meta{ position:relative; padding:10px 12px 12px; margin-top:-1.2em; z-index:2; }\r\n.da-title{\r\n  margin:0 0 8px 0; font-size:1.08rem; line-height:1.2; font-weight:800; color:var(--da-ink, var(--tone-900));\r\n  display:-webkit-box; -webkit-line-clamp:var(--title-lines,3); -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis;\r\n}\r\n.da-title a{ color:inherit; text-decoration:none; }\r\n.da-title a:hover{ text-decoration:underline; }\r\n.da-excerpt{\r\n  margin:0; font-size:.98rem; line-height:1.35; color:var(--da-ink, var(--tone-900)); opacity:.85;\r\n  display:-webkit-box; -webkit-line-clamp:var(--excerpt-lines,4); -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis;\r\n}\r\n\r\n\/* \u043e\u0442\u0441\u0435\u0447\u044c \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0440\u043e\u043b\u043b \u0440\u044f\u0434\u043e\u043c *\/\r\n:root:has(.da-latest-zz), .wp-site-blocks:has(.da-latest-zz){ overflow-x:clip !important; }\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', async function () {\r\n  const wrap = document.querySelector('.da-latest-zz');\r\n  if (!wrap) return;\r\n\r\n  \/* ISO \/ \u043f\u0440\u0435\u0444\u0438\u043a\u0441 *\/\r\n  const seg = (location.pathname.replace(\/^\\\/+\/,'').split('\/')[0]||'').toLowerCase();\r\n  const KN = ['kz','kg','uz','tm','tj','mn','cn','ru','af','in','pk','ir'];\r\n  const code = KN.includes(seg) ? seg : 'int';\r\n  const prefix = (code==='int') ? '\/' : `\/${code}\/`;\r\n  const apiBase = (prefix==='\/' ? '\/wp-json\/wp\/v2\/' : prefix.replace(\/\\\/$\/,'') + '\/wp-json\/wp\/v2\/');\r\n\r\n  \/* \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0448\u043a\u0435 *\/\r\n  const titleI18n = {\r\n    int:'Latest updates', ru:'\u0421\u0432\u0435\u0436\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f', kz:'\u0416\u0430\u04a3\u0430 \u0430\u049b\u043f\u0430\u0440\u0430\u0442', kg:'\u0416\u0430\u04a3\u044b \u043c\u0430\u0430\u043b\u044b\u043c\u0430\u0442',\r\n    uz:'Yangiliklar', tm:'T\u00e4ze maglumatlar', tj:'\u0410\u0445\u0431\u043e\u0440\u0438 \u043d\u0430\u0432', mn:'\u0428\u0438\u043d\u044d \u043c\u044d\u0434\u044d\u044d\u043b\u044d\u043b',\r\n    cn:'\u6700\u65b0\u8d44\u8baf', af:'\u062a\u0627\u0632\u0647 \u0645\u0639\u0644\u0648\u0645\u0627\u062a', in:'\u0924\u093e\u091c\u093c\u093e \u091c\u093e\u0928\u0915\u093e\u0930\u0940', pk:'\u062a\u0627\u0632\u06c1 \u0645\u0639\u0644\u0648\u0645\u0627\u062a', ir:'\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062a\u0627\u0632\u0647'\r\n  };\r\n  const allI18n = {\r\n    int:'All posts:', ru:'\u0412\u0441\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u0432:', kz:'\u0416\u0430\u0437\u0431\u0430\u043b\u0430\u0440:', kg:'\u041f\u043e\u0441\u0442\u0442\u043e\u0440:', uz:'Barcha postlar:',\r\n    tm:'Jemi habarlar:', tj:'\u04b2\u0430\u043c\u0430\u0433\u04e3 \u043f\u043e\u0441\u0442\u04b3\u043e:', mn:'\u041d\u0438\u0439\u0442 \u043d\u0438\u0439\u0442\u043b\u044d\u043b:', cn:'\u5168\u90e8\u6587\u7ae0\uff1a',\r\n    af:'\u067c\u0648\u0644\u06d0 \u0644\u06cc\u06a9\u0646\u06d0:', in:'\u0915\u0941\u0932 \u092a\u094b\u0938\u094d\u091f:', pk:'\u06a9\u0644 \u067e\u0648\u0633\u0679\u0633:', ir:'\u06a9\u0644 \u0646\u0648\u0634\u062a\u0647\u200c\u0647\u0627:'\r\n  };\r\n  const topA = wrap.querySelector('.zz-title');\r\n  topA.textContent = titleI18n[code] || titleI18n.int;\r\n  topA.href = (code==='int') ? '\/allposts\/' : `\/${code}\/allposts\/`;\r\n\r\n  wrap.querySelector('.zz-copy .label').textContent = allI18n[code] || allI18n.int;\r\n\r\n  \/* \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 *\/\r\n  const limit  = Math.min(8, Math.max(1, parseInt(wrap.getAttribute('data-limit'),10) || 8));\r\n  const tLines = parseInt(wrap.getAttribute('data-title-lines'),10) || 3;\r\n  const eLines = parseInt(wrap.getAttribute('data-excerpt-lines'),10) || 4;\r\n  const catsStr= (wrap.getAttribute('data-cats')||'').trim();\r\n  wrap.style.setProperty('--title-lines', tLines);\r\n  wrap.style.setProperty('--excerpt-lines', eLines);\r\n\r\n  const grid  = wrap.querySelector('.da-latest-grid');\r\n  const count = wrap.querySelector('.zz-copy .count');\r\n  const noImg = '\/wp-content\/uploads\/general\/no_image.jpg';\r\n\r\n  function strip(html){ const d=document.createElement('div'); d.innerHTML=html||''; return (d.textContent||d.innerText||'').trim(); }\r\n  async function jget(u){\r\n    const r = await fetch(u, {credentials:'same-origin'});\r\n    if(!r.ok) throw new Error('HTTP '+r.status);\r\n    const data = await r.json();\r\n    return {data, total: parseInt(r.headers.get('X-WP-Total')||data.length||0,10)};\r\n  }\r\n\r\n  \/* \u0444\u0438\u043b\u044c\u0442\u0440 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043f\u043e slug (\u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d) *\/\r\n  let catIds=[];\r\n  if (catsStr){\r\n    try{\r\n      const r = await fetch(apiBase + 'categories?per_page=100&slug=' + encodeURIComponent(catsStr), {credentials:'same-origin'});\r\n      if (r.ok){ const arr = await r.json(); catIds = arr.map(c=>c.id); }\r\n    }catch(_){}\r\n  }\r\n\r\n  \/* \u043f\u043e\u0441\u0442\u044b *\/\r\n  let url = apiBase + `posts?per_page=${limit}&orderby=date&order=desc&_embed=1`;\r\n  if (catIds.length) url += '&categories=' + catIds.join(',');\r\n\r\n  try{\r\n    const {data:posts, total} = await jget(url);\r\n    count.textContent = String(total || posts.length || 0);\r\n\r\n    if (!posts.length){\r\n      const empty = document.createElement('div');\r\n      empty.style.cssText = 'padding:12px;color:var(--da-ink);opacity:.85;';\r\n      empty.textContent = {int:'No recent posts yet.',\r\n  ru:'\u041f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0441\u0432\u0435\u0436\u0438\u0445 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439.',\r\n  kz:'\u0416\u0430\u04a3\u0430\u043b\u044b\u049b\u0442\u0430\u0440 \u04d9\u0437\u0456\u0440\u0433\u0435 \u0436\u043e\u049b.',\r\n  kg:'\u0410\u0437\u044b\u0440\u044b\u043d\u0447\u0430 \u0436\u0430\u04a3\u044b \u0436\u0430\u0437\u0443\u0443\u043b\u0430\u0440 \u0436\u043e\u043a.',\r\n  uz:\"Hozircha yangi postlar yo\u02bbq.\",\r\n  tm:'Ent\u00e4k t\u00e4ze \u00fdazgy \u00fdok.',\r\n  tj:'\u04b2\u043e\u043b\u043e \u043d\u0430\u0432\u0438\u0448\u0442\u0430\u04b3\u043e\u0438 \u043d\u0430\u0432 \u043d\u0435\u0441\u0442.',\r\n  mn:'\u041e\u0434\u043e\u043e\u0433\u043e\u043e\u0440 \u0448\u0438\u043d\u044d \u043d\u0438\u0439\u0442\u043b\u044d\u043b \u0430\u043b\u0433\u0430.',\r\n  cn:'\u6682\u65e0\u6700\u65b0\u6587\u7ae0\u3002',\r\n  af:'\u062a\u0631 \u0627\u0648\u0633\u0647 \u0646\u0648\u064a \u067e\u0648\u0633\u067c\u0648\u0646\u0647 \u0646\u0634\u062a\u0647.',\r\n  in:'\u0905\u092d\u0940 \u0924\u0915 \u0928\u0908 \u092a\u094b\u0938\u094d\u091f\u0947\u0902 \u0928\u0939\u0940\u0902 \u0939\u0948\u0902\u0964',\r\n  pk:'\u0627\u0628\u06be\u06cc \u062a\u06a9 \u0646\u0626\u06cc \u067e\u0648\u0633\u0679\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4',\r\n  ir:'\u0641\u0639\u0644\u0627\u064b \u067e\u0633\u062a \u062c\u062f\u06cc\u062f\u06cc \u0646\u06cc\u0633\u062a.'}[code] || 'No recent posts yet.';\r\n      grid.appendChild(empty);\r\n      return;\r\n    }\r\n\r\n    posts.forEach(p=>{\r\n      const link = p.link || '#';\r\n      const title = strip(p?.title?.rendered)||'\u2014';\r\n      let excerpt = strip(p?.excerpt?.rendered); if(!excerpt && p?.content?.rendered) excerpt = strip(p.content.rendered);\r\n      let img = p?._embedded?.['wp:featuredmedia']?.[0]?.source_url || noImg;\r\n\r\n      const card = document.createElement('article');\r\n      card.className = 'da-card';\r\n      card.innerHTML = `\r\n        <a class=\"da-thumb\" href=\"${link}\" aria-label=\"${title}\"><img decoding=\"async\" src=\"${img}\" alt=\"\"><\/a>\r\n        <div class=\"da-meta\">\r\n          <h3 class=\"da-title\"><a href=\"${link}\">${title}<\/a><\/h3>\r\n          <p class=\"da-excerpt\">${excerpt||''}<\/p>\r\n        <\/div>`;\r\n      grid.appendChild(card);\r\n    });\r\n  }catch(e){\r\n    count.textContent = '0';\r\n  }\r\n});\r\n<\/script>\n\n\n\n<!-- \u041f\u0440\u0435\u0434\u043f\u043e\u043a\u0430\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 \u043f\u043e slug (quotes-book-01 \u0438 \u0442.\u043f.) -->\n<!-- \u0422\u044b \u043c\u0435\u043d\u044f\u0435\u0448\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442 data-da-post-slug. -->\n\n\n<!-- DA \u00b7 Preview of ONE post by slug -->\n<section class=\"da-post-preview\" data-da-post-slug=\"quotes-about-nutrition\">\n  <div class=\"da-pp-msg\"><\/div>\n\n  <div class=\"da-pp-article\">\n    <span class=\"da-pp-article-label\"><\/span>\n\n    <!-- \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u043e\u0441\u0442\u0430 -->\n    <a class=\"da-pp-article-title\" href=\"#\" target=\"_blank\" rel=\"noopener\"><\/a>\n\n    <!-- \u0430\u0432\u0442\u043e\u0440 + \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u043e\u0434 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c -->\n    <div class=\"da-pp-author\">\n      <img decoding=\"async\" class=\"da-pp-author-avatar\" src=\"\" alt=\"\">\n      <a class=\"da-pp-author-name\" href=\"#\"><\/a>\n\n      <div class=\"da-pp-author-rating\">\n        <span class=\"da-pp-author-rating-icon\">\u2605<\/span>\n        <span class=\"da-pp-author-rating-value\">\u2013<\/span>\n        <span class=\"da-pp-author-rating-count\"><\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"da-pp-track\"><\/div>\n  <div class=\"da-pp-dots\"><\/div>\n<\/section>\n\n<style>\n\/* === \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043f\u0440\u0435\u0434\u043f\u043e\u043a\u0430\u0437\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430 === *\/\n.da-post-preview{\n  max-width:720px;\n  margin:18px auto 28px;\n  padding:6px 16px 10px;\n  border-radius:18px;\n  border:1px solid var(--tone-200,#D1FAE5);\n  background:var(--tone-100,#ECFDF5);\n  box-shadow:0 16px 40px rgba(15,23,42,0.08);\n  box-sizing:border-box;\n}\n\n.da-pp-msg{\n  font-size:0.9rem;\n  color:rgba(15,23,42,0.7);\n  margin-bottom:6px;\n}\n\n\/* \u0428\u0430\u043f\u043a\u0430: \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a + \u0430\u0432\u0442\u043e\u0440, \u0432\u0441\u0451 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0443 \u0441\u043b\u0435\u0432\u0430 *\/\n.da-pp-article{\n  margin-bottom:10px;\n  text-align:left;\n}\n\n.da-pp-article-label{\n  display:none; \/* \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0448\u044c *\/\n}\n\n\/* \u041a\u0440\u0443\u043f\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u043e\u0441\u0442\u0430 *\/\n.da-pp-article-title{\n  display:block;\n  font-size:1.6rem;\n  font-weight:700;\n  line-height:1.25;\n  text-decoration:none;\n  color:var(--tone-900,#065F46);\n}\n.da-pp-article-title:hover{\n  text-decoration:underline;\n}\n\n\/* \u0410\u0432\u0442\u043e\u0440 + \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u043f\u043e\u0434 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c *\/\n.da-pp-author{\n  margin-top:4px;\n  display:flex;\n  align-items:center;\n  gap:6px;\n  flex-wrap:wrap;\n}\n\n.da-pp-author-avatar{\n  width:28px;\n  height:28px;\n  border-radius:999px;\n  object-fit:cover;\n  flex-shrink:0;\n  background:#e5e7eb;\n}\n\n.da-pp-author-name{\n  font-size:0.9rem;\n  font-weight:500;\n  color:var(--tone-900,#065F46);\n  text-decoration:none;\n}\n.da-pp-author-name:hover{\n  text-decoration:underline;\n}\n\n\/* \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u043f\u043b\u0430\u0448\u043a\u0430 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u0440\u044f\u0434\u043e\u043c \u0441 \u0430\u0432\u0442\u043e\u0440\u043e\u043c *\/\n.da-pp-author-rating{\n  display:flex;\n  align-items:center;\n  gap:3px;\n  padding-left:8px;\n  border-left:1px solid rgba(15,23,42,0.12);\n  font-size:0.85rem;\n  color:rgba(15,23,42,0.8);\n  white-space:nowrap;\n}\n\n.da-pp-author-rating-icon{\n  font-size:0.9rem;\n  color:#f59e0b;\n}\n\n.da-pp-author-rating-value{\n  font-weight:600;\n}\n\n.da-pp-author-rating-count{\n  font-size:0.8rem;\n  opacity:0.85;\n}\n\n\/* \u0435\u0441\u043b\u0438 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u043d\u0435\u0442 \u2014 \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c JS-\u043e\u043c *\/\n.da-pp-author-rating.da-hidden{\n  display:none;\n}\n\n\/* \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0435\u043d\u0442\u0430 *\/\n.da-pp-track{\n  display:flex;\n  overflow-x:auto;\n  scroll-snap-type:x mandatory;\n  padding:0 0 2px;\n  gap:0;\n}\n.da-pp-track::-webkit-scrollbar{\n  height:4px;\n}\n.da-pp-track::-webkit-scrollbar-thumb{\n  background:rgba(15,23,42,0.25);\n  border-radius:999px;\n}\n\n\/* \u041e\u0434\u0438\u043d \u0441\u043b\u0430\u0439\u0434 = \u043e\u0434\u0438\u043d \u0440\u0430\u0437\u0434\u0435\u043b-\u043f\u043e\u0434\u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430 *\/\n.da-pp-slide{\n  flex:0 0 100%;\n  max-width:100%;\n  scroll-snap-align:start;\n  cursor:pointer;\n  box-sizing:border-box;\n}\n.da-pp-slide:not(:last-child){\n  margin-right:16px;\n}\n\n\/* \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 *\/\n.da-pp-card{\n  width:100%;\n  box-sizing:border-box;\n}\n\n\/* \u0428\u0430\u043f\u043a\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 (\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438) *\/\n.da-post-preview .da-card-header{\n  display:flex;\n  justify-content:flex-end;\n  align-items:flex-start;\n  margin-bottom:6px;\n}\n.da-post-preview .da-card-title{\n  font-size:0.9rem;\n  font-weight:400;\n  text-align:right;\n  color:rgba(15,23,42,0.7);\n  padding-right:8px;\n}\n\n\/* \u041a\u043e\u043d\u0446\u0435\u043f\u0442 *\/\n.da-pp-concept{\n  margin-top:4px;\n}\n\n\/* \u0421\u0435\u0442\u043a\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442 proportions \u0438\u0437 .da-concept-row *\/\n.da-post-preview .da-pp-row{\n  display:flex;\n  flex-wrap:nowrap;\n  align-items:flex-start;\n  gap:16px;\n  margin:0;\n}\n.da-post-preview .da-pp-col{\n  min-width:0;\n}\n.da-post-preview .da-pp-col > *:first-child{\n  margin-top:0;\n}\n.da-post-preview .da-pp-col img{\n  display:block;\n  width:100%;\n  height:auto;\n  border-radius:12px;\n}\n\n\/* \u0417\u0430\u043f\u0430\u0441\u043d\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f \u043b\u044e\u0431\u044b\u0445 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0432 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0435 *\/\n.da-pp-concept img{\n  display:block;\n  max-width:100%;\n  height:auto;\n  border-radius:12px;\n}\n\n\/* \u0422\u043e\u0447\u043a\u0438-\u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b *\/\n.da-pp-dots{\n  display:flex;\n  justify-content:center;\n  gap:6px;\n  margin-top:4px;\n}\n.da-pp-dot{\n  width:14px;\n  height:14px;\n  border-radius:999px;\n  border:none;\n  padding:0;\n  background:rgba(15,23,42,0.25);\n  cursor:pointer;\n}\n.da-pp-dot.da-active{\n  background:var(--da-primary-strong,var(--tone-600,#16A34A));\n}\n\n\/* \u0422\u0435\u043b\u0435\u0444\u043e\u043d: \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a *\/\n@media (max-width:480px){\n  .da-post-preview .da-pp-row{\n    gap:12px;\n  }\n\n  .da-post-preview .da-pp-concept,\n  .da-post-preview .da-pp-concept p,\n  .da-post-preview .da-pp-concept li{\n    font-size:1.05rem !important; \/* \u043f\u043e\u0434\u0433\u043e\u043d\u0438 \u043f\u043e\u0434 \u0432\u043a\u0443\u0441 *\/\n    line-height:1.4;\n  }\n}\n<\/style>\n\n\n\n<!-- ===== ZIGZAG \u2022 PHOTO ALBUM (HOME) ===== -->\r\n<section class=\"da-album-zz\" data-root=\"\/wp-content\/uploads\/album\/\" data-limit=\"7\" data-autoplay=\"5200\">\r\n  <div class=\"zz-grid\">\r\n    <!-- B: \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-topbar\"><a class=\"zz-title\" href=\"\/home\/album\/\">Photo album<\/a><\/div>\r\n\r\n    <!-- A: \u0440\u0430\u043c\u043a\u0430 + \u043f\u0430\u043d\u0435\u043b\u044c -->\r\n    <div class=\"zz-frame\">\r\n      <div class=\"zz-panel\">\r\n        <div class=\"da-album\" aria-label=\"Photo album\">\r\n          <div class=\"track\"><\/div>\r\n          <div class=\"dots\" role=\"tablist\" aria-label=\"Slides\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- C: \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e -->\r\n    <div class=\"zz-botbar\">\r\n      <a class=\"zz-copy\" href=\"\/home\/album\/\"><span class=\"label\">All photos:<\/span><span class=\"count\">0<\/span><\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ==== \u043a\u0430\u0440\u043a\u0430\u0441 \u0437\u0438\u0433\u0437\u0430\u0433\u0430 (\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 \u0442\u0432\u043e\u0435\u0439 \u043f\u0430\u043b\u0438\u0442\u0440\u043e\u0439) ==== *\/\r\n.da-album-zz, .da-album-zz *{ box-sizing:border-box; }\r\n.da-album-zz{ --bar-h:32px; --top-w:70%; --bot-w:25%; width:100%; max-width:100%; overflow-x:hidden; }\r\n.da-album-zz .zz-grid{ display:grid; grid-template-rows:var(--bar-h) auto var(--bar-h); gap:0; }\r\n\r\n\/* B \u2014 \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u0443\u0448\u043a\u043e: \u0441\u043a\u0440\u0443\u0433\u043b\u0451\u043d TL *\/\r\n.da-album-zz .zz-topbar{\r\n  width:var(--top-w); height:var(--bar-h); justify-self:start;\r\n  display:flex; align-items:center; padding:0 12px;\r\n  background:var(--da-bg-chrome, var(--tone-100)); border-top-left-radius:16px;\r\n  box-shadow:0 3px 8px rgba(0,0,0,.10);\r\n}\r\n.da-album-zz .zz-title{ color:var(--da-ink, var(--tone-900)); font-weight:700; text-decoration:none; }\r\n\r\n\/* A \u2014 \u0440\u0430\u043c\u043a\u0430: TR\/BL; \u043f\u0430\u043d\u0435\u043b\u044c: \u0444\u043e\u043d \u043a\u0430\u043a \u0443 \u0440\u0430\u043c\u043a\u0438, \u0431\u0435\u0437 \u043f\u0430\u0434\u0434\u0438\u043d\u0433\u043e\u0432 *\/\r\n.da-album-zz .zz-frame{\r\n  background:var(--da-bg-chrome, var(--tone-100));\r\n  border-top-right-radius:12px; border-bottom-left-radius:12px;\r\n  padding:12px; box-shadow:0 4px 18px rgba(0,0,0,.08); max-width:100%; overflow:hidden;\r\n}\r\n.da-album-zz .zz-panel{\r\n  background:var(--da-bg-chrome, var(--tone-100)); border:none; padding:0; border-radius:12px;\r\n  max-width:100%; overflow:hidden;\r\n}\r\n\r\n\/* C \u2014 \u043d\u0438\u0436\u043d\u0435\u0435 \u0443\u0448\u043a\u043e: \u0441\u043a\u0440\u0443\u0433\u043b\u0451\u043d BR; \u0442\u0435\u043a\u0441\u0442 \u0441\u043f\u0440\u0430\u0432\u0430, \u043c\u043e\u0436\u0435\u0442 \u00ab\u0432\u044b\u043f\u043e\u043b\u0437\u0430\u0442\u044c\u00bb \u0432\u043b\u0435\u0432\u043e *\/\r\n.da-album-zz .zz-botbar{\r\n  width:var(--bot-w); height:var(--bar-h); justify-self:end; position:relative;\r\n  display:flex; align-items:center; padding:0 0; background:var(--da-bg-chrome, var(--tone-100));\r\n  border-bottom-right-radius:16px; box-shadow:0 3px 8px rgba(0,0,0,.10); overflow:visible;\r\n}\r\n.da-album-zz .zz-copy{\r\n  position:absolute; right:12px; top:50%; transform:translateY(-50%);\r\n  white-space:nowrap; color:var(--da-primary-strong, var(--tone-600));\r\n  font-weight:600; font-size:.92rem; text-decoration:none;\r\n}\r\n.da-album-zz .zz-copy .label{ margin-right:.35rem; }\r\n.da-album-zz .zz-copy .count{ font-weight:700; }\r\n\r\n\/* ==== \u0441\u043b\u0430\u0439\u0434\u0435\u0440 ==== *\/\r\n.da-album{ width:100%; overflow:hidden; }\r\n.da-album .track{\r\n  display:flex; gap:0; transform:translateX(0); transition:transform .45s ease; will-change:transform;\r\n}\r\n.da-album .slide{ flex:0 0 100%; }\r\n.da-album .slide img{ display:block; width:100%; height:auto; aspect-ratio:3\/2; object-fit:cover; border-radius:12px; }\r\n\r\n\/* \u0442\u043e\u0447\u043a\u0438 \u2014 \u0432 \u043f\u043e\u0442\u043e\u043a\u0435, \u043d\u0435 \u0440\u0435\u0436\u0443\u0442\u0441\u044f *\/\r\n.da-album .dots{ display:flex; justify-content:center; gap:8px; margin-top:10px; padding:0 0 12px; }\r\n.da-album .dot{\r\n  width:10px; height:10px; border-radius:50%;\r\n  background:var(--tone-200); border:1px solid rgba(0,0,0,.10); cursor:pointer;\r\n}\r\n.da-album .dot.is-active{ background:var(--da-primary-strong, var(--tone-600)); border-color:var(--da-primary-strong, var(--tone-600)); }\r\n\r\n.wp-site-blocks{ overflow-x:clip; }\r\n\r\n\r\n\/* \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0448\u043a\u0435 (\u0430\u043b\u044c\u0431\u043e\u043c) *\/\r\n.da-album-zz .zz-title{\r\n  font-size: 1rem;      \/* \u043a\u0430\u043a \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c *\/\r\n  line-height: 1.15;\r\n  font-weight: 700;\r\n}\r\n\r\n\/* \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0448\u044c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0440 \u041d\u0415 \u0437\u0430\u0432\u0438\u0441\u0435\u043b \u043e\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044f \u0448\u0440\u0438\u0444\u0442\u0430 \u2014 \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439 px-\u0432\u0435\u0440\u0441\u0438\u044e *\/\r\n\/\/ .da-album-zz .zz-title{ font-size: 16px; }\r\n\r\n\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n  const root = document.querySelector('.da-album-zz'); if(!root) return;\r\n\r\n  \/* ISO-\u043a\u043e\u0434 \u043f\u043e URL *\/\r\n  const seg=(location.pathname.replace(\/^\\\/+\/,'').split('\/')[0]||'').toLowerCase();\r\n  const known={int:1,kz:1,kg:1,uz:1,tm:1,tj:1,mn:1,cn:1,ru:1,af:1,in:1,pk:1,ir:1};\r\n  const code=known[seg]?seg:'int';\r\nconst T = ({\r\n  int:{t:'Photo album',            a:'All photos:'},\r\n\r\n  \/\/ \u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d (\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439)\r\n  kz :{t:'\u0424\u043e\u0442\u043e\u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440 \u0430\u043b\u044c\u0431\u043e\u043c\u044b',   a:'\u0411\u0430\u0440\u043b\u044b\u049b \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440:'},\r\n\r\n  \/\/ \u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d (\u043a\u044b\u0440\u0433\u044b\u0437\u0441\u043a\u0438\u0439)\r\n  kg :{t:'\u0421\u04af\u0440\u04e9\u0442 \u0430\u043b\u044c\u0431\u043e\u043c\u0443',          a:'\u0411\u0430\u0440\u0434\u044b\u043a \u0441\u04af\u0440\u04e9\u0442\u0442\u04e9\u0440:'},\r\n\r\n  \/\/ \u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d (\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439)\r\n  uz :{t:'Foto albom',             a:'Barcha suratlar:'},\r\n\r\n  \/\/ \u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d (\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438\u0439)\r\n  tm :{t:'Surat albomy',           a:'Jemi surat:'},\r\n\r\n  \/\/ \u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d (\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439)\r\n  tj :{t:'\u0410\u043b\u044c\u0431\u043e\u043c\u0438 \u0430\u043a\u0441',            a:'\u04b2\u0430\u043c\u0430 \u0430\u043a\u0441\u04b3\u043e:'},\r\n\r\n  \/\/ \u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f (\u043c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0438\u0439)\r\n  mn :{t:'\u0417\u0443\u0440\u0433\u0438\u0439\u043d \u0446\u043e\u043c\u043e\u0433',          a:'\u041d\u0438\u0439\u0442 \u0437\u0443\u0440\u0430\u0433:'},\r\n\r\n  \/\/ \u041a\u041d\u0420 (\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439)\r\n  cn :{t:'\u76f8\u518c',                    a:'\u5168\u90e8\u7167\u7247\uff1a'},\r\n\r\n  \/\/ \u0420\u043e\u0441\u0441\u0438\u044f (\u0440\u0443\u0441\u0441\u043a\u0438\u0439)\r\n  ru :{t:'\u0424\u043e\u0442\u043e \u0430\u043b\u044c\u0431\u043e\u043c',            a:'\u0412\u0441\u0435\u0433\u043e \u0444\u043e\u0442\u043e:'},\r\n\r\n  \/\/ \u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d (\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 \u0434\u0430\u0440\u0438\/\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u043e\u043c \u043a\u0430\u043a \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442)\r\n  af :{t:'\u0622\u0644\u0628\u0648\u0645 \u0639\u06a9\u0633',              a:'\u062a\u0645\u0627\u0645 \u0639\u06a9\u0633\u200c\u0647\u0627:'},\r\n\r\n  \/\/ \u0418\u043d\u0434\u0438\u044f (\u0445\u0438\u043d\u0434\u0438)\r\n  in :{t:'\u092b\u093c\u094b\u091f\u094b \u090f\u0932\u092c\u092e',            a:'\u0915\u0941\u0932 \u092b\u093c\u094b\u091f\u094b:'},\r\n\r\n  \/\/ \u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d (\u0443\u0440\u0434\u0443)\r\n  pk :{t:'\u0641\u0648\u0679\u0648 \u0627\u0644\u0628\u0645',              a:'\u06a9\u0644 \u062a\u0635\u0627\u0648\u06cc\u0631:'},\r\n\r\n  \/\/ \u0418\u0440\u0430\u043d (\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439)\r\n  ir :{t:'\u0622\u0644\u0628\u0648\u0645 \u0639\u06a9\u0633',              a:'\u0647\u0645\u0647\u0654 \u0639\u06a9\u0633\u200c\u0647\u0627:'}\r\n})[code] || {t:'Photo album', a:'All photos:'};\r\nif (['af','pk','ir'].includes(code)) {\r\n  document.querySelector('.da-album-zz')?.setAttribute('dir','rtl');\r\n}\r\n\r\n  \/* \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u044f\u0437\u044b\u043a\u0430 + \u043f\u0443\u0442\u044c \u043a \u0430\u043b\u044c\u0431\u043e\u043c\u0443 *\/\r\n  const langBase = (code==='int') ? '\/' : `\/${code}\/`;\r\n  const albumURL = `${langBase}home\/album\/`;\r\n\r\n  \/* \u0422\u0435\u043a\u0441\u0442\u044b \u0438 \u0441\u0441\u044b\u043b\u043a\u0438 *\/\r\n  const title=root.querySelector('.zz-title'); title.textContent=T.t; title.href=albumURL;\r\n  const copy =root.querySelector('.zz-copy');  copy.href=albumURL;\r\n  root.querySelector('.zz-copy .label').textContent=T.a;\r\n\r\n  \/* \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b *\/\r\n  const base =(root.getAttribute('data-root')||'\/wp-content\/uploads\/album\/').replace(\/\\\/+$\/,'')+'\/';\r\n  const limit=Math.max(1, parseInt(root.getAttribute('data-limit'),10)||7);\r\n  const delay=Math.max(1500, parseInt(root.getAttribute('data-autoplay'),10)||5200);\r\n\r\n  const track=root.querySelector('.da-album .track');\r\n  const dots =root.querySelector('.da-album .dots');\r\n  const totalEl=root.querySelector('.zz-copy .count');\r\n\r\n  \/* \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 (manifest.json \u0438\u043b\u0438 album-index.json; \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u043b\u0438 {files|images}) *\/\r\n  async function loadList(){\r\n    const candidates=['manifest.json','album-index.json'];\r\n    for(const name of candidates){\r\n      try{\r\n        const r=await fetch(base+name,{cache:'no-store'}); if(!r.ok) continue;\r\n        const j=await r.json();\r\n        const arr = Array.isArray(j) ? j : (j.files || j.images || []);\r\n        if(Array.isArray(arr) && arr.length) return arr.map(String);\r\n      }catch(e){}\r\n    }\r\n    return [];\r\n  }\r\n  const fullURL = n => \/^https?:|^\\\/\/.test(n) ? n : (base+n);\r\n\r\n  \/* \u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 *\/\r\n  function build(urls){\r\n    const lastN = urls.slice(-limit);                \/\/ \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 N\r\n    let idx = lastN.length ? lastN.length-1 : 0;     \/\/ \u0441\u0442\u0430\u0440\u0442 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 (\u043d\u043e\u0432\u0435\u0439\u0448\u0435\u0435)\r\n\r\n    track.innerHTML=''; dots.innerHTML='';\r\n    lastN.forEach((u,i)=>{\r\n      const s=document.createElement('div'); s.className='slide';\r\n      const im=new Image(); im.loading='lazy'; im.decoding='async'; im.src=u; im.alt='album photo '+(i+1);\r\n      s.appendChild(im); track.appendChild(s);\r\n\r\n      const d=document.createElement('button'); d.type='button'; d.className='dot';\r\n      d.setAttribute('aria-label','Go to slide '+(i+1));\r\n      d.addEventListener('click',()=>{ idx=i; sync(true); });\r\n      dots.appendChild(d);\r\n    });\r\n\r\n    const dotEls=[...dots.children];\r\n    function sync(restartTimer){\r\n      track.style.transform='translateX('+(-idx*100)+'%)';\r\n      dotEls.forEach((d,i)=> d.classList.toggle('is-active', i===idx));\r\n      if(restartTimer){ restart(); }\r\n    }\r\n    function next(){ idx=(idx+1)%lastN.length; sync(false); }\r\n\r\n    let timer=null;\r\n    function restart(){ if(timer) clearInterval(timer); if(lastN.length>1) timer=setInterval(next, delay); }\r\n\r\n    \/\/ \u0441\u0432\u0430\u0439\u043f\r\n    let startX=null, pid=null;\r\n    track.addEventListener('pointerdown', e=>{ startX=e.clientX; pid=e.pointerId; track.setPointerCapture(pid); });\r\n    track.addEventListener('pointerup', e=>{\r\n      if(startX==null) return;\r\n      const dx=e.clientX-startX;\r\n      if(Math.abs(dx)>40){ idx = dx<0 ? (idx+1)%lastN.length : (idx-1+lastN.length)%lastN.length; sync(true); }\r\n      startX=null; try{ track.releasePointerCapture(pid); }catch(_){}\r\n    });\r\n\r\n    sync(false); restart();\r\n  }\r\n\r\n  loadList().then(list=>{\r\n    totalEl.textContent=String(list.length||0);\r\n    if(!list.length){ root.style.display='none'; return; }\r\n    build(list.map(fullURL));\r\n  });\r\n});\r\n<\/script>\n\n\n\n<section class=\"da-homechips\" aria-label=\"DA quick navigation\">\n  <div class=\"da-homechips__wrap\">\n    <div class=\"da-homechips__row\" id=\"da-homechips-row\" role=\"navigation\" aria-label=\"Site pages\"><\/div>\n    <div class=\"da-homechips__hint\" id=\"da-homechips-hint\" aria-live=\"polite\"><\/div>\n  <\/div>\n<\/section>\n\n<style>\n  .da-homechips{\n    --bg: var(--tone-100);\n    --panel: var(--tone-200);\n    --accent: var(--tone-600);\n    --text: var(--tone-900);\n    --on: var(--on-600);\n    color: var(--text);\n  }\n  .da-homechips__wrap{\n    max-width: 1120px;\n    margin: 0 auto;\n    padding: 10px 16px 8px;\n  }\n  .da-homechips__row{\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    align-items: center;\n  }\n  .da-chip{\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    padding: 7px 10px;\n    border-radius: 999px;\n    text-decoration: none;\n    background: var(--panel);\n    color: var(--text);\n    border: 1px solid rgba(0,0,0,0.06);\n    font-weight: 800;\n  font-size: 13px;\n    line-height: 1;\n    box-shadow: 0 8px 14px rgba(0,0,0,0.06);\n    transition: transform 120ms ease, background 120ms ease, color 120ms ease, border-color 120ms ease;\n    user-select: none;\n    -webkit-tap-highlight-color: transparent;\n  }\n\n  .da-chip:hover,\n  .da-chip:focus{\n    background: var(--accent);\n    color: var(--on);\n    border-color: rgba(0,0,0,0.10);\n    transform: translateY(-1px);\n    outline: none;\n  }\n  .da-chip:active{\n    transform: translateY(0px);\n  }\n\n  .da-chip__dot{\n    width: 8px;\n    height: 8px;\n    border-radius: 999px;\n    background: var(--accent);\n    opacity: 0.9;\n    flex: 0 0 8px;\n  }\n\n  .da-chip:hover .da-chip__dot,\n  .da-chip:focus .da-chip__dot{\n    background: var(--on);\n    opacity: 0.95;\n  }\n\n  .da-homechips__hint{\n    margin-top: 8px;\n    font-size: 12px;\n    opacity: 0.75;\n  }\n\n  \/* RTL *\/\n  .da-homechips[dir=\"rtl\"] .da-homechips__wrap{ direction: rtl; }\n<\/style>\n\n<script>\n(function(){\n  function da_getIsoFromPath(){\n    var p = \"\/\";\n    if (window.location){\n      if (window.location.pathname){\n        p = String(window.location.pathname);\n      }\n    }\n    var parts = p.split(\"\/\");\n    var seg = \"\";\n    if (parts){\n      if (parts.length > 1){\n        seg = String(parts[1] ? parts[1] : \"\").toLowerCase();\n      }\n    }\n    var known = [\"int\",\"ru\",\"kz\",\"kg\",\"uz\",\"tm\",\"tj\",\"mn\",\"cn\",\"af\",\"in\",\"pk\",\"ir\"];\n    var i = 0;\n    for (i = 0; i < known.length; i = i + 1){\n      if (seg === known[i]) { return seg; }\n    }\n    return \"int\";\n  }\n\n  function da_isRtlIso(iso){\n    if (iso === \"af\") { return true; }\n    if (iso === \"pk\") { return true; }\n    if (iso === \"ir\") { return true; }\n    return false;\n  }\n\n  function da_restBaseForIso(iso){\n    if (iso === \"int\") { return \"\"; }\n    return \"\/\" + iso;\n  }\n\n  function da_decodeHtml(html){\n    var div = document.createElement(\"div\");\n    div.innerHTML = String(html ? html : \"\");\n    return String(div.textContent ? div.textContent : \"\");\n  }\n\n  function da_getCurrentUrlNoHash(){\n    var u = \"\";\n    if (window.location){\n      if (window.location.href){\n        u = String(window.location.href);\n      }\n    }\n    var idx = u.indexOf(\"#\");\n    if (idx >= 0){ u = u.substring(0, idx); }\n    return u;\n  }\n\n  var iso = da_getIsoFromPath();\n\n  var root = document.querySelector(\".da-homechips\");\n  if (root){\n    if (da_isRtlIso(iso)) { root.setAttribute(\"dir\",\"rtl\"); }\n    else { root.setAttribute(\"dir\",\"ltr\"); }\n  }\n\n  var row = document.getElementById(\"da-homechips-row\");\n  var hint = document.getElementById(\"da-homechips-hint\");\n\n  var restBase = da_restBaseForIso(iso);\n\n  \/* \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a: \u0431\u0435\u0440\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u043e\u043b\u044f *\/\nvar endpointBase = restBase + \"\/wp-json\/wp\/v2\/pages?per_page=100&status=publish&_fields=title,link,menu_order&page=\";\n\n  var all = [];\n\n  function fetchPage(pageNum){\n    var url = endpointBase + String(pageNum);\n    return fetch(url, { credentials: \"same-origin\" }).then(function(resp){\n      if (!resp){ return Promise.reject(new Error(\"No response\")); }\n      if (!resp.ok){ return Promise.reject(new Error(\"HTTP \" + resp.status)); }\n\n      return resp.json().then(function(data){\n        var totalPages = 1;\n        try{\n          var tp = resp.headers.get(\"X-WP-TotalPages\");\n          if (tp){ totalPages = parseInt(tp, 10); }\n        }catch(e){ totalPages = 1; }\n        return { data: data, totalPages: totalPages };\n      });\n    });\n  }\n\n  function pushArray(arr){\n    if (arr){\n      if (arr.length){\n        var i = 0;\n        for (i = 0; i < arr.length; i = i + 1){\n          all.push(arr[i]);\n        }\n      }\n    }\n  }\n\n  function loadAllPages(){\n    return fetchPage(1).then(function(first){\n      if (first){\n        if (first.data){ pushArray(first.data); }\n      }\n\n      var tp = 1;\n      if (first){\n        if (first.totalPages){ tp = first.totalPages; }\n      }\n\n      function next(n){\n        if (n > tp){ return Promise.resolve(true); }\n        return fetchPage(n).then(function(pack){\n          if (pack){\n            if (pack.data){ pushArray(pack.data); }\n          }\n          return next(n + 1);\n        });\n      }\n\n      if (tp > 1){ return next(2); }\n      return Promise.resolve(true);\n    });\n  }\n\n  function getMenuOrder(p){\n    var mo = 0;\n    if (p){\n      if (typeof p.menu_order === \"number\"){ mo = p.menu_order; }\n      else{\n        if (p.menu_order){ mo = parseInt(p.menu_order, 10); }\n      }\n    }\n    if (isNaN(mo)){ mo = 0; }\n    return mo;\n  }\n\n  function getTitleLower(p){\n    var t = \"\";\n    if (p){\n      if (p.title){\n        if (p.title.rendered){\n          t = da_decodeHtml(p.title.rendered).toLowerCase();\n        }\n      }\n    }\n    return t;\n  }\n\n  function renderChips(){\n    if (!row){ return; }\n\n    var currentUrl = da_getCurrentUrlNoHash();\n\n    var filtered = [];\n    var i = 0;\n\n    for (i = 0; i < all.length; i = i + 1){\n      var p = all[i];\n      var mo = getMenuOrder(p);\n\n      \/* \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0441 Order < 50 *\/\n      if (mo < 50){\n        filtered.push(p);\n      }\n    }\n\n    filtered.sort(function(a,b){\n      var ao = getMenuOrder(a);\n      var bo = getMenuOrder(b);\n\n      \/* DESC \u043f\u043e Order (\u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u0432\u044b\u0448\u0435) *\/\n      if (bo > ao){ return 1; }\n      if (bo < ao){ return -1; }\n\n      var at = getTitleLower(a);\n      var bt = getTitleLower(b);\n\n      if (at > bt){ return 1; }\n      if (at < bt){ return -1; }\n      return 0;\n    });\n\n    row.innerHTML = \"\";\n\n    var made = 0;\n\n    for (i = 0; i < filtered.length; i = i + 1){\n      var page = filtered[i];\n      if (!page){ continue; }\n      if (!page.link){ continue; }\n\n      var link = String(page.link);\n      var linkNoHash = link;\n      var hidx = linkNoHash.indexOf(\"#\");\n      if (hidx >= 0){ linkNoHash = linkNoHash.substring(0, hidx); }\n\n      \/* \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0447\u0438\u043f \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b *\/\n      if (currentUrl === linkNoHash){ continue; }\n\n      var title = \"\";\n      if (page.title){\n        if (page.title.rendered){\n          title = da_decodeHtml(page.title.rendered);\n        }\n      }\n      if (title === \"\"){ continue; }\n\n      var aEl = document.createElement(\"a\");\n      aEl.className = \"da-chip\";\n      aEl.href = link;\n\n      var dot = document.createElement(\"span\");\n      dot.className = \"da-chip__dot\";\n      aEl.appendChild(dot);\n\n      var tEl = document.createElement(\"span\");\n      tEl.textContent = title;\n      aEl.appendChild(tEl);\n\n      row.appendChild(aEl);\n      made = made + 1;\n    }\n\n    if (hint){\n      hint.textContent = \"\";\n      if (made === 0){ hint.textContent = \"\"; }\n    }\n  }\n\n  if (hint){ hint.textContent = \"\"; }\n\n  loadAllPages().then(function(){\n    renderChips();\n  }).catch(function(){\n    if (hint){ hint.textContent = \"Navigation chips are temporarily unavailable.\"; }\n  });\n})();\n<\/script>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"359\" src=\"https:\/\/dastarkhan.asia\/uz\/wp-content\/uploads\/sites\/5\/2025\/12\/Promo-example-04-1024x359.jpg\" alt=\"\" class=\"wp-image-103\" srcset=\"https:\/\/dastarkhan.asia\/uz\/wp-content\/uploads\/sites\/5\/2025\/12\/Promo-example-04-1024x359.jpg 1024w, https:\/\/dastarkhan.asia\/uz\/wp-content\/uploads\/sites\/5\/2025\/12\/Promo-example-04-300x105.jpg 300w, https:\/\/dastarkhan.asia\/uz\/wp-content\/uploads\/sites\/5\/2025\/12\/Promo-example-04-768x269.jpg 768w, https:\/\/dastarkhan.asia\/uz\/wp-content\/uploads\/sites\/5\/2025\/12\/Promo-example-04.jpg 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Key sections All sections: 4 Latest updates All posts: 0 \u2605 \u2013 Photo album All photos:0<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":50,"comment_status":"closed","ping_status":"closed","template":"main","meta":{"footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":5,"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/pages\/6\/revisions"}],"predecessor-version":[{"id":109,"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/pages\/6\/revisions\/109"}],"wp:attachment":[{"href":"https:\/\/dastarkhan.asia\/uz\/wp-json\/wp\/v2\/media?parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}