/* ============================================================
   Spa do Automovel - base

   Normalizacao herdada do Hello, box-sizing global e o utilitario de leitor de
   tela. Carrega antes dos tokens e das folhas de pagina.

   SEM @layer, de proposito. O @layer saiu do plano em 13/09/2026: ver a secao
   "DECISAO: o @layer saiu do plano" no CLAUDE.md. Em resumo, declaracao fora de
   camada vence declaracao em camada, ignorando especificidade, e as folhas do
   nucleo e dos plugins nao sao nossas para envolver. Por um passo 2 anterior o
   tema entrou em camadas e os h2 das 15 paginas perderam o peso da fonte para o
   reset.css do Hello.

   Enquanto o reset.css seguir enfileirado, ate o passo 6 da Etapa 5, as regras
   de normalizacao daqui sao redundantes com ele. Estao aqui para o dia em que
   ele sair, e nao mudam nada hoje.
   ============================================================ */

/* ---------- Utilitario de leitor de tela ----------
   Esconde o elemento ate ele receber foco. E o que mantem o skip link do
   header.php invisivel: sem isto ele vira um link visivel no topo das 15
   paginas.

   A classe existe hoje em TRES folhas: aqui, no theme.css do Hello e no
   wp-block-library do nucleo, e e a do nucleo que a segura. Trazer para ca nao
   e urgencia, e independencia: o wp-block-library e candidato natural a dequeue
   numa otimizacao futura.

   Valores copiados do wp-block-library, que e quem esta valendo hoje.

   Como validar, ja que screenshot nao pega o estado :focus: rodar
   bin/valida-skiplink.sh, que monta uma pagina de teste com as mesmas folhas da
   home, foca o link e reporta o estilo computado. A referencia e
   1x1 com clip sem foco, 180x42 sem clip com foco. */
.screen-reader-text {
  word-wrap: normal !important;
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-break: normal !important;
}

.screen-reader-text:focus {
  background-color: #ddd;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* ---------- Normalizacao herdada do reset.css do Hello ----------
   3.448 dos 5.829 bytes originais. Ficaram de fora as 11 regras de tabela e as
   17 de campo de formulario: nao ha tabela nem campo nas 15 paginas.

   A normalizacao de BUTTON fica, e NAO deve ser descartada por associacao com
   os campos: os controles do carrossel, na home e em quem somos, sao <button>,
   e sem ela deslocam. Medido: um candidato sem os formularios inteiros deixou
   quatro diferencas de 12px de altura, achadas recortando e ampliando 3x. */
html{line-height:1.15;-webkit-text-size-adjust:100%}
*,:after,:before{box-sizing:border-box}
body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}
h1{font-size:2.5rem}
h2{font-size:2rem}
h3{font-size:1.75rem}
h4{font-size:1.5rem}
h5{font-size:1.25rem}
h6{font-size:1rem}
p{margin-block-end:.9rem;margin-block-start:0}
hr{box-sizing:content-box;height:0;overflow:visible}
pre{font-family:monospace;font-size:1em;white-space:pre-wrap}
a{background-color:transparent;color:#c36;text-decoration:none}
a:active,a:hover{color:#336}
a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}
a:not([href]):not([tabindex]):focus{outline:0}
abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
b,strong{font-weight:bolder}
code,kbd,samp{font-family:monospace;font-size:1em}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-.25em}
sup{top:-.5em}
img{border-style:none;height:auto;max-width:100%}
details{display:block}
summary{display:list-item}
figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}
[hidden],template{display:none}
label{display:inline-block;line-height:1;vertical-align:middle}
button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}
button,input{overflow:visible}
button,select{text-transform:none}
[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}
[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}
[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}
[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}
progress{vertical-align:baseline}
[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}
[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}
[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible),a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){box-shadow:none;outline:none}


