/* Fiuza · ícones animados v2 (SVG + CSS, sem bibliotecas, loop contínuo) */
.fz-icon{width:var(--fz-size,64px);height:var(--fz-size,64px);color:var(--fz-ink,var(--e-global-color-primary,#1F3A33));overflow:visible;display:block;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.fz-icon *{transform-box:fill-box;transform-origin:center}
.fz-icon .s,.fz-icon .st{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fz-icon .a{stroke:var(--fz-accent,var(--e-global-color-accent,#E07A3F))}
.fz-icon .df{fill:var(--fz-accent,var(--e-global-color-accent,#E07A3F));fill-opacity:.2}
.fz-icon .f{fill:currentColor;stroke:none}
.fz-icon .fa{fill:var(--fz-accent,var(--e-global-color-accent,#E07A3F))}
.fz-icon .bg{fill:var(--fz-accent,var(--e-global-color-accent,#E07A3F));opacity:.1;stroke:none;transition:opacity .3s}
.fz-icon text{font-family:inherit}

/* entrada: desenha ao aparecer */
.fz-ready .s{stroke-dasharray:1 1;stroke-dashoffset:1}
.fz-ready .bg,.fz-ready .f{transform:scale(0)}
.fz-ready.is-in .s{stroke-dashoffset:0;transition:stroke-dashoffset 1s cubic-bezier(.65,0,.35,1)}
.fz-ready.is-in .bg{transform:scale(1);transition:transform .7s cubic-bezier(.34,1.56,.64,1),opacity .3s}
.fz-ready.is-in .f{transform:scale(1);transition:transform .45s cubic-bezier(.34,1.56,.64,1) .8s}

/* hover: leve elevação no ícone ou no card .fz-hover */
:is(.fz-icon,.fz-hover):hover .bg{opacity:.18}
.fz-hover:hover .fz-icon,.fz-icon:hover{transform:translateY(-3px) scale(1.04)}

/* loops contínuos (começam após a entrada) */
.fz-icon .l-run{animation:fz-run 1.6s ease-in-out 1.2s infinite}
.fz-icon .l-dash{animation:fz-dash 1.6s ease-in-out 1.2s infinite}
.fz-icon .l-glow{animation:fz-glow 3s ease-in-out 1.2s infinite}
.fz-icon .l-twinkle{animation:fz-twinkle 3s ease-in-out 1.2s infinite}
.fz-icon .l-bob{animation:fz-bob 3s ease-in-out 1.2s infinite}
.fz-icon .l-rise{animation:fz-rise 3.2s ease-out 1.2s infinite}
.fz-icon .l-flip{transform-origin:left center;animation:fz-flip 4.5s cubic-bezier(.65,0,.35,1) 1.2s infinite}
.fz-icon .l-swing{transform-origin:center top;animation:fz-swing 3.6s ease-in-out 1.2s infinite}
.fz-icon .l-draw{animation:fz-draw 3.6s cubic-bezier(.65,0,.35,1) 1.2s infinite}
.fz-icon .l-grow{transform-origin:center bottom;animation:fz-grow 2.4s ease-in-out 1.2s infinite}
.fz-icon .l-hop{animation:fz-hop 2.4s cubic-bezier(.45,0,.55,1) 1.2s infinite}
.fz-icon .l-squash{animation:fz-squash 2.4s cubic-bezier(.45,0,.55,1) 1.2s infinite}
.fz-icon .l-spin{animation:fz-spin 6s linear infinite}
.fz-icon .l-flicker{animation:fz-flicker 3.4s ease-in-out 1.2s infinite}
.fz-icon .l-ring{animation:fz-ring 3s ease-in-out 1.2s infinite}
.fz-icon .l-hand{transform-origin:center bottom;animation:fz-spin 8s linear 1.2s infinite}
.fz-icon .l-wave{transform-origin:center bottom;animation:fz-swing 2.8s ease-in-out 1.2s infinite}
.fz-icon .l-spin-gear{animation:fz-spin 10s linear 1.2s infinite}
.fz-icon .d1{animation-delay:1.5s}
.fz-icon .d2{animation-delay:1.8s}
.fz-icon .arc{stroke-dasharray:.28 .72}

@keyframes fz-run{50%{transform:translateY(-1.4px)}}
@keyframes fz-dash{0%{opacity:0;transform:translateX(2px)}50%{opacity:1}100%{opacity:0;transform:translateX(-2px)}}
@keyframes fz-glow{50%{fill-opacity:.55}}
@keyframes fz-twinkle{50%{opacity:.25;transform:scale(.6)}}
@keyframes fz-bob{50%{transform:translateY(-1.2px)}}
@keyframes fz-rise{0%{opacity:0;transform:translateY(2px) scale(.6)}30%,70%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-2px)}}
@keyframes fz-flip{0%,15%{transform:none}45%,65%{transform:scaleX(-1)}95%,100%{transform:none}}
@keyframes fz-swing{25%{transform:rotate(5deg)}75%{transform:rotate(-5deg)}}
@keyframes fz-draw{0%{stroke-dashoffset:1}30%,80%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
@keyframes fz-grow{50%{transform:scaleY(.78)}}
@keyframes fz-hop{50%{transform:translateY(-2px)}}
@keyframes fz-squash{50%{transform:scaleX(.65);opacity:.5}}
@keyframes fz-spin{to{transform:rotate(360deg)}}
@keyframes fz-ring{0%,60%,100%{transform:none}64%,72%{transform:rotate(-10deg)}68%,76%{transform:rotate(10deg)}}
@keyframes fz-flicker{40%{opacity:1}50%{opacity:.4}60%{opacity:1}}

/* pausa fora da tela: não gasta processamento */
.fz-ready:not(.is-vis) *{animation-play-state:paused!important}

@media (prefers-reduced-motion:reduce){
  .fz-icon,.fz-icon *{animation:none!important;transition:none!important}
  .fz-ready .s{stroke-dashoffset:0}
  .fz-ready .bg,.fz-ready .f{transform:none}
}


/* =====================================================================
 * Fiuza · encaixe dos ícones nas páginas (plugin 0.27.0)
 * Cores: traço azul-marinho, destaque laranja. O ícone já traz o próprio
 * fundo (tile), então os círculos antigos atrás dos ícones saem.
 * ===================================================================== */
.fzh,.fzb-lp,.fzb-lpb{--fz-ink:#003B6F;--fz-accent:#E8571A}

/* Home · números */
.fzh .h2-num__ic{width:84px;height:84px;background:none;border-radius:0}
.fzh .h2-num__ic svg.fz-icon{width:84px;height:84px}
/* Home · pilares da metodologia */
.fzh .h2-pil i{width:64px;height:64px;background:none}
.fzh .h2-pil i svg.fz-icon{width:64px;height:64px}
/* Home · diferenciais */
.fzh .h2-card i{width:68px;height:68px;background:none}
.fzh .h2-card i svg.fz-icon{width:68px;height:68px}
/* Home · "Para quem é": o número vem no próprio ícone (anel girando) */
.fzh .h2-qlist li{grid-template-columns:52px 1fr;align-items:center}
.fzh .h2-qlist b{width:52px;height:52px;background:none;border-radius:0}
.fzh .h2-qlist b svg.fz-icon{width:52px;height:52px}
.fzh .h2-qlist .fz-icon text{font-family:"DM Sans",Arial,sans-serif}

/* LP · cartões dos diferenciais */
.fzb-lpb .hero-benefit-icon{width:64px;height:64px}
.fzb-lpb .hero-benefit-icon svg.fz-icon{width:64px;height:64px}
.fzb-lpb .hero-benefit-card{grid-template-rows:64px auto 1fr}
/* LP · itens do contato */
.fzb-lp .perks i svg.fz-icon{width:60px;height:60px;stroke-width:initial}
/* LP · rotina: o ícone ocupa o círculo; no passo ativo, o círculo fica azul e o desenho, branco */
/* 0.27.2: círculo pêssego liso (sem o quadrado do ícone por dentro), com borda branca
   que corta a linha do tempo; o passo ativo fica azul com o desenho em branco. */
.fzb-lpb .routine-step-icon{width:68px;height:68px;padding:0;overflow:hidden;border:5px solid #fff;border-radius:50%;background:#FDE6D6;box-shadow:0 6px 16px rgba(242,107,33,.16)}
.fzb-lpb .routine-step-icon svg.fz-icon{width:58px;height:58px}
.fzb-lpb .routine-step-icon .fz-icon .bg{display:none}
.fzb-lpb .routine-step button[aria-expanded="true"] .routine-step-icon{background:#003B6F;box-shadow:0 10px 22px rgba(0,59,111,.28);--fz-ink:#fff;--fz-accent:#F7A26B}
.fzb-lpb .routine-step::before{top:34px}
@media (max-width:760px){.fzb-lpb .routine-step-icon{width:54px;height:54px;border-width:0}.fzb-lpb .routine-step-icon svg.fz-icon{width:48px;height:48px}}
/* LP · cartão "Informações gerais" (fundo azul): desenho claro */
.fzb-lpb .ico.ico--fz{width:40px;height:40px;--fz-ink:#fff;--fz-accent:#F7A26B}
.fzb-lpb .ico.ico--fz svg.fz-icon{width:40px;height:40px}
.fzb-lpb .final-unit-detail{grid-template-columns:40px 1fr;align-items:center}
/* Correção: elementos que giram por <animateTransform> (engrenagem do FZ-16, ponteiro do FZ-26)
   usam o centro informado no próprio SVG; com transform-box:fill-box eles saíam do lugar. */
.fz-icon :is(circle,path,g):has(> animateTransform){transform-box:view-box;transform-origin:0 0}
