/* ============================================================
   AC Solução — Base compartilhada (todas as páginas)
   Derivada de sistema-solucao-design-system.html
   ============================================================ */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; color-scheme:dark; overflow-x:clip}
body{
  margin:0; background:var(--bg); color:var(--text-primary);
  font-family:var(--font-primary); font-size:var(--fs-body);
  line-height:var(--lh-body); letter-spacing:var(--ls-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
h1,h2,h3,h4,h5,h6{margin:0; font-weight:var(--fw-semibold); text-wrap:balance; line-height:var(--lh-heading); letter-spacing:var(--ls-heading)}
p,figure,blockquote{margin:0}
a{color:var(--text-brand); text-decoration:none}
img,video,svg{display:block; max-width:100%}
button{font:inherit; color:inherit; background:none; border:0; padding:0; margin:0; cursor:pointer; text-align:inherit}
/* :where() zera a especificidade: margens definidas pelos componentes (.stats, .paths…) prevalecem */
:where(ul[role="list"],ol[role="list"]){list-style:none; margin:0; padding:0}
address{font-style:normal}
:focus-visible{outline:2px solid var(--focus-ring); outline-offset:3px; border-radius:4px}
::selection{background:rgba(29,80,247,.35); color:inherit}

.sr-only{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.icon{width:20px; height:20px; flex:none}

.container{width:100%; max-width:var(--container-max); margin-inline:auto; padding-inline:var(--gutter)}

.skip-link{position:fixed; top:var(--sp-3); left:var(--sp-3); z-index:calc(var(--z-toast) + 1);
  padding:10px 18px; border-radius:var(--radius-pill); background:var(--brand); color:#fff;
  font-size:var(--fs-label); font-weight:var(--fw-semibold); transform:translateY(-160%);
  transition:transform var(--dur-fast) var(--ease-standard)}
.skip-link:focus{transform:none}

.eyebrow{display:inline-flex; align-items:center; gap:var(--sp-3); font-size:var(--fs-micro); font-weight:var(--fw-medium);
  letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--text-brand)}
.eyebrow::before{content:""; width:24px; height:1px; background:currentColor; opacity:.7}

/* ---------- Botões (Design System) ---------- */
.btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  height:48px; padding:0 26px; border-radius:var(--radius-button); border:var(--bw-hairline) solid transparent;
  background:var(--brand); color:var(--brand-contrast); font-size:var(--fs-label); font-weight:var(--fw-semibold);
  cursor:pointer; white-space:nowrap; text-decoration:none;
  transition:transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-standard) var(--ease-standard),
             background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard),
             color var(--dur-fast) var(--ease-standard);
  box-shadow:var(--glow-soft)}
.btn .icon{width:18px; height:18px; transition:transform var(--dur-standard) var(--ease-standard)}
.btn:hover{background:var(--brand-hover); box-shadow:var(--glow-brand); transform:translateY(-1px)}
.btn:hover .icon:last-child{transform:translateX(3px)}
.btn:active{background:var(--brand-press); transform:translateY(0) scale(.985)}
.btn-lg{height:56px; padding:0 32px; font-size:var(--fs-body)}

@media (max-width:480px){
  .btn{height:46px}
  .btn-lg{height:52px; padding:0 24px; font-size:var(--fs-label); white-space:normal; text-align:center}
}

/* Selo de rota ainda não publicada */
.pending-tag{display:inline-flex; align-items:center; height:18px; padding:0 7px; margin-left:var(--sp-2);
  border-radius:var(--radius-pill); border:var(--bw-hairline) solid var(--border-subtle);
  font-size:10px; font-weight:var(--fw-medium); letter-spacing:var(--ls-label); line-height:1;
  color:var(--text-muted); vertical-align:middle; white-space:nowrap}

/* ---------- Toast (Design System) ---------- */
.ac-toast{position:fixed; right:var(--gutter); bottom:var(--sp-6); z-index:var(--z-toast);
  max-width:min(420px,calc(100vw - 2*var(--gutter))); padding:14px 18px; border-radius:var(--radius-md);
  background:var(--surface-glass-strong); border:var(--bw-hairline) solid var(--border-glass);
  -webkit-backdrop-filter:blur(var(--glass-blur)); backdrop-filter:blur(var(--glass-blur));
  color:var(--text-primary); font-size:var(--fs-body-sm); box-shadow:var(--shadow-3);
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity var(--dur-standard) var(--ease-standard), transform var(--dur-standard) var(--ease-standard)}
.ac-toast.is-visible{opacity:1; transform:none}

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

/* ============================================================
   Textos corridos justificados em todas as páginas (19/10, pedido da responsável)
   - Justificado SEM hifenização: nenhuma palavra é cortada entre linhas.
   - Ficam de fora: títulos e frases de destaque, textos dentro de caixas/cards
     (comparação A1/A3, cards, passos, painéis escuros), avisos pequenos.
   - "body main" dá prioridade sobre os estilos de cada página sem precisar mexer neles.
   ============================================================ */
