/* ==========================================================================
   noveti advocacia empresarial — folha de estilo do site institucional
   Paleta petróleo #0F5569 · off-white #F5F3EF · coral #F0AA96
   Versão 2 — tratamento mais sóbrio, uso reduzido de fotografia
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root{
  --petroleo:        #0F5569;
  --petroleo-medio:  #2E6377;
  --petroleo-claro:  #146B83;
  --petroleo-escuro: #0A2C38;

  --areia:           #F5F3EF;
  --areia-2:         #EFEBE4;
  --linha:           #DFDAD2;
  --linha-clara:     #E7E2DA;

  --texto:           #4B6068;
  --texto-suave:     #93A3A9;
  --azul-suave:      #7CA5B3;
  --azul-palido:     #C5DBE3;
  --coral:           #F0AA96;

  --branco:          #FFFFFF;

  --fonte: "Jost", "Century Gothic", "Futura", -apple-system, BlinkMacSystemFont,
           "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --max: 1200px;
  --gutter: clamp(1.5rem, 5vw, 4.5rem);
  --header-h: 84px;

  --t: 380ms cubic-bezier(.22,.61,.36,1);
}

/* --------------------------------------------------------------------------
   2. RESET
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body,h1,h2,h3,h4,p,figure,ul,ol,dl,dd{margin:0;}
ul,ol{padding:0;list-style:none;}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}

body{
  font-family:var(--fonte);
  font-weight:300;
  font-size:clamp(.99rem,.95rem + .16vw,1.03rem);
  line-height:1.8;
  color:var(--texto);
  background:var(--areia);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

/* --------------------------------------------------------------------------
   3. UTILITÁRIOS
   -------------------------------------------------------------------------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);}
.secao{padding-block:clamp(4rem,8.5vw,7.5rem);}
.secao--compacta{padding-block:clamp(3rem,6vw,5rem);}
.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;}

/* Grade editorial: coluna de título à esquerda, conteúdo à direita */
.grade-secao{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.4fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.grade-secao__titulo{position:sticky;top:calc(var(--header-h) + 2rem);}

.rotulo{
  display:flex;align-items:center;gap:.9rem;
  font-size:.67rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;
  color:var(--texto-suave);margin-bottom:1.35rem;
}
.rotulo::before{content:"";width:30px;height:1px;background:var(--texto-suave);flex:none;}
.rotulo--claro{color:var(--azul-palido);}
.rotulo--claro::before{background:var(--coral);}

h1,h2,h3,h4{font-weight:300;color:var(--petroleo);text-wrap:balance;}
h1{font-size:clamp(1.95rem,1.3rem + 2.2vw,2.9rem);font-weight:200;
   line-height:1.26;letter-spacing:-.01em;}
h2{font-size:clamp(1.55rem,1.2rem + 1.5vw,2.35rem);line-height:1.25;letter-spacing:-.01em;}
h3{font-size:clamp(1.02rem,.98rem + .3vw,1.18rem);font-weight:400;line-height:1.4;
   letter-spacing:0;}

.filete{width:48px;height:1px;background:var(--coral);margin:1.6rem 0;}
.filete--claro{background:var(--coral);}

.lead{font-size:clamp(1.02rem,.98rem + .3vw,1.12rem);line-height:1.75;}
.texto{max-width:60ch;}
.texto p + p{margin-top:1.1rem;}
.destaque{color:var(--petroleo);font-weight:500;}

/* --------------------------------------------------------------------------
   4. BOTÕES E LINKS
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:.65rem;
  padding:.85rem 1.7rem;border:1px solid var(--petroleo);
  font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;
  color:var(--petroleo);background:transparent;
  transition:background var(--t),color var(--t),border-color var(--t);
}
.btn:hover,.btn:focus-visible{background:var(--petroleo);color:var(--branco);}
.btn--solido{background:var(--petroleo);color:var(--branco);}
.btn--solido:hover,.btn--solido:focus-visible{background:var(--petroleo-escuro);border-color:var(--petroleo-escuro);}
.btn--claro{border-color:rgba(255,255,255,.45);color:var(--branco);}
.btn--claro:hover,.btn--claro:focus-visible{background:var(--branco);color:var(--petroleo);border-color:var(--branco);}
.btn svg{width:17px;height:17px;flex:none;}

.link-seta{
  display:inline-flex;align-items:center;gap:.6rem;
  font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--petroleo);border-bottom:1px solid var(--linha);padding-bottom:.4rem;
  transition:border-color var(--t);
}
.link-seta::after{content:"\2192";transition:transform var(--t);}
.link-seta:hover{border-color:var(--coral);}
.link-seta:hover::after{transform:translateX(5px);}

:focus-visible{outline:2px solid var(--coral);outline-offset:3px;}

/* --------------------------------------------------------------------------
   5. CABEÇALHO
   -------------------------------------------------------------------------- */
.topo{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);display:flex;align-items:center;
  transition:background var(--t),box-shadow var(--t);
}
.topo__interno{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:2rem;}
.topo__logo img{width:clamp(104px,12vw,132px);}
.topo__logo .logo--petroleo{display:none;}

