{"id":28,"date":"2026-07-19T18:10:57","date_gmt":"2026-07-19T18:10:57","guid":{"rendered":"https:\/\/bonsastudio.com\/?page_id=28"},"modified":"2026-09-06T21:20:30","modified_gmt":"2026-09-06T21:20:30","slug":"home","status":"publish","type":"page","link":"https:\/\/bonsastudio.com\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"28\" class=\"elementor elementor-28\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e5894b7 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"e5894b7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1292248 elementor-widget elementor-widget-html\" data-id=\"1292248\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  :root {\r\n    --bonsa-bg: #dddad0;\r\n    --bonsa-bg-rgb: 221, 218, 208;\r\n    --bonsa-stroke: #d8d6d2;\r\n    --bonsa-text: #141d1f;\r\n    --bonsa-gold: #9f8368;\r\n    --bonsa-toggle-bg: #eeece8;\r\n    --bonsa-panel-bg: #dddad0;\r\n    --bonsa-line: rgba(20,29,31,.15);\r\n    --bonsa-svg-icon: #777;\r\n    --bonsa-page-bg: #edece8;\r\n  }\r\n  html.bonsa-dark,\r\n  body.bonsa-dark {\r\n    --bonsa-bg: #1c2526;\r\n    --bonsa-bg-rgb: 28, 37, 38;\r\n    --bonsa-stroke: #252c2d;\r\n    --bonsa-text: #eeece8;\r\n    --bonsa-gold: #9f8368;\r\n    --bonsa-toggle-bg: #141d1f;\r\n    --bonsa-panel-bg: #1c2526;\r\n    --bonsa-line: rgba(238,236,232,.15);\r\n    --bonsa-svg-icon: #939393;\r\n    --bonsa-page-bg: #141d1f;\r\n  }\r\n\r\n  \/* ===== FUNDO DA P\u00c1GINA ===== *\/\r\n  html, body { transition: background-color .9s ease; }\r\n  html.bonsa-dark,\r\n  html.bonsa-dark body,\r\n  body.bonsa-dark { background-color: #141d1f !important; }\r\n\r\n  \/* ===== TRADU\u00c7\u00c3O POR SE\u00c7\u00c3O (com fade in\/out) ===== *\/\r\n  [data-lang-pt], [data-lang-en] { transition: opacity .35s ease; }\r\n  html[data-lang=\"pt\"] [data-lang-en],\r\n  html[data-lang=\"en\"] [data-lang-pt] {\r\n    opacity: 0; position: absolute; pointer-events: none;\r\n    width: 0; height: 0; overflow: hidden;\r\n  }\r\n  html[data-lang=\"pt\"] [data-lang-pt],\r\n  html[data-lang=\"en\"] [data-lang-en] { opacity: 1; }\r\n  html.bonsa-lang-switching [data-lang-pt],\r\n  html.bonsa-lang-switching [data-lang-en] { opacity: 0; }\r\n\r\n  .bonsa-header a, .bonsa-header button,\r\n  .bonsa-mobile-panel a, .bonsa-mobile-panel button,\r\n  .bonsa-theme-toggle, .bonsa-theme-toggle span, .bonsa-lang button,\r\n  [data-bonsa-logo], [data-bonsa-burger] {\r\n    -webkit-tap-highlight-color: transparent;\r\n    tap-highlight-color: transparent;\r\n  }\r\n\r\n  .bonsa-header {\r\n    display: grid;\r\n    grid-template-columns: 1fr auto 1fr;\r\n    align-items: center;\r\n    background: rgba(var(--bonsa-bg-rgb), .70);\r\n    -webkit-backdrop-filter: blur(14px) saturate(140%);\r\n    backdrop-filter: blur(15px) saturate(140%);\r\n    border: 1px solid var(--bonsa-stroke);\r\n    border-radius: 50px;\r\n    padding: 8px 8px;\r\n    font-family: 'Poppins', Arial, sans-serif;\r\n    transition: background .4s ease, border-color .4s ease;\r\n    position: fixed;\r\n    top: 40px; left: 0; right: 0;\r\n    margin: 0 auto;\r\n    z-index: 9999;\r\n    width: calc(100% - 48px);\r\n    max-width: 1140px;\r\n    box-sizing: border-box;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .bonsa-header::before {\r\n    content: \"\";\r\n    position: absolute; inset: 0; z-index: 0;\r\n    pointer-events: none; border-radius: inherit;\r\n    background:\r\n      radial-gradient(120px 120px at 15% 120%, var(--bonsa-gold) 0%, transparent 90%),\r\n      radial-gradient(160px 160px at 85% -30%, var(--bonsa-gold) 0%, transparent 90%),\r\n      radial-gradient(140px 140px at 55% 130%, var(--bonsa-gold) 0%, transparent 90%);\r\n    opacity: .10; filter: blur(24px);\r\n  }\r\n\r\n  .bonsa-left, .bonsa-right, .bonsa-logo, .bonsa-burger { position: relative; z-index: 1; }\r\n\r\n  .bonsa-left  { display: flex; align-items: center; justify-self: stretch; }\r\n  .bonsa-right { display: flex; align-items: center; justify-self: stretch; flex-direction: row-reverse; }\r\n\r\n  .bonsa-left .bonsa-menu,\r\n  .bonsa-right .bonsa-menu { flex: 1; display: flex; justify-content: center; gap: 46px; }\r\n\r\n  .bonsa-logo { justify-self: center; display: flex; align-items: center; }\r\n  .bonsa-logo a {\r\n    display: flex; align-items: center; text-decoration: none;\r\n    transition: transform .35s cubic-bezier(.34,1.56,.64,1);\r\n    transform-origin: center;\r\n  }\r\n  .bonsa-logo a:hover { transform: scale(1.06); }\r\n  .bonsa-logo a.is-clicked { transform: scale(.93); }\r\n  .bonsa-logo svg { height: 26px; width: auto; display: block; }\r\n\r\n  .bonsa-menu { list-style: none; margin: 0; padding: 0; align-items: center; }\r\n  .bonsa-menu a {\r\n    text-decoration: none; color: var(--bonsa-text);\r\n    font-size: 12px; letter-spacing: 1px; text-transform: uppercase;\r\n    font-weight: 500; transition: color .2s, opacity .2s, transform .25s ease;\r\n    position: relative; white-space: nowrap; display: inline-block;\r\n  }\r\n  .bonsa-menu a.active { color: var(--bonsa-gold); font-weight: 600; }\r\n  .bonsa-menu a.active::after {\r\n    content: \"\"; position: absolute; left: 0; right: 0; bottom: -5px;\r\n    height: 1.5px; background: var(--bonsa-gold);\r\n  }\r\n  .bonsa-menu a:hover { opacity: .6; }\r\n  .bonsa-menu a.is-clicked { transform: scale(.9); opacity: .5; }\r\n\r\n  .bonsa-theme-toggle {\r\n    display: flex; gap: 2px; cursor: pointer;\r\n    background: var(--bonsa-toggle-bg); border-radius: 50px; padding: 3px;\r\n    transition: background .4s ease; flex-shrink: 0;\r\n    position: relative; z-index: 1;\r\n  }\r\n  .bonsa-theme-toggle .bonsa-toggle-thumb {\r\n    position: absolute; top: 3px; left: 3px;\r\n    width: 32px; height: 32px; border-radius: 50%;\r\n    background: var(--bonsa-gold);\r\n    transition: transform .55s cubic-bezier(.34,1.56,.64,1);\r\n    z-index: 0; pointer-events: none; will-change: transform;\r\n  }\r\n  .bonsa-theme-toggle[data-active=\"dark\"] .bonsa-toggle-thumb { transform: translateX(34px); }\r\n  .bonsa-theme-toggle span {\r\n    width: 32px; height: 32px;\r\n    display: flex; align-items: center; justify-content: center;\r\n    border-radius: 50%; overflow: hidden; position: relative; z-index: 1;\r\n  }\r\n  .bonsa-theme-toggle span svg { width: 100%; height: 100%; display: block; }\r\n  .bonsa-theme-toggle span svg path { transition: fill .4s ease; }\r\n  .bonsa-theme-toggle span:not(.active) svg path { fill: var(--bonsa-svg-icon); }\r\n  .bonsa-theme-toggle span.active svg path { fill: #eeece8; }\r\n\r\n  .bonsa-lang {\r\n    display: flex; align-items: center; gap: 2px;\r\n    background: var(--bonsa-toggle-bg); border-radius: 50px; padding: 3px;\r\n    transition: background .4s ease; flex-shrink: 0;\r\n    position: relative; z-index: 1;\r\n  }\r\n  .bonsa-lang button {\r\n    border: none; background: transparent; color: var(--bonsa-text);\r\n    font-family: 'Poppins', Arial, sans-serif;\r\n    width: 38px; height: 32px; border-radius: 50px; font-size: 12px; font-weight: 700;\r\n    cursor: pointer; transition: background .3s, color .3s, transform .2s ease;\r\n    letter-spacing: .5px; display: flex; align-items: center; justify-content: center;\r\n  }\r\n  .bonsa-lang button.active { background: var(--bonsa-gold); color: #eeece8; }\r\n  .bonsa-lang button.is-clicked { transform: scale(.88); }\r\n\r\n  .bonsa-burger {\r\n    display: none; border: none; background: transparent;\r\n    width: 40px; height: 40px; cursor: pointer; justify-self: end;\r\n    padding: 0; position: relative;\r\n  }\r\n  .bonsa-burger:focus,\r\n  .bonsa-burger:active,\r\n  .bonsa-burger:hover { outline: none; background: transparent; }\r\n  .bonsa-burger span {\r\n    position: absolute; left: 50%; top: 50%;\r\n    width: 24px; height: 2.5px; background: var(--bonsa-text);\r\n    border-radius: 3px; transform: translate(-50%, -50%);\r\n    transition: transform .4s cubic-bezier(.7,0,.2,1), opacity .3s ease, background .3s ease;\r\n  }\r\n  .bonsa-burger span:nth-child(1) { transform: translate(-50%, calc(-50% - 7px)); }\r\n  .bonsa-burger span:nth-child(2) { transform: translate(-50%, -50%); }\r\n  .bonsa-burger span:nth-child(3) { transform: translate(-50%, calc(-50% + 7px)); }\r\n  .bonsa-burger.is-open span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }\r\n  .bonsa-burger.is-open span:nth-child(2) { opacity: 0; }\r\n  .bonsa-burger.is-open span:nth-child(3) { transform: translate(-50%, -50%) rotate(-45deg); }\r\n\r\n  .bonsa-mobile-panel {\r\n    display: none; flex-direction: column;\r\n    background: rgba(var(--bonsa-bg-rgb), .75);\r\n    -webkit-backdrop-filter: blur(14px) saturate(140%);\r\n    backdrop-filter: blur(14px) saturate(140%);\r\n    border: 1px solid var(--bonsa-stroke);\r\n    border-radius: 30px; padding: 26px 24px;\r\n    font-family: 'Poppins', Arial, sans-serif;\r\n    position: fixed; top: 108px; left: 24px; right: 24px; z-index: 9998;\r\n    box-sizing: border-box;\r\n    transition: background .4s ease, border-color .4s ease;\r\n    overflow: hidden; transform-origin: top center;\r\n  }\r\n  .bonsa-mobile-panel::before {\r\n    content: \"\"; position: absolute; inset: 0; z-index: 0; pointer-events: none;\r\n    border-radius: inherit;\r\n    background:\r\n      radial-gradient(160px 160px at 10% 110%, var(--bonsa-gold) 0%, transparent 70%),\r\n      radial-gradient(180px 180px at 90% -10%, var(--bonsa-gold) 0%, transparent 70%);\r\n    opacity: .08; filter: blur(28px);\r\n  }\r\n  .bonsa-mobile-panel > * { position: relative; z-index: 1; }\r\n\r\n  .bonsa-mobile-panel.open {\r\n    display: flex; animation: bonsa-panel-open .5s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-mobile-panel.closing {\r\n    display: flex; animation: bonsa-panel-close .4s cubic-bezier(.7,0,.2,1) forwards;\r\n  }\r\n\r\n  .bonsa-mobile-panel a {\r\n    text-decoration: none; color: var(--bonsa-text);\r\n    font-size: 16px; font-weight: 600; letter-spacing: 1px;\r\n    padding: 18px 0; text-transform: uppercase;\r\n    border-bottom: 1px solid var(--bonsa-line);\r\n    position: relative;\r\n    transition: transform .25s ease, opacity .2s ease, color .3s ease;\r\n  }\r\n  .bonsa-mobile-panel a:last-of-type { border-bottom: none; }\r\n  .bonsa-mobile-panel a.active {\r\n    color: var(--bonsa-gold); font-weight: 700; padding-left: 20px;\r\n    border-left: 3px solid var(--bonsa-gold);\r\n    background: linear-gradient(90deg, rgba(159,131,104,.12), transparent);\r\n  }\r\n  .bonsa-mobile-panel a.is-clicked { transform: scale(.94); opacity: .5; }\r\n  .bonsa-mobile-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 24px; }\r\n\r\n  .bonsa-mobile-panel.open a,\r\n  .bonsa-mobile-panel.open .bonsa-mobile-footer {\r\n    opacity: 0; animation: bonsa-item-in .5s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-mobile-panel.open a:nth-of-type(1)      { animation-delay: .18s; }\r\n  .bonsa-mobile-panel.open a:nth-of-type(2)      { animation-delay: .26s; }\r\n  .bonsa-mobile-panel.open a:nth-of-type(3)      { animation-delay: .34s; }\r\n  .bonsa-mobile-panel.open a:nth-of-type(4)      { animation-delay: .42s; }\r\n  .bonsa-mobile-panel.open a:nth-of-type(5)      { animation-delay: .50s; }\r\n  .bonsa-mobile-panel.open .bonsa-mobile-footer  { animation-delay: .58s; }\r\n\r\n  .bonsa-mobile-panel.closing a,\r\n  .bonsa-mobile-panel.closing .bonsa-mobile-footer { animation: bonsa-item-out .25s ease forwards; }\r\n\r\n  @keyframes bonsa-panel-open {\r\n    0%   { opacity: 0; transform: translateY(-14px); clip-path: inset(0 0 100% 0 round 30px); }\r\n    100% { opacity: 1; transform: translateY(0);     clip-path: inset(0 0 0 0 round 30px); }\r\n  }\r\n  @keyframes bonsa-panel-close {\r\n    0%   { opacity: 1; transform: translateY(0);     clip-path: inset(0 0 0 0 round 30px); }\r\n    100% { opacity: 0; transform: translateY(-14px); clip-path: inset(0 0 100% 0 round 30px); }\r\n  }\r\n  @keyframes bonsa-item-in {\r\n    0%   { opacity: 0; transform: translateY(14px); filter: blur(6px); }\r\n    100% { opacity: 1; transform: translateY(0);    filter: blur(0); }\r\n  }\r\n  @keyframes bonsa-item-out {\r\n    0%   { opacity: 1; transform: translateY(0);    filter: blur(0); }\r\n    100% { opacity: 0; transform: translateY(-8px); filter: blur(4px); }\r\n  }\r\n\r\n  .bonsa-mobile-footer .bonsa-theme-toggle { padding: 4px; gap: 4px; }\r\n  .bonsa-mobile-footer .bonsa-theme-toggle .bonsa-toggle-thumb { top: 4px; left: 4px; width: 42px; height: 42px; }\r\n  .bonsa-mobile-footer .bonsa-theme-toggle[data-active=\"dark\"] .bonsa-toggle-thumb { transform: translateX(46px); }\r\n  .bonsa-mobile-footer .bonsa-theme-toggle span { width: 42px; height: 42px; }\r\n  .bonsa-mobile-footer .bonsa-lang { padding: 4px; gap: 4px; }\r\n  .bonsa-mobile-footer .bonsa-lang button { width: 50px; height: 42px; font-size: 14px; }\r\n\r\n  @media (max-width: 1000px) {\r\n    .bonsa-header { grid-template-columns: auto 1fr auto; padding: 10px 20px; }\r\n    .bonsa-left .bonsa-menu,\r\n    .bonsa-right .bonsa-menu,\r\n    .bonsa-left .bonsa-theme-toggle,\r\n    .bonsa-right .bonsa-lang { display: none; }\r\n    .bonsa-logo { justify-self: start; grid-column: 1; }\r\n    .bonsa-logo svg { height: 22px; }\r\n    .bonsa-logo a { filter: none !important; }\r\n    .bonsa-logo a:hover { transform: none; }\r\n    .bonsa-logo a.is-clicked { transform: scale(.93); }\r\n    .bonsa-burger { display: block; grid-column: 3; }\r\n  }\r\n\r\n  .elementor-widget-html,\r\n  .elementor-widget-html .elementor-widget-container {\r\n    background: transparent !important; padding: 0 !important; margin: 0 !important;\r\n  }\r\n\r\n  body { padding-top: 0 !important; }\r\n\r\n  .bonsa-header-host,\r\n  .bonsa-header-host > .e-con-inner,\r\n  .bonsa-header-host > .elementor-container {\r\n    min-height: 0 !important; height: 0 !important;\r\n    padding: 0 !important; margin: 0 !important; overflow: visible !important;\r\n  }\r\n\r\n  @keyframes bonsa-expand {\r\n    0%   { clip-path: inset(0 50% 0 50% round 50px); opacity: 0; }\r\n    15%  { opacity: 1; }\r\n    100% { clip-path: inset(0 0 0 0 round 50px); opacity: 1; }\r\n  }\r\n  @keyframes bonsa-rise {\r\n    0%   { opacity: 0; transform: translateY(12px); filter: blur(6px); }\r\n    100% { opacity: 1; transform: translateY(0);    filter: blur(0); }\r\n  }\r\n\r\n  .bonsa-header.bonsa-anim { animation: bonsa-expand 1s cubic-bezier(.7,0,.2,1) forwards; }\r\n\r\n  .bonsa-header.bonsa-anim .bonsa-logo,\r\n  .bonsa-header.bonsa-anim .bonsa-menu,\r\n  .bonsa-header.bonsa-anim .bonsa-theme-toggle,\r\n  .bonsa-header.bonsa-anim .bonsa-lang,\r\n  .bonsa-header.bonsa-anim .bonsa-burger {\r\n    opacity: 0; animation: bonsa-rise .6s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-header.bonsa-anim .bonsa-logo                { animation-delay: .70s; }\r\n  .bonsa-header.bonsa-anim .bonsa-left  .bonsa-menu   { animation-delay: .95s; }\r\n  .bonsa-header.bonsa-anim .bonsa-right .bonsa-menu   { animation-delay: 1.05s; }\r\n  .bonsa-header.bonsa-anim .bonsa-theme-toggle        { animation-delay: 1.30s; }\r\n  .bonsa-header.bonsa-anim .bonsa-lang                { animation-delay: 1.40s; }\r\n  .bonsa-header.bonsa-anim .bonsa-burger              { animation-delay: 1.10s; }\r\n\r\n  @media (max-width: 1000px) {\r\n    @keyframes bonsa-rise-mobile {\r\n      0%   { opacity: 0; transform: translateY(12px); }\r\n      100% { opacity: 1; transform: translateY(0); }\r\n    }\r\n    .bonsa-header.bonsa-anim .bonsa-logo { animation-name: bonsa-rise-mobile; }\r\n  }\r\n\r\n  @keyframes bonsa-collapse {\r\n    0%   { clip-path: inset(0 0 0 0 round 50px);     opacity: 1; }\r\n    85%  { opacity: 1; }\r\n    100% { clip-path: inset(0 50% 0 50% round 50px); opacity: 0; }\r\n  }\r\n  @keyframes bonsa-fall {\r\n    0%   { opacity: 1; transform: translateY(0);    filter: blur(0); }\r\n    100% { opacity: 0; transform: translateY(12px); filter: blur(6px); }\r\n  }\r\n\r\n  .bonsa-header.bonsa-leave {\r\n    animation: bonsa-collapse .8s cubic-bezier(.7,0,.2,1) forwards;\r\n    animation-delay: .35s; pointer-events: none;\r\n  }\r\n  .bonsa-header.bonsa-leave .bonsa-logo,\r\n  .bonsa-header.bonsa-leave .bonsa-menu,\r\n  .bonsa-header.bonsa-leave .bonsa-theme-toggle,\r\n  .bonsa-header.bonsa-leave .bonsa-lang,\r\n  .bonsa-header.bonsa-leave .bonsa-burger {\r\n    animation: bonsa-fall .4s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-header.bonsa-leave .bonsa-lang               { animation-delay: 0s; }\r\n  .bonsa-header.bonsa-leave .bonsa-theme-toggle       { animation-delay: .05s; }\r\n  .bonsa-header.bonsa-leave .bonsa-right .bonsa-menu  { animation-delay: .10s; }\r\n  .bonsa-header.bonsa-leave .bonsa-left  .bonsa-menu  { animation-delay: .15s; }\r\n  .bonsa-header.bonsa-leave .bonsa-burger             { animation-delay: .10s; }\r\n  .bonsa-header.bonsa-leave .bonsa-logo               { animation-delay: .20s; }\r\n\r\n  \/* ===== SWAP: FECHA E REABRE NA MESMA P\u00c1GINA (tema \/ idioma) ===== *\/\r\n  .bonsa-header.bonsa-swap-out {\r\n    animation: bonsa-collapse .5s cubic-bezier(.7,0,.2,1) forwards;\r\n    animation-delay: .12s;\r\n    pointer-events: none;\r\n  }\r\n  .bonsa-header.bonsa-swap-out .bonsa-logo,\r\n  .bonsa-header.bonsa-swap-out .bonsa-menu,\r\n  .bonsa-header.bonsa-swap-out .bonsa-theme-toggle,\r\n  .bonsa-header.bonsa-swap-out .bonsa-lang,\r\n  .bonsa-header.bonsa-swap-out .bonsa-burger {\r\n    animation: bonsa-fall .28s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-header.bonsa-swap-out .bonsa-lang              { animation-delay: 0s; }\r\n  .bonsa-header.bonsa-swap-out .bonsa-theme-toggle      { animation-delay: .03s; }\r\n  .bonsa-header.bonsa-swap-out .bonsa-right .bonsa-menu { animation-delay: .06s; }\r\n  .bonsa-header.bonsa-swap-out .bonsa-left  .bonsa-menu { animation-delay: .09s; }\r\n  .bonsa-header.bonsa-swap-out .bonsa-burger            { animation-delay: .06s; }\r\n  .bonsa-header.bonsa-swap-out .bonsa-logo              { animation-delay: .12s; }\r\n\r\n  .bonsa-header.bonsa-swap-in {\r\n    animation: bonsa-expand .6s cubic-bezier(.7,0,.2,1) forwards;\r\n    pointer-events: none;\r\n  }\r\n  .bonsa-header.bonsa-swap-in .bonsa-logo,\r\n  .bonsa-header.bonsa-swap-in .bonsa-menu,\r\n  .bonsa-header.bonsa-swap-in .bonsa-theme-toggle,\r\n  .bonsa-header.bonsa-swap-in .bonsa-lang,\r\n  .bonsa-header.bonsa-swap-in .bonsa-burger {\r\n    opacity: 0; animation: bonsa-rise .42s cubic-bezier(.4,0,.2,1) forwards;\r\n  }\r\n  .bonsa-header.bonsa-swap-in .bonsa-logo               { animation-delay: .30s; }\r\n  .bonsa-header.bonsa-swap-in .bonsa-left  .bonsa-menu  { animation-delay: .40s; }\r\n  .bonsa-header.bonsa-swap-in .bonsa-right .bonsa-menu  { animation-delay: .45s; }\r\n  .bonsa-header.bonsa-swap-in .bonsa-theme-toggle       { animation-delay: .52s; }\r\n  .bonsa-header.bonsa-swap-in .bonsa-lang               { animation-delay: .56s; }\r\n  .bonsa-header.bonsa-swap-in .bonsa-burger             { animation-delay: .45s; }\r\n\r\n  \/* ===== FALLBACK ANTI-DESAPARECIMENTO (bfcache \/ voltar) ===== *\/\r\n  .bonsa-header.bonsa-restore {\r\n    animation: none !important;\r\n    opacity: 1 !important;\r\n    clip-path: none !important;\r\n    pointer-events: auto !important;\r\n  }\r\n  .bonsa-header.bonsa-restore .bonsa-logo,\r\n  .bonsa-header.bonsa-restore .bonsa-menu,\r\n  .bonsa-header.bonsa-restore .bonsa-theme-toggle,\r\n  .bonsa-header.bonsa-restore .bonsa-lang,\r\n  .bonsa-header.bonsa-restore .bonsa-burger {\r\n    animation: none !important;\r\n    opacity: 1 !important;\r\n    transform: none !important;\r\n    filter: none !important;\r\n  }\r\n\r\n  @media (max-width: 1000px) {\r\n    @keyframes bonsa-fall-mobile {\r\n      0%   { opacity: 1; transform: translateY(0); }\r\n      100% { opacity: 0; transform: translateY(12px); }\r\n    }\r\n    .bonsa-header.bonsa-leave .bonsa-logo,\r\n    .bonsa-header.bonsa-swap-out .bonsa-logo { animation-name: bonsa-fall-mobile; }\r\n    .bonsa-header.bonsa-swap-in .bonsa-logo  { animation-name: bonsa-rise-mobile; }\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    .bonsa-header.bonsa-anim, .bonsa-header.bonsa-anim *,\r\n    .bonsa-header.bonsa-leave, .bonsa-header.bonsa-leave *,\r\n    .bonsa-header.bonsa-swap-out, .bonsa-header.bonsa-swap-out *,\r\n    .bonsa-header.bonsa-swap-in, .bonsa-header.bonsa-swap-in *,\r\n    .bonsa-mobile-panel.open, .bonsa-mobile-panel.open *,\r\n    .bonsa-mobile-panel.closing, .bonsa-mobile-panel.closing * { animation: none !important; opacity: 1 !important; }\r\n    .bonsa-theme-toggle .bonsa-toggle-thumb { transition: none !important; }\r\n    .bonsa-logo a { transition: none !important; }\r\n    html.bonsa-lang-switching [data-lang-pt],\r\n    html.bonsa-lang-switching [data-lang-en] { opacity: 1 !important; }\r\n  }\r\n\r\n  @media (hover: hover) and (pointer: fine) {\r\n    html.bonsa-cursor-on, html.bonsa-cursor-on * { cursor: none !important; }\r\n  }\r\n  .bonsa-cursor-dot {\r\n    position: fixed; top: 0; left: 0; width: 8px; height: 8px;\r\n    background: var(--bonsa-gold); border-radius: 50%;\r\n    pointer-events: none; z-index: 2147483647;\r\n    transform: translate(-50%, -50%);\r\n    transition: width .2s ease, height .2s ease, background .2s ease, opacity .2s ease;\r\n    opacity: 0;\r\n  }\r\n  .bonsa-cursor-ring {\r\n    position: fixed; top: 0; left: 0; width: 36px; height: 36px;\r\n    border: 1.5px solid var(--bonsa-gold); border-radius: 50%;\r\n    pointer-events: none; z-index: 2147483646;\r\n    transform: translate(-50%, -50%);\r\n    transition: width .25s ease, height .25s ease, border-color .25s ease, background .25s ease, opacity .2s ease;\r\n    opacity: 0;\r\n  }\r\n  .bonsa-cursor-ring.is-hover { width: 56px; height: 56px; background: rgba(159,131,104,.12); border-color: var(--bonsa-gold); }\r\n  .bonsa-cursor-dot.is-hover { opacity: 0; }\r\n  .bonsa-cursor-ring.is-click { width: 26px; height: 26px; }\r\n<\/style>\r\n\r\n<div class=\"bonsa-cursor-ring\" data-bonsa-ring><\/div>\r\n<div class=\"bonsa-cursor-dot\" data-bonsa-dot><\/div>\r\n\r\n<nav class=\"bonsa-header bonsa-anim\">\r\n  <div class=\"bonsa-left\">\r\n    <div class=\"bonsa-theme-toggle\" data-bonsa-theme data-active=\"light\">\r\n      <span class=\"bonsa-toggle-thumb\" aria-hidden=\"true\"><\/span>\r\n      <span class=\"active\" data-theme=\"light\">\r\n       <svg viewBox=\"887 470 34 34\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n  <path d=\"M904.3,491.8c-2.8,0-5-2.3-5-5s2.3-5,5-5,5,2.3,5,5-2.3,5-5,5ZM904.3,482.8c-2.2,0-4,1.8-4,4s1.8,4,4,4,4-1.8,4-4-1.8-4-4-4Z\"\/>\r\n  <path d=\"M904.3,481c-.3,0-.5-.2-.5-.5v-2.6c0-.3.2-.5.5-.5s.5.2.5.5v2.6c0,.3-.2.5-.5.5Z\"\/>\r\n  <path d=\"M898,487.3h-2.6c-.3,0-.5-.2-.5-.5s.2-.5.5-.5h2.6c.3,0,.5.2.5.5s-.2.5-.5.5Z\"\/>\r\n  <path d=\"M904.3,496.2c-.3,0-.5-.2-.5-.5v-2.6c0-.3.2-.5.5-.5s.5.2.5.5v2.6c0,.3-.2.5-.5.5Z\"\/>\r\n  <path d=\"M913.2,487.3h-2.6c-.3,0-.5-.2-.5-.5s.2-.5.5-.5h2.6c.3,0,.5.2.5.5s-.2.5-.5.5Z\"\/>\r\n  <path d=\"M899.9,482.8c-.1,0-.3,0-.4-.1l-1.8-1.8c-.2-.2-.2-.5,0-.7s.5-.2.7,0l1.8,1.8c.2.2.2.5,0,.7s-.2.1-.4.1Z\"\/>\r\n  <path d=\"M898,493.6c-.1,0-.3,0-.4-.1-.2-.2-.2-.5,0-.7l1.8-1.9c.2-.2.5-.2.7,0s.2.5,0,.7l-1.8,1.9c0,0-.2.1-.4.1Z\"\/>\r\n  <path d=\"M910.6,493.6c-.1,0-.3,0-.4-.1l-1.8-1.9c-.2-.2-.2-.5,0-.7s.5-.2.7,0l1.8,1.9c.2.2.2.5,0,.7s-.2.1-.4.1Z\"\/>\r\n  <path d=\"M908.8,482.8c-.1,0-.3,0-.4-.1-.2-.2-.2-.5,0-.7l1.8-1.8c.2-.2.5-.2.7,0s.2.5,0,.7l-1.8,1.8c0,0-.2.1-.4.1Z\"\/>\r\n<\/svg>\r\n      <\/span>\r\n      <span data-theme=\"dark\">\r\n        <svg viewBox=\"926 470 34 34\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n  <path d=\"M943.2,494c-3.9,0-7.1-3.2-7.1-7.1s2-5.8,4.9-6.8c.2,0,.4,0,.5.1.1.1.2.3.1.5-.2.5-.2,1.1-.2,1.7,0,3.4,2.7,6.1,6.1,6.1s1.3-.1,1.9-.3c.2,0,.4,0,.5.1s.2.3.1.5c-.9,3.1-3.7,5.2-6.9,5.2ZM940.4,481.4c-2,1-3.3,3.1-3.3,5.5,0,3.4,2.7,6.1,6.1,6.1s4.6-1.4,5.6-3.6c-.4,0-.9.1-1.3.1-3.9,0-7.1-3.2-7.1-7.1s0-.7,0-1Z\"\/>\r\n<\/svg>\r\n      <\/span>\r\n    <\/div>\r\n    <ul class=\"bonsa-menu\">\r\n      <li><a href=\"\/?page_id=628\" data-bonsa-nav data-route=\"projetos\"><span data-lang-pt>Projetos<\/span><span data-lang-en>Projects<\/span><\/a><\/li>\r\n      <li><a href=\"\/?page_id=608\" data-bonsa-nav data-route=\"servicos\"><span data-lang-pt>Servi\u00e7os<\/span><span data-lang-en>Services<\/span><\/a><\/li>\r\n    <\/ul>\r\n  <\/div>\r\n\r\n  <div class=\"bonsa-logo\">\r\n    <a href=\"\/?page_id=28\" data-bonsa-logo data-route=\"home\"><\/a>\r\n  <\/div>\r\n\r\n  <div class=\"bonsa-right\">\r\n    <div class=\"bonsa-lang\" data-bonsa-lang>\r\n      <button class=\"active\" data-lang=\"pt\">PT<\/button>\r\n      <button data-lang=\"en\">EN<\/button>\r\n    <\/div>\r\n    <ul class=\"bonsa-menu\">\r\n      <li><a href=\"\/?page_id=626\" data-bonsa-nav data-route=\"metodologia\"><span data-lang-pt>Metodologia<\/span><span data-lang-en>Methodology<\/span><\/a><\/li>\r\n      <li><a href=\"\/?page_id=627\" data-bonsa-nav data-route=\"sobre\"><span data-lang-pt>Sobre n\u00f3s<\/span><span data-lang-en>About us<\/span><\/a><\/li>\r\n    <\/ul>\r\n  <\/div>\r\n\r\n  <button class=\"bonsa-burger\" data-bonsa-burger aria-label=\"Menu\">\r\n    <span><\/span><span><\/span><span><\/span>\r\n  <\/button>\r\n<\/nav>\r\n\r\n<div class=\"bonsa-mobile-panel\" data-bonsa-panel role=\"dialog\" aria-modal=\"true\" aria-label=\"Menu\">\r\n  <a href=\"\/?page_id=628\" data-bonsa-nav data-route=\"projetos\"><span data-lang-pt>Projetos<\/span><span data-lang-en>Projects<\/span><\/a>\r\n  <a href=\"\/?page_id=608\" data-bonsa-nav data-route=\"servicos\"><span data-lang-pt>Servi\u00e7os<\/span><span data-lang-en>Services<\/span><\/a>\r\n  <a href=\"\/?page_id=626\" data-bonsa-nav data-route=\"metodologia\"><span data-lang-pt>Metodologia<\/span><span data-lang-en>Methodology<\/span><\/a>\r\n  <a href=\"\/?page_id=627\" data-bonsa-nav data-route=\"sobre\"><span data-lang-pt>Sobre n\u00f3s<\/span><span data-lang-en>About us<\/span><\/a>\r\n  <div class=\"bonsa-mobile-footer\">\r\n    <div class=\"bonsa-theme-toggle\" data-bonsa-theme data-active=\"light\">\r\n      <span class=\"bonsa-toggle-thumb\" aria-hidden=\"true\"><\/span>\r\n      <span class=\"active\" data-theme=\"light\">\r\n        <svg viewBox=\"887 470 34 34\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n  <path d=\"M904.3,491.8c-2.8,0-5-2.3-5-5s2.3-5,5-5,5,2.3,5,5-2.3,5-5,5ZM904.3,482.8c-2.2,0-4,1.8-4,4s1.8,4,4,4,4-1.8,4-4-1.8-4-4-4Z\"\/>\r\n  <path d=\"M904.3,481c-.3,0-.5-.2-.5-.5v-2.6c0-.3.2-.5.5-.5s.5.2.5.5v2.6c0,.3-.2.5-.5.5Z\"\/>\r\n  <path d=\"M898,487.3h-2.6c-.3,0-.5-.2-.5-.5s.2-.5.5-.5h2.6c.3,0,.5.2.5.5s-.2.5-.5.5Z\"\/>\r\n  <path d=\"M904.3,496.2c-.3,0-.5-.2-.5-.5v-2.6c0-.3.2-.5.5-.5s.5.2.5.5v2.6c0,.3-.2.5-.5.5Z\"\/>\r\n  <path d=\"M913.2,487.3h-2.6c-.3,0-.5-.2-.5-.5s.2-.5.5-.5h2.6c.3,0,.5.2.5.5s-.2.5-.5.5Z\"\/>\r\n  <path d=\"M899.9,482.8c-.1,0-.3,0-.4-.1l-1.8-1.8c-.2-.2-.2-.5,0-.7s.5-.2.7,0l1.8,1.8c.2.2.2.5,0,.7s-.2.1-.4.1Z\"\/>\r\n  <path d=\"M898,493.6c-.1,0-.3,0-.4-.1-.2-.2-.2-.5,0-.7l1.8-1.9c.2-.2.5-.2.7,0s.2.5,0,.7l-1.8,1.9c0,0-.2.1-.4.1Z\"\/>\r\n  <path d=\"M910.6,493.6c-.1,0-.3,0-.4-.1l-1.8-1.9c-.2-.2-.2-.5,0-.7s.5-.2.7,0l1.8,1.9c.2.2.2.5,0,.7s-.2.1-.4.1Z\"\/>\r\n  <path d=\"M908.8,482.8c-.1,0-.3,0-.4-.1-.2-.2-.2-.5,0-.7l1.8-1.8c.2-.2.5-.2.7,0s.2.5,0,.7l-1.8,1.8c0,0-.2.1-.4.1Z\"\/>\r\n<\/svg>\r\n      <\/span>\r\n      <span data-theme=\"dark\">\r\n        <svg viewBox=\"926 470 34 34\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n  <path d=\"M943.2,494c-3.9,0-7.1-3.2-7.1-7.1s2-5.8,4.9-6.8c.2,0,.4,0,.5.1.1.1.2.3.1.5-.2.5-.2,1.1-.2,1.7,0,3.4,2.7,6.1,6.1,6.1s1.3-.1,1.9-.3c.2,0,.4,0,.5.1s.2.3.1.5c-.9,3.1-3.7,5.2-6.9,5.2ZM940.4,481.4c-2,1-3.3,3.1-3.3,5.5,0,3.4,2.7,6.1,6.1,6.1s4.6-1.4,5.6-3.6c-.4,0-.9.1-1.3.1-3.9,0-7.1-3.2-7.1-7.1s0-.7,0-1Z\"\/>\r\n<\/svg>\r\n      <\/span>\r\n    <\/div>\r\n    <div class=\"bonsa-lang\" data-bonsa-lang>\r\n      <button class=\"active\" data-lang=\"pt\">PT<\/button>\r\n      <button data-lang=\"en\">EN<\/button>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  function neutralizeHost() {\r\n    var header = document.querySelector('.bonsa-header');\r\n    if (!header) return;\r\n    var node = header.parentElement, host = null;\r\n    while (node && node !== document.body) {\r\n      if (node.classList &&\r\n         (node.classList.contains('e-con') ||\r\n          node.classList.contains('elementor-section') ||\r\n          node.classList.contains('elementor-top-section'))) {\r\n        host = node;\r\n      }\r\n      node = node.parentElement;\r\n    }\r\n    if (host) host.classList.add('bonsa-header-host');\r\n  }\r\n  neutralizeHost();\r\n\r\n  var LOGO_DARK = '<svg viewBox=\"595 368 180 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><g><path fill=\"#9f8368\" d=\"M625.9,396.2h-5.4c-2,0-3.7-1.6-3.7-3.7h0s5.4,0,5.4,0v-17.6h-5.4c0-2,1.6-3.7,3.7-3.7h5.4v24.9Z\"\/><path fill=\"#9f8368\" d=\"M606.5,396.2h-5.4v-24.9h5.4c2,0,3.7,1.6,3.7,3.7h0s-5.4,0-5.4,0v17.6h5.4c0,2-1.6,3.7-3.7,3.7Z\"\/><rect fill=\"#9f8368\" x=\"609.6\" y=\"379.8\" width=\"7.8\" height=\"7.8\"\/><\/g><g><path fill=\"#eeece8\" d=\"M721.1,389.8l3.1-.9c.6,2.6,2.8,4.2,6,4.2s5.7-1.9,5.7-4-2-3.4-4.2-4l-3.6-.8c-3-.7-6-2.3-6-6.4s3.1-6.6,8.1-6.6,7.5,2.2,8.3,5.8l-3.1.9c-.5-2-2.5-3.6-5.2-3.6s-4.9,1.8-4.9,3.5,1.9,3,3.7,3.4l3.6.8c3.7.9,6.4,3.1,6.4,7s-3.2,7.1-8.8,7.1-8.1-2.3-9.1-6.4Z\"\/><path fill=\"#eeece8\" d=\"M682.7,371.6c-1.2-.2-2.4-.3-3.7-.3-2.7,0-5.3.6-7.3,1.8-3.1,1.8-5.1,5.2-5.1,10.4,0,0,0,.2,0,.3h0c0,.1,0,.2,0,.2,0,5.3,1.9,8.5,4.8,10.4,0,0,0,0,0,0,2.1,1.3,4.8,1.9,7.7,1.9s4.3-.3,6.1-1.1c3.8-1.6,6.3-5.1,6.3-11.3s-3.7-11.1-8.8-12.1ZM684.4,391.8c-1.5.8-3.4,1.2-5.4,1.2s-5.3-.7-7-2.4c-1.4-1.5-2.3-3.7-2.3-6.9s1.1-5.8,2.9-7.3c1.7-1.4,3.9-2,6.4-2s2.9.2,4.1.6c3.1,1.1,5.2,3.7,5.2,8.7s-1.6,6.8-3.9,8.1Z\"\/><path fill=\"#eeece8\" d=\"M717.2,371.3v24.9h-3.1l-2.4-3.1-.7-.9-1.8-2.2-1.4-1.7-1.1-1.4-1.2-1.6-.8-1-.4-.5-1.2-1.5-1.2-1.6-.3-.3-2.2-2.8-.9-1.2v19.9h-3.1v-21.8l-2.4-.9c-.4-.2-.7-.6-.7-1.1v-1.1h6.2l2.4,3.1.7.8,1.8,2.3,1.3,1.7,1.1,1.4,1.2,1.6.8,1,.5.6,1.2,1.6,1.2,1.6.2.2,2.3,2.9.9,1.1v-19.8h3.1Z\"\/><path fill=\"#eeece8\" d=\"M662.4,386.8c-.2-.6-.5-1.1-.8-1.6-.1-.2-.2-.3-.4-.5-.3-.4-.7-.7-1-1-.3-.2-.6-.4-.9-.6.3-.3.5-.6.8-.9.3-.5.6-1,.8-1.6.3-.7.4-1.5.4-2.3s0-.5,0-.8c-.1-1.1-.5-2.2-1.1-3.1-.5-.8-1.2-1.4-1.9-1.9-.9-.6-2-1-3.1-1.1-.3,0-.5,0-.8,0h-11.7v1.2c0,.5.3.9.7,1l2.4.9v21.8h10.1c.8,0,1.6-.1,2.3-.4,1.2-.4,2.3-1.2,3.1-2.2.1-.2.3-.3.4-.5.6-.9,1-2,1.1-3.1,0-.3,0-.5,0-.8,0-.8-.1-1.6-.4-2.3ZM648.8,374.4h5.4c.3,0,.5,0,.8,0,1.5.3,2.7,1.5,3,3,0,.3,0,.5,0,.8,0,.9-.3,1.7-.8,2.3-.6.8-1.4,1.3-2.3,1.5-.3,0-.5,0-.8,0h-5.4v-7.8ZM659.6,389.9c-.2,1-.7,1.8-1.5,2.3-.6.4-1.3.7-2.1.8,0,0-.2,0-.3,0s-.2,0-.2,0h-6.8v-7.8h7c.9,0,1.7.3,2.3.8.3.2.6.5.8.8.5.7.8,1.5.8,2.3s0,.5,0,.8Z\"\/><path fill=\"#eeece8\" d=\"M765,395c0-.5-.3-.9-.7-1.1h0s-.4-.1-.4-.1l-1-.4h0s-.1-.4-.1-.4l-1.1-3.1-.8-2.3-.3-.8-.6-1.6-.6-1.6-.6-1.5-.6-1.6-.5-1.4-.6-1.7-1.1-3.1-1.1-3.1h-5.6v1.2c0,.5.3.9.7,1l.4.2-.3.8-.9,2.5-.2.7-.6,1.7-.5,1.4-.6,1.6-.6,1.5-.6,1.6-.6,1.6-.3.8-.8,2.3-1.1,3.1-1.1,3.1h3.3l1.1-3.1,1.1-3.1h10.7l1.1,3.1,1.1,3.1h4.4v-1.1h0ZM748.8,386.8l.4-1.1.2-.5.6-1.6.6-1.5.6-1.6.4-1,.8-2.1.8-2.2.8,2.2.8,2.1.4,1,.6,1.6.6,1.5.6,1.6.6,1.6h-8.4Z\"\/><\/g><\/svg>';\r\n\r\n  var LOGO_LIGHT = LOGO_DARK.replace(\/#eeece8\/g, '#141d1f');\r\n\r\n  function applyLogo() {\r\n    var dark = document.documentElement.classList.contains('bonsa-dark');\r\n    var el = document.querySelector('[data-bonsa-logo]');\r\n    if (el) el.innerHTML = dark ? LOGO_DARK : LOGO_LIGHT;\r\n  }\r\n\r\n  var THEME_KEY = 'bonsa-theme';\r\n  var LANG_KEY  = 'bonsa-lang';\r\n\r\n  var PAGE_BG_LIGHT = '#edece8';\r\n  var PAGE_BG_DARK  = '#141d1f';\r\n\r\n  function applyPageBg() {\r\n    var dark = document.documentElement.classList.contains('bonsa-dark');\r\n    var c = dark ? PAGE_BG_DARK : PAGE_BG_LIGHT;\r\n    document.documentElement.style.setProperty('background-color', c, 'important');\r\n    document.body.style.setProperty('background-color', c, 'important');\r\n    var meta = document.querySelector('meta[name=\"theme-color\"]');\r\n    if (!meta) {\r\n      meta = document.createElement('meta');\r\n      meta.setAttribute('name', 'theme-color');\r\n      document.head.appendChild(meta);\r\n    }\r\n    meta.setAttribute('content', c);\r\n  }\r\n\r\n  \/* ===================== ROTAS \/ PAGE IDS ===================== *\/\r\n  var BONSA_PAGES = {\r\n    home:        28,\r\n    metodologia: 626,\r\n    projetos:    628,\r\n    servicos:    608,\r\n    sobre:       627\r\n  };\r\n\r\n  function bonsaCurrentLang() {\r\n    var u;\r\n    try { u = new URL(window.location.href).searchParams.get('lang'); } catch (e) {}\r\n    var s;\r\n    try { s = localStorage.getItem(LANG_KEY); } catch (e) {}\r\n    return u || s || 'pt';\r\n  }\r\n\r\n  function bonsaUrl(route) {\r\n    var id = BONSA_PAGES[route];\r\n    if (!id) return '\/';\r\n    return window.location.origin + '\/?page_id=' + id + '&lang=' + bonsaCurrentLang();\r\n  }\r\n\r\n  function bonsaSyncLinks() {\r\n    document.querySelectorAll('[data-route]').forEach(function (a) {\r\n      a.setAttribute('href', bonsaUrl(a.getAttribute('data-route')));\r\n    });\r\n  }\r\n  bonsaSyncLinks();\r\n  window.addEventListener('bonsa:lang', bonsaSyncLinks);\r\n\r\n  var burger = document.querySelector('[data-bonsa-burger]');\r\n  var panel  = document.querySelector('[data-bonsa-panel]');\r\n  var header = document.querySelector('.bonsa-header');\r\n\r\n  (function applySavedTheme() {\r\n    var isDark = document.documentElement.classList.contains('bonsa-dark');\r\n    document.body.classList.toggle('bonsa-dark', isDark);\r\n  })();\r\n\r\n  applyLogo();\r\n  applyPageBg();\r\n\r\n  function syncToggles() {\r\n    var isDark = document.documentElement.classList.contains('bonsa-dark');\r\n    document.querySelectorAll('[data-bonsa-theme]').forEach(function (tg) {\r\n      tg.setAttribute('data-active', isDark ? 'dark' : 'light');\r\n      tg.querySelectorAll('span[data-theme]').forEach(function (s) {\r\n        s.classList.toggle('active',\r\n          (isDark && s.dataset.theme === 'dark') ||\r\n          (!isDark && s.dataset.theme === 'light'));\r\n      });\r\n    });\r\n  }\r\n  syncToggles();\r\n\r\n  function positionPanel() {\r\n    if (!panel || !header) return;\r\n    var rect = header.getBoundingClientRect();\r\n    panel.style.top = (rect.bottom + 10) + 'px';\r\n  }\r\n  positionPanel();\r\n  window.addEventListener('resize', positionPanel);\r\n  window.addEventListener('scroll', positionPanel);\r\n\r\n  function openPanel() {\r\n    positionPanel();\r\n    panel.classList.remove('closing');\r\n    panel.classList.add('open');\r\n    if (burger) burger.classList.add('is-open');\r\n    document.body.style.overflow = 'hidden';\r\n  }\r\n\r\n  function closePanelAnimated() {\r\n    if (!panel || !panel.classList.contains('open')) return 0;\r\n    panel.classList.remove('open');\r\n    panel.classList.add('closing');\r\n    if (burger) burger.classList.remove('is-open');\r\n    document.body.style.overflow = '';\r\n    var CLOSE_MS = 400;\r\n    setTimeout(function () { panel.classList.remove('closing'); }, CLOSE_MS);\r\n    return CLOSE_MS;\r\n  }\r\n\r\n  \/* ======================================================\r\n     SWAP DO CABE\u00c7ALHO: fecha -> aplica mudan\u00e7a -> reabre\r\n     ====================================================== *\/\r\n  var SWAP_OUT_MS = 700;\r\n  var SWAP_IN_MS  = 1050;\r\n  var isSwapping  = false;\r\n  var isNavigating = false;\r\n\r\n  function headerSwap(apply) {\r\n    if (!header) { apply(); return; }\r\n    if (isSwapping) return;\r\n    isSwapping = true;\r\n\r\n    var panelWait = closePanelAnimated();\r\n\r\n    setTimeout(function () {\r\n      header.classList.remove('bonsa-anim', 'bonsa-swap-in', 'bonsa-restore');\r\n      void header.offsetWidth;\r\n      header.classList.add('bonsa-swap-out');\r\n      window.dispatchEvent(new CustomEvent('bonsa:swap-out'));\r\n\r\n      setTimeout(function () {\r\n        try { apply(); } catch (e) {}\r\n\r\n        header.classList.remove('bonsa-swap-out');\r\n        void header.offsetWidth;\r\n        header.classList.add('bonsa-swap-in');\r\n        window.dispatchEvent(new CustomEvent('bonsa:swap-in'));\r\n\r\n        setTimeout(function () {\r\n          header.classList.remove('bonsa-swap-in');\r\n          isSwapping = false;\r\n          positionPanel();\r\n        }, SWAP_IN_MS);\r\n      }, SWAP_OUT_MS);\r\n    }, panelWait);\r\n  }\r\n\r\n  \/* ================= TEMA ================= *\/\r\n  function applyTheme(isDark) {\r\n    document.documentElement.classList.toggle('bonsa-dark', isDark);\r\n    document.body.classList.toggle('bonsa-dark', isDark);\r\n    try { localStorage.setItem(THEME_KEY, isDark ? 'dark' : 'light'); } catch (e) {}\r\n    syncToggles();\r\n    applyLogo();\r\n    applyPageBg();\r\n    window.dispatchEvent(new CustomEvent('bonsa:theme', { detail: { dark: isDark } }));\r\n  }\r\n\r\n  document.querySelectorAll('[data-bonsa-theme] span[data-theme]').forEach(function (btn) {\r\n    btn.addEventListener('click', function () {\r\n      if (isSwapping || isNavigating) return;\r\n      var isDark = this.dataset.theme === 'dark';\r\n      var already = document.documentElement.classList.contains('bonsa-dark');\r\n      if (isDark === already) return;\r\n      headerSwap(function () { applyTheme(isDark); });\r\n    });\r\n  });\r\n\r\n  \/* ================= NAVEGA\u00c7\u00c3O ================= *\/\r\n  function closeAndGo(url) {\r\n    var panelWait = closePanelAnimated();\r\n    setTimeout(function () {\r\n      if (header) {\r\n        header.classList.remove('bonsa-anim', 'bonsa-swap-in', 'bonsa-swap-out', 'bonsa-restore');\r\n        void header.offsetWidth;\r\n        header.classList.add('bonsa-leave');\r\n      }\r\n      window.dispatchEvent(new CustomEvent('bonsa:leave', { detail: { url: url } }));\r\n      setTimeout(function () { window.location.href = url; }, 1150);\r\n    }, panelWait);\r\n  }\r\n\r\n  (function markActive() {\r\n    var id;\r\n    try { id = new URL(window.location.href).searchParams.get('page_id'); } catch (e) {}\r\n    if (!id) return;\r\n    document.querySelectorAll('[data-route]').forEach(function (a) {\r\n      var route = a.getAttribute('data-route');\r\n      if (route === 'home') return;\r\n      if (String(BONSA_PAGES[route]) === String(id)) a.classList.add('active');\r\n    });\r\n  })();\r\n\r\n  function hrefFor(el) {\r\n    var r = el.getAttribute('data-route');\r\n    return r ? bonsaUrl(r) : (el.getAttribute('href') || '\/');\r\n  }\r\n\r\n  document.querySelectorAll('[data-bonsa-nav]').forEach(function (a) {\r\n    a.addEventListener('click', function (e) {\r\n      e.preventDefault();\r\n      if (isNavigating || isSwapping) return;\r\n      isNavigating = true;\r\n      var url = hrefFor(this);\r\n      this.classList.add('is-clicked');\r\n      var self = this;\r\n      setTimeout(function () { self.classList.remove('is-clicked'); }, 200);\r\n      closeAndGo(url);\r\n    });\r\n  });\r\n\r\n  var logoLink = document.querySelector('[data-bonsa-logo]');\r\n  if (logoLink) {\r\n    logoLink.addEventListener('click', function (e) {\r\n      e.preventDefault();\r\n      if (isNavigating || isSwapping) return;\r\n      isNavigating = true;\r\n      var url = hrefFor(this);\r\n      this.classList.add('is-clicked');\r\n      var self = this;\r\n      setTimeout(function () { self.classList.remove('is-clicked'); }, 200);\r\n      closeAndGo(url);\r\n    });\r\n  }\r\n\r\n  \/* ================= IDIOMA ================= *\/\r\n  function getLang() { return bonsaCurrentLang(); }\r\n\r\n  function setLang(lang, animate) {\r\n    var root = document.documentElement;\r\n\r\n    function updateState() {\r\n      try { localStorage.setItem(LANG_KEY, lang); } catch (e) {}\r\n      document.querySelectorAll('[data-bonsa-lang] button').forEach(function (b) {\r\n        b.classList.toggle('active', b.dataset.lang === lang);\r\n      });\r\n      try {\r\n        var url = new URL(window.location.href);\r\n        url.searchParams.set('lang', lang);\r\n        window.history.replaceState({}, '', url.toString());\r\n      } catch (e) {}\r\n      window.dispatchEvent(new CustomEvent('bonsa:lang', { detail: { lang: lang } }));\r\n    }\r\n\r\n    if (!animate) {\r\n      root.setAttribute('data-lang', lang);\r\n      updateState();\r\n      return;\r\n    }\r\n\r\n    root.classList.add('bonsa-lang-switching');\r\n    setTimeout(function () {\r\n      root.setAttribute('data-lang', lang);\r\n      updateState();\r\n      void root.offsetWidth;\r\n      requestAnimationFrame(function () {\r\n        requestAnimationFrame(function () {\r\n          root.classList.remove('bonsa-lang-switching');\r\n        });\r\n      });\r\n    }, 250);\r\n  }\r\n\r\n  setLang(getLang(), false);\r\n\r\n  document.querySelectorAll('[data-bonsa-lang] button').forEach(function (btn) {\r\n    btn.addEventListener('click', function () {\r\n      if (isSwapping || isNavigating) return;\r\n      var lang = this.dataset.lang;\r\n      if (this.classList.contains('active')) return;\r\n\r\n      this.classList.add('is-clicked');\r\n      var self = this;\r\n      setTimeout(function () { self.classList.remove('is-clicked'); }, 200);\r\n\r\n      headerSwap(function () { setLang(lang, true); });\r\n    });\r\n  });\r\n\r\n  \/* ================= BURGER ================= *\/\r\n  if (burger && panel) {\r\n    burger.addEventListener('click', function () {\r\n      if (isSwapping) return;\r\n      if (panel.classList.contains('open')) closePanelAnimated();\r\n      else openPanel();\r\n    });\r\n    document.addEventListener('keydown', function (e) {\r\n      if (e.key === 'Escape') closePanelAnimated();\r\n    });\r\n  }\r\n\r\n  \/* =========================================================\r\n     RESET AO VOLTAR (bfcache \/ bot\u00e3o voltar do navegador)\r\n     ========================================================= *\/\r\n  var restoreTimer = null;\r\n\r\n  function bonsaResetEntrance() {\r\n    isNavigating = false;\r\n    isSwapping   = false;\r\n\r\n    if (panel)  panel.classList.remove('open', 'closing');\r\n    if (burger) burger.classList.remove('is-open');\r\n    document.body.style.overflow = '';\r\n\r\n    document.querySelectorAll('.is-clicked').forEach(function (el) {\r\n      el.classList.remove('is-clicked');\r\n    });\r\n\r\n    if (!header) return;\r\n\r\n    clearTimeout(restoreTimer);\r\n\r\n    header.classList.remove('bonsa-leave', 'bonsa-swap-out', 'bonsa-swap-in', 'bonsa-anim', 'bonsa-restore');\r\n    header.style.animation = 'none';\r\n    void header.offsetWidth;\r\n    header.style.animation = '';\r\n    header.classList.add('bonsa-anim');\r\n\r\n    positionPanel();\r\n    syncToggles();\r\n    applyLogo();\r\n    applyPageBg();\r\n    setLang(getLang(), false);\r\n    bonsaSyncLinks();\r\n\r\n    window.dispatchEvent(new CustomEvent('bonsa:swap-in'));\r\n\r\n    restoreTimer = setTimeout(function () {\r\n      var cs = getComputedStyle(header);\r\n      if (parseFloat(cs.opacity) < 0.9) {\r\n        header.classList.remove('bonsa-anim');\r\n        header.classList.add('bonsa-restore');\r\n      }\r\n    }, 2000);\r\n  }\r\n\r\n  function bonsaIsBackForward() {\r\n    try {\r\n      var nav = performance.getEntriesByType('navigation')[0];\r\n      if (nav && nav.type === 'back_forward') return true;\r\n    } catch (e) {}\r\n    try {\r\n      if (performance.navigation && performance.navigation.type === 2) return true;\r\n    } catch (e) {}\r\n    return false;\r\n  }\r\n\r\n  window.addEventListener('pageshow', function (e) {\r\n    if (e.persisted || bonsaIsBackForward()) bonsaResetEntrance();\r\n  });\r\n\r\n  window.addEventListener('popstate', bonsaResetEntrance);\r\n\r\n  document.addEventListener('visibilitychange', function () {\r\n    if (!document.hidden && header &&\r\n        (header.classList.contains('bonsa-leave') || isNavigating)) {\r\n      bonsaResetEntrance();\r\n    }\r\n  });\r\n\r\n  \/* ================= CURSOR ================= *\/\r\n  var canHover = window.matchMedia('(hover: hover) and (pointer: fine)').matches;\r\n  if (canHover) {\r\n    document.documentElement.classList.add('bonsa-cursor-on');\r\n    var dot  = document.querySelector('[data-bonsa-dot]');\r\n    var ring = document.querySelector('[data-bonsa-ring]');\r\n    var mouseX = 0, mouseY = 0, ringX = 0, ringY = 0, visible = false;\r\n    var clickableSel = 'a, button, input, textarea, select, label, ' +\r\n                       '[role=\"button\"], [onclick], .bonsa-theme-toggle, ' +\r\n                       '.bonsa-theme-toggle span, [data-bonsa-burger], ' +\r\n                       '[data-bonsa-lang] button, [data-bonsa-logo]';\r\n    document.addEventListener('mousemove', function (e) {\r\n      mouseX = e.clientX; mouseY = e.clientY;\r\n      dot.style.left = mouseX + 'px'; dot.style.top = mouseY + 'px';\r\n      if (!visible) { visible = true; dot.style.opacity = '1'; ring.style.opacity = '1'; }\r\n      var hovering = e.target.closest ? e.target.closest(clickableSel) : null;\r\n      if (hovering) { ring.classList.add('is-hover'); dot.classList.add('is-hover'); }\r\n      else { ring.classList.remove('is-hover'); dot.classList.remove('is-hover'); }\r\n    });\r\n    function animateRing() {\r\n      ringX += (mouseX - ringX) * 0.18; ringY += (mouseY - ringY) * 0.18;\r\n      ring.style.left = ringX + 'px'; ring.style.top = ringY + 'px';\r\n      requestAnimationFrame(animateRing);\r\n    }\r\n    requestAnimationFrame(animateRing);\r\n    document.addEventListener('mousedown', function () { ring.classList.add('is-click'); });\r\n    document.addEventListener('mouseup', function () { ring.classList.remove('is-click'); });\r\n    document.addEventListener('mouseleave', function () { dot.style.opacity='0'; ring.style.opacity='0'; visible=false; });\r\n    document.addEventListener('mouseenter', function () { dot.style.opacity='1'; ring.style.opacity='1'; visible=true; });\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cb63bd5 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"cb63bd5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cef7e1 elementor-widget elementor-widget-html\" data-id=\"1cef7e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"bonsa-page\" data-bonsa-page>\r\n\r\n  <div class=\"bonsa-pin-wrap\" data-pin>\r\n    <div class=\"bonsa-pin-sticky\" data-stage-el>\r\n\r\n      <div class=\"bonsa-float-layer\" data-float>\r\n        <div class=\"bonsa-orbit\" data-orbit><\/div>\r\n      <\/div>\r\n\r\n      <section class=\"bonsa-hero\" data-hero>\r\n        <p class=\"bonsa-hero-sub\" data-lang-pt data-intro-sub>Visitando o futuro com tecnologia e realismo<\/p>\r\n        <p class=\"bonsa-hero-sub\" data-lang-en data-intro-sub>Visiting the future with technology and realism<\/p>\r\n\r\n        <h1 class=\"bonsa-hero-title\" data-lang-pt data-intro-title>DAMOS VIDA \u00c0S<br class=\"br-desktop\">SUAS IDEIAS EM 3D<\/h1>\r\n        <h1 class=\"bonsa-hero-title\" data-lang-en data-intro-title>WE BRING YOUR<br class=\"br-desktop\">IDEAS TO LIFE IN 3D<\/h1>\r\n\r\n        <div class=\"bonsa-tags\" data-lang-pt data-tags>\r\n          <span>\u2022 RENDER 3D<\/span>\r\n          <span>\u2022 TOUR 360\u00ba<\/span>\r\n          <span>\u2022 ANIMA\u00c7\u00d5ES<\/span>\r\n        <\/div>\r\n        <div class=\"bonsa-tags\" data-lang-en data-tags>\r\n          <span>\u2022 3D RENDER<\/span>\r\n          <span>\u2022 360\u00ba TOUR<\/span>\r\n          <span>\u2022 ANIMATIONS<\/span>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <div class=\"bonsa-panel-bg-full\" data-panel-bg-full><\/div>\r\n\r\n      <div class=\"bonsa-panel\" data-panel>\r\n\r\n        <!-- ===== IMAGEM DE FUNDO: DESKTOP + MOBILE ===== -->\r\n        <div class=\"bonsa-panel-media\" data-panel-media>\r\n          <picture>\r\n            <source media=\"(max-width: 768px)\"\r\n                    srcset=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/09\/HOME-MOBILE-scaled.jpeg\">\r\n            <source media=\"(min-width: 769px)\"\r\n                    srcset=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/09\/HOME-DESKTOP-scaled.jpeg\">\r\n            <img data-panel-img\r\n                 src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/09\/HOME-DESKTOP-scaled.jpeg\"\r\n                 alt=\"\"\r\n                 aria-hidden=\"true\"\r\n                 decoding=\"async\"\r\n                 fetchpriority=\"low\"\r\n                 loading=\"lazy\">\r\n          <\/picture>\r\n          <div class=\"bonsa-panel-veil\" data-panel-veil><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bonsa-panel-fade\" data-panel-fade><\/div>\r\n\r\n        <section class=\"bonsa-intro\">\r\n          <div class=\"bonsa-intro-bar\" data-bar><\/div>\r\n          <div class=\"bonsa-intro-content\">\r\n\r\n            <div data-lang-pt>\r\n              <h2>\r\n                <span class=\"bonsa-line\" data-words>APRESENTAR MELHOR \u00c9 VENDER MELHOR.<\/span><br class=\"br-desktop\">\r\n                <span class=\"bonsa-line accent\" data-words>VISUALIZA\u00c7\u00c3O ESTRAT\u00c9GICA PARA LAN\u00c7AMENTOS.<\/span>\r\n              <\/h2>\r\n              <p><span class=\"bonsa-line\" data-words>Estamos na miss\u00e3o de desvendar o potencial \u00fanico de cada projeto e transform\u00e1-lo em imagens que contam uma hist\u00f3ria.<\/span><\/p>\r\n              <p><span class=\"bonsa-line\" data-words>Navegamos por novas fronteiras de representa\u00e7\u00e3o, seja com um tour em 360\u00ba, apresenta\u00e7\u00f5es em VR ou at\u00e9 mesmo dando vida ao seu projeto com anima\u00e7\u00f5es incr\u00edveis. Estamos aqui para fazer seu projeto se destacar e conquistar o cora\u00e7\u00e3o do seu cliente.<\/span><\/p>\r\n            <\/div>\r\n\r\n            <div data-lang-en>\r\n              <h2>\r\n                <span class=\"bonsa-line\" data-words>PRESENTING BETTER IS SELLING BETTER.<\/span><br class=\"br-desktop\">\r\n                <span class=\"bonsa-line accent\" data-words>STRATEGIC VISUALIZATION FOR LAUNCHES.<\/span>\r\n              <\/h2>\r\n              <p><span class=\"bonsa-line\" data-words>We're on a mission to uncover the unique potential of each project and turn it into images that tell a story.<\/span><\/p>\r\n              <p><span class=\"bonsa-line\" data-words>We explore new frontiers of representation, whether with a 360\u00ba tour, VR presentations, or even bringing your project to life with incredible animations. We're here to make your project stand out and win your client's heart.<\/span><\/p>\r\n            <\/div>\r\n\r\n          <\/div>\r\n        <\/section>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<div class=\"bonsa-exit-overlay\" data-exit-overlay><\/div>\r\n\r\n<style>\r\n\/* ===== FONTES BORNA ===== *\/\r\n@font-face{font-family:'Borna';font-style:normal;font-weight:400;font-display:swap;src:url('https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/07\/Borna-Regular.woff2') format('woff2');}\r\n@font-face{font-family:'Borna';font-style:normal;font-weight:500;font-display:swap;src:url('https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/07\/Borna-Medium.woff2') format('woff2');}\r\n@font-face{font-family:'Borna';font-style:normal;font-weight:600;font-display:swap;src:url('https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/07\/Borna-SemiBold.woff2') format('woff2');}\r\n@font-face{font-family:'Borna';font-style:normal;font-weight:700;font-display:swap;src:url('https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/07\/Borna-Bold.woff2') format('woff2');}\r\n\r\n\/* ===== MANUAL DE CORES ===== *\/\r\n:root {\r\n  --bg:#edece8; --bg-soft:#dedad1;\r\n  --text:#141d1f; --text-sub:#1e2828;\r\n  --gold:#9e8367; --detail:#d8d6d2;\r\n\r\n  --tag-bg:var(--bg-soft);\r\n  --card-dark:#141d1f;\r\n  --card-light:var(--gold);\r\n\r\n  --panel-bg:#141d1f;\r\n  --panel-text:#edece8;\r\n  --panel-sub:#dedad1;\r\n  --panel-accent:var(--gold);\r\n  --panel-bg-rgb:20,29,31;\r\n  --bar-grad:linear-gradient(var(--gold), #edece8);\r\n}\r\nhtml.bonsa-dark,\r\nbody.bonsa-dark {\r\n  --bg:#141d1f; --bg-soft:#1e2828;\r\n  --text:#edece8; --text-sub:#dedad1;\r\n  --gold:#9e8367; --detail:#252c2d;\r\n\r\n  --tag-bg:var(--bg-soft);\r\n  --card-dark:#1e2828;\r\n  --card-light:var(--gold);\r\n\r\n  --panel-bg:#edece8;\r\n  --panel-text:#141d1f;\r\n  --panel-sub:#1e2828;\r\n  --panel-accent:var(--gold);\r\n  --panel-bg-rgb:237,236,232;\r\n  --bar-grad:linear-gradient(var(--gold), #141d1f);\r\n}\r\n\r\n[data-lang-pt], [data-lang-en] { display: none; }\r\nhtml[data-lang=\"pt\"] [data-lang-pt] { display: revert; }\r\nhtml[data-lang=\"en\"] [data-lang-en] { display: revert; }\r\nhtml:not([data-lang]) [data-lang-pt] { display: revert; }\r\n\r\nhtml, body { overflow-x: hidden; }\r\n\r\nhtml { background-color: var(--bg) !important; transition: background-color .9s ease; }\r\nbody { background-color: var(--bg) !important; transition: background-color .9s ease; }\r\nhtml.bonsa-dark, html.bonsa-dark body, body.bonsa-dark { background-color: #141d1f !important; }\r\n\r\n.bonsa-panel-bg-full,\r\n.bonsa-panel-fade,\r\n.bonsa-tags span,\r\n.bonsa-sq { transition-property: background, background-color, color, opacity, transform, filter; }\r\n\r\n.bonsa-page {\r\n  font-family:'Borna', 'Poppins', sans-serif; color:var(--text);\r\n  box-sizing:border-box;\r\n  position: relative;\r\n  z-index: 0;\r\n  transition: color .9s ease, opacity .55s ease;\r\n}\r\n\r\n\/* ===== SA\u00cdDA (navega\u00e7\u00e3o) ===== *\/\r\n.bonsa-page.bonsa-exiting { opacity: 0; pointer-events: none; }\r\n.bonsa-exit-overlay {\r\n  position: fixed; inset: 0; background: var(--bg);\r\n  z-index: 9990; opacity: 0; visibility: hidden; pointer-events: none;\r\n  transition: opacity .55s ease, visibility 0s linear .55s, background-color .9s ease;\r\n}\r\n.bonsa-exit-overlay.on { opacity: 1; visibility: visible; transition: opacity .55s ease, visibility 0s, background-color .9s ease; }\r\n\r\n\/* ===== SWAP ===== *\/\r\n.bonsa-page.bonsa-swap-out {\r\n  opacity: 0 !important;\r\n  pointer-events: none;\r\n  transition: opacity .5s ease;\r\n}\r\n.bonsa-page.bonsa-swap-in {\r\n  opacity: 1;\r\n  transition: opacity .6s ease;\r\n}\r\n\r\n\/* ===== PIN ===== *\/\r\n.bonsa-pin-wrap {\r\n  position: relative;\r\n  overflow: visible;\r\n  width: auto;\r\n  max-width: none;\r\n  margin-left: calc(50% - 50vw + var(--sbw, 0px) \/ 2);\r\n  margin-right: calc(50% - 50vw + var(--sbw, 0px) \/ 2);\r\n  margin-bottom: -1px;\r\n}\r\n\r\n.bonsa-pin-sticky {\r\n  position: absolute;\r\n  top: 0; left: 0;\r\n  width: 100%;\r\n  height: 100vh;\r\n  display: flex; align-items: center; justify-content: center;\r\n  overflow: hidden;\r\n}\r\n.bonsa-pin-sticky.is-fixed { position: fixed; top: 0; left: 0; width: 100%; }\r\n.bonsa-pin-sticky.is-bottom { position: absolute; top: auto; bottom: 0; left: 0; width: 100%; }\r\n\r\n\/* HERO *\/\r\n.bonsa-hero {\r\n  position: absolute;\r\n  left: 0; right: 0; top: 50%;\r\n  transform: translateY(-50%);\r\n  margin: 0 auto;\r\n  width: 100%; max-width: 1140px; padding: 0 20px;\r\n  box-sizing: border-box; z-index: 2; text-align: center;\r\n  will-change: transform, opacity, filter;\r\n}\r\n.bonsa-hero.bonsa-hidden { visibility: hidden; }\r\n\r\n.bonsa-hero-sub {\r\n  font-size:14px; color:var(--text-sub); margin:0 0 20px;\r\n  font-weight:400; letter-spacing:.2px; line-height:1.5;\r\n}\r\n.bonsa-hero-title {\r\n  font-size:clamp(40px,6vw,72px); font-weight:700;\r\n  letter-spacing:-1px; line-height:1.05; margin:0 0 30px; color:var(--text);\r\n}\r\n.bonsa-tags { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }\r\n.bonsa-tags span {\r\n  background:var(--tag-bg); color:var(--text); border-radius:20px;\r\n  padding:8px 18px; font-size:14px; font-weight:500; letter-spacing:1.5px;\r\n  text-transform:uppercase; line-height:1.4;\r\n  opacity: 0; transform: translateY(14px) scale(.9);\r\n  transition: opacity .5s ease, transform .55s cubic-bezier(.2,.7,.2,1), background .9s ease, color .9s ease;\r\n}\r\n.bonsa-tags span.on { opacity: 1; transform: translateY(0) scale(1); }\r\n\r\n.bonsa-anim-word {\r\n  display: inline-block; opacity: 0;\r\n  transform: translateY(18px); filter: blur(6px);\r\n  transition: opacity .5s ease, transform .55s cubic-bezier(.2,.7,.2,1), filter .5s ease;\r\n}\r\n.bonsa-anim-word.on { opacity: 1; transform: translateY(0); filter: blur(0); }\r\n\r\n.bonsa-panel-bg-full {\r\n  position: absolute; left: 0; bottom: -1px;\r\n  transform: translateY(100%);\r\n  width: 100%; height: 101vh;\r\n  background: var(--panel-bg);\r\n  z-index: 5; will-change: transform;\r\n  transition: background .9s ease;\r\n}\r\n\r\n.bonsa-panel {\r\n  position: absolute; left: 0; bottom: 0;\r\n  transform: translateY(100%);\r\n  width: 100%; height: 100vh; z-index: 6;\r\n  display: flex; align-items: center; justify-content: center;\r\n  will-change: transform; background: transparent;\r\n  overflow: hidden;\r\n}\r\n\r\n\/* ===== IMAGEM DE FUNDO ===== *\/\r\n.bonsa-panel-media {\r\n  position: absolute !important;\r\n  top: 0; left: 0; right: 0; bottom: 0;\r\n  z-index: 1 !important;\r\n  overflow: hidden; pointer-events: none;\r\n  background: var(--panel-bg);\r\n  transition: background .9s ease;\r\n}\r\n.bonsa-panel-media picture {\r\n  display: block; position: absolute; inset: 0;\r\n}\r\n.bonsa-panel-media img {\r\n  position: absolute; top: 50%; left: 50%;\r\n  width: 100% !important; height: 100% !important;\r\n  min-width: 100%; min-height: 100%;\r\n  max-width: none !important;\r\n  object-fit: cover; object-position: center;\r\n  display: block !important;\r\n  transform: translate(-50%,-50%) scale(1.04);\r\n  will-change: transform, filter, opacity;\r\n  pointer-events: none;\r\n  background: var(--panel-bg);\r\n  user-select: none; -webkit-user-drag: none;\r\n}\r\n.bonsa-panel-veil {\r\n  position: absolute; inset: 0; opacity: 0;\r\n  will-change: opacity; pointer-events: none;\r\n  background:\r\n    radial-gradient(120% 90% at 50% 55%,\r\n      rgba(var(--panel-bg-rgb), .55) 0%,\r\n      rgba(var(--panel-bg-rgb), .88) 100%);\r\n  transition: background .9s ease;\r\n}\r\n\r\n.bonsa-panel-fade {\r\n  position: absolute;\r\n  top: 0; left: 0;\r\n  width: 100%;\r\n  height: 220px;\r\n  z-index: 7;\r\n  pointer-events: none;\r\n  opacity: 0;\r\n  background: linear-gradient(\r\n    to bottom,\r\n    rgba(var(--panel-bg-rgb), 0.9) 0%,\r\n    rgba(var(--panel-bg-rgb), 0.55) 45%,\r\n    rgba(var(--panel-bg-rgb), 0) 100%\r\n  );\r\n  -webkit-backdrop-filter: blur(0px);\r\n  backdrop-filter: blur(0px);\r\n  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);\r\n  mask-image: linear-gradient(to bottom, #000 0%, #000 40%, transparent 100%);\r\n  will-change: opacity, backdrop-filter;\r\n}\r\n\r\n.bonsa-intro {\r\n  position: relative; z-index: 3;\r\n  width: 100%; max-width: 1140px; padding: 0 20px;\r\n  box-sizing: border-box;\r\n  display: flex; gap: 30px; align-items: flex-start;\r\n  color: var(--panel-text);\r\n}\r\n.bonsa-intro-bar {\r\n  flex: 0 0 4px; align-self: stretch; min-height: 0;\r\n  background: var(--bar-grad); border-radius: 4px;\r\n  transform: scaleY(0); transform-origin: top center;\r\n  transition: transform .9s cubic-bezier(.2,.7,.2,1), background .9s ease;\r\n}\r\n.bonsa-intro-bar.on { transform: scaleY(1); }\r\n.bonsa-intro-content { flex: 1; }\r\n\r\n.bonsa-intro-content h2 {\r\n  font-size: clamp(30px, 3.4vw, 44px); font-weight: 600;\r\n  line-height: 1.15; margin: 0 0 24px; letter-spacing: -0.5px;\r\n  color: var(--panel-text); transition: color .9s ease;\r\n  text-shadow: 0 2px 26px rgba(var(--panel-bg-rgb), .45);\r\n}\r\n.bonsa-intro-content .accent { color: var(--panel-accent); }\r\n\r\n.bonsa-intro-content p {\r\n  font-size: clamp(15px, 1.5vw, 16px); line-height: 1.6;\r\n  margin: 0 0 16px; color: var(--panel-sub); opacity: .9;\r\n  font-weight: 400; max-width: 68ch; transition: color .9s ease;\r\n  text-shadow: 0 2px 20px rgba(var(--panel-bg-rgb), .4);\r\n}\r\n\r\n.bonsa-word {\r\n  display: inline-block; opacity: 0;\r\n  transform: translateY(14px); filter: blur(5px);\r\n  transition: opacity .45s ease, transform .5s cubic-bezier(.2,.7,.2,1), filter .45s ease;\r\n}\r\n.bonsa-word.on { opacity: 1; transform: translateY(0); filter: blur(0); }\r\n\r\n\/* ===== MOBILE ===== *\/\r\n@media (max-width: 768px) {\r\n  .bonsa-hero-title .br-desktop { display: inline; content: \" \"; white-space: pre; font-size: 0; }\r\n  .bonsa-hero-title .br-desktop::before { content: \" \"; font-size: 1rem; }\r\n  .bonsa-intro-content .br-desktop { display: none; }\r\n\r\n  .bonsa-hero { padding: 0 22px; top: 54%; }\r\n  .bonsa-hero-sub { font-size: 14px; margin: 0 0 18px; }\r\n\r\n  .bonsa-hero-title {\r\n    font-size: clamp(34px, 10vw, 60px);\r\n    letter-spacing: -0.5px; line-height: 1.08; margin: 0 0 30px;\r\n    word-break: normal; overflow-wrap: break-word; hyphens: none;\r\n    max-width: 100%; text-wrap: balance;\r\n  }\r\n\r\n  .bonsa-page .bonsa-tags,\r\n  .bonsa-tags {\r\n    display: flex !important; flex-direction: column !important;\r\n    flex-wrap: nowrap !important; align-items: center !important;\r\n    justify-content: center !important; gap: 10px !important; width: 100%;\r\n  }\r\n  html[data-lang=\"en\"] .bonsa-page [data-lang-pt].bonsa-tags,\r\n  html[data-lang=\"pt\"] .bonsa-page [data-lang-en].bonsa-tags { display: none !important; }\r\n\r\n  .bonsa-page .bonsa-tags span,\r\n  .bonsa-tags span {\r\n    width: auto !important; max-width: 300px; white-space: nowrap;\r\n    text-align: center; font-size: 13px; padding: 10px 20px; letter-spacing: 1px;\r\n  }\r\n\r\n  .bonsa-intro { gap: 16px; padding: 0 24px; }\r\n  .bonsa-intro-bar { flex: 0 0 3px; }\r\n  .bonsa-intro-content h2 {\r\n    font-size: clamp(24px, 6.5vw, 34px); line-height: 1.2; margin: 0 0 18px;\r\n    word-break: normal; overflow-wrap: break-word;\r\n  }\r\n  .bonsa-intro-content p { font-size: 15px; line-height: 1.55; margin: 0 0 14px; }\r\n  .bonsa-panel-fade { height: 150px; }\r\n}\r\n\r\n@media (max-width: 640px) and (min-width: 481px) {\r\n  .bonsa-hero-title { font-size: clamp(40px, 11vw, 58px); }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .bonsa-hero { top: 53%; }\r\n  .bonsa-hero-title { font-size: clamp(30px, 9.5vw, 46px); line-height: 1.1; margin: 0 0 26px; }\r\n  .bonsa-hero-sub { font-size: 13px; margin: 0 0 16px; }\r\n  .bonsa-page .bonsa-tags span,\r\n  .bonsa-tags span { max-width: 270px; font-size: 12.5px; }\r\n}\r\n\r\n@media (max-width: 380px) {\r\n  .bonsa-hero { top: 52%; }\r\n  .bonsa-hero-title { font-size: clamp(26px, 9vw, 40px); line-height: 1.12; margin: 0 0 22px; }\r\n  .bonsa-page .bonsa-tags, .bonsa-tags { gap: 8px !important; }\r\n  .bonsa-page .bonsa-tags span, .bonsa-tags span { max-width: 240px; font-size: 12px; padding: 9px 16px; }\r\n  .bonsa-intro-content h2 { font-size: 22px; }\r\n}\r\n\r\n@media (max-width: 768px) and (max-height: 680px) {\r\n  .bonsa-hero { top: 54%; }\r\n  .bonsa-hero-title { margin: 0 0 20px; }\r\n  .bonsa-hero-sub { margin: 0 0 12px; }\r\n  .bonsa-page .bonsa-tags, .bonsa-tags { gap: 8px !important; }\r\n}\r\n\r\n\/* ORBS *\/\r\n.bonsa-float-layer {\r\n  position: absolute; top: 0; left: 0;\r\n  width: 100%; height: 100%;\r\n  z-index: 0; pointer-events: none; overflow: hidden;\r\n}\r\n.bonsa-float-layer.bonsa-hidden { visibility: hidden; }\r\n\r\n.bonsa-orbit { position: absolute; top: 50%; left: 50%; width: 0; height: 0; will-change: transform; }\r\n.bonsa-sq {\r\n  position: absolute; top: 0; left: 0;\r\n  background-color: var(--card-dark);\r\n  background-size: cover;\r\n  background-position: center;\r\n  background-repeat: no-repeat;\r\n  border-radius: 12px;\r\n  overflow: hidden;\r\n  will-change: transform, opacity;\r\n  transition: background-color .9s ease;\r\n}\r\n.bonsa-sq::after {\r\n  content: \"\"; position: absolute; inset: 0;\r\n  background: rgba(var(--panel-bg-rgb), .18);\r\n  pointer-events: none;\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  .bonsa-page { transition: opacity .3s ease !important; }\r\n  .bonsa-panel-media img { filter: blur(4px) !important; opacity: .35 !important; }\r\n  .bonsa-panel-veil { opacity: .8 !important; }\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  var wrap    = document.querySelector('[data-pin]');\r\n  var stageEl = document.querySelector('[data-stage-el]');\r\n  if (!wrap) return;\r\n\r\n  var panel   = document.querySelector('[data-panel]');\r\n  var panelBg = document.querySelector('[data-panel-bg-full]');\r\n  var pfade   = document.querySelector('[data-panel-fade]');\r\n  var floatL  = document.querySelector('[data-float]');\r\n  var orbit   = document.querySelector('[data-orbit]');\r\n  var hero    = document.querySelector('[data-hero]');\r\n  var bar     = document.querySelector('[data-bar]');\r\n  var pageEl  = document.querySelector('[data-bonsa-page]');\r\n  var overlay = document.querySelector('[data-exit-overlay]');\r\n\r\n  var media   = document.querySelector('[data-panel-img]');\r\n  var veil    = document.querySelector('[data-panel-veil]');\r\n\r\n  var REDUCED = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n  function clamp(v,a,b){ return Math.max(a, Math.min(b,v)); }\r\n  function curLang(){ return document.documentElement.getAttribute('data-lang') === 'en' ? 'en' : 'pt'; }\r\n  function langOf(el){ return el.closest('[data-lang-en]') ? 'en' : 'pt'; }\r\n\r\n  \/* ===== JANELAS DE PROGRESSO ===== *\/\r\n  var FX_START  = 0.74;\r\n  var FX_END    = 0.96;\r\n  var TXT_START = 0.78;\r\n  var TXT_END   = 1.00;\r\n\r\n  \/* ===== ALTURA DO PIN + BARRA DE ROLAGEM ===== *\/\r\n  var PIN_FACTOR = 4;\r\n  var stickyH = 0;\r\n  function lockPinHeight() {\r\n    stickyH = Math.max(window.innerHeight, document.documentElement.clientHeight);\r\n    wrap.style.height = (stickyH * PIN_FACTOR) + 'px';\r\n    if (stageEl) stageEl.style.height = stickyH + 'px';\r\n  }\r\n  function setSBW() {\r\n    var sbw = window.innerWidth - document.documentElement.clientWidth;\r\n    document.documentElement.style.setProperty('--sbw', sbw + 'px');\r\n  }\r\n  lockPinHeight();\r\n  setSBW();\r\n\r\n  var lastW = window.innerWidth;\r\n\r\n  \/* ===== SNAPSHOT ===== *\/\r\n  var SNAP = [];\r\n  document.querySelectorAll('[data-words], [data-intro-title], [data-intro-sub]').forEach(function (el) {\r\n    SNAP.push({ el: el, html: el.innerHTML });\r\n  });\r\n  function restoreSnapshot() { SNAP.forEach(function (s) { s.el.innerHTML = s.html; }); }\r\n\r\n  \/* ===== SA\u00cdDA ===== *\/\r\n  var isExiting = false;\r\n  function runExit() {\r\n    if (isExiting) return;\r\n    isExiting = true;\r\n    if (pageEl)  pageEl.classList.add('bonsa-exiting');\r\n    if (overlay) overlay.classList.add('on');\r\n  }\r\n  window.addEventListener('bonsa:leave', runExit);\r\n  window.bonsaSectionExit = runExit;\r\n\r\n  \/* ===== ENTRADA ===== *\/\r\n  var wordsMap = { pt: [], en: [] };\r\n  var words = [];\r\n  var introTimers = [];\r\n  var introStart = performance.now();\r\n\r\n  var TITLE_STEP=90, SUB_STEP=70, SUB_DELAY=500, SQ_DURATION=1200, TAG_DELAY=900, TAG_STEP=120;\r\n\r\n  function splitLines() {\r\n    wordsMap = { pt: [], en: [] };\r\n    document.querySelectorAll('[data-words]').forEach(function (el) {\r\n      var lang = langOf(el);\r\n      var parts = el.textContent.split(' ');\r\n      el.textContent = '';\r\n      parts.forEach(function (w, i) {\r\n        if (w === '') return;\r\n        var span = document.createElement('span');\r\n        span.className = 'bonsa-word';\r\n        span.textContent = w;\r\n        el.appendChild(span);\r\n        if (i < parts.length - 1) el.appendChild(document.createTextNode(' '));\r\n        wordsMap[lang].push(span);\r\n      });\r\n    });\r\n  }\r\n\r\n  function refreshWords() {\r\n    words = wordsMap[curLang()] || [];\r\n    var other = wordsMap[curLang() === 'pt' ? 'en' : 'pt'] || [];\r\n    other.forEach(function (s) { s.classList.remove('on'); });\r\n  }\r\n\r\n  function splitWords(el, cls) {\r\n    var out = [];\r\n    if (!el) return out;\r\n    var nodes = Array.prototype.slice.call(el.childNodes);\r\n    el.textContent = '';\r\n    nodes.forEach(function (node) {\r\n      if (node.nodeType === 1 && node.tagName === 'BR') {\r\n        var brc = document.createElement('br');\r\n        if (node.className) brc.className = node.className;\r\n        el.appendChild(brc);\r\n        return;\r\n      }\r\n      var parts = (node.textContent || '').split(' ');\r\n      parts.forEach(function (w, i) {\r\n        if (w === '') return;\r\n        var span = document.createElement('span');\r\n        span.className = cls;\r\n        span.textContent = w;\r\n        el.appendChild(span);\r\n        if (i < parts.length - 1) el.appendChild(document.createTextNode(' '));\r\n        out.push(span);\r\n      });\r\n    });\r\n    return out;\r\n  }\r\n\r\n  function clearIntroTimers() {\r\n    introTimers.forEach(clearTimeout);\r\n    introTimers = [];\r\n  }\r\n\r\n  function buildAndPlayIntro() {\r\n    clearIntroTimers();\r\n    restoreSnapshot();\r\n    splitLines();\r\n    refreshWords();\r\n\r\n    var titleSets = [], subSets = [];\r\n    document.querySelectorAll('[data-intro-title]').forEach(function (el) {\r\n      titleSets.push(splitWords(el, 'bonsa-anim-word'));\r\n    });\r\n    document.querySelectorAll('[data-intro-sub]').forEach(function (el) {\r\n      subSets.push(splitWords(el, 'bonsa-anim-word'));\r\n    });\r\n\r\n    var allTags = document.querySelectorAll('[data-tags] span');\r\n    allTags.forEach(function (s) { s.classList.remove('on'); });\r\n    if (bar) bar.classList.remove('on');\r\n\r\n    introStart = performance.now();\r\n    items.forEach(function (it) { it.introProg = 0; it.introDelay = Math.random(); });\r\n\r\n    void document.body.offsetWidth;\r\n\r\n    subSets.forEach(function (set) {\r\n      set.forEach(function (s, i) {\r\n        introTimers.push(setTimeout(function(){ s.classList.add('on'); }, SUB_DELAY + i*SUB_STEP));\r\n      });\r\n    });\r\n    titleSets.forEach(function (set) {\r\n      set.forEach(function (s, i) {\r\n        introTimers.push(setTimeout(function(){ s.classList.add('on'); }, i*TITLE_STEP));\r\n      });\r\n    });\r\n    var tagBox = document.querySelector('[data-tags][data-lang-' + curLang() + ']');\r\n    if (tagBox) {\r\n      void tagBox.offsetWidth;\r\n      Array.prototype.forEach.call(tagBox.children, function (s, i) {\r\n        introTimers.push(setTimeout(function () {\r\n          s.classList.add('on');\r\n        }, TAG_DELAY + i * TAG_STEP));\r\n      });\r\n    }\r\n\r\n    onScroll();\r\n    smoothProgress = targetProgress;\r\n    render(smoothProgress);\r\n  }\r\n\r\n  \/* ===== SWAP ===== *\/\r\n  var swapPending = false;\r\n  var langAtOut   = curLang();\r\n  var langChanged = false;\r\n  var gateTimer   = null;\r\n\r\n  function doSwapOut() {\r\n    if (!pageEl) return;\r\n    swapPending = true;\r\n    langChanged = false;\r\n    langAtOut   = curLang();\r\n    clearIntroTimers();\r\n    clearTimeout(gateTimer);\r\n    pageEl.classList.remove('bonsa-swap-in');\r\n    void pageEl.offsetWidth;\r\n    pageEl.classList.add('bonsa-swap-out');\r\n  }\r\n\r\n  function revealNow() {\r\n    if (!swapPending || !pageEl) return;\r\n    clearTimeout(gateTimer);\r\n\r\n    buildAndPlayIntro();\r\n    void pageEl.offsetWidth;\r\n    pageEl.classList.remove('bonsa-swap-out');\r\n    pageEl.classList.add('bonsa-swap-in');\r\n\r\n    setTimeout(function () {\r\n      pageEl.classList.remove('bonsa-swap-in');\r\n      swapPending = false;\r\n    }, 900);\r\n  }\r\n\r\n  function doSwapIn() {\r\n    if (!pageEl) return;\r\n    swapPending = true;\r\n    if (langChanged || curLang() !== langAtOut) { revealNow(); return; }\r\n    clearTimeout(gateTimer);\r\n    gateTimer = setTimeout(revealNow, 400);\r\n  }\r\n\r\n  window.addEventListener('bonsa:swap-out', doSwapOut);\r\n  window.addEventListener('bonsa:swap-in', doSwapIn);\r\n\r\n  function onLangApplied() {\r\n    langChanged = true;\r\n    if (swapPending) revealNow();\r\n    else buildAndPlayIntro();\r\n  }\r\n  window.addEventListener('bonsa:lang', onLangApplied);\r\n\r\n  try {\r\n    new MutationObserver(function () {\r\n      if (curLang() !== langAtOut || !swapPending) onLangApplied();\r\n    }).observe(document.documentElement, { attributes: true, attributeFilter: ['data-lang'] });\r\n  } catch (e) {}\r\n\r\n  \/* ===== VOLTAR \/ BFCACHE ===== *\/\r\n  function resetAll() {\r\n    isExiting = false;\r\n    swapPending = false;\r\n    if (pageEl) pageEl.classList.remove('bonsa-exiting', 'bonsa-swap-out', 'bonsa-swap-in');\r\n    if (overlay) overlay.classList.remove('on');\r\n    lockPinHeight();\r\n    setSBW();\r\n    buildAndPlayIntro();\r\n  }\r\n  window.addEventListener('pageshow', function (e) {\r\n    var bf = false;\r\n    try {\r\n      var nav = performance.getEntriesByType('navigation')[0];\r\n      bf = (nav && nav.type === 'back_forward');\r\n    } catch (err) {}\r\n    if (e.persisted || bf) resetAll();\r\n  });\r\n  window.addEventListener('popstate', resetAll);\r\n  document.addEventListener('visibilitychange', function () {\r\n    if (document.hidden) return;\r\n    if (pageEl && pageEl.classList.contains('bonsa-exiting')) resetAll();\r\n  });\r\n\r\n  \/* ===== ORBS ===== *\/\r\n  var isMobile = window.matchMedia('(max-width: 768px)').matches;\r\n  var baseDPR = window.devicePixelRatio || 1;\r\n\r\n  var RINGS = isMobile ? [\r\n    { rf: 0.32, count: 5, base: 30, spin: -1.0 },\r\n    { rf: 0.55, count: 7, base: 42, spin:  0.6 },\r\n    { rf: 0.80, count: 8, base: 54, spin: -0.4 }\r\n  ] : [\r\n    { rf: 0.30, count: 10, base: 45,  spin: -1.0 },\r\n    { rf: 0.48, count: 12, base: 70,  spin:  0.7 },\r\n    { rf: 0.66, count: 14, base: 105, spin: -0.5 },\r\n    { rf: 0.83, count: 15, base: 150, spin:  0.4 },\r\n    { rf: 1.00, count: 16, base: 195, spin: -0.3 }\r\n  ];\r\n  var RF_MIN = RINGS[0].rf, RF_MAX = RINGS[RINGS.length - 1].rf;\r\n\r\n  var IMG_BASE = 'https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/09\/';\r\n  var IMG_POOL = [\r\n    'HOME-ICON-1.jpg',  'HOME-ICON-2.jpg',  'HOME-ICON-3.jpg',\r\n    'HOME-ICON-4.jpg',  'HOME-ICON-5.jpg',  'HOME-ICON-6.jpg',\r\n    'HOME-ICON-7.jpg',  'HOME-ICON-8.jpg',  'HOME-ICON-9.jpg',\r\n    'HOME-ICON-10.jpg', 'HOME-ICON-11.jpg', 'HOME-ICON-12.jpg',\r\n    'HOME-ICON-13.jpg', 'HOME-ICON-14.jpg', 'HOME-ICON-15.jpg',\r\n    'HOME-ICON-16.jpg'\r\n  ].map(function (f) { return IMG_BASE + f; });\r\n\r\n  var deck = [];\r\n  function nextImg() {\r\n    if (!deck.length) {\r\n      deck = IMG_POOL.slice();\r\n      for (var i = deck.length - 1; i > 0; i--) {\r\n        var j = Math.floor(Math.random() * (i + 1));\r\n        var t = deck[i]; deck[i] = deck[j]; deck[j] = t;\r\n      }\r\n    }\r\n    return deck.pop();\r\n  }\r\n  IMG_POOL.forEach(function (u) { var im = new Image(); im.src = u; });\r\n\r\n  var items = [];\r\n  RINGS.forEach(function (ring, ri) {\r\n    for (var i = 0; i < ring.count; i++) {\r\n      var el = document.createElement('div');\r\n      el.className = 'bonsa-sq';\r\n      el.style.backgroundImage = 'url(\"' + nextImg() + '\")';\r\n      orbit.appendChild(el);\r\n      var jitter = 0.9 + Math.random() * 0.2;\r\n      var w = ring.base * jitter, h = w * (0.68 + Math.random() * 0.12);\r\n      var slot = (i \/ ring.count) * Math.PI * 2;\r\n      var wobble = (Math.random() - 0.5) * (Math.PI * 2 \/ ring.count) * 0.35;\r\n      items.push({\r\n        el: el, w: w, h: h,\r\n        ringFactor: ring.rf * (0.92 + Math.random() * 0.16),\r\n        angle: slot + wobble + ri * 0.55,\r\n        selfSpin: ring.spin, selfPhase: Math.random() * Math.PI * 2,\r\n        fx: 0, fy: 0, tfx: 0, tfy: 0, rx: 0, ry: 0,\r\n        scale: 1, tScale: 1, introDelay: Math.random(), introProg: 0\r\n      });\r\n    }\r\n  });\r\n\r\n  function maxRadius() { return Math.max(window.innerWidth, window.innerHeight) * 0.62; }\r\n\r\n  \/* ===== SCROLL ===== *\/\r\n  var scrollSpin = 0;\r\n  var lastScrollY = window.pageYOffset;\r\n  var targetProgress = 0;\r\n  var smoothProgress = 0;\r\n  var EASE = 0.10;\r\n\r\n  function onScroll() {\r\n    var y = window.pageYOffset;\r\n    var wrapTop = wrap.offsetTop;\r\n    var total   = wrap.offsetHeight - stickyH;\r\n\r\n    targetProgress = clamp((y - wrapTop) \/ total, 0, 1);\r\n\r\n    if (y < wrapTop) {\r\n      stageEl.classList.remove('is-fixed');\r\n      stageEl.classList.remove('is-bottom');\r\n    } else if (y <= wrapTop + total) {\r\n      stageEl.classList.add('is-fixed');\r\n      stageEl.classList.remove('is-bottom');\r\n    } else {\r\n      stageEl.classList.remove('is-fixed');\r\n      stageEl.classList.add('is-bottom');\r\n    }\r\n\r\n    var delta = y - lastScrollY;\r\n    lastScrollY = y;\r\n    scrollSpin += Math.abs(delta) * 0.012;\r\n    if (scrollSpin > 5) scrollSpin = 5;\r\n  }\r\n\r\n  function render(progress) {\r\n    var heroP = clamp(progress \/ 0.45, 0, 1);\r\n    if (hero) {\r\n      hero.style.transform = 'translateY(-50%) scale(' + (1 - heroP * 0.08).toFixed(4) + ')';\r\n      hero.style.opacity   = (1 - heroP * 0.55).toFixed(3);\r\n      hero.style.filter    = 'blur(' + (heroP * 4).toFixed(2) + 'px)';\r\n    }\r\n\r\n    var slide = clamp(progress \/ 0.5, 0, 1);\r\n    var slideY = 100 - slide * 100;\r\n    if (slideY < 0.05) slideY = 0;\r\n\r\n    panel.style.transform = 'translateY(' + slideY.toFixed(3) + '%)';\r\n    if (panelBg) panelBg.style.transform = 'translateY(' + slideY.toFixed(3) + '%)';\r\n\r\n    if (pfade) {\r\n      pfade.style.opacity = slide.toFixed(3);\r\n      var blurPx = (slide * 10).toFixed(2);\r\n      pfade.style.webkitBackdropFilter = 'blur(' + blurPx + 'px)';\r\n      pfade.style.backdropFilter       = 'blur(' + blurPx + 'px)';\r\n    }\r\n\r\n    if (bar) bar.classList.toggle('on', slide >= 0.985);\r\n\r\n    var covered = slide >= 0.7;\r\n    if (hero) hero.classList.toggle('bonsa-hidden', covered);\r\n    if (floatL) {\r\n      floatL.style.opacity = String(clamp(1 - slide * 1.25, 0, 1));\r\n      floatL.classList.toggle('bonsa-hidden', covered);\r\n    }\r\n\r\n    \/* ===== IMAGEM: zoom + blur + escurecer ===== *\/\r\n    if (media && !REDUCED) {\r\n      var fx = clamp((progress - FX_START) \/ (FX_END - FX_START), 0, 1);\r\n      var ez = 1 - Math.pow(1 - fx, 3);\r\n\r\n      var blurV = (ez * 7).toFixed(2);\r\n      var opV   = (1 - ez * 0.55).toFixed(3);\r\n      var zoomV = (1.04 + ez * 0.16 + progress * 0.04).toFixed(4);\r\n\r\n      media.style.filter    = 'blur(' + blurV + 'px) brightness(' + (1 - ez * 0.22).toFixed(3) + ')';\r\n      media.style.opacity   = opV;\r\n      media.style.transform = 'translate(-50%,-50%) scale(' + zoomV + ')';\r\n\r\n      if (veil) veil.style.opacity = (ez * 0.85).toFixed(3);\r\n    }\r\n\r\n    \/* ===== PALAVRAS ===== *\/\r\n    var wp = clamp((progress - TXT_START) \/ (TXT_END - TXT_START), 0, 1);\r\n    var howMany = Math.round(wp * words.length);\r\n    for (var i = 0; i < words.length; i++) {\r\n      words[i].classList.toggle('on', i < howMany);\r\n    }\r\n  }\r\n\r\n  var ticking = false;\r\n  window.addEventListener('scroll', function () {\r\n    if (ticking) return;\r\n    ticking = true;\r\n    requestAnimationFrame(function () { onScroll(); ticking = false; });\r\n  }, { passive: true });\r\n\r\n  window.addEventListener('resize', function () {\r\n    var h = Math.max(window.innerHeight, document.documentElement.clientHeight);\r\n    if (window.innerWidth !== lastW || h > stickyH) {\r\n      lastW = window.innerWidth;\r\n      lockPinHeight();\r\n    }\r\n    setSBW();\r\n    onScroll();\r\n  });\r\n\r\n  \/* ===== MOUSE ===== *\/\r\n  var mouseX=-9999, mouseY=-9999, hasMouse=false;\r\n  document.addEventListener('mousemove', function(e){ mouseX=e.clientX; mouseY=e.clientY; hasMouse=true; });\r\n  document.addEventListener('mouseleave', function(){ hasMouse=false; });\r\n\r\n  var rotation=0, selfRot=0, BASE_SPEED=0.0006;\r\n  var cx=window.innerWidth\/2, cy=window.innerHeight\/2;\r\n  window.addEventListener('resize', function(){ cx=window.innerWidth\/2; cy=window.innerHeight\/2; });\r\n\r\n  function easeOut(t){ return 1 - Math.pow(1 - t, 3); }\r\n\r\n  \/* ===== LOOP ===== *\/\r\n  function raf(now) {\r\n    smoothProgress += (targetProgress - smoothProgress) * EASE;\r\n    if (Math.abs(targetProgress - smoothProgress) < 0.0002) smoothProgress = targetProgress;\r\n    render(smoothProgress);\r\n\r\n    var spd = BASE_SPEED + scrollSpin * 0.0010;\r\n    rotation += spd; selfRot += spd * 2; scrollSpin *= 0.95;\r\n\r\n    var MAXR = maxRadius();\r\n    var zoom = (window.devicePixelRatio || 1) \/ baseDPR;\r\n    var elapsed = (now || performance.now()) - introStart;\r\n    var sqGlobal = clamp(elapsed \/ SQ_DURATION, 0, 1);\r\n\r\n    for (var k = 0; k < items.length; k++) {\r\n      var it = items[k];\r\n      var R = MAXR * it.ringFactor;\r\n      var a = it.angle + rotation;\r\n      it.px = Math.cos(a)*R; it.py = Math.sin(a)*R; it._a = a;\r\n      it.vw = it.w\/zoom; it.vh = it.h\/zoom; it.rx = 0; it.ry = 0;\r\n      if (it.introProg < 1) it.introProg = clamp((sqGlobal - it.introDelay*0.6)\/0.4, 0, 1);\r\n    }\r\n\r\n    for (var a1 = 0; a1 < items.length; a1++) {\r\n      var A = items[a1];\r\n      for (var b1 = a1+1; b1 < items.length; b1++) {\r\n        var B = items[b1];\r\n        var ddx = B.px - A.px, ddy = B.py - A.py;\r\n        var d = Math.sqrt(ddx*ddx + ddy*ddy);\r\n        var minDist = (Math.max(A.vw,A.vh)+Math.max(B.vw,B.vh))*0.5+6;\r\n        if (d < minDist && d > 0.001) {\r\n          var overlap = minDist - d, nx = ddx\/d, ny = ddy\/d, push = overlap*0.5;\r\n          A.rx -= nx*push; A.ry -= ny*push; B.rx += nx*push; B.ry += ny*push;\r\n        } else if (d <= 0.001) { A.rx -= 4; B.rx += 4; }\r\n      }\r\n    }\r\n\r\n    for (var m = 0; m < items.length; m++) {\r\n      var t2 = items[m];\r\n      var absX = cx + t2.px, absY = cy + t2.py;\r\n      var cdist = Math.sqrt(t2.px*t2.px + t2.py*t2.py);\r\n      var deadZone = isMobile ? 60 : 240, fadeBand = isMobile ? 90 : 130;\r\n      var centerFade = clamp((cdist - deadZone)\/fadeBand, 0, 1);\r\n\r\n      t2.tfx = 0; t2.tfy = 0; t2.tScale = 1;\r\n      if (hasMouse) {\r\n        var dx = absX - mouseX, dy = absY - mouseY;\r\n        var dist = Math.sqrt(dx*dx + dy*dy), RANGE = 170;\r\n        if (dist < RANGE && dist > 0.001) {\r\n          var force = 1 - dist\/RANGE, pushM = force*18;\r\n          t2.tfx = (dx\/dist)*pushM; t2.tfy = (dy\/dist)*pushM; t2.tScale = 1 + force*0.05;\r\n        }\r\n      }\r\n      t2.tfx += t2.rx; t2.tfy += t2.ry;\r\n      t2.fx += (t2.tfx - t2.fx)*0.09; t2.fy += (t2.tfy - t2.fy)*0.09;\r\n      t2.scale += (t2.tScale - t2.scale)*0.09;\r\n\r\n      var vw = t2.vw, vh = t2.vh;\r\n      var finalX = t2.px + t2.fx - vw\/2, finalY = t2.py + t2.fy - vh\/2;\r\n      var deg = t2._a*(180\/Math.PI) + (selfRot*t2.selfSpin)*(180\/Math.PI)*0.25;\r\n      var radius = Math.max(3, Math.min(vw,vh)*0.16);\r\n      var t = clamp((t2.ringFactor - RF_MIN)\/(RF_MAX - RF_MIN), 0, 1);\r\n      var ip = easeOut(t2.introProg);\r\n      var opacity = (0.25 + t*0.75) * centerFade * ip;\r\n      var finalScale = t2.scale * (0.4 + ip*0.6);\r\n\r\n      t2.el.style.width = vw.toFixed(1)+'px';\r\n      t2.el.style.height = vh.toFixed(1)+'px';\r\n      t2.el.style.borderRadius = radius.toFixed(1)+'px';\r\n      t2.el.style.opacity = opacity.toFixed(2);\r\n      t2.el.style.transform = 'translate('+finalX.toFixed(1)+'px,'+finalY.toFixed(1)+'px) rotate('+deg.toFixed(1)+'deg) scale('+finalScale.toFixed(3)+')';\r\n    }\r\n    requestAnimationFrame(raf);\r\n  }\r\n\r\n  \/* ===== BOOT ===== *\/\r\n  onScroll();\r\n  smoothProgress = targetProgress;\r\n  buildAndPlayIntro();\r\n  requestAnimationFrame(raf);\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5630706 elementor-widget elementor-widget-spacer\" data-id=\"5630706\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3cfb40 elementor-widget elementor-widget-html\" data-id=\"d3cfb40\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bpt\" data-bpt>\r\n  <div class=\"bpt-inner\">\r\n    <h2 class=\"bpt-title\" data-bpt-title>\r\n      <span class=\"bpt-bracket\" aria-hidden=\"true\">\r\n        <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M23.5,4.1h-8.7v40h8.7c3.2,0,5.9-2.6,5.9-5.9h0s-8.7,0-8.7,0V10.1h8.7c0-3.3-2.6-6-5.9-6Z\" fill=\"var(--bp-gold)\"\/><\/svg>\r\n      <\/span>\r\n      <span class=\"bpt-title-txt\">\r\n        <span data-lang-pt>NOSSOS PROJETOS<\/span><span data-lang-en>OUR PROJECTS<\/span>\r\n      <\/span>\r\n      <span class=\"bpt-bracket\" aria-hidden=\"true\">\r\n        <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M16.5,4.1h8.7v40h-8.7c-3.2,0-5.9-2.6-5.9-5.9h0s8.7,0,8.7,0V10.1h-8.7c0-3.3,2.6-6,5.9-6Z\" fill=\"var(--bp-gold)\"\/><\/svg>\r\n      <\/span>\r\n    <\/h2>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n.elementor-widget-html,\r\n.elementor-widget-html > .elementor-widget-container{\r\n  background:transparent !important;padding:0 !important;margin:0 !important;\r\n  height:auto !important;min-height:0 !important;overflow:visible !important;\r\n}\r\n\r\n.bpt{\r\n  --bp-text:#141d1f; --bp-gold:#9f8368;\r\n  background:transparent !important; color:var(--bp-text);\r\n  font-family:'Borna','Bona','Poppins',Arial,sans-serif;\r\n  display:block !important; width:100%;\r\n  padding:0 !important; box-sizing:border-box;\r\n  transition:color .9s ease;\r\n}\r\nhtml.bonsa-dark .bpt, body.bonsa-dark .bpt{ --bp-text:#eeece8; }\r\n\r\n.bpt *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}\r\n.bpt *:focus,.bpt *:focus-visible,.bpt *:active{outline:none !important;box-shadow:none !important}\r\n\r\n\/* bil\u00edngue *\/\r\n.bpt [data-lang-pt],.bpt [data-lang-en]{transition:opacity .28s ease}\r\nhtml[data-lang=\"pt\"] .bpt [data-lang-en],\r\nhtml[data-lang=\"en\"] .bpt [data-lang-pt]{\r\n  opacity:0;position:absolute;pointer-events:none;width:0;height:0;overflow:hidden;\r\n}\r\n.bpt.bp-lang-busy [data-lang-pt],\r\n.bpt.bp-lang-busy [data-lang-en]{opacity:0 !important}\r\n.bpt.bp-lang-busy .bpt-title{\r\n  animation:none !important;opacity:1 !important;transform:none !important;filter:none !important;\r\n}\r\n\r\n.bpt-inner{max-width:1140px;margin:0 auto;display:flex;align-items:center;justify-content:center}\r\n\r\n@keyframes bpt-rise{\r\n  from{opacity:0;transform:translateY(12px);filter:blur(6px)}\r\n  to  {opacity:1;transform:translateY(0);filter:blur(0)}\r\n}\r\n@keyframes bpt-fall{\r\n  from{opacity:1;transform:translateY(0);filter:blur(0)}\r\n  to  {opacity:0;transform:translateY(10px);filter:blur(5px)}\r\n}\r\n\r\n.bpt-title{\r\n  position:relative;display:inline-flex;align-items:center;justify-content:center;\r\n  gap:clamp(9px,1.1vw,14px);\r\n  margin:0;text-align:center;\r\n  font-size:clamp(24px,3vw,32px);font-weight:600;\r\n  line-height:1.25;letter-spacing:1.5px;text-transform:uppercase;\r\n  color:var(--bp-text);white-space:nowrap;opacity:1;\r\n  transition:color .9s ease;\r\n}\r\n.bpt-title-txt{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:1.25em}\r\n.bpt-title.is-armed{opacity:0;transform:translateY(12px);filter:blur(6px);animation:none !important}\r\n.bpt-title.is-in{animation:bpt-rise .7s cubic-bezier(.4,0,.2,1) both}\r\n.bpt-title.is-out{animation:bpt-fall .45s cubic-bezier(.4,0,.2,1) both}\r\n\r\n.bpt-bracket{\r\n  display:inline-flex;align-items:center;justify-content:center;\r\n  width:clamp(13px,1.6vw,20px);height:clamp(26px,3.4vw,40px);flex:none;\r\n}\r\n.bpt-bracket svg{width:100%;height:100%;display:block;overflow:visible}\r\n\r\n@media (max-width:768px){\r\n  .bpt-inner{padding:0 22px}\r\n  .bpt-title{font-size:clamp(20px,5.4vw,26px);gap:10px}\r\n  .bpt-bracket{width:14px;height:28px}\r\n}\r\n@media (max-width:560px){\r\n  .bpt-title{font-size:clamp(18px,5.2vw,23px);gap:8px}\r\n  .bpt-bracket{width:12px;height:24px}\r\n}\r\n@media (max-width:380px){\r\n  .bpt-inner{padding:0 16px}\r\n  .bpt-title{font-size:17px;gap:7px;letter-spacing:1px}\r\n  .bpt-bracket{width:11px;height:22px}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  .bpt *{animation:none !important;transition:none !important}\r\n  .bpt-title{opacity:1 !important;transform:none !important;filter:none !important}\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var section=document.currentScript.parentElement.querySelector('[data-bpt]');\r\n  var title=section&&section.querySelector('[data-bpt-title]');\r\n  if(!section||!title) return;\r\n\r\n  var REDUCED=matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var LANG_FADE=300;\r\n  var io=null,timer=null,langTimer=null,isLangBusy=false;\r\n\r\n  function reflow(el){ el.style.animation='none'; void el.offsetWidth; el.style.animation=''; }\r\n\r\n  function show(){\r\n    clearTimeout(timer);\r\n    if(io){io.disconnect();io=null;}\r\n    if(REDUCED||isLangBusy){ title.classList.remove('is-armed','is-out','is-in'); return; }\r\n    title.classList.remove('is-out');\r\n    requestAnimationFrame(function(){\r\n      if(isLangBusy) return;\r\n      title.classList.remove('is-armed');\r\n      title.classList.add('is-in');\r\n    });\r\n  }\r\n  function hide(){\r\n    if(REDUCED) return;\r\n    clearTimeout(timer);\r\n    title.classList.remove('is-in','is-armed');\r\n    title.classList.add('is-out');\r\n  }\r\n  function arm(){\r\n    clearTimeout(timer);\r\n    if(io){io.disconnect();io=null;}\r\n    title.classList.remove('is-in','is-out','is-armed');\r\n    if(REDUCED||isLangBusy) return;\r\n    title.classList.add('is-armed');\r\n    reflow(title);\r\n    io=new IntersectionObserver(function(en){\r\n      en.forEach(function(e){ if(e.isIntersecting) show(); });\r\n    },{threshold:.2});\r\n    io.observe(title);\r\n    timer=setTimeout(show,800);\r\n  }\r\n\r\n  var lastLang=document.documentElement.getAttribute('data-lang')||'pt';\r\n  function langCrossfade(){\r\n    clearTimeout(langTimer);\r\n    isLangBusy=true;\r\n    title.classList.remove('is-armed','is-out','is-in');\r\n    section.classList.add('bp-lang-busy');\r\n    langTimer=setTimeout(function(){\r\n      section.classList.remove('bp-lang-busy');\r\n      isLangBusy=false;\r\n    },LANG_FADE);\r\n  }\r\n  addEventListener('bonsa:lang',function(){\r\n    lastLang=document.documentElement.getAttribute('data-lang')||'pt';\r\n    langCrossfade();\r\n  });\r\n  try{\r\n    new MutationObserver(function(){\r\n      var l=document.documentElement.getAttribute('data-lang')||'pt';\r\n      if(l!==lastLang){ lastLang=l; langCrossfade(); }\r\n    }).observe(document.documentElement,{attributes:true,attributeFilter:['data-lang']});\r\n  }catch(e){}\r\n\r\n  addEventListener('bonsa:leave',hide);\r\n  addEventListener('bonsa:swap-out',hide);\r\n  addEventListener('bonsa:swap-in',function(){\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bp-lang-busy');\r\n    isLangBusy=false;\r\n    arm();\r\n  });\r\n  addEventListener('pageshow',function(e){ if(e.persisted) arm(); });\r\n  addEventListener('popstate',arm);\r\n\r\n  arm();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0aa3364 elementor-widget elementor-widget-spacer\" data-id=\"0aa3364\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4c9344e e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"4c9344e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-06a8141 elementor-widget elementor-widget-html\" data-id=\"06a8141\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ===== BONSA SECTION ANIM \u2014 controlador gen\u00e9rico de container ===== *\/\r\n.bonsa-sec{ position:relative; }\r\n\r\n\/* alvo de anima\u00e7\u00e3o = filhos diretos (exceto este widget controlador) *\/\r\n.bonsa-sec > .bonsa-hidden-ctl{ display:none !important; }\r\n\r\n.bonsa-sec > .bonsa-it{\r\n  opacity:1;\r\n  will-change:opacity, transform, filter;\r\n}\r\n\r\n\/* estado inicial armado (antes de entrar) *\/\r\n.bonsa-sec.bonsa-armed > .bonsa-it{\r\n  opacity:0;\r\n  transform:translateY(14px);\r\n  filter:blur(6px);\r\n}\r\n\r\n\/* ENTRADA \/ REPLAY *\/\r\n.bonsa-sec.bonsa-in > .bonsa-it{\r\n  animation:bonsa-sec-rise .5s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--d, 0s);\r\n}\r\n\r\n\/* SA\u00cdDA (swap de tema\/idioma e navega\u00e7\u00e3o) *\/\r\n.bonsa-sec.bonsa-out > .bonsa-it{\r\n  animation:bonsa-sec-fall .3s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n\/* sa\u00edda de navega\u00e7\u00e3o: um pouco mais longa *\/\r\n.bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n  animation:bonsa-sec-fall .45s cubic-bezier(.7,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n@keyframes bonsa-sec-rise{\r\n  0%  { opacity:0; transform:translateY(14px); filter:blur(6px); }\r\n  100%{ opacity:1; transform:translateY(0);    filter:blur(0); }\r\n}\r\n@keyframes bonsa-sec-fall{\r\n  0%  { opacity:1; transform:translateY(0);     filter:blur(0); }\r\n  100%{ opacity:0; transform:translateY(-10px); filter:blur(5px); }\r\n}\r\n\r\n\/* fundo acompanha o tema, sem piscar *\/\r\n.bonsa-sec{ transition:background-color .9s ease; }\r\n\r\n@media (prefers-reduced-motion:reduce){\r\n  .bonsa-sec > .bonsa-it,\r\n  .bonsa-sec.bonsa-in > .bonsa-it,\r\n  .bonsa-sec.bonsa-out > .bonsa-it,\r\n  .bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n    animation:none !important; opacity:1 !important;\r\n    transform:none !important; filter:none !important;\r\n  }\r\n  .bonsa-sec.bonsa-armed > .bonsa-it{ opacity:1 !important; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"bonsa-hidden-ctl\" data-bonsa-sec-ctl\r\n     data-stagger=\"0.09\"\r\n     data-delay=\"0\"\r\n     data-threshold=\"0.18\"\r\n     data-once=\"1\"><\/div>\r\n\r\n<script>\r\n(function(){\r\n  var ctl = document.currentScript\r\n    ? document.currentScript.previousElementSibling\r\n    : document.querySelector('[data-bonsa-sec-ctl]:not([data-ready])');\r\n  if(!ctl) return;\r\n  ctl.setAttribute('data-ready','1');\r\n\r\n  var STAGGER   = parseFloat(ctl.dataset.stagger) || 0.09;\r\n  var BASE      = parseFloat(ctl.dataset.delay)   || 0;\r\n  var THRESHOLD = parseFloat(ctl.dataset.threshold) || 0.18;\r\n  var ONCE      = ctl.dataset.once === '1';\r\n  var REDUCED   = matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n\r\n  \/* ---- acha o container Elementor pai ---- *\/\r\n  var sec = ctl.closest('.e-con, .elementor-section, .elementor-top-section');\r\n  if(!sec){ sec = ctl.parentElement; }\r\n  \/* dentro de e-con o conte\u00fado real fica em .e-con-inner *\/\r\n  var host = sec.querySelector(':scope > .e-con-inner, :scope > .elementor-container') || sec;\r\n  host.classList.add('bonsa-sec');\r\n\r\n  \/* o widget controlador vive dentro de um wrapper de widget: esconder o wrapper *\/\r\n  var wrap = ctl.closest('.elementor-element');\r\n  if(wrap && wrap.parentElement === host) wrap.classList.add('bonsa-hidden-ctl');\r\n\r\n  \/* ---- marca filhos anim\u00e1veis e calcula delays ---- *\/\r\n  var items = [];\r\n  function tag(){\r\n    items = Array.prototype.filter.call(host.children, function(el){\r\n      return !el.classList.contains('bonsa-hidden-ctl');\r\n    });\r\n    items.forEach(function(el, i){\r\n      el.classList.add('bonsa-it');\r\n      el.style.setProperty('--d',  (BASE + i * STAGGER).toFixed(3) + 's');\r\n      el.style.setProperty('--od', (i * (STAGGER * 0.45)).toFixed(3) + 's');\r\n    });\r\n  }\r\n  tag();\r\n\r\n  function clearAnim(){\r\n    host.classList.remove('bonsa-in','bonsa-out','bonsa-out-nav');\r\n    items.forEach(function(el){\r\n      el.style.animation = 'none';\r\n    });\r\n    void host.offsetWidth;\r\n    items.forEach(function(el){ el.style.animation = ''; });\r\n  }\r\n\r\n  function play(){\r\n    if(REDUCED){ host.classList.remove('bonsa-armed'); return; }\r\n    clearAnim();\r\n    host.classList.remove('bonsa-armed');\r\n    void host.offsetWidth;\r\n    host.classList.add('bonsa-in');\r\n  }\r\n\r\n  function leave(nav){\r\n    if(REDUCED) return;\r\n    clearAnim();\r\n    host.classList.add(nav ? 'bonsa-out-nav' : 'bonsa-out');\r\n  }\r\n\r\n  \/* ---- entrada por scroll (IntersectionObserver re-arm\u00e1vel) ---- *\/\r\n  var io = null;\r\n  function observe(){\r\n    if(io){ io.disconnect(); io = null; }\r\n    if(REDUCED) return;\r\n    host.classList.add('bonsa-armed');\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){\r\n          play();\r\n          if(ONCE && io){ io.disconnect(); io = null; }\r\n        }\r\n      });\r\n    }, { threshold: THRESHOLD, rootMargin:'0px 0px -8% 0px' });\r\n    io.observe(host);\r\n  }\r\n  observe();\r\n\r\n  \/* ---- orquestra\u00e7\u00e3o do cabe\u00e7alho ---- *\/\r\n  addEventListener('bonsa:swap-out', function(){ leave(false); });\r\n  addEventListener('bonsa:leave',    function(){ leave(true);  });\r\n\r\n  addEventListener('bonsa:swap-in', function(){\r\n    tag();\r\n    observe();\r\n    var r = host.getBoundingClientRect();\r\n    var visible = r.top < innerHeight * 0.92 && r.bottom > 0;\r\n    if(visible) play();\r\n  });\r\n\r\n  \/* ---- voltar \/ bfcache \/ F5 ---- *\/\r\n  function isBackFwd(){\r\n    try{\r\n      var n = performance.getEntriesByType('navigation')[0];\r\n      if(n && (n.type === 'back_forward' || n.type === 'reload')) return true;\r\n    }catch(e){}\r\n    return false;\r\n  }\r\n  addEventListener('pageshow', function(e){\r\n    if(e.persisted || isBackFwd()){\r\n      tag(); observe();\r\n      var r = host.getBoundingClientRect();\r\n      if(r.top < innerHeight * 0.92 && r.bottom > 0) play();\r\n    }\r\n  });\r\n  addEventListener('popstate', function(){ tag(); observe(); });\r\n\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && host.classList.contains('bonsa-out-nav')){\r\n      clearAnim(); observe(); play();\r\n    }\r\n  });\r\n\r\n  \/* ---- reagir a tema\/idioma (relayout de alturas) ---- *\/\r\n  addEventListener('bonsa:theme', tag);\r\n  addEventListener('bonsa:lang',  tag);\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51f6a47 elementor-widget elementor-widget-image\" data-id=\"51f6a47\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eead47b elementor-widget elementor-widget-image\" data-id=\"eead47b\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e318971 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"e318971\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8a204e3 elementor-widget elementor-widget-html\" data-id=\"8a204e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ===== BONSA SECTION ANIM \u2014 controlador gen\u00e9rico de container ===== *\/\r\n.bonsa-sec{ position:relative; }\r\n\r\n\/* alvo de anima\u00e7\u00e3o = filhos diretos (exceto este widget controlador) *\/\r\n.bonsa-sec > .bonsa-hidden-ctl{ display:none !important; }\r\n\r\n.bonsa-sec > .bonsa-it{\r\n  opacity:1;\r\n  will-change:opacity, transform, filter;\r\n}\r\n\r\n\/* estado inicial armado (antes de entrar) *\/\r\n.bonsa-sec.bonsa-armed > .bonsa-it{\r\n  opacity:0;\r\n  transform:translateY(14px);\r\n  filter:blur(6px);\r\n}\r\n\r\n\/* ENTRADA \/ REPLAY *\/\r\n.bonsa-sec.bonsa-in > .bonsa-it{\r\n  animation:bonsa-sec-rise .5s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--d, 0s);\r\n}\r\n\r\n\/* SA\u00cdDA (swap de tema\/idioma e navega\u00e7\u00e3o) *\/\r\n.bonsa-sec.bonsa-out > .bonsa-it{\r\n  animation:bonsa-sec-fall .3s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n\/* sa\u00edda de navega\u00e7\u00e3o: um pouco mais longa *\/\r\n.bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n  animation:bonsa-sec-fall .45s cubic-bezier(.7,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n@keyframes bonsa-sec-rise{\r\n  0%  { opacity:0; transform:translateY(14px); filter:blur(6px); }\r\n  100%{ opacity:1; transform:translateY(0);    filter:blur(0); }\r\n}\r\n@keyframes bonsa-sec-fall{\r\n  0%  { opacity:1; transform:translateY(0);     filter:blur(0); }\r\n  100%{ opacity:0; transform:translateY(-10px); filter:blur(5px); }\r\n}\r\n\r\n\/* fundo acompanha o tema, sem piscar *\/\r\n.bonsa-sec{ transition:background-color .9s ease; }\r\n\r\n@media (prefers-reduced-motion:reduce){\r\n  .bonsa-sec > .bonsa-it,\r\n  .bonsa-sec.bonsa-in > .bonsa-it,\r\n  .bonsa-sec.bonsa-out > .bonsa-it,\r\n  .bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n    animation:none !important; opacity:1 !important;\r\n    transform:none !important; filter:none !important;\r\n  }\r\n  .bonsa-sec.bonsa-armed > .bonsa-it{ opacity:1 !important; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"bonsa-hidden-ctl\" data-bonsa-sec-ctl\r\n     data-stagger=\"0.09\"\r\n     data-delay=\"0\"\r\n     data-threshold=\"0.18\"\r\n     data-once=\"1\"><\/div>\r\n\r\n<script>\r\n(function(){\r\n  var ctl = document.currentScript\r\n    ? document.currentScript.previousElementSibling\r\n    : document.querySelector('[data-bonsa-sec-ctl]:not([data-ready])');\r\n  if(!ctl) return;\r\n  ctl.setAttribute('data-ready','1');\r\n\r\n  var STAGGER   = parseFloat(ctl.dataset.stagger) || 0.09;\r\n  var BASE      = parseFloat(ctl.dataset.delay)   || 0;\r\n  var THRESHOLD = parseFloat(ctl.dataset.threshold) || 0.18;\r\n  var ONCE      = ctl.dataset.once === '1';\r\n  var REDUCED   = matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n\r\n  \/* ---- acha o container Elementor pai ---- *\/\r\n  var sec = ctl.closest('.e-con, .elementor-section, .elementor-top-section');\r\n  if(!sec){ sec = ctl.parentElement; }\r\n  \/* dentro de e-con o conte\u00fado real fica em .e-con-inner *\/\r\n  var host = sec.querySelector(':scope > .e-con-inner, :scope > .elementor-container') || sec;\r\n  host.classList.add('bonsa-sec');\r\n\r\n  \/* o widget controlador vive dentro de um wrapper de widget: esconder o wrapper *\/\r\n  var wrap = ctl.closest('.elementor-element');\r\n  if(wrap && wrap.parentElement === host) wrap.classList.add('bonsa-hidden-ctl');\r\n\r\n  \/* ---- marca filhos anim\u00e1veis e calcula delays ---- *\/\r\n  var items = [];\r\n  function tag(){\r\n    items = Array.prototype.filter.call(host.children, function(el){\r\n      return !el.classList.contains('bonsa-hidden-ctl');\r\n    });\r\n    items.forEach(function(el, i){\r\n      el.classList.add('bonsa-it');\r\n      el.style.setProperty('--d',  (BASE + i * STAGGER).toFixed(3) + 's');\r\n      el.style.setProperty('--od', (i * (STAGGER * 0.45)).toFixed(3) + 's');\r\n    });\r\n  }\r\n  tag();\r\n\r\n  function clearAnim(){\r\n    host.classList.remove('bonsa-in','bonsa-out','bonsa-out-nav');\r\n    items.forEach(function(el){\r\n      el.style.animation = 'none';\r\n    });\r\n    void host.offsetWidth;\r\n    items.forEach(function(el){ el.style.animation = ''; });\r\n  }\r\n\r\n  function play(){\r\n    if(REDUCED){ host.classList.remove('bonsa-armed'); return; }\r\n    clearAnim();\r\n    host.classList.remove('bonsa-armed');\r\n    void host.offsetWidth;\r\n    host.classList.add('bonsa-in');\r\n  }\r\n\r\n  function leave(nav){\r\n    if(REDUCED) return;\r\n    clearAnim();\r\n    host.classList.add(nav ? 'bonsa-out-nav' : 'bonsa-out');\r\n  }\r\n\r\n  \/* ---- entrada por scroll (IntersectionObserver re-arm\u00e1vel) ---- *\/\r\n  var io = null;\r\n  function observe(){\r\n    if(io){ io.disconnect(); io = null; }\r\n    if(REDUCED) return;\r\n    host.classList.add('bonsa-armed');\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){\r\n          play();\r\n          if(ONCE && io){ io.disconnect(); io = null; }\r\n        }\r\n      });\r\n    }, { threshold: THRESHOLD, rootMargin:'0px 0px -8% 0px' });\r\n    io.observe(host);\r\n  }\r\n  observe();\r\n\r\n  \/* ---- orquestra\u00e7\u00e3o do cabe\u00e7alho ---- *\/\r\n  addEventListener('bonsa:swap-out', function(){ leave(false); });\r\n  addEventListener('bonsa:leave',    function(){ leave(true);  });\r\n\r\n  addEventListener('bonsa:swap-in', function(){\r\n    tag();\r\n    observe();\r\n    var r = host.getBoundingClientRect();\r\n    var visible = r.top < innerHeight * 0.92 && r.bottom > 0;\r\n    if(visible) play();\r\n  });\r\n\r\n  \/* ---- voltar \/ bfcache \/ F5 ---- *\/\r\n  function isBackFwd(){\r\n    try{\r\n      var n = performance.getEntriesByType('navigation')[0];\r\n      if(n && (n.type === 'back_forward' || n.type === 'reload')) return true;\r\n    }catch(e){}\r\n    return false;\r\n  }\r\n  addEventListener('pageshow', function(e){\r\n    if(e.persisted || isBackFwd()){\r\n      tag(); observe();\r\n      var r = host.getBoundingClientRect();\r\n      if(r.top < innerHeight * 0.92 && r.bottom > 0) play();\r\n    }\r\n  });\r\n  addEventListener('popstate', function(){ tag(); observe(); });\r\n\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && host.classList.contains('bonsa-out-nav')){\r\n      clearAnim(); observe(); play();\r\n    }\r\n  });\r\n\r\n  \/* ---- reagir a tema\/idioma (relayout de alturas) ---- *\/\r\n  addEventListener('bonsa:theme', tag);\r\n  addEventListener('bonsa:lang',  tag);\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16c88a0 elementor-widget elementor-widget-image\" data-id=\"16c88a0\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f21d07 elementor-widget elementor-widget-image\" data-id=\"6f21d07\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c696a2c e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"c696a2c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45e84d3 elementor-widget elementor-widget-html\" data-id=\"45e84d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ===== BONSA SECTION ANIM \u2014 controlador gen\u00e9rico de container ===== *\/\r\n.bonsa-sec{ position:relative; }\r\n\r\n\/* alvo de anima\u00e7\u00e3o = filhos diretos (exceto este widget controlador) *\/\r\n.bonsa-sec > .bonsa-hidden-ctl{ display:none !important; }\r\n\r\n.bonsa-sec > .bonsa-it{\r\n  opacity:1;\r\n  will-change:opacity, transform, filter;\r\n}\r\n\r\n\/* estado inicial armado (antes de entrar) *\/\r\n.bonsa-sec.bonsa-armed > .bonsa-it{\r\n  opacity:0;\r\n  transform:translateY(14px);\r\n  filter:blur(6px);\r\n}\r\n\r\n\/* ENTRADA \/ REPLAY *\/\r\n.bonsa-sec.bonsa-in > .bonsa-it{\r\n  animation:bonsa-sec-rise .5s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--d, 0s);\r\n}\r\n\r\n\/* SA\u00cdDA (swap de tema\/idioma e navega\u00e7\u00e3o) *\/\r\n.bonsa-sec.bonsa-out > .bonsa-it{\r\n  animation:bonsa-sec-fall .3s cubic-bezier(.4,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n\/* sa\u00edda de navega\u00e7\u00e3o: um pouco mais longa *\/\r\n.bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n  animation:bonsa-sec-fall .45s cubic-bezier(.7,0,.2,1) both;\r\n  animation-delay:var(--od, 0s);\r\n}\r\n\r\n@keyframes bonsa-sec-rise{\r\n  0%  { opacity:0; transform:translateY(14px); filter:blur(6px); }\r\n  100%{ opacity:1; transform:translateY(0);    filter:blur(0); }\r\n}\r\n@keyframes bonsa-sec-fall{\r\n  0%  { opacity:1; transform:translateY(0);     filter:blur(0); }\r\n  100%{ opacity:0; transform:translateY(-10px); filter:blur(5px); }\r\n}\r\n\r\n\/* fundo acompanha o tema, sem piscar *\/\r\n.bonsa-sec{ transition:background-color .9s ease; }\r\n\r\n@media (prefers-reduced-motion:reduce){\r\n  .bonsa-sec > .bonsa-it,\r\n  .bonsa-sec.bonsa-in > .bonsa-it,\r\n  .bonsa-sec.bonsa-out > .bonsa-it,\r\n  .bonsa-sec.bonsa-out-nav > .bonsa-it{\r\n    animation:none !important; opacity:1 !important;\r\n    transform:none !important; filter:none !important;\r\n  }\r\n  .bonsa-sec.bonsa-armed > .bonsa-it{ opacity:1 !important; }\r\n}\r\n<\/style>\r\n\r\n<div class=\"bonsa-hidden-ctl\" data-bonsa-sec-ctl\r\n     data-stagger=\"0.09\"\r\n     data-delay=\"0\"\r\n     data-threshold=\"0.18\"\r\n     data-once=\"1\"><\/div>\r\n\r\n<script>\r\n(function(){\r\n  var ctl = document.currentScript\r\n    ? document.currentScript.previousElementSibling\r\n    : document.querySelector('[data-bonsa-sec-ctl]:not([data-ready])');\r\n  if(!ctl) return;\r\n  ctl.setAttribute('data-ready','1');\r\n\r\n  var STAGGER   = parseFloat(ctl.dataset.stagger) || 0.09;\r\n  var BASE      = parseFloat(ctl.dataset.delay)   || 0;\r\n  var THRESHOLD = parseFloat(ctl.dataset.threshold) || 0.18;\r\n  var ONCE      = ctl.dataset.once === '1';\r\n  var REDUCED   = matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n\r\n  \/* ---- acha o container Elementor pai ---- *\/\r\n  var sec = ctl.closest('.e-con, .elementor-section, .elementor-top-section');\r\n  if(!sec){ sec = ctl.parentElement; }\r\n  \/* dentro de e-con o conte\u00fado real fica em .e-con-inner *\/\r\n  var host = sec.querySelector(':scope > .e-con-inner, :scope > .elementor-container') || sec;\r\n  host.classList.add('bonsa-sec');\r\n\r\n  \/* o widget controlador vive dentro de um wrapper de widget: esconder o wrapper *\/\r\n  var wrap = ctl.closest('.elementor-element');\r\n  if(wrap && wrap.parentElement === host) wrap.classList.add('bonsa-hidden-ctl');\r\n\r\n  \/* ---- marca filhos anim\u00e1veis e calcula delays ---- *\/\r\n  var items = [];\r\n  function tag(){\r\n    items = Array.prototype.filter.call(host.children, function(el){\r\n      return !el.classList.contains('bonsa-hidden-ctl');\r\n    });\r\n    items.forEach(function(el, i){\r\n      el.classList.add('bonsa-it');\r\n      el.style.setProperty('--d',  (BASE + i * STAGGER).toFixed(3) + 's');\r\n      el.style.setProperty('--od', (i * (STAGGER * 0.45)).toFixed(3) + 's');\r\n    });\r\n  }\r\n  tag();\r\n\r\n  function clearAnim(){\r\n    host.classList.remove('bonsa-in','bonsa-out','bonsa-out-nav');\r\n    items.forEach(function(el){\r\n      el.style.animation = 'none';\r\n    });\r\n    void host.offsetWidth;\r\n    items.forEach(function(el){ el.style.animation = ''; });\r\n  }\r\n\r\n  function play(){\r\n    if(REDUCED){ host.classList.remove('bonsa-armed'); return; }\r\n    clearAnim();\r\n    host.classList.remove('bonsa-armed');\r\n    void host.offsetWidth;\r\n    host.classList.add('bonsa-in');\r\n  }\r\n\r\n  function leave(nav){\r\n    if(REDUCED) return;\r\n    clearAnim();\r\n    host.classList.add(nav ? 'bonsa-out-nav' : 'bonsa-out');\r\n  }\r\n\r\n  \/* ---- entrada por scroll (IntersectionObserver re-arm\u00e1vel) ---- *\/\r\n  var io = null;\r\n  function observe(){\r\n    if(io){ io.disconnect(); io = null; }\r\n    if(REDUCED) return;\r\n    host.classList.add('bonsa-armed');\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){\r\n          play();\r\n          if(ONCE && io){ io.disconnect(); io = null; }\r\n        }\r\n      });\r\n    }, { threshold: THRESHOLD, rootMargin:'0px 0px -8% 0px' });\r\n    io.observe(host);\r\n  }\r\n  observe();\r\n\r\n  \/* ---- orquestra\u00e7\u00e3o do cabe\u00e7alho ---- *\/\r\n  addEventListener('bonsa:swap-out', function(){ leave(false); });\r\n  addEventListener('bonsa:leave',    function(){ leave(true);  });\r\n\r\n  addEventListener('bonsa:swap-in', function(){\r\n    tag();\r\n    observe();\r\n    var r = host.getBoundingClientRect();\r\n    var visible = r.top < innerHeight * 0.92 && r.bottom > 0;\r\n    if(visible) play();\r\n  });\r\n\r\n  \/* ---- voltar \/ bfcache \/ F5 ---- *\/\r\n  function isBackFwd(){\r\n    try{\r\n      var n = performance.getEntriesByType('navigation')[0];\r\n      if(n && (n.type === 'back_forward' || n.type === 'reload')) return true;\r\n    }catch(e){}\r\n    return false;\r\n  }\r\n  addEventListener('pageshow', function(e){\r\n    if(e.persisted || isBackFwd()){\r\n      tag(); observe();\r\n      var r = host.getBoundingClientRect();\r\n      if(r.top < innerHeight * 0.92 && r.bottom > 0) play();\r\n    }\r\n  });\r\n  addEventListener('popstate', function(){ tag(); observe(); });\r\n\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && host.classList.contains('bonsa-out-nav')){\r\n      clearAnim(); observe(); play();\r\n    }\r\n  });\r\n\r\n  \/* ---- reagir a tema\/idioma (relayout de alturas) ---- *\/\r\n  addEventListener('bonsa:theme', tag);\r\n  addEventListener('bonsa:lang',  tag);\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f4492a elementor-widget elementor-widget-image\" data-id=\"9f4492a\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f91eaa2 elementor-widget elementor-widget-image\" data-id=\"f91eaa2\" data-element_type=\"widget\" data-e-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\" src=\"https:\/\/bonsastudio.com\/wp-content\/uploads\/2026\/08\/fa2ea745d2584868893371b81dd04faf-scaled.jpg\" title=\"\" alt=\"\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a1ab753 elementor-widget elementor-widget-spacer\" data-id=\"a1ab753\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-35c5ff0 elementor-widget elementor-widget-html\" data-id=\"35c5ff0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"bpb\" data-bpb>\r\n  <a class=\"bpb-btn\" data-bpb-btn\r\n     href=\"https:\/\/bonsastudio.com\/?page_id=628\"\r\n     aria-label=\"Mais projetos\">\r\n    <span class=\"bpb-fill\" aria-hidden=\"true\"><\/span>\r\n    <span class=\"bpb-knob\" aria-hidden=\"true\">\r\n      <svg viewBox=\"0 0 18 24\" aria-hidden=\"true\"><path d=\"M17.7,11.7l-7.6-7.6c-.7-.7-1.9-.7-2.7,0-.7.7-.7,1.9,0,2.7l4.4,4.4H1.7c-1,0-1.9.8-1.9,1.9s.8,1.9,1.9,1.9h10.1l-4.4,4.4c-.7.7-.7,1.9,0,2.7.4.4.8.6,1.3.6s1-.2,1.3-.6l7.6-7.6c.4-.4.6-.8.6-1.3s-.2-1-.6-1.3Z\" fill=\"currentColor\"\/><\/svg>\r\n    <\/span>\r\n    <span class=\"bpb-txt\">\r\n      <span data-lang-pt>MAIS PROJETOS<\/span><span data-lang-en>MORE PROJECTS<\/span>\r\n    <\/span>\r\n  <\/a>\r\n<\/div>\r\n\r\n<style>\r\n.elementor-widget-html,\r\n.elementor-widget-html > .elementor-widget-container{\r\n  background:transparent !important;padding:0 !important;margin:0 !important;\r\n  height:auto !important;min-height:0 !important;overflow:visible !important;\r\n}\r\n\r\n.bpb{\r\n  --bp-soft:#dedad1; --bp-text:#141d1f; --bp-gold:#9f8368; --bp-stroke:#d8d6d2;\r\n  --bp-knob-arrow:#eeece8;\r\n  background:transparent !important;\r\n  font-family:'Borna','Bona','Poppins',Arial,sans-serif;\r\n  display:flex;justify-content:center;width:100%;\r\n  padding:0 !important;box-sizing:border-box;\r\n}\r\nhtml.bonsa-dark .bpb, body.bonsa-dark .bpb{\r\n  --bp-soft:#1e2828; --bp-text:#eeece8; --bp-stroke:#252c2d;\r\n}\r\n\r\n.bpb *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}\r\n.bpb *:focus,.bpb *:focus-visible,.bpb *:active{outline:none !important;box-shadow:none !important}\r\n.bpb a,.bpb a:hover,.bpb a:focus,.bpb a:visited{color:inherit !important;text-decoration:none !important}\r\n\r\n\/* bil\u00edngue *\/\r\n.bpb [data-lang-pt],.bpb [data-lang-en]{transition:opacity .28s ease}\r\nhtml[data-lang=\"pt\"] .bpb [data-lang-en],\r\nhtml[data-lang=\"en\"] .bpb [data-lang-pt]{\r\n  opacity:0;position:absolute;pointer-events:none;width:0;height:0;overflow:hidden;\r\n}\r\n.bpb.bp-lang-busy [data-lang-pt],\r\n.bpb.bp-lang-busy [data-lang-en]{opacity:0 !important}\r\n\r\n@keyframes bpb-rise{\r\n  0%{opacity:0;transform:translateY(10px);filter:blur(4px)}\r\n  100%{opacity:1;transform:translateY(0);filter:blur(0)}\r\n}\r\n.bpb-btn{opacity:0}\r\n.bpb.is-in .bpb-btn{animation:bpb-rise .75s cubic-bezier(.4,0,.2,1) .2s forwards}\r\n.bpb.is-out .bpb-btn{\r\n  opacity:0 !important;transform:translateY(12px);filter:blur(6px);\r\n  transition:opacity .5s ease,transform .5s cubic-bezier(.4,0,.2,1),filter .5s ease;\r\n}\r\n\r\n.bpb-btn{\r\n  --knob:52px;--pad:6px;--w-base:420px;--w-hover:452px;--slide:0px;\r\n  position:relative;display:block;width:min(var(--w-base),100%);\r\n  height:64px;min-height:64px;\r\n  border-radius:50px;border:1px solid var(--bp-stroke);background:var(--bp-soft);\r\n  overflow:hidden;isolation:isolate;\r\n  transition:width .45s cubic-bezier(.2,.7,.2,1),background .9s ease,border-color .9s ease;\r\n}\r\n.bpb-fill{\r\n  position:absolute;top:var(--pad);left:var(--pad);bottom:var(--pad);z-index:1;\r\n  width:calc(var(--knob) + var(--slide));border-radius:50px;\r\n  background:var(--bp-gold);opacity:.85;\r\n  transition:width .55s cubic-bezier(.2,.7,.2,1),background .9s ease;\r\n}\r\n.bpb-knob{\r\n  position:absolute;top:50%;left:var(--pad);z-index:3;\r\n  width:var(--knob);height:var(--knob);margin-top:calc(var(--knob) \/ -2);\r\n  border-radius:50%;background:var(--bp-gold);\r\n  display:flex;align-items:center;justify-content:center;\r\n  transform:translateX(var(--slide));\r\n  transition:transform .55s cubic-bezier(.2,.7,.2,1),background .9s ease;\r\n}\r\n.bpb-knob svg{width:20px;height:20px;color:var(--bp-knob-arrow);display:block}\r\n.bpb-txt{\r\n  position:absolute;top:0;bottom:0;z-index:2;\r\n  left:calc(var(--knob) + var(--pad) + var(--slide));right:var(--pad);\r\n  display:flex;align-items:center;justify-content:center;color:var(--bp-text);\r\n  font-weight:600;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;pointer-events:none;\r\n  transition:left .55s cubic-bezier(.2,.7,.2,1),opacity .3s ease,color .9s ease;\r\n}\r\n@media (hover:hover){ .bpb-btn:not(.is-going):hover{width:min(var(--w-hover),100%);--slide:26px} }\r\n.bpb-btn.is-going{width:min(var(--w-hover),100%)}\r\n.bpb-btn.is-going .bpb-knob{\r\n  transform:translateX(var(--bp-travel,360px));\r\n  transition:transform .85s cubic-bezier(.33,.9,.28,1);\r\n}\r\n.bpb-btn.is-going .bpb-fill{\r\n  width:calc(100% - var(--pad) * 2);\r\n  transition:width .85s cubic-bezier(.33,.9,.28,1);\r\n}\r\n.bpb-btn.is-going .bpb-txt{opacity:0}\r\n\r\n@media (max-width:768px){\r\n  .bpb{padding:0 22px !important}\r\n  .bpb-btn{width:100%;height:62px;--knob:48px}\r\n  .bpb-btn:not(.is-going):hover{width:100%}\r\n  .bpb-txt{font-size:13px}\r\n}\r\n@media (max-width:380px){ .bpb{padding:0 16px !important} }\r\n@media (prefers-reduced-motion:reduce){\r\n  .bpb *{animation:none !important;transition:none !important}\r\n  .bpb-btn{opacity:1 !important;transform:none !important;filter:none !important}\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var wrap=document.querySelector('[data-bpb]:not([data-bpb-ready])');\r\n  var btn=wrap&&wrap.querySelector('[data-bpb-btn]');\r\n  if(!wrap||!btn){ \r\n    document.querySelectorAll('.bpb').forEach(function(w){w.classList.add('is-in');});\r\n    return;\r\n  }\r\n  wrap.setAttribute('data-bpb-ready','1');\r\n\r\n  var URL_GO=btn.getAttribute('href');\r\n  var isNavigating=false,langTimer=null,io=null;\r\n\r\n  function syncTravel(){\r\n    var cs=getComputedStyle(btn);\r\n    var knob=parseFloat(cs.getPropertyValue('--knob'))||52;\r\n    var pad=parseFloat(cs.getPropertyValue('--pad'))||6;\r\n    var wh=parseFloat(cs.getPropertyValue('--w-hover'))||452;\r\n    var w=Math.min(wh,wrap.offsetWidth||wh);\r\n    btn.style.setProperty('--bp-travel',(w-knob-pad*2)+'px');\r\n  }\r\n  syncTravel();\r\n  addEventListener('resize',syncTravel,{passive:true});\r\n\r\n  function arm(){\r\n    if(io) io.disconnect();\r\n    wrap.classList.remove('is-in','is-out');\r\n    btn.style.animation='none'; void btn.offsetWidth; btn.style.animation='';\r\n    if(!('IntersectionObserver' in window)){ wrap.classList.add('is-in'); return; }\r\n    io=new IntersectionObserver(function(en){\r\n      en.forEach(function(e){ if(e.isIntersecting){ wrap.classList.add('is-in'); io.unobserve(e.target); } });\r\n    },{threshold:.2});\r\n    io.observe(wrap);\r\n    setTimeout(function(){ wrap.classList.add('is-in'); },1200);\r\n  }\r\n\r\n  function closeHeader(){\r\n    var h=document.querySelector('.bonsa-header');\r\n    if(!h) return;\r\n    h.classList.remove('bonsa-anim','bonsa-swap-in','bonsa-swap-out','bonsa-restore');\r\n    void h.offsetWidth; h.classList.add('bonsa-leave');\r\n  }\r\n\r\n  btn.addEventListener('click',function(e){\r\n    e.preventDefault();\r\n    if(isNavigating) return; isNavigating=true;\r\n    syncTravel(); btn.classList.add('is-going');\r\n    closeHeader();\r\n    dispatchEvent(new CustomEvent('bonsa:leave',{detail:{url:URL_GO}}));\r\n    setTimeout(function(){ location.href=URL_GO; },1150);\r\n  });\r\n\r\n  function out(){ wrap.classList.add('is-out'); }\r\n  addEventListener('bonsa:leave',out);\r\n  addEventListener('bonsa:swap-out',out);\r\n  addEventListener('bonsa:swap-in',function(){\r\n    isNavigating=false; btn.classList.remove('is-going'); arm(); syncTravel();\r\n  });\r\n\r\n  var lastLang=document.documentElement.getAttribute('data-lang')||'pt';\r\n  function langCrossfade(){\r\n    clearTimeout(langTimer);\r\n    wrap.classList.add('bp-lang-busy');\r\n    langTimer=setTimeout(function(){ wrap.classList.remove('bp-lang-busy'); syncTravel(); },300);\r\n  }\r\n  addEventListener('bonsa:lang',langCrossfade);\r\n  try{\r\n    new MutationObserver(function(){\r\n      var l=document.documentElement.getAttribute('data-lang')||'pt';\r\n      if(l!==lastLang){ lastLang=l; langCrossfade(); }\r\n    }).observe(document.documentElement,{attributes:true,attributeFilter:['data-lang']});\r\n  }catch(e){}\r\n\r\n  addEventListener('pageshow',function(e){\r\n    if(e.persisted){ isNavigating=false; btn.classList.remove('is-going'); arm(); }\r\n  });\r\n\r\n  arm();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5696580 elementor-widget elementor-widget-spacer\" data-id=\"5696580\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f4424cf elementor-widget elementor-widget-html\" data-id=\"f4424cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bns-fazemos\" data-bns>\r\n  <div class=\"bns-inner\" data-bns-page>\r\n\r\n    <div class=\"bttl-head\">\r\n      <h2 class=\"bttl-title\" data-bttl-title>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M23.5,4.1h-8.7v40h8.7c3.2,0,5.9-2.6,5.9-5.9h0s-8.7,0-8.7,0V10.1h8.7c0-3.3-2.6-6-5.9-6Z\" fill=\"var(--bt-gold)\"\/><\/svg>\r\n        <\/span>\r\n        <span class=\"bttl-txt\">\r\n          <span data-lang-pt>FAZEMOS POR VOC\u00ca<\/span><span data-lang-en>WE DO IT FOR YOU<\/span>\r\n        <\/span>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M16.5,4.1h8.7v40h-8.7c-3.2,0-5.9-2.6-5.9-5.9h0s8.7,0,8.7,0V10.1h-8.7c0-3.3,2.6-6,5.9-6Z\" fill=\"var(--bt-gold)\"\/><\/svg>\r\n        <\/span>\r\n      <\/h2>\r\n    <\/div>\r\n\r\n    <div class=\"bns-grid\" data-bns-grid>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">01<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18M9 21V9\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Venda na planta com realismo<\/span>\r\n          <span data-lang-en>Sell off-plan with realism<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Substitu\u00edmos plantas t\u00e9cnicas confusas por imagens realistas que qualquer cliente entende em segundos.<\/span>\r\n          <span data-lang-en>We replace confusing technical blueprints with realistic images any client understands in seconds.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">02<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"4\"\/><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Emo\u00e7\u00e3o que vende<\/span>\r\n          <span data-lang-en>Emotion that sells<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Moods, \u00e2ngulos e um toque de natureza que fazem o olhar do comprador brilhar e o cora\u00e7\u00e3o decidir pela compra.<\/span>\r\n          <span data-lang-en>Moods, angles and a touch of nature that make the buyer's eyes shine and the heart decide to buy.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">03<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 3a9 9 0 0 1 0 18M3 12h18\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Experi\u00eancia imersiva 360\u00ba<\/span>\r\n          <span data-lang-en>Immersive 360\u00ba experience<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Tours em 360\u00b0, VR e anima\u00e7\u00f5es que levam o cliente para dentro do projeto antes mesmo da primeira estaca.<\/span>\r\n          <span data-lang-en>360\u00b0 tours, VR and animations that take the client inside the project before the first stake.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">04<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M12 3v18M3 12h18\"\/><circle cx=\"12\" cy=\"12\" r=\"9\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Antecipe ajustes<\/span>\r\n          <span data-lang-en>Anticipate adjustments<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Enxergue o resultado antes da obra e corrija detalhes cedo, economizando tempo, retrabalho e dinheiro.<\/span>\r\n          <span data-lang-en>See the result before construction and fix details early, saving time, rework and money.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">05<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\/><path d=\"M3 9h18M8 13h5\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Material pronto para tr\u00e1fego<\/span>\r\n          <span data-lang-en>Ready-to-run ad material<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Imagens de alto impacto prontas para an\u00fancios, landing pages e redes sociais que convertem de verdade.<\/span>\r\n          <span data-lang-en>High-impact images ready for ads, landing pages and social media that truly convert.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n      <div class=\"bns-card\">\r\n        <div class=\"bns-top\">\r\n          <span class=\"bns-num\">06<\/span>\r\n          <div class=\"bns-icon\">\r\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"9\" cy=\"12\" r=\"6\"\/><circle cx=\"15\" cy=\"12\" r=\"6\"\/><\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <h3 class=\"bns-card-titulo\">\r\n          <span data-lang-pt>Sua ideia fora da gaveta<\/span>\r\n          <span data-lang-en>Your idea out of the drawer<\/span>\r\n        <\/h3>\r\n        <p class=\"bns-card-texto\">\r\n          <span data-lang-pt>Mais de uma d\u00e9cada traduzindo a singularidade de cada projeto em imagens que contam uma hist\u00f3ria e vendem.<\/span>\r\n          <span data-lang-en>Over a decade translating the uniqueness of each project into images that tell a story and sell.<\/span>\r\n        <\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ===== CLARO ===== *\/\r\n.bns-fazemos{\r\n  --brv-gold:#9e8367;\r\n  --bt-gold:#9f8368;\r\n  --bns-bg:#edece8;\r\n  --bns-card:#dedad1;\r\n  --bns-stroke:#d8d6d2;\r\n  --bns-title:#141d1f;\r\n  --bns-num:#141d1f;\r\n  --bns-ico-border:#141d1f;\r\n  --bns-ico-txt:#141d1f;\r\n  --bns-card-title:#141d1f;\r\n  --bns-text:#4a5254;\r\n\r\n  --bns-dim-op:.62;\r\n  --bns-dim-blur:1.4px;\r\n  --bns-dim-scale:.985;\r\n\r\n  background:var(--bns-bg);\r\n  color:var(--bns-title);\r\n  font-family:'Bona','Borna','Poppins',sans-serif;\r\n  padding:90px 0;\r\n  position:relative; z-index:1; isolation:isolate; clear:both;\r\n  transition:background .9s ease,color .9s ease;\r\n}\r\n.bns-fazemos *{box-sizing:border-box}\r\n\r\n\/* ===== ESCURO ===== *\/\r\nhtml.bonsa-dark .bns-fazemos,\r\nbody.bonsa-dark .bns-fazemos{\r\n  --bns-bg:#141d1f;\r\n  --bns-card:#1e2828;\r\n  --bns-stroke:#252c2d;\r\n  --bns-title:#eeece8;\r\n  --bns-num:#eeece8;\r\n  --bns-ico-border:rgba(238,236,232,.4);\r\n  --bns-ico-txt:#eeece8;\r\n  --bns-card-title:#eeece8;\r\n  --bns-text:#c9c6c0;\r\n}\r\n\r\n.bns-fazemos a,.bns-fazemos button,.bns-card{-webkit-tap-highlight-color:transparent}\r\n.bns-fazemos a:focus,.bns-fazemos a:active{outline:none}\r\n.bns-fazemos *:focus,.bns-fazemos *:active{outline:none !important;box-shadow:none !important}\r\n\r\n.bns-inner{max-width:1140px;margin:0 auto;padding:0}\r\n\r\n\/* ===== IDIOMA ===== *\/\r\n.bns-fazemos [data-lang-pt],.bns-fazemos [data-lang-en]{transition:opacity .35s ease}\r\nhtml[data-lang=\"pt\"] .bns-fazemos [data-lang-en],\r\nhtml[data-lang=\"en\"] .bns-fazemos [data-lang-pt]{\r\n  opacity:0;position:absolute;pointer-events:none;width:0;height:0;overflow:hidden;\r\n}\r\nhtml.bonsa-lang-switching .bns-fazemos [data-lang-pt],\r\nhtml.bonsa-lang-switching .bns-fazemos [data-lang-en]{opacity:0}\r\n\r\n\/* ===== T\u00cdTULO (engine ANIMATION) ===== *\/\r\n.bttl-head{display:flex;align-items:center;justify-content:center;margin:0 0 60px}\r\n.bttl-title{\r\n  position:relative;display:inline-flex;align-items:center;justify-content:center;\r\n  gap:clamp(9px,1.1vw,14px);margin:0;text-align:center;\r\n  font-size:clamp(24px,3vw,32px);font-weight:600;\r\n  line-height:1.25;letter-spacing:1.5px;text-transform:uppercase;\r\n  color:var(--bns-title);white-space:nowrap;opacity:1;\r\n  transition:color .9s ease;\r\n}\r\n.bttl-txt{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:1.25em}\r\n.bttl-bracket{display:inline-flex;align-items:center;justify-content:center;\r\n  width:clamp(13px,1.6vw,20px);height:clamp(26px,3.4vw,40px);flex:none}\r\n.bttl-bracket svg{width:100%;height:100%;display:block;overflow:visible}\r\n\r\n@keyframes bt-rise{\r\n  from{opacity:0;transform:translateY(12px);filter:blur(6px)}\r\n  to  {opacity:1;transform:translateY(0);filter:blur(0)}\r\n}\r\n@keyframes bt-fall{\r\n  from{opacity:1;transform:translateY(0);filter:blur(0)}\r\n  to  {opacity:0;transform:translateY(10px);filter:blur(5px)}\r\n}\r\n.bttl-title.bt-armed{opacity:0;transform:translateY(12px);filter:blur(6px);animation:none !important}\r\n.bttl-title.bt-in{animation:bt-rise .7s cubic-bezier(.4,0,.2,1) both}\r\n.bttl-title.bt-out{animation:bt-fall .45s cubic-bezier(.4,0,.2,1) both}\r\n\r\n.bns-fazemos.bt-lang-busy .bttl-txt [data-lang-pt],\r\n.bns-fazemos.bt-lang-busy .bttl-txt [data-lang-en]{opacity:0 !important}\r\n.bns-fazemos.bt-lang-busy .bttl-title,\r\nhtml.bonsa-lang-switching .bns-fazemos .bttl-title{\r\n  animation:none !important;opacity:1 !important;transform:none !important;filter:none !important;\r\n}\r\n\r\n.bns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\r\n\r\n.bns-card{\r\n  background:var(--bns-card);\r\n  border:1px solid var(--bns-stroke);\r\n  border-radius:14px;padding:32px 28px;min-height:300px;\r\n  transition:background .9s ease,border-color .9s ease,\r\n             opacity .35s ease,filter .35s ease,\r\n             transform .35s cubic-bezier(.34,1.4,.64,1);\r\n}\r\n\r\n.bns-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}\r\n.bns-num{font-size:18px;font-weight:700;color:var(--bns-num);transition:color .9s ease}\r\n.bns-num::after{content:\" -\"}\r\n\r\n.bns-icon{\r\n  width:52px;height:52px;border-radius:50%;\r\n  border:1.5px solid var(--bns-ico-border);color:var(--bns-ico-txt);\r\n  display:flex;align-items:center;justify-content:center;\r\n  transition:background .35s ease,color .35s ease,border-color .35s ease;\r\n}\r\n.bns-icon svg{width:24px;height:24px}\r\n\r\n.bns-card-titulo{font-size:21px;font-weight:700;color:var(--bns-card-title);margin:0 0 14px;line-height:1.25;transition:color .9s ease}\r\n.bns-card-texto{font-size:16px;line-height:1.6;color:var(--bns-text);margin:0;max-width:68ch;transition:color .9s ease}\r\n\r\n\/* ===== ANIMA\u00c7\u00c3O DOS CARDS (WAAPI) ===== *\/\r\n.bns-fazemos .bns-armed{opacity:0 !important;transition:none !important}\r\n.bns-inner.bns-out{\r\n  opacity:0;transform:translateY(12px);filter:blur(6px);pointer-events:none;\r\n  transition:opacity .5s cubic-bezier(.4,0,.2,1),\r\n             transform .5s cubic-bezier(.4,0,.2,1),\r\n             filter .5s ease;\r\n}\r\n.bns-inner.bns-out .bns-card,\r\n.bns-inner.bns-out .bns-icon{transition:none !important}\r\n\r\n\/* ===== FOCO DESKTOP ===== *\/\r\n@media (min-width:561px) and (hover:hover) and (pointer:fine){\r\n  .bns-grid.bns-focusing .bns-card{\r\n    opacity:var(--bns-dim-op);\r\n    filter:blur(var(--bns-dim-blur));\r\n    transform:scale(var(--bns-dim-scale));\r\n  }\r\n  .bns-grid.bns-focusing .bns-card.is-focus{\r\n    opacity:1;filter:blur(0);transform:scale(1.02);position:relative;z-index:2;\r\n  }\r\n  .bns-card.is-focus .bns-icon{\r\n    background:var(--brv-gold);border-color:var(--brv-gold);color:#fff;\r\n  }\r\n}\r\n\r\n\/* ===== RESPONSIVO ===== *\/\r\n@media(max-width:900px){\r\n  .bns-grid{grid-template-columns:repeat(2,1fr)}\r\n  .bns-inner{padding:0 22px}\r\n  .bttl-title{font-size:clamp(22px,3.6vw,28px)}\r\n}\r\n@media(max-width:768px){\r\n  .bttl-title{font-size:clamp(20px,5.4vw,26px);gap:10px}\r\n  .bttl-bracket{width:14px;height:28px}\r\n}\r\n@media(max-width:560px){\r\n  .bns-fazemos{padding:70px 0}\r\n  .bns-inner{padding:0 22px}\r\n  .bns-grid{grid-template-columns:1fr;gap:20px}\r\n  .bns-card{padding:26px 22px;min-height:0}\r\n  .bttl-head{margin-bottom:40px}\r\n  .bttl-title{font-size:clamp(18px,5.2vw,23px);gap:8px}\r\n  .bttl-bracket{width:12px;height:24px}\r\n\r\n  .bns-scroll-fx .bns-card{\r\n    opacity:var(--bns-dim-op);\r\n    filter:blur(var(--bns-dim-blur));\r\n    transform:scale(.97);\r\n    transition:opacity .45s ease,filter .45s ease,transform .45s cubic-bezier(.2,.7,.2,1);\r\n  }\r\n  .bns-scroll-fx .bns-card.is-active{opacity:1;filter:blur(0);transform:scale(1)}\r\n  .bns-scroll-fx .bns-card.is-active .bns-icon{\r\n    background:var(--brv-gold);border-color:var(--brv-gold);color:#fff;\r\n  }\r\n}\r\n@media(max-width:380px){\r\n  .bns-inner{padding:0 16px}\r\n  .bttl-title{font-size:17px;gap:7px;letter-spacing:1px}\r\n  .bttl-bracket{width:11px;height:22px}\r\n}\r\n\r\n\/* ===== A11Y ===== *\/\r\n@media (prefers-reduced-motion:reduce){\r\n  .bns-fazemos *{animation:none !important;transition:none !important}\r\n  .bns-fazemos .bns-armed{opacity:1 !important}\r\n  .bns-inner.bns-out{opacity:1 !important;transform:none !important;filter:none !important}\r\n  .bttl-title{opacity:1 !important;transform:none !important;filter:none !important}\r\n}\r\n\r\n\/* Host Elementor *\/\r\n.elementor-widget-html,\r\n.elementor-widget-html .elementor-widget-container{\r\n  background:transparent !important;padding:0 !important;margin:0 !important;\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var section = document.querySelector('.bns-fazemos[data-bns]');\r\n  var page    = section && section.querySelector('[data-bns-page]');\r\n  var grid    = section && section.querySelector('[data-bns-grid]');\r\n  if(!section || !page || !grid) return;\r\n\r\n  var cards  = Array.prototype.slice.call(section.querySelectorAll('.bns-card'));\r\n  var titulo = section.querySelector('[data-bttl-title]');\r\n  var items  = cards.slice();                 \/* t\u00edtulo fora da cascata WAAPI *\/\r\n\r\n  var REDUCED   = window.matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var HAS_WAAPI = typeof Element !== 'undefined' && !!Element.prototype.animate;\r\n\r\n  var DELAYS = [150, 220, 290, 360, 430, 500];\r\n  var HDR_REOPEN_LAG = 300;\r\n  var LANG_FADE = 300;\r\n\r\n  var running = [], safeTimer = null;\r\n\r\n  function killAnims(){\r\n    running.forEach(function(a){ try{ a.cancel(); }catch(e){} });\r\n    running = [];\r\n  }\r\n  function showAll(){\r\n    killAnims();\r\n    items.forEach(function(el){\r\n      el.classList.remove('bns-armed');\r\n      el.style.opacity=''; el.style.transform=''; el.style.filter='';\r\n    });\r\n    page.classList.remove('bns-out');\r\n  }\r\n  function arm(){\r\n    killAnims();\r\n    items.forEach(function(el){ el.classList.add('bns-armed'); });\r\n  }\r\n  function play(){\r\n    if(REDUCED || !HAS_WAAPI){ showAll(); return; }\r\n    killAnims();\r\n    page.classList.remove('bns-out');\r\n    items.forEach(function(el, i){\r\n      el.classList.remove('bns-armed');\r\n      el.style.opacity = '0';\r\n      var a = el.animate([\r\n        { opacity:0, transform:'translateY(12px)', filter:'blur(6px)' },\r\n        { opacity:1, transform:'translateY(0)',    filter:'blur(0px)' }\r\n      ],{\r\n        duration:600,\r\n        delay: DELAYS[i] != null ? DELAYS[i] : 500,\r\n        easing:'cubic-bezier(.4,0,.2,1)',\r\n        fill:'both'\r\n      });\r\n      running.push(a);\r\n      a.onfinish = function(){\r\n        try{ a.cancel(); }catch(e){}\r\n        el.style.opacity=''; el.style.transform=''; el.style.filter='';\r\n      };\r\n    });\r\n    clearTimeout(safeTimer);\r\n    safeTimer = setTimeout(function(){\r\n      items.forEach(function(el){\r\n        el.classList.remove('bns-armed');\r\n        if(getComputedStyle(el).opacity < 0.9){\r\n          el.style.opacity=''; el.style.transform=''; el.style.filter='';\r\n        }\r\n      });\r\n    }, 1600);\r\n  }\r\n\r\n  var io = null;\r\n  function armOnScroll(){\r\n    if(io){ io.disconnect(); io=null; }\r\n    if(REDUCED || !HAS_WAAPI){ showAll(); return; }\r\n    arm();\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){ io.disconnect(); io=null; play(); }\r\n      });\r\n    },{ threshold:.15 });\r\n    io.observe(section);\r\n    setTimeout(function(){ if(io){ io.disconnect(); io=null; play(); } }, 3000);\r\n  }\r\n\r\n  \/* ===== ENGINE DO T\u00cdTULO (ANIMATION) ===== *\/\r\n  var tIO=null, tTimer=null, langTimer=null, isLangBusy=false;\r\n  function tReflow(el){ el.style.animation='none'; void el.offsetWidth; el.style.animation=''; }\r\n  function titleShow(){\r\n    if(!titulo) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    if(REDUCED || isLangBusy){ titulo.classList.remove('bt-armed','bt-out','bt-in'); return; }\r\n    titulo.classList.remove('bt-out');\r\n    requestAnimationFrame(function(){\r\n      if(isLangBusy) return;\r\n      titulo.classList.remove('bt-armed');\r\n      titulo.classList.add('bt-in');\r\n    });\r\n  }\r\n  function titleHide(){\r\n    if(!titulo || REDUCED) return;\r\n    clearTimeout(tTimer);\r\n    titulo.classList.remove('bt-in','bt-armed');\r\n    titulo.classList.add('bt-out');\r\n  }\r\n  function armTitle(){\r\n    if(!titulo) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    titulo.classList.remove('bt-in','bt-out','bt-armed');\r\n    if(REDUCED || isLangBusy) return;\r\n    titulo.classList.add('bt-armed');\r\n    tReflow(titulo);\r\n    tIO=new IntersectionObserver(function(en){\r\n      en.forEach(function(e){ if(e.isIntersecting) titleShow(); });\r\n    },{threshold:.2});\r\n    tIO.observe(titulo);\r\n    tTimer=setTimeout(titleShow,800);\r\n  }\r\n\r\n  \/* idioma: crossfade sem re-animar o t\u00edtulo *\/\r\n  var lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n  function langCrossfade(){\r\n    clearTimeout(langTimer);\r\n    isLangBusy = true;\r\n    if(titulo) titulo.classList.remove('bt-armed','bt-out','bt-in');\r\n    section.classList.add('bt-lang-busy');\r\n    langTimer = setTimeout(function(){\r\n      section.classList.remove('bt-lang-busy');\r\n      isLangBusy = false;\r\n    }, LANG_FADE);\r\n  }\r\n  try{\r\n    new MutationObserver(function(){\r\n      var l = document.documentElement.getAttribute('data-lang') || 'pt';\r\n      if(l !== lastLang){ lastLang = l; langCrossfade(); }\r\n    }).observe(document.documentElement,{attributes:true,attributeFilter:['data-lang']});\r\n  }catch(e){}\r\n\r\n  \/* ===== FOCO DESKTOP ===== *\/\r\n  var canHover = window.matchMedia('(hover:hover) and (pointer:fine)').matches;\r\n  function clearFocus(){\r\n    grid.classList.remove('bns-focusing');\r\n    cards.forEach(function(c){ c.classList.remove('is-focus'); });\r\n  }\r\n  if(canHover){\r\n    cards.forEach(function(c){\r\n      c.addEventListener('mouseenter', function(){\r\n        if(window.innerWidth <= 560) return;\r\n        grid.classList.add('bns-focusing');\r\n        cards.forEach(function(o){ o.classList.toggle('is-focus', o === c); });\r\n      });\r\n    });\r\n    grid.addEventListener('mouseleave', clearFocus);\r\n    grid.addEventListener('mousemove', function(e){\r\n      if(!grid.classList.contains('bns-focusing')) return;\r\n      if(!e.target.closest('.bns-card')) clearFocus();\r\n    });\r\n    window.addEventListener('blur', clearFocus);\r\n  }\r\n\r\n  \/* ===== FOCO POR SCROLL (\u2264560px) ===== *\/\r\n  var mq = window.matchMedia('(max-width:560px)');\r\n  var ticking = false;\r\n  function update(){\r\n    ticking = false;\r\n    if(!section.classList.contains('bns-scroll-fx')) return;\r\n    var centerY = window.innerHeight\/2, closest=null, best=Infinity;\r\n    cards.forEach(function(c){\r\n      var r = c.getBoundingClientRect();\r\n      var d = Math.abs((r.top + r.height\/2) - centerY);\r\n      if(d < best){ best=d; closest=c; }\r\n    });\r\n    cards.forEach(function(c){ c.classList.toggle('is-active', c===closest); });\r\n  }\r\n  function onScroll(){ if(!ticking){ ticking=true; requestAnimationFrame(update); } }\r\n  function enableScrollFx(){\r\n    clearFocus();\r\n    section.classList.add('bns-scroll-fx');\r\n    window.addEventListener('scroll', onScroll, {passive:true});\r\n    window.addEventListener('resize', onScroll, {passive:true});\r\n    update();\r\n  }\r\n  function disableScrollFx(){\r\n    section.classList.remove('bns-scroll-fx');\r\n    window.removeEventListener('scroll', onScroll);\r\n    window.removeEventListener('resize', onScroll);\r\n    cards.forEach(function(c){ c.classList.remove('is-active'); });\r\n  }\r\n  function handleMq(e){ e.matches ? enableScrollFx() : disableScrollFx(); }\r\n  handleMq(mq);\r\n  mq.addEventListener ? mq.addEventListener('change', handleMq) : mq.addListener(handleMq);\r\n\r\n  \/* ===== ORQUESTRA\u00c7\u00c3O \u2014 o CABE\u00c7ALHO manda ===== *\/\r\n  var swapTimer = null;\r\n\r\n  window.addEventListener('bonsa:swap-out', function(){\r\n    clearTimeout(swapTimer);\r\n    clearFocus(); killAnims(); titleHide();\r\n    page.classList.add('bns-out');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-in', function(){\r\n    clearTimeout(swapTimer);\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    arm(); armTitle();\r\n    page.classList.remove('bns-out');\r\n    swapTimer = setTimeout(function(){\r\n      play(); titleShow(); update();\r\n    }, HDR_REOPEN_LAG);\r\n  });\r\n\r\n  window.addEventListener('bonsa:leave', function(){\r\n    clearTimeout(swapTimer);\r\n    clearFocus(); killAnims(); titleHide();\r\n    page.classList.add('bns-out');\r\n  });\r\n\r\n  window.addEventListener('bonsa:lang', function(){\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    langCrossfade(); update();\r\n  });\r\n  window.addEventListener('bonsa:theme', update);\r\n\r\n  \/* ===== RESET ===== *\/\r\n  function resetAll(){\r\n    clearTimeout(swapTimer); clearTimeout(safeTimer); clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    clearFocus();\r\n    showAll();\r\n    armOnScroll();\r\n    armTitle();\r\n    update();\r\n  }\r\n  function isBackForward(){\r\n    try{ var n = performance.getEntriesByType('navigation')[0];\r\n      if(n && n.type === 'back_forward') return true; }catch(e){}\r\n    try{ if(performance.navigation && performance.navigation.type === 2) return true; }catch(e){}\r\n    return false;\r\n  }\r\n  window.addEventListener('pageshow', function(e){ if(e.persisted || isBackForward()) resetAll(); });\r\n  window.addEventListener('popstate', resetAll);\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && page.classList.contains('bns-out')) resetAll();\r\n  });\r\n\r\n  \/* ===== BOOT ===== *\/\r\n  armOnScroll();\r\n  armTitle();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bae12d elementor-widget elementor-widget-html\" data-id=\"1bae12d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"brev\" data-brev>\r\n  <div class=\"brev-inner\" data-brev-page>\r\n\r\n    <!-- T\u00cdTULO -->\r\n    <div class=\"brev-head\" style=\"--d:.05s\">\r\n      <h2 class=\"bttl-title\" data-bttl-title>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M23.5,4.1h-8.7v40h8.7c3.2,0,5.9-2.6,5.9-5.9h0s-8.7,0-8.7,0V10.1h8.7c0-3.3-2.6-6-5.9-6Z\" fill=\"var(--gold)\"\/><\/svg>\r\n        <\/span>\r\n        <span class=\"bttl-txt\">\r\n          <span data-lang-pt>DEPOIMENTOS<\/span><span data-lang-en>FEEDBACKS<\/span>\r\n        <\/span>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M16.5,4.1h8.7v40h-8.7c-3.2,0-5.9-2.6-5.9-5.9h0s8.7,0,8.7,0V10.1h-8.7c0-3.3,2.6-6,5.9-6Z\" fill=\"var(--gold)\"\/><\/svg>\r\n        <\/span>\r\n      <\/h2>\r\n    <\/div>\r\n\r\n    <!-- CARROSSEL -->\r\n    <div class=\"brev-stage\" style=\"--d:.16s\">\r\n      <button type=\"button\" class=\"brev-arrow brev-arrow-desk\" data-brev-prev aria-label=\"Anterior\">\r\n        <svg viewBox=\"0 0 18 24\" aria-hidden=\"true\"><path d=\"M.3,11.7l7.6-7.6c.7-.7,1.9-.7,2.7,0,.7.7.7,1.9,0,2.7l-4.4,4.4h10.1c1,0,1.9.8,1.9,1.9s-.8,1.9-1.9,1.9H6.2l4.4,4.4c.7.7.7,1.9,0,2.7-.4.4-.8.6-1.3.6s-1-.2-1.3-.6L.3,14.3c-.4-.4-.6-.8-.6-1.3s.2-1,.6-1.3Z\" fill=\"currentColor\"\/><\/svg>\r\n      <\/button>\r\n\r\n      <div class=\"brev-viewport\" data-brev-viewport>\r\n        <div class=\"brev-track\" data-brev-track><\/div>\r\n      <\/div>\r\n\r\n      <button type=\"button\" class=\"brev-arrow brev-arrow-desk\" data-brev-next aria-label=\"Pr\u00f3ximo\">\r\n        <svg viewBox=\"0 0 18 24\" aria-hidden=\"true\"><path d=\"M17.7,11.7l-7.6-7.6c-.7-.7-1.9-.7-2.7,0-.7.7-.7,1.9,0,2.7l4.4,4.4H1.7c-1,0-1.9.8-1.9,1.9s.8,1.9,1.9,1.9h10.1l-4.4,4.4c-.7.7-.7,1.9,0,2.7.4.4.8.6,1.3.6s1-.2,1.3-.6l7.6-7.6c.4-.4.6-.8.6-1.3s-.2-1-.6-1.3Z\" fill=\"currentColor\"\/><\/svg>\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <!-- CONTROLES -->\r\n    <div class=\"brev-controls\" style=\"--d:.26s\">\r\n      <button type=\"button\" class=\"brev-arrow brev-arrow-mob\" data-brev-prev aria-label=\"Anterior\">\r\n        <svg viewBox=\"0 0 18 24\" aria-hidden=\"true\"><path d=\"M.3,11.7l7.6-7.6c.7-.7,1.9-.7,2.7,0,.7.7.7,1.9,0,2.7l-4.4,4.4h10.1c1,0,1.9.8,1.9,1.9s-.8,1.9-1.9,1.9H6.2l4.4,4.4c.7.7.7,1.9,0,2.7-.4.4-.8.6-1.3.6s-1-.2-1.3-.6L.3,14.3c-.4-.4-.6-.8-.6-1.3s.2-1,.6-1.3Z\" fill=\"currentColor\"\/><\/svg>\r\n      <\/button>\r\n      <div class=\"brev-dots\" data-brev-dots><\/div>\r\n      <button type=\"button\" class=\"brev-arrow brev-arrow-mob\" data-brev-next aria-label=\"Pr\u00f3ximo\">\r\n        <svg viewBox=\"0 0 18 24\" aria-hidden=\"true\"><path d=\"M17.7,11.7l-7.6-7.6c-.7-.7-1.9-.7-2.7,0-.7.7-.7,1.9,0,2.7l4.4,4.4H1.7c-1,0-1.9.8-1.9,1.9s.8,1.9,1.9,1.9h10.1l-4.4,4.4c-.7.7-.7,1.9,0,2.7.4.4.8.6,1.3.6s1-.2,1.3-.6l7.6-7.6c.4-.4.6-.8.6-1.3s-.2-1-.6-1.3Z\" fill=\"currentColor\"\/><\/svg>\r\n      <\/button>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ===== TOKENS OFICIAIS (defensivo) ===== *\/\r\n:root{\r\n  --bg:#edece8; --bg-soft:#dedad1;\r\n  --text:#141d1f; --text-sub:#1e2828;\r\n  --gold:#9e8367; --detail:#d8d6d2;\r\n  --panel-text:#edece8; --panel-bg-rgb:20,29,31;\r\n}\r\nhtml.bonsa-dark, body.bonsa-dark{\r\n  --bg:#141d1f; --bg-soft:#1e2828;\r\n  --text:#eeece8; --text-sub:#dedad1;\r\n  --gold:#9e8367; --detail:#252c2d;\r\n  --panel-text:#141d1f; --panel-bg-rgb:237,236,232;\r\n}\r\n\r\n\/* ===== BIL\u00cdNGUE (nunca display:none) ===== *\/\r\n.brev [data-lang-pt], .brev [data-lang-en]{ transition: opacity .28s ease; }\r\nhtml[data-lang=\"pt\"] .brev [data-lang-en],\r\nhtml[data-lang=\"en\"] .brev [data-lang-pt]{\r\n  opacity:0; position:absolute; pointer-events:none; width:0; height:0; overflow:hidden;\r\n}\r\nhtml.bonsa-lang-switching .brev [data-lang-pt],\r\nhtml.bonsa-lang-switching .brev [data-lang-en]{ opacity:0; }\r\n.brev.bt-lang-busy [data-lang-pt],\r\n.brev.bt-lang-busy [data-lang-en]{ opacity:0 !important; }\r\n.brev.bt-lang-busy .bttl-title,\r\nhtml.bonsa-lang-switching .brev .bttl-title{\r\n  animation:none !important;opacity:1 !important;transform:none !important;filter:none !important;\r\n}\r\n\r\n\/* ===== SE\u00c7\u00c3O ===== *\/\r\n.brev{\r\n  background: var(--bg); color: var(--text);\r\n  font-family:'Borna','Poppins',sans-serif;\r\n  padding: 90px 0; position: relative; z-index:1; clear:both; isolation:isolate;\r\n  box-sizing:border-box;\r\n  transition: background .9s ease, color .9s ease;\r\n}\r\n.brev *{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }\r\n.brev *:focus,.brev *:focus-visible,.brev *:active{ outline:none !important; box-shadow:none !important; }\r\n.brev-inner{\r\n  max-width:1140px; margin:0 auto; padding:0; box-sizing:border-box;\r\n  transition: opacity .55s ease;\r\n}\r\n.brev-inner.bonsa-swap-out,\r\n.brev-inner.bonsa-exiting{ opacity:0; pointer-events:none; }\r\n\r\n\/* ===== T\u00cdTULO (engine ANIMATION) ===== *\/\r\n.brev-head{ display:flex; align-items:center; justify-content:center; margin-bottom:46px; }\r\n.bttl-title{\r\n  position:relative;display:inline-flex;align-items:center;justify-content:center;\r\n  gap:clamp(9px,1.1vw,14px);margin:0;text-align:center;\r\n  font-size:clamp(24px,3vw,32px);font-weight:600;\r\n  line-height:1.25;letter-spacing:1.5px;text-transform:uppercase;\r\n  color:var(--text);white-space:nowrap;opacity:1;\r\n  transition:color .9s ease;\r\n}\r\n.bttl-txt{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:1.25em}\r\n.bttl-bracket{display:inline-flex;align-items:center;justify-content:center;\r\n  width:clamp(13px,1.6vw,20px);height:clamp(26px,3.4vw,40px);flex:none}\r\n.bttl-bracket svg{width:100%;height:100%;display:block;overflow:visible}\r\n\r\n@keyframes bt-rise{\r\n  from{opacity:0;transform:translateY(12px);filter:blur(6px)}\r\n  to  {opacity:1;transform:translateY(0);filter:blur(0)}\r\n}\r\n@keyframes bt-fall{\r\n  from{opacity:1;transform:translateY(0);filter:blur(0)}\r\n  to  {opacity:0;transform:translateY(10px);filter:blur(5px)}\r\n}\r\n.bttl-title.bt-armed{opacity:0;transform:translateY(12px);filter:blur(6px);animation:none !important}\r\n.bttl-title.bt-in{animation:bt-rise .7s cubic-bezier(.4,0,.2,1) both}\r\n.bttl-title.bt-out{animation:bt-fall .45s cubic-bezier(.4,0,.2,1) both}\r\n\r\n\/* ===== PALCO ===== *\/\r\n.brev-stage{ display:flex; align-items:center; gap:20px; }\r\n.brev-viewport{\r\n  flex:1; min-width:0;\r\n  overflow-x:hidden; overflow-y:visible;\r\n  padding: 14px 0 6px;\r\n  margin: -14px 0 -6px;\r\n}\r\n.brev-track{\r\n  display:flex; align-items:stretch; will-change:transform;\r\n  transition: transform .7s cubic-bezier(.2,.7,.2,1);\r\n}\r\n\r\n\/* ===== CARD (vidro) ===== *\/\r\n.brev-card{\r\n  flex: 0 0 calc((100% - 56px) \/ 3);\r\n  margin-right:28px;\r\n  position:relative; overflow:hidden; isolation:isolate;\r\n  background: var(--bg-soft);\r\n  border:1px solid var(--detail); border-radius:18px;\r\n  padding:30px 28px; box-sizing:border-box;\r\n  display:flex; flex-direction:column;\r\n  transition: background .9s ease, border-color .9s ease;\r\n}\r\n.brev-card::before{\r\n  content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; border-radius:inherit;\r\n  background:\r\n    radial-gradient(140px 140px at 12% 118%, var(--gold) 0%, transparent 90%),\r\n    radial-gradient(160px 160px at 90% -20%, var(--gold) 0%, transparent 90%);\r\n  opacity:.09; filter: blur(26px);\r\n}\r\n.brev-card > *{ position:relative; z-index:1; }\r\n\r\n.brev-avatar{\r\n  width:56px; height:56px; border-radius:50%;\r\n  display:flex; align-items:center; justify-content:center;\r\n  font-family:'Borna','Poppins',sans-serif;\r\n  font-size:20px; font-weight:700;\r\n  color:#fff; margin-bottom:22px;\r\n  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14);\r\n}\r\n.brev-name{\r\n  font-size:17px; font-weight:700; letter-spacing:.5px;\r\n  margin:0 0 4px; color:var(--text); transition: color .9s ease;\r\n}\r\n.brev-role{\r\n  font-size:12px; font-weight:500; letter-spacing:1.2px; text-transform:uppercase;\r\n  color:var(--gold); margin:0 0 16px; position:relative; min-height:1.4em;\r\n}\r\n.brev-text{\r\n  font-size:15px; line-height:1.6; margin:0 0 22px;\r\n  color:var(--text-sub); opacity:.92; flex:1; font-weight:400;\r\n  max-width:68ch; transition: color .9s ease;\r\n}\r\n.brev-text > span{ position:relative; }\r\n.brev-stars{ height:24px; }\r\n.brev-stars svg{ height:100%; width:auto; display:block; }\r\n.brv-st{ fill: var(--gold); }\r\n\r\n\/* ===== SETAS \u2014 sem hover ===== *\/\r\n.brev button,\r\n.brev .brev-arrow{\r\n  -webkit-appearance:none; appearance:none;\r\n  box-shadow:none !important; text-decoration:none !important;\r\n}\r\n.brev .brev-arrow{\r\n  flex:none; width:52px; height:52px; border-radius:50%;\r\n  border:0 !important; padding:0 !important; margin:0;\r\n  background:var(--gold) !important;\r\n  background-image:none !important;\r\n  color:var(--panel-text) !important;\r\n  cursor:pointer; align-items:center; justify-content:center;\r\n  transition: transform .25s cubic-bezier(.34,1.4,.64,1), background .9s ease, color .9s ease;\r\n}\r\n.brev .brev-arrow:hover,\r\n.brev .brev-arrow:focus,\r\n.brev .brev-arrow:focus-visible,\r\n.brev .brev-arrow:visited{\r\n  background:var(--gold) !important;\r\n  background-color:var(--gold) !important;\r\n  background-image:none !important;\r\n  color:var(--panel-text) !important;\r\n  border-color:transparent !important;\r\n  transform:none !important;\r\n  filter:none !important;\r\n}\r\n.brev .brev-arrow svg{ width:16px; height:20px; display:block; pointer-events:none; }\r\n.brev .brev-arrow svg path{ fill: currentColor !important; }\r\n\/* \u00fanico feedback: toque\/clique *\/\r\n.brev .brev-arrow:active{ transform: scale(.93) !important; }\r\n\r\n\/* ===== VISIBILIDADE DAS SETAS ===== *\/\r\n.brev .brev-arrow-desk{ display:flex !important; }\r\n.brev .brev-arrow-mob{ display:none !important; }\r\n\r\n\/* ===== CONTROLES ===== *\/\r\n.brev-controls{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:40px; }\r\n.brev-dots{ display:flex; align-items:center; gap:10px; }\r\n.brev .brev-dot{\r\n  width:9px; height:9px; border-radius:50%;\r\n  background: var(--detail) !important; background-image:none !important;\r\n  border:0 !important; padding:0 !important; cursor:pointer;\r\n  box-shadow:none !important; outline:none !important;\r\n  transition: width .4s cubic-bezier(.2,.7,.2,1), background .3s ease;\r\n}\r\n.brev .brev-dot:hover,\r\n.brev .brev-dot:focus,\r\n.brev .brev-dot:active{ background: var(--detail) !important; transform:none !important; }\r\n.brev .brev-dot.on,\r\n.brev .brev-dot.on:hover,\r\n.brev .brev-dot.on:focus,\r\n.brev .brev-dot.on:active{\r\n  width:28px; border-radius:6px; background: var(--gold) !important;\r\n}\r\n\r\n\/* ===== ENTRADA (stagger via --d) ===== *\/\r\n@keyframes brev-rise{\r\n  0%{ opacity:0; transform: translateY(12px); filter: blur(6px); }\r\n  100%{ opacity:1; transform: translateY(0); filter: blur(0); }\r\n}\r\n.brev-stage, .brev-controls{ opacity:0; }\r\n.brev-inner.brev-in .brev-stage,\r\n.brev-inner.brev-in .brev-controls{\r\n  animation: brev-rise .6s cubic-bezier(.4,0,.2,1) forwards;\r\n  animation-delay: var(--d, 0s);\r\n}\r\n\r\n\/* ===== RESPONSIVO ===== *\/\r\n@media (max-width:1000px){\r\n  .brev-card{ flex: 0 0 calc((100% - 24px) \/ 2); margin-right:24px; }\r\n}\r\n@media (max-width:768px){\r\n  .brev{ padding:70px 0; }\r\n  .brev-inner{ padding:0 22px; }\r\n  .brev-head{ margin-bottom:34px; }\r\n  .bttl-title{ font-size:clamp(20px,5.4vw,26px); gap:10px; }\r\n  .bttl-bracket{ width:14px; height:28px; }\r\n\r\n  .brev .brev-arrow-desk{ display:none !important; }\r\n  .brev .brev-arrow-mob{ display:flex !important; width:48px; height:48px; }\r\n\r\n  .brev-stage{ gap:0; }\r\n  .brev-viewport{ padding:0; margin:0; overflow:hidden; }\r\n  .brev-card{ flex:0 0 100%; margin-right:20px; padding:28px 24px; border-radius:16px; }\r\n  .brev-controls{ gap:16px; margin-top:32px; }\r\n}\r\n@media (max-width:560px){\r\n  .bttl-title{ font-size:clamp(18px,5.2vw,23px); gap:8px; }\r\n  .bttl-bracket{ width:12px; height:24px; }\r\n}\r\n@media (max-width:480px){\r\n  .brev-inner{ padding:0 18px; }\r\n}\r\n@media (max-width:380px){\r\n  .brev-inner{ padding:0 16px; }\r\n  .brev-card{ padding:24px 20px; }\r\n  .brev .brev-arrow-mob{ width:48px; height:48px; }\r\n  .bttl-title{ font-size:17px; gap:7px; letter-spacing:1px; }\r\n  .bttl-bracket{ width:11px; height:22px; }\r\n}\r\n\r\n\/* ===== A11Y ===== *\/\r\n@media (prefers-reduced-motion: reduce){\r\n  .brev *{ animation:none !important; transition:none !important; }\r\n  .brev-stage, .brev-controls{ opacity:1 !important; transform:none !important; filter:none !important; }\r\n  .bttl-title{ opacity:1 !important; transform:none !important; filter:none !important; }\r\n}\r\n\r\n\/* Host Elementor *\/\r\n.elementor-widget-html,\r\n.elementor-widget-html .elementor-widget-container{\r\n  background: transparent !important; padding:0 !important; margin:0 !important;\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  var section = document.querySelector('[data-brev]');\r\n  var page    = document.querySelector('[data-brev-page]');\r\n  if (!section || !page) return;\r\n\r\n  var track    = section.querySelector('[data-brev-track]');\r\n  var viewport = section.querySelector('[data-brev-viewport]');\r\n  var dotsWrap = section.querySelector('[data-brev-dots]');\r\n  var prevBtns = section.querySelectorAll('[data-brev-prev]');\r\n  var nextBtns = section.querySelectorAll('[data-brev-next]');\r\n  var title    = section.querySelector('[data-bttl-title]');\r\n\r\n  var REDUCED = window.matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var LANG_FADE = 300;\r\n\r\n  \/* ================= DEPOIMENTOS ================= *\/\r\n  var DATA = [\r\n    { ini:'RM', color:'#2f6b4f',\r\n      name:'RICARDO MENEZES',\r\n      role:{pt:'INCORPORADORA VERTTA',en:'VERTTA DEVELOPER'},\r\n      txt:{pt:'Vendemos 70% das unidades antes da obra sair do ch\u00e3o. As imagens da Bonsa fizeram o cliente enxergar o apartamento pronto \u2014 e isso muda tudo na hora do fechamento.',\r\n           en:'We sold 70% of the units before construction even started. Bonsa\\'s images made clients see the finished apartment \u2014 and that changes everything at closing.'} },\r\n    { ini:'CA', color:'#b04a3a',\r\n      name:'CAMILA ANDRADE',\r\n      role:{pt:'ARQUITETA \u2014 EST\u00daDIO CA',en:'ARCHITECT \u2014 CA STUDIO'},\r\n      txt:{pt:'Trabalho com render h\u00e1 anos e nunca vi tanto cuidado com luz e materialidade. Entregaram um tour 360\u00ba que meu cliente abriu no celular e aprovou na mesma hora.',\r\n           en:'I have worked with renders for years and never saw such care with light and materials. They delivered a 360\u00ba tour my client opened on the phone and approved instantly.'} },\r\n    { ini:'TF', color:'#3a5f9e',\r\n      name:'THIAGO FONSECA',\r\n      role:{pt:'DIRETOR COMERCIAL \u2014 NOVAH',en:'SALES DIRECTOR \u2014 NOVAH'},\r\n      txt:{pt:'A anima\u00e7\u00e3o do lan\u00e7amento virou nosso melhor ativo de marketing. Rodou em stand, em an\u00fancio e em reuni\u00e3o de investidor. Prazo cumprido sem uma \u00fanica cobran\u00e7a.',\r\n           en:'The launch animation became our best marketing asset. It ran in the stand, in ads and in investor meetings. Deadline met without a single follow-up.'} },\r\n    { ini:'LP', color:'#7a4a8c',\r\n      name:'LARISSA PIRES',\r\n      role:{pt:'DESIGNER DE INTERIORES',en:'INTERIOR DESIGNER'},\r\n      txt:{pt:'O que mais me impressionou foi a leitura do projeto. Eles entenderam a inten\u00e7\u00e3o do espa\u00e7o antes de modelar qualquer coisa. Parceria, n\u00e3o fornecedor.',\r\n           en:'What impressed me most was how they read the project. They understood the intent of the space before modelling anything. A partner, not a vendor.'} },\r\n    { ini:'BM', color:'#c08a2e',\r\n      name:'BRUNO MARTINELLI',\r\n      role:{pt:'CONSTRUTORA HORIZONTE',en:'HORIZONTE CONSTRUCTION'},\r\n      txt:{pt:'Usamos a experi\u00eancia em VR na feira do setor e formamos fila no estande. As pessoas sa\u00edam de l\u00e1 dizendo que j\u00e1 tinham morado no apartamento.',\r\n           en:'We used the VR experience at the industry fair and formed a queue at our booth. People left saying they had already lived in the apartment.'} },\r\n    { ini:'JS', color:'#1f7a7a',\r\n      name:'JULIANA SANTOS',\r\n      role:{pt:'ARQUITETA \u2014 ATELIER JS',en:'ARCHITECT \u2014 ATELIER JS'},\r\n      txt:{pt:'Revis\u00f5es r\u00e1pidas, comunica\u00e7\u00e3o clara e um acabamento que valoriza o projeto sem inventar o que n\u00e3o existe. J\u00e1 \u00e9 a quarta obra que fazemos juntos.',\r\n           en:'Fast revisions, clear communication and a finish that elevates the project without inventing what is not there. This is our fourth project together.'} },\r\n    { ini:'EC', color:'#8c3b5f',\r\n      name:'EDUARDO CAMPOS',\r\n      role:{pt:'MARKETING \u2014 GRUPO ALVA',en:'MARKETING \u2014 ALVA GROUP'},\r\n      txt:{pt:'Contratamos tr\u00eas est\u00fadios antes de chegar na Bonsa. Foi o \u00fanico lugar onde o resultado veio melhor do que o briefing que eu escrevi.',\r\n           en:'We hired three studios before reaching Bonsa. It was the only place where the result came out better than the brief I wrote.'} }\r\n  ];\r\n\r\n  var STARS = '<svg viewBox=\"440 520 200 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\">'\r\n    + '<path class=\"brv-st\" d=\"M463.3,528l2.5,7.7h8.1c1.4,0,2,1.8.9,2.7l-6.6,4.8,2.5,7.7c.4,1.4-1.1,2.5-2.3,1.7l-6.6-4.8-6.6,4.8c-1.2.8-2.7-.3-2.3-1.7l2.5-7.7-6.6-4.8c-1.2-.8-.6-2.7.9-2.7h8.1l2.5-7.7c.4-1.4,2.4-1.4,2.8,0Z\"\/>'\r\n    + '<path class=\"brv-st\" d=\"M502.4,528l2.5,7.7h8.1c1.4,0,2,1.8.9,2.7l-6.6,4.8,2.5,7.7c.4,1.4-1.1,2.5-2.3,1.7l-6.6-4.8-6.6,4.8c-1.2.8-2.7-.3-2.3-1.7l2.5-7.7-6.6-4.8c-1.2-.8-.6-2.7.9-2.7h8.1l2.5-7.7c.4-1.4,2.4-1.4,2.8,0Z\"\/>'\r\n    + '<path class=\"brv-st\" d=\"M541.4,528l2.5,7.7h8.1c1.4,0,2,1.8.9,2.7l-6.6,4.8,2.5,7.7c.4,1.4-1.1,2.5-2.3,1.7l-6.6-4.8-6.6,4.8c-1.2.8-2.7-.3-2.3-1.7l2.5-7.7-6.6-4.8c-1.2-.8-.6-2.7.9-2.7h8.1l2.5-7.7c.4-1.4,2.4-1.4,2.8,0Z\"\/>'\r\n    + '<path class=\"brv-st\" d=\"M580.5,528l2.5,7.7h8.1c1.4,0,2,1.8.9,2.7l-6.6,4.8,2.5,7.7c.4,1.4-1.1,2.5-2.3,1.7l-6.6-4.8-6.6,4.8c-1.2.8-2.7-.3-2.3-1.7l2.5-7.7-6.6-4.8c-1.2-.8-.6-2.7.9-2.7h8.1l2.5-7.7c.4-1.4,2.4-1.4,2.8,0Z\"\/>'\r\n    + '<path class=\"brv-st\" d=\"M619.5,528l2.5,7.7h8.1c1.4,0,2,1.8.9,2.7l-6.6,4.8,2.5,7.7c.4,1.4-1.1,2.5-2.3,1.7l-6.6-4.8-6.6,4.8c-1.2.8-2.7-.3-2.3-1.7l2.5-7.7-6.6-4.8c-1.2-.8-.6-2.7.9-2.7h8.1l2.5-7.7c.4-1.4,2.4-1.4,2.8,0Z\"\/><\/svg>';\r\n\r\n  function esc(s){ return String(s).replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;'); }\r\n\r\n  var cards = [];\r\n  var index = 0;\r\n\r\n  function buildCards(){\r\n    track.innerHTML = DATA.map(function(d){\r\n      return '<article class=\"brev-card\">'\r\n        + '<div class=\"brev-avatar\" style=\"background:'+d.color+'\" aria-hidden=\"true\">'+esc(d.ini)+'<\/div>'\r\n        + '<h3 class=\"brev-name\">'+esc(d.name)+'<\/h3>'\r\n        + '<p class=\"brev-role\"><span data-lang-pt>'+esc(d.role.pt)+'<\/span><span data-lang-en>'+esc(d.role.en)+'<\/span><\/p>'\r\n        + '<p class=\"brev-text\"><span data-lang-pt>'+esc(d.txt.pt)+'<\/span><span data-lang-en>'+esc(d.txt.en)+'<\/span><\/p>'\r\n        + '<div class=\"brev-stars\">'+STARS+'<\/div>'\r\n        + '<\/article>';\r\n    }).join('');\r\n    cards = Array.prototype.slice.call(track.children);\r\n  }\r\n\r\n  function perView(){\r\n    if (window.matchMedia('(max-width: 768px)').matches) return 1;\r\n    if (window.matchMedia('(max-width: 1000px)').matches) return 2;\r\n    return 3;\r\n  }\r\n  function maxIndex(){ return Math.max(0, DATA.length - perView()); }\r\n  function stepWidth(){\r\n    if(!cards.length) return 0;\r\n    var mr = parseFloat(getComputedStyle(cards[0]).marginRight) || 0;\r\n    return cards[0].getBoundingClientRect().width + mr;\r\n  }\r\n  function buildDots(){\r\n    dotsWrap.innerHTML = '';\r\n    for (var i = 0; i <= maxIndex(); i++){\r\n      var b = document.createElement('button');\r\n      b.type = 'button';\r\n      b.className = 'brev-dot' + (i === index ? ' on' : '');\r\n      b.setAttribute('aria-label', 'Slide ' + (i+1));\r\n      (function(k){ b.addEventListener('click', function(){ goTo(k); }); })(i);\r\n      dotsWrap.appendChild(b);\r\n    }\r\n  }\r\n  function render(){\r\n    track.style.transform = 'translateX(' + (-(index * stepWidth())) + 'px)';\r\n    dotsWrap.querySelectorAll('.brev-dot').forEach(function(d,i){ d.classList.toggle('on', i === index); });\r\n  }\r\n  function goTo(i){ index = Math.max(0, Math.min(i, maxIndex())); render(); }\r\n  function next(){ goTo(index >= maxIndex() ? 0 : index + 1); }\r\n  function prev(){ goTo(index <= 0 ? maxIndex() : index - 1); }\r\n\r\n  prevBtns.forEach(function(b){\r\n    b.addEventListener('click', function(e){ e.preventDefault(); prev(); b.blur(); });\r\n  });\r\n  nextBtns.forEach(function(b){\r\n    b.addEventListener('click', function(e){ e.preventDefault(); next(); b.blur(); });\r\n  });\r\n\r\n  \/* swipe *\/\r\n  var startX = 0, dragging = false;\r\n  viewport.addEventListener('touchstart', function(e){ startX = e.touches[0].clientX; dragging = true; }, {passive:true});\r\n  viewport.addEventListener('touchend', function(e){\r\n    if(!dragging) return; dragging = false;\r\n    var dx = e.changedTouches[0].clientX - startX;\r\n    if (Math.abs(dx) > 50) { dx < 0 ? next() : prev(); }\r\n  });\r\n\r\n  \/* ===== T\u00cdTULO \u00b7 engine ANIMATION ===== *\/\r\n  var tIO=null, tTimer=null, langTimer=null, isLangBusy=false;\r\n  function tReflow(el){ el.style.animation='none'; void el.offsetWidth; el.style.animation=''; }\r\n  function titleShow(){\r\n    if(!title) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    if(REDUCED||isLangBusy){ title.classList.remove('bt-armed','bt-out','bt-in'); return; }\r\n    title.classList.remove('bt-out');\r\n    requestAnimationFrame(function(){\r\n      if(isLangBusy) return;\r\n      title.classList.remove('bt-armed');\r\n      title.classList.add('bt-in');\r\n    });\r\n  }\r\n  function titleHide(){\r\n    if(!title||REDUCED) return;\r\n    clearTimeout(tTimer);\r\n    title.classList.remove('bt-in','bt-armed');\r\n    title.classList.add('bt-out');\r\n  }\r\n  function armTitle(){\r\n    if(!title) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    title.classList.remove('bt-in','bt-out','bt-armed');\r\n    if(REDUCED||isLangBusy) return;\r\n    title.classList.add('bt-armed');\r\n    tReflow(title);\r\n    tIO=new IntersectionObserver(function(en){\r\n      en.forEach(function(e){ if(e.isIntersecting) titleShow(); });\r\n    },{threshold:.2});\r\n    tIO.observe(title);\r\n    tTimer=setTimeout(titleShow,800);\r\n  }\r\n\r\n  var lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n  function langCrossfade(){\r\n    clearTimeout(langTimer);\r\n    isLangBusy = true;\r\n    if(title) title.classList.remove('bt-armed','bt-out','bt-in');\r\n    section.classList.add('bt-lang-busy');\r\n    langTimer = setTimeout(function(){\r\n      section.classList.remove('bt-lang-busy');\r\n      isLangBusy = false;\r\n      render();\r\n    }, LANG_FADE);\r\n  }\r\n  try{\r\n    new MutationObserver(function(){\r\n      var l = document.documentElement.getAttribute('data-lang') || 'pt';\r\n      if(l !== lastLang){ lastLang = l; langCrossfade(); }\r\n    }).observe(document.documentElement,{attributes:true,attributeFilter:['data-lang']});\r\n  }catch(e){}\r\n\r\n  \/* ===== ENTRADA \/ REPLAY ===== *\/\r\n  var io = null;\r\n  function armEntrance(){\r\n    if(io) io.disconnect();\r\n    page.classList.remove('brev-in');\r\n    var els = section.querySelectorAll('.brev-stage, .brev-controls');\r\n    els.forEach(function(el){ el.style.animation = 'none'; });\r\n    void page.offsetWidth;\r\n    els.forEach(function(el){ el.style.animation = ''; });\r\n\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){ page.classList.add('brev-in'); io.unobserve(e.target); }\r\n      });\r\n    }, { threshold: .15 });\r\n    io.observe(section);\r\n    setTimeout(function(){ page.classList.add('brev-in'); }, 1400);\r\n  }\r\n\r\n  function replayAll(){\r\n    armTitle();\r\n    armEntrance();\r\n    index = Math.min(index, maxIndex());\r\n    buildDots();\r\n    render();\r\n  }\r\n\r\n  \/* ===== SA\u00cdDA \/ SWAP ===== *\/\r\n  var isExiting = false, isSwapping = false;\r\n\r\n  window.addEventListener('bonsa:leave', function(){\r\n    if(isExiting) return;\r\n    isExiting = true;\r\n    titleHide();\r\n    page.classList.add('bonsa-exiting');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-out', function(){\r\n    isSwapping = true;\r\n    titleHide();\r\n    page.classList.remove('bonsa-swap-in');\r\n    void page.offsetWidth;\r\n    page.classList.add('bonsa-swap-out');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-in', function(){\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    replayAll();\r\n    void page.offsetWidth;\r\n    page.classList.remove('bonsa-swap-out');\r\n    setTimeout(function(){ titleShow(); }, 300);\r\n    setTimeout(function(){ isSwapping = false; }, 1050);\r\n  });\r\n\r\n  window.addEventListener('bonsa:lang', function(){\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    langCrossfade(); render();\r\n  });\r\n  window.addEventListener('bonsa:theme', function(){ render(); });\r\n\r\n  \/* ===== RESET (bfcache \/ voltar) ===== *\/\r\n  function resetAll(){\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    isExiting = false; isSwapping = false;\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    page.classList.remove('bonsa-exiting','bonsa-swap-out','bonsa-swap-in');\r\n    replayAll();\r\n  }\r\n  function isBackForward(){\r\n    try{ var n = performance.getEntriesByType('navigation')[0]; if(n && n.type === 'back_forward') return true; }catch(e){}\r\n    try{ if(performance.navigation && performance.navigation.type === 2) return true; }catch(e){}\r\n    return false;\r\n  }\r\n  window.addEventListener('pageshow', function(e){ if(e.persisted || isBackForward()) resetAll(); });\r\n  window.addEventListener('popstate', resetAll);\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && page.classList.contains('bonsa-exiting')) resetAll();\r\n  });\r\n\r\n  \/* ===== RESIZE ===== *\/\r\n  var rt;\r\n  window.addEventListener('resize', function(){\r\n    clearTimeout(rt);\r\n    rt = setTimeout(function(){\r\n      if(index > maxIndex()) index = maxIndex();\r\n      buildDots(); render();\r\n    }, 150);\r\n  });\r\n\r\n  \/* ===== BOOT ===== *\/\r\n  buildCards();\r\n  buildDots();\r\n  armTitle();\r\n  armEntrance();\r\n  render();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6a93e1 elementor-widget elementor-widget-html\" data-id=\"f6a93e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"bfaq\" data-bfaq>\r\n  <div class=\"bfaq-inner\" data-bfaq-page>\r\n\r\n    <!-- T\u00cdTULO (engine ANIMATION) -->\r\n    <div class=\"bfaq-head\" style=\"--d:.05s\">\r\n      <h2 class=\"bttl-title\" data-bttl-title>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M23.5,4.1h-8.7v40h8.7c3.2,0,5.9-2.6,5.9-5.9h0s-8.7,0-8.7,0V10.1h8.7c0-3.3-2.6-6-5.9-6Z\" fill=\"var(--gold)\"\/><\/svg>\r\n        <\/span>\r\n        <span class=\"bttl-txt\">\r\n          <span data-lang-pt>PERGUNTAS FREQUENTES<\/span><span data-lang-en>FREQUENTLY ASKED QUESTIONS<\/span>\r\n        <\/span>\r\n        <span class=\"bttl-bracket\" aria-hidden=\"true\">\r\n          <svg viewBox=\"10 4 20 40\" fill=\"none\"><path d=\"M16.5,4.1h8.7v40h-8.7c-3.2,0-5.9-2.6-5.9-5.9h0s8.7,0,8.7,0V10.1h-8.7c0-3.3,2.6-6,5.9-6Z\" fill=\"var(--gold)\"\/><\/svg>\r\n        <\/span>\r\n      <\/h2>\r\n    <\/div>\r\n\r\n    <!-- LISTA -->\r\n    <div class=\"bfaq-list\" data-bfaq-list>\r\n\r\n      <div class=\"bfaq-item\" style=\"--d:.16s\">\r\n        <button type=\"button\" class=\"bfaq-q\" data-bfaq-q aria-expanded=\"false\">\r\n          <span class=\"bfaq-q-txt\">\r\n            <span data-lang-pt>QUANTO TEMPO DEMORA UM PROJETO?<\/span><span data-lang-en>HOW LONG DOES A PROJECT TAKE?<\/span>\r\n          <\/span>\r\n          <span class=\"bfaq-icon\" aria-hidden=\"true\">\r\n            <svg class=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n            <svg class=\"i-minus\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n          <\/span>\r\n        <\/button>\r\n        <div class=\"bfaq-a\" data-bfaq-a>\r\n          <div class=\"bfaq-a-in\">\r\n            <p data-lang-pt>O prazo varia conforme a complexidade do projeto. Imagens de interiores costumam levar de 5 a 10 dias \u00fateis, enquanto projetos maiores, como fachadas e \u00e1reas externas com paisagismo, podem levar de 2 a 3 semanas. Ap\u00f3s receber o briefing e o material de refer\u00eancia, enviamos um cronograma detalhado com as etapas e datas de entrega.<\/p>\r\n            <p data-lang-en>The timeline varies according to the project's complexity. Interior renders usually take 5 to 10 business days, while larger projects such as facades and outdoor areas with landscaping can take 2 to 3 weeks. Once we receive the briefing and reference material, we send a detailed schedule with each stage and delivery date.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bfaq-item\" style=\"--d:.23s\">\r\n        <button type=\"button\" class=\"bfaq-q\" data-bfaq-q aria-expanded=\"false\">\r\n          <span class=\"bfaq-q-txt\">\r\n            <span data-lang-pt>COMO FUNCIONA O PROCESSO?<\/span><span data-lang-en>HOW DOES THE PROCESS WORK?<\/span>\r\n          <\/span>\r\n          <span class=\"bfaq-icon\" aria-hidden=\"true\">\r\n            <svg class=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n            <svg class=\"i-minus\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n          <\/span>\r\n        <\/button>\r\n        <div class=\"bfaq-a\" data-bfaq-a>\r\n          <div class=\"bfaq-a-in\">\r\n            <p data-lang-pt>Tudo come\u00e7a com um briefing, onde entendemos suas necessidades e recebemos plantas, refer\u00eancias e materiais. Em seguida, produzimos uma pr\u00e9via em baixa resolu\u00e7\u00e3o para alinhar enquadramento, ilumina\u00e7\u00e3o e composi\u00e7\u00e3o. Ap\u00f3s sua aprova\u00e7\u00e3o, partimos para o refinamento e a renderiza\u00e7\u00e3o final em alta qualidade, com direito a uma rodada de ajustes.<\/p>\r\n            <p data-lang-en>It all starts with a briefing, where we understand your needs and receive floor plans, references and materials. Next, we produce a low-resolution preview to align framing, lighting and composition. After your approval, we move on to refinement and the final high-quality render, including one round of adjustments.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bfaq-item\" style=\"--d:.30s\">\r\n        <button type=\"button\" class=\"bfaq-q\" data-bfaq-q aria-expanded=\"false\">\r\n          <span class=\"bfaq-q-txt\">\r\n            <span data-lang-pt>QUAIS FORMATOS DE ENTREGA?<\/span><span data-lang-en>WHICH DELIVERY FORMATS?<\/span>\r\n          <\/span>\r\n          <span class=\"bfaq-icon\" aria-hidden=\"true\">\r\n            <svg class=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n            <svg class=\"i-minus\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n          <\/span>\r\n        <\/button>\r\n        <div class=\"bfaq-a\" data-bfaq-a>\r\n          <div class=\"bfaq-a-in\">\r\n            <p data-lang-pt>As imagens s\u00e3o entregues em alta resolu\u00e7\u00e3o nos formatos JPG e PNG, prontas para uso em apresenta\u00e7\u00f5es, redes sociais e materiais impressos. Tamb\u00e9m oferecemos anima\u00e7\u00f5es e tours 360\u00b0 quando o projeto pede. Se voc\u00ea precisar de um formato ou resolu\u00e7\u00e3o espec\u00edficos, \u00e9 s\u00f3 nos avisar no briefing.<\/p>\r\n            <p data-lang-en>Images are delivered in high resolution in JPG and PNG formats, ready for presentations, social media and printed materials. We also offer animations and 360\u00b0 tours when the project calls for it. If you need a specific format or resolution, just let us know in the briefing.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"bfaq-item\" style=\"--d:.37s\">\r\n        <button type=\"button\" class=\"bfaq-q\" data-bfaq-q aria-expanded=\"false\">\r\n          <span class=\"bfaq-q-txt\">\r\n            <span data-lang-pt>COMO SOLICITAR UM OR\u00c7AMENTO?<\/span><span data-lang-en>HOW TO REQUEST A QUOTE?<\/span>\r\n          <\/span>\r\n          <span class=\"bfaq-icon\" aria-hidden=\"true\">\r\n            <svg class=\"i-plus\" viewBox=\"0 0 24 24\"><path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n            <svg class=\"i-minus\" viewBox=\"0 0 24 24\"><path d=\"M5 12h14\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" fill=\"none\"\/><\/svg>\r\n          <\/span>\r\n        <\/button>\r\n        <div class=\"bfaq-a\" data-bfaq-a>\r\n          <div class=\"bfaq-a-in\">\r\n            <p data-lang-pt>Basta entrar em contato pelo WhatsApp ou e-mail com uma breve descri\u00e7\u00e3o do projeto e, se poss\u00edvel, plantas ou refer\u00eancias. Com essas informa\u00e7\u00f5es, preparamos um or\u00e7amento personalizado com prazo e valores. O primeiro contato \u00e9 sempre sem compromisso.<\/p>\r\n            <p data-lang-en>Just reach out via WhatsApp or email with a brief description of your project and, if possible, floor plans or references. With this information, we prepare a custom quote with timeline and pricing. The first contact is always with no commitment.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ===== TOKENS OFICIAIS (defensivo) ===== *\/\r\n:root{\r\n  --bg:#edece8; --bg-soft:#dedad1;\r\n  --text:#141d1f; --text-sub:#1e2828;\r\n  --gold:#9e8367; --detail:#d8d6d2;\r\n  --panel-text:#edece8;\r\n}\r\nhtml.bonsa-dark, body.bonsa-dark{\r\n  --bg:#141d1f; --bg-soft:#1e2828;\r\n  --text:#eeece8; --text-sub:#dedad1;\r\n  --gold:#9e8367; --detail:#252c2d;\r\n  --panel-text:#141d1f;\r\n}\r\n\r\n\/* ===== BIL\u00cdNGUE (nunca display:none) ===== *\/\r\n.bfaq [data-lang-pt], .bfaq [data-lang-en]{ transition: opacity .28s ease; }\r\nhtml[data-lang=\"pt\"] .bfaq [data-lang-en],\r\nhtml[data-lang=\"en\"] .bfaq [data-lang-pt]{\r\n  opacity:0; position:absolute; pointer-events:none; width:0; height:0; overflow:hidden;\r\n}\r\nhtml.bonsa-lang-switching .bfaq [data-lang-pt],\r\nhtml.bonsa-lang-switching .bfaq [data-lang-en]{ opacity:0; }\r\n.bfaq.bt-lang-busy [data-lang-pt],\r\n.bfaq.bt-lang-busy [data-lang-en]{ opacity:0 !important; }\r\n.bfaq.bt-lang-busy .bttl-title,\r\nhtml.bonsa-lang-switching .bfaq .bttl-title{\r\n  animation:none !important;opacity:1 !important;transform:none !important;filter:none !important;\r\n}\r\n\r\n\/* ===== SE\u00c7\u00c3O ===== *\/\r\n.bfaq{\r\n  background: var(--bg); color: var(--text);\r\n  font-family:'Borna','Bona','Poppins',Arial,sans-serif;\r\n  padding: 90px 0; position: relative; z-index:1; clear:both; isolation:isolate;\r\n  box-sizing:border-box;\r\n  transition: background .9s ease, color .9s ease;\r\n}\r\n.bfaq *{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }\r\n.bfaq *:focus, .bfaq *:focus-visible, .bfaq *:active{ outline:none !important; box-shadow:none !important; }\r\n.bfaq-inner{\r\n  max-width:1140px; margin:0 auto; padding:0;\r\n  transition: opacity .55s ease;\r\n}\r\n.bfaq-inner.bonsa-swap-out,\r\n.bfaq-inner.bonsa-exiting{ opacity:0; pointer-events:none; }\r\n\r\n\/* ===== T\u00cdTULO (engine ANIMATION) ===== *\/\r\n.bfaq-head{ display:flex; align-items:center; justify-content:center; margin-bottom:46px; }\r\n.bttl-title{\r\n  position:relative;display:inline-flex;align-items:center;justify-content:center;\r\n  gap:clamp(9px,1.1vw,14px);margin:0;text-align:center;\r\n  font-size:clamp(24px,3vw,32px);font-weight:600;\r\n  line-height:1.25;letter-spacing:1.5px;text-transform:uppercase;\r\n  color:var(--text);white-space:nowrap;opacity:1;\r\n  transition:color .9s ease;\r\n}\r\n.bttl-txt{display:inline-flex;align-items:center;justify-content:center;position:relative;min-height:1.25em}\r\n.bttl-bracket{display:inline-flex;align-items:center;justify-content:center;\r\n  width:clamp(13px,1.6vw,20px);height:clamp(26px,3.4vw,40px);flex:none}\r\n.bttl-bracket svg{width:100%;height:100%;display:block;overflow:visible}\r\n\r\n@keyframes bt-rise{\r\n  from{opacity:0;transform:translateY(12px);filter:blur(6px)}\r\n  to  {opacity:1;transform:translateY(0);filter:blur(0)}\r\n}\r\n@keyframes bt-fall{\r\n  from{opacity:1;transform:translateY(0);filter:blur(0)}\r\n  to  {opacity:0;transform:translateY(10px);filter:blur(5px)}\r\n}\r\n.bttl-title.bt-armed{opacity:0;transform:translateY(12px);filter:blur(6px);animation:none !important}\r\n.bttl-title.bt-in{animation:bt-rise .7s cubic-bezier(.4,0,.2,1) both}\r\n.bttl-title.bt-out{animation:bt-fall .45s cubic-bezier(.4,0,.2,1) both}\r\n\r\n\/* ===== LISTA \/ CARDS (vidro) ===== *\/\r\n.bfaq-list{ display:flex; flex-direction:column; gap:14px; }\r\n.bfaq-item{\r\n  position:relative; overflow:hidden; isolation:isolate;\r\n  background: var(--bg-soft);\r\n  border:1px solid var(--detail); border-radius:18px;\r\n  transition: background .9s ease, border-color .4s ease;\r\n}\r\n.bfaq-item::before{\r\n  content:\"\"; position:absolute; inset:0; z-index:0; pointer-events:none; border-radius:inherit;\r\n  background:\r\n    radial-gradient(160px 160px at 6% 130%, var(--gold) 0%, transparent 90%),\r\n    radial-gradient(180px 180px at 96% -30%, var(--gold) 0%, transparent 90%);\r\n  opacity:.09; filter: blur(26px);\r\n}\r\n.bfaq-item > *{ position:relative; z-index:1; }\r\n.bfaq-item.open{ border-color: var(--gold); }\r\n\r\n\/* ===== PERGUNTA (quebra de linha garantida) ===== *\/\r\n.bfaq .bfaq-q{\r\n  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;\r\n  padding:18px 18px 18px 26px; text-align:left; cursor:pointer;\r\n  border:0 !important; background:transparent !important; background-image:none !important;\r\n  box-shadow:none !important; outline:none !important; text-decoration:none !important;\r\n  -webkit-appearance:none; appearance:none;\r\n  font-family:inherit; font-size:16px; font-weight:600;\r\n  letter-spacing:1px; text-transform:uppercase; color:var(--text) !important;\r\n  transition: color .9s ease;\r\n  min-height:48px;\r\n}\r\n.bfaq .bfaq-q:hover,\r\n.bfaq .bfaq-q:focus,\r\n.bfaq .bfaq-q:focus-visible,\r\n.bfaq .bfaq-q:active{\r\n  background:transparent !important; background-image:none !important;\r\n  color:var(--text) !important; border-color:transparent !important;\r\n  filter:none !important;\r\n}\r\n.bfaq-item.open .bfaq-q{ color:var(--gold) !important; }\r\n\r\n.bfaq-q-txt{\r\n  position:relative; display:block; flex:1 1 auto; min-width:0;\r\n  white-space:normal;\r\n  overflow-wrap:anywhere; word-break:break-word; hyphens:auto;\r\n  line-height:1.35;\r\n}\r\n.bfaq-q-txt > span[data-lang-pt],\r\n.bfaq-q-txt > span[data-lang-en]{ display:inline; }\r\n\r\n\/* \u00cdCONE +\/- *\/\r\n.bfaq-icon{\r\n  flex:0 0 auto; width:40px; height:40px; border-radius:50%;\r\n  background:transparent; color:var(--gold);\r\n  display:grid; place-items:center;\r\n  transition: background .35s ease, color .35s ease;\r\n}\r\n.bfaq-item.open .bfaq-icon{ background:var(--gold); color:var(--panel-text); }\r\n.bfaq-icon svg{ width:22px; height:22px; grid-area:1\/1; pointer-events:none; transition: opacity .25s ease, transform .25s ease; }\r\n.bfaq-icon .i-minus{ opacity:0; transform: rotate(-90deg); }\r\n.bfaq-item.open .bfaq-icon .i-plus{ opacity:0; transform: rotate(90deg); }\r\n.bfaq-item.open .bfaq-icon .i-minus{ opacity:1; transform: rotate(0); }\r\n\r\n\/* RESPOSTA *\/\r\n.bfaq-a{ display:grid; grid-template-rows:0fr; transition: grid-template-rows .45s cubic-bezier(.2,.7,.2,1); }\r\n.bfaq-item.open .bfaq-a{ grid-template-rows:1fr; }\r\n.bfaq-a-in{ overflow:hidden; }\r\n.bfaq-a p{\r\n  margin:0; padding:0 56px 22px 26px;\r\n  font-size:16px; font-weight:400; line-height:1.6;\r\n  color:var(--text-sub); opacity:.92; max-width:68ch;\r\n  overflow-wrap:anywhere;\r\n  transition: color .9s ease;\r\n}\r\n\r\n\/* ===== ENTRADA (stagger via --d) ===== *\/\r\n@keyframes bfaq-rise{\r\n  0%{ opacity:0; transform: translateY(12px); filter: blur(6px); }\r\n  100%{ opacity:1; transform: translateY(0); filter: blur(0); }\r\n}\r\n.bfaq-item{ opacity:0; }\r\n.bfaq-inner.bfaq-in .bfaq-item{\r\n  animation: bfaq-rise .6s cubic-bezier(.4,0,.2,1) forwards;\r\n  animation-delay: var(--d, 0s);\r\n}\r\n\r\n\/* ===== RESPONSIVO ===== *\/\r\n@media (max-width:768px){\r\n  .bfaq{ padding:70px 0; }\r\n  .bfaq-inner{ padding:0 22px; }\r\n  .bfaq-head{ margin-bottom:34px; }\r\n  .bttl-title{ font-size:clamp(20px,5.4vw,26px); gap:10px; white-space:normal; flex-wrap:nowrap; }\r\n  .bttl-txt{ white-space:normal; }\r\n  .bttl-bracket{ width:14px; height:28px; }\r\n\r\n  .bfaq .bfaq-q{ font-size:14px; padding:16px 14px 16px 18px; gap:12px; align-items:center; }\r\n  .bfaq-icon{ width:36px; height:36px; }\r\n  .bfaq-icon svg{ width:18px; height:18px; }\r\n  .bfaq-item{ border-radius:16px; }\r\n  .bfaq-a p{ padding:0 18px 18px 18px; font-size:16px; }\r\n}\r\n@media (max-width:560px){\r\n  .bttl-title{ font-size:clamp(18px,5.2vw,23px); gap:8px; }\r\n  .bttl-bracket{ width:12px; height:24px; }\r\n  .bfaq .bfaq-q{ font-size:13.5px; letter-spacing:.8px; gap:10px; padding:16px 12px 16px 16px; }\r\n  .bfaq-q-txt{ line-height:1.4; }\r\n}\r\n@media (max-width:480px){ .bfaq-inner{ padding:0 18px; } }\r\n@media (max-width:380px){\r\n  .bfaq-inner{ padding:0 16px; }\r\n  .bttl-title{ font-size:17px; gap:7px; letter-spacing:1px; }\r\n  .bttl-bracket{ width:11px; height:22px; }\r\n  .bfaq .bfaq-q{ font-size:13px; letter-spacing:.5px; padding:14px 10px 14px 14px; gap:8px; }\r\n  .bfaq-icon{ width:32px; height:32px; }\r\n  .bfaq-icon svg{ width:16px; height:16px; }\r\n}\r\n\r\n\/* ===== A11Y ===== *\/\r\n@media (prefers-reduced-motion: reduce){\r\n  .bfaq *{ animation:none !important; transition:none !important; }\r\n  .bfaq-item{ opacity:1 !important; transform:none !important; filter:none !important; }\r\n  .bttl-title{ opacity:1 !important; transform:none !important; filter:none !important; }\r\n}\r\n\r\n\/* Host Elementor *\/\r\n.elementor-widget-html,\r\n.elementor-widget-html .elementor-widget-container{\r\n  background: transparent !important; padding:0 !important; margin:0 !important;\r\n  height:auto !important; min-height:0 !important; overflow:visible !important;\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var section = document.querySelector('[data-bfaq]');\r\n  var page    = document.querySelector('[data-bfaq-page]');\r\n  var list    = document.querySelector('[data-bfaq-list]');\r\n  if(!section || !page || !list) return;\r\n\r\n  var title = section.querySelector('[data-bttl-title]');\r\n  var REDUCED = window.matchMedia('(prefers-reduced-motion:reduce)').matches;\r\n  var LANG_FADE = 300;\r\n\r\n  \/* ===== ACORDE\u00c3O ===== *\/\r\n  function closeAll(){\r\n    list.querySelectorAll('.bfaq-item.open').forEach(function(i){\r\n      i.classList.remove('open');\r\n      var b = i.querySelector('[data-bfaq-q]');\r\n      if(b) b.setAttribute('aria-expanded','false');\r\n    });\r\n  }\r\n  list.querySelectorAll('[data-bfaq-q]').forEach(function(btn){\r\n    btn.addEventListener('click', function(e){\r\n      e.preventDefault();\r\n      var item = btn.closest('.bfaq-item');\r\n      var wasOpen = item.classList.contains('open');\r\n      closeAll();\r\n      if(!wasOpen){\r\n        item.classList.add('open');\r\n        btn.setAttribute('aria-expanded','true');\r\n      }\r\n      btn.blur();\r\n    });\r\n  });\r\n  document.addEventListener('keydown', function(e){ if(e.key === 'Escape') closeAll(); });\r\n\r\n  \/* ===== T\u00cdTULO \u00b7 engine ANIMATION ===== *\/\r\n  var tIO=null, tTimer=null, langTimer=null, isLangBusy=false;\r\n  function tReflow(el){ el.style.animation='none'; void el.offsetWidth; el.style.animation=''; }\r\n\r\n  function titleShow(){\r\n    if(!title) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    if(REDUCED||isLangBusy){ title.classList.remove('bt-armed','bt-out','bt-in'); return; }\r\n    title.classList.remove('bt-out');\r\n    requestAnimationFrame(function(){\r\n      if(isLangBusy) return;\r\n      title.classList.remove('bt-armed');\r\n      title.classList.add('bt-in');\r\n    });\r\n  }\r\n  function titleHide(){\r\n    if(!title || REDUCED) return;\r\n    clearTimeout(tTimer);\r\n    title.classList.remove('bt-in','bt-armed');\r\n    title.classList.add('bt-out');\r\n  }\r\n  function armTitle(){\r\n    if(!title) return;\r\n    clearTimeout(tTimer);\r\n    if(tIO){tIO.disconnect();tIO=null;}\r\n    title.classList.remove('bt-in','bt-out','bt-armed');\r\n    if(REDUCED||isLangBusy) return;\r\n    title.classList.add('bt-armed');\r\n    tReflow(title);\r\n    tIO=new IntersectionObserver(function(en){\r\n      en.forEach(function(e){ if(e.isIntersecting) titleShow(); });\r\n    },{threshold:.2});\r\n    tIO.observe(title);\r\n    tTimer=setTimeout(titleShow,800);\r\n  }\r\n\r\n  var lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n  function langCrossfade(){\r\n    clearTimeout(langTimer);\r\n    isLangBusy = true;\r\n    if(title) title.classList.remove('bt-armed','bt-out','bt-in');\r\n    section.classList.add('bt-lang-busy');\r\n    langTimer = setTimeout(function(){\r\n      section.classList.remove('bt-lang-busy');\r\n      isLangBusy = false;\r\n    }, LANG_FADE);\r\n  }\r\n  window.addEventListener('bonsa:lang', function(){\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    langCrossfade();\r\n  });\r\n  try{\r\n    new MutationObserver(function(){\r\n      var l = document.documentElement.getAttribute('data-lang') || 'pt';\r\n      if(l !== lastLang){ lastLang = l; langCrossfade(); }\r\n    }).observe(document.documentElement,{attributes:true,attributeFilter:['data-lang']});\r\n  }catch(e){}\r\n\r\n  \/* ===== ENTRADA \/ REPLAY ===== *\/\r\n  var io = null;\r\n  function armEntrance(){\r\n    if(io) io.disconnect();\r\n    page.classList.remove('bfaq-in');\r\n    var els = section.querySelectorAll('.bfaq-item');\r\n    els.forEach(function(el){ el.style.animation = 'none'; });\r\n    void page.offsetWidth;\r\n    els.forEach(function(el){ el.style.animation = ''; });\r\n\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){ page.classList.add('bfaq-in'); io.unobserve(e.target); }\r\n      });\r\n    }, { threshold:.15 });\r\n    io.observe(section);\r\n    setTimeout(function(){ page.classList.add('bfaq-in'); }, 1400);\r\n  }\r\n\r\n  function replayAll(){\r\n    closeAll();\r\n    armTitle();\r\n    armEntrance();\r\n  }\r\n\r\n  \/* ===== ORQUESTRA\u00c7\u00c3O ===== *\/\r\n  var isExiting = false, isSwapping = false;\r\n\r\n  window.addEventListener('bonsa:leave', function(){\r\n    if(isExiting) return;\r\n    isExiting = true;\r\n    titleHide();\r\n    page.classList.add('bonsa-exiting');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-out', function(){\r\n    isSwapping = true;\r\n    closeAll();\r\n    titleHide();\r\n    page.classList.remove('bonsa-swap-in');\r\n    void page.offsetWidth;\r\n    page.classList.add('bonsa-swap-out');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-in', function(){\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    replayAll();\r\n    void page.offsetWidth;\r\n    page.classList.remove('bonsa-swap-out');\r\n    setTimeout(titleShow, 300);\r\n    setTimeout(function(){ isSwapping = false; }, 1050);\r\n  });\r\n\r\n  \/* ===== RESET (bfcache \/ voltar) ===== *\/\r\n  function resetAll(){\r\n    clearTimeout(langTimer);\r\n    section.classList.remove('bt-lang-busy');\r\n    isLangBusy = false;\r\n    isExiting = false; isSwapping = false;\r\n    lastLang = document.documentElement.getAttribute('data-lang') || 'pt';\r\n    page.classList.remove('bonsa-exiting','bonsa-swap-out','bonsa-swap-in');\r\n    replayAll();\r\n  }\r\n  function isBackForward(){\r\n    try{ var n = performance.getEntriesByType('navigation')[0]; if(n && n.type === 'back_forward') return true; }catch(e){}\r\n    try{ if(performance.navigation && performance.navigation.type === 2) return true; }catch(e){}\r\n    return false;\r\n  }\r\n  window.addEventListener('pageshow', function(e){ if(e.persisted || isBackForward()) resetAll(); });\r\n  window.addEventListener('popstate', resetAll);\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && page.classList.contains('bonsa-exiting')) resetAll();\r\n  });\r\n\r\n  \/* ===== BOOT ===== *\/\r\n  armTitle();\r\n  armEntrance();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eec2559 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"eec2559\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ce1c34 elementor-widget elementor-widget-html\" data-id=\"4ce1c34\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<footer class=\"bfoot\" data-bfoot>\r\n  <div class=\"bfoot-inner bfoot-anim\" data-bfoot-page>\r\n\r\n    <!-- COLUNA ESQUERDA: local + social -->\r\n    <div class=\"bfoot-left\" style=\"--d:.05s\">\r\n      <p class=\"bfoot-city\">\r\n        <span data-lang-pt>BELO HORIZONTE - MG - BRASIL<\/span><span data-lang-en>BELO HORIZONTE - MG - BRAZIL<\/span>\r\n      <\/p>\r\n\r\n      <div class=\"bfoot-social\">\r\n        <!-- WhatsApp -->\r\n        <a href=\"#\" class=\"bfoot-ico\" data-net=\"wa\" data-wa aria-label=\"WhatsApp\" target=\"_blank\" rel=\"noopener\" style=\"--ds:.28s\">\r\n          <svg viewBox=\"385 478 130 120\" fill=\"currentColor\">\r\n            <path fill-rule=\"evenodd\" d=\"M482.9,552.2c-.5-2.3-3-3.9-5.2-5.2-.8-.4-1.5-.8-2.1-1.2-2.7-1.6-6.2-3.4-9.3-2.1-.8.3-1.4.9-2,1.6-1,1.1-1.8,2.6-2.6,3.9-.3.5-.6.9-.9,1.3-.8,1-1.7,1.2-3,.7-9.1-3.6-16-9.7-21.1-18.1-.3-.5-.5-.9-.5-1.4,0-.1,0-.3,0-.4,0-.4.2-.8.5-1.3.1-.1.2-.3.3-.4.3-.3.6-.7.9-1,.8-.9,1.6-1.9,2.2-3,.4-.7.6-1.4.8-2.1,0-.3,0-.6,0-.9,0-.9-.1-1.9-.4-2.9-.4-1.3-.9-2.5-1.4-3.6-.8-1.7-1.6-3.9-2.8-5.6-.7-1.1-1.6-2-2.6-2.5-.9-.5-2-.8-3.1-.7-1.8,0-3.6.8-5,1.9-1.4,1.2-2.6,2.6-3.5,4.2-.6,1.1-1.1,2.2-1.4,3.4-.5,1.8-.8,3.6-.7,5.4h0c0,1.1.1,2.1.3,3.1,0,.3.1.7.2,1,.4,1.7,1.1,3.4,1.8,5.1.6,1.4,1.4,2.7,2.1,4,.4.7.9,1.4,1.3,2.1.7,1.1,1.4,2.1,2.1,3.1.2.3.5.7.7,1,3.1,4.1,6.6,7.9,10.5,11.2,1.6,1.3,3.2,2.6,4.9,3.7.8.6,1.7,1.1,2.6,1.7.4.3.9.5,1.3.8,2.8,1.6,5.8,3.1,8.9,4.2.3.1.6.3,1,.4.5.2,1.1.4,1.6.5s.5.2.8.3c3.5,1.1,6.8,2,10.6,1.2,2.8-.5,5.6-1.7,7.8-3.5.7-.6,1.4-1.3,2-2,.8-1,1.5-2.1,2-3.3.4-.9.6-1.8.7-2.8,0-.2,0-.4,0-.6,0-.4,0-.8-.1-1.1Z\"\/>\r\n            <path fill-rule=\"evenodd\" d=\"M514.9,536.2c0-14.3-4.7-27.6-12.7-38.3-11.7-15.6-30.3-25.7-51.3-25.7s-39.6,10.1-51.3,25.7c-8,10.7-12.7,23.9-12.7,38.3h0c0,3.1.2,6.2.7,9.2,1.1,7.9,3.8,15.6,7.8,22.5.6,1,1.2,2,1.8,3l-2.8,6.1-6.9,15.3c-.2.4-.3.8-.4,1.1,0,.4-.1.8-.1,1.2,0,1.3.4,2.6,1.3,3.6.3.4.7.7,1.1,1,.9.6,2,.9,3.1.9s1,0,1.5-.2l26.8-7.3c1.7.9,3.5,1.8,5.3,2.5,7.8,3.3,16.3,5,24.8,5,25.4,0,47.3-14.8,57.7-36.3.5-.9.9-1.9,1.3-2.8,3.2-7.7,5-16.1,5-24.9h0ZM494.7,565.8c-9.5,14.1-25.6,23.3-43.8,23.3s-18.6-2.5-26.6-7.2c-.3-.2-.5-.3-.8-.4-.6-.2-1.3-.4-2-.4s-1,0-1.5.2l-3.5,1-14,3.8,6.1-13.4c.3-.7.5-1.4.5-2.1,0-1.2-.3-2.4-1.1-3.5-5.5-7.6-8.8-16.4-9.7-25.7-.2-1.7-.3-3.5-.3-5.2,0-5.5.8-10.7,2.4-15.7,4.1-13.2,13.3-24.2,25.3-30.8,3-1.6,6.2-3,9.5-4,2.5-.8,5-1.4,7.7-1.8.9-.1,1.8-.2,2.6-.3,1.8-.2,3.6-.3,5.4-.3s3.6,0,5.4.3c.9,0,1.8.2,2.6.3,2.6.4,5.2,1,7.7,1.8,3.3,1,6.5,2.4,9.5,4,12,6.5,21.2,17.5,25.3,30.8,1.5,5,2.4,10.2,2.4,15.7,0,10.9-3.3,21.1-9,29.5Z\"\/>\r\n          <\/svg>\r\n        <\/a>\r\n\r\n        <!-- Instagram -->\r\n        <a href=\"https:\/\/www.instagram.com\/bonsastudio\" class=\"bfoot-ico\" data-net=\"ig\" aria-label=\"Instagram\" target=\"_blank\" rel=\"noopener\" style=\"--ds:.35s\">\r\n          <svg viewBox=\"215.1 475.1 132.5 132.4\" fill=\"currentColor\">\r\n            <path d=\"M281.6,509.6c-18.1,0-32.8,14.7-32.8,32.8s14.7,32.7,32.8,32.7,32.7-14.7,32.7-32.7-14.7-32.8-32.7-32.8ZM281.6,563.3c-11.6,0-21-9.4-21-21s9.4-21,21-21,20.9,9.4,20.9,21-9.4,21-20.9,21Z\"\/>\r\n            <path d=\"M316.3,499.6c-4.3,0-7.8,3.5-7.8,7.8s3.5,7.8,7.8,7.8,7.8-3.5,7.8-7.8-3.5-7.8-7.8-7.8Z\"\/>\r\n            <path d=\"M307.7,475.1h-52.7c-22,0-39.9,17.9-39.9,39.9v52.7c0,22.1,17.9,39.9,39.9,39.9h52.7c22.1,0,39.9-17.9,39.9-39.9v-52.7c0-22.1-17.9-39.9-39.9-39.9ZM335.2,567.8c0,15.2-12.3,27.4-27.4,27.4h-52.7c-15.2,0-27.4-12.3-27.4-27.4v-52.7c0-15.2,12.3-27.4,27.4-27.4h52.7c15.2,0,27.4,12.3,27.4,27.4v52.7Z\"\/>\r\n          <\/svg>\r\n        <\/a>\r\n\r\n        <!-- ArtStation -->\r\n        <a href=\"https:\/\/www.artstation.com\/pedrimborges\" class=\"bfoot-ico\" data-net=\"as\" aria-label=\"ArtStation\" target=\"_blank\" rel=\"noopener\" style=\"--ds:.42s\">\r\n          <svg viewBox=\"710.8 475.2 133.4 117.5\" fill=\"currentColor\">\r\n            <path d=\"M764.9,475.2h24.2c8.3.5,11,7.4,14.6,13.6,13.6,23.5,26.9,47.2,40.6,70.6,2.2,4.3,2.3,9.3-.2,13.4l-11.5,19.8-67.8-117.5Z\"\/>\r\n            <path d=\"M796.3,564.9l16.2,27.8h-78.5c-4.8-.4-9.1-3.1-11.3-7.3l-11.9-20.5h85.6Z\"\/>\r\n            <polygon points=\"784.1 546.3 723.4 546.3 753.9 493.8 784.1 546.3\"\/>\r\n          <\/svg>\r\n        <\/a>\r\n\r\n        <!-- E-mail -->\r\n        <a href=\"mailto:studiobonsa@gmail.com\" class=\"bfoot-ico\" data-net=\"mail\" aria-label=\"E-mail\" style=\"--ds:.49s\">\r\n          <svg viewBox=\"540.9 485.7 139.1 101.4\" fill=\"currentColor\">\r\n            <path d=\"M661.3,485.7h-101.7c-10.3,0-18.7,8.4-18.7,18.7v64c0,10.3,8.4,18.7,18.7,18.7h101.7c10.3,0,18.7-8.4,18.7-18.7v-64c0-10.3-8.4-18.7-18.7-18.7ZM612.3,539.2c-.5.4-1.2.7-1.8.7s-1.3-.2-1.8-.7l-49-42.9h101.7l-49,42.9ZM588.7,536.4l-37.2,32.6c0-.2,0-.4,0-.5v-64c0-.2,0-.4,0-.5l37.2,32.6ZM597.1,543.7l4.3,3.8c2.5,2.2,5.7,3.4,9.1,3.4s6.6-1.2,9.1-3.4l4.3-3.8,37.4,32.8h-101.7l37.4-32.8ZM632.2,536.4l37.2-32.6c0,.2,0,.4,0,.5v64c0,.2,0,.4,0,.5l-37.2-32.6Z\"\/>\r\n          <\/svg>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- CENTRO: logo -->\r\n    <div class=\"bfoot-center\" style=\"--d:.14s\">\r\n      <button class=\"bfoot-logo\" data-bfoot-top type=\"button\" aria-label=\"Voltar ao topo\">\r\n        <svg viewBox=\"662 362 44 44\" fill=\"none\">\r\n          <path class=\"bfoot-logo-p\" d=\"M703,404.1h-8.7c-3.2,0-5.9-2.6-5.9-5.9h0s8.7,0,8.7,0v-28.2h-8.7c0-3.2,2.6-5.9,5.9-5.9h8.7v40Z\"\/>\r\n          <path class=\"bfoot-logo-p\" d=\"M671.8,404.1h-8.7v-40h8.7c3.2,0,5.9,2.6,5.9,5.9h0s-8.7,0-8.7,0v28.2h8.7c0,3.2-2.6,5.9-5.9,5.9Z\"\/>\r\n          <rect class=\"bfoot-logo-p\" x=\"676.7\" y=\"377.8\" width=\"12.5\" height=\"12.5\"\/>\r\n        <\/svg>\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <!-- DIREITA: subir + cr\u00e9ditos -->\r\n    <div class=\"bfoot-right\" style=\"--d:.22s\">\r\n      <button class=\"bfoot-top\" data-bfoot-top type=\"button\">\r\n        <span class=\"bfoot-top-ico\" aria-hidden=\"true\">\r\n          <svg viewBox=\"672 371 24 24\" fill=\"none\">\r\n            <path d=\"M691.7,382.7l-7.6-7.6c-.7-.7-1.9-.7-2.7,0-.7.7-.7,1.9,0,2.7l4.4,4.4h-10.1c-1,0-1.9.8-1.9,1.9s.8,1.9,1.9,1.9h10.1l-4.4,4.4c-.7.7-.7,1.9,0,2.7.4.4.8.6,1.3.6s1-.2,1.3-.6l7.6-7.6c.4-.4.6-.8.6-1.3s-.2-1-.6-1.3Z\" fill=\"currentColor\"\/>\r\n          <\/svg>\r\n        <\/span>\r\n        <span class=\"bfoot-top-txt\"><span data-lang-pt>SUBIR<\/span><span data-lang-en>TOP<\/span><\/span>\r\n      <\/button>\r\n      <p class=\"bfoot-brand\">BONSA STUDIO 3D<\/p>\r\n      <p class=\"bfoot-rights\">\r\n        <span data-lang-pt>\u00a9 2026 TODOS OS DIREITOS RESERVADOS<\/span><span data-lang-en>\u00a9 2026 ALL RIGHTS RESERVED<\/span>\r\n      <\/p>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/footer>\r\n\r\n<style>\r\n\/* ===== TOKENS OFICIAIS (defensivo \u2014 cabe\u00e7alho \u00e9 a fonte da verdade) ===== *\/\r\n:root{\r\n  --bg:#edece8; --bg-soft:#dedad1;\r\n  --text:#141d1f; --text-sub:#1e2828;\r\n  --gold:#9e8367; --detail:#d8d6d2;\r\n  --panel-text:#edece8;\r\n}\r\nhtml.bonsa-dark, body.bonsa-dark{\r\n  --bg:#141d1f; --bg-soft:#1e2828;\r\n  --text:#eeece8; --text-sub:#dedad1;\r\n  --gold:#9e8367; --detail:#252c2d;\r\n  --panel-text:#141d1f;\r\n}\r\n\r\n\/* ===== BIL\u00cdNGUE (nunca display:none) ===== *\/\r\n.bfoot [data-lang-pt], .bfoot [data-lang-en]{ transition: opacity .35s ease; }\r\nhtml[data-lang=\"pt\"] .bfoot [data-lang-en],\r\nhtml[data-lang=\"en\"] .bfoot [data-lang-pt]{\r\n  opacity:0; position:absolute; pointer-events:none; width:0; height:0; overflow:hidden;\r\n}\r\nhtml.bonsa-lang-switching .bfoot [data-lang-pt],\r\nhtml.bonsa-lang-switching .bfoot [data-lang-en]{ opacity:0; }\r\n\r\n\/* ===== SE\u00c7\u00c3O ===== *\/\r\n.bfoot{\r\n  background: var(--bg); color: var(--text);\r\n  font-family:'Borna','Poppins',Arial,sans-serif;\r\n  padding: 70px 0 60px; position:relative; z-index:1; clear:both; isolation:isolate;\r\n  box-sizing:border-box;\r\n  transition: background .9s ease, color .9s ease;\r\n}\r\n.bfoot *{ box-sizing:border-box; }\r\n.bfoot a, .bfoot button{ -webkit-tap-highlight-color:transparent; }\r\n\r\n.bfoot-inner{\r\n  max-width:1140px; margin:0 auto; padding:0;\r\n  display:grid; grid-template-columns:1fr auto 1fr; align-items:start; gap:40px;\r\n  transition: opacity .55s ease;\r\n}\r\n.bfoot-inner.bonsa-swap-out,\r\n.bfoot-inner.bonsa-exiting{ opacity:0; pointer-events:none; }\r\n\r\n\/* ===== RESET BLINDADO (Hello\/Elementor) ===== *\/\r\n.bfoot a:hover, .bfoot a:focus, .bfoot a:focus-visible, .bfoot a:active,\r\n.bfoot button:hover, .bfoot button:focus, .bfoot button:focus-visible, .bfoot button:active{\r\n  outline:none !important; box-shadow:none !important; text-decoration:none !important; filter:none;\r\n}\r\n\r\n\/* ===== ESQUERDA ===== *\/\r\n.bfoot-city{ margin:0; font-size:14px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--text); transition:color .9s ease; }\r\n\r\n.bfoot-social{ display:flex; gap:14px; margin-top:34px; }\r\n.bfoot-ico{\r\n  width:48px; height:48px; min-width:48px; min-height:48px; border-radius:14px;\r\n  display:grid; place-items:center; cursor:pointer; position:relative; overflow:hidden;\r\n  background: var(--bg-soft) !important; color: var(--text) !important;\r\n  border:1px solid var(--detail);\r\n  transition: transform .3s cubic-bezier(.34,1.4,.64,1), background .9s ease, color .3s ease, border-color .3s ease;\r\n}\r\n.bfoot-ico::before{\r\n  content:\"\"; position:absolute; inset:0; z-index:0;\r\n  opacity:0; transition: opacity .3s ease; pointer-events:none;\r\n}\r\n.bfoot-ico > svg{ position:relative; z-index:1; width:24px; height:24px; }\r\n.bfoot-ico[data-net=\"wa\"]::before{ background:linear-gradient(to bottom,#5df878,#07b822); }\r\n.bfoot-ico[data-net=\"ig\"]::before{ background:linear-gradient(to bottom,#505cd1,#a434b2,#dd2e76,#f7884d,#ffda81); }\r\n.bfoot-ico[data-net=\"as\"]::before{ background:#101014; }\r\n.bfoot-ico[data-net=\"mail\"]::before{ background:var(--gold); }\r\n\r\n@media (hover:hover) and (pointer:fine){\r\n  .bfoot-ico:hover{ transform: translateY(-3px); border-color: var(--gold); }\r\n  .bfoot-ico:hover::before{ opacity:1; }\r\n  .bfoot-ico[data-net=\"wa\"]:hover,\r\n  .bfoot-ico[data-net=\"ig\"]:hover,\r\n  .bfoot-ico[data-net=\"mail\"]:hover{ color:#fff !important; }\r\n  .bfoot-ico[data-net=\"as\"]:hover{ color:#13aff0 !important; }\r\n}\r\n.bfoot-ico.is-clicked{ transform: scale(.92); }\r\n\r\n\/* ===== CENTRO ===== *\/\r\n.bfoot-center{ display:grid; place-items:center; }\r\n.bfoot-logo{\r\n  display:inline-flex; width:56px; height:56px; padding:0; border:0; cursor:pointer;\r\n  background:transparent !important;\r\n  transition: transform .35s cubic-bezier(.34,1.56,.64,1);\r\n}\r\n.bfoot-logo svg{ width:100%; height:100%; }\r\n.bfoot-logo-p{ fill: var(--gold) !important; transition: fill .3s ease; }\r\n@media (hover:hover) and (pointer:fine){ .bfoot-logo:hover{ transform: scale(1.08); } }\r\n.bfoot-logo.is-clicked{ transform: scale(.92); }\r\n\r\n\/* ===== DIREITA ===== *\/\r\n.bfoot-right{ text-align:right; display:flex; flex-direction:column; align-items:flex-end; }\r\n.bfoot-top{\r\n  display:inline-flex; align-items:center; gap:14px;\r\n  border:0; cursor:pointer; border-radius:50px;\r\n  padding:6px 26px 6px 6px; min-height:48px;\r\n  background: var(--gold) !important; color: var(--panel-text) !important;\r\n  font-family:inherit; font-size:14px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;\r\n  transition: transform .3s cubic-bezier(.34,1.4,.64,1), color .9s ease;\r\n}\r\n@media (hover:hover) and (pointer:fine){ .bfoot-top:hover{ transform: translateY(-3px); } }\r\n.bfoot-top.is-clicked{ transform: scale(.94); }\r\n.bfoot-top-ico{\r\n  width:44px; height:44px; border-radius:50%; flex:0 0 auto;\r\n  background: var(--bg); color: var(--text);\r\n  display:grid; place-items:center;\r\n  transition: background .9s ease, color .9s ease;\r\n}\r\n.bfoot-top-ico svg{ width:22px; height:22px; transform: rotate(-90deg); }\r\n.bfoot-top-txt{ position:relative; display:inline-block; }\r\n\r\n.bfoot-brand{ margin:30px 0 0; font-size:14px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--text); transition:color .9s ease; }\r\n.bfoot-rights{ margin:6px 0 0; font-size:13px; font-weight:400; letter-spacing:.2px; text-transform:uppercase; color:var(--text-sub); opacity:.8; position:relative; transition:color .9s ease; }\r\n\r\n\/* ===== ENTRADA (stagger via --d \/ --ds) ===== *\/\r\n@keyframes bfoot-rise{\r\n  0%{ opacity:0; transform: translateY(12px); filter: blur(6px); }\r\n  100%{ opacity:1; transform: translateY(0); filter: blur(0); }\r\n}\r\n.bfoot-left, .bfoot-center, .bfoot-right, .bfoot-ico{ opacity:0; }\r\n.bfoot-inner.bfoot-in .bfoot-left,\r\n.bfoot-inner.bfoot-in .bfoot-center,\r\n.bfoot-inner.bfoot-in .bfoot-right{\r\n  animation: bfoot-rise .6s cubic-bezier(.4,0,.2,1) forwards;\r\n  animation-delay: var(--d, 0s);\r\n}\r\n.bfoot-inner.bfoot-in .bfoot-ico{\r\n  animation: bfoot-rise .5s cubic-bezier(.4,0,.2,1) forwards;\r\n  animation-delay: var(--ds, .3s);\r\n}\r\n\r\n\/* ===== RESPONSIVO ===== *\/\r\n@media (max-width:1000px){ .bfoot-inner{ gap:32px; } }\r\n@media (max-width:820px){\r\n  .bfoot{ padding:60px 0 50px; }\r\n  .bfoot-inner{ grid-template-columns:1fr; gap:36px; text-align:center; justify-items:center; padding:0 22px; }\r\n  .bfoot-left, .bfoot-right{ text-align:center; align-items:center; }\r\n  .bfoot-social{ justify-content:center; }\r\n  .bfoot-center{ order:-1; }\r\n  \/* toque: cor fixa, sem depender de hover *\/\r\n  .bfoot-ico::before{ opacity:1; }\r\n  .bfoot-ico[data-net=\"wa\"],\r\n  .bfoot-ico[data-net=\"ig\"],\r\n  .bfoot-ico[data-net=\"mail\"]{ color:#fff !important; }\r\n  .bfoot-ico[data-net=\"as\"]{ color:#13aff0 !important; }\r\n}\r\n@media (max-width:560px){\r\n  .bfoot-inner{ padding:0 18px; }\r\n  .bfoot-city, .bfoot-brand{ font-size:13px; }\r\n  .bfoot-social{ gap:12px; }\r\n}\r\n@media (max-width:380px){ .bfoot-inner{ padding:0 16px; } }\r\n\r\n\/* ===== A11Y ===== *\/\r\n@media (prefers-reduced-motion: reduce){\r\n  .bfoot *{ animation:none !important; transition:none !important; }\r\n  .bfoot-left, .bfoot-center, .bfoot-right, .bfoot-ico{ opacity:1 !important; transform:none !important; filter:none !important; }\r\n}\r\n\r\n\/* Host Elementor *\/\r\n.elementor-widget-html,\r\n.elementor-widget-html .elementor-widget-container{\r\n  background: transparent !important; padding:0 !important; margin:0 !important;\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var foot = document.querySelector('[data-bfoot]');\r\n  var page = document.querySelector('[data-bfoot-page]');\r\n  if(!foot || !page) return;\r\n\r\n  var isExiting = false, isSwapping = false, isNavigating = false;\r\n\r\n  \/* ===== ENTRADA \/ REPLAY (staggers resetados) ===== *\/\r\n  var io = null;\r\n  function armEntrance(){\r\n    if(io) io.disconnect();\r\n    page.classList.remove('bfoot-in');\r\n    var els = foot.querySelectorAll('.bfoot-left, .bfoot-center, .bfoot-right, .bfoot-ico');\r\n    els.forEach(function(el){ el.style.animation = 'none'; });\r\n    void page.offsetWidth;\r\n    els.forEach(function(el){ el.style.animation = ''; });\r\n\r\n    io = new IntersectionObserver(function(entries){\r\n      entries.forEach(function(e){\r\n        if(e.isIntersecting){ page.classList.add('bfoot-in'); io.unobserve(e.target); }\r\n      });\r\n    }, { threshold:.15 });\r\n    io.observe(foot);\r\n  }\r\n\r\n  \/* ===== SUBIR AO TOPO ===== *\/\r\n  foot.querySelectorAll('[data-bfoot-top]').forEach(function(btn){\r\n    btn.addEventListener('click', function(){\r\n      var self = this;\r\n      self.classList.add('is-clicked');\r\n      setTimeout(function(){ self.classList.remove('is-clicked'); }, 200);\r\n      var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n      window.scrollTo({ top:0, behavior: reduce ? 'auto' : 'smooth' });\r\n    });\r\n  });\r\n\r\n  \/* ===== WHATSAPP (2 n\u00fameros) ===== *\/\r\n  var WA_NUMEROS = ['5531992666666','351968294999'];\r\n  var wa = foot.querySelector('[data-wa]');\r\n  if(wa){\r\n    wa.addEventListener('click', function(e){\r\n      e.preventDefault();\r\n      if(isNavigating) return;\r\n      var self = this;\r\n      self.classList.add('is-clicked');\r\n      setTimeout(function(){ self.classList.remove('is-clicked'); }, 200);\r\n      var num = WA_NUMEROS[Math.random() < .5 ? 0 : 1];\r\n      window.open('https:\/\/wa.me\/' + num, '_blank', 'noopener');\r\n    });\r\n  }\r\n\r\n  \/* feedback de clique nos demais \u00edcones (links externos: sem fade-out) *\/\r\n  foot.querySelectorAll('.bfoot-ico:not([data-wa])').forEach(function(a){\r\n    a.addEventListener('click', function(){\r\n      var self = this;\r\n      self.classList.add('is-clicked');\r\n      setTimeout(function(){ self.classList.remove('is-clicked'); }, 200);\r\n    });\r\n  });\r\n\r\n  \/* ===== ORQUESTRA\u00c7\u00c3O (cabe\u00e7alho manda) ===== *\/\r\n  window.addEventListener('bonsa:leave', function(){\r\n    if(isExiting) return;\r\n    isExiting = true; isNavigating = true;\r\n    page.classList.add('bonsa-exiting');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-out', function(){\r\n    isSwapping = true;\r\n    page.classList.remove('bonsa-swap-in');\r\n    void page.offsetWidth;\r\n    page.classList.add('bonsa-swap-out');\r\n  });\r\n\r\n  window.addEventListener('bonsa:swap-in', function(){\r\n    armEntrance();\r\n    void page.offsetWidth;\r\n    page.classList.remove('bonsa-swap-out');\r\n    setTimeout(function(){ isSwapping = false; }, 1050);\r\n  });\r\n\r\n  window.addEventListener('bonsa:lang',  function(){ \/* ressincronizado por CSS *\/ });\r\n  window.addEventListener('bonsa:theme', function(){ \/* ressincronizado por CSS *\/ });\r\n\r\n  \/* ===== RESET (bfcache \/ voltar) ===== *\/\r\n  function resetAll(){\r\n    isExiting = false; isSwapping = false; isNavigating = false;\r\n    page.classList.remove('bonsa-exiting','bonsa-swap-out','bonsa-swap-in');\r\n    foot.querySelectorAll('.is-clicked').forEach(function(el){ el.classList.remove('is-clicked'); });\r\n    armEntrance();\r\n  }\r\n  function isBackForward(){\r\n    try{ var n = performance.getEntriesByType('navigation')[0]; if(n && n.type === 'back_forward') return true; }catch(e){}\r\n    try{ if(performance.navigation && performance.navigation.type === 2) return true; }catch(e){}\r\n    return false;\r\n  }\r\n  window.addEventListener('pageshow', function(e){ if(e.persisted || isBackForward()) resetAll(); });\r\n  window.addEventListener('popstate', resetAll);\r\n  document.addEventListener('visibilitychange', function(){\r\n    if(!document.hidden && page.classList.contains('bonsa-exiting')) resetAll();\r\n  });\r\n\r\n  \/* ===== BOOT ===== *\/\r\n  armEntrance();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5795aa3 elementor-widget elementor-widget-html\" data-id=\"5795aa3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\n(function(){\r\n  if(matchMedia('(hover:hover) and (pointer:fine)').matches) return;\r\n  if(matchMedia('(prefers-reduced-motion:reduce)').matches) return;\r\n\r\n  var items = [];\r\n  function collect(){\r\n    items = Array.prototype.slice.call(\r\n      document.querySelectorAll('.elementor-widget-image')\r\n    ).filter(function(el){\r\n      return getComputedStyle(el).getPropertyValue('--proj-pt').trim() !== '';\r\n    });\r\n  }\r\n\r\n  function tick(){\r\n    var mid = window.innerHeight * 0.5, band = window.innerHeight * 0.22;\r\n    for(var i=0;i<items.length;i++){\r\n      var r = items[i].getBoundingClientRect();\r\n      var c = r.top + r.height\/2;\r\n      items[i].classList.toggle('bonsa-inview', Math.abs(c - mid) < band);\r\n    }\r\n    raf = 0;\r\n  }\r\n\r\n  var raf = 0;\r\n  function onScroll(){ if(!raf) raf = requestAnimationFrame(tick); }\r\n\r\n  collect(); tick();\r\n  addEventListener('scroll', onScroll, {passive:true});\r\n  addEventListener('resize', onScroll, {passive:true});\r\n  addEventListener('bonsa:swap-in', function(){ collect(); onScroll(); });\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ProjetosProjects Servi\u00e7osServices PT EN MetodologiaMethodology Sobre n\u00f3sAbout us ProjetosProjects Servi\u00e7osServices MetodologiaMethodology Sobre n\u00f3sAbout us PT EN Visitando o futuro com tecnologia e realismo Visiting the future with technology and realism DAMOS VIDA \u00c0SSUAS IDEIAS EM 3D WE BRING YOURIDEAS TO LIFE IN 3D \u2022 RENDER 3D \u2022 TOUR 360\u00ba \u2022 ANIMA\u00c7\u00d5ES \u2022 3D RENDER \u2022 360\u00ba TOUR \u2022 ANIMATIONS APRESENTAR MELHOR \u00c9 VENDER MELHOR. VISUALIZA\u00c7\u00c3O ESTRAT\u00c9GICA PARA LAN\u00c7AMENTOS. Estamos na miss\u00e3o de desvendar o potencial \u00fanico de cada projeto e transform\u00e1-lo em imagens que contam uma hist\u00f3ria. Navegamos por novas fronteiras de representa\u00e7\u00e3o, seja com um tour em 360\u00ba, apresenta\u00e7\u00f5es em VR ou at\u00e9 mesmo dando vida ao seu projeto com anima\u00e7\u00f5es incr\u00edveis. Estamos aqui para fazer seu projeto se destacar e conquistar o cora\u00e7\u00e3o do seu cliente. PRESENTING BETTER IS SELLING BETTER. STRATEGIC VISUALIZATION FOR LAUNCHES. We&#8217;re on a mission to uncover the unique potential of each project and turn it into images that tell a story. We explore new frontiers of representation, whether with a 360\u00ba tour, VR presentations, or even bringing your project to life with incredible animations. We&#8217;re here to make your project stand out and win your client&#8217;s heart. NOSSOS PROJETOSOUR PROJECTS MAIS PROJETOSMORE PROJECTS FAZEMOS POR VOC\u00caWE DO IT FOR YOU 01 Venda na planta com realismo Sell off-plan with realism Substitu\u00edmos plantas t\u00e9cnicas confusas por imagens realistas que qualquer cliente entende em segundos. We replace confusing technical blueprints with realistic images any client understands in seconds. 02 Emo\u00e7\u00e3o que vende Emotion that sells Moods, \u00e2ngulos e um toque de natureza que fazem o olhar do comprador brilhar e o cora\u00e7\u00e3o decidir pela compra. Moods, angles and a touch of nature that make the buyer&#8217;s eyes shine and the heart decide to buy. 03 Experi\u00eancia imersiva 360\u00ba Immersive 360\u00ba experience Tours em 360\u00b0, VR e anima\u00e7\u00f5es que levam o cliente para dentro do projeto antes mesmo da primeira estaca. 360\u00b0 tours, VR and animations that take the client inside the project before the first stake. 04 Antecipe ajustes Anticipate adjustments Enxergue o resultado antes da obra e corrija detalhes cedo, economizando tempo, retrabalho e dinheiro. See the result before construction and fix details early, saving time, rework and money. 05 Material pronto para tr\u00e1fego Ready-to-run ad material Imagens de alto impacto prontas para an\u00fancios, landing pages e redes sociais que convertem de verdade. High-impact images ready for ads, landing pages and social media that truly convert. 06 Sua ideia fora da gaveta Your idea out of the drawer Mais de uma d\u00e9cada traduzindo a singularidade de cada projeto em imagens que contam uma hist\u00f3ria e vendem. Over a decade translating the uniqueness of each project into images that tell a story and sell. DEPOIMENTOSFEEDBACKS PERGUNTAS FREQUENTESFREQUENTLY ASKED QUESTIONS QUANTO TEMPO DEMORA UM PROJETO?HOW LONG DOES A PROJECT TAKE? O prazo varia conforme a complexidade do projeto. Imagens de interiores costumam levar de 5 a 10 dias \u00fateis, enquanto projetos maiores, como fachadas e \u00e1reas externas com paisagismo, podem levar de 2 a 3 semanas. Ap\u00f3s receber o briefing e o material de refer\u00eancia, enviamos um cronograma detalhado com as etapas e datas de entrega. The timeline varies according to the project&#8217;s complexity. Interior renders usually take 5 to 10 business days, while larger projects such as facades and outdoor areas with landscaping can take 2 to 3 weeks. Once we receive the briefing and reference material, we send a detailed schedule with each stage and delivery date. COMO FUNCIONA O PROCESSO?HOW DOES THE PROCESS WORK? Tudo come\u00e7a com um briefing, onde entendemos suas necessidades e recebemos plantas, refer\u00eancias e materiais. Em seguida, produzimos uma pr\u00e9via em baixa resolu\u00e7\u00e3o para alinhar enquadramento, ilumina\u00e7\u00e3o e composi\u00e7\u00e3o. Ap\u00f3s sua aprova\u00e7\u00e3o, partimos para o refinamento e a renderiza\u00e7\u00e3o final em alta qualidade, com direito a uma rodada de ajustes. It all starts with a briefing, where we understand your needs and receive floor plans, references and materials. Next, we produce a low-resolution preview to align framing, lighting and composition. After your approval, we move on to refinement and the final high-quality render, including one round of adjustments. QUAIS FORMATOS DE ENTREGA?WHICH DELIVERY FORMATS? As imagens s\u00e3o entregues em alta resolu\u00e7\u00e3o nos formatos JPG e PNG, prontas para uso em apresenta\u00e7\u00f5es, redes sociais e materiais impressos. Tamb\u00e9m oferecemos anima\u00e7\u00f5es e tours 360\u00b0 quando o projeto pede. Se voc\u00ea precisar de um formato ou resolu\u00e7\u00e3o espec\u00edficos, \u00e9 s\u00f3 nos avisar no briefing. Images are delivered in high resolution in JPG and PNG formats, ready for presentations, social media and printed materials. We also offer animations and 360\u00b0 tours when the project calls for it. If you need a specific format or resolution, just let us know in the briefing. COMO SOLICITAR UM OR\u00c7AMENTO?HOW TO REQUEST A QUOTE? Basta entrar em contato pelo WhatsApp ou e-mail com uma breve descri\u00e7\u00e3o do projeto e, se poss\u00edvel, plantas ou refer\u00eancias. Com essas informa\u00e7\u00f5es, preparamos um or\u00e7amento personalizado com prazo e valores. O primeiro contato \u00e9 sempre sem compromisso. Just reach out via WhatsApp or email with a brief description of your project and, if possible, floor plans or references. With this information, we prepare a custom quote with timeline and pricing. The first contact is always with no commitment. BELO HORIZONTE &#8211; MG &#8211; BRASILBELO HORIZONTE &#8211; MG &#8211; BRAZIL SUBIRTOP BONSA STUDIO 3D \u00a9 2026 TODOS OS DIREITOS RESERVADOS\u00a9 2026 ALL RIGHTS RESERVED<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bonsastudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":793,"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":1286,"href":"https:\/\/bonsastudio.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions\/1286"}],"wp:attachment":[{"href":"https:\/\/bonsastudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}