/*
Theme Name:   FAAC — Faculdade Arruda Camara
Theme URI:    https://faculdadearrudacamara.com.br
Description:  Child theme do Hello Elementor para o site da Faculdade Arruda Camara. Existe para que CSS e PHP do projeto sobrevivam aos updates do tema pai. Snippets de PHP avulsos continuam no WPCode Pro — aqui mora o CSS versionado em git.
Author:       Thiago Ximenes
Template:     hello-elementor
Version:      1.17.0
Text Domain:  faac-child
*/

/* ==========================================================================
   Este arquivo é versionado em git (faac-site/wp-content/themes/faac-child/).
   Nunca editar pelo editor de temas do wp-admin — a próxima entrega sobrescreve.

   Fonte da regra: ops/design-system.md (12/08/2026). Este arquivo é a
   camada 2 do sistema — o Kit do Elementor (ID 6) é a camada 1 e vence
   nos widgets; o que está aqui cobre o que o Kit não alcança e serve de
   fallback para markup fora do Elementor.
   ========================================================================== */

/* Tokens do projeto ------------------------------------------------------- */

:root {
  /* Tipografia — escala fluida 390→1440px (ops/design-system.md §2) */
  --faac-fs-display:  clamp(2.125rem, 1.5214rem + 2.4762vw, 3.75rem);
  --faac-fs-h1:       clamp(1.875rem, 1.55rem + 1.3333vw, 2.75rem);
  --faac-fs-h2:       clamp(1.5625rem, 1.4rem + 0.6667vw, 2rem);
  --faac-fs-h3:       clamp(1.3125rem, 1.2429rem + 0.2857vw, 1.5rem);
  --faac-fs-h4:       clamp(1.125rem, 1.0786rem + 0.1905vw, 1.25rem);
  --faac-fs-lead:     clamp(1.1875rem, 1.1179rem + 0.2857vw, 1.375rem);
  --faac-fs-body:     clamp(1.0625rem, 1.0393rem + 0.0952vw, 1.125rem);
  --faac-fs-sm:       clamp(0.9375rem, 0.9143rem + 0.0952vw, 1rem);
  --faac-fs-xs:       clamp(0.8125rem, 0.7893rem + 0.0952vw, 0.875rem);
  --faac-fs-overline: clamp(0.75rem, 0.7268rem + 0.0952vw, 0.8125rem);
  --faac-fs-button:   1rem;

  /* Medida de leitura — bloco de texto corrido nunca passa disso (§2) */
  --faac-measure: 68ch;

  /* Ritmo vertical — base 4px (§3) */
  --faac-space-1: 4px;
  --faac-space-2: 8px;
  --faac-space-3: 12px;
  --faac-space-4: 16px;
  --faac-space-5: 24px;
  --faac-space-6: 32px;
  --faac-space-7: 48px;
  --faac-space-8: 64px;
  --faac-space-9: 96px;
  --faac-space-10: 128px;

  /* Padding vertical de seção — fluido (§3) */
  --faac-section-sm: clamp(32px, 4vw, 56px);
  --faac-section:    clamp(48px, 6vw, 96px);
  --faac-section-lg: clamp(64px, 8vw, 128px);

  /* Motion (§4) — nada se move sem interação do usuário */
  --faac-dur-fast: 120ms;
  --faac-dur:      180ms;
  --faac-dur-slow: 240ms;
  --faac-ease:     cubic-bezier(.2, .6, .3, 1);

  /* Foco visível — a cor é TOKEN, e nunca mais `currentColor` (§2.16).
     ⚠ `currentColor` foi a causa raiz da QUARTA reincidência do rosa #CC3366
     do Hello Elementor neste projeto: o anel herdava a cor do link, e o link
     herdava o rosa do tema pai. Medido em 07/09/2026 com
     `scripts/foco-verifica.mjs`: 11 links do rodapé em `rgb(204, 51, 102)`.
     E `currentColor` errava também no sentido oposto — botão de texto branco
     ganhava anel BRANCO, medido em 1:1 contra o fundo claro atrás dele:
     invisível. Um token resolve os dois casos, porque a cor do indicador passa
     a ser uma decisão, não uma herança.
     Marinho #213449 dá 12,71:1 sobre branco. Em contexto escuro, quem troca é
     a variável (ver §2.16), deixando a herança do CSS fazer o trabalho — o
     mesmo padrão de `--faac-lgpd-piso`. */
  --faac-focus-cor: #213449;
  --faac-focus-halo: #FFFFFF;
  --faac-focus-ring: 3px solid var(--faac-focus-cor);
}

/* Escala fluida como fallback de elemento ---------------------------------- */
/* O Kit 6 declara os mesmos valores e vence nos widgets do Elementor
   (.elementor-kit-6 h1 …). Estas regras cobrem markup fora do Elementor
   (páginas de sistema, plugins, conteúdo avulso). */

h1 {
  font-size: var(--faac-fs-h1);
  line-height: 1.1;
  letter-spacing: -0.015em;
}

