/* ==========================================================
   SR FACILITIES — FOLHA DE ESTILOS PRINCIPAL
   ----------------------------------------------------------
   Índice
   01. Variáveis globais & reset
   02. Utilitários e títulos de seção
   03. Botões
   04. Cabeçalho & navegação (com menu mobile)
   05. Hero
   06. Sobre
   07. Ícones (SVG)
   08. Cards (serviços e diferenciais)
   09. Contato & formulário
   10. Rodapé
   11. WhatsApp flutuante
   12. Páginas internas (políticas e termos)
   13. Aviso de cookies
   14. Animações de entrada
   15. Responsividade
   ========================================================== */

/* ---------- 01. Variáveis globais & reset ---------- */
:root {
  /* Identidade visual */
  --dourado: #c59b27;
  --dourado-claro: #e3bd53;
  --dourado-hover: #a37f1e;
  --preto: #08090a; /* leve calor em vez de preto absoluto — evita o "preto de tela morta" */
  --grafite-escuro: #12151c; /* fundo do cabeçalho e do rodapé */
  --grafita-card: #1c202b; /* fundo dos cards */
  --grafita-borda: #2a3040; /* bordas e divisórias */
  --cinza-texto: #e2e8f0;
  --cinza-suave: #a3a3a8; /* clareado para melhor contraste */
  --branco: #f7f6f3; /* branco levemente quente, não um branco clínico */

  --fonte-principal:
    system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, sans-serif;
  /* Serifada para títulos: dá personalidade e contraste editorial
     em vez de tudo na mesma caixa alta sans-serif */
  --fonte-titulo: "Playfair Display", Georgia, serif;

  --transicao-padrao: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  --sombra-card: 0 10px 30px rgba(0, 0, 0, 0.35);
  --sombra-dourada: 0 12px 30px rgba(197, 155, 39, 0.18);

  --altura-cabecalho: 84px;

  /* Menu mobile off-canvas */
  --largura-menu-mobile: min(320px, 86vw);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  /* Impede que o cabeçalho fixo cubra o título da seção ao navegar */
  scroll-padding-top: var(--altura-cabecalho);
}

body {
  font-family: var(--fonte-principal);
  background-color: var(--preto);
  color: var(--cinza-texto);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

a {
  text-decoration: none;
  color: inherit;
  transition: var(--transicao-padrao);
}

ul {
  list-style: none;
}

img,
svg {
  max-width: 100%;
  display: block;
}

::selection {
  background: var(--dourado);
  color: var(--grafite-escuro);
}

/* Foco visível para navegação por teclado (acessibilidade) */
:focus-visible {
  outline: 2px solid var(--dourado);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Link "pular para o conteúdo" (acessibilidade) */
.pular-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  background: var(--dourado);
  color: var(--grafite-escuro);
  font-weight: 700;
  padding: 12px 20px;
  border-radius: 0 0 8px 0;
}

.pular-link:focus {
  left: 0;
}

/* ---------- 02. Utilitários e títulos de seção ---------- */
.container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 90px) 0;
}

h1,
h2,
h3 {
  color: var(--branco);
  font-weight: 700;
  line-height: 1.2;
}

/* Serifada só nos títulos "de manchete" (h1/h2) — os h3, menores e mais
   funcionais (cards, colunas do rodapé), continuam na sans-serif para
   não perder legibilidade em corpo pequeno */
h1,
h2 {
  font-family: var(--fonte-titulo);
}