.topo__nav{display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.6rem);}
.topo__nav a{
  font-size:.73rem;letter-spacing:.22em;text-transform:uppercase;color:var(--branco);
  padding-block:.4rem;position:relative;transition:color var(--t);
}
.topo__nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--coral);transition:width var(--t);
}
.topo__nav a:hover::after,.topo__nav a[aria-current="page"]::after{width:100%;}

/* O botão de WhatsApp não aparece na barra do topo:
   só dentro do menu mobile aberto e no botão flutuante. */
.topo__zap{display:none;}

.topo.is-solido{background:rgba(245,243,239,.96);backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--linha);}
.topo.is-solido .logo--branco{display:none;}
.topo.is-solido .logo--petroleo{display:block;}
.topo.is-solido .topo__nav a{color:var(--petroleo);}
.topo.is-solido .menu-btn span{background:var(--petroleo);}

.menu-btn{display:none;width:44px;height:44px;position:relative;z-index:120;}
.menu-btn span{display:block;width:22px;height:1px;background:var(--branco);margin:6px auto;
  transition:transform var(--t),opacity var(--t),background var(--t);}
.menu-aberto .menu-btn span{background:var(--branco);}
.menu-aberto .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-aberto .menu-btn span:nth-child(2){opacity:0;}
.menu-aberto .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* --------------------------------------------------------------------------
   6. CAPA E ABERTURAS
   -------------------------------------------------------------------------- */
.hero{position:relative;display:flex;align-items:center;isolation:isolate;
  min-height:min(94svh,820px);padding-top:var(--header-h);overflow:hidden;}
.hero__fundo{position:absolute;inset:0;z-index:-2;background:var(--petroleo-escuro);}
.hero__fundo img{width:100%;height:100%;object-fit:cover;}
.hero__fundo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(10,44,56,.88) 0%,rgba(10,44,56,.62) 42%,rgba(10,44,56,.22) 100%);
}
.hero__conteudo{max-width:46rem;}
.hero h1{color:var(--branco);}
.hero h1 .coral{color:var(--coral);display:block;}
.hero p{color:var(--azul-palido);max-width:38rem;margin-top:1.9rem;font-size:1rem;line-height:1.78;}
.hero__acoes{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.4rem;}

/* Abertura das páginas internas — mais baixa, deixa a fotografia respirar */
.hero--interno{min-height:min(72svh,600px);}
/* Véu mais leve para que a cena da oficina fique legível */
.hero--cena .hero__fundo::after{
  background:linear-gradient(100deg,rgba(10,44,56,.90) 0%,rgba(10,44,56,.62) 34%,rgba(10,44,56,.12) 72%,rgba(10,44,56,.04) 100%);
}
.hero--cena .hero__conteudo{max-width:43rem;}
.hero--cena h1{font-size:clamp(1.8rem,1.2rem + 2vw,2.65rem);}


/* --------------------------------------------------------------------------
   7. BLOCOS ESCUROS (substituem as faixas fotográficas)
   -------------------------------------------------------------------------- */
.escuro{background:var(--petroleo);color:var(--azul-palido);}
.escuro h2,.escuro h3{color:var(--branco);}
.escuro .rotulo{color:var(--azul-palido);}
.escuro .rotulo::before{background:var(--coral);}
.escuro .grade-secao__titulo p{color:var(--azul-palido);}
.escuro--profundo{background:var(--petroleo-escuro);}