h2 {
  font-size: var(--faac-fs-h2);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

h3 {
  font-size: var(--faac-fs-h3);
  line-height: 1.25;
  letter-spacing: -0.005em;
}

h4 {
  font-size: var(--faac-fs-h4);
  line-height: 1.35;
}

h5 {
  font-size: var(--faac-fs-sm);
  line-height: 1.6;
}

h6 {
  font-size: var(--faac-fs-xs);
  line-height: 1.5;
}

body {
  font-size: var(--faac-fs-body);
  line-height: 1.65;
}

/* Utilitário de medida: aplicar em bloco de texto corrido no editor
   (Advanced > CSS Classes: faac-measure).

   ⚠ A CLASSE REPETIDA quatro vezes não é enfeite — sem ela o utilitário é
   INERTE em widget do Elementor, que é o único lugar onde alguém iria aplicá-lo.
   Medido por CDP em 09/09/2026 no subtítulo do "Conteúdo Programático": o
   Elementor emite, para todo widget que tenha largura definida no editor,

     .elementor-3987 .elementor-element.elementor-element-c816859
       { width: 100%; max-width: 100% }                        ← (0,3,0)

   contra `.faac-measure`, que era (0,1,0). A classe entrava no HTML, o
   `max-width` computava 100% e a linha seguia com 144 caracteres — falha
   silenciosa, do tipo que faz alguém concluir que "a classe não funciona".
   (0,4,0) passa por cima sem `!important`, e continua abaixo de qualquer regra
   com pseudo-classe. Mesmo padrão das regras 18 e 23 do CLAUDE.md.

   ⚠ Ela só limita a LARGURA. Bloco centralizado precisa também de
   `align-self: center` (no editor: Avançado > Alinhar-se) ou fica preso à
   esquerda dentro da caixa estreita — o que é pior do que a linha longa. */
.faac-measure.faac-measure.faac-measure.faac-measure {
  max-width: var(--faac-measure);
}

/* Motion — regra restritiva (§4) ------------------------------------------ */
/* WCAG 2.3.3. Corta toda animação e transição para quem pediu menos
   movimento no sistema operacional. */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* J2 — e-mail longo não pode estourar a faixa ------------------------------ */
/* O endereço no rodapé (contato@novo.faculdadearrudacamara.com.br no staging)
   é uma palavra única maior que a coluna no mobile. `anywhere` permite quebra
   dentro da palavra só quando não há outro ponto de quebra. Em produção o
   "novo." some e o endereço encurta, mas a regra continua correta. */

.elementor-icon-list-text,
a[href^="mailto:"] {
  overflow-wrap: anywhere;
}

/* F1 tipografia — heranças que o Kit quebra ------------------------------- */
/* O link_normal do Kit (Archivo 600) vence dentro de qualquer <a>, inclusive
   quando o <a> é o miolo de um título de card (theme-post-title, image-box,
   badge de loop). Título não é link inline: herda do pai. */

.elementor-heading-title a,
.elementor-image-box-title a {
  font-family: inherit;
  font-weight: inherit;
}

/* <b>/<strong> renderizam 700 por padrão do navegador; o set do DS termina
   em 600 (Archivo). Serif nunca passa de 400 — mas <b> dentro de serif é
   raro e a ênfase 600 continua legível. */

b,
strong {
  font-weight: 600;
}

/* Widgets html dos templates de curso (439/654/1370) sem settings de
   tipografia. Kicker "Graduação em" = papel overline; breadcrumb = xs. */

.titulo-custom {
  font-family: Archivo, sans-serif;
  font-size: var(--faac-fs-overline);
  font-weight: 500;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.breadcrumb-custom {
  font-family: Archivo, sans-serif;
  font-size: var(--faac-fs-xs);
  font-weight: 500;
  line-height: 1.5;
}

/* Rótulo de etapa dos forms multi-step (curso/vestibular): lh 1.0 rígida. */

.e-form__indicators__indicator__label {
  line-height: 1.4;
}

/* Acessibilidade --------------------------------------------------------- */
/* Foco visível por teclado. O Hello Elementor não garante isso, e o item
   N7/E4 do board exige navegação por teclado utilizável. */

/* §2.16 — ANEL DUPLO: 3px de halo branco colado no elemento, 3px de anel
   marinho por fora. Não é enfeite; é o que faz o indicador funcionar em
   qualquer fundo sem ninguém precisar lembrar de nada.

   ⚠ POR QUE NÃO BASTA TROCAR A COR POR CONTEXTO. Foi a primeira tentativa, em
   07/09/2026: `--faac-focus-cor` redeclarada em `.elementor-location-footer` e
   nas faixas de depoimento. Consertou o rodapé e o `foco-verifica.mjs` achou o
   caso seguinte no mesmo dia — a seção marinho da home (`d4f8dd5`), com anel
   marinho sobre marinho a 1:1. Enumerar contexto escuro é esteira: o Thiago
   monta seções novas no editor, e cada uma nasce fora da lista. Com o halo, o
   anel contrasta com o PRÓPRIO HALO (12,71:1) e a WCAG 1.4.11 se satisfaz
   contra cores adjacentes, seja qual for o fundo atrás.

   ⚠ E POR QUE NÃO `currentColor`, que era o valor original: ele herdava o rosa
   #CC3366 do Hello Elementor nos links (quarta reincidência do mesmo rosa
   neste projeto) e virava BRANCO em botão de texto branco, medido a 1:1. Cor de
   indicador é decisão, não herança.

   ⚠ E a cor sai da variável no PONTO DE USO, nunca de dentro de
   `--faac-focus-ring`: `var()` escrito dentro de uma custom property é
   substituído no elemento onde ela é DECLARADA. Declarada no `:root`, ela desce
   a árvore com a cor já embutida, e redefini-la mais abaixo não a alcança —
   medido, com a regra de contexto escuro no ar e sem efeito nenhum.

   `:where()` tem especificidade ZERO de propósito: qualquer componente com
   foco próprio (campos de formulário na §2.10, setas do carrossel) continua
   vencendo sem precisar de `!important`.

   ⚠ A PSEUDO-CLASSE VEM REPETIDA — `:focus-visible:focus-visible`, (0,2,0) — e
   quem obriga é o TEMA PAI. Em 09/09/2026, às 00:06, o Hostinger Smart Auto
   Updates atualizou o Hello Elementor e o `reset.css` novo passou a declarar
   `[tabindex]:not([tabindex="-1"]):focus-visible, a:focus-visible, button:focus-visible,
   input:focus-visible, select:focus-visible, textarea:focus-visible { box-shadow:
   0 0 0 4px #fff; outline: 2px solid #000; outline-offset: 2px }`. Isso é (0,1,1)
   e derrubava o `:where()` de (0,1,0): no rodapé marinho o anel virava PRETO
   sobre #16232F, 1,32:1, reprovando a WCAG 1.4.11 em 3 das 5 rotas — e o halo
   continuava certo, porque a regra de link abaixo é (0,2,1) e ganhava. Meia-falha
   silenciosa, exatamente como a de 07/09.
   Medido por CDP (`CSS.getMatchedStylesForNode`), não deduzido: a folha vencedora
   é o `reset.css` do tema pai, e o `outline` computado vinha `rgb(0,0,0) solid 2px`
   com `--faac-focus-cor` resolvendo #93A8BC corretamente — o que descarta a
   variável e aponta a cascata.
   (0,2,0) vence (0,1,1) e continua ABAIXO dos componentes com foco próprio, que
   são (0,2,0) mais abaixo na folha ou (0,3,0) — o contrato do `:where()` original
   sobrevive. É a mesma lição da regra 23 do CLAUDE.md, agora no foco: o tema pai
   atualiza sozinho, e o que ele reescreve alcança (0,1,1) sem pedir licença. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible:focus-visible {
  outline: 3px solid var(--faac-focus-cor);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--faac-focus-halo);
}

/* ⚠ O HALO PRECISA DE UMA REGRA PRÓPRIA PARA LINK, e quem obriga é o próprio
   Elementor: o frontend dele declara `.elementor a { box-shadow: none }`, que é
   (0,1,1) e vence o `:where()` acima, que é (0,1,0) de propósito. Resultado
   medido em 07/09/2026 na home: o link do selo e-MEC, sobre a seção marinho,
   ficava com anel marinho a 1:1 e sem halo nenhum — o outline aparecia (a
   propriedade não é tocada pela regra do Elementor) e só o halo sumia, que é o
   tipo de meia-falha difícil de enxergar a olho.
   Descoberto perguntando ao navegador qual regra vencia (`CSS.getMatchedStyles`
   por CDP), depois de duas hipóteses erradas. Vale a lição: em briga de
   especificidade, medir custa menos que deduzir.
   Pseudo-classe REPETIDA em vez de `!important`: `a:focus-visible:focus-visible`
   é (0,2,1) e resolve, mantendo o `!important` disponível para quem realmente
   precise dele (a §2.10 dos campos de formulário). */
a:focus-visible:focus-visible {
  box-shadow: 0 0 0 3px var(--faac-focus-halo);
}

/* ⚠ O botão do Elementor precisa da regra própria, e a razão é a mesma
   especificidade zero que torna o `:where()` acima educado: o widget de botão
   traz `box-shadow` do Kit e o halo simplesmente não chegava nele. Medido em
   07/09/2026 na home: "Consultar no e-MEC", sobre a seção marinho, ficava com
   anel marinho a 1:1 e `box-shadow` sem halo nenhum.
   A CLASSE REPETIDA é o padrão das regras 18 e 23 do CLAUDE.md — `.x.x` chega a
   (0,3,0) e vence o seletor por widget do Elementor sem precisar de
   `!important`. */
.elementor-button.elementor-button:focus-visible,
a.elementor-button.elementor-button:focus-visible {
  outline: 3px solid var(--faac-focus-cor);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--faac-focus-halo);
}

/* ⚠ E MESMO ASSIM o halo não chegava no botão que tem SOMBRA PRÓPRIA, que é o
   caso de todo botão do craft do vestibular (`button_box_shadow_box_shadow_type:
   yes` no widget). Medido por CDP em 09/09/2026, na faixa nova da home:

     .elementor-3030 .elementor-element.elementor-element-v27fbtn .elementor-button
       { box-shadow: 0 6px 18px rgb(22 35 47 / .18) }          ← (0,4,0), vence

   contra a regra acima, que é (0,3,0). O `box-shadow` do widget ganhava, o halo
   nunca aparecia e sobrava anel marinho sobre faixa marinho: **1:1**, reprovando
   a WCAG 1.4.11. O `outline` continuava lá — é a mesma MEIA-FALHA de 07/09 e de
   09/09: a olho nu "tem anel de foco".
   Não é caso isolado da faixa: os 6 botões da /vestibular-2027/ com sombra
   própria falhavam igual, e a 3660 falhará quando voltar do draft.
   CLASSE REPETIDA quatro vezes chega a (0,5,0) e passa por cima do seletor por
   widget sem `!important` — mesmo padrão das regras 18 e 23 do CLAUDE.md, um
   degrau acima, porque o adversário aqui tem uma classe a mais.
   Só o `box-shadow` é repetido: o `outline` da regra acima já vence sozinho. */
.elementor-button.elementor-button.elementor-button.elementor-button:focus-visible,
a.elementor-button.elementor-button.elementor-button.elementor-button:focus-visible {
  box-shadow: 0 0 0 3px var(--faac-focus-halo);
}

/* Em faixa escura o par se inverte: halo marinho profundo, anel aço. O mesmo
   par de cores que o rodapé já usa para texto — nada de cor nova na paleta. */
.elementor-location-footer,
.faac-dep__faixa,
.faac-dep:not(.faac-dep--claro) {
  --faac-focus-cor: #93A8BC;
  --faac-focus-halo: #16232F;
  --faac-focus-ring: 3px solid #93A8BC;
}

/* Rótulo acessível do ícone do Instagram no header (widget 7a1924e).
   O item do icon-list ganhou text="Instagram" para dar nome ao link
   (Lighthouse link-name, F1b); visualmente continua só o ícone —
   padrão screen-reader-only, sem tirar o span do fluxo de leitura. */

.elementor-element-7a1924e .elementor-icon-list-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Target-size do badge de categoria nos cards de curso (F1b §6.3) --------- */
/* O <a> do badge (loop 3463, classe taxonomia-badge) é inline: caixa de
   ~18px, abaixo do alvo de 24px (WCAG 2.5.8). Padding com margem negativa
   espelhada cresce o alvo de toque sem deslocar 1px do visual. */

.taxonomia-badge .elementor-heading-title a {
  display: inline-block;
  padding: 4px 6px;
  margin: -4px -6px;
}

/* Flutuantes no mobile (F4c, auditoria F1b §6.4) ------------------------- */
/* Os 3 widgets flutuantes cobriam o texto do hero no mobile (VLibras e
   UserWay na meia-altura da tela). Pilha no canto inferior direito, fora
   da zona de texto: WhatsApp bottom 20px (snippet 2961) → VLibras 84px →
   UserWay 148px. Só mobile; no desktop há respiro e ninguém cobre texto. */

@media (max-width: 767px) {
  /* Quem posiciona é o CONTAINER [vw].enabled; o botão fica static dentro
     dele. Fixed no botão não funciona: ancestral com transform vira âncora
     do fixed e o botão cai na meia-altura (medido 12/08). */
  body [vw].enabled {
    position: fixed !important;
    top: auto !important;
    left: auto !important;
    bottom: 96px !important;
    right: 12px !important;
  }

  body [vw] [vw-access-button] {
    position: static !important;
  }

  /* R4g (12/08): sem hover o mobile mostrava o tooltip "Acessível com
     VLibras" (img .vp-pop-up, 150px) permanentemente — touch não tem
     hover que o esconda de volta. Tooltip é recurso de mouse; some no
     mobile e o botão redondo fica. */
  body [vw] [vw-access-button] .vp-pop-up {
    display: none !important;
  }

  body .uwy .userway_buttons_wrapper {
    position: fixed !important;
    top: auto !important;
    left: auto !important;
    bottom: 148px !important;
    right: 12px !important;
    transform: none !important;
  }
}

/* ==========================================================================
   v1.6.0 — lote B12/B13 + tokens do plano-ux §2.6 e §2.7 (14/08/2026)
   ========================================================================== */

/* B12 — CTA e inscrição no menu mobile ------------------------------------ */
/* O widget nav-menu do Elementor imprime DUAS árvores no mesmo DOM: a de
   desktop (.elementor-nav-menu--main) e a do hambúrguer
   (.elementor-nav-menu--dropdown), alternadas por breakpoint. Os itens
   "Vestibular 2026" e "Área do Aluno" foram criados no Menu Principal com a
   classe .faac-so-mobile só para existirem no dropdown: abaixo de 1024px o
   botão "Área do Aluno" do cabeçalho some e o hambúrguer não tinha nenhum
   caminho para inscrição nem para o portal do aluno. No desktop os dois
   continuam representados pelo botão, então aqui eles saem. */

/* Especificidade: o Elementor declara o display do <li> em
   `.elementor-nav-menu--layout-horizontal > ul > li` (0,2,1). Um seletor de
   duas classes perde para isso e o item aparece nos dois menus — medido. */

.elementor-nav-menu--main ul.elementor-nav-menu > li.faac-so-mobile {
  display: none;
}

/* B13 — rótulo acessível do Instagram na /fale-conosco/ (widget 0c99bc0) --- */
/* Mesmo padrão do 7a1924e no cabeçalho: o item ganhou text="Instagram" para
   dar nome ao link; visualmente continua só o ícone. */

.elementor-element-0c99bc0 .elementor-icon-list-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* §2.7 — raio único ------------------------------------------------------- */
/* Conviviam 3px (default do Elementor), 5px (maioria dos widgets), 45px e
   50px (pílulas herdadas do site antigo). O token é 5px: os 45/50 foram
   normalizados no _elementor_data (patches/tok-2627-*.json) e esta regra
   recolhe quem não tem raio próprio — popup, botões de tema, etc.
   Widget com raio explícito emite CSS mais específico e continua vencendo,
   o que é o comportamento certo: o token é piso, não camisa de força. */

:root {
  --faac-radius: 5px;
}

.elementor-button,
.elementor-field-group .elementor-field,
.elementor-field-group .elementor-select-wrapper select {
  border-radius: var(--faac-radius);
}

/* §2.7 — largura do submit ------------------------------------------------ */
/* Estava `max-width: 22rem` desde 12/08, para o submit do curso não ocupar os
   1280px da linha. O efeito colateral apareceu em 18/08: o botão ficava com
   352px encostado à esquerda em TODOS os formulários — 352 de 540 no Fale
   Conosco, 352 de 1290 no curso — e lia como elemento solto, não como a ação
   final do formulário.
   A regra agora vive em §2.10, junto do resto do sistema de formulário, onde
   o botão preenche a linha e o par Voltar/Próximo divide o espaço. */

/* §2.6 — medida de linha -------------------------------------------------- */
/* Ivy fica entre 60 e 75 caracteres por linha. Aqui sobravam parágrafos de
   94 a 165 caracteres (FAQ do vestibular a 1278px, marcos da Nossa História a
   917px, e-MEC a 848px). O cap é por elemento, e não global, porque
   max-width em parágrafo centralizado precisa de margin-inline:auto e em
   parágrafo alinhado à esquerda NÃO pode ter — uma regra só para os dois
   casos deslocaria metade do site. Alinhamento medido widget a widget.
   O token já existia (--faac-measure, §2 do design-system); o que faltava
   era alguém aplicá-lo: a classe utilitária .faac-measure nunca foi posta
   em nenhum widget porque o conteúdo veio do site antigo, não do editor. */

/* alinhados à esquerda: só encurtam a linha, não se movem */
.elementor-element-1b5e75d p,
.elementor-element-46da0a4 p,
.elementor-element-1ef57c7 p,
.elementor-element-3b2fac3 p,
.elementor-element-1e73531 p,
.elementor-element-f5c441c p,
.elementor-element-b75393e p,
.elementor-element-223c062 p,
.elementor-element-9524910 p,
.elementor-element-6d535a5 p,
.elementor-element-90fb184 p,
.elementor-element-ce7e51e p,
.elementor-element-1e5e460 p,
.elementor-element-f7d0532 p {
  max-width: var(--faac-measure);
}

.elementor-element-a48350d .elementor-heading-title {
  max-width: var(--faac-measure);
}

/* centralizados: precisam de margem automática para continuarem centrados */
.elementor-element-8911af4 .elementor-heading-title {
  max-width: var(--faac-measure);
  margin-inline: auto;
}

/* §2.3 (resíduo) — skip-link fora da paleta ------------------------------- */
/* O link "Ir para o conteúdo" do Hello Elementor vinha em #CC3366, uma cor
   que não existe em ops/paleta.md. Só aparece no foco por teclado, mas é a
   primeira coisa que um usuário de teclado vê. */

.skip-link.screen-reader-text:focus {
  color: #ffffff;
  background-color: #213449;
}

/* ==========================================================================
   v1.7.0 — Frente 1 do plano do Vestibular (14/08/2026)
   ========================================================================== */

/* Item 7 — os 3 flutuantes do mobile num eixo só ------------------------- */
/* Medido a 390px em 14/08: WhatsApp 50×50 com centro X 347, VLibras 40×40 com
   centro 348, UserWay 44×44 com centro 356. Três caixas, três centros — é o
   que faz a coluna parecer torta.
   ⚠ Alinhar por `right` NÃO resolve: o centro de cada um é
   `larguraDaTela - right - largura/2`, então caixas de tamanhos diferentes com
   o mesmo `right` ficam em eixos diferentes. O que tem de ser igual é
   `right + largura/2` — aqui, 40px. WhatsApp e VLibras vão a 48×48 (também
   satisfaz o alvo de toque de 44px da WCAG 2.5.8) com right 16; o UserWay
   mantém os 44px nativos dele (o botão é montado pelo próprio widget) e ganha
   right 18 — 18 + 22 = 40, mesmo eixo.
   O empilhamento vertical sai de uma base única, para a barra fixa de inscrição
   da Frente 2 poder empurrar os três de uma vez mudando só --faac-float-base. */

@media (max-width: 767px) {
  :root {
    --faac-float-eixo: 40px;   /* right + largura/2, igual para os três */
    --faac-float-base: 20px;   /* distância do primeiro até a borda inferior */
    --faac-float-passo: 64px;  /* 48 de caixa + 16 de respiro */
  }

  /* WhatsApp — o snippet 2961 imprime right:18px/bottom:20px no próprio <a> */
  body a.wpp-float-btn {
    width: 48px !important;
    height: 48px !important;
    right: calc(var(--faac-float-eixo) - 24px) !important;
    bottom: var(--faac-float-base) !important;
  }

  /* VLibras — quem posiciona é o CONTAINER [vw].enabled; o botão é static
     dentro dele (v1.5.0). Como o container é a âncora, é ele que precisa ter
     a largura da caixa visível, senão `right` alinha a caixa do tooltip. */
  /* ⚠ o próprio VLibras aplica `margin-right:10px` e `translateY(-34px)` no
     container. Os dois entram DEPOIS do `right`/`bottom` e tiram o botão do
     eixo (medido: centro X 340 em vez de 350) — zerar os dois é o que faz o
     `right` valer de verdade. */
  body [vw].enabled {
    width: 48px !important;
    height: 48px !important;
    right: calc(var(--faac-float-eixo) - 24px) !important;
    bottom: calc(var(--faac-float-base) + var(--faac-float-passo)) !important;
    margin: 0 !important;
    transform: none !important;
  }

  /* a imagem do botão tem 40px e fica encostada à direita dentro da caixa;
     o flex centra os 40 dentro dos 48 e o alvo de toque continua 48. */
  body [vw] [vw-access-button] {
    width: 48px !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* UserWay — largura nativa de 44px, então o right compensa para manter o eixo.
     ⚠ O `bottom` posiciona o WRAPPER, que é 33px mais alto que o botão visível
     (.uwy .uai) — sem descontar isso, o botão sobe 33px e o respiro entre ele e
     o VLibras vira 49px contra os 16px dos outros. Medido a 390px em 14/08. */
  body .uwy .userway_buttons_wrapper {
    right: calc(var(--faac-float-eixo) - 22px) !important;
    bottom: calc(var(--faac-float-base) + var(--faac-float-passo) * 2 - 33px) !important;
  }
}

/* N7 (resíduo) — os flutuantes do DESKTOP no mesmo eixo ------------------ */
/* Medido a 1440px em 14/08, nas 3 páginas: VLibras com centro X 1410 e UserWay
   com 1397 — 13px de diferença, o bastante para a coluna parecer torta. No
   desktop só existem esses dois (o botão de WhatsApp é impresso apenas no
   mobile pelo snippet 2961).
   Mesma regra do mobile: o que precisa ser igual é `right + largura/2`. Aqui o
   eixo é 30px — é onde o VLibras já está, e mexer só no UserWay evita empurrar
   um widget de terceiro que se reposiciona sozinho.
   O eixo vertical fica como está: os dois flutuam no meio da lateral por
   decisão dos próprios widgets, e movê-los para o canto inferior seria mudança
   de layout, não correção de alinhamento. */

@media (min-width: 768px) {
  :root {
    --faac-float-eixo-desktop: 40px; /* right + largura/2, igual para os três */
  }

  /* ⚠ São TRÊS no desktop, não dois: o botão de WhatsApp do snippet 2961
     aparece aqui também. A medição de 14/08 que dizia "não carregou" foi feita
     na hora em que os snippets do WPCode estavam fora do ar — erro meu, não do
     site. Sem ele, WhatsApp ficava a W-43 e os outros dois a W-26. */

  /* ⚠ Só o eixo X. Mexer no `bottom` dos dois widgets de acessibilidade **não**
     funciona no desktop: o container do VLibras cresce para 40×342 (a caixa do
     tooltip, que aqui aparece expandida) e o do UserWay para 10×331, com o
     botão ancorado no topo — empurrar o `bottom` deles espalha a coluna em vez
     de empilhá-la. Medido em 14/08. As alturas nativas ficam como estão. */

  /* WhatsApp — 50px de caixa → right = 40 - 25. */
  body a.wpp-float-btn {
    right: calc(var(--faac-float-eixo-desktop) - 25px) !important;
  }

  /* VLibras — o container é a âncora e tem 40px de caixa → right = 40 - 20.
     Zerar a margem própria dele é o que faz o `right` valer (o widget aplica
     `margin-right:10px` sozinho). */
  body [vw].enabled {
    right: calc(var(--faac-float-eixo-desktop) - 20px) !important;
    margin-right: 0 !important;
  }

  /* ⚠ POR QUE o UserWay parecia não obedecer `right` (desvendado em 14/08,
     terceira tentativa): o JS dele posiciona o wrapper por `left` inline +
     `transform: translate(-44px, -22px)` — todo `right` que a gente declarar é
     ignorado enquanto o `left` existir, e foi por isso que right:8/11/25
     produziam centros aparentemente aleatórios (W-27, W-26, W-21).
     A correção de verdade: matar o `left` (aí o `right` assume), forçar o
     wrapper à largura do botão (sem folga não há deriva) e zerar SÓ o eixo X
     do transform dele — o translateY(-22px) fica, é o ajuste vertical do
     próprio widget. Geometria: centro = W − right − 22 → right = 40 − 22. */
  /* A caixa vira EXATAMENTE o botão (44×44): com o wrapper de altura 0 o botão
     pendurava para baixo e caía em cima do VLibras. Com a caixa fechada, o
     `bottom` declarado aqui É a base do botão — sem depender do bottom inline
     nem do translate do widget. 483px = base original medida antes da mudança
     (13px de respiro acima do VLibras, que termina em 470). */
  body .uwy .userway_buttons_wrapper {
    /* o JS dele posiciona por left+top inline; anular os dois é o que faz
       right+bottom valerem */
    left: auto !important;
    top: auto !important;
    right: calc(var(--faac-float-eixo-desktop) - 22px) !important;
    bottom: 483px !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    transform: none !important;
  }

  body .uwy .uai {
    left: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }
}

/* Frente 2 — barra fixa de inscrição no mobile (decisão V-b, 14/08) ------- */
/* A /vestibular-2026/ tem ~6000px de altura: quem decide no meio da página não
   tem como voltar ao formulário. A barra é o único CTA sempre presente no
   mobile. O markup vem do snippet WPCode "FAAC — barra de inscrição"
   (wp_footer, só nesta página); aqui mora a pele.
   Ela é o 4º elemento fixo da tela, então empurra os outros três de uma vez
   via --faac-float-base — é para isso que a base é uma variável. */

.faac-barra-insc {
  display: none;
}

@media (max-width: 767px) {
  .faac-barra-insc {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 998; /* abaixo dos flutuantes (1000+), acima do conteúdo */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--faac-space-3);
    padding: 10px var(--faac-space-4);
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    background: #16232f;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-family: Archivo, sans-serif;
  }

  .faac-barra-insc__txt {
    color: #93a8bc; /* 6,51:1 sobre #16232F, mesmo par do rodapé */
    font-size: var(--faac-fs-xs);
    line-height: 1.3;
  }

  .faac-barra-insc__btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* alvo de toque, WCAG 2.5.8 */
    padding: 12px 20px;
    border-radius: 5px; /* token de raio do §2.7 */
    background: #ffffff;
    color: #213449;
    font-size: var(--faac-fs-button);
    font-weight: 600;
    text-decoration: none;
  }

  .faac-barra-insc__btn:hover,
  .faac-barra-insc__btn:focus-visible {
    background: #e9eef2;
    color: #213449;
  }

  /* a barra não pode cobrir o fim da página nem a pilha de flutuantes */
  body.faac-tem-barra-insc {
    padding-bottom: 76px;
    --faac-float-base: 76px;
  }
}