h2 {
  font-size: clamp(1.7rem, 4vw, 2.2rem);
  text-align: center;
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

/* Barra dourada sob o título da seção */
.titulo-barra {
  width: 64px;
  height: 3px;
  background-color: var(--dourado);
  border-radius: 999px;
  margin: 14px auto 0;
}

.texto-dourado {
  color: var(--dourado);
  font-weight: 600;
}

.section-descricao,
.section-description {
  text-align: center;
  color: var(--cinza-suave);
  max-width: 640px;
  margin: 18px auto 48px;
  font-size: 1.05rem;
}

/* ---------- 03. Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.95rem 1.9rem;
  border-radius: 0.6rem;
  cursor: pointer;
  text-align: center;
  border: 1px solid transparent;
  transition:
    background-color 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

/* Botão principal (dourado) */
.btn--gold,
.btn-primary {
  background-color: var(--dourado);
  color: var(--grafite-escuro);
}

.btn--gold:hover,
.btn-primary:hover {
  background-color: var(--dourado-claro);
  color: var(--grafite-escuro);
  transform: translateY(-2px);
  box-shadow: var(--sombra-dourada);
}

/* Botão secundário (contorno) */
.btn--outline {
  background-color: transparent;
  color: var(--branco);
  border-color: rgba(255, 255, 255, 0.3);
}

.btn--outline:hover {
  border-color: var(--dourado);
  color: var(--dourado);
  transform: translateY(-2px);
}

.btn--bloco {
  width: 100%;
}

/* ---------- 04. Cabeçalho & navegação ---------- */
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: rgba(18, 21, 28, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(197, 155, 39, 0.2);
  transition: var(--transicao-padrao);
  padding: 15px 5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cabecalho--rolado {
  padding: 10px 5%;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
}

.logo-link {
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo-image {
  height: 54px;
  width: auto;
  transition: var(--transicao-padrao);
}

.cabecalho--rolado .logo-image {
  height: 46px;
}

.texto-logo {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.texto-logo strong {
  font-family: var(--fonte-titulo);
  color: var(--branco);
  font-size: 1.1rem;
  letter-spacing: 0.06em;
}

.texto-logo small {
  color: var(--dourado);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

nav ul {
  display: flex;
  align-items: center;
  gap: 30px;
}

nav a {
  position: relative;
  display: inline-block;
  padding: 6px 2px;
  font-weight: 500;
  font-size: 0.95rem;
}

/* Sublinhado dourado animado */
nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background-color: var(--dourado);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

nav a:hover,
nav a.ativo {
  color: var(--dourado);
}

nav a:hover::after,
nav a.ativo::after {
  transform: scaleX(1);
}

/* Botão hambúrguer — visível apenas no mobile */
/* O botão de orçamento dentro do menu existe só para o mobile */
nav .btn {
  display: none;
}

.menu-botao {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  background: transparent;
  border: 1px solid rgba(197, 155, 39, 0.35);
  border-radius: 8px;
  cursor: pointer;
  padding: 0;
}

.menu-botao:hover {
  background-color: rgba(197, 155, 39, 0.1);
}

/* As 3 linhas que formam o ícone hambúrguer.
   Cada uma transiciona sozinha para poder virar um "X" quando o
   menu está aberto (ver estado [aria-expanded="true"] mais abaixo). */
.menu-botao__linha {
  display: block;
  width: 20px;
  height: 2px;
  border-radius: 2px;
  background-color: var(--dourado);
  transition: var(--transicao-padrao);
}

/* Estado aberto: hambúrguer vira X.
   A linha do meio some; as de cima/baixo giram 45° e se encontram
   no centro do botão. */
.menu-botao[aria-expanded="true"] .menu-botao__linha:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-botao[aria-expanded="true"] .menu-botao__linha:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.menu-botao[aria-expanded="true"] .menu-botao__linha:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Véu escuro atrás do menu mobile — por padrão nem existe
   visualmente; só ganha posição/tamanho abaixo de 768px. */
.menu-overlay {
  display: none;
}

/* ---------- 05. Hero ---------- */
#hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  padding-top: var(--altura-cabecalho);
  background: var(--preto) url("../img/hero-fundo.jpg") center / cover no-repeat;
  background-attachment: scroll;
  border-bottom: 1px solid var(--grafita-borda);
}

/* Overlay escuro: garante leitura do texto sobre a foto */
#hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at center,
      rgba(197, 155, 39, 0.08) 0%,
      transparent 65%
    ),
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.82) 0%,
      rgba(0, 0, 0, 0.7) 45%,
      rgba(0, 0, 0, 0.92) 100%
    );
}

#hero .container {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.hero-logo {
  width: 104px;
  margin-bottom: 26px;
  filter: drop-shadow(0 12px 26px rgba(197, 155, 39, 0.3));
}

.hero-text {
  max-width: 46rem;
}

.hero-text h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  margin-bottom: 22px;
  letter-spacing: -0.02em;
}

/* Frase institucional em destaque */
.hero-text p {
  font-size: clamp(1.05rem, 2.2vw, 1.3rem);
  font-style: italic;
  color: var(--dourado-claro);
  max-width: 42rem;
  margin: 0 auto;
  padding: 20px 0;
  position: relative;
}

