/* Artesania — sistema comum do site (home, páginas de serviço e 404).
   Manual: branding/artesania/manual.md. Mobile first, sem framework.
   Cor do serviço: <html data-servico="site|atende|mapa|posts|sistemas|numeros"> define
     --cor-servico           a cor do serviço (fundos, faixas, ícones, bordas)
     --cor-servico-texto     versão segura para TEXTO sobre linho/branco (AA)
     --cor-servico-sobre     cor do texto SOBRE a cor do serviço (branco ou grafite)
   Na home (data-servico vazio) as três variáveis valem o anil do grupo.
   O mesmo atributo num elemento qualquer (ex.: cartões da home, itens do menu) troca a cor só dele. */

/* ------------------------------------------------------------------ tokens */
:root {
  /* grupo */
  --anil: #26408B;
  --anil-escuro: #1C3170;
  --linha: #D2452F;          /* vermelho-linha: o fio, o "IA", o botão de ação */
  --linha-escura: #B5361F;   /* vermelho-linha para texto pequeno sobre linho (5,1:1) */
  --linha-clara: #F0674B;    /* só sobre fundo escuro */
  --linho: #F3EDE2;
  --linho-2: #EAE2D3;        /* superfícies e divisórias sobre linho */
  --grafite: #1E1F24;
  --grafite-2: #3A3B42;
  --cinza: #55575C;          /* texto secundário (6,2:1 sobre linho) */
  --borda: #D9CFBE;
  --branco: #FFFFFF;
  --wa: #12813F;

  /* serviços: cor · texto seguro · texto sobre a cor */
  --site: #D2452F;     --site-texto: #B5361F;     --site-sobre: #FFFFFF;
  --atende: #2E7D5B;   --atende-texto: #276B4E;   --atende-sobre: #FFFFFF;
  --mapa: #26408B;     --mapa-texto: #26408B;     --mapa-sobre: #FFFFFF;
  --posts: #E3A72F;    --posts-texto: #8A6212;    --posts-sobre: #1E1F24;
  --sistemas: #3D4A5C; --sistemas-texto: #3D4A5C; --sistemas-sobre: #FFFFFF;
  --numeros: #7A3E6B;  --numeros-texto: #7A3E6B;  --numeros-sobre: #FFFFFF;

  --cor-servico: var(--anil);
  --cor-servico-texto: var(--anil);
  --cor-servico-sobre: #FFFFFF;

  /* tipografia: a mão (Fraunces itálico), a voz (Figtree), a máquina (JetBrains Mono) */
  --f-mao: "Fraunces", Georgia, "Times New Roman", serif;
  --f-voz: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-maquina: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;

  /* espaço e forma */
  --e1: 4px; --e2: 8px; --e3: 12px; --e4: 16px; --e5: 24px; --e6: 32px; --e7: 48px; --e8: 72px; --e9: 112px;
  --raio: 8px;
  --raio-g: 14px;
  --sombra: 0 1px 2px rgba(30, 31, 36, .06), 0 10px 26px -14px rgba(30, 31, 36, .28);
  --largura: 1140px;
  --gutter: 20px;

  /* textura ponto-cruz (manual §6) */
  --ponto-cruz: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Cpath d='M6 6l8 8M14 6l-8 8' stroke='%2326408B' stroke-opacity='.11' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
  --ponto-cruz-claro: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Cpath d='M6 6l8 8M14 6l-8 8' stroke='%23F3EDE2' stroke-opacity='.10' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
[data-servico="site"]     { --cor-servico: var(--site);     --cor-servico-texto: var(--site-texto);     --cor-servico-sobre: var(--site-sobre); }
[data-servico="atende"]   { --cor-servico: var(--atende);   --cor-servico-texto: var(--atende-texto);   --cor-servico-sobre: var(--atende-sobre); }
[data-servico="mapa"]     { --cor-servico: var(--mapa);     --cor-servico-texto: var(--mapa-texto);     --cor-servico-sobre: var(--mapa-sobre); }
[data-servico="posts"]    { --cor-servico: var(--posts);    --cor-servico-texto: var(--posts-texto);    --cor-servico-sobre: var(--posts-sobre); }
[data-servico="sistemas"] { --cor-servico: var(--sistemas); --cor-servico-texto: var(--sistemas-texto); --cor-servico-sobre: var(--sistemas-sobre); }
[data-servico="numeros"]  { --cor-servico: var(--numeros);  --cor-servico-texto: var(--numeros-texto);  --cor-servico-sobre: var(--numeros-sobre); }

/* ------------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body { margin: 0; background: var(--linho); color: var(--grafite); font: 400 17px/1.55 var(--f-voz); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
@media (min-width: 900px) { body { font-size: 18px; } }
img, svg { display: block; max-width: 100%; }
a { color: var(--anil); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--anil-escuro); }
:focus-visible { outline: 3px solid var(--linha); outline-offset: 3px; border-radius: 6px; }
::selection { background: rgba(38, 64, 139, .18); }
h1, h2 { font-family: var(--f-mao); font-style: italic; font-weight: 500; font-variation-settings: "SOFT" 50; line-height: 1.1; letter-spacing: -0.01em; margin: 0 0 .5em; color: var(--anil); text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 5.6vw + .8rem, 3.5rem); }
h2 { font-size: clamp(1.75rem, 2.4vw + 1rem, 2.25rem); }
h3 { font: 600 1.25rem/1.25 var(--f-voz); margin: 0 0 .4em; color: var(--grafite); }
p { margin: 0 0 1em; text-wrap: pretty; }
.mono, .preco, .prazo { font-family: var(--f-maquina); font-weight: 500; letter-spacing: -0.01em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--grafite); color: var(--linho); padding: 10px 14px; border-radius: var(--raio); }
.pular:focus { top: 12px; color: var(--linho); }

/* ------------------------------------------------------------------ layout */
.container { width: 100%; max-width: calc(var(--largura) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.secao { padding: var(--e8) 0; }
@media (min-width: 900px) { .secao { padding: var(--e9) 0; } }
.secao-branca { background: var(--branco); }
.secao-anil { background: var(--anil) var(--ponto-cruz-claro); color: var(--linho); }
.secao-anil h2, .secao-anil h3 { color: var(--linho); }
.secao-anil a:not(.btn) { color: var(--linho); }
.secao-grafite { background: var(--grafite); color: var(--linho); }
.secao-grafite h2, .secao-grafite h3 { color: var(--linho); }
/* faixa de textura ponto-cruz (nunca atrás de texto pequeno) */
.faixa-textura { background-color: var(--linho); background-image: var(--ponto-cruz); }

/* cabeça de seção */
.cabeca { max-width: 740px; margin-bottom: var(--e7); }
.cabeca-centro { margin-left: auto; margin-right: auto; text-align: center; }
.cabeca p { font-size: 1.08rem; color: var(--cinza); }
.secao-anil .cabeca p, .secao-grafite .cabeca p { color: #D9DDEA; }
.olho { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 600 .8rem/1 var(--f-voz); letter-spacing: .14em; text-transform: uppercase; color: var(--cor-servico-texto); }
.olho::before { content: ""; width: 14px; height: 14px; flex: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 3l8 8M11 3l-8 8' stroke='%23D2452F' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.secao-anil .olho, .secao-grafite .olho { color: var(--linho); }

/* divisória em fileira de "x" (manual §6) */
.divisoria { height: 14px; margin: var(--e6) 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='14'%3E%3Cpath d='M7 3l8 8M15 3l-8 8' stroke='%2326408B' stroke-opacity='.45' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") left center/22px 14px repeat-x; }

/* o fio: sublinha UMA palavra por página (<span class="fio">à mão</span>) */
.fio { position: relative; white-space: nowrap; }
.fio::after { content: ""; position: absolute; left: -2%; right: -6%; bottom: -.18em; height: .32em; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'%3E%3Cpath d='M2 6c20-4 50-5 80-2 14 1 24 3 30 6 4 2 2 4-1 3' fill='none' stroke='%23D2452F' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat; pointer-events: none; }

/* ------------------------------------------------------------------ botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 50px; padding: .75em 1.35em; border-radius: var(--raio); border: 2px solid transparent; font: 600 1rem/1.2 var(--f-voz); text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, transform .15s; }
.btn:active { transform: translateY(1px); }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn-acao { background: var(--linha); color: #FFFFFF; }                    /* o vermelho: 1 por tela */
.btn-acao:hover { background: var(--linha-escura); color: #FFFFFF; }
.btn-anil { background: var(--anil); color: #FFFFFF; }
.btn-anil:hover { background: var(--anil-escuro); color: #FFFFFF; }
.btn-servico { background: var(--cor-servico); color: var(--cor-servico-sobre); }
.btn-servico:hover { filter: brightness(.92); color: var(--cor-servico-sobre); }
.btn-contorno { border-color: currentColor; color: var(--anil); background: transparent; }
.btn-contorno:hover { background: var(--anil); border-color: var(--anil); color: #FFFFFF; }
.secao-anil .btn-contorno, .secao-grafite .btn-contorno { color: var(--linho); }
.secao-anil .btn-contorno:hover, .secao-grafite .btn-contorno:hover { background: var(--linho); border-color: var(--linho); color: var(--anil); }
.btn-claro { background: var(--linho); color: var(--anil); }
.btn-claro:hover { background: #FFFFFF; color: var(--anil-escuro); }
.btn-bloco { width: 100%; }
.btn-p { min-height: 42px; padding: .5em 1em; font-size: .94rem; }
.acoes { display: flex; flex-direction: column; gap: var(--e3); }
@media (min-width: 520px) { .acoes { flex-direction: row; flex-wrap: wrap; } }

/* ------------------------------------------------------------------ cabeçalho (HTML fixo; ver _modelo-servico.html) */
.topo { position: sticky; top: 0; z-index: 50; background: rgba(243, 237, 226, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--borda); }
.topo .container { display: flex; align-items: center; gap: var(--e4); min-height: 68px; }
.logo { display: block; flex: none; line-height: 0; }
.logo img { height: 32px; width: auto; }
@media (min-width: 900px) { .topo .container { min-height: 76px; } .logo img { height: 40px; } }
.menu { display: none; list-style: none; margin: 0 0 0 auto; padding: 0; gap: 2px; }
.menu a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 10px; border-radius: var(--raio); text-decoration: none; color: var(--grafite); font: 600 .95rem/1 var(--f-voz); }
.menu a::before { content: ""; width: 9px; height: 9px; background: var(--cor-servico); clip-path: polygon(20% 0, 50% 30%, 80% 0, 100% 20%, 70% 50%, 100% 80%, 80% 100%, 50% 70%, 20% 100%, 0 80%, 30% 50%, 0 20%); }
.menu a:hover { background: var(--linho-2); }
.menu a[aria-current="page"] { background: var(--branco); box-shadow: inset 0 -2px 0 var(--cor-servico); }
.topo .btn { margin-left: auto; min-height: 42px; padding: .5em 1em; font-size: .92rem; }
/* um vermelho por tela (manual §4): o botão do topo é anil; o vermelho fica para o CTA principal da página */
.topo .btn-acao { background: var(--anil); }
.topo .btn-acao:hover { background: var(--anil-escuro); }
.menu-movel + .btn { margin-left: 0; }
@media (min-width: 1080px) { .menu { display: flex; } .topo .btn { margin-left: var(--e3); } .menu-movel { display: none; } }
/* menu do celular sem JS: <details class="menu-movel"> */
.menu-movel { position: relative; }
.menu-movel summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; min-height: 42px; padding: 0 12px; border: 1.5px solid var(--borda); border-radius: var(--raio); font: 600 .92rem/1 var(--f-voz); background: var(--branco); }
.menu-movel summary::-webkit-details-marker { display: none; }
.menu-movel summary svg { width: 18px; height: 18px; }
.menu-movel ul { position: absolute; right: 0; top: calc(100% + 8px); width: min(300px, calc(100vw - 32px)); list-style: none; margin: 0; padding: 8px; background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); box-shadow: var(--sombra); }
.menu-movel li a { display: flex; flex-direction: column; padding: 10px 12px; border-radius: var(--raio); text-decoration: none; color: var(--grafite); border-left: 4px solid var(--cor-servico); margin-bottom: 4px; }
.menu-movel li a:hover { background: var(--linho); }
.menu-movel li a strong { font-weight: 600; }
.menu-movel li a small { color: var(--cinza); font-size: .85rem; }
.menu-movel li a[aria-current="page"] { background: var(--linho); }
/* celular: logo menor e o botão de WhatsApp só com o ícone (o <a> leva aria-label) */
@media (max-width: 599px) {
  .topo .container { gap: 10px; }
  .logo img { height: 26px; }
  .topo .btn { width: 46px; padding: 0; }
  .topo .btn > span { display: none; }
  .menu-movel { margin-left: auto; }
  .menu-movel summary { padding: 0 10px; }
}

/* ------------------------------------------------------------------ hero */
.hero { padding: var(--e7) 0 var(--e8); }
@media (min-width: 900px) { .hero { padding: var(--e8) 0 var(--e9); } }
.hero-grade { display: grid; gap: var(--e7); align-items: center; }
@media (min-width: 900px) { .hero-grade { grid-template-columns: 1.15fr .85fr; } }
.hero .sub { font-size: 1.12rem; color: var(--grafite-2); max-width: 600px; margin-bottom: var(--e5); }
.a-partir { margin: 0 0 var(--e5); color: var(--cinza); font-size: .95rem; }
.a-partir .preco { color: var(--grafite); font-size: 1.35rem; }
.faixa-servico { height: 3px; background: var(--cor-servico); }  /* fio fino que identifica o serviço no topo da página */

/* ------------------------------------------------------------------ cartões */
.grade { display: grid; gap: var(--e4); }
@media (min-width: 680px) { .grade-2, .grade-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .grade-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grade-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 680px) and (max-width: 999px) { .grade-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cartao { background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); padding: var(--e5); box-shadow: var(--sombra); min-width: 0; }
.cartao p:last-child { margin-bottom: 0; }
.cartao .icone { width: 40px; height: 40px; border-radius: var(--raio); display: grid; place-items: center; background: var(--cor-servico); color: var(--cor-servico-sobre); margin-bottom: var(--e4); }
.cartao .icone svg { width: 22px; height: 22px; }

/* cartão de serviço (home e "outros serviços") */
.cartao-servico { display: flex; flex-direction: column; text-decoration: none; color: var(--grafite); background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); overflow: hidden; box-shadow: var(--sombra); transition: transform .2s, box-shadow .2s; }
.cartao-servico:hover { transform: translateY(-3px); color: var(--grafite); box-shadow: 0 2px 4px rgba(30,31,36,.06), 0 22px 38px -18px rgba(30,31,36,.38); }
.cartao-servico .topo-cor { background: var(--cor-servico) var(--ponto-cruz-claro); color: var(--cor-servico-sobre); padding: var(--e4) var(--e5); display: flex; align-items: baseline; gap: 8px; }
.cartao-servico .topo-cor span { font: 400 .95rem var(--f-voz); opacity: .95; }
.cartao-servico .topo-cor strong { font: 600 1.35rem/1.1 var(--f-voz); }
.cartao-servico .corpo { padding: var(--e5); display: flex; flex-direction: column; gap: var(--e2); flex: 1; }
.cartao-servico .o-que { font-weight: 600; margin: 0; }
.cartao-servico p { margin: 0; color: var(--grafite-2); font-size: .98rem; }
.cartao-servico .preco-linha { margin-top: auto; padding-top: var(--e3); font-size: .9rem; color: var(--cinza); }
.cartao-servico .preco-linha .preco { color: var(--grafite); font-size: 1.05rem; }
.cartao-servico .ir { font-weight: 600; color: var(--cor-servico-texto); }

/* passos (como funciona) */
.passos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); counter-reset: passo; }
@media (min-width: 860px) { .passos { grid-template-columns: repeat(var(--colunas, 3), minmax(0, 1fr)); } }
.passo { counter-increment: passo; background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); padding: var(--e5); }
.passo::before { content: counter(passo, decimal-leading-zero); display: block; font: 500 1.1rem var(--f-maquina); color: var(--cor-servico-texto); margin-bottom: var(--e3); }
.passo p { margin: 0; color: var(--grafite-2); }
.passo .prazo { display: inline-block; margin-top: var(--e3); font-size: .85rem; color: var(--anil); background: var(--linho); padding: 4px 9px; border-radius: 6px; }

/* ------------------------------------------------------------------ preços */
.precos { display: grid; gap: var(--e5); align-items: stretch; }
@media (min-width: 760px) { .precos-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 920px; margin: 0 auto; } }
@media (min-width: 960px) { .precos-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.plano { position: relative; display: flex; flex-direction: column; background: var(--branco); border: 1.5px solid var(--borda); border-radius: var(--raio-g); padding: var(--e6) var(--e5) var(--e5); box-shadow: var(--sombra); }
.plano.destaque { border-color: var(--cor-servico); box-shadow: 0 0 0 1px var(--cor-servico), var(--sombra); }
@media (min-width: 960px) { .precos-3 .plano.destaque { transform: translateY(-10px); } }
.plano .selo { position: absolute; top: -13px; left: var(--e5); background: var(--cor-servico); color: var(--cor-servico-sobre); font: 600 .75rem/1 var(--f-voz); letter-spacing: .08em; text-transform: uppercase; padding: 7px 11px; border-radius: 6px; }
.plano h3 { font-size: 1.35rem; }
.plano .para { color: var(--cinza); font-size: .97rem; margin-bottom: var(--e4); }
.plano .valor { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 0 0 2px; }
.plano .valor .de { width: 100%; font-size: .85rem; color: var(--cinza); }
.plano .valor .preco { font-size: 2.2rem; line-height: 1; color: var(--grafite); }
.plano .valor .por { font: 400 .95rem var(--f-voz); color: var(--cinza); }
.plano .forma { font-size: .88rem; color: var(--cinza); margin-bottom: var(--e5); }
.itens { list-style: none; margin: 0 0 var(--e5); padding: 0; display: grid; gap: 10px; font-size: .97rem; }
.itens li { display: flex; gap: 10px; align-items: flex-start; }
.itens li::before { content: ""; width: 14px; height: 14px; flex: none; margin-top: 5px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 3l8 8M11 3l-8 8' stroke='%2326408B' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.itens li.mais { font-weight: 600; }
.itens li.mais::before { background: none; width: 0; margin: 0; }
.plano .btn { margin-top: auto; }
.valor-extra { background: var(--linho); border-radius: var(--raio); padding: 10px 12px; font-size: .92rem; margin: -8px 0 var(--e5); }
.nota-precos { text-align: center; margin: var(--e6) auto 0; max-width: 720px; color: var(--cinza); font-size: .95rem; }

/* ------------------------------------------------------------------ garantias (combinados) */
.garantias { display: grid; gap: var(--e4); }
@media (min-width: 640px) { .garantias { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .garantias { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.garantia { border: 1px solid rgba(243, 237, 226, .22); border-radius: var(--raio-g); padding: var(--e5); background: rgba(255, 255, 255, .05); }
.garantia h3 { color: var(--linho); font-size: 1.1rem; }
.garantia p { margin: 0; color: #D9DDEA; font-size: .97rem; }

/* ------------------------------------------------------------------ rótulos de honestidade */
.rotulo { display: inline-flex; align-items: center; gap: 6px; font: 500 .78rem/1 var(--f-maquina); letter-spacing: .02em; color: var(--grafite-2); background: var(--linho-2); border: 1px dashed #B9AE9A; padding: 6px 9px; border-radius: 6px; }
.rotulo::before { content: "✕"; font-size: .8em; color: var(--linha-escura); }

/* ------------------------------------------------------------------ FAQ */
.faq { max-width: 820px; margin: 0 auto; display: grid; gap: 10px; }
.faq details { background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); }
.faq summary { cursor: pointer; list-style: none; padding: 18px 52px 18px 20px; font-weight: 600; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font: 500 1.4rem/1 var(--f-maquina); color: var(--cor-servico-texto); }
.faq details[open] summary::after { content: "−"; }
.faq details > div { padding: 0 20px 18px; color: var(--grafite-2); }
.faq details > div p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------ CTA final */
.cta-final { text-align: center; }
.cta-final h2 { max-width: 780px; margin-left: auto; margin-right: auto; }
.cta-final p { max-width: 600px; margin: 0 auto var(--e5); font-size: 1.08rem; }
.cta-final .acoes { justify-content: center; }

/* ------------------------------------------------------------------ rodapé (HTML fixo) */
.rodape { background: var(--grafite); color: #C9CBD2; padding: var(--e7) 0 var(--e6); font-size: .95rem; }
.rodape a { color: var(--linho); text-decoration: none; }
.rodape a:hover { color: #FFFFFF; text-decoration: underline; }
.rodape-grade { display: grid; gap: var(--e6); }
@media (min-width: 800px) { .rodape-grade { grid-template-columns: 1.3fr 1fr 1fr; } }
.rodape .logo img { height: 34px; margin-bottom: var(--e3); }
.rodape .slogan { font: italic 500 1.05rem var(--f-mao); color: var(--linho); margin: 0 0 var(--e2); }
.rodape-tit { font: 600 .78rem/1 var(--f-voz); letter-spacing: .14em; text-transform: uppercase; color: #9A9DA6; margin: 0 0 var(--e3); }
.rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rodape .servicos-rodape a { display: inline-flex; align-items: center; gap: 8px; }
.rodape .servicos-rodape a::before { content: ""; width: 9px; height: 9px; background: var(--cor-servico); clip-path: polygon(20% 0, 50% 30%, 80% 0, 100% 20%, 70% 50%, 100% 80%, 80% 100%, 50% 70%, 20% 100%, 0 80%, 30% 50%, 0 20%); }
/* faixa do grupo nas páginas de serviço (manual §7, ex. 3) */
.faixa-grupo { border-top: 1px solid #34363D; margin-top: var(--e6); padding-top: var(--e5); font-size: .9rem; color: #B5B8C0; }
.faixa-grupo strong { color: var(--linho); font-weight: 600; }
.faixa-grupo a[aria-current="page"] { color: #FFFFFF; text-decoration: underline; }
.rodape .legal { margin-top: var(--e5); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e2); font-size: .85rem; color: #9A9DA6; }

/* ------------------------------------------------------------------ WhatsApp flutuante */
.wa-flutuante { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 20px 0 16px; border-radius: 999px; background: var(--wa); color: #FFFFFF; text-decoration: none; font-weight: 600; box-shadow: 0 10px 26px -8px rgba(14, 107, 51, .55); }
.wa-flutuante:hover { background: #0E6B33; color: #FFFFFF; }
.wa-flutuante svg { width: 26px; height: 26px; }
@media (max-width: 520px) { .wa-flutuante { width: 56px; padding: 0; justify-content: center; } .wa-flutuante .rotulo-wa { display: none; } .rodape { padding-bottom: 96px; } }

/* ------------------------------------------------------------------ surgir ao rolar (só com JS; sem JS tudo aparece) */
.js .surge { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .6s ease; }
.js .surge.visivel { opacity: 1; transform: none; }

/* ------------------------------------------------------------------ home */
/* explicação do nome: artesan (a mão) + IA (a máquina) — é gráfico, como o logo */
.explica-nome { margin: 0; background: var(--branco); border: 1px solid var(--borda); border-radius: var(--raio-g); box-shadow: var(--sombra); padding: var(--e6) var(--e5); text-align: center; }
.explica-nome img { width: min(200px, 60%); height: auto; margin: 0 auto var(--e4); }
.explica-nome .nome { margin: 0 0 var(--e3); font-size: clamp(2.2rem, 4vw + 1rem, 3rem); line-height: 1; }
.explica-nome .mao { font: italic 500 1em var(--f-mao); font-variation-settings: "SOFT" 50, "WONK" 1; color: var(--anil); }
.explica-nome .maq { font: 500 .82em var(--f-maquina); color: var(--linha); margin-left: .02em; }
.explica-nome figcaption { color: var(--grafite-2); font-size: 1rem; max-width: 300px; margin: 0 auto; }
.grupo-titulo { display: flex; align-items: center; gap: 12px; margin: var(--e6) 0 var(--e4); font: 600 .8rem/1 var(--f-voz); letter-spacing: .14em; text-transform: uppercase; color: var(--cinza); }
.grupo-titulo::after { content: ""; flex: 1; height: 1px; background: var(--borda); }
.cabeca + .grupo-titulo { margin-top: 0; }
.artesao { display: grid; gap: var(--e6); align-items: center; }
@media (min-width: 900px) { .artesao { grid-template-columns: 1fr 1fr; gap: var(--e8); } }
.grande { font-size: 1.15rem; color: #E4E8F4; }
.lista-x { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); }
.lista-x li { display: flex; gap: 12px; align-items: flex-start; background: rgba(255, 255, 255, .07); border: 1px solid rgba(243, 237, 226, .2); border-radius: var(--raio); padding: 14px 16px; }
.lista-x li::before { content: ""; width: 14px; height: 14px; flex: none; margin-top: 6px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 3l8 8M11 3l-8 8' stroke='%23F0674B' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.mini { font-size: .92rem; color: var(--cinza); }
.principios { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e4); counter-reset: pr; }
@media (min-width: 700px) { .principios { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .principios { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.principios li { counter-increment: pr; }
.principios li::before { content: counter(pr, decimal-leading-zero); display: block; font: 500 .95rem var(--f-maquina); color: var(--linha-escura); margin-bottom: var(--e3); }
.principios h3 { font-size: 1.1rem; }
.principios p { color: var(--grafite-2); font-size: .98rem; }
.email-contato { margin-top: var(--e5) !important; font-size: .98rem !important; }
.email-contato a { color: var(--linho); }

/* ------------------------------------------------------------------ 404 */
.erro { min-height: calc(100vh - 76px); display: grid; place-items: center; text-align: center; padding: var(--e7) 0 var(--e8); }
.erro img { width: 160px; height: auto; margin: 0 auto var(--e5); }
.erro p { color: var(--grafite-2); max-width: 520px; margin: 0 auto var(--e5); font-size: 1.1rem; }
.erro .acoes { justify-content: center; }