/* ==========================================================================
   v1.7.2 — o banner LGPD para de prender a página (14/08/2026)
   ========================================================================== */

/* O popup 2122 é montado pelo Elementor dentro de um wrapper que ocupa a
   viewport inteira e captura TODO clique: `document.elementFromPoint()` no meio
   da tela devolvia o dialog, e nenhum CTA da página respondia até o visitante
   escolher Concordo ou Discordo. Com `prevent_scroll` a página nem rolava.
   Prender assim foi decisão de origem; o Thiago liberou em 14/08 (o banner hoje
   é cosmético, e LGPD de verdade é assunto para depois deste projeto).
   O `prevent_scroll` saiu no dado; aqui o clique volta a atravessar o overlay.
   O banner continua na tela e continua clicável — some pelos próprios botões.
   ⚠ 15/08: o mesmo efeito passou a existir na origem — o controle `overlay` do
   documento popup foi para Hide, e o que ele fazia era exatamente escrever
   `pointer-events: all` no wrapper. Estas duas regras viraram cinto e
   suspensório; ficam porque não custam nada e protegem de alguém religar o
   Overlay no editor sem saber o que ele faz. */

#elementor-popup-modal-2122 {
  pointer-events: none;
}

#elementor-popup-modal-2122 .dialog-widget-content,
#elementor-popup-modal-2122 .dialog-message {
  pointer-events: auto;
}

/* v1.8.1 — o banner agora só sai pelos dois botões, então não pode ficar por
   cima de nada clicável (15/08/2026).
   Medido em 390x844 na /vestibular-2026/: o cartão vai de y=593 a y=828 e
   engolia o flutuante do WhatsApp (720-768) e o topo da barra de inscrição
   (771-844). Antes passava porque o primeiro toque em qualquer lugar fechava o
   banner; agora ele fica.
   O banner sobe acima da barra (--faac-lgpd-piso, lido pelo custom CSS do
   próprio popup) e a pilha de flutuantes sobe acima do banner. As duas medidas
   vêm do snippet WPCode da LGPD, que as escreve no :root a cada exibição — o
   texto do banner reflui e a barra respeita safe-area-inset, então nenhuma das
   duas alturas pode ser constante. */

@media (max-width: 767px) {
  body.faac-lgpd-aberto {
    --faac-float-base: calc(var(--faac-lgpd-piso, 16px) + var(--faac-lgpd-altura, 0px) + 12px);
  }
}

/* N5 — página 404 (template-parts/404.php do child) ---------------------- */
/* A 404 não passa pelo Elementor: o markup é do tema e a pele é aqui. Cores
   literais em vez de var() do Kit porque o Kit publica as suas como
   `--e-global-color-*` com nomes gerados — o que já quebrou uma vez. Os valores
   são os mesmos da paleta (ops/paleta.md): marinho #213449, aço #93A8BC,
   fundo claro #E9EEF2, tinta #2B3440. */

.faac-404 {
  max-width: 960px;
  margin: 0 auto;
  padding: var(--faac-section) var(--faac-space-5) var(--faac-section-lg);
}

.faac-404__codigo {
  margin: 0;
  font-size: var(--faac-fs-overline);
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #6b7280;
}

.faac-404__titulo {
  margin: var(--faac-space-2) 0 0;
  font-size: var(--faac-fs-h1);
  line-height: 1.15;
  color: #213449;
}

.faac-404__texto {
  max-width: var(--faac-measure);
  margin: var(--faac-space-4) 0 0;
  font-size: var(--faac-fs-body);
  line-height: 1.65;
  color: #2b3440;
}

.faac-404__busca {
  margin: var(--faac-space-7) 0 0;
}

.faac-404__rotulo {
  display: block;
  margin-bottom: var(--faac-space-2);
  font-size: var(--faac-fs-sm);
  font-weight: 600;
  color: #2b3440;
}

.faac-404__campo {
  display: flex;
  flex-wrap: wrap;
  gap: var(--faac-space-3);
  max-width: 560px;
}

.faac-404__campo input[type="search"] {
  flex: 1 1 260px;
  min-height: 48px;
  padding: 0 var(--faac-space-4);
  font-size: var(--faac-fs-body);
  color: #2b3440;
  background: #fff;
  border: 1px solid #c3d0dc;
  border-radius: var(--faac-radius, 5px);
}

.faac-404__campo input[type="search"]:focus-visible {
  outline: var(--faac-focus-ring);
  outline-offset: 2px;
}

.faac-404__campo button {
  min-height: 48px;
  padding: 0 var(--faac-space-6);
  font-size: var(--faac-fs-button);
  font-weight: 600;
  color: #fff;
  background: #213449;
  border: 1px solid #213449;
  border-radius: var(--faac-radius, 5px);
  cursor: pointer;
  transition: background var(--faac-dur) var(--faac-ease);
}

.faac-404__campo button:hover,
.faac-404__campo button:focus-visible {
  background: #16232f;
}

/* Atalhos: grade que cai para uma coluna sozinha, sem media query. */
.faac-404__atalhos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--faac-space-4);
  margin: var(--faac-space-7) 0 0;
}

.faac-404__atalho {
  display: block;
  padding: var(--faac-space-5);
  text-decoration: none;
  background: #fff;
  border: 1px solid #e9eef2;
  border-radius: 10px;
  transition: border-color var(--faac-dur) var(--faac-ease),
              transform var(--faac-dur) var(--faac-ease);
}