/* --------------------------------------------------------------------------
   8. LISTAS
   -------------------------------------------------------------------------- */
.lista{border-top:1px solid var(--linha);}
.lista li{border-bottom:1px solid var(--linha);}
.lista__item{display:grid;grid-template-columns:52px 1fr;gap:1rem;
  padding-block:1.45rem;align-items:baseline;}
.lista__num{font-size:.68rem;letter-spacing:.16em;color:var(--texto-suave);
  font-variant-numeric:tabular-nums;padding-top:.3rem;}
.lista__item h3{margin-bottom:.3rem;}
.lista__item p{font-size:.94rem;line-height:1.62;max-width:56ch;}
.lista--sem-num .lista__item{grid-template-columns:1fr;}

.lista--escura{border-color:rgba(255,255,255,.16);}
.lista--escura li{border-color:rgba(255,255,255,.16);}
.lista--escura .lista__item h3{color:var(--branco);}
.lista--escura .lista__item p{color:var(--azul-palido);}
.lista--escura .lista__num{color:var(--azul-suave);}

/* --------------------------------------------------------------------------
   9. GRADES
   -------------------------------------------------------------------------- */
.grade{display:grid;gap:clamp(1.6rem,3vw,2.6rem);}
.grade--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grade--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grade--4{grid-template-columns:repeat(4,minmax(0,1fr));}

.card{border-top:1px solid var(--linha);padding-top:1.2rem;}
.card h3{margin-bottom:.4rem;}
.card p{font-size:.91rem;line-height:1.6;}
.escuro .card{border-color:rgba(255,255,255,.18);}
.escuro .card p{color:var(--azul-palido);}

.passo__num{display:block;font-size:.68rem;letter-spacing:.16em;color:var(--texto-suave);
  border-top:1px solid var(--linha);padding-top:1rem;margin-bottom:.9rem;
  font-variant-numeric:tabular-nums;}
.passo h3{margin-bottom:.5rem;}
.passo p{font-size:.91rem;line-height:1.6;}

/* --------------------------------------------------------------------------
   10. PERFIL DO SÓCIO
   -------------------------------------------------------------------------- */
.perfil{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.perfil__retrato{max-width:380px;}
.perfil__retrato img{width:100%;}
.perfil__cargo{font-size:.95rem;color:var(--petroleo-medio);margin-top:.5rem;
  letter-spacing:.02em;}
.perfil__dados{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem;
  border-top:1px solid var(--linha);padding-top:1.5rem;margin-top:2.4rem;}
.perfil__dados dt{font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--texto-suave);margin-bottom:.55rem;}
.perfil__dados dd{font-size:.92rem;line-height:1.55;color:var(--petroleo);}

/* --------------------------------------------------------------------------
   11. CONTATO
   -------------------------------------------------------------------------- */
.contatos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--linha);border:1px solid var(--linha);}
.contato-cartao{
  display:flex;gap:1.1rem;align-items:flex-start;
  background:var(--areia);padding:clamp(1.4rem,3vw,2rem);
  transition:background var(--t);
}
a.contato-cartao:hover{background:var(--branco);}
.contato-cartao__icone{flex:none;width:22px;color:var(--petroleo);padding-top:.55rem;}
.contato-cartao__icone svg{width:20px;height:20px;}
.contato-cartao dt{font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--texto-suave);margin-bottom:.35rem;}
.contato-cartao dd{font-size:1rem;color:var(--petroleo);word-break:break-word;}
.contato-cartao small{display:block;font-size:.8rem;color:var(--texto-suave);
  margin-top:.25rem;line-height:1.5;}

/* --------------------------------------------------------------------------
   12. RODAPÉ
   -------------------------------------------------------------------------- */
.rodape{background:var(--petroleo-escuro);color:var(--azul-palido);
  padding-block:clamp(3.5rem,6.5vw,5rem) 2rem;font-size:.9rem;}
.rodape__topo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);
  gap:clamp(2.5rem,6vw,5rem);align-items:start;}
.rodape__marca img{width:138px;margin-bottom:1.4rem;}
.rodape__slogan{color:var(--branco);font-size:1.28rem;font-weight:200;line-height:1.38;}
.rodape__slogan .coral{color:var(--coral);display:block;}
.rodape__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;}
.rodape dt{font-size:.63rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--azul-suave);margin-bottom:.7rem;}
.rodape dd{margin-bottom:.4rem;}
.rodape a{border-bottom:1px solid transparent;transition:border-color var(--t),color var(--t);}
.rodape a:hover{color:var(--branco);border-color:var(--coral);}

