/* ==========================================================================
   main.css — ajustes globais de composicao que dependem de todas as camadas.
   A ordem de carregamento e definida em partials/head.php (sem @import,
   para nao criar cascata de requisicoes).
   ========================================================================== */

/* Fallback metrico: aproxima a fonte do sistema da Satoshi enquanto ela
   carrega, reduzindo o deslocamento de layout (CLS) na troca. */
@font-face {
  font-family: "Satoshi Fallback";
  src: local("Helvetica Neue"), local("Arial"), local("Segoe UI"), local("Roboto");
  size-adjust: 101%;
  ascent-override: 96%;
  descent-override: 24%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Cabinet Fallback";
  src: local("Helvetica Neue"), local("Arial"), local("Segoe UI"), local("Roboto");
  size-adjust: 96%;
  ascent-override: 98%;
  descent-override: 22%;
  line-gap-override: 0%;
}

:root {
  --font-display: "Cabinet Grotesk", "Cabinet Fallback", -apple-system,
    BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-sans: "Satoshi", "Satoshi Fallback", -apple-system, BlinkMacSystemFont,
    "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;
}

/* Enquanto o JS nao assume o controle, nada e escondido: a pagina e
   utilizavel mesmo sem JavaScript. */
.no-js .panel__row {
  opacity: 1;
  transform: none;
}

/* Sem JavaScript, nada do sistema de revelacao fica escondido. */
.no-js .reveal-item,
.no-js .mask-line__inner {
  opacity: 1;
  transform: none;
}

.no-js .reveal-rule {
  transform: scaleX(1);
}

/* Sem JavaScript o indice de servicos nasce inteiro aberto: o corpo nunca
   e recolhido (o recolhimento e uma regra `.js`) e as entregas ja aparecem. */
.no-js .svc__item {
  opacity: 1;
  transform: none;
}