.faac-404__atalho:hover,
.faac-404__atalho:focus-visible {
  border-color: #93a8bc;
  transform: translateY(-2px);
}

.faac-404__atalho-titulo {
  display: block;
  font-size: var(--faac-fs-h4);
  font-weight: 600;
  color: #213449;
}

.faac-404__atalho-texto {
  display: block;
  margin-top: var(--faac-space-1);
  font-size: var(--faac-fs-sm);
  line-height: 1.5;
  color: #4b5563;
}

.faac-404__volta {
  margin: var(--faac-space-7) 0 0;
  font-size: var(--faac-fs-body);
}

.faac-404__volta a {
  color: #213449;
  text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
  .faac-404__atalho {
    transition: none;
  }
  .faac-404__atalho:hover,
  .faac-404__atalho:focus-visible {
    transform: none;
  }
}

/* N5b — resultados de busca (template-parts/search.php do child) --------- */
/* A busca veste a pele da 404 (o wrapper carrega as duas classes); aqui só o
   que é próprio dela: a lista em coluna, o rótulo de tipo e a paginação. */

.faac-pesquisa__lista {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--faac-space-4);
  margin: var(--faac-space-7) 0 0;
}

.faac-pesquisa__tipo {
  display: block;
  margin-bottom: var(--faac-space-1);
  font-size: var(--faac-fs-overline);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6b7280;
}

/* Paginação nativa do WP (the_posts_pagination) no vocabulário do site. */
.faac-pesquisa .navigation.pagination {
  margin: var(--faac-space-7) 0 0;
}

.faac-pesquisa .navigation.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--faac-space-2);
  align-items: center;
}

.faac-pesquisa .navigation.pagination .page-numbers {
  display: inline-block;
  min-width: 44px;
  padding: 10px 14px;
  font-size: var(--faac-fs-sm);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  color: #213449;
  background: #fff;
  border: 1px solid #e9eef2;
  border-radius: var(--faac-radius, 5px);
}

.faac-pesquisa .navigation.pagination a.page-numbers:hover,
.faac-pesquisa .navigation.pagination a.page-numbers:focus-visible {
  border-color: #93a8bc;
}

.faac-pesquisa .navigation.pagination .page-numbers.current {
  color: #fff;
  background: #213449;
  border-color: #213449;
}

/* o "Resultados da pesquisa por:" que o tema pai imprime não existe aqui,
   mas o screen-reader-text da paginação nativa precisa sumir do olho e
   continuar para o leitor de tela */
.faac-pesquisa .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* >>> FAAC-ICONES: bloco gerado por scripts/n8b-icones-gera.mjs — não editar à mão */
/* ==========================================================================
   v1.8.0 — os ícones deixam de vir do Font Awesome externo (15/08/2026)
   ==========================================================================

   Substitui o snippet 113 de Custom Code do Elementor, que carregava
   cdnjs.cloudflare.com/.../font-awesome/7.0.1/css/all.min.css: 74KB de CSS
   mais fa-solid-900 (113KB), fa-brands-400 (101KB) e fa-regular-400 (19KB),
   todos de um host de terceiro, em toda página do site.

   Aqui ficam apenas os 45 ícones que o site usa de verdade, medidos em 14
   rotas por scripts/n8b-inventario-icones.mjs (inclusive os seis que o widget de
   upload da /vestibular-2026/ só injeta depois que o usuário mexe no campo).

   Cor e tamanho seguem vindo de `color` e `font-size`, como vinham na fonte:
   `background-color: currentColor` e `width: 1em`. Por isso todo custom_css que
   já existe no banco — `selector i.fa-solid { color:#93A8BC; font-size:1.5rem }` —
   continua valendo sem alteração.

   NÃO editar à mão: gerado por `node scripts/n8b-icones-gera.mjs aplicar`.
   Ícone novo no site pede rodar o inventário e regerar; um ícone fora desta
   lista não desenha, e não emite erro nenhum — quem pega isso é o
   scripts/n8b-verifica-icones.mjs.

   Desenhos: Font Awesome Free 7.0.1 — ícones sob CC BY 4.0
   (https://fontawesome.com/license/free), Copyright 2025 Fonticons, Inc.
   ========================================================================== */

/* O Font Awesome zerava o estilo do elemento, e isso não era decoração: os
   ícones são `<i>`, cujo padrão no browser é font-style: italic. Sem esta
   linha, cada `<i>` volta a ser itálico e o browser baixa o ARCHIVO ITÁLICO
   (38KB) só para renderizar elementos vazios — medido em 15/08, a fonte por
   página subiu de 91KB para 129KB antes desta regra entrar. */
:where(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands, [class*=" fa-"], [class^="fa-"]) {
  font-style: normal;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
}

/* A caixa do ícone. `:where()` mantém especificidade ZERO, para que qualquer
   regra do Kit ou dos widgets continue vencendo, como vencia sobre o FA. */
:where(.fa, .fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands, [class*=" fa-"], [class^="fa-"])::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask: var(--faac-i, var(--faac-i-vazio)) center / contain no-repeat;
  mask: var(--faac-i, var(--faac-i-vazio)) center / contain no-repeat;
}

/* O fallback importa. Sem ele, um ícone fora da lista deixaria `mask` com um
   var() indefinido — a declaração inteira cai, e o que sobra é
   `background-color: currentColor` numa caixa de 1em: um QUADRADO SÓLIDO no
   lugar do ícone. Mascarando com um SVG vazio, o que falta some, que é o
   comportamento de hoje quando o glifo não existe (é o caso do `fa-triangle`,
   que é Pro e nunca desenhou neste site). */
:root {
  --faac-i-vazio: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'%3E%3C/svg%3E");
}

/* fa-spin: a animação vinha junto do CSS do Font Awesome. */
.fa-spin::before { animation: faac-fa-spin 2s linear infinite; }
@keyframes faac-fa-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fa-spin::before { animation: none; } }