.hero-text p::before,
.hero-text p::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 110px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--dourado), transparent);
}

.hero-text p::before {
  top: 0;
}

.hero-text p::after {
  bottom: 0;
}

.hero-descricao {
  max-width: 44rem;
  margin: 26px auto 0;
  color: var(--cinza-suave);
  font-size: 1.02rem;
}

.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-top: 38px;
}

/* ---------- 06. Sobre ---------- */
#sobre {
  background-color: var(--grafite-escuro);
  border-bottom: 1px solid var(--grafita-borda);
}

.sobre-content {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

.sobre-content p {
  font-size: 1.08rem;
  color: var(--cinza-texto);
  line-height: 1.85;
  margin-top: 32px;
}

/* ---------- 07. Ícones (SVG) ----------
   Todos os ícones do site usam traço (outline). Por isso o
   preenchimento fica desligado e a cor é aplicada no traço —
   sem isso os ícones aparecem como manchas sólidas. */
.icone-card,
.card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  margin: 0 auto 22px;
  border-radius: 14px;
  background-color: rgba(197, 155, 39, 0.1);
  transition: var(--transicao-padrao);
}

.icone {
  width: 30px;
  height: 30px;
  color: var(--dourado);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: var(--transicao-padrao);
}

.servico-card:hover .icone-card,
.servico-card:hover .card-icon,
.diferencial-card:hover .icone-card,
.diferencial-card:hover .card-icon {
  background-color: var(--dourado);
}

.servico-card:hover .icone,
.diferencial-card:hover .icone {
  color: var(--grafite-escuro);
  transform: scale(1.08);
}

/* ---------- 08. Cards (serviços e diferenciais) ---------- */
#servicos {
  background-color: var(--preto);
  border-bottom: 1px solid var(--grafita-borda);
}

#diferenciais {
  background-color: var(--grafite-escuro);
  border-bottom: 1px solid var(--grafita-borda);
}

.servicos-grid,
.diferenciais-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px;
}

.servico-card,
.diferencial-card {
  background-color: var(--grafita-card);
  padding: 38px 26px;
  border-radius: 12px;
  border: 1px solid var(--grafita-borda);
  transition: var(--transicao-padrao);
  text-align: center;
}

.servico-card:hover,
.diferencial-card:hover {
  transform: translateY(-8px);
  border-color: var(--dourado);
  box-shadow: var(--sombra-card);
}

.servico-card h3,
.diferencial-card h3 {
  font-size: 1.2rem;
  margin-bottom: 12px;
}

.servico-card p,
.diferencial-card p {
  color: var(--cinza-suave);
  font-size: 0.95rem;
  margin: 0;
}

/* ---------- 09. Contato & formulário ---------- */
#contato {
  background-color: var(--preto);
}

.content-contato {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
  margin-top: 12px;
}

.contato-info,
.contato-form {
  background-color: var(--grafita-card);
  border: 1px solid var(--grafita-borda);
  padding: 32px 28px;
  border-radius: 12px;
}

.contato-info h3,
.contato-form h3 {
  margin-bottom: 26px;
  font-size: 1.25rem;
}

.contato-info p {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 16px 0;
  margin: 0;
  border-top: 1px solid var(--grafita-borda);
  color: var(--cinza-texto);
}

.contato-info p:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.contato-info .icone {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  margin-top: 3px;
}

.contato-info strong {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cinza-suave);
  font-weight: 700;
  margin-bottom: 3px;
}

.contato-info a {
  color: var(--branco);
  font-weight: 600;
}

.contato-info a:hover {
  color: var(--dourado);
}

.contato-info .mapa-link {
  display: inline-block;
  margin-top: 6px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--dourado);
}

.contato-form form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.campo label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cinza-suave);
  margin-bottom: 7px;
}

.contato-form input,
.contato-form textarea {
  width: 100%;
  padding: 14px;
  background-color: var(--preto);
  border: 1px solid var(--grafita-borda);
  border-radius: 6px;
  color: var(--branco);
  font-family: inherit;
  font-size: 0.95rem;
  transition: var(--transicao-padrao);
}

.contato-form input::placeholder,
.contato-form textarea::placeholder {
  color: #6b7280;
}

.contato-form input:focus,
.contato-form textarea:focus {
  outline: none;
  border-color: var(--dourado);
  box-shadow: 0 0 0 3px rgba(197, 155, 39, 0.18);
}