.rodape__base{
  margin-top:clamp(2.5rem,5vw,3.75rem);padding-top:1.9rem;
  border-top:1px solid rgba(255,255,255,.14);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);
  gap:clamp(1.5rem,6vw,5rem);align-items:start;
}
.rodape__base p:not(.rodape__rot){
  font-size:.74rem;line-height:1.75;color:var(--azul-suave);
}
.rodape__rot{font-size:.63rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--azul-suave);margin-bottom:.6rem;}

/* Botão flutuante de WhatsApp */
.zap-flutuante{
  position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:90;
  width:54px;height:54px;border-radius:50%;background:var(--petroleo);
  display:grid;place-items:center;color:var(--branco);
  box-shadow:0 10px 26px rgba(10,44,56,.3);
  transition:transform var(--t),background var(--t);
}
.zap-flutuante:hover{transform:translateY(-3px);background:var(--petroleo-claro);}
.zap-flutuante svg{width:26px;height:26px;}

/* --------------------------------------------------------------------------
   13. REVELAÇÃO SUAVE
   -------------------------------------------------------------------------- */
.revela{opacity:0;transform:translateY(16px);
  transition:opacity .8s ease,transform .8s cubic-bezier(.22,.61,.36,1);}
.revela.is-visivel{opacity:1;transform:none;}

/* --------------------------------------------------------------------------
   14. RESPONSIVO
   -------------------------------------------------------------------------- */
@media (max-width:1000px){
  .grade--4,.grade--3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grade-secao{grid-template-columns:1fr;}
  .grade-secao__titulo{position:static;}
  .perfil{grid-template-columns:1fr;}
  .perfil__retrato{max-width:300px;}
  .rodape__topo{grid-template-columns:1fr;}
  .rodape__base{grid-template-columns:1fr;gap:1.75rem;}
  .rodape__direitos{order:2;}
}

@media (max-width:860px){
  :root{--header-h:68px;}
  .menu-btn{display:block;}

  .topo__nav{
    position:fixed;inset:0;z-index:110;
    background:var(--petroleo-escuro);
    flex-direction:column;justify-content:center;gap:2.1rem;
    opacity:0;visibility:hidden;transition:opacity var(--t),visibility var(--t);
  }
  .menu-aberto .topo__nav{opacity:1;visibility:visible;}
  .topo__nav a{color:var(--branco)!important;font-size:1.25rem;letter-spacing:.16em;}

  /* WhatsApp reaparece dentro do menu aberto */
  .menu-aberto .topo__zap{
    display:inline-flex;align-items:center;gap:.55rem;position:fixed;z-index:115;
    left:50%;bottom:17%;transform:translateX(-50%);
    font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--branco);border:1px solid rgba(255,255,255,.45);padding:.7rem 1.3rem;
  }
  .menu-aberto .topo__zap svg{width:16px;height:16px;}

  .hero{min-height:min(88svh,700px);}
  .hero--interno{min-height:min(60svh,460px);}

  .grade--2,.grade--3,.grade--4{grid-template-columns:1fr;}
  .contatos{grid-template-columns:1fr;}
  .perfil__dados{grid-template-columns:1fr;gap:1.3rem;}
  .rodape__cols{grid-template-columns:1fr 1fr;}
  .lista__item{grid-template-columns:40px 1fr;gap:.8rem;}
}

@media (max-width:520px){
  .rodape__cols{grid-template-columns:1fr;}
  .hero__acoes .btn{width:100%;justify-content:center;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;
    scroll-behavior:auto!important;}
  .revela{opacity:1;transform:none;}
}

@media print{
  .topo,.zap-flutuante,.menu-btn{display:none!important;}
  body{background:#fff;color:#000;}
}

/* --------------------------------------------------------------------------
   15. AJUSTES PONTUAIS
   -------------------------------------------------------------------------- */
.escuro .link-seta{color:var(--branco);border-color:rgba(255,255,255,.28);}
.escuro .link-seta:hover{border-color:var(--coral);}
.escuro .texto p{color:var(--azul-palido);}
