/* ============================================================================
   Smile Tecnologia — tokens e comportamentos compartilhados
   ----------------------------------------------------------------------------
   Carregado ANTES do <style> de cada página. Concentra o que antes estava
   duplicado (e já divergente) nos 11 arquivos HTML:

     - a paleta/escala (:root)
     - a animação de entrada (.reveal)
     - skip link, foco visível e movimento reduzido

   Regra prática: token novo entra aqui, não no <style> da página.
   ========================================================================== */

:root{
  /* superfícies */
  --bg:#FFFFFF;
  --bg2:#F8FAFC;
  --bg3:#F1F5F9;
  --card:#FFFFFF;
  --dark:#0B1629;
  --dark2:#0F1E36;

  /* texto */
  --text:#0F172A;
  --muted:#64748B;

  /* marca */
  --accent:#F07820;
  --accent-h:#E06010;
  --accent-d:rgba(240,120,32,.12);
  --accent-g:rgba(240,120,32,.22);

  /* apoio */
  --green:#16A34A;
  --green-d:rgba(22,163,74,.16);
  --blue:#2563EB;
  --blue-d:rgba(37,99,235,.14);
  --teal:#0F766E;
  --border:#E2E8F0;

  /* elevação */
  --sh:0 2px 12px rgba(0,0,0,.06);
  --sh-md:0 8px 32px rgba(0,0,0,.10);
  --sh-lg:0 20px 60px rgba(0,0,0,.14);

  /* forma e tempo */
  --r:12px;
  --r-lg:20px;
  --dur:.28s;
  --ease:cubic-bezier(.4,0,.2,1);
}

/* ---------------------------------------------------------------------------
   Reveal — o conteúdo é visível por padrão.
   A animação só passa a existir quando o site.js declara que assumiu o
   controle (html.js-anim). Assim, erro de JS, JS bloqueado ou bot sem
   execução de script veem a página inteira em vez de uma tela em branco.
   --------------------------------------------------------------------------- */
.reveal{opacity:1;transform:none}
html.js-anim .reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
html.js-anim .reveal.show{opacity:1;transform:none}

/* ---------------------------------------------------------------------------
   Skip link — primeiro elemento tabulável de toda página.
   O destino (<main id="main-content">) já existia; faltava a origem.
   --------------------------------------------------------------------------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:2000;
  background:var(--accent);color:#fff;
  padding:12px 22px;border-radius:0 0 var(--r) 0;
  font-size:14px;font-weight:600;
}
.skip-link:focus{left:0}

/* ---------------------------------------------------------------------------
   Foco visível — nenhuma página definia estilo de foco.
   --------------------------------------------------------------------------- */
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mobile-nav :focus-visible{outline-color:#fff}

/* ---------------------------------------------------------------------------
   Menu mobile fechado sai da ordem de tabulação.
   O site.js aplica [inert] ao fim da animação de fechamento; a regra de
   visibility cobre navegadores sem suporte a inert.
   --------------------------------------------------------------------------- */
.mobile-nav[inert]{visibility:hidden}

/* ---------------------------------------------------------------------------
   Aviso exibido apenas quando o JavaScript não roda.
   --------------------------------------------------------------------------- */
.noscript-note{
  background:var(--bg2);
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:var(--r);
  padding:20px 24px;
  margin:0 0 8px;
}
.noscript-note p{margin:0 0 8px;font-size:15px;color:var(--muted);line-height:1.6}
.noscript-note p:last-child{margin-bottom:0}
.noscript-note a{color:var(--accent);font-weight:600;text-decoration:underline}

/* ---------------------------------------------------------------------------
   Movimento reduzido — o site anima reveal, contadores, float, blink e
   gradientes. Nada disso consultava a preferência do usuário.
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  html.js-anim .reveal{opacity:1;transform:none}
}
