/* ==========================================================================
   Órbita — folha de estilo única do portal
   Tema claro. Laranja (#FC722D) como cor principal, base em branco e gelo.
   Degradê é usado com parcimônia: só para DESTACAR (botão principal,
   palavra-chave do título, painel de autenticação, fita de destaque).
   Identidade documentada em design/identidade-visual.md
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* base neutra */
  --branco:#FFFFFF;
  --gelo:#F7F7FA;
  --gelo-2:#F1F1F6;
  --borda:#E3E3EB;
  --borda-suave:#ECECF2;

  /* texto */
  --tinta:#16151C;
  --tinta-suave:#56535F;
  --tinta-fraca:#87848F;

  /* violeta — cor principal (agora laranja #FC722D) */
  --violeta:#FC722D;
  --violeta-escuro:#D9591A;
  --violeta-claro:#FD9A63;
  --violeta-tint:#FFF1E9;
  --violeta-borda:#FFD3B8;

  /* apoio (usado só em etiquetas de status) */
  --verde:#15803D;   --verde-tint:#ECFDF3;  --verde-borda:#C4EFD3;
  --ambar:#B45309;   --ambar-tint:#FEF6E7;  --ambar-borda:#F6DFB3;

  /* o único degradê do sistema */
  --grad:linear-gradient(135deg,#D9591A 0%,#FC722D 55%,#FF8F4D 100%);

  /* forma */
  --r-sm:8px;
  --r-md:14px;
  --r-lg:20px;
  --r-full:999px;
  --largura:1160px;
  --gutter:24px;

  /* sombra */
  --sombra-sm:0 1px 2px rgba(22,21,28,.05);
  --sombra-md:0 6px 20px rgba(22,21,28,.07);
  --sombra-lg:0 18px 44px rgba(22,21,28,.12);
  --sombra-violeta:0 8px 22px rgba(252,114,45,.22);

  /* tipografia */
  --fonte-titulo:"Sora","Segoe UI",system-ui,-apple-system,sans-serif;
  --fonte-texto:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip;}
body{
  margin:0;
  background:var(--gelo);
  color:var(--tinta);
  font-family:var(--fonte-texto);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}
h1,h2,h3,h4{font-family:var(--fonte-titulo);line-height:1.18;margin:0 0 .5em;font-weight:600;letter-spacing:-.022em;}
h1{font-size:clamp(2rem,4.6vw,3.15rem);font-weight:700;}
h2{font-size:clamp(1.5rem,3.2vw,2.2rem);}
h3{font-size:clamp(1.1rem,2vw,1.3rem);}
h4{font-size:1rem;}
p{margin:0 0 1rem;}
ul,ol{margin:0 0 1rem;padding-left:1.15rem;}
li{margin-bottom:.4rem;}
hr{border:0;border-top:1px solid var(--borda);margin:2.5rem 0;}
:focus-visible{outline:2px solid var(--violeta);outline-offset:2px;border-radius:4px;}
::selection{background:var(--violeta-tint);color:var(--violeta-escuro);}

