
/* --- reveal: substitui o estado inline opacity:0 do Framer Motion ---
   So esconde quando o JS esta vivo (classe .js no <html>). Sem JS, ou se o
   script falhar, o conteudo nasce visivel. O original errava nisso: nascia
   invisivel e dependia do React para aparecer. */
html.js [data-reveal]{opacity:0;transform:var(--rev-from,translateY(40px));
  transition:opacity .6s ease-out,transform .6s ease-out}
html.js [data-reveal].is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html.js [data-reveal]{opacity:1;transform:none;transition:none}
}
/* --- carrossel: substitui o Swiper ---
   Slide que ja traz largura no proprio style vem do componente original: essa
   medida manda, nao a nossa. So os slides sem largura recebem porcentagem. */
.swiper{position:relative;overflow:hidden}
.swiper .swiper-wrapper{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
.swiper .swiper-wrapper::-webkit-scrollbar{display:none}
/* o espaco entre slides era o spaceBetween do Swiper, injetado por JS como
   margin-right: 20px. Sem ele os cards encostam um no outro. */
.swiper .swiper-slide{flex:0 0 auto;scroll-snap-align:center;margin-right:20px}
.swiper .swiper-slide:not([style*="width"]){flex:0 0 86%}
@media (min-width:768px){.swiper .swiper-slide:not([style*="width"]){flex-basis:44%}}
.swiper-button-prev,.swiper-button-next{cursor:pointer;user-select:none}

/* --- menu principal ---
   ARMADILHA que quebrou o menu no ar: o wp_nav_menu embrulha os itens num <ul>,
   e eu tinha posto a classe "contents" do Tailwind nele. Essa classe NAO existe
   no CSS deste site: o Tailwind so compila o que o site original usava, e ele
   nunca usou. Resultado: o <ul> virou bloco e os itens cairam em coluna.
   Aqui a regra e escrita a mao, sem depender de classe utilitaria nenhuma. */
.fb-menu > ul,.fb-menu .fb-menu-lista{display:flex;gap:2rem;align-items:center;list-style:none;margin:0;padding:0}
.fb-menu > ul > li,.fb-menu .fb-menu-lista > li{margin:0}
.fb-menu a{white-space:nowrap;opacity:.75}
.fb-menu a:hover{opacity:1}

/* --- card que virou link ---
   display:contents faz o <a> nao criar caixa nenhuma: o card por dentro mantem
   exatamente o mesmo layout, e o conjunto passa a ser link de verdade. */
a.fb-card-link{display:contents;color:inherit;text-decoration:none}

/* --- acordeao (FAQ e listas expansiveis) ---
   O original abria por React; a resposta ficava presa em max-h-0. */
[data-acordeao-corpo]{max-height:0;opacity:0;overflow:hidden;
  transition:max-height .3s ease-in-out,opacity .3s ease-in-out}
[data-acordeao-corpo].aberto{max-height:60rem;opacity:1}
[data-acordeao] svg{transition:transform .3s ease-in-out}
[data-acordeao][aria-expanded="true"] svg{transform:rotate(180deg)}

/* --- comparador antes/depois: substitui o react-compare-slider ---
   A marcacao ja vem pronta do original (data-rcs). O que o React fazia em tempo
   de execucao era so recortar a imagem de cima e posicionar a alca. Sem isso a
   foto "depois" cobre a "antes" inteira e a alca cola na borda esquerda. */
[data-rcs="root"]{--rcs:50%}
[data-rcs="clip-item"]{clip-path:inset(0 0 0 var(--rcs))}
[data-rcs="handle-container"]{left:var(--rcs)}