.contato-form textarea {
  resize: vertical;
  min-height: 130px;
}

/* Campo anti-spam (honeypot): invisível para pessoas, visível para robôs */
.honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Mensagem de retorno do formulário */
.form-feedback {
  display: none;
  padding: 14px 16px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 600;
}

.form-feedback.ativo {
  display: block;
}

.form-feedback--sucesso {
  background-color: rgba(37, 211, 102, 0.12);
  border: 1px solid rgba(37, 211, 102, 0.45);
  color: #6ee7a5;
}

.form-feedback--erro {
  background-color: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.45);
  color: #fca5a5;
}

.form-aviso {
  margin: 0;
  font-size: 0.78rem;
  color: var(--cinza-suave);
  text-align: center;
}

/* ---------- 10. Rodapé ---------- */
#footer {
  background-color: var(--grafite-escuro);
  border-top: 1px solid var(--grafita-borda);
}

#footer .container {
  padding-bottom: 0;
}

.footer-content {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.4fr;
  gap: 40px;
  margin-bottom: 44px;
}

.footer-logo a {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-logo img {
  height: 52px;
  width: auto;
}

.footer-logo p {
  margin-top: 18px;
  font-size: 0.9rem;
  color: var(--cinza-suave);
  max-width: 30ch;
}

.footer-links h3,
.footer-institucional h3,
.footer-contato h3 {
  font-size: 1rem;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.footer-links ul,
.footer-institucional ul {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-links a,
.footer-institucional a,
.footer-contato a {
  color: var(--cinza-suave);
  font-size: 0.92rem;
}

.footer-links a:hover,
.footer-institucional a:hover,
.footer-contato a:hover {
  color: var(--dourado);
}

.footer-contato ul {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.footer-contato li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.92rem;
  color: var(--cinza-suave);
}

.footer-contato .icone {
  width: 19px;
  height: 19px;
  flex-shrink: 0;
  margin-top: 3px;
}

.footer-bottom {
  text-align: center;
  padding: 22px 0;
  border-top: 1px solid var(--grafita-borda);
  color: var(--cinza-suave);
  font-size: 0.85rem;
}

.footer-bottom p {
  margin: 0;
}

/* ---------- 11. WhatsApp flutuante ---------- */
.whatsapp {
  position: fixed;
  bottom: 25px;
  right: 25px;
  z-index: 999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.whatsapp__botao {
  width: 60px;
  height: 60px;
  background-color: #25d366;
  color: var(--branco);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  transition: var(--transicao-padrao);
}

.whatsapp__botao:hover {
  transform: scale(1.1);
}

.whatsapp__botao svg {
  width: 32px;
  height: 32px;
  fill: currentColor;
  stroke: none;
}

.whatsapp__balao {
  position: relative;
  background-color: var(--branco);
  color: var(--grafite-escuro);
  padding: 10px 32px 10px 15px;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 12px;
  box-shadow: var(--sombra-card);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: var(--transicao-padrao);
}

.whatsapp__balao.visivel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.whatsapp__fechar {
  position: absolute;
  top: -7px;
  right: -7px;
  background: var(--grafite-escuro);
  color: var(--branco);
  border: none;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}

/* Botão "voltar ao topo" */
.voltar-topo {
  position: fixed;
  right: 32px;
  bottom: 96px;
  z-index: 998;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--grafita-card);
  border: 1px solid rgba(197, 155, 39, 0.5);
  color: var(--dourado);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: var(--transicao-padrao);
}

.voltar-topo.visivel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.voltar-topo:hover {
  box-shadow: var(--sombra-dourada);
}

.voltar-topo svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- 12. Páginas internas (políticas e termos) ----------
   Cabeçalho compacto usado no topo de politica-de-privacidade.html,
   politica-de-cookies.html e termos-de-uso.html. */
.pagina-titulo {
  position: relative;
  padding: calc(var(--altura-cabecalho) + 46px) 0 46px;
  background-color: var(--grafite-escuro);
  border-bottom: 1px solid var(--grafita-borda);
  text-align: center;
}

.pagina-titulo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at center,
    rgba(197, 155, 39, 0.07) 0%,
    transparent 65%
  );
}

.pagina-titulo .container {
  position: relative;
  padding: 0;
}

.pagina-titulo h1 {
  font-size: clamp(1.8rem, 4.2vw, 2.5rem);
  letter-spacing: -0.01em;
}

.pagina-titulo p {
  margin: 16px auto 0;
  max-width: 46ch;
  color: var(--cinza-suave);
}

/* Trilha de navegação (breadcrumb) */
.migalhas {
  margin-bottom: 18px;
  font-size: 0.85rem;
  color: var(--cinza-suave);
}

.migalhas a {
  color: var(--dourado);
  font-weight: 600;
}

.migalhas a:hover {
  color: var(--dourado-claro);
}

.migalhas span {
  margin: 0 8px;
  opacity: 0.5;
}

/* Corpo do texto legal */
.legal {
  max-width: 800px;
  margin: 0 auto;
}

.legal .atualizado {
  display: inline-block;
  font-size: 0.8rem;
  color: var(--cinza-suave);
  background-color: var(--grafita-card);
  border: 1px solid var(--grafita-borda);
  border-radius: 999px;
  padding: 6px 16px;
  margin-bottom: 32px;
}

.legal h2 {
  font-size: 1.2rem;
  text-align: left;
  margin: 40px 0 14px;
  padding-left: 14px;
  border-left: 3px solid var(--dourado);
  line-height: 1.35;
}

.legal h2:first-of-type {
  margin-top: 32px;
}

.legal p {
  color: var(--cinza-suave);
  margin-bottom: 16px;
}

.legal strong {
  color: var(--cinza-texto);
  font-weight: 600;
}

.legal a {
  color: var(--dourado);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal a:hover {
  color: var(--dourado-claro);
}

.legal ul {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
}

.legal ul li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
  color: var(--cinza-suave);
}

/* Marcador dourado da lista */
.legal ul li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 11px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--dourado);
}