/* ---------- 3. Utilidades ---------- */
.container{width:100%;max-width:var(--largura);margin:0 auto;padding:0 var(--gutter);}
.container-estreito{max-width:780px;}
.secao{padding:clamp(3rem,7vw,5.25rem) 0;position:relative;}
.secao-compacta{padding:clamp(2.25rem,4.5vw,3.25rem) 0;}
.secao.fundo-halo + .secao-compacta{padding-top:clamp(1rem,2vw,1.5rem);}
main > .secao.fundo-halo:first-child{padding-bottom:clamp(1.75rem,3.5vw,2.5rem);}
.hero + .secao-compacta{padding-top:0;}
.centro{text-align:center;}
.texto-suave{color:var(--tinta-suave);}
.texto-fraco{color:var(--tinta-fraca);}
.gradiente-texto{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.subtitulo{font-size:clamp(1rem,1.6vw,1.12rem);color:var(--tinta-suave);max-width:62ch;}
.centro .subtitulo{margin-left:auto;margin-right:auto;}
.espaco-topo{margin-top:2rem;}
.oculto{display:none !important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* fundos: branco liso, com um véu violeta quase imperceptível no topo */
.fundo-halo{
  position:relative;overflow-x:clip;
  background:linear-gradient(180deg,#FBF8FF 0%,var(--branco) 62%);
  border-bottom:1px solid var(--borda-suave);
}
.fundo-grade{position:relative;overflow-x:clip;}
/* faixa alternada (o nome vem da versão antiga; hoje é uma faixa branca) */
.faixa-degrade{background:var(--branco);border-top:1px solid var(--borda-suave);border-bottom:1px solid var(--borda-suave);}

/* ---------- 4. Botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.72rem 1.35rem;border-radius:var(--r-full);border:1px solid transparent;
  font-weight:600;font-size:.94rem;cursor:pointer;text-align:center;
  transition:transform .14s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
/* o degradê aparece aqui: é o destaque principal da página */
.btn-primario{background:var(--grad);color:#fff;box-shadow:var(--sombra-violeta);}
.btn-primario:hover{box-shadow:0 12px 28px rgba(252,114,45,.3);}
.btn-secundario{background:var(--branco);border-color:var(--borda);color:var(--tinta);box-shadow:var(--sombra-sm);}
.btn-secundario:hover{border-color:var(--violeta-borda);color:var(--violeta);}
.btn-fantasma{background:transparent;color:var(--tinta-suave);padding-left:.6rem;padding-right:.6rem;}
.btn-fantasma:hover{color:var(--violeta);}
.btn-bloco{width:100%;}
.btn-pequeno{padding:.5rem 1rem;font-size:.85rem;}
.grupo-botoes{display:flex;flex-wrap:wrap;gap:.7rem;}
.centro .grupo-botoes{justify-content:center;}

/* ---------- 5. Cabeçalho ---------- */
.cabecalho{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--borda);
}
.cabecalho-interno{display:flex;align-items:center;gap:1rem;height:66px;}
.marca{display:flex;align-items:center;gap:.55rem;font-family:var(--fonte-titulo);font-weight:700;font-size:1.12rem;letter-spacing:-.03em;flex-shrink:0;}
.marca-simbolo{
  width:30px;height:30px;border-radius:9px;background:var(--grad);
  display:grid;place-items:center;flex-shrink:0;
}
.marca-simbolo span{width:10px;height:10px;border-radius:50%;background:#fff;}
.nav{display:flex;align-items:center;gap:.15rem;margin-left:auto;}
.nav a{
  padding:.5rem .7rem;border-radius:var(--r-full);font-size:.9rem;color:var(--tinta-suave);
  white-space:nowrap;transition:color .2s,background .2s;
}
.nav a:hover{color:var(--tinta);background:var(--gelo-2);}
.nav a.ativo{color:var(--violeta);background:var(--violeta-tint);font-weight:600;}
.acoes-cabecalho{display:flex;align-items:center;gap:.4rem;margin-left:.5rem;}
.acoes-cabecalho .btn-fantasma{color:var(--tinta);}
.acoes-cabecalho .btn-fantasma:hover{color:var(--violeta);}
.acoes-cabecalho .btn-primario{background:var(--branco);border:1px solid var(--violeta-borda);color:var(--violeta);box-shadow:var(--sombra-sm);}
.acoes-cabecalho .btn-primario:hover{background:var(--violeta-tint);box-shadow:var(--sombra-sm);}

.botao-menu{
  display:none;margin-left:auto;width:40px;height:40px;border-radius:11px;
  background:var(--branco);border:1px solid var(--borda);cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:4px;
}
.botao-menu i{display:block;width:16px;height:2px;background:var(--tinta);border-radius:2px;transition:transform .2s,opacity .2s;}
.botao-menu[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg);}
.botao-menu[aria-expanded="true"] i:nth-child(2){opacity:0;}
.botao-menu[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* indicador de localização (não é seletor: o sistema detecta) */
.status-local{
  display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .8rem;
  border-radius:var(--r-full);border:1px solid var(--borda);background:var(--branco);
  font-size:.84rem;color:var(--tinta-suave);cursor:pointer;white-space:nowrap;
  transition:border-color .2s,color .2s,background .2s;
}
.status-local:hover{border-color:var(--violeta-borda);color:var(--violeta);background:var(--violeta-tint);}
.status-local .ponto{width:7px;height:7px;border-radius:50%;background:var(--tinta-fraca);flex-shrink:0;}
.status-local[data-estado="ok"]{border-color:var(--violeta-borda);background:var(--violeta-tint);color:var(--violeta-escuro);font-weight:600;}
.status-local[data-estado="ok"] .ponto{background:var(--violeta);}
.status-local[data-estado="detectando"] .ponto{background:var(--ambar);animation:pulsa 1.1s ease-in-out infinite;}
@keyframes pulsa{0%,100%{opacity:1;}50%{opacity:.25;}}

@media (max-width:1180px){
  .nav{
    position:fixed;inset:66px 0 auto 0;flex-direction:column;align-items:stretch;gap:.15rem;
    background:var(--branco);border-bottom:1px solid var(--borda);box-shadow:var(--sombra-md);
    padding:1rem var(--gutter) 1.5rem;margin-left:0;
    transform:translateY(-140%);transition:transform .26s ease;max-height:calc(100vh - 66px);overflow-y:auto;
  }
  .nav.aberto{transform:translateY(0);}
  .nav a{padding:.8rem 1rem;font-size:1rem;white-space:normal;}
  .acoes-cabecalho{margin:1rem 0 0;flex-direction:column;align-items:stretch;}
  .acoes-cabecalho .btn{width:100%;}
  .botao-menu{display:flex;}
  .status-local{width:100%;justify-content:center;}
}

/* ---------- 6. Hero ---------- */
.hero{
  padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);
  background:linear-gradient(180deg,#FBF8FF 0%,var(--branco) 62%);
  border-bottom:1px solid var(--borda-suave);
}
.hero h1{max-width:17ch;}
.hero.centro h1,.hero .centro h1{margin-left:auto;margin-right:auto;max-width:23ch;}
.selo{
  display:inline-flex;align-self:flex-start;align-items:center;gap:.5rem;padding:.35rem .85rem;margin-bottom:1.2rem;
  border-radius:var(--r-full);border:1px solid var(--violeta-borda);background:var(--violeta-tint);
  font-size:.81rem;color:var(--violeta-escuro);
}
.selo strong{font-weight:700;}

/* ---------- 7. Cartões e grades ---------- */
.grade{display:grid;gap:1.15rem;}
.grade-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.grade-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.grade-4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}

.cartao{
  position:relative;background:var(--branco);
  border:1px solid var(--borda);border-radius:var(--r-md);padding:1.5rem;
  box-shadow:var(--sombra-sm);
  transition:border-color .18s,transform .18s,box-shadow .18s;height:100%;
  display:flex;flex-direction:column;
}
a.cartao:hover,.cartao-interativo:hover{border-color:var(--violeta-borda);transform:translateY(-2px);box-shadow:var(--sombra-md);}
.cartao h3{margin-bottom:.4rem;}
.cartao p{color:var(--tinta-suave);font-size:.93rem;margin-bottom:.7rem;}
.cartao p:last-child{margin-bottom:0;}
.cartao-destaque{border-color:var(--violeta-borda);background:var(--violeta-tint);box-shadow:none;}

/* cards da home: fundo levemente destacado do branco da página, com sombra mais presente */
#categorias-home .cartao,
#destaques-home .cartao,
#segmentos-home .cartao,
#artigos-home .cartao{
  background:#F2F2F2;
  box-shadow:var(--sombra-md);
}
#categorias-home .cartao:hover,
#destaques-home .cartao:hover,
#segmentos-home .cartao:hover,
#artigos-home .cartao:hover{
  box-shadow:var(--sombra-lg);
}

.icone{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  margin-bottom:.95rem;flex-shrink:0;
  background:var(--violeta-tint);border:1px solid var(--violeta-borda);color:var(--violeta);
}
/* variações antigas mantidas como alias — o sistema hoje é monocromático em violeta */
.icone-frio,.icone-quente,.icone-verde{background:var(--violeta-tint);border-color:var(--violeta-borda);color:var(--violeta);}
.cartao-destaque .icone{background:var(--branco);}

/* etiquetas */
.etiqueta{
  display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .65rem;border-radius:var(--r-full);
  font-size:.74rem;font-weight:600;
  background:var(--gelo-2);border:1px solid var(--borda);color:var(--tinta-suave);
}
.etiqueta-ok{background:var(--verde-tint);border-color:var(--verde-borda);color:var(--verde);}
.etiqueta-breve{background:var(--ambar-tint);border-color:var(--ambar-borda);color:var(--ambar);}
.etiqueta-novo{background:var(--violeta-tint);border-color:var(--violeta-borda);color:var(--violeta);}
.etiqueta-exclusiva{background:var(--grad);border-color:transparent;color:#fff;}
.etiqueta-link{text-decoration:none;transition:border-color .15s,color .15s;}
.etiqueta-link:hover{border-color:var(--violeta);color:var(--violeta);}
.etiquetas{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:1rem;}

/* lista de checagem */
.lista-check{list-style:none;padding:0;margin:0;}
.lista-check li{position:relative;padding-left:1.7rem;margin-bottom:.55rem;color:var(--tinta-suave);font-size:.93rem;}
.lista-check li::before{
  content:"";position:absolute;left:0;top:.42em;width:16px;height:16px;border-radius:50%;
  background:var(--violeta);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 11.2 3.8 8.5l1-1 1.7 1.7 4.7-4.7 1 1z' fill='%23000'/%3E%3Ccircle cx='8' cy='8' r='7.2' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 11.2 3.8 8.5l1-1 1.7 1.7 4.7-4.7 1 1z' fill='%23000'/%3E%3Ccircle cx='8' cy='8' r='7.2' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* números / estatísticas */
.estatistica{text-align:center;padding:1.1rem .7rem;}
.estatistica b{display:block;font-family:var(--fonte-titulo);font-size:clamp(1.8rem,3.6vw,2.4rem);line-height:1.1;margin-bottom:.2rem;}
.estatistica span{font-size:.87rem;color:var(--tinta-fraca);}

/* faixa de estatísticas em destaque (fundo violeta sólido) */
/* restaura o padding-top (a regra ".hero + .secao-compacta" zera o topo, pensada
   para um fundo transparente que continua o hero — aqui teria ficado torto) */
.secao-compacta.faixa-estatisticas{padding-top:clamp(2.25rem,4.5vw,3.25rem);}
.faixa-estatisticas{background:var(--violeta);}
.faixa-estatisticas .estatistica b{background:none;-webkit-text-fill-color:#fff;color:#fff;}
.faixa-estatisticas .estatistica span{color:rgba(255,255,255,.8);}
/* flex em vez de grid: com grid auto-fit, um item "órfão" na última linha fica
   colado à esquerda em vez de centralizado; flex centraliza a linha inteira */
.faixa-estatisticas .grade{display:flex;flex-wrap:wrap;justify-content:center;}
.faixa-estatisticas .estatistica{flex:1 1 200px;max-width:260px;}

/* passos numerados */
.passos{counter-reset:passo;display:grid;gap:1.15rem;}
.passo{position:relative;padding-left:3.4rem;}
.passo::before{
  counter-increment:passo;content:counter(passo);
  position:absolute;left:0;top:0;width:38px;height:38px;border-radius:11px;
  display:grid;place-items:center;font-family:var(--fonte-titulo);font-weight:700;font-size:.95rem;
  background:var(--violeta-tint);border:1px solid var(--violeta-borda);color:var(--violeta);
}
.passo h3{margin-bottom:.25rem;}
.passo p{color:var(--tinta-suave);margin:0;font-size:.94rem;}

/* faixa "como funciona" em destaque (fundo violeta sólido) */
.faixa-passos{background:var(--violeta);border-top:none;border-bottom:none;}
.faixa-passos h2{color:#fff;}
.faixa-passos .subtitulo{color:rgba(255,255,255,.82);}
.faixa-passos .passo h3{color:#fff;}
.faixa-passos .passo p{color:rgba(255,255,255,.78);}

/* ---------- 8. Filtros ---------- */
.barra-filtros{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.75rem;}
.chip{
  padding:.48rem 1rem;border-radius:var(--r-full);border:1px solid var(--borda);
  background:var(--branco);color:var(--tinta-suave);font-size:.87rem;cursor:pointer;
  transition:all .16s ease;
}
.chip:hover{border-color:var(--violeta-borda);color:var(--violeta);}
.chip.ativo{background:var(--violeta);border-color:var(--violeta);color:#fff;}
.busca{
  flex:1 1 220px;min-width:180px;padding:.55rem 1rem;border-radius:var(--r-full);
  border:1px solid var(--borda);background:var(--branco);color:var(--tinta);font-size:.89rem;
}
.busca::placeholder{color:var(--tinta-fraca);}
.busca:focus{outline:none;border-color:var(--violeta);}

/* ---------- 9. Formulários ---------- */
.formulario{display:grid;gap:1rem;}
.campo{display:grid;gap:.35rem;}
.campo label{font-size:.87rem;font-weight:600;color:var(--tinta);}
.campo input,.campo select,.campo textarea{
  width:100%;padding:.72rem .9rem;border-radius:var(--r-sm);
  border:1px solid var(--borda);background:var(--branco);color:var(--tinta);
  transition:border-color .2s,box-shadow .2s;
}
.campo input::placeholder,.campo textarea::placeholder{color:var(--tinta-fraca);}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:none;border-color:var(--violeta);box-shadow:0 0 0 3px rgba(252,114,45,.12);
}
.campo textarea{min-height:130px;resize:vertical;}
.campo select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%2387848F' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:12px;padding-right:2.5rem;}
.campo .ajuda{font-size:.79rem;color:var(--tinta-fraca);}
.dupla{display:grid;gap:1rem;grid-template-columns:1fr 1fr;}
@media (max-width:560px){.dupla{grid-template-columns:1fr;}}
.linha-opcao{display:flex;align-items:flex-start;gap:.55rem;font-size:.87rem;color:var(--tinta-suave);}
.linha-opcao input{width:17px;height:17px;flex-shrink:0;margin-top:.2rem;accent-color:var(--violeta);}
.aviso-form{
  padding:.7rem .95rem;border-radius:var(--r-sm);font-size:.82rem;
  background:var(--ambar-tint);border:1px solid var(--ambar-borda);color:var(--ambar);
}

/* caixa autenticação — o painel em degradê é o destaque desta tela */
.tela-auth{min-height:calc(100vh - 66px);display:grid;grid-template-columns:1fr 1fr;background:var(--branco);}
.tela-auth-visual{
  padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;
  background:var(--grad);color:#fff;
}
.tela-auth-visual h1,.tela-auth-visual .subtitulo,.tela-auth-visual p{color:#fff;}
.tela-auth-visual .selo{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.32);color:#fff;}
.tela-auth-visual .lista-check li{color:rgba(255,255,255,.9);}
.tela-auth-visual .lista-check li::before{background:#fff;}
.tela-auth-visual .passo::before{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.32);color:#fff;}
.tela-auth-visual .passo p{color:rgba(255,255,255,.88);}
.tela-auth-form{padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;}
.caixa-auth{width:100%;max-width:420px;margin:0 auto;}
@media (max-width:900px){
  .tela-auth{grid-template-columns:1fr;min-height:0;}
  .tela-auth-visual{padding-top:3rem;padding-bottom:3rem;}
}

/* ---------- 10. Planos ---------- */
.grade-planos{display:grid;gap:1.15rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:stretch;}
.plano{display:flex;flex-direction:column;}
.plano .de{font-size:.81rem;color:var(--tinta-fraca);display:block;margin-top:.75rem;}
.plano .preco{font-family:var(--fonte-titulo);font-size:clamp(1.7rem,3vw,2.05rem);font-weight:700;line-height:1.1;margin:.1rem 0 .2rem;}
.plano .btn{margin-top:1.4rem;}
.plano ul{margin-top:1rem;}
.fita{
  position:absolute;top:-1px;right:1.25rem;transform:translateY(-50%);
  padding:.22rem .75rem;border-radius:var(--r-full);background:var(--grad);
  font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;
  box-shadow:var(--sombra-violeta);
}

/* ---------- 11. Tabelas ---------- */
.rolagem-x{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md);border:1px solid var(--borda);background:var(--branco);}
table{width:100%;border-collapse:collapse;font-size:.91rem;min-width:560px;}
th,td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--borda-suave);}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--tinta-fraca);font-weight:600;background:var(--gelo);}
tbody tr:last-child td{border-bottom:0;}
tbody tr:hover{background:var(--violeta-tint);}

/* ---------- 12. Perfil / painel ---------- */
.layout-painel{display:grid;grid-template-columns:240px 1fr;gap:2rem;align-items:start;}
.menu-lateral{
  position:sticky;top:86px;display:grid;gap:.15rem;
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--r-md);padding:.6rem;
  box-shadow:var(--sombra-sm);
}
.menu-lateral a{padding:.6rem .8rem;border-radius:var(--r-sm);font-size:.9rem;color:var(--tinta-suave);transition:all .16s;}
.menu-lateral a:hover{background:var(--gelo-2);color:var(--tinta);}
.menu-lateral a.ativo{background:var(--violeta-tint);color:var(--violeta);font-weight:600;}
@media (max-width:900px){
  .layout-painel{grid-template-columns:1fr;}
  .menu-lateral{position:static;display:flex;overflow-x:auto;gap:.35rem;}
  .menu-lateral a{white-space:nowrap;}
}
.avatar{
  width:60px;height:60px;border-radius:17px;background:var(--grad);
  display:grid;place-items:center;font-family:var(--fonte-titulo);font-weight:700;font-size:1.3rem;color:#fff;flex-shrink:0;
}
.cabecalho-perfil{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;}

/* ---------- 13. Artigos ---------- */
.artigo{max-width:720px;margin:0 auto;}
.artigo p,.artigo li{font-size:1.02rem;color:var(--tinta-suave);}
.artigo h2{margin-top:2.4rem;color:var(--tinta);}
.artigo h3{margin-top:1.7rem;color:var(--tinta);}
.artigo blockquote{
  margin:1.8rem 0;padding:1rem 1.3rem;border-left:3px solid var(--violeta);
  background:var(--violeta-tint);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--tinta);
}
.meta-artigo{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;font-size:.84rem;color:var(--tinta-fraca);margin-bottom:1.5rem;}

/* ---------- 14. Diagnóstico ---------- */
.progresso{height:6px;border-radius:var(--r-full);background:var(--gelo-2);overflow:hidden;margin-bottom:1.75rem;}
.progresso i{display:block;height:100%;background:var(--grad);border-radius:var(--r-full);transition:width .35s ease;}
.opcoes{display:grid;gap:.7rem;}
.opcao{
  display:flex;align-items:center;gap:.8rem;padding:.9rem 1.1rem;cursor:pointer;
  border:1px solid var(--borda);border-radius:var(--r-md);background:var(--branco);
  transition:all .16s ease;
}
.opcao:hover{border-color:var(--violeta-borda);background:var(--gelo);}
.opcao.marcada{border-color:var(--violeta);background:var(--violeta-tint);}
.opcao input{width:19px;height:19px;flex-shrink:0;accent-color:var(--violeta);}
.opcao b{display:block;font-weight:600;}
.opcao span{font-size:.84rem;color:var(--tinta-fraca);}

/* ---------- 15. Localização ---------- */
.fundo-modal{
  position:fixed;inset:0;z-index:100;background:rgba(22,21,28,.42);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:grid;place-items:center;padding:1.25rem;
}
.modal{
  width:100%;max-width:430px;background:var(--branco);
  border:1px solid var(--borda);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--sombra-lg);
  max-height:90vh;overflow-y:auto;
}
.modal h3{margin-bottom:.4rem;}
.modal p{color:var(--tinta-suave);font-size:.91rem;}