body main :is(
  /* Home */
  .editorial__text, .editorial__text p, .closing__lead,
  /* Sobre Nós */
  .br__text, .hs__p, .pv__text, .sn-p1__right,
  /* Contato */
  .ct-sub,
  /* Manuais */
  .eb-hero__right, .eb-p,
  /* Política de Privacidade */
  .pp-intro p, .pp-sec__body > p:not(.pp-callout):not(.pp-note), .pp-list li, .pp-row p,
  /* e-CPF · e-CNPJ · Tipos de Certificado (abertura, textos editoriais, respostas das perguntas) */
  .ec-open__right, .ec-who__text, .ec-why__text, .ec-uses .ec-lead, .tc-text,
  .ec-q__inner p,
  /* Sou Contador · Sou AR */
  .sc-open__sub, .sc-text, .ar-scene__text,
  /* Comprar Certificado (subtítulos centralizados e textos em caixas ficam fora) */
  .cc-open__sub, .cc-easy__sub, .cc-why__sub, .cc-final__sub,
  /* Documentos (textos em cards e painéis ficam fora) */
  .dc-open__sub, .dc-intro__text .dc-text, .dc-group__sticky .dc-text
){
  text-align:justify; text-justify:inter-word;
  -webkit-hyphens:none; hyphens:none; word-break:normal; overflow-wrap:normal;
}

/* ============================================================
   ESPAÇAMENTO ENTRE SEÇÕES — todas as páginas (19/10, pedido da responsável: "diminuir os espaçamentos")
   Cada seção passa a ter ~55% do espaço que tinha em cima/embaixo (medido em 1440px), proporcional à largura da tela
   e com mínimo de 32px (celular). Aberturas e cenas fixas não mudam. Espaços que já eram ≤ 24px ficam como estão.
   Gerado a partir das medidas; para voltar ao anterior, basta apagar este bloco.
   ============================================================ */
body:not([class]) main #o-que-muda{padding-top:clamp(32px,2.71vw,39px); padding-bottom:clamp(32px,2.71vw,39px)}
body:not([class]) main #prova-de-dominio{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(32px,2.71vw,39px)}
body:not([class]) main #caminhos{padding-top:clamp(32px,2.36vw,34px); padding-bottom:clamp(32px,2.71vw,39px)}
body:not([class]) main #jeito-solucao{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(19px,1.32vw,19px)}
body:not([class]) main #conexao{padding-top:clamp(15px,1.04vw,15px); padding-bottom:clamp(24px,1.67vw,24px)}
body:not([class]) main #fechamento{padding-top:clamp(31px,2.15vw,31px); padding-bottom:clamp(32px,5.49vw,79px)}
.page-contato main #fale-conosco{padding-top:clamp(32px,3.54vw,51px); padding-bottom:clamp(19px,1.32vw,19px)}
.page-contato main #canais{padding-top:clamp(28px,1.94vw,28px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-contato main .ct-closing{padding-top:clamp(19px,1.32vw,19px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-sobre main #proposito{padding-bottom:clamp(26px,1.81vw,26px)}
.page-sobre main #instituicao{padding-top:clamp(32px,4.93vw,71px); padding-bottom:clamp(32px,4.93vw,71px)}
.page-compra main #facilidades{padding-top:clamp(15px,1.04vw,15px)}
.page-compra main #escolha{padding-top:clamp(19px,1.32vw,19px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-compra main #perguntas{padding-top:clamp(32px,4.93vw,71px); padding-bottom:clamp(31px,2.15vw,31px)}
.page-compra main #chamada-final{padding-top:clamp(32px,4.38vw,63px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-docs main #visao-geral{padding-top:clamp(32px,2.71vw,39px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-docs main #pessoa-fisica{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(32px,3.26vw,47px)}
.page-docs main #pessoa-juridica{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(32px,3.26vw,47px)}
.page-docs main #casos-especificos{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(32px,3.26vw,47px)}
.page-docs main #orientacao{padding-top:clamp(32px,2.71vw,39px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-docs main #duvidas{padding-top:clamp(32px,2.71vw,39px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-ecpf main #beneficios{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-ecpf main #para-quem{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(15px,1.04vw,15px)}
.page-ecpf main #por-que-a-solucao{padding-top:clamp(32px,4.93vw,71px); padding-bottom:clamp(32px,4.93vw,71px)}
.page-ecpf main #perguntas{padding-top:clamp(32px,3.82vw,55px); padding-bottom:clamp(22px,1.53vw,22px)}
.page-ecpf main #fechamento{padding-top:clamp(15px,1.04vw,15px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-ecnpj main #beneficios{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-ecnpj main #para-quem{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(15px,1.04vw,15px)}
.page-ecnpj main #por-que-a-solucao{padding-top:clamp(32px,4.93vw,71px); padding-bottom:clamp(32px,4.93vw,71px)}
.page-ecnpj main #perguntas{padding-top:clamp(32px,3.82vw,55px); padding-bottom:clamp(22px,1.53vw,22px)}
.page-ecnpj main #fechamento{padding-top:clamp(15px,1.04vw,15px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-ebooks main #crescimento{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(32px,3.82vw,55px)}
.page-ebooks main .eb-close{padding-top:clamp(15px,1.04vw,15px); padding-bottom:clamp(32px,2.71vw,39px)}
.page-politica main #documento{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(32px,5.49vw,79px)}
.page-ar main #cenario{padding-top:clamp(32px,4.38vw,63px); padding-bottom:clamp(31px,2.15vw,31px)}
.page-ar main #pilares{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-ar main #frase{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(15px,1.04vw,15px)}
.page-ar main #capacidade{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-ar main #relacao{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(32px,3.26vw,47px)}
.page-ar main #perguntas{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-ar main #fale-com-especialista{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-contador main #contexto{padding-top:clamp(32px,4.38vw,63px); padding-bottom:clamp(31px,2.15vw,31px)}
.page-contador main #como-funciona{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-contador main #frase{padding-top:clamp(15px,1.04vw,15px); padding-bottom:clamp(15px,1.04vw,15px)}
.page-contador main #operacao{padding-top:clamp(32px,3.82vw,55px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-contador main #rede{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-contador main #perguntas{padding-top:clamp(32px,3.26vw,47px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-contador main #fale-com-especialista{padding-top:clamp(24px,1.67vw,24px); padding-bottom:clamp(32px,4.38vw,63px)}
.page-tipos main #guia{padding-top:clamp(26px,1.81vw,26px); padding-bottom:clamp(19px,1.32vw,19px)}
.page-tipos main #comparacao{padding-top:clamp(31px,2.15vw,31px)}
.page-tipos main #a1{padding-top:clamp(26px,1.81vw,26px); padding-bottom:clamp(24px,1.67vw,24px)}
.page-tipos main #a3{padding-bottom:clamp(24px,1.67vw,24px)}
.page-tipos main #escolha{padding-bottom:clamp(19px,1.32vw,19px)}
.page-tipos main #perguntas{padding-top:clamp(26px,1.81vw,26px); padding-bottom:clamp(32px,2.71vw,39px)}
/* ajustes finos (19/10): espaços dentro de seções apontados nos prints */
.page-ebooks main #crescimento{padding-bottom:clamp(20px,1.67vw,24px)}
.page-compra main #perguntas{padding-top:clamp(32px,2.78vw,40px)}