/* Caixa de contato no fim da página */
.legal .caixa-contato {
  margin-top: 40px;
  padding: 26px 24px;
  background-color: var(--grafita-card);
  border: 1px solid var(--grafita-borda);
  border-radius: 12px;
}

.legal .caixa-contato p:last-child {
  margin-bottom: 0;
}

/* ---------- 13. Aviso de cookies ---------- */
.aviso-cookies {
  position: fixed;
  z-index: 1100;
  left: 16px;
  right: 16px;
  bottom: 16px;
  max-width: 660px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background-color: var(--grafita-card);
  border: 1px solid rgba(197, 155, 39, 0.4);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.6);
}

.aviso-cookies[hidden] {
  display: none;
}

.aviso-cookies p {
  flex: 1 1 260px;
  margin: 0;
  font-size: 0.86rem;
  color: var(--cinza-suave);
}

.aviso-cookies a {
  color: var(--dourado);
  font-weight: 600;
}

.aviso-cookies .btn {
  padding: 0.7rem 1.6rem;
  font-size: 0.86rem;
}

/* ---------- 14. Animações de entrada (Intersection Observer) ---------- */
.revelar {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
}

.revelar--visivel {
  opacity: 1;
  transform: translateY(0);
}

/* Respeita quem prefere menos movimento (acessibilidade) */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }

  .revelar {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ---------- 15. Responsividade ---------- */
@media (max-width: 900px) {
  .content-contato {
    grid-template-columns: 1fr;
  }

  .footer-content {
    grid-template-columns: 1fr 1fr;
  }

  .pagina-titulo {
    padding: calc(var(--altura-cabecalho) + 32px) 0 36px;
  }
}

@media (max-width: 768px) {
  header {
    padding: 12px 20px;
  }

  /* Botão de orçamento sai do topo para poupar espaço —
     ele reaparece dentro do menu mobile */
  header .orcamento {
    display: none;
  }

  .menu-botao {
    display: inline-flex;
  }

  /* ---------- Menu mobile: painel off-canvas ----------
     O menu fica sempre no DOM; a classe "aberto" só desliza o
     painel para dentro da tela (transform, que é animável — ao
     contrário do display:none/block usado antes). Ele ocupa a
     altura toda e o conteúdo fica alinhado à esquerda. */
  nav#menu {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: var(--largura-menu-mobile);

    display: flex;
    align-items: flex-start;
    background-color: var(--grafite-escuro);
    border-right: 1px solid var(--grafita-borda);
    box-shadow: 0 0 45px rgba(0, 0, 0, 0.5);

    padding: calc(var(--altura-cabecalho) + 20px) 28px 32px;
    overflow-y: auto;

    transform: translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
  }

  nav#menu.aberto {
    transform: translateX(0);
  }

  nav#menu ul {
    flex-direction: column;
    align-items: flex-start; /* conteúdo do menu alinhado à esquerda */
    width: 100%;
    gap: 4px;
    padding: 0;
    border-top: none;
    margin-top: 0;
  }

  nav a {
    display: block;
    width: 100%;
    padding: 12px 10px;
    border-radius: 8px;
    font-size: 1.05rem;
    text-align: left;
  }

  nav a:hover {
    background-color: rgba(197, 155, 39, 0.08);
  }

  /* Sublinhado animado não faz sentido em lista vertical */
  nav a::after {
    display: none;
  }

  nav .btn {
    display: inline-flex;
    margin-top: 14px;
    width: 100%;
  }

  /* Pequeno detalhe artesanal: os links entram em cascata (um
     pouquinho depois do outro) só quando o menu abre, em vez de
     surgirem todos ao mesmo tempo de forma mecânica */
  nav#menu li {
    opacity: 0;
    transform: translateX(-10px);
    transition:
      opacity 0.3s ease,
      transform 0.3s ease;
  }

  nav#menu.aberto li {
    opacity: 1;
    transform: translateX(0);
  }

  nav#menu.aberto li:nth-child(1) {
    transition-delay: 0.05s;
  }
  nav#menu.aberto li:nth-child(2) {
    transition-delay: 0.1s;
  }
  nav#menu.aberto li:nth-child(3) {
    transition-delay: 0.15s;
  }
  nav#menu.aberto li:nth-child(4) {
    transition-delay: 0.2s;
  }
  nav#menu.aberto li:nth-child(5) {
    transition-delay: 0.25s;
  }

  /* Véu escuro entre o menu e o conteúdo da página.
     Tocar nele fecha o menu (mesmo comportamento de tocar fora). */
  .menu-overlay {
    display: block;
    position: fixed;
    inset: 0;
    background-color: rgba(8, 9, 10, 0.6);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.35s ease,
      visibility 0.35s ease;
    z-index: 998;
  }

  .menu-overlay.aberto {
    opacity: 1;
    visibility: visible;
  }

  /* Trava o scroll da página por trás enquanto o menu está aberto */
  body.menu-aberto {
    overflow: hidden;
  }

  .logo-image {
    height: 46px;
  }

  .hero-buttons {
    width: 100%;
    flex-direction: column;
  }

  .hero-buttons .btn {
    width: 100%;
  }

  .footer-content {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .whatsapp {
    right: 18px;
    bottom: 18px;
  }

  .voltar-topo {
    right: 25px;
    bottom: 88px;
  }

  .aviso-cookies {
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 16px;
  }

  .aviso-cookies .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .container {
    width: 92%;
  }

  .texto-logo small {
    display: none;
  }

  .contato-info,
  .contato-form {
    padding: 24px 20px;
  }
}
.rodape-sociais {
  display: flex;
  gap: 0.8rem;
  margin-top: 1.4rem;
}