.aviso-local{
  position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:90;max-width:430px;margin:0 auto;
  background:var(--branco);border:1px solid var(--borda);border-radius:var(--r-md);
  padding:1.05rem 1.15rem;box-shadow:var(--sombra-lg);
  animation:sobe .3s ease;
}
@keyframes sobe{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.aviso-local p{font-size:.88rem;color:var(--tinta-suave);margin-bottom:.85rem;}
.aviso-local strong{color:var(--tinta);}

/* bloco de exclusivos da praça */
.bloco-praca{
  border:1px solid var(--violeta-borda);background:var(--violeta-tint);
  border-radius:var(--r-md);padding:1.4rem 1.5rem;margin-bottom:1.75rem;
}
.bloco-praca h3{margin-bottom:.3rem;}
.bloco-praca p{color:var(--tinta-suave);font-size:.92rem;margin:0;}

/* ---------- 16. CTA ---------- */
.bloco-cta{
  border-radius:var(--r-lg);padding:clamp(2rem,4.5vw,3.25rem);text-align:center;
  border:1px solid var(--violeta-borda);background:var(--violeta-tint);
}
.bloco-cta h2{max-width:22ch;margin-left:auto;margin-right:auto;}

/* ---------- 17. Rodapé ---------- */
.rodape{background:var(--tinta);padding:3.25rem 0 1.75rem;margin-top:2rem;}
.rodape-grade{display:grid;gap:2rem;grid-template-columns:1.6fr 1fr 1fr 1fr;}
@media (max-width:820px){.rodape-grade{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.rodape-grade{grid-template-columns:1fr;}}
.rodape .marca{color:#fff;}
.rodape .texto-suave{color:rgba(255,255,255,.75);}
.rodape .texto-fraco{color:rgba(255,255,255,.5);}
.rodape h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.55);margin-bottom:.9rem;}
.rodape ul{list-style:none;padding:0;margin:0;}
.rodape li{margin-bottom:.45rem;}
.rodape a{font-size:.91rem;color:rgba(255,255,255,.75);transition:color .2s;}
.rodape a:hover{color:var(--violeta-claro);}
.rodape-base{
  margin-top:2.25rem;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.84rem;color:rgba(255,255,255,.5);
}

/* ---------- 18. Trilha ---------- */
.trilha{font-size:.84rem;color:var(--tinta-fraca);margin-bottom:1.1rem;display:flex;flex-wrap:wrap;gap:.35rem;}
.trilha a:hover{color:var(--violeta);}
.trilha span{opacity:.55;}

/* ---------- 19. Movimento ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}
