/* Griffin Montagens — Motion: Chrome (header, nav, FAQ, CTA, WhatsApp, footer)
   Hover/estado = CSS. Entrada/scroll = JS (modules/chrome.js).
   Failsafe: nada aqui esconde conteúdo fora do escopo html.gsap-on;
   sem GSAP o site continua 100% legível com o comportamento nativo. */

/* --- Header: esconde ao rolar pra baixo, volta ao rolar pra cima.
   A classe .is-hidden é controlada pelo JS (nunca com o menu aberto). --- */
html.gsap-on .site-header {
  transition:
    transform 320ms var(--ease-out),
    background-color var(--dur) ease,
    border-color var(--dur) ease;
}
html.gsap-on .site-header.is-hidden { transform: translateY(-101%); }
/* Guarda extra: com o menu mobile aberto o header nunca some. */
html.gsap-on body.nav-open .site-header { transform: none; }

/* --- Nav: link da seção ativa (classe .is-active vem do ScrollTrigger) --- */
.main-nav a.is-active { color: #fff; }
.main-nav a.is-active::after { transform: scaleX(1); }

/* --- FAQ: acordeão suave via grid-template-rows no wrap criado pelo JS.
   EXCEÇÃO DOCUMENTADA do projeto: grid-template-rows é a única propriedade
   de layout animada no site, restrita a este acordeão (transition CSS). --- */
html.gsap-on .faq-answer-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 360ms var(--ease-out);
}
html.gsap-on .faq-item.is-open .faq-answer-wrap { grid-template-rows: 1fr; }
html.gsap-on .faq-answer-wrap > * {
  overflow: hidden;
  min-height: 0;
}

/* Chevron e destaque acompanham a animação (.is-open), não o atributo [open],
   que só cai no transitionend — assim o fechamento já "desliga" o item. */
html.gsap-on .faq-item .faq-chevron { transform: rotate(0deg); }
html.gsap-on .faq-item.is-open .faq-chevron { transform: rotate(45deg); }
html.gsap-on .faq-item[open]:not(.is-open) { border-color: var(--line); }
html.gsap-on .faq-item[open]:not(.is-open) summary { color: inherit; }

/* --- WhatsApp float: o GSAP ocupa o transform inline (pop de entrada +
   wiggle), então: 1) transform sai da transition pra não brigar com o
   tween; 2) o lift do hover migra pra propriedade `translate`, que compõe
   com o transform e não é tocada pelo GSAP. --- */
html.gsap-on .wa-float {
  transition:
    translate var(--dur) var(--ease-out),
    box-shadow var(--dur) ease;
}
html.gsap-on .wa-float:hover { translate: 0 -3px; }
