{"id":29096,"date":"2026-02-17T10:08:19","date_gmt":"2026-02-17T10:08:19","guid":{"rendered":"https:\/\/flori.mekko.md\/?page_id=29096"},"modified":"2026-02-17T10:31:22","modified_gmt":"2026-02-17T10:31:22","slug":"catalog","status":"publish","type":"page","link":"https:\/\/flori.mekko.md\/ru\/catalog\/","title":{"rendered":"\u041a\u0430\u0442\u0430\u043b\u043e\u0433"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"29096\" class=\"elementor elementor-29096\">\n\t\t\t\t<div class=\"elementor-element elementor-element-005fbc6 e-con-full wd-section-stretch-content e-flex e-con e-parent\" data-id=\"005fbc6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31f8360 elementor-widget elementor-widget-html\" data-id=\"31f8360\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ===========================\nTSVIT \u2014 Catalog Buchete (RO) \u2014 v2 (FIX)\n- CTA pe aceea\u0219i linie (card = flex-col + spacer)\n- Filtre aliniate perfect + \u201cpill\u201d corect (select cu chevron, input number fara spinere)\n- Design coerent cu blocul (shadow, radius, spacing)\nNamespace: tsvcat-\n=========================== -->\n<section id=\"tsvcat\" class=\"tsvcat-scope\" aria-label=\"Catalog buchete\">\n  <style>\n    #tsvcat.tsvcat-scope{\n      --bg:#fbf6f2;\n      --ink:#1f232b;\n      --mut:#6c717b;\n      --line:rgba(31,35,43,.10);\n      --oval:rgba(242,211,200,.35);\n      --shadow: 0 14px 40px rgba(0,0,0,.08);\n      --r:18px;\n      --w:min(1240px, calc(100% - 32px));\n      --tsvcat-top: 110px; \/* spatiu pentru header sticky *\/\n\n      background: var(--bg);\n      color: var(--ink);\n      padding: calc(var(--tsvcat-top) + 18px) 0 clamp(42px, 5vw, 78px);\n    }\n    #tsvcat *{ box-sizing:border-box; }\n    #tsvcat a{ color:inherit; text-decoration:none; }\n    #tsvcat img{ display:block; width:100%; height:auto; }\n    #tsvcat button, #tsvcat input, #tsvcat select{ font: inherit; color: inherit; }\n    #tsvcat :focus-visible{ outline: 2px solid rgba(31,35,43,.18); outline-offset: 3px; border-radius: 999px; }\n\n    #tsvcat .tsvcat-wrap{ width:var(--w); margin:0 auto; }\n\n    \/* header *\/\n    #tsvcat .tsvcat-head{\n      display:flex; align-items:flex-start; justify-content:space-between; gap:16px;\n      margin-bottom: clamp(18px, 2.4vw, 28px);\n    }\n    #tsvcat .tsvcat-title{\n      margin:0; font-weight:650; letter-spacing:.01em;\n      font-size: clamp(26px, 3.2vw, 44px);\n      line-height:1.1;\n    }\n    #tsvcat .tsvcat-sub{\n      margin:8px 0 0; color:var(--mut);\n      font-size: 14px; line-height:1.7; max-width: 72ch;\n    }\n    #tsvcat .tsvcat-back{\n      flex:0 0 auto;\n      display:inline-flex; align-items:center; justify-content:center;\n      padding: 12px 16px;\n      border-radius: 999px;\n      border:1px solid var(--line);\n      background: rgba(255,255,255,.72);\n      backdrop-filter: blur(6px);\n      box-shadow: var(--shadow);\n      font-size: 13px; font-weight: 650; letter-spacing:.01em;\n      cursor:pointer;\n      transition: transform .15s ease, background .15s ease;\n      white-space:nowrap;\n    }\n    #tsvcat .tsvcat-back:hover{ transform: translateY(-1px); background: rgba(255,255,255,.92); }\n    #tsvcat .tsvcat-back:active{ transform: translateY(0px) scale(.99); }\n\n    \/* ===== Filters: clean pills, aligned ===== *\/\n    #tsvcat .tsvcat-controls{\n      display:grid;\n      grid-template-columns: 1.55fr 1.05fr .7fr .7fr auto;\n      gap: 14px;\n      align-items:center;\n      margin-top: 18px;\n      margin-bottom: 12px;\n    }\n\n    #tsvcat .tsvcat-pill{\n      width:100%;\n      height: 52px;\n      padding: 0 18px;\n      border-radius: 999px;\n      border: 1px solid var(--line);\n      background: rgba(255,255,255,.78);\n      box-shadow: var(--shadow);\n      backdrop-filter: blur(6px);\n      outline: none;\n      display:flex;\n      align-items:center;\n      line-height: 52px;\n      appearance: none;\n      -webkit-appearance: none;\n    }\n    #tsvcat .tsvcat-pill::placeholder{ color: rgba(108,113,123,.85); }\n\n    \/* Select wrapper cu chevron, ca sa nu fie \u201cstramb\u201d *\/\n    #tsvcat .tsvcat-selectWrap{\n      position:relative;\n      width:100%;\n    }\n    #tsvcat .tsvcat-selectWrap select.tsvcat-pill{\n      padding-right: 46px; \/* loc pentru chevron *\/\n      cursor:pointer;\n    }\n    #tsvcat .tsvcat-selectWrap::after{\n      content:\"\";\n      position:absolute;\n      right: 18px;\n      top: 50%;\n      width: 10px;\n      height: 10px;\n      border-right: 2px solid rgba(31,35,43,.55);\n      border-bottom: 2px solid rgba(31,35,43,.55);\n      transform: translateY(-65%) rotate(45deg);\n      pointer-events:none;\n      opacity:.75;\n    }\n\n    \/* Numar fara spinere *\/\n    #tsvcat input[type=number]::-webkit-outer-spin-button,\n    #tsvcat input[type=number]::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }\n    #tsvcat input[type=number]{ -moz-appearance: textfield; }\n\n    #tsvcat .tsvcat-btn{\n      height: 52px;\n      padding: 0 18px;\n      border-radius: 999px;\n      border: 1px solid var(--line);\n      background: rgba(255,255,255,.88);\n      box-shadow: var(--shadow);\n      backdrop-filter: blur(6px);\n      font-size: 13px;\n      font-weight: 800;\n      letter-spacing:.06em;\n      text-transform: uppercase;\n      cursor:pointer;\n      transition: transform .15s ease, background .15s ease;\n      white-space:nowrap;\n    }\n    #tsvcat .tsvcat-btn:hover{ transform: translateY(-1px); background: rgba(255,255,255,.98); }\n    #tsvcat .tsvcat-btn:active{ transform: translateY(0px) scale(.99); }\n\n    #tsvcat .tsvcat-meta{ color: var(--mut); font-size: 13px; margin: 10px 0 18px; }\n\n    \/* ===== Grid ===== *\/\n    #tsvcat .tsvcat-grid{\n      display:grid;\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: clamp(18px, 2.6vw, 34px);\n      align-items:stretch; \/* IMPORTANT: stretch pe rand *\/\n    }\n\n    \/* ===== Card: flex col -> CTA pe aceeasi linie ===== *\/\n    #tsvcat .tsvcat-item{\n      position:relative;\n      text-align:center;\n      padding: 8px 6px 16px;\n      display:flex;\n      flex-direction:column;\n      height:100%;\n    }\n\n    #tsvcat .tsvcat-visual{\n      position:relative;\n      width:100%;\n      display:grid;\n      place-items:center;\n      margin: 0 auto 14px;\n      min-height: 260px;\n      flex:0 0 auto;\n    }\n    #tsvcat .tsvcat-oval{\n      position:absolute;\n      width: min(260px, 78%);\n      height: min(320px, 80%);\n      background: var(--oval);\n      border-radius: 999px;\n      transform: translateY(16px);\n      z-index:0;\n    }\n    #tsvcat .tsvcat-img{\n      position:relative;\n      z-index:1;\n      width: clamp(170px, 17vw, 240px);\n      filter: drop-shadow(0 18px 35px rgba(0,0,0,.14));\n      transform: translateY(-6px);\n      user-select:none;\n      -webkit-user-drag:none;\n    }\n\n    \/* FIX: titlu cu inaltime fixa (2 linii) *\/\n    #tsvcat .tsvcat-name{\n      margin: 0 auto;\n      font-size: 16px;\n      line-height: 1.35;\n      letter-spacing:.01em;\n      max-width: 28ch;\n      color: var(--ink);\n      font-weight: 550;\n      min-height: calc(1.35em * 2); \/* exact 2 randuri *\/\n      display:-webkit-box;\n      -webkit-line-clamp: 2;\n      -webkit-box-orient: vertical;\n      overflow:hidden;\n      flex:0 0 auto;\n    }\n\n    \/* pret cu inaltime fixa *\/\n    #tsvcat .tsvcat-price{\n      margin-top: 10px;\n      color: var(--mut);\n      font-size: 14px;\n      line-height: 1.2;\n      display:flex;\n      justify-content:center;\n      gap:10px;\n      align-items:baseline;\n      flex-wrap:wrap;\n      min-height: 22px;\n      flex:0 0 auto;\n    }\n    #tsvcat .tsvcat-price del{ opacity:.65; }\n    #tsvcat .tsvcat-price ins{\n      text-decoration:none;\n      color: var(--ink);\n      background: rgba(242,211,200,.35);\n      padding: 2px 6px;\n      border-radius: 8px;\n    }\n\n    \/* spacer => impinge CTA jos *\/\n    #tsvcat .tsvcat-spacer{ flex:1 1 auto; }\n\n    #tsvcat .tsvcat-badge{\n      position:absolute;\n      top: 10px;\n      right: 12px;\n      width: 44px;\n      height: 44px;\n      border-radius: 999px;\n      border: 2px solid rgba(31,35,43,.25);\n      background: rgba(255,255,255,.65);\n      backdrop-filter: blur(6px);\n      display:grid;\n      place-items:center;\n      font-size: 12px;\n      color: var(--ink);\n      box-shadow: var(--shadow);\n      z-index:3;\n    }\n\n    #tsvcat .tsvcat-cta{\n      margin-top: 14px;\n      display:flex;\n      justify-content:center;\n      flex:0 0 auto;\n    }\n    #tsvcat .tsvcat-cart{\n      display:inline-flex;\n      align-items:center;\n      justify-content:center;\n      height: 46px;\n      padding: 0 18px;\n      border-radius: 999px;\n      border: 1px solid var(--line);\n      background: rgba(255,255,255,.72);\n      backdrop-filter: blur(6px);\n      box-shadow: var(--shadow);\n      font-size: 13px;\n      font-weight: 800;\n      letter-spacing:.06em;\n      text-transform: uppercase;\n      cursor:pointer;\n      transition: transform .15s ease, background .15s ease;\n      white-space:nowrap;\n    }\n    #tsvcat .tsvcat-cart:hover{ transform: translateY(-1px); background: rgba(255,255,255,.92); }\n    #tsvcat .tsvcat-cart:active{ transform: translateY(0px) scale(.99); }\n\n    #tsvcat .tsvcat-note{ color: var(--mut); font-size: 13px; margin-top: 14px; }\n    #tsvcat .tsvcat-skel{ opacity:.55; filter: grayscale(15%); }\n\n    \/* responsive *\/\n    @media (max-width: 1024px){\n      #tsvcat .tsvcat-controls{ grid-template-columns: 1fr 1fr 1fr 1fr; }\n      #tsvcat .tsvcat-controls .tsvcat-btn{ grid-column: 1 \/ -1; }\n      #tsvcat .tsvcat-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }\n      #tsvcat .tsvcat-visual{ min-height: 250px; }\n      #tsvcat .tsvcat-img{ width: clamp(180px, 34vw, 260px); }\n    }\n    @media (max-width: 560px){\n      #tsvcat.tsvcat-scope{ --tsvcat-top: 96px; }\n      #tsvcat .tsvcat-grid{ grid-template-columns: 1fr; }\n      #tsvcat .tsvcat-controls{ grid-template-columns: 1fr; }\n      #tsvcat .tsvcat-head{ flex-direction:column; align-items:flex-start; }\n      #tsvcat .tsvcat-visual{ min-height: 280px; }\n      #tsvcat .tsvcat-img{ width: min(270px, 74vw); }\n    }\n  <\/style>\n\n  <div class=\"tsvcat-wrap\">\n    <header class=\"tsvcat-head\">\n      <div>\n        <h1 class=\"tsvcat-title\">Catalog buchete<\/h1>\n        <p class=\"tsvcat-sub\">Alege rapid: caut\u0103 dup\u0103 denumire, sorteaz\u0103 \u0219i filtreaz\u0103 dup\u0103 pre\u021b. Adaug\u0103 \u00een co\u0219 direct din list\u0103.<\/p>\n      <\/div>\n      <a class=\"tsvcat-back\" href=\"\/\" aria-label=\"\u00cenapoi\">\u00cenapoi<\/a>\n    <\/header>\n\n    <div class=\"tsvcat-controls\" role=\"region\" aria-label=\"Filtre catalog\">\n      <input class=\"tsvcat-pill\" type=\"search\" data-q placeholder=\"Caut\u0103 buchet\u2026 (ex: hortensie)\" aria-label=\"Caut\u0103 buchet\" \/>\n\n      <div class=\"tsvcat-selectWrap\">\n        <select class=\"tsvcat-pill\" data-sort aria-label=\"Sorteaz\u0103\">\n          <option value=\"pop\">Popularitate<\/option>\n          <option value=\"price_asc\">Pre\u021b cresc\u0103tor<\/option>\n          <option value=\"price_desc\">Pre\u021b descresc\u0103tor<\/option>\n          <option value=\"name_asc\">Nume A\u2013Z<\/option>\n          <option value=\"name_desc\">Nume Z\u2013A<\/option>\n        <\/select>\n      <\/div>\n\n      <input class=\"tsvcat-pill\" type=\"number\" inputmode=\"numeric\" data-min placeholder=\"Pre\u021b min\" aria-label=\"Pre\u021b minim\" \/>\n      <input class=\"tsvcat-pill\" type=\"number\" inputmode=\"numeric\" data-max placeholder=\"Pre\u021b max\" aria-label=\"Pre\u021b maxim\" \/>\n      <button class=\"tsvcat-btn\" type=\"button\" data-apply>Aplic\u0103 filtrele<\/button>\n    <\/div>\n\n    <div class=\"tsvcat-meta\" data-meta aria-live=\"polite\"><\/div>\n    <div class=\"tsvcat-grid\" data-grid aria-live=\"polite\"><\/div>\n    <p class=\"tsvcat-note\" data-note style=\"display:none;\"><\/p>\n  <\/div>\n\n  <script>\n    (function(){\n      const root = document.getElementById('tsvcat');\n      if(!root) return;\n\n      const grid = root.querySelector('[data-grid]');\n      const note = root.querySelector('[data-note]');\n      const meta = root.querySelector('[data-meta]');\n\n      const qEl = root.querySelector('[data-q]');\n      const sortEl = root.querySelector('[data-sort]');\n      const minEl = root.querySelector('[data-min]');\n      const maxEl = root.querySelector('[data-max]');\n      const applyBtn = root.querySelector('[data-apply]');\n\n      if(!grid) return;\n\n      function formatMoney(minorUnits, currencyCode, minorUnit){\n        try{\n          const value = Number(minorUnits) \/ Math.pow(10, Number(minorUnit || 2));\n          return new Intl.NumberFormat('ro-RO', {\n            style: 'currency',\n            currency: currencyCode || 'MDL',\n            minimumFractionDigits: Number(minorUnit || 2),\n            maximumFractionDigits: Number(minorUnit || 2)\n          }).format(value);\n        }catch(e){\n          const value = (Number(minorUnits) \/ 100).toFixed(2);\n          return value + ' ' + (currencyCode || 'MDL');\n        }\n      }\n\n      function moneyFromStore(p){\n        const html = p && p.prices && p.prices.price_html ? String(p.prices.price_html).trim() : '';\n        if(html) return html;\n\n        if(!p || !p.prices) return '';\n\n        const code = p.prices.currency_code || 'MDL';\n        const mu = p.prices.currency_minor_unit ?? 2;\n\n        const cur  = p.prices.price;\n        const reg  = p.prices.regular_price;\n        const sale = p.prices.sale_price;\n\n        const curTxt  = formatMoney(cur, code, mu);\n        const regTxt  = reg ? formatMoney(reg, code, mu) : '';\n        const saleTxt = sale ? formatMoney(sale, code, mu) : '';\n\n        if(reg && sale && Number(reg) > Number(sale)){\n          return `<del>${regTxt}<\/del> <ins>${saleTxt}<\/ins>`;\n        }\n        return curTxt ? `<span>${curTxt}<\/span>` : '';\n      }\n\n      function percentOff(p){\n        try{\n          const reg = p.prices && p.prices.regular_price ? parseInt(p.prices.regular_price, 10) : null;\n          const cur = p.prices && p.prices.price ? parseInt(p.prices.price, 10) : null;\n          if(!reg || !cur || reg <= cur) return null;\n          return Math.round(((reg - cur) \/ reg) * 100);\n        }catch(e){ return null; }\n      }\n\n      function imgSrc(p){\n        return (p.images && p.images[0] && (p.images[0].src || p.images[0].url)) || '';\n      }\n      function productUrl(p){\n        return p.permalink || '#';\n      }\n\n      function makeCardSkeleton(){\n        const el = document.createElement('article');\n        el.className = 'tsvcat-item tsvcat-skel';\n        el.innerHTML = `\n          <div class=\"tsvcat-visual\">\n            <div class=\"tsvcat-oval\" aria-hidden=\"true\"><\/div>\n          <\/div>\n          <div class=\"tsvcat-name\">Se \u00eencarc\u0103\u2026<\/div>\n          <div class=\"tsvcat-price\"><\/div>\n          <div class=\"tsvcat-spacer\" aria-hidden=\"true\"><\/div>\n          <div class=\"tsvcat-cta\">\n            <span class=\"tsvcat-cart\" aria-disabled=\"true\">Adaug\u0103 \u00een co\u0219<\/span>\n          <\/div>\n        `;\n        return el;\n      }\n\n      function makeCard(p){\n        const id = p.id;\n        const off = percentOff(p);\n        const priceHTML = moneyFromStore(p);\n        const title = (p.name || '').trim() || ('Produs #' + id);\n        const img = imgSrc(p);\n        const url = productUrl(p);\n        const addHref = '?add-to-cart=' + encodeURIComponent(String(id));\n\n        const el = document.createElement('article');\n        el.className = 'tsvcat-item';\n        el.setAttribute('itemscope', '');\n        el.setAttribute('itemtype', 'https:\/\/schema.org\/Product');\n\n        el.innerHTML = `\n          ${off ? `<div class=\"tsvcat-badge\" aria-label=\"Reducere ${off}%\">-${off}%<\/div>` : ``}\n\n          <a class=\"tsvcat-visual\" href=\"${url}\" aria-label=\"${title}\">\n            <div class=\"tsvcat-oval\" aria-hidden=\"true\"><\/div>\n            <img class=\"tsvcat-img\" src=\"${img}\" alt=\"${title}\" loading=\"lazy\" decoding=\"async\" itemprop=\"image\">\n          <\/a>\n\n          <a class=\"tsvcat-name\" href=\"${url}\" itemprop=\"name\">${title}<\/a>\n\n          <div class=\"tsvcat-price\" itemprop=\"offers\" itemscope itemtype=\"https:\/\/schema.org\/Offer\">\n            ${priceHTML || ``}\n          <\/div>\n\n          <div class=\"tsvcat-spacer\" aria-hidden=\"true\"><\/div>\n\n          <div class=\"tsvcat-cta\">\n            <a\n              href=\"${addHref}\"\n              class=\"tsvcat-cart button add_to_cart_button ajax_add_to_cart\"\n              data-quantity=\"1\"\n              data-product_id=\"${id}\"\n              data-product_sku=\"\"\n              aria-label=\"Adaug\u0103 \u00een co\u0219: ${title}\"\n              rel=\"nofollow\"\n            >Adaug\u0103 \u00een co\u0219<\/a>\n          <\/div>\n        `;\n        return el;\n      }\n\n      function listEndpoint(params){\n        const sp = new URLSearchParams();\n        sp.set('per_page', String(params.per_page || 48));\n        sp.set('page', String(params.page || 1));\n        if(params.search) sp.set('search', params.search);\n        if(params.orderby) sp.set('orderby', params.orderby);\n        if(params.order) sp.set('order', params.order);\n        return '\/wp-json\/wc\/store\/products?' + sp.toString();\n      }\n\n      function getPriceMajor(p){\n        try{\n          const mu = p.prices.currency_minor_unit ?? 2;\n          const cur = Number(p.prices.price);\n          return cur \/ Math.pow(10, Number(mu));\n        }catch(e){ return null; }\n      }\n\n      async function loadProducts(){\n        note.style.display = 'none';\n        note.textContent = '';\n        grid.innerHTML = '';\n        for(let i=0;i<8;i++) grid.appendChild(makeCardSkeleton());\n        meta.textContent = 'Se \u00eencarc\u0103 produsele\u2026';\n\n        const search = (qEl && qEl.value ? qEl.value.trim() : '');\n        const sort = (sortEl && sortEl.value ? sortEl.value : 'pop');\n        const min = (minEl && minEl.value ? Number(minEl.value) : null);\n        const max = (maxEl && maxEl.value ? Number(maxEl.value) : null);\n\n        let orderby = 'popularity', order = 'desc';\n        if(sort === 'price_asc'){ orderby = 'price'; order = 'asc'; }\n        if(sort === 'price_desc'){ orderby = 'price'; order = 'desc'; }\n        if(sort === 'name_asc'){ orderby = 'title'; order = 'asc'; }\n        if(sort === 'name_desc'){ orderby = 'title'; order = 'desc'; }\n\n        try{\n          const r = await fetch(listEndpoint({ per_page: 48, page: 1, search, orderby, order }), { credentials: 'same-origin' });\n          if(!r.ok) throw new Error('HTTP ' + r.status);\n          let items = await r.json();\n\n          if(min !== null && Number.isFinite(min)){\n            items = items.filter(p => {\n              const pr = getPriceMajor(p);\n              return pr === null ? true : pr >= min;\n            });\n          }\n          if(max !== null && Number.isFinite(max)){\n            items = items.filter(p => {\n              const pr = getPriceMajor(p);\n              return pr === null ? true : pr <= max;\n            });\n          }\n\n          grid.innerHTML = '';\n          if(!items || !items.length){\n            meta.textContent = '0 produse afi\u0219ate';\n            note.style.display = 'block';\n            note.textContent = 'Nu am g\u0103sit produse pentru filtrele selectate.';\n            return;\n          }\n\n          items.slice(0, 48).forEach(p => grid.appendChild(makeCard(p)));\n          meta.textContent = items.length + ' produse afi\u0219ate';\n        }catch(e){\n          grid.innerHTML = '';\n          meta.textContent = '';\n          note.style.display = 'block';\n          note.textContent = 'Nu pot \u00eenc\u0103rca produsele. Verific\u0103 dac\u0103 Woo Store API este disponibil pe site.';\n        }\n      }\n\n      loadProducts();\n\n      if(applyBtn) applyBtn.addEventListener('click', loadProducts);\n      if(qEl) qEl.addEventListener('keydown', (ev) => { if(ev.key === 'Enter') loadProducts(); });\n    })();\n  <\/script>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Catalog buchete Alege rapid: caut\u0103 dup\u0103 denumire, sorteaz\u0103 \u0219i filtreaz\u0103 dup\u0103 pre\u021b. Adaug\u0103 \u00een co\u0219 direct din list\u0103. \u00cenapoi PopularitatePre\u021b<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-29096","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/pages\/29096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/comments?post=29096"}],"version-history":[{"count":7,"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/pages\/29096\/revisions"}],"predecessor-version":[{"id":29108,"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/pages\/29096\/revisions\/29108"}],"wp:attachment":[{"href":"https:\/\/flori.mekko.md\/ru\/wp-json\/wp\/v2\/media?parent=29096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}