/* 19/10 (v1.0, iPhone): vídeos de fundo nunca mostram o botão de play do sistema (o vídeo começa sozinho
   ou no primeiro toque na tela — site-core.js) e não capturam toques */
video[autoplay]{pointer-events:none}
video[autoplay]::-webkit-media-controls,
video[autoplay]::-webkit-media-controls-start-playback-button,
video[autoplay]::-webkit-media-controls-overlay-play-button{display:none !important; -webkit-appearance:none; opacity:0}

/* 19/10 — opção manual de animações (site-core.js): só para quem tem "reduzir movimento" ligado no aparelho.
   Selo discreto no canto inferior esquerdo, no visual de vidro escuro do site; não cobre o cabeçalho nem o menu. */
.ac-motion{position:fixed; left:var(--gutter); bottom:var(--sp-6); z-index:calc(var(--z-header) - 1);
  display:flex; align-items:center; gap:10px; max-width:calc(100vw - 2 * var(--gutter)); padding:8px 8px 8px 16px;
  border-radius:999px; background:rgba(8,23,56,.86); color:#FFFFFF; border:1px solid rgba(192,218,255,.22);
  box-shadow:0 14px 36px -18px rgba(3,6,14,.7); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  font:var(--fw-medium) .8125rem/1.3 var(--font-primary)}
.ac-motion__txt{color:rgba(232,240,255,.88)}
.ac-motion__btn{flex:none; border:0; border-radius:999px; padding:8px 14px; background:#1C4FF7; color:#FFFFFF;
  font:inherit; font-weight:var(--fw-semibold); cursor:pointer}
.ac-motion.is-on .ac-motion__btn{background:rgba(255,255,255,.12)}
.ac-motion__btn:hover{background:#1740C4}
.ac-motion.is-on .ac-motion__btn:hover{background:rgba(255,255,255,.2)}
.ac-motion__x{flex:none; width:28px; height:28px; border:0; border-radius:50%; background:transparent; color:rgba(232,240,255,.7);
  font-size:1.125rem; line-height:1; cursor:pointer}
.ac-motion__x:hover{background:rgba(255,255,255,.1); color:#FFFFFF}
.ac-motion__btn:focus-visible,.ac-motion__x:focus-visible{outline:2px solid #8DB6FF; outline-offset:2px}
body:has(.site-menu.is-open) .ac-motion,html.menu-open .ac-motion{display:none}
@media (max-width:560px){
  .ac-motion{bottom:var(--sp-4); padding:6px 6px 6px 12px; font-size:.75rem; gap:6px}
  .ac-motion__btn{padding:7px 11px}
}
