{"id":9517,"date":"2025-10-21T22:44:22","date_gmt":"2025-10-21T22:44:22","guid":{"rendered":"https:\/\/naturaingredientes.com.br\/?page_id=9517"},"modified":"2026-03-03T20:33:09","modified_gmt":"2026-03-03T20:33:09","slug":"portfolio-de-ingredientes","status":"publish","type":"page","link":"https:\/\/naturaingredientes.com.br\/en\/portfolio-de-ingredientes\/","title":{"rendered":"Portf\u00f3lio de Ingredientes"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"9517\" class=\"elementor elementor-9517\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f097ca8 e-con-full e-flex e-con e-parent\" data-id=\"f097ca8\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e6ff37 elementor-widget elementor-widget-heading\" data-id=\"9e6ff37\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Find the ideal ingredient for you<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d808277 e-con-full e-flex e-con e-parent\" data-id=\"d808277\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9f0e3e2 box-width-yes elementor-widget__width-initial animated-fast spaciaz-scrolling-ltr elementor-invisible elementor-widget elementor-widget-spaciaz-slide-scrolling\" data-id=\"9f0e3e2\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;opal-scale-up&quot;}\" data-widget_type=\"spaciaz-slide-scrolling.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <div class=\"elementor-scrolling\">\n                <div class=\"elementor-scrolling-wrapper\">\n                                            <div class=\"elementor-scrolling-inner\">\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-3eace46\">\n                                                <span>portf\u00f3lio<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-9398599\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-18b9ba4\">\n                                                <span>bioingredientes<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-194a249\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"elementor-scrolling-inner\">\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-3eace46\">\n                                                <span>portf\u00f3lio<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-9398599\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-18b9ba4\">\n                                                <span>bioingredientes<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-194a249\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"elementor-scrolling-inner\">\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-3eace46\">\n                                                <span>portf\u00f3lio<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-9398599\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-18b9ba4\">\n                                                <span>bioingredientes<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-194a249\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"elementor-scrolling-inner\">\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-3eace46\">\n                                                <span>portf\u00f3lio<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-9398599\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-18b9ba4\">\n                                                <span>bioingredientes<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-194a249\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                                <div class=\"elementor-scrolling-inner\">\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-3eace46\">\n                                                <span>portf\u00f3lio<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-9398599\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-18b9ba4\">\n                                                <span>bioingredientes<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                            <div class=\"elementor-scrolling-item\">\n                                    <div class=\"elementor-scrolling-item-inner\">\n\n                                        \n                                                                                    <div class=\"scrolling-title elementor-repeater-item-194a249\">\n                                                <span>-<\/span>                                            <\/div>\n                                        \n                                        \n                                    <\/div>\n                                <\/div>\n                                                    <\/div>\n                                        <\/div>\n            <\/div>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3239797 elementor-widget elementor-widget-shortcode\" data-id=\"3239797\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_filtro_ingredientes]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2cd71a2 elementor-grid-4 elementor-widget__width-initial elementor-grid-laptop-4 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"2cd71a2\" data-element_type=\"widget\" data-settings=\"{&quot;template_id&quot;:10382,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;columns&quot;:4,&quot;columns_laptop&quot;:4,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile_extra&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\" role=\"list\">\n\t\t<style id=\"loop-10382\">.elementor-10382 .elementor-element.elementor-element-006438c{--display:flex;--justify-content:flex-end;}.elementor-10382 .elementor-element.elementor-element-006438c .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-2fd9968{border-radius:30px 30px 0px 0px;}.elementor-10382 .elementor-element.elementor-element-2fd9968 .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-2fd9968 img{height:250px;object-fit:cover;object-position:center center;border-radius:30px 30px 0px 0px;}.elementor-10382 .elementor-element.elementor-element-1f55df9{--display:flex;--min-height:150px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--border-radius:0px 0px 30px 30px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:40px;--padding-left:20px;--padding-right:20px;}.elementor-10382 .elementor-element.elementor-element-1f55df9:not(.elementor-motion-effects-element-type-background), .elementor-10382 .elementor-element.elementor-element-1f55df9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-10382 .elementor-element.elementor-element-1f55df9 .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-e95402f{width:initial;max-width:initial;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 5px;padding:0px 0px 0px 0px;}.elementor-10382 .elementor-element.elementor-element-e95402f .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-e95402f .elementor-heading-title{font-family:\"Natura\", Sans-serif;font-size:25px;font-weight:600;letter-spacing:0.1px;color:#000000;}.elementor-10382 .elementor-element.elementor-element-cbbeedd{--display:flex;--flex-wrap:nowrap;}.elementor-10382 .elementor-element.elementor-element-cbbeedd .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-615cf91{width:var( --container-widget-width, 100% );max-width:100%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;--container-widget-width:100%;--container-widget-flex-grow:0;font-size:12px;font-weight:400;font-style:italic;letter-spacing:0.1px;color:#000000;}.elementor-10382 .elementor-element.elementor-element-615cf91 .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-4fe72ad .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-9f34da5{width:var( --container-widget-width, 0% );max-width:0%;--container-widget-width:0%;--container-widget-flex-grow:0;}.elementor-10382 .elementor-element.elementor-element-9f34da5.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-10382 .elementor-element.elementor-element-9f34da5 .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}.elementor-10382 .elementor-element.elementor-element-b4726bb .spaciaz-border-shape{width:30px;height:30px;clip-path:path(\"M0 0 Q0,30 30,30 L 0 30 Z\");}@media(min-width:768px){.elementor-10382 .elementor-element.elementor-element-006438c{--width:100%;}.elementor-10382 .elementor-element.elementor-element-cbbeedd{--width:100%;}}@media(max-width:1366px) and (min-width:768px){.elementor-10382 .elementor-element.elementor-element-cbbeedd{--width:288.562px;}}@media(max-width:1366px){.elementor-10382 .elementor-element.elementor-element-1f55df9{--min-height:100px;}.elementor-10382 .elementor-element.elementor-element-615cf91{width:var( --container-widget-width, 156.838px );max-width:156.838px;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) -5px;padding:0px 0px 0px 0px;--container-widget-width:156.838px;--container-widget-flex-grow:0;}.elementor-10382 .elementor-element.elementor-element-4fe72ad{width:var( --container-widget-width, 212.463px );max-width:212.463px;--container-widget-width:212.463px;--container-widget-flex-grow:0;}.elementor-10382 .elementor-element.elementor-element-9f34da5{width:var( --container-widget-width, 10px );max-width:10px;--container-widget-width:10px;--container-widget-flex-grow:0;}}@media(max-width:767px){.elementor-10382 .elementor-element.elementor-element-2fd9968 img{height:330px;}.elementor-10382 .elementor-element.elementor-element-1f55df9{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-10382 .elementor-element.elementor-element-e95402f .elementor-heading-title{font-size:20px;}.elementor-10382 .elementor-element.elementor-element-615cf91{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) -4px;padding:0px 0px 0px 0px;}.elementor-10382 .elementor-element.elementor-element-4fe72ad{width:var( --container-widget-width, 64% );max-width:64%;--container-widget-width:64%;--container-widget-flex-grow:0;}.elementor-10382 .elementor-element.elementor-element-9f34da5.elementor-element{--align-self:center;--order:99999 \/* order end hack *\/;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11568 post-11568 ingrediente type-ingrediente status-publish hentry especie-acai formato-oleo setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"364\" height=\"238\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Acai-rasa.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11495\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Acai-rasa.jpg 364w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Acai-rasa-300x196.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Acai-rasa-18x12.jpg 18w\" sizes=\"(max-width: 364px) 100vw, 364px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Acai<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tEuterpe oleracea\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/euterpe-oleracea-2\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11056 post-11056 ingrediente type-ingrediente status-publish hentry especie-andiroba formato-oleo setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"613\" height=\"726\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Andiroba.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11499\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Andiroba.jpg 613w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Andiroba-253x300.jpg 253w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Andiroba-10x12.jpg 10w\" sizes=\"(max-width: 613px) 100vw, 613px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Andiroba<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tCarapa guianensis\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/carapa-guianensis\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11520 post-11520 ingrediente type-ingrediente status-publish hentry especie-babacu formato-farinha formato-oleo setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"810\" height=\"485\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/babacu2.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11502\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/babacu2.jpg 810w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/babacu2-300x180.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/babacu2-768x460.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/babacu2-18x12.jpg 18w\" sizes=\"(max-width: 810px) 100vw, 810px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Baba\u00e7u<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tAttalea speciosa\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/attalea-speciosa\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11539 post-11539 ingrediente type-ingrediente status-publish hentry especie-cacau formato-amendoa formato-manteiga setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"439\" height=\"538\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Cacau-e1765570436561.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11511\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Cacau-e1765570436561.jpg 439w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Cacau-e1765570436561-245x300.jpg 245w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/Cacau-e1765570436561-10x12.jpg 10w\" sizes=\"(max-width: 439px) 100vw, 439px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Cacau<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tTheobroma cacao\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/theobroma-cacao\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12919 post-12919 ingrediente type-ingrediente status-publish hentry especie-capitu formato-oleo-essencial setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"1024\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-12937\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1.jpg 1280w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1-300x240.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1-1024x819.jpg 1024w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1-768x614.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Capitiu-1-15x12.jpg 15w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Capiti\u00fa<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tSiparuna guianensis\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/siparuna-guianensis\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11571 post-11571 ingrediente type-ingrediente status-publish hentry especie-cariru formato-planta setor-alimentos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Cariru<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tTalinum fruticosum\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/talinum-triangulare\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11553 post-11553 ingrediente type-ingrediente status-publish hentry especie-castanha-do-para formato-amendoa formato-oleo formato-torta setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"723\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/castanha.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11516\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/castanha.jpg 542w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/castanha-225x300.jpg 225w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/11\/castanha-9x12.jpg 9w\" sizes=\"(max-width: 542px) 100vw, 542px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Castanha-do-Par\u00e1<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tBertholletia excelsa\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/bertholletia-excelsa-2\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11550 post-11550 ingrediente type-ingrediente status-publish hentry especie-cumaru formato-amendoa setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"994\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cumaru.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11551\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cumaru.jpg 559w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cumaru-169x300.jpg 169w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cumaru-7x12.jpg 7w\" sizes=\"(max-width: 559px) 100vw, 559px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Cumaru<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tDipteryx odorata\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/dipteryx-odorata-2\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11542 post-11542 ingrediente type-ingrediente status-publish hentry especie-cupuacu formato-amendoa formato-manteiga formato-torta setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"225\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cupuacu2.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11543\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cupuacu2.jpg 400w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cupuacu2-300x169.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Cupuacu2-18x10.jpg 18w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Cupua\u00e7u<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tTheobroma grandiflorum\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/theobroma-grandiflorum\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12920 post-12920 ingrediente type-ingrediente status-publish hentry especie-estoraque formato-oleo-essencial setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Estoraque<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tStyrax officinalis\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/styrax-officinalis\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11528 post-11528 ingrediente type-ingrediente status-publish hentry especie-fevillea formato-oleo setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Fevillea<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tFevillea trilobata\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/fevillea-trilobata\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12921 post-12921 ingrediente type-ingrediente status-publish hentry especie-ishpink formato-oleo-essencial setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Ishpink<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tOcotea quixos\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/ocotea-quixos\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11526 post-11526 ingrediente type-ingrediente status-publish hentry especie-jambu formato-planta setor-alimentos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"440\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/jambu1.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11527\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/jambu1.jpg 780w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/jambu1-300x169.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/jambu1-768x433.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/jambu1-18x10.jpg 18w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Jambu<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tAcmella oleracea\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/acmella-oleracea\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11556 post-11556 ingrediente type-ingrediente status-publish hentry especie-jatoba formato-farinha setor-alimentos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1152\" height=\"1536\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35-1152x1536.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11554\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35-1152x1536.jpg 1152w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35-225x300.jpg 225w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35-768x1024.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35-9x12.jpg 9w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Valter-P.-Moraes-35.jpg 1536w\" sizes=\"(max-width: 1152px) 100vw, 1152px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Jatob\u00e1<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tHymenaea courbaril\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/hymenaea-courbaril\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12923 post-12923 ingrediente type-ingrediente status-publish hentry especie-maracuja formato-oleo formato-torta setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"720\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Maracuja.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-12936\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Maracuja.jpg 540w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Maracuja-225x300.jpg 225w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Maracuja-9x12.jpg 9w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Maracuj\u00e1<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tPassiflora edulis\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/passiflora-edulis\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11540 post-11540 ingrediente type-ingrediente status-publish hentry especie-murumuru formato-manteiga formato-torta setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1536\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-1024x1536.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11541\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-1024x1536.jpg 1024w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-200x300.jpg 200w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-683x1024.jpg 683w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-768x1152.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-1365x2048.jpg 1365w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-8x12.jpg 8w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Murumuru-scaled.jpg 1707w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Murumuru<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tAstrocaryum murumuru\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/astrocaryum-murumuru\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12924 post-12924 ingrediente type-ingrediente status-publish hentry especie-pataqueira formato-oleo-essencial setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1008\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-1536x1008.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-12933\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-1536x1008.jpg 1536w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-300x197.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-1024x672.jpg 1024w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-768x504.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-2048x1344.jpg 2048w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Pataqueira1-18x12.jpg 18w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Pataqueira<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tConobea scoparioides\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/conobea-scoparioides\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11532 post-11532 ingrediente type-ingrediente status-publish hentry especie-pataua formato-oleo setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-1536x1024.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11533\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-1536x1024.jpg 1536w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-300x200.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-1024x683.jpg 1024w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-768x512.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-2048x1365.jpg 2048w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Pataua-18x12.jpg 18w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Patau\u00e1<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tOenocarpus bataua\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/oenocarpus-bataua\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12925 post-12925 ingrediente type-ingrediente status-publish hentry especie-poejo formato-oleo-essencial setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1360\" height=\"1536\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-1360x1536.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-12934\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-1360x1536.jpg 1360w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-266x300.jpg 266w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-907x1024.jpg 907w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-768x867.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-1813x2048.jpg 1813w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/poejo-11x12.jpg 11w\" sizes=\"(max-width: 1360px) 100vw, 1360px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Poejo<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tCunila galioides\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/cunila-galioides\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-12926 post-12926 ingrediente type-ingrediente status-publish hentry especie-priprioca formato-oleo-essencial setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"479\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Priprioca.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-12938\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Priprioca.jpg 529w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Priprioca-300x272.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2026\/02\/Priprioca-13x12.jpg 13w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Priprioca<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tCyperus articulatus\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/cyperus-articulatus\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11557 post-11557 ingrediente type-ingrediente status-publish hentry especie-puxuri formato-amendoa setor-alimentos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Puxuri<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tLicaria pucheri\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/licaria-puchury-major\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11548 post-11548 ingrediente type-ingrediente status-publish hentry especie-sapucainha formato-manteiga setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-1536x1024.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11549\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-1536x1024.jpg 1536w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-300x200.jpg 300w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-1024x683.jpg 1024w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-768x512.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-2048x1365.jpg 2048w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/sapucainha-5-18x12.jpg 18w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Sapucainha<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tCarpotroche brasiliensis\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/carpotroche-brasiliensis\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11524 post-11524 ingrediente type-ingrediente status-publish hentry especie-tucuma_do_para formato-manteiga formato-torta setor-alimentos setor-cosmeticos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fd9968 elementor-widget elementor-widget-image\" data-id=\"2fd9968\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1152\" height=\"1536\" src=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-1152x1536.jpg\" class=\"attachment-1536x1536 size-1536x1536 wp-image-11525\" alt=\"\" srcset=\"https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-1152x1536.jpg 1152w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-225x300.jpg 225w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-768x1024.jpg 768w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-1536x2048.jpg 1536w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-9x12.jpg 9w, https:\/\/naturaingredientes.com.br\/wp-content\/uploads\/2025\/12\/Tucuma1-scaled.jpg 1920w\" sizes=\"(max-width: 1152px) 100vw, 1152px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Tucum\u00e3<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tAstrocaryum vulgare\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/astrocaryum-vulgare\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"10382\" class=\"elementor elementor-10382 e-loop-item e-loop-item-11575 post-11575 ingrediente type-ingrediente status-publish hentry especie-vanilla formato-fava setor-alimentos\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-006438c ingrediente-card e-con-full e-flex e-con e-parent\" data-id=\"006438c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1f55df9 card-item-js e-con-full e-flex e-con e-child\" data-id=\"1f55df9\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e95402f titulo-card elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"e95402f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Vanilla<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbbeedd e-con-full ni-bottom-row e-flex e-con e-child\" data-id=\"cbbeedd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-615cf91 elementor-widget__width-initial elementor-widget-laptop__width-initial subtitulo-card elementor-widget elementor-widget-text-editor\" data-id=\"615cf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tVanilla bahiana\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4fe72ad elementor-widget-mobile__width-initial elementor-widget-laptop__width-initial shortcode-formato elementor-widget elementor-widget-shortcode\" data-id=\"4fe72ad\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">[ni_formato]<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f34da5 elementor-widget-laptop__width-initial elementor-widget__width-initial ni-tags-wrapper pills-container-js elementor-widget elementor-widget-html\" data-id=\"9f34da5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n  function norm(txt) {\r\n    return (txt || \"\").replace(\/\\s+\/g, \" \").trim().toLowerCase();\r\n  }\r\n  function key(txt) {\r\n    return norm(txt).normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function organizarFormato(card) {\r\n    const tituloEl    = card.querySelector(\".titulo-card\");\r\n    const subtituloEl = card.querySelector(\".subtitulo-card\");\r\n    const shortcodeW  = card.querySelector(\".shortcode-formato\");\r\n    if (!tituloEl || !subtituloEl || !shortcodeW) return;\r\n\r\n    const textoTitulo = (tituloEl.textContent || \"\").trim();\r\n    const textoSub    = (subtituloEl.textContent || \"\").trim();\r\n\r\n    const wrapper = shortcodeW.querySelector(\".ni-tags-wrapper\");\r\n    if (!wrapper) return;\r\n\r\n    let pills = Array.from(wrapper.querySelectorAll(\".ni-pill\"));\r\n    if (!pills.length) return;\r\n\r\n    \/\/ =========================\r\n    \/\/ caixas padr\u00e3o (top\/bottom)\r\n    \/\/ =========================\r\n    let boxTop = card.querySelector(\".ni-inline-tags-top\");\r\n    if (!boxTop) {\r\n      boxTop = document.createElement(\"div\");\r\n      boxTop.className = \"ni-inline-tags ni-inline-tags-top\";\r\n      card.appendChild(boxTop);\r\n    }\r\n\r\n    let boxBottom = card.querySelector(\".ni-inline-tags-bottom\");\r\n    if (!boxBottom) {\r\n      boxBottom = document.createElement(\"div\");\r\n      boxBottom.className = \"ni-inline-tags ni-inline-tags-bottom\";\r\n      card.appendChild(boxBottom);\r\n    }\r\n\r\n    \/\/ \u2705 caixas exclusivas da Castanha (2 linhas)\r\n    let boxCast1 = card.querySelector(\".ni-inline-tags-castanha-1\");\r\n    if (!boxCast1) {\r\n      boxCast1 = document.createElement(\"div\");\r\n      boxCast1.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-1\";\r\n      card.appendChild(boxCast1);\r\n    }\r\n    let boxCast2 = card.querySelector(\".ni-inline-tags-castanha-2\");\r\n    if (!boxCast2) {\r\n      boxCast2 = document.createElement(\"div\");\r\n      boxCast2.className = \"ni-inline-tags ni-inline-tags-castanha ni-inline-tags-castanha-2\";\r\n      card.appendChild(boxCast2);\r\n    }\r\n\r\n    \/\/ ---------------- reset ----------------\r\n    boxTop.innerHTML = \"\";\r\n    boxBottom.innerHTML = \"\";\r\n    boxCast1.innerHTML = \"\";\r\n    boxCast2.innerHTML = \"\";\r\n\r\n    boxTop.classList.remove(\"ni-hidden\");\r\n    boxBottom.classList.remove(\"ni-hidden\", \"ni-bertholletia\");\r\n    boxCast1.classList.add(\"ni-hidden\");\r\n    boxCast2.classList.add(\"ni-hidden\");\r\n\r\n    \/\/ \u2705 remove marca\u00e7\u00e3o de castanha (caso o loop recicle)\r\n    tituloEl.removeAttribute(\"data-castanha\");\r\n\r\n    const casoBertholletia = key(textoSub) === \"bertholletia excelsa\";\r\n    const casoCastanha     = key(textoTitulo) === \"castanha-do-para\";\r\n    const ehPequeno        = textoTitulo.length <= 13;\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 CASTANHA-DO-PAR\u00c1 (FIX FINAL)\r\n    \/\/ =========================\r\n    if (casoCastanha) {\r\n\r\n      \/\/ 1) For\u00e7a quebra REAL do t\u00edtulo em 2 linhas usando spans\r\n      \/\/    (n\u00e3o depende de largura do card)\r\n      if (!tituloEl.dataset._split_done) {\r\n        const original = (tituloEl.textContent || \"\").trim();\r\n\r\n        \/\/ quebra no primeiro h\u00edfen (qualquer tipo de h\u00edfen comum)\r\n        const m = original.match(\/^(.+?)([-\u2013\u2014])(.+)$\/);\r\n        if (m) {\r\n          const part1 = (m[1] + m[2]).trim(); \/\/ \"Castanha-\"\r\n          const part2 = (m[3]).trim();        \/\/ \"do-Par\u00e1\"\r\n          tituloEl.innerHTML =\r\n            '<span class=\"ni-title-l1\">' + part1 + '<\/span>' +\r\n            '<span class=\"ni-title-l2\">' + part2 + '<\/span>';\r\n        }\r\n        tituloEl.dataset._split_done = \"1\";\r\n      }\r\n\r\n      tituloEl.setAttribute(\"data-castanha\", \"1\");\r\n\r\n      \/\/ esconde caixas padr\u00e3o\r\n      boxTop.classList.add(\"ni-hidden\");\r\n      boxBottom.classList.add(\"ni-hidden\");\r\n\r\n      \/\/ 2) ordem fixa: TORTA, \u00d3LEO \/ AM\u00caNDOA, EXTRATO\r\n      const desejada = [\"TORTA\", \"\u00d3LEO\", \"AM\u00caNDOA\", \"EXTRATO\"];\r\n      const map = new Map();\r\n\r\n      pills.forEach(p => {\r\n        const t = (p.textContent || \"\").trim().toUpperCase();\r\n        if (!map.has(t)) map.set(t, []);\r\n        map.get(t).push(p);\r\n      });\r\n\r\n      const ordenadas = [];\r\n      desejada.forEach(name => {\r\n        const arr = map.get(name);\r\n        if (arr && arr.length) ordenadas.push(arr.shift());\r\n      });\r\n\r\n      \/\/ sobras\r\n      pills.forEach(p => { if (!ordenadas.includes(p)) ordenadas.push(p); });\r\n\r\n      \/\/ 3) 2 p\u00edlulas por linha\r\n      if (ordenadas[0]) boxCast1.appendChild(ordenadas[0]); \/\/ TORTA\r\n      if (ordenadas[1]) boxCast1.appendChild(ordenadas[1]); \/\/ \u00d3LEO\r\n      if (ordenadas[2]) boxCast2.appendChild(ordenadas[2]); \/\/ AM\u00caNDOA\r\n      if (ordenadas[3]) boxCast2.appendChild(ordenadas[3]); \/\/ EXTRATO\r\n      ordenadas.slice(4).forEach(p => boxCast2.appendChild(p));\r\n\r\n      boxCast1.classList.remove(\"ni-hidden\");\r\n      boxCast2.classList.remove(\"ni-hidden\");\r\n\r\n      wrapper.style.display = \"none\";\r\n\r\n      \/\/ 4) Alinha cada linha de p\u00edlula com a linha correspondente do t\u00edtulo (spans)\r\n      const cardRect = card.getBoundingClientRect();\r\n\r\n      const l1 = tituloEl.querySelector(\".ni-title-l1\") || tituloEl;\r\n      const l2 = tituloEl.querySelector(\".ni-title-l2\") || tituloEl;\r\n\r\n      function centerYNoCard(el) {\r\n        const r = el.getBoundingClientRect();\r\n        return (r.top + r.height \/ 2) - cardRect.top;\r\n      }\r\n\r\n      boxCast1.style.top = centerYNoCard(l1) + \"px\";\r\n      boxCast2.style.top = centerYNoCard(l2) + \"px\";\r\n\r\n      return; \/\/ \u2705 n\u00e3o segue alinhamento padr\u00e3o\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Bertholletia (seu comportamento)\r\n    \/\/ =========================\r\n    if (casoBertholletia) {\r\n      boxTop.classList.add(\"ni-hidden\");\r\n\r\n      const primeira = pills.shift();\r\n\r\n      const row1 = document.createElement(\"div\");\r\n      row1.className = \"ni-row ni-row-1\";\r\n      const row2 = document.createElement(\"div\");\r\n      row2.className = \"ni-row ni-row-2\";\r\n\r\n      pills.forEach(p => row1.appendChild(p));\r\n      if (primeira) row2.appendChild(primeira);\r\n\r\n      boxBottom.appendChild(row1);\r\n      boxBottom.appendChild(row2);\r\n      boxBottom.classList.add(\"ni-bertholletia\");\r\n\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ =========================\r\n    \/\/ \u2705 Padr\u00e3o\r\n    \/\/ =========================\r\n    else {\r\n      if (ehPequeno) {\r\n        const primeira = pills.shift();\r\n        if (primeira) boxTop.appendChild(primeira);\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      } else {\r\n        pills.forEach(p => boxBottom.appendChild(p));\r\n      }\r\n      wrapper.style.display = \"none\";\r\n    }\r\n\r\n    \/\/ ----------------- POSICIONAMENTO PADR\u00c3O -----------------\r\n    const cardRect = card.getBoundingClientRect();\r\n\r\n    function centerYNoCard(el) {\r\n      const r = el.getBoundingClientRect();\r\n      return (r.top + r.height \/ 2) - cardRect.top;\r\n    }\r\n\r\n    function alinharNormal(box, alvo) {\r\n      if (!box || !alvo || !box.children.length) return;\r\n      box.style.top = centerYNoCard(alvo) + \"px\";\r\n    }\r\n\r\n    function alinharLinha1ComSubtitulo(box, alvoSubtitulo) {\r\n      const row1 = box.querySelector(\".ni-row-1\");\r\n      if (!row1) return alinharNormal(box, alvoSubtitulo);\r\n\r\n      const subCenter = centerYNoCard(alvoSubtitulo);\r\n      const totalH = box.offsetHeight;\r\n      const row1H  = row1.offsetHeight;\r\n      const offset = (totalH \/ 2) - (row1H \/ 2);\r\n\r\n      box.style.top = (subCenter + offset) + \"px\";\r\n    }\r\n\r\n    alinharNormal(boxTop, tituloEl);\r\n\r\n    if (boxBottom.classList.contains(\"ni-bertholletia\")) {\r\n      alinharLinha1ComSubtitulo(boxBottom, subtituloEl);\r\n    } else {\r\n      alinharNormal(boxBottom, subtituloEl);\r\n    }\r\n  }\r\n\r\n  function aplicarEmTodos() {\r\n    const cards = document.querySelectorAll(\".e-loop-item, .elementor-loop-item, .elementor-post\");\r\n    cards.forEach(card => organizarFormato(card));\r\n  }\r\n\r\n  aplicarEmTodos();\r\n\r\n  const observer = new MutationObserver(aplicarEmTodos);\r\n  observer.observe(document.body, { childList: true, subtree: true });\r\n\r\n});\r\n<\/script>\r\n\r\n<style>\r\n.e-loop-item,\r\n.elementor-loop-item,\r\n.elementor-post { position: relative; }\r\n\r\n\/* texto sem cortar *\/\r\n.titulo-card,\r\n.subtitulo-card {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: unset !important;\r\n}\r\n\r\n\/* t\u00edtulo *\/\r\n.titulo-card{\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 25px !important;\r\n  font-weight: 600 !important;\r\n  line-height: 1.05 !important;\r\n}\r\n\r\n\r\n  \/* \u2705 Castanha-do-Par\u00e1 \u2014 t\u00edtulo fixo (COLE AQUI) *\/\r\n  .titulo-card[data-castanha=\"1\"] {\r\n    font-size: 25px !important;\r\n    font-weight: 600 !important;\r\n  }\r\n\r\n\/* \u2705 Castanha: 2 linhas reais via spans *\/\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l1,\r\n.titulo-card[data-castanha=\"1\"] .ni-title-l2{\r\n  display: block;\r\n}\r\n\r\n\/* caixas absolutas *\/\r\n.ni-inline-tags {\r\n  position: absolute;\r\n  right: 36px;\r\n  transform: translateY(-50%);\r\n  display: flex;\r\n  gap: 8px;\r\n  align-items: center;\r\n  z-index: 5;\r\n}\r\n\r\n\/* esconder *\/\r\n.ni-hidden { display: none !important; }\r\n\r\n\/* Bertholletia em 2 linhas *\/\r\n.ni-inline-tags-bottom.ni-bertholletia {\r\n  flex-direction: column;\r\n  align-items: flex-end;\r\n  gap: 8px;\r\n}\r\n.ni-row{\r\n  display: flex;\r\n  gap: 8px;\r\n  justify-content: flex-end;\r\n  align-items: center;\r\n  width: 100%;\r\n  flex-wrap: nowrap;\r\n}\r\n\r\n.ni-inline-tags .ni-pill {\r\n  display: inline-flex;\r\n  padding: 4px 10px;\r\n  border-radius: 999px;\r\n  background: #303b21;\r\n  color: #fff;\r\n  font-family: \"Natura\", sans-serif !important;\r\n  font-size: 12px !important;\r\n  font-weight: 600 !important;\r\n  white-space: nowrap;\r\n  line-height: 1;\r\n}\r\n\r\n\/* mobile *\/\r\n@media (max-width: 768px) {\r\n  .ni-inline-tags { right: 34px; }\r\n  .ni-inline-tags .ni-pill { font-size: 11.5px !important; height: 21px; }\r\n  .titulo-card{ font-size: 22px !important; }\r\n}\r\n\r\n.e-loop-item .elementor-widget-image img {\r\n  width: 100% !important;\r\n  height: 260px !important;\r\n  object-fit: cover !important;\r\n  display: block !important;\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4726bb ingrediente-card-url elementor-widget elementor-widget-shortcode\" data-id=\"b4726bb\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">https:\/\/naturaingredientes.com.br\/en\/ingrediente\/vanilla-planifolia\/<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Encontre o ingrediente ideal para voc\u00ea portf\u00f3lio \u00b7 bioingredientes \u00b7 portf\u00f3lio \u00b7 bioingredientes \u00b7 portf\u00f3lio \u00b7 bioingredientes \u00b7 portf\u00f3lio \u00b7 bioingredientes \u00b7 portf\u00f3lio \u00b7 bioingredientes \u00b7 [ni_filtro_ingredientes]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-9517","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"meta_box":[],"_links":{"self":[{"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/pages\/9517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/comments?post=9517"}],"version-history":[{"count":323,"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/pages\/9517\/revisions"}],"predecessor-version":[{"id":12951,"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/pages\/9517\/revisions\/12951"}],"wp:attachment":[{"href":"https:\/\/naturaingredientes.com.br\/en\/wp-json\/wp\/v2\/media?parent=9517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}