/* ícone a ícone --------------------------------------------------------- */
.fa-whatsapp{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E")}
.fa-check{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z'/%3E%3C/svg%3E")}
.fa-xmark{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z'/%3E%3C/svg%3E")}
.fa-circle-right{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z'/%3E%3C/svg%3E")}
.fa-pen-to-square{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z'/%3E%3C/svg%3E")}
.fa-laptop{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z'/%3E%3C/svg%3E")}
.fa-file-lines{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z'/%3E%3C/svg%3E")}
.fa-caret-right{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 512'%3E%3Cpath d='M32.5 96c0-12.9 7.8-24.6 19.8-29.6S78 64.2 87.1 73.4l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-9.2 9.2-22.9 11.9-34.9 6.9S32.5 428.9 32.5 416l0-320z'/%3E%3C/svg%3E")}
.fa-graduation-cap{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z'/%3E%3C/svg%3E")}
.fa-chevron-right{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z'/%3E%3C/svg%3E")}
.fa-envelope-open-text{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z'/%3E%3C/svg%3E")}
.fa-chart-line{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z'/%3E%3C/svg%3E")}
.fa-rocket{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z'/%3E%3C/svg%3E")}
.fa-bullseye{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z'/%3E%3C/svg%3E")}
.fa-receipt{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z'/%3E%3C/svg%3E")}
.fa-clipboard-list{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z'/%3E%3C/svg%3E")}
.fa-map-location-dot{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z'/%3E%3C/svg%3E")}
.fa-id-card{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z'/%3E%3C/svg%3E")}
.fa-scroll{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z'/%3E%3C/svg%3E")}
.fa-check-to-slot{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z'/%3E%3C/svg%3E")}
.fa-shield-halved{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z'/%3E%3C/svg%3E")}
.fa-camera-retro{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z'/%3E%3C/svg%3E")}
.fa-chevron-left{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z'/%3E%3C/svg%3E")}
.fa-cloud-arrow-up{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z'/%3E%3C/svg%3E")}
.fa-file-pdf{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z'/%3E%3C/svg%3E")}
.fa-file-image{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z'/%3E%3C/svg%3E")}
.fa-file-word{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z'/%3E%3C/svg%3E")}
.fa-file-signature{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z'/%3E%3C/svg%3E")}
.fa-laptop-code{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z'/%3E%3C/svg%3E")}
.fa-envelope-circle-check{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z'/%3E%3C/svg%3E")}
.fa-user-graduate{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z'/%3E%3C/svg%3E")}
.fa-medal{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z'/%3E%3C/svg%3E")}
.fa-calendar-days{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z'/%3E%3C/svg%3E")}
.fa-chalkboard-user{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M128 96c0-35.3 28.7-64 64-64l352 0c35.3 0 64 28.7 64 64l0 240-96 0 0-16c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 16-129.1 0c10.9-18.8 17.1-40.7 17.1-64 0-70.7-57.3-128-128-128-5.4 0-10.8 .3-16 1l0-49zM333 448c-5.1-24.2-16.3-46.1-32.1-64L608 384c0 35.3-28.7 64-64 64l-211 0zM64 272a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM0 480c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z'/%3E%3C/svg%3E")}
.fa-bullhorn{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z'/%3E%3C/svg%3E")}
.fa-users{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z'/%3E%3C/svg%3E")}
.fa-hourglass-half{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z'/%3E%3C/svg%3E")}
.fa-wallet{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E")}
.fa-book-open-reader{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z'/%3E%3C/svg%3E")}
.fa-flask{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z'/%3E%3C/svg%3E")}
.fa-earth-americas{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z'/%3E%3C/svg%3E")}
.fa-building-columns{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z'/%3E%3C/svg%3E")}
.fa-address-card{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath d='M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z'/%3E%3C/svg%3E")}
.fa-house{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z'/%3E%3C/svg%3E")}
.fa-file-arrow-down{--faac-i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z'/%3E%3C/svg%3E")}
/* <<< FAAC-ICONES: fim do bloco gerado */

/* ==========================================================================
   v1.9.0 — §2.10 sistema de formulário (18/08/2026)
   ==========================================================================

   Os 6 formulários vivos (Vestibular 3660 · Fale Conosco 634 · Ouvidoria 1951 ·
   Graduação 439 · Pós/MBA 654 · Extensão 1370) viviam em dois desenhos
   diferentes, e o mais usado era o pior:

     Vestibular      campo branco, borda 2px, raio 10px, 47px de altura, 16px
     os outros 5     campo #F7F8FA, borda 1px, raio 5px, 40px de altura, 14px

   Os 14px não eram escolha de ninguém: o controle `input_size` do widget de
   formulário estava no default (`sm`), e `.elementor-size-sm` do Elementor vale
   `font-size:14px; min-height:40px`. Num site com corpo de 17-18px, o campo
   ficava 4px menor que o próprio rótulo — a hierarquia invertida que se via na
   tela. Abaixo de 16px há um segundo efeito, não estético: o Safari do iOS dá
   zoom sozinho ao focar o campo.

   A padronização mora em duas camadas, de propósito:
     • o que o Elementor tem controle (tipografia, cor, borda, raio, gaps) foi
       gravado igual nos 6 widgets — `scripts/patches/forms-padrao.json`. É o que
       o Thiago continua vendo e editando no painel;
     • o que o Elementor NÃO tem controle mora aqui: foco, placeholder, autofill,
       largura do botão, alvo de toque, checkbox de aceite, campo de upload.

   ⚠ `!important` aqui não é preguiça. O Elementor emite o estilo do campo como
   `.elementor-<post> .elementor-element.elementor-element-<id>
    .elementor-field-group:not(...) .elementor-field:not(...)` — especificidade
   (0,7,0), que vence qualquer seletor sensato deste arquivo E vale também no
   estado de foco, porque a regra dele não tem pseudo-classe. Era por isso que o
   foco só existia na /vestibular-2026/: aquele widget carregava um custom_css
   próprio com `!important`. Esse custom_css foi zerado no mesmo patch — o foco
   agora é um só, para os 6.
   ========================================================================== */

:root {
  --faac-campo-bg: #FFFFFF;
  --faac-campo-texto: #16232F;
  /* 5.5:1 sobre branco — placeholder é texto e carrega instrução ("Informe seu
     CPF"), então não pode ficar no cinza decorativo de 2:1. */
  --faac-campo-placeholder: #5B6B7D;
  /* 3.33:1 sobre branco. Num campo de fundo branco a borda é a ÚNICA coisa que
     identifica o controle, e é isso que o WCAG 1.4.11 mede (mínimo 3:1). O
     #E9EEF2 que estava lá dava 1.2:1 — decorativo, não identificável. */
  --faac-campo-borda: #7B8FA5;
  --faac-campo-borda-hover: #55697F;
  --faac-campo-borda-foco: #213449;
  --faac-campo-halo: rgba(33, 52, 73, .18);
  --faac-campo-erro: #B3261E;
  --faac-campo-alt: 48px;
}

/* campo ------------------------------------------------------------------- */

.elementor-widget-form .elementor-field-group .elementor-field-textual,
.elementor-widget-form .elementor-field-group .elementor-select-wrapper select {
  min-height: var(--faac-campo-alt);
  padding: var(--faac-space-3) var(--faac-space-4);
  transition: border-color var(--faac-dur) var(--faac-ease),
              box-shadow var(--faac-dur) var(--faac-ease);
}

.elementor-widget-form .elementor-field-group textarea.elementor-field-textual {
  min-height: 150px;
  padding-block: var(--faac-space-3);
  resize: vertical;
}

.elementor-widget-form .elementor-field-group .elementor-field-textual::placeholder {
  /* o Firefox aplica opacity .54 por conta própria e desmonta o contraste */
  opacity: 1;
  color: var(--faac-campo-placeholder);
}

.elementor-widget-form .elementor-field-group .elementor-field-textual:hover:not(:focus),
.elementor-widget-form .elementor-field-group .elementor-select-wrapper select:hover:not(:focus) {
  border-color: var(--faac-campo-borda-hover) !important;
}

.elementor-widget-form .elementor-field-group .elementor-field-textual:focus,
.elementor-widget-form .elementor-field-group .elementor-select-wrapper select:focus {
  border-color: var(--faac-campo-borda-foco) !important;
  box-shadow: 0 0 0 3px var(--faac-campo-halo) !important;
  /* outline transparente: no modo de alto contraste do Windows a box-shadow
     é descartada e só o outline sobrevive para marcar o foco. */
  outline: 2px solid transparent;
  outline-offset: 2px;
}

/* O Chrome pinta o preenchimento automático de amarelo/azul e derruba o
   desenho inteiro. A box-shadow interna é o único jeito de repintar o fundo. */
.elementor-widget-form .elementor-field-group .elementor-field-textual:-webkit-autofill,
.elementor-widget-form .elementor-field-group .elementor-field-textual:-webkit-autofill:hover,
.elementor-widget-form .elementor-field-group .elementor-field-textual:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--faac-campo-texto);
  box-shadow: 0 0 0 100px var(--faac-campo-bg) inset;
  transition: background-color 9999s ease-in-out 0s;
}

.elementor-widget-form .elementor-field-group .elementor-field-textual[aria-invalid="true"],
.elementor-widget-form .elementor-field-group .elementor-field-textual:user-invalid {
  border-color: var(--faac-campo-erro) !important;
}

/* botão ------------------------------------------------------------------- */
/* O submit passa a preencher a linha do formulário. É a ação final: encolhido e
   encostado à esquerda ele lia como um botão qualquer no meio da página. */

.elementor-widget-form .elementor-field-type-submit .elementor-button,
.elementor-widget-form .e-form__buttons__wrapper__button {
  width: 100%;
  max-width: none;
  min-height: 52px;
  justify-content: center;
}

/* multi-step (os 3 formulários de curso): Voltar e Próximo dividem a linha, e
   Voltar fica secundário — dois botões cheios com o mesmo peso empatam a
   decisão. No passo 1 não existe Voltar e Próximo ocupa a linha inteira. */
.elementor-widget-form .e-form__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--faac-space-3);
}

.elementor-widget-form .e-form__buttons .e-form__buttons__wrapper {
  flex: 1 1 12rem;
  margin-bottom: 0;
  padding: 0;
}

.elementor-widget-form .e-form__buttons .elementor-field-type-previous {
  flex: 0 1 12rem;
}

/* `!important` pelo mesmo motivo do campo: `button_background_color` do widget
   emite `{{WRAPPER}} .elementor-button` e pinta os TRÊS botões de marinho. */
.elementor-widget-form .e-form__buttons__wrapper__button-previous {
  color: var(--faac-campo-borda-foco) !important;
  background-color: transparent !important;
  border: 1px solid var(--faac-campo-borda-foco);
}

.elementor-widget-form .e-form__buttons__wrapper__button-previous:hover,
.elementor-widget-form .e-form__buttons__wrapper__button-previous:focus-visible {
  color: #FFFFFF !important;
  background-color: var(--faac-campo-borda-foco) !important;
}

/* upload ------------------------------------------------------------------ */
/* Os 3 formulários de curso têm 5-7 campos de arquivo e recebiam o controle cru
   do navegador — outra fonte, outra altura, outra borda. O desenho aqui é o do
   campo, com o botão do seletor no lugar da caixa de texto.
   ⚠ A /vestibular-2026/ tem uma UI de upload própria (widget html d9bf82b,
   `.faac-up`), escrita para um campo de arquivo que aquele formulário não tem —
   ela não colide com isto porque é escopada em `#form_vestibular_2026_2`. */

/* ⚠ `display: block` no grupo — não é preferência, é a saída do flex.
   O grupo de campo do Elementor é `display:flex; flex-wrap:wrap` e o input
   carrega `flex-basis: 100%`. Virar o grupo para `column` não resolve: em
   container `column` o basis de 100% se mede na ALTURA, o item pede a coluna
   inteira, e o que quebra vira COLUNA nova — rótulo à esquerda, caixa à
   direita, sobrepostas (medido em 18/08). Fora do flex, dois blocos empilham
   sozinhos e a altura volta a ser a do conteúdo. */
.elementor-widget-form .elementor-field-type-upload {
  display: block;
}

.elementor-widget-form .elementor-field-type-upload .elementor-field-label {
  display: block;
  width: 100%;
}

.elementor-widget-form .elementor-upload-field {
  display: block;
  width: 100%;
  min-height: var(--faac-campo-alt);
  padding: var(--faac-space-3) var(--faac-space-4);
  font-size: var(--faac-fs-sm);
  color: var(--faac-campo-texto);
  background-color: var(--faac-campo-bg);
  border: 1px dashed var(--faac-campo-borda);
  border-radius: var(--faac-radius);
}

.elementor-widget-form .elementor-upload-field::file-selector-button {
  margin-right: var(--faac-space-3);
  padding: var(--faac-space-2) var(--faac-space-4);
  font-family: inherit;
  font-size: var(--faac-fs-xs);
  font-weight: 600;
  color: var(--faac-campo-borda-foco);
  cursor: pointer;
  background-color: rgba(33, 52, 73, .06);
  border: 1px solid var(--faac-campo-borda-foco);
  border-radius: var(--faac-radius);
}

.elementor-widget-form .elementor-upload-field:hover {
  border-color: var(--faac-campo-borda-hover);
}

.elementor-widget-form .elementor-upload-field:focus-visible {
  border-color: var(--faac-campo-borda-foco);
  outline: 2px solid transparent;
  box-shadow: 0 0 0 3px var(--faac-campo-halo);
}

/* aceite (LGPD) ----------------------------------------------------------- */
/* Vinha do widget html d9bf82b, escopado em `#form_vestibular_2026_2` e preso a
   `label[for="form-field-lgpd"]`: só funcionava naquele formulário e naquele id
   de campo. Aqui vale para qualquer aceite, de qualquer formulário. O bloco
   antigo continua no d9bf82b e vence por especificidade de id — os valores são
   os mesmos, e a diferença é que este segue existindo se aquele widget sair. */

.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  align-items: flex-start;
  gap: 0;
}

/* esconder sem `display:none` mantém o campo focável e validável pelo navegador */
.elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
}

.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label {
  position: relative;
  display: inline-block;
  padding-left: 32px;
  font-size: var(--faac-fs-sm);
  line-height: 1.5;
  color: var(--faac-campo-borda-foco);
  cursor: pointer;
}

.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 0;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  background: var(--faac-campo-bg);
  border: 2px solid var(--faac-campo-borda);
  border-radius: 6px;
  transition: background-color var(--faac-dur) var(--faac-ease),
              border-color var(--faac-dur) var(--faac-ease);
}

.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 7px;
  width: 6px;
  height: 11px;
  border: solid #FFFFFF;
  border-width: 0 2px 2px 0;
  opacity: 0;
  transform: rotate(45deg);
  transition: opacity var(--faac-dur-fast) var(--faac-ease);
}

.elementor-widget-form .elementor-field-type-acceptance .elementor-field-option label:hover::before {
  border-color: var(--faac-campo-borda-foco);
}

.elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"]:checked + label::before {
  background: var(--faac-campo-borda-foco);
  border-color: var(--faac-campo-borda-foco);
}

.elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"]:checked + label::after {
  opacity: 1;
}

/* o foco tem de aparecer na caixa desenhada — o input real é 1px invisível */
.elementor-widget-form .elementor-field-type-acceptance input[type="checkbox"]:focus-visible + label::before {
  border-color: var(--faac-campo-borda-foco);
  box-shadow: 0 0 0 3px var(--faac-campo-halo);
}

/* mensagens --------------------------------------------------------------- */

.elementor-widget-form .elementor-message {
  font-size: var(--faac-fs-sm);
  line-height: 1.5;
}

.elementor-widget-form .elementor-message.elementor-message-danger {
  color: var(--faac-campo-erro);
}

/* ==========================================================================
   2.11 · Cor de link do corpo de texto            (18/ago/2026)

   Os links do conteúdo saíam em #CC3366 (rosa), default do tema. Num site cuja
   identidade é um marinho sóbrio, era o elemento que mais destoava — e aparecia
   em "Leia a Política de Privacidade", "Conheça a CPA" e em todo link de corpo
   de texto do site.

   A cor não é nova: é o **Azul de ação #2861BD** que já está em ops/paleta.md
   desde a A2, descrito lá como "botões, links, CTAs", 5,94:1 sobre branco.
   Nunca tinha sido ligado aos links.

   ⚠ POR QUE AQUI E NÃO NO KIT: `link_normal_color` do Kit atinge TODO <a> do
   site. Aplicado lá (e revertido em minutos), ele pintou o menu do cabeçalho e
   o texto do botão "Área do Aluno" de #2861BD sobre marinho #213449 — 1,8:1,
   ilegível — e faria o mesmo no rodapé escuro. Cor de link de CORPO DE TEXTO
   não é cor de link de NAVEGAÇÃO, e o Elementor não separa as duas. Aqui a
   regra alcança só widget de texto e conteúdo de post, e devolve a cor herdada
   dentro de cabeçalho e rodapé.
   ========================================================================== */

:root {
  --faac-link: #2861BD;
  --faac-link-hover: #1D4A91;
}

.elementor-widget-text-editor a,
.elementor-widget-theme-post-content a,
.elementor-widget-post-info a,
.faac-conteudo a {
  color: var(--faac-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: rgba(40, 97, 189, 0.35);
  transition: color 0.18s ease, text-decoration-color 0.18s ease;
}

.elementor-widget-text-editor a:hover,
.elementor-widget-theme-post-content a:hover,
.elementor-widget-post-info a:hover,
.faac-conteudo a:hover {
  /* Escurece no hover, nunca clareia: o estado ativo não pode perder contraste. */
  color: var(--faac-link-hover);
  text-decoration-color: currentColor;
}

.elementor-widget-text-editor a:focus-visible,
.elementor-widget-theme-post-content a:focus-visible,
.faac-conteudo a:focus-visible {
  outline: 3px solid var(--faac-link);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Cabeçalho e rodapé têm cor própria e fundo escuro — #2861BD sobre #16232F dá
   2,65:1 e reprova. Lá o link volta a herdar. */
.elementor-location-header .elementor-widget-text-editor a,
.elementor-location-footer .elementor-widget-text-editor a {
  color: inherit;
  text-decoration: none;
}

/* Botão continua botão: a cor de link não pode vazar para dentro dele.
   `.elementor-widget-theme-post-content a.wp-block-button__link` entrou em
   11/09/2026 com o blog: sem ele, o botão do Gutenberg dentro de um post
   saía azul e sublinhado — a regra de link acima alcança o theme-post-content
   e a exclusão só cobria o text-editor. A cor do botão em si é a §2.18. */
.elementor-widget-text-editor a.elementor-button,
.elementor-widget-text-editor a.wp-block-button__link,
.elementor-widget-theme-post-content a.wp-block-button__link {
  color: inherit;
  text-decoration: none;
}


/* ==========================================================================
   2.11  Matriz curricular (tabela de dado tabular real)
   ==========================================================================

   Usada em /matriz-curricular-administracao/. É `<table>` de propósito: 45
   disciplinas em 8 períodos com duas colunas que somam. Leitor de tela anuncia
   linha e coluna, o conteúdo é copiável e imprime certo. Remontada com
   container do Elementor viraria um monte de div que nada disso alcança, e
   quem lê é avaliador do MEC.

   ⚠ 4 COLUNAS NÃO CABEM EM 390px. Abaixo de 720px a tabela deixa de ser
   tabela: cada linha vira um cartão e cada célula ganha seu rótulo pelo
   `data-rotulo`, que é a única forma de a célula continuar identificável
   depois que o cabeçalho some da tela. */

.faac-mz-envolve {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.faac-mz {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--faac-fs-sm);
  line-height: 1.5;
}

.faac-mz thead th {
  padding: 12px 14px;
  border-bottom: 2px solid var(--faac-campo-borda-foco, #213449);
  color: var(--faac-campo-borda-foco, #213449);
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}

.faac-mz td {
  padding: 11px 14px;
  border-bottom: 1px solid var(--faac-campo-borda, #7B8FA5);
  border-bottom-color: rgba(123, 143, 165, .35);
  vertical-align: top;
}

.faac-mz-num {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* Faixa de período: âncora visual a cada bloco de disciplinas. */
.faac-mz .faac-mz-periodo th {
  padding: 16px 14px 8px;
  border-bottom: 1px solid rgba(123, 143, 165, .35);
  background: var(--faac-campo-bg, #fff);
  color: var(--faac-campo-borda-foco, #213449);
  font-family: Newsreader, Georgia, serif;
  font-size: var(--faac-fs-h4);
  font-weight: 400;
  text-align: left;
}

.faac-mz .faac-mz-soma td {
  border-bottom: 2px solid rgba(123, 143, 165, .55);
  font-weight: 600;
  color: var(--faac-campo-borda-foco, #213449);
}

/* Integralização: os quatro números que fecham 3.000 horas. */
.faac-mz-numeros {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: var(--faac-space-4);
  margin: 0;
}

.faac-mz-num-cartao {
  padding: var(--faac-space-5);
  border: 1px solid rgba(123, 143, 165, .45);
  border-radius: 10px;
  background: var(--faac-campo-bg, #fff);
}

.faac-mz-num-cartao dt {
  margin: 0 0 6px;
  font-size: var(--faac-fs-xs);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--faac-campo-borda, #7B8FA5);
}

.faac-mz-num-cartao dd {
  margin: 0;
  font-family: Newsreader, Georgia, serif;
  font-size: var(--faac-fs-h2);
  line-height: 1.1;
  color: var(--faac-campo-borda-foco, #213449);
}

.faac-mz-num-cartao dd span {
  font-family: Archivo, system-ui, sans-serif;
  font-size: var(--faac-fs-sm);
  color: var(--faac-campo-borda, #7B8FA5);
}

@media (max-width: 720px) {
  .faac-mz,
  .faac-mz thead,
  .faac-mz tbody,
  .faac-mz tr,
  .faac-mz td {
    display: block;
    width: 100%;
  }

  /* O cabeçalho sai da tela sem sair da árvore de acessibilidade. */
  .faac-mz thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .faac-mz tbody tr:not(.faac-mz-periodo) {
    margin-bottom: var(--faac-space-3);
    border: 1px solid rgba(123, 143, 165, .4);
    border-radius: 10px;
    overflow: hidden;
  }

  .faac-mz .faac-mz-periodo {
    display: block;
    margin: var(--faac-space-6) 0 var(--faac-space-3);
  }

  .faac-mz .faac-mz-periodo th {
    display: block;
    padding: 0 0 6px;
    border-bottom: 2px solid var(--faac-campo-borda-foco, #213449);
  }

  .faac-mz td {
    display: flex;
    justify-content: space-between;
    gap: var(--faac-space-4);
    padding: 10px 14px;
    border-bottom: 1px solid rgba(123, 143, 165, .25);
    text-align: left;
  }

  .faac-mz tbody tr td:last-child {
    border-bottom: 0;
  }

  .faac-mz td::before {
    content: attr(data-rotulo);
    flex: none;
    font-size: var(--faac-fs-xs);
    font-weight: 600;
    color: var(--faac-campo-borda, #7B8FA5);
  }

  /* A primeira célula é o nome da disciplina: o rótulo ali é ruído. */
  .faac-mz td:first-child {
    display: block;
    font-weight: 600;
  }

  .faac-mz td:first-child::before {
    display: none;
  }

  .faac-mz-num {
    text-align: right;
  }

  /* Sem cabeçalho na tela, "Extensão" seguido de nada é ruído: a célula vazia
     some no celular e continua existindo no DOM para a tabela seguir íntegra. */
  .faac-mz td.faac-mz-vazio {
    display: none;
  }
}


/* ==========================================================================
   2.12 · Moldura das imagens de conteúdo          (02/set/2026)

   Pedido da cliente: "as imagens que ainda não têm" ganharem raio e sombra.
   Medido no staging antes de escrever uma linha — o site tem 47 widgets de
   imagem, e a maioria NÃO pode receber tratamento nenhum:

     já têm raio (widget CSS, 10px)   home 52a47fe · cursos 1f35d5a (439/654/1370)
     já têm raio+sombra (cartão)      loop 3463: cartão 78c9369 + capa 4a1c0c6
     recebem agora (13 fotos)         /estrutura/ (8) · /quem-somos/ (3) ·
                                      /nossa-historia/ (2) — nenhuma tem CSS próprio
     NÃO podem receber                logo do cabeçalho e do rodapé, QR do e-MEC,
                                      logo da CPA, pictogramas de image-box,
                                      ícones de fonte, fundo de container

   Nenhum widget de imagem tem box-shadow hoje: a sombra é aditiva e não
   disputa especificidade com o Elementor. O raio é 10px porque 10px já é o
   raio de fato das imagens do site — não se inventa um quarto valor.
   ⚠ --faac-radius (5px, §2.7) é raio de CONTROLE (botão, campo). Em foto de
   800px ele é invisível; por isso a imagem ganha token próprio.
   ========================================================================== */

:root {
  /* Raio de imagem de conteúdo. Igual ao que a home (52a47fe) e os 3 templates
     de curso (1f35d5a) já emitem, para o site não passar a ter dois raios. */
  --faac-radius-img: 10px;

  /* Sombra em duas camadas: contato curto + ambiente longo. Tingida com o
     Marinho profundo #16232F (ops/paleta.md) em vez de preto puro — sobre
     #FFFFFF e #F7F8FA o preto puro esfumaça em cinza morto. */
  --faac-shadow-img: 0 1px 2px rgba(22, 35, 47, 0.08),
                     0 6px 20px rgba(22, 35, 47, 0.10);
}

/* aplica ------------------------------------------------------------------ */
/* Alcança SÓ o widget `image` do Elementor. `elementor-widget-image-box` e
   `elementor-widget-theme-post-featured-image` são outros tokens de classe e
   não casam aqui — é proposital, os dois estão na lista de exclusão abaixo.
   Especificidade (0,2,1): fica acima do reset do tema e abaixo de qualquer
   widget que tenha raio próprio no editor, que continua vencendo. */

.elementor-widget-image .elementor-widget-container img {
  border-radius: var(--faac-radius-img, 10px);
  box-shadow: var(--faac-shadow-img, 0 6px 20px rgba(22, 35, 47, 0.10));
}

/* exclusão 1 — cabeçalho, rodapé e popup ---------------------------------- */
/* Mesmo padrão do §2.11: aplica no site inteiro e devolve ao normal nos três
   contextos de template. Aqui o que está em jogo é a MARCA: a logo da
   Faculdade Arruda Camara é um lockup com fundo transparente (PNG RGBA).
   Arredondar corta o canto do escudo e a sombra desenha um retângulo cinza em
   volta de um PNG que não tem retângulo — vira defeito de aplicação de marca.
   Alcança o 97ee0c5 (cabeçalho, template 168) e o c2cdd98 (rodapé, 610), que
   estão em TODAS as páginas do site.
   O popup entra por precaução: o 3007 ("FAAEC > FAAC") volta no go-live com
   duas imagens, e ele não pode herdar moldura sem alguém decidir.
   Especificidade (0,3,1), vence a regra acima sem !important. */

.elementor-location-header .elementor-widget-image .elementor-widget-container img,
.elementor-location-footer .elementor-widget-image .elementor-widget-container img,
.elementor-location-popup .elementor-widget-image .elementor-widget-container img {
  border-radius: 0;
  box-shadow: none;
}

/* exclusão 1b — marca em página que NÃO usa o theme builder ---------------- */
/* ⚠ A exclusão acima mira `.elementor-location-*`, que são as LOCATIONS do
   theme builder do Elementor. Uma página `elementor_canvas` monta cabeçalho e
   rodapé DENTRO do próprio conteúdo, então nenhuma dessas classes existe nela —
   e a logo cai na regra de aplicação, ganhando raio de 10px e sombra em duas
   camadas. É exatamente o "retângulo cinza em volta de um PNG que não tem
   retângulo" que o comentário acima descreve como defeito de marca.
   Medido em 09/09/2026 na /vestibular-2027/: `border-radius: 10px` e
   `box-shadow: rgba(22,35,47,.08) 0 1px 2px, rgba(22,35,47,.1) 0 6px 20px` no
   `<img>` da logo do cabeçalho. A /vestibular-2026/ (3660) tem o mesmo defeito e
   ninguém tinha visto, porque ela está em draft desde 25/08.
   A saída NÃO é listar ids: é uma classe de opt-out semântica, que a próxima
   landing page só precisa declarar no widget (`css_classes: faac-marca`).
   (0,3,1), igual às outras exclusões. */

.elementor-widget-image.faac-marca .elementor-widget-container img,
.faac-marca .elementor-widget-image .elementor-widget-container img {
  border-radius: 0;
  box-shadow: none;
}

/* exclusão 2 — selos, QR e logo de terceiro -------------------------------- */
/* 30055ba  QR do e-MEC na home (3030)
   be40288  QR do e-MEC nos 3 templates de curso (439 / 654 / 1370)
   3b5e47d  logo da CPA na /cpa/

   O QR do e-MEC é o caso mais grave: os três quadrados de alinhamento ficam
   NOS CANTOS do código. Um raio de 10px come parte deles e o leitor do celular
   deixa de reconhecer o padrão — o link para a consulta oficial no e-MEC morre,
   e ele é obrigação da PN MEC nº 23/2017, art. 99. Como o be40288 vive nos três
   templates de curso, sem esta linha o defeito sairia nas 116 páginas de curso
   ao mesmo tempo.
   Selo e logo, pelo mesmo motivo da logo da FAAC: marca com fundo transparente
   não leva moldura.
   Casadas na própria div do widget (0,3,1) para vencer a regra de aplicação. */

.elementor-widget-image.elementor-element-30055ba .elementor-widget-container img,
.elementor-widget-image.elementor-element-be40288 .elementor-widget-container img,
.elementor-widget-image.elementor-element-3b5e47d .elementor-widget-container img {
  border-radius: 0;
  box-shadow: none;
}

/* exclusão 3 — pictograma dentro de image-box ------------------------------ */
/* Os 12 image-box da /documentos-academicos/ (7) e da /escola-de-negocios/ (5)
   usam Documento-Icone.png e Calendario-Icone.png: pictogramas 300×300 com
   fundo transparente, que funcionam como ÍCONE de link para PDF, não como
   fotografia. Não são alcançados pela regra de aplicação — a declaração
   abaixo é trava explícita, para o dia em que alguém ampliar o seletor. */

.elementor-widget-image-box .elementor-image-box-img img {
  border-radius: 0;
  box-shadow: none;
}

/* exclusão 4 — capa do cartão de curso ------------------------------------- */
/* O loop 3463 já resolve isso no editor: o cartão (78c9369) tem raio 4px e
   box-shadow 0 4px 44px rgba(0,0,0,.1), e a capa (4a1c0c6) tem raio só nos
   dois cantos de cima, porque ela encosta na borda do cartão. Sombra na
   imagem DENTRO de um cartão que já tem sombra empilha duas sombras e
   descola a capa do cartão. ⚠ Se um dia os 4px do cartão forem alinhados aos
   10px do resto, isso se muda no _elementor_data (fluxo da skill
   faac-aplicar-arvore), nunca por override de CSS aqui. */

.elementor-widget-theme-post-featured-image .elementor-widget-container img {
  box-shadow: none;
}

/* escape para o editor ----------------------------------------------------- */
/* Toda imagem nova com fundo transparente — logo, selo, bandeira, pictograma,
   assinatura de parceiro — recebe esta classe no widget
   (Avançado > CSS Classes: faac-img-crua) e sai da moldura sem precisar de
   entrega de CSS. A classe vem repetida (.x.x) para empatar em (0,3,1) com as
   exclusões — e, empatada, vence por vir depois no arquivo. */

.faac-img-crua.faac-img-crua .elementor-widget-container img,
img.faac-img-crua.faac-img-crua {
  border-radius: 0;
  box-shadow: none;
}

/* impressão ---------------------------------------------------------------- */
/* Sombra em papel só gasta tinta e suja a borda da foto. O raio fica. */

@media print {
  .elementor-widget-image .elementor-widget-container img {
    box-shadow: none;
  }
}

/* ==========================================================================
   §2.13 · Selo "Novo" dos cartões de documento
   --------------------------------------------------------------------------
   O Thiago criou cartões na /documentos-academicos/ com a descrição
   `<span class="badge-novo">Novo</span>` (03/09/2026). A classe não existia
   em lugar nenhum: o "Novo" renderizava como uma palavra solta de 15px.
   Aqui ela vira selo de verdade. Qualquer cartão futuro ganha o selo só
   repetindo o span — sem tocar em CSS. */

.badge-novo {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: #213449;              /* accent do Kit 6 (= primary, marinho) */
  color: #FFFFFF;                   /* 12,6:1 sobre o marinho — AA com folga */
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.4;
}

/* ==========================================================================
   §2.14 · Isca de robô e contador de caracteres      (04/set/2026)
   --------------------------------------------------------------------------
   Nasceu com o Banco de Talentos (/trabalhe-conosco/), mas nenhuma das duas
   regras é dele: as duas valem para qualquer formulário que precise delas,
   como o resto do §2.10. */

/* isca (honeypot) ---------------------------------------------------------- */
/* A Ouvidoria tem a mesma coisa sob `.faac-ouv-isca`, mas o CSS dela está no
   ouvidoria.css, que só é enfileirado naquela página. Esta é a versão do
   sistema, disponível em todo formulário.

   ⚠ O `css_classes` do Elementor vai no INPUT, não no grupo (medido no
   form-base.php:208 do Pro 4.2.0) — esconder só a classe deixaria o RÓTULO na
   tela e um buraco no lugar do campo. Quem some é o grupo, e o gancho para
   pegá-lo é a classe que o Elementor gera do custom_id:
   `elementor-field-group-<custom_id>`. Daí a convenção: campo de isca se chama
   `confirme`. As duas regras estão aqui porque a segunda ainda serve para
   qualquer coisa que o `css_classes` marque.

   ⚠ `display: none` NÃO serve: robô pula campo escondido assim, e a isca
   deixa de pescar. O campo continua renderizado e sai da tela por posição.
   Tirá-lo do teclado e do leitor de tela é trabalho do JS
   (mu-plugins/faac-talentos/assets/talentos.js), não do CSS: `tabindex` e
   `aria-hidden` são atributo, e o Elementor não dá controle para eles. */
.elementor-widget-form .elementor-field-group-confirme,
.elementor-widget-form .faac-isca {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
}

/* contador de caracteres --------------------------------------------------- */
/* Escrito pelo wp-content/mu-plugins/faac-talentos/assets/talentos.js, que
   insere o <span> logo depois do textarea. Alinhado à direita porque é
   metadado do campo, não instrução: quem lê o rótulo não precisa tropeçar
   nele. */
.elementor-widget-form .faac-contador {
  display: block;
  width: 100%;
  margin-top: var(--faac-space-2);
  font-size: var(--faac-fs-xs);
  line-height: 1.4;
  color: var(--faac-campo-placeholder);   /* #5B6B7D — 5,46:1 no branco */
  text-align: right;
  font-variant-numeric: tabular-nums;     /* o número não dança a cada tecla */
}

/* No limite o aviso precisa ser visível sem depender só da cor (WCAG 1.4.1). */
.elementor-widget-form .faac-contador-cheio {
  color: var(--faac-campo-erro);          /* #B3261E */
  font-weight: 600;
}


/* ==========================================================================
   §2.15 · O rosa padrão do tema pai                     (04/set/2026)
   --------------------------------------------------------------------------
   O `assets/css/reset.css` do Hello Elementor traz um acento próprio, `#c36`
   (= #CC3366), que não existe em ops/paleta.md e nunca foi escolhido por
   ninguém aqui. Ele pinta TODO <button> e <input type=button|submit|reset>
   nativo do site:

       [type=button],[type=submit],button                { border:1px solid #c36; color:#c36 }
       [type=button]:focus,…,button:focus,button:hover     { background-color:#c36; color:#fff }

   A regra de estado tem especificidade (0,1,1) e vence a classe única de
   qualquer componente (0,1,0). O sintoma engana de duas formas:

   · o componente quase sempre declara `:hover` com classe (0,2,0), então
     PARECE certo — até alguém clicar. <button> fica em foco depois do clique,
     e aí o rosa aparece e só sai no próximo clique fora dele;
   · quando o componente declara só `background` e não `color`, o `color:#fff`
     do pai passa assim mesmo e o rótulo desaparece no fundo claro. Foi o que
     aconteceu nas pílulas de filtro do catálogo, medido em 04/09/2026.

   O que muda aqui é SÓ A COR: os mesmos seletores, na mesma especificidade,
   com o marinho institucional no lugar do rosa. Nenhum estado novo, nenhum
   seletor novo — onde havia rosa passa a haver marinho, e o que hoje está
   certo continua igual.

   ⚠ Cancelar o preenchimento no `:focus` seria a correção estrutural, e está
   deliberadamente FORA daqui: um `button:focus { background: transparent }`
   global tem (0,1,1) e atropelaria o fundo próprio de todo botão que herda
   dessas regras — a bolinha do carrossel do login, por exemplo, sumiria. Cada
   componente cancela o estado com a especificidade dele; ver a
   §imunidade em faac-catalogo/assets/catalogo.css e em depoimentos.css §2.

   O mesmo `#c36` já tinha sido tirado do skip-link (§2.3, 12/08) e dos links
   de corpo de texto (§2.11, 18/08). Os botões nativos eram o último lugar em
   que ele sobrevivia.
   ========================================================================== */

/* ⚠ SÓ os estados. A regra de REPOUSO do pai (`border:1px solid #c36;
   color:#c36`) fica como está, de propósito: reescrevê-la aqui atinge (0,1,0)
   pelo `[type="button"]` e empata com o `.classe { border: … }` de qualquer
   componente — e, carregando depois, vence. Medido em 04/09/2026: pintou a
   borda das setas do carrossel de depoimentos de marinho sobre a faixa
   marinho (1,26:1, reprovado pelo verificador) e a seta com ela. O repouso
   rosa só aparece em <button> sem estilo NENHUM, e não existe nenhum assim no
   frontend hoje — o custo de corrigi-lo é maior que o defeito. */

[type="button"]:hover,
[type="button"]:focus,
[type="reset"]:hover,
[type="reset"]:focus,
[type="submit"]:hover,
[type="submit"]:focus,
button:hover,
button:focus {
  background-color: #213449;
  color: #FFFFFF;
}

/* ⚠ CONVENÇÃO que isto cria — vale para todo componente novo com <button> cru:

   os seletores acima são os MESMOS do pai, e o pai alcança (0,2,0) por causa
   do `[type="button"]`. Um <button type="button"> é o caso comum (toda pílula,
   seta e alternador do projeto), então uma regra de componente escrita como
   `.classe:focus` EMPATA em (0,2,0) — e o desempate é a ordem das folhas, que
   põe este arquivo depois dos CSS de mu-plugin. Por isso o componente declara
   estado com a CLASSE REPETIDA — `.classe.classe:focus`, (0,3,0) — que é o
   mesmo recurso já usado na regra 18 do CLAUDE.md para vencer o `--flex-grow`
   do Elementor sem !important. Sem isso o marinho daqui atropela o estado
   próprio do componente, e num painel escuro ele some.
   Aplicado em: faac-catalogo (pílulas, "Limpar filtros", "Ver mais"),
   faac-login (pontos e pausa do carrossel), faac-depoimentos (setas),
   faac-ouvidoria ("Copiar código"). */

/* ==========================================================================
   §2.17 — MATRIZ CURRICULAR: tamanho inteiro, e o culpado era o tema pai
   ==========================================================================

   As linhas de disciplina rendiam 16,2px — fracionário, o que a régua de
   03/09 proíbe (px por breakpoint, 1440/768/390). A causa não estava no
   widget: ele declara 18/17px certinho. Está no tema pai, que declara

       table { font-size: .9em }

   e 18 × 0,9 = 16,2. ⚠ Foi preciso PERGUNTAR ao navegador qual regra
   vencia (CSS.getMatchedStylesForNode por CDP) — deduzir teria apontado
   para o repeater do DCE, que é onde o número 18 está escrito e onde
   ninguém encontraria o defeito.

   Os valores batem com o cabeçalho da coluna "Disciplina" (16/15/15), que
   é um widget heading separado: a tabela e o seu cabeçalho precisam ler
   como uma coisa só.

   `.dce-acf-repeater-table` é (0,1,0) e vence `table` (0,0,1) sem
   !important. É a única tabela do site — medido em /, /quem-somos/,
   /documentos-academicos/, /cursos/ e /estrutura/: zero <table>; só as
   páginas de curso têm uma. */

.dce-acf-repeater-table {
  font-size: 16px;
}

@media (max-width: 1024px) {
  .dce-acf-repeater-table {
    font-size: 15px;
  }
}


/* ==========================================================================
   §2.18 · Prosa do blog                                  (11/set/2026)
   --------------------------------------------------------------------------
   Gutenberg dentro do widget `theme-post-content` do template de post. Antes
   do blog não existia UMA regra de prosa no site: corpo e títulos vinham do
   fallback de elemento (l.80-121) e do Kit 6, e o resto — espaço entre
   parágrafos, listas, citação, figura, tabela, embed, botão — era o reset do
   tema pai. Medido em 11/09/2026 na recon: `table { font-size: .9em }` do
   pai (o mesmo culpado da §2.17), zero raio/sombra em `figure.wp-block-image`
   (a §2.12 só alcança o widget `image`), e o `a.wp-block-button__link` azul
   sublinhado pela §2.11.

   Escopo: `.elementor-widget-theme-post-content .elementor-widget-container`
   e `.faac-conteudo` (classe que o widget do template carrega — é a mesma da
   §2.11). Especificidade (0,2,1): acima do reset do pai e de `body`, abaixo
   de qualquer widget que declare o mesmo no editor.

   Tamanhos em px por breakpoint (régua de 03/09): corpo 18/17/17 · h2
   32/28/25 · h3 24/22/21 · h4 20/19/18 · sm 16/15/15 · citação 22/20/19.
   Prosa tem UM tamanho: sem lead, sem drop-cap, sem parágrafo "de abertura".

   ⚠ Newsreader 400 ROMANO na citação: a serif nunca passa de 400 neste site
   e o itálico não faz parte da marca — a citação se distingue pela família,
   pelo tamanho (o token lead, só aqui, porque citação não é prosa) e pela
   barra de aço à esquerda.

   ⚠ `.alignwide`/`.alignfull` NEUTRALIZADOS: o container do template é
   `boxed` de 680px (≈68ch em Archivo 18px) e o Gutenberg sugere "largura
   ampla" em imagem e embed; sem esta trava, a imagem sairia da medida de
   leitura e, em `alignfull`, da coluna. `> * { max-width: 100% }` fecha a
   porta para qualquer bloco.

   O que NÃO está aqui: pílulas, byline, caixa "Escrito por" — é CSS de
   template, só nas rotas do blog, em faac-blog/assets/blog.css.
   ========================================================================== */

.elementor-widget-theme-post-content .elementor-widget-container,
.faac-conteudo {
  font-family: Archivo, sans-serif;
  font-size: 18px;
  line-height: 1.65;
  color: #2B3440;
}

.elementor-widget-theme-post-content .elementor-widget-container > *,
.faac-conteudo > * {
  max-width: 100%;
}

/* alignwide/alignfull: o bloco fica na medida de leitura, como os outros */
.elementor-widget-theme-post-content .elementor-widget-container .alignwide,
.elementor-widget-theme-post-content .elementor-widget-container .alignfull,
.faac-conteudo .alignwide,
.faac-conteudo .alignfull {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.elementor-widget-theme-post-content .elementor-widget-container p,
.faac-conteudo p {
  margin: 0 0 1.25em;
}

/* títulos dentro da prosa --------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container h2,
.elementor-widget-theme-post-content .elementor-widget-container h3,
.elementor-widget-theme-post-content .elementor-widget-container h4,
.faac-conteudo h2,
.faac-conteudo h3,
.faac-conteudo h4 {
  font-family: Newsreader, serif;
  font-weight: 400;
  color: #213449;
  margin: 2em 0 .75em;
}

.elementor-widget-theme-post-content .elementor-widget-container h2,
.faac-conteudo h2 {
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: -.01em;
}

.elementor-widget-theme-post-content .elementor-widget-container h3,
.faac-conteudo h3 {
  font-size: 24px;
  line-height: 1.25;
}

/* h4 é Archivo 600: abaixo de 24px a serif deixa de ler como título */
.elementor-widget-theme-post-content .elementor-widget-container h4,
.faac-conteudo h4 {
  font-family: Archivo, sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.35;
}

/* título colado em título: o de baixo não abre 2em de novo */
.elementor-widget-theme-post-content .elementor-widget-container h2 + h3,
.elementor-widget-theme-post-content .elementor-widget-container h3 + h4,
.faac-conteudo h2 + h3,
.faac-conteudo h3 + h4 {
  margin-top: 1em;
}

/* o primeiro bloco do post não abre espaço acima de si */
.elementor-widget-theme-post-content .elementor-widget-container > :first-child,
.faac-conteudo > :first-child {
  margin-top: 0;
}

/* listas ------------------------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container ul,
.elementor-widget-theme-post-content .elementor-widget-container ol,
.faac-conteudo ul,
.faac-conteudo ol {
  margin: 0 0 1.25em;
  padding-left: 1.4em;
}

.elementor-widget-theme-post-content .elementor-widget-container li,
.faac-conteudo li {
  margin: 0 0 .4em;
}

.elementor-widget-theme-post-content .elementor-widget-container li > ul,
.elementor-widget-theme-post-content .elementor-widget-container li > ol,
.faac-conteudo li > ul,
.faac-conteudo li > ol {
  margin: .4em 0 0;
}

/* citação ------------------------------------------------------------------ */

.elementor-widget-theme-post-content .elementor-widget-container blockquote,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-quote,
.faac-conteudo blockquote,
.faac-conteudo .wp-block-quote {
  margin: 2em 0;
  padding: .25em 0 .25em 1.25em;
  border-left: 3px solid #93A8BC;
  font-family: Newsreader, serif;
  font-style: normal;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.5;
  color: #213449;
}

.elementor-widget-theme-post-content .elementor-widget-container blockquote p,
.faac-conteudo blockquote p {
  margin-bottom: .75em;
}

.elementor-widget-theme-post-content .elementor-widget-container blockquote p:last-of-type,
.faac-conteudo blockquote p:last-of-type {
  margin-bottom: 0;
}

.elementor-widget-theme-post-content .elementor-widget-container blockquote cite,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-quote cite,
.faac-conteudo blockquote cite,
.faac-conteudo .wp-block-quote cite {
  display: block;
  margin-top: .5em;
  font-family: Archivo, sans-serif;
  font-style: normal;
  font-size: 16px;
  line-height: 1.6;
  color: #6B7280;
}

/* figura e imagem ---------------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container figure,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-image,
.faac-conteudo figure,
.faac-conteudo .wp-block-image {
  margin: 2em 0;
}

.elementor-widget-theme-post-content .elementor-widget-container figcaption,
.faac-conteudo figcaption {
  margin-top: .6em;
  font-size: 16px;
  line-height: 1.6;
  color: #6B7280;
  text-align: left;
}

/* a mesma moldura da §2.12 — raio e sombra por token, para o post não ter
   uma foto diferente das 13 fotos de /estrutura/ e /quem-somos/ */
.elementor-widget-theme-post-content .elementor-widget-container img,
.faac-conteudo img {
  max-width: 100%;
  height: auto;
  border-radius: var(--faac-radius-img, 10px);
  box-shadow: var(--faac-shadow-img, 0 6px 20px rgba(22, 35, 47, 0.10));
}

/* imagem "crua" (logo, selo, gráfico com fundo transparente) sai da moldura
   pela mesma classe da §2.12 */
.elementor-widget-theme-post-content .elementor-widget-container img.faac-img-crua,
.elementor-widget-theme-post-content .elementor-widget-container .faac-img-crua img,
.faac-conteudo img.faac-img-crua,
.faac-conteudo .faac-img-crua img {
  border-radius: 0;
  box-shadow: none;
}

/* embed (YouTube etc.) ------------------------------------------------------ */
/* O core resolve a proporção com um hack de `padding-top` no wrapper;
   `aspect-ratio` no próprio iframe substitui, e o `::before` é zerado para
   não somar altura. */
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed,
.faac-conteudo .wp-block-embed {
  margin: 2em 0;
}

.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed__wrapper,
.faac-conteudo .wp-block-embed__wrapper {
  position: relative;
}

.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed iframe,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed video,
.faac-conteudo .wp-block-embed iframe,
.faac-conteudo .wp-block-embed video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: var(--faac-radius-img, 10px);
}

/* Um <iframe> (YouTube, Vimeo) é focável pelo Tab e fica FORA da lista do anel
   da §2.16 (a, button, input, select, textarea, summary, [tabindex]): sem isto o
   foco no vídeo era invisível — o foco-verifica acusou em 11/09/2026. Mesmo
   anel, mesma pseudo-classe repetida. */
.elementor-widget-theme-post-content .elementor-widget-container iframe:focus-visible:focus-visible,
.faac-conteudo iframe:focus-visible:focus-visible {
  outline: 3px solid var(--faac-focus-cor);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--faac-focus-halo);
}

.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper::before,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper::before,
.faac-conteudo .wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper::before,
.faac-conteudo .wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper::before {
  padding-top: 0;
  content: none;
}

.elementor-widget-theme-post-content .elementor-widget-container .wp-block-embed.wp-has-aspect-ratio iframe,
.faac-conteudo .wp-block-embed.wp-has-aspect-ratio iframe {
  position: static;
}

/* tabela ------------------------------------------------------------------- */
/* px inteiro no lugar do `.9em` do tema pai (§2.17). `overflow-x: auto` no
   wrapper do bloco: tabela larga rola, não estoura a coluna de 680px. */
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-table,
.faac-conteudo .wp-block-table {
  margin: 2em 0;
  overflow-x: auto;
}

.elementor-widget-theme-post-content .elementor-widget-container table,
.faac-conteudo table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.5;
  margin: 0;
}

.elementor-widget-theme-post-content .elementor-widget-container th,
.elementor-widget-theme-post-content .elementor-widget-container td,
.faac-conteudo th,
.faac-conteudo td {
  padding: .6em .75em;
  border: 0;
  border-bottom: 1px solid #2134491F;
  text-align: left;
  vertical-align: top;
}

.elementor-widget-theme-post-content .elementor-widget-container th,
.faac-conteudo th {
  font-weight: 600;
  color: #213449;
}

/* separador ---------------------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container hr,
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-separator,
.faac-conteudo hr,
.faac-conteudo .wp-block-separator {
  border: 0;
  border-top: 1px solid #2134491F;
  margin: 3em auto;
  max-width: 120px;
  height: 0;
  background: none;
  opacity: 1;
}

/* código ------------------------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container pre,
.elementor-widget-theme-post-content .elementor-widget-container code,
.faac-conteudo pre,
.faac-conteudo code {
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 15px;
}

.elementor-widget-theme-post-content .elementor-widget-container pre,
.faac-conteudo pre {
  margin: 0 0 1.25em;
  padding: 1em 1.25em;
  background: #F7F8FA;
  border-radius: var(--faac-radius, 5px);
  overflow-x: auto;
  line-height: 1.5;
}

.elementor-widget-theme-post-content .elementor-widget-container code,
.faac-conteudo code {
  padding: .1em .35em;
  background: #F7F8FA;
  border-radius: 3px;
}

.elementor-widget-theme-post-content .elementor-widget-container pre code,
.faac-conteudo pre code {
  padding: 0;
  background: none;
}

/* ênfase e alinhamento ----------------------------------------------------- */

.elementor-widget-theme-post-content .elementor-widget-container strong,
.elementor-widget-theme-post-content .elementor-widget-container b,
.faac-conteudo strong,
.faac-conteudo b {
  font-weight: 600;
}

.elementor-widget-theme-post-content .elementor-widget-container .has-text-align-center,
.faac-conteudo .has-text-align-center {
  text-align: center;
}

/* botão do Gutenberg -------------------------------------------------------- */
/* Primário do sistema: marinho, texto branco, raio de controle (5px), Archivo
   600 16px — o mesmo botão da 404 (§N5). A §2.11 já devolve `color: inherit`
   e tira o sublinhado; aqui entra o botão em si. */
.elementor-widget-theme-post-content .elementor-widget-container .wp-block-buttons,
.faac-conteudo .wp-block-buttons {
  margin: 1.5em 0;
}

.elementor-widget-theme-post-content .elementor-widget-container .wp-block-button__link,
.faac-conteudo .wp-block-button__link {
  display: inline-block;
  font-family: Archivo, sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.2;
  padding: 14px 30px;
  border: 0;
  border-radius: var(--faac-radius, 5px);
  background: #213449;
  color: #FFFFFF;
  text-decoration: none;
  transition: background-color var(--faac-dur, 180ms) var(--faac-ease, ease);
}

/* ⚠ CONVENÇÃO §2.15: estado com a classe REPETIDA, declarando fundo E cor,
   `:focus` antes de `:hover`. O `[type=button]:focus` do tema pai não bate em
   <a>, mas o Kit 6 tem `a:focus` e a §2.11 pinta `a` dentro deste widget —
   `.x.x` em (0,3,1) fecha a questão sem depender da ordem das folhas. */
.elementor-widget-theme-post-content .elementor-widget-container a.wp-block-button__link.wp-block-button__link:focus,
.faac-conteudo a.wp-block-button__link.wp-block-button__link:focus {
  background: #16232F;
  color: #FFFFFF;
}

.elementor-widget-theme-post-content .elementor-widget-container a.wp-block-button__link.wp-block-button__link:hover,
.faac-conteudo a.wp-block-button__link.wp-block-button__link:hover {
  background: #16232F;
  color: #FFFFFF;
}

/* contorno (estilo "outline" do Gutenberg): marinho vazado, preenche no hover */
.elementor-widget-theme-post-content .elementor-widget-container .is-style-outline .wp-block-button__link,
.faac-conteudo .is-style-outline .wp-block-button__link {
  background: transparent;
  color: #213449;
  border: 1px solid #213449;
  padding: 13px 29px;
}

.elementor-widget-theme-post-content .elementor-widget-container .is-style-outline a.wp-block-button__link.wp-block-button__link:focus,
.elementor-widget-theme-post-content .elementor-widget-container .is-style-outline a.wp-block-button__link.wp-block-button__link:hover,
.faac-conteudo .is-style-outline a.wp-block-button__link.wp-block-button__link:focus,
.faac-conteudo .is-style-outline a.wp-block-button__link.wp-block-button__link:hover {
  background: #213449;
  color: #FFFFFF;
}

/* tablet ------------------------------------------------------------------- */

@media (max-width: 1024px) {
  .elementor-widget-theme-post-content .elementor-widget-container,
  .faac-conteudo { font-size: 17px; }

  .elementor-widget-theme-post-content .elementor-widget-container h2,
  .faac-conteudo h2 { font-size: 28px; }

  .elementor-widget-theme-post-content .elementor-widget-container h3,
  .faac-conteudo h3 { font-size: 22px; }

  .elementor-widget-theme-post-content .elementor-widget-container h4,
  .faac-conteudo h4 { font-size: 19px; }

  .elementor-widget-theme-post-content .elementor-widget-container blockquote,
  .elementor-widget-theme-post-content .elementor-widget-container .wp-block-quote,
  .faac-conteudo blockquote,
  .faac-conteudo .wp-block-quote { font-size: 20px; }

  .elementor-widget-theme-post-content .elementor-widget-container figcaption,
  .elementor-widget-theme-post-content .elementor-widget-container blockquote cite,
  .elementor-widget-theme-post-content .elementor-widget-container table,
  .faac-conteudo figcaption,
  .faac-conteudo blockquote cite,
  .faac-conteudo table { font-size: 15px; }
}

/* mobile ------------------------------------------------------------------- */

@media (max-width: 767px) {
  .elementor-widget-theme-post-content .elementor-widget-container h2,
  .faac-conteudo h2 { font-size: 25px; }

  .elementor-widget-theme-post-content .elementor-widget-container h3,
  .faac-conteudo h3 { font-size: 21px; }

  .elementor-widget-theme-post-content .elementor-widget-container h4,
  .faac-conteudo h4 { font-size: 18px; }

  .elementor-widget-theme-post-content .elementor-widget-container blockquote,
  .elementor-widget-theme-post-content .elementor-widget-container .wp-block-quote,
  .faac-conteudo blockquote,
  .faac-conteudo .wp-block-quote { font-size: 19px; padding-left: 1em; }

  .elementor-widget-theme-post-content .elementor-widget-container .wp-block-button__link,
  .faac-conteudo .wp-block-button__link { width: 100%; text-align: center; }
}

/* impressão: sombra em papel só gasta tinta (mesma regra da §2.12) */
@media print {
  .elementor-widget-theme-post-content .elementor-widget-container img,
  .faac-conteudo img { box-shadow: none; }
}