.rodape-sociais .social-grid a {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--cinza-texto);
  border-radius: 50%;
  color: var(--cinza-texto);
  transition:
    color var(--transicao-padrao),
    border-color var(--transicao-padrao),
    transform var(--transicao-padrao);
}
.rodape-sociais a:hover {
  color: var(--dourado-claro);
  border-color: rgba(201, 162, 39, 0.5);
  transform: translateY(-3px);
}

.rodape-sociais svg {
  width: 18px;
  height: 18px;
}

.saiba_mais:hover {
  color: var(--dourado);
}
.saiba_mais {
  color: var(--branco);
}

/* ==========================================================
   16. Página interna de serviço
   ----------------------------------------------------------
   Padrão usado pelas páginas de cada serviço (Controle de
   Acesso, Portaria, Recepção, Limpeza, Jardinagem, Zeladoria e
   Apoio Operacional): banner com foto, introdução, grade de
   benefícios, atividades oferecidas e chamada final. Reaproveita
   as variáveis e os componentes das seções 01-11 para manter o
   mesmo padrão visual do restante do site.
   ========================================================== */

/* ---------- Banner de topo ---------- */
.janela-servico {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 440px;
  height: 55vh;
  padding-top: var(--altura-cabecalho);
  text-align: center;
}

.janela-servico .imagem-fundo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Overlay escuro: mesmo princípio do gradiente do hero da home,
   garante a leitura do título sobre a fotografia */