/* ---------- Movimento reduzido: rede de seguranca ----------
   Levantado no passo 6 da Etapa 5, em 13/09/2026. Quem zerava o movimento das
   15 paginas, para quem pediu menos movimento, era o Elementor:

     frontend.min.css:  @media (prefers-reduced-motion: reduce) {
                          html * { transition-delay:0s!important;
                                   transition-duration:0s!important } }

   Das 12 folhas do Elementor servidas numa pagina em codigo, essa e a UNICA
   regra que alcanca o .spa-page. Ou seja: uma acessibilidade do site dependia
   de um plugin, e some junto com ele.

   A cobertura propria do tema ja e quase completa, e por um desenho melhor que
   este: o spa-tokens-v2.css zera os TOKENS de duracao sob movimento reduzido,
   entao toda transicao escrita como var(--dur-*) para sozinha. Medido nas 15
   paginas: 499 elementos com transicao viva em modo normal, e sem o Elementor
   restariam apenas DEZ, todos com a duracao escrita a mao em vez de token:

     .car__track      transition: transform 560ms   quem-somos, 1 elemento
     .svc__img img    transition: transform 620ms   servicos, 9 elementos

   Esta regra e a rede que pega esses dez e os proximos. A correcao de fundo,
   trocar os dois numeros por token, e mudanca visual e fica para um passo
   proprio, porque nenhum token vale 560ms nem 620ms.

   Cobre as MESMAS duas propriedades do Elementor, nem mais nem menos, para o
   invariante fechar exatamente sobre o comportamento de hoje. Animacao nao
   entra: nao ha nenhuma em uso nas 15 paginas, verificado por animationDuration
   no mesmo levantamento. Se um dia houver, esta regra precisa crescer.

   Escopada em .spa-page. Cabecalho e rodape ficam de fora de proposito: eles
   SAO Elementor e continuam cobertos por ele. */
@media (prefers-reduced-motion: reduce) {
  .spa-page *,
  .spa-page *::before,
  .spa-page *::after {
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
}

/* ---------- Impressao ----------
   Copiado do reset.css do Hello, 617 bytes, na remocao dele no passo 6B.

   Este bloco FICOU DE FORA da migracao do passo 2 sem que ninguem notasse. O
   registro do passo 0 no CLAUDE.md diz que migram 3.448 dos 5.829 bytes do
   reset.css e que "o que fica de fora sao as 11 regras de tabela e as 17 de
   campo de formulario, 1.767 bytes". As contas nao fecham por 614 bytes, que
   sao exatamente estes.

   Nenhum screenshot pegaria: o arnes captura a tela, nunca a impressao. So
   apareceu quando o passo 6B mediu, regra a regra, o que reset.css e theme.css
   ainda aplicavam ao HTML servido. */
@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}

/* ---------- Rotas servidas por template-parts/ ----------
   /blog/, o 404, a busca e o post unico. Copiado do theme.css do Hello na
   remocao dele, no passo 6B, depois de a comparacao de telas acusar 2 rotas e
   4 faixas: o conteudo perdeu o recuo lateral de 10px no mobile.

   Do seletor original ficaram so os dois alvos que ainda existem. Os outros
   quatro, .site-header, .site-footer e variantes, miravam a marcacao dos
   template-parts do Hello, removidos na R6.3.

   TEMPORARIO. Nao sao camada de base do tema: estao aqui porque essas rotas nao
   tem folha propria, e criar uma para codigo que vai ser substituido seria
   maquinaria a toa.

   COMO SABER QUE E SEGURO REMOVER, no dia em que alguem for:

   Estas regras servem .site-main e .page-header .entry-title, que e marcacao do
   HELLO, emitida por template-parts/404.php, search.php, archive.php e
   single.php. Essas quatro sao as unicas rotas que as produzem, e nenhuma das
   15 paginas em codigo tem essas classes: la o invólucro e .spa-page.

   Quando blog, artigo e 404 forem criados no Theme Builder, depois do deploy,
   essas rotas passam a ser renderizadas pelo Elementor e param de emitir
   .site-main. Nesse momento estas regras ficam ORFAS e saem sem substituicao,
   junto com os quatro template-parts.

   Como conferir antes de remover: procurar site-main e page-header no HTML
   servido de /blog/, do 404 e da busca. Zero ocorrencias, pode apagar. */
.page-header .entry-title,
body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}
.comments-area a,.page-content a{text-decoration:underline}
.post .entry-title a{text-decoration:none}
@media (max-width:575px){
  .page-header .entry-title,
  body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}
}
@media (min-width:576px){
  .page-header .entry-title,
  body:not([class*=elementor-page-]) .site-main{max-width:500px}
}
@media (min-width:768px){
  .page-header .entry-title,
  body:not([class*=elementor-page-]) .site-main{max-width:600px}
}
@media (min-width:992px){
  .page-header .entry-title,
  body:not([class*=elementor-page-]) .site-main{max-width:800px}
}
@media (min-width:1200px){
  .page-header .entry-title,
  body:not([class*=elementor-page-]) .site-main{max-width:1140px}
}
