/* Base da página inicial: tokens, reset e tipografia.
 *
 * Substitui o que vinha do tema Hello Elementor (reset.css) e do "kit" global do
 * Elementor (cores e fontes de body, h1–h6, links e botões), com os mesmos valores
 * computados que a página tinha (medidos em 17/10/2026), para o visual não mudar.
 * As seções têm CSS próprio (hero.css, servicos.css…) e sobrescrevem o que precisam. */

/* ---------- Tokens globais do site (mesmos nomes de legal.css e 404.css) ---------- */
:root {
  /* botões: pílula em todo o site (políticas, cookies, 404 e página inicial) */
  --raio-botao: 999px;
  /* anel de foco único: tinta sobre fundo claro; branco sobre fundo terracota */
  --foco-cor: #2b1608;
}
/* Quem tem fundo terracota marca data-fundo="terracota" e o anel fica branco. */
[data-fundo="terracota"] { --foco-cor: #fff; }

/* ---------- Tokens (cores da marca, tempos e curvas) ---------- */
body.nova-pagina {
  --nv-brand-700: #B84C26; /* terracota: textos, botões, títulos (5,12:1 sobre branco) */
  --nv-brand-500: #F67D21; /* laranja claro: só traços, ícones e sublinhados */
  --nv-brand-800: #9E3F1F; /* hover/foco: escurece em vez de clarear (6,6:1) */
  --nv-ink: #1A1A1A;
  --nv-text: #595959;      /* corpo de texto (7,0:1 sobre branco) */
  --nv-dur-s: 200ms;
  --nv-dur-m: 400ms;
  --nv-dur-l: 600ms;
  --nv-ease-out: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Reset ---------- */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}
*, ::before, ::after { box-sizing: border-box; }

/* clip não cria contêiner de rolagem: position:sticky continua funcionando */
html:has(> body.nova-pagina),
body.nova-pagina { overflow-x: clip; }

body.nova-pagina {
  margin: 0;
  background-color: #fff;
  color: var(--nv-text);
  font-family: "Heebo", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Títulos: Lato 700 em preto (as seções definem tamanho e cor próprios). */
body.nova-pagina :is(h1, h2, h3, h4, h5, h6) {
  margin-block: .5rem 1rem;
  color: #000;
  font-family: "Lato", sans-serif;
  font-weight: 700;
}
body.nova-pagina h1 { font-size: 64px; line-height: 1.1; }
body.nova-pagina h2 { font-size: 36px; line-height: 1.2; }
body.nova-pagina h3 { font-size: 24px; line-height: 1.2; }
body.nova-pagina h4 { font-size: 20px; line-height: 1.3; }
body.nova-pagina h5 { font-size: 18px; line-height: 1.2; }
body.nova-pagina h6 { font-size: 16px; line-height: 1.2; }
@media (max-width: 767px) {
  body.nova-pagina h1 { font-size: 32px; }
  body.nova-pagina h2 { font-size: 24px; }
  body.nova-pagina h3 { font-size: 20px; }
  body.nova-pagina h4 { font-size: 18px; }
  body.nova-pagina h5 { font-size: 16px; }
}

p { margin-block: 0 .9rem; }

body.nova-pagina a {
  background-color: transparent;
  color: var(--nv-brand-700);
  text-decoration: none;
}
body.nova-pagina a:hover { color: #000; }

b, strong { font-weight: bolder; }
small { font-size: 80%; }

img {
  border-style: none;
  height: auto;
  max-width: 100%;
}

figcaption {
  color: #333;
  font-size: 16px;
  font-style: italic;
  font-weight: 400;
  line-height: 1.4;
}

[hidden] { display: none; }

ul, ol, li, dl, dt, dd {
  margin-block: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  border: 0;
  outline: 0;
}

/* Botões: terracota com texto branco (o padrão global que o site já tinha). */
button {
  -webkit-appearance: button;
  display: inline-block;
  width: auto;
  margin: 0;
  overflow: visible;
  padding: 20px 40px;
  border: 1px solid #000;
  border-radius: 0;
  background-color: var(--nv-brand-700, #B84C26);
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  text-transform: none;
  white-space: nowrap;
  user-select: none;
  transition: all .3s;
}
button:not(:disabled) { cursor: pointer; }
button:is(:hover, :focus) {
  border-style: none;
  background-color: var(--nv-brand-500, #F67D21);
  color: #fff;
}
@media (max-width: 767px) {
  button { font-size: 14px; }
}

/* Anel de foco único do site (U-05): só no foco por teclado; o clique não desenha anel.
 * A cor vem de --foco-cor (tinta; branco dentro de [data-fundo="terracota"]). */
:focus-visible {
  outline: 3px solid var(--foco-cor, #2b1608);
  outline-offset: 3px;
}
:focus:not(:focus-visible) { outline: none; }

/* ---------- "Ir para o conteúdo" (aparece só com o foco do teclado) ---------- */
.skip-link {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  word-wrap: normal !important;
}
.skip-link:focus {
  top: 5px;
  left: 5px;
  z-index: 100000;
  display: block;
  width: auto;
  height: auto;
  padding: 12px 24px;
  clip: auto !important;
  clip-path: none;
  background-color: #eee;
  color: #333;
  font-size: 1rem;
  line-height: normal;
  text-decoration: none;
}

/* <main> recebe o foco do "Ir para o conteúdo" sem desenhar anel. */
body.nova-pagina main#conteudo { display: block; }
body.nova-pagina main#conteudo:focus { outline: none; }

/* ---------- Reduzir movimento: sem transições em lugar nenhum ---------- */
@media (prefers-reduced-motion: reduce) {
  html * {
    transition-delay: 0s !important;
    transition-duration: 0s !important;
  }
}