.janela-servico .sobreposicao {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.78) 0%,
    rgba(0, 0, 0, 0.6) 45%,
    rgba(0, 0, 0, 0.88) 100%
  );
}

.janela-servico .conteudo {
  position: relative;
  z-index: 1;
  padding: 0 20px;
}

/* Ícone centralizado em container dourado — reaproveita o
   .icone-card já usado nos cards de serviços/diferenciais,
   em versão maior para o contexto de banner */
.janela-servico .icone-card {
  width: 84px;
  height: 84px;
  margin: 0 auto 24px;
  background-color: rgba(197, 155, 39, 0.14);
  border: 1px solid rgba(197, 155, 39, 0.3);
}

.janela-servico .icone-card .icone {
  width: 38px;
  height: 38px;
}

.janela-servico h1 {
  font-size: clamp(2.1rem, 4.6vw, 3.1rem);
  letter-spacing: -0.01em;
}

.janela-servico .subtitulo {
  margin: 16px auto 0;
  max-width: 42rem;
  color: var(--cinza-suave);
  font-size: clamp(1rem, 2vw, 1.15rem);
}

/* ---------- Introdução ---------- */
#introducao {
  background-color: var(--preto);
  border-bottom: 1px solid var(--grafita-borda);
}

.container.intro {
  max-width: 900px;
  text-align: center;
}

.container.intro p {
  margin-top: 24px;
  color: var(--cinza-texto);
  line-height: 1.8;
}

/* ---------- Benefícios ---------- */
#beneficios {
  background-color: var(--grafite-escuro);
  border-bottom: 1px solid var(--grafita-borda);
}

.benefit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 8px;
}

.benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 22px;
  background-color: var(--grafita-card);
  border: 1px solid var(--grafita-borda);
  border-radius: 10px;
  transition: var(--transicao-padrao);
}

.benefit:hover {
  border-color: var(--dourado);
  transform: translateY(-3px);
  box-shadow: var(--sombra-card);
}

/* Marcador circular dourado à esquerda de cada benefício */
.benefit .check {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background-color: rgba(197, 155, 39, 0.12);
  border: 1px solid rgba(197, 155, 39, 0.35);
  color: var(--dourado);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
}

.benefit h3 {
  margin: 0 0 6px;
  font-size: 1.05rem;
  line-height: 1.3;
}

.benefit p {
  margin: 0;
  color: var(--cinza-suave);
  font-size: 0.9rem;
  line-height: 1.55;
}

/* ---------- "O que podemos oferecer" ---------- */
#atividades {
  background-color: var(--preto);
  border-bottom: 1px solid var(--grafita-borda);
}

.container.activities {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

/* Título da coluna esquerda alinhado à esquerda (o padrão
   global de h2 é centralizado — aqui é a exceção proposital) */
.container.activities h2 {
  text-align: left;
}

.activity-list {
  margin-top: 24px;
}

.activity-list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 14px;
  color: var(--cinza-texto);
}

.activity-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--dourado);
  font-weight: 700;
}

/* Card informativo lateral, com destaque dourado à esquerda */
.info-card {
  background-color: var(--grafita-card);
  border: 1px solid var(--grafita-borda);
  border-left: 4px solid var(--dourado);
  padding: 32px;
  border-radius: 10px;
}

.info-card h3 {
  margin-bottom: 14px;
  font-size: 1.2rem;
}

.info-card p {
  margin: 0;
  color: var(--cinza-suave);
  font-size: 0.95rem;
  line-height: 1.65;
}

/* ---------- Chamada final ---------- */
.cta {
  text-align: center;
  padding: 70px 0;
  background-color: var(--grafite-escuro);
}

.cta h2 {
  margin-bottom: 12px;
}

.cta p {
  color: var(--cinza-suave);
  max-width: 600px;
  margin: 0 auto 28px;
}

/* ---------- Responsividade — abaixo de 850px ---------- */
@media (max-width: 850px) {
  .janela-servico {
    height: auto;
    min-height: 380px;
    padding: calc(var(--altura-cabecalho) + 40px) 0 40px;
  }

  /* Grades de 2 colunas viram coluna única */
  .benefit-grid {
    grid-template-columns: 1fr;
  }

  .container.activities {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .container.activities h2 {
    text-align: center;
  }
}
