/* ==========================================================================
   PEREIRA E GOMES — HOME INSTITUCIONAL (proposta)
   Depende das variáveis/tokens definidos em style.css.
   Linguagem visual própria desta página: hero editorial, listas indexadas,
   faixa de credenciais estática e chamada de blog — sem os componentes
   interativos da landing (diagnóstico, badges com modal, foto rotativa).
   ========================================================================== */

.home-nav-current{ background: var(--gold-500); color: var(--navy-950); border-radius:100px; }

/* ---------------------------------------------------------------------
   HERO EDITORIAL — versão centralizada institucional
--------------------------------------------------------------------- */
.home-hero{
  position:relative;
  padding:150px 0 108px;
  background:
    radial-gradient(900px 420px at 50% 16%, rgba(199,168,109,.12), transparent 72%),
    radial-gradient(900px 520px at 100% 0%, var(--surface-a-1) 0%, transparent 64%),
    linear-gradient(180deg, var(--surface-a-2), var(--surface-a-3));
  overflow:hidden;
}
.home-hero::before{
  content:'';
  position:absolute;
  inset:22px;
  border:1px solid rgba(199,168,109,.22);
  border-radius:34px;
  pointer-events:none;
}
.home-hero::after{
  content:'';
  position:absolute;
  left:50%;
  top:118px;
  width:min(760px, 72vw);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg, transparent, rgba(199,168,109,.42), transparent);
  pointer-events:none;
}
.home-hero-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.home-hero-line{
  position:absolute;
  top:0;
  width:1px;
  height:100%;
  background:linear-gradient(180deg, transparent, rgba(199,168,109,.14), transparent);
}
.home-hero-line--left{ left:10%; }
.home-hero-line--right{ right:10%; }

.home-hero-centered-inner{
  position:relative;
  z-index:1;
  max-width:880px;
  margin:0 auto;
  padding:0 32px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.home-hero-kicker{
  color:var(--gold-400);
  justify-content:center;
  margin-bottom:18px;
  margin-top:6px;
}
.home-hero h1{
  max-width:780px;
  margin:0 auto;
  font-size:clamp(2.25rem, 5vw, 4.25rem);
  line-height:1.08;
  letter-spacing:-.025em;
  color:var(--surface-a-text);
}
.home-hero-sub{
  margin:24px auto 0;
  max-width:650px;
  font-size:1.08rem;
  line-height:1.7;
  color:var(--surface-a-text-dim);
}
.home-hero-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:36px;
}
.home-hero-links{
  margin-top:32px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
}
.home-hero-links a{
  font-size:.74rem;
  letter-spacing:.02em;
  color:rgba(247,245,240,.62);
  border:1px solid rgba(247,245,240,.13);
  border-radius:100px;
  padding:7px 12px;
  background:rgba(247,245,240,.025);
  transition:border-color .3s var(--ease), color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.home-hero-links a:hover{
  color:var(--gold-100);
  border-color:rgba(199,168,109,.45);
  background:rgba(199,168,109,.07);
  transform:translateY(-1px);
}

html[data-theme="light"] .home-hero{
  background:
    radial-gradient(900px 420px at 50% 16%, rgba(199,168,109,.18), transparent 72%),
    radial-gradient(900px 520px at 100% 0%, rgba(255,255,255,.82) 0%, transparent 64%),
    linear-gradient(180deg, #f7f5f0, #efe7d6);
}
html[data-theme="light"] .home-hero::before{ border-color:rgba(11,42,74,.10); }
html[data-theme="light"] .home-hero h1{ color:var(--navy-900); }
html[data-theme="light"] .home-hero-sub{ color:var(--gray-500); }
html[data-theme="light"] .home-hero-links a{
  color:rgba(11,42,74,.68);
  border-color:rgba(11,42,74,.12);
  background:rgba(255,255,255,.28);
}
html[data-theme="light"] .home-hero-links a:hover{
  color:var(--navy-900);
  border-color:rgba(199,168,109,.52);
  background:rgba(199,168,109,.10);
}

@media (max-width:640px){
  .home-hero{ padding:130px 0 82px; }
  .home-hero::before{ inset:14px; border-radius:24px; }
  .home-hero h1{ font-size:clamp(2rem, 10vw, 3rem); }
}

/* ---------------------------------------------------------------------
   ESPAÇAMENTO GERAL DA HOME
--------------------------------------------------------------------- */
.home-institutional-page .section,
body .section{
  scroll-margin-top:90px;
}
.home-section-compact{
  padding:82px 0;
}
.home-section-compact + .home-section-compact{
  padding-top:58px;
}

/* ---------------------------------------------------------------------
   O ESCRITÓRIO — layout split limpo
--------------------------------------------------------------------- */
.home-about-new{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:56px;
  align-items:center;
}
.home-about-intro{
  max-width:520px;
}
.home-about-intro h2{
  margin-bottom:22px;
}
.home-about-intro p{
  color:var(--gray-500);
  font-size:1.02rem;
  line-height:1.75;
  margin-bottom:26px;
}
.home-about-panel{
  position:relative;
  background:#fff;
  border:1px solid var(--line-on-light);
  border-radius:var(--radius-lg);
  padding:34px 38px;
  box-shadow:0 34px 80px -58px rgba(11,42,74,.38);
  overflow:hidden;
}
.home-about-panel::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg, var(--gold-400), var(--gold-600));
}
.home-about-panel-line{
  position:absolute;
  left:78px;
  top:46px;
  bottom:46px;
  width:1px;
  background:linear-gradient(180deg, rgba(199,168,109,.55), rgba(199,168,109,.12));
}
.home-about-principle{
  position:relative;
  display:grid;
  grid-template-columns:54px 1fr;
  gap:22px;
  padding:22px 0;
  border-bottom:1px solid var(--line-on-light);
}
.home-about-principle:first-of-type{ padding-top:4px; }
.home-about-principle:last-child{ border-bottom:none; padding-bottom:4px; }
.home-about-principle span{
  position:relative;
  z-index:1;
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--navy-900);
  color:var(--gold-400);
  font-family:var(--font-display);
  font-size:.95rem;
  box-shadow:0 0 0 8px #fff;
}
.home-about-principle h3{
  color:var(--navy-900);
  font-size:1.05rem;
  margin-bottom:8px;
}
.home-about-principle p{
  color:var(--gray-500);
  font-size:.94rem;
  line-height:1.62;
}

/* ---------------------------------------------------------------------
   DIFERENCIAIS — cards compactos e institucionais
--------------------------------------------------------------------- */
.home-diff-new{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:54px;
  align-items:start;
}
.home-diff-heading{
  position:sticky;
  top:110px;
}
.home-diff-heading .section-title{
  font-size:clamp(1.65rem,2.6vw,2.25rem);
}
.home-diff-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.home-diff-card{
  min-height:210px;
  background:linear-gradient(180deg, #fff, #fbfaf7);
  border:1px solid var(--line-on-light);
  border-radius:var(--radius-md);
  padding:28px 26px;
  transition:transform .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.home-diff-card:hover{
  transform:translateY(-4px);
  border-color:rgba(199,168,109,.66);
  box-shadow:0 30px 70px -50px rgba(11,42,74,.35);
}
.home-diff-card-number{
  display:block;
  font-family:var(--font-display);
  color:var(--gold-600);
  font-size:1.3rem;
  margin-bottom:32px;
}
.home-diff-card h3{
  color:var(--navy-900);
  font-size:1.08rem;
  margin-bottom:10px;
}
.home-diff-card p{
  color:var(--gray-500);
  font-size:.92rem;
  line-height:1.62;
}

/* ---------------------------------------------------------------------
   /* ---------------------------------------------------------------------
   ÁREAS DE ATUAÇÃO — grid institucional simples (sem filtro/diagnóstico)
--------------------------------------------------------------------- */
.home-areas-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--glass-border); border: 1px solid var(--glass-border); border-radius: var(--radius-lg); overflow: hidden; }
.home-area-cell{
  background: var(--surface-a-2); padding: 30px 26px; min-height: 190px;
  display:flex; flex-direction:column; gap: 14px;
  transition: background .35s var(--ease);
}
.home-area-cell:hover{ background: var(--surface-a-1); }
.home-area-icon{ color: var(--gold-400); display:inline-flex; transition: transform .35s var(--ease); }
.home-area-cell:hover .home-area-icon{ transform: translateY(-3px) scale(1.06); }
.home-area-cell h3{ font-size: .98rem; color: var(--surface-a-text); font-weight:600; font-family: var(--font-body); }
.home-area-cell p{ font-size: .84rem; color: var(--surface-a-text-dim); line-height: 1.55; }

/* ---------------------------------------------------------------------
   SÓCIOS — perfis editoriais alternados
--------------------------------------------------------------------- */
.home-partner{ display:grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: center; }
.home-partner + .home-partner{ margin-top: 86px; }
.home-partner--reverse{ grid-template-columns: 1.2fr .8fr; }
.home-partner--reverse .home-partner-media{ order: 2; }
.home-partner-media{ position: relative; }
.home-partner-frame{ border-radius: var(--radius-lg); overflow:hidden; aspect-ratio: 4/4.7; border: 1px solid var(--line-on-light); box-shadow: 0 40px 90px -50px rgba(11,42,74,.35); }
.home-partner-frame img{ width:100%; height:100%; object-fit:cover; }
.home-partner-copy .socio-tag{ margin-bottom: 12px; }
.home-partner-copy h3{ font-size: 1.6rem; color: var(--navy-900); margin-bottom: 16px; }
.home-partner-copy p{ color: var(--gray-500); font-size: .98rem; line-height: 1.75; margin-bottom: 14px; }

/* ---------------------------------------------------------------------
   CREDENCIAIS — faixa estática (sem modal)
--------------------------------------------------------------------- */
.home-credentials{
  display:flex; flex-wrap:wrap; gap: 0;
  border-top: 1px solid var(--line-on-light); border-bottom: 1px solid var(--line-on-light);
}
.home-credential{
  flex: 1 1 200px; display:flex; align-items:flex-start; gap: 14px;
  padding: 28px 26px; border-left: 1px solid var(--line-on-light);
}
.home-credential:first-child{ border-left: none; }
.home-credential svg{ color: var(--gold-600); flex-shrink:0; margin-top: 2px; }
.home-credential strong{ display:block; font-size: .92rem; color: var(--navy-900); margin-bottom: 4px; }
.home-credential span{ font-size: .82rem; color: var(--gray-500); line-height:1.5; }

/* ---------------------------------------------------------------------
   BLOG NA HOME — redirecionamento simples
--------------------------------------------------------------------- */
.home-blog-redirect{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:42px 46px;
  border-radius:var(--radius-lg);
  border:1px solid var(--line-on-light);
  background:
    linear-gradient(90deg, #fff 0%, #fff 58%, rgba(245,240,228,.75) 100%);
  box-shadow:0 34px 80px -62px rgba(11,42,74,.35);
  overflow:hidden;
}
.home-blog-redirect::after{
  content:'';
  position:absolute;
  right:-90px;
  top:-120px;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(199,168,109,.18), transparent 70%);
  pointer-events:none;
}
.home-blog-redirect > *{
  position:relative;
  z-index:1;
}
.home-blog-redirect h2{
  color:var(--navy-900);
  font-size:clamp(1.45rem,2.4vw,2.1rem);
  line-height:1.18;
  max-width:640px;
}
.home-blog-redirect p{
  margin-top:14px;
  color:var(--gray-500);
  line-height:1.65;
  max-width:620px;
}

/* ---------------------------------------------------------------------
   /* ---------------------------------------------------------------------
   CTA WHATSAPP — faixa sóbria (sem glow)
--------------------------------------------------------------------- */
.home-cta{
  background: var(--surface-a-3); border-top: 1px solid var(--gold-border-soft);
  text-align: center; padding: 80px 32px;
}
.home-cta h2{ color: var(--surface-a-text); font-size: clamp(1.5rem, 2.6vw, 2.15rem); max-width: 620px; margin: 10px auto 0; }
.home-cta p:not(.eyebrow){ color: var(--surface-a-text-dim); max-width: 480px; margin: 16px auto 0; line-height:1.6; }
.home-cta .home-hero-actions{ justify-content:center; margin-top: 32px; }

/* ---------------------------------------------------------------------
   CONTATO
--------------------------------------------------------------------- */
.home-contact-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap: 50px; align-items:start; }
.home-contact-info-list{ display:flex; flex-direction:column; gap: 6px; margin-top: 26px; }
.home-contact-info-row{ gap:8px; padding:12px; margin:0 -12px; border-radius: var(--radius-sm); border:1px solid transparent; }
.home-contact-info-row > .contact-icon{ transition:transform .3s var(--ease); }
.home-contact-info-row strong{ display:block; color: var(--surface-a-text); font-size:.92rem; }
.home-contact-info-row span{ color: var(--surface-a-text-dim); font-size:.85rem; }
.home-contact-info-body{ flex:1; min-width:0; }

.home-contact-info-row--link{
  cursor:pointer;
  transition: background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);
}
.home-contact-info-row--link:hover,
.home-contact-info-row--link:focus-visible{
  background: rgba(199,168,109,.08);
  border-color: rgba(199,168,109,.28);
  transform: translateX(4px);
}
.home-contact-info-row--link:hover > .contact-icon{ transform: scale(1.1); }
.home-contact-info-arrow{
  display:block; width:16px; height:16px; flex:0 0 16px; color:var(--gold-400);
  opacity:0; transform: translateX(-6px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.home-contact-info-row--link:hover .home-contact-info-arrow,
.home-contact-info-row--link:focus-visible .home-contact-info-arrow{
  opacity:1; transform: translateX(0);
}

/* ---------------------------------------------------------------------
   Utilidades de reveal — visível por padrão (fallback seguro sem
   JS/GSAP ou com prefers-reduced-motion). O estado oculto para a
   animação de entrada é aplicado via GSAP em tempo de execução
   (home.js), nunca via CSS, para não haver conflito CSS x JS na
   mesma propriedade e o conteúdo nunca ficar preso invisível.
--------------------------------------------------------------------- */
.reveal-up{ opacity: 1; }

@media (max-width: 1080px){
  .home-hero-inner{ grid-template-columns: 1fr; }
  .home-hero-brand-panel{ margin-top: 40px; min-height: 380px; }
  .home-areas-grid{ grid-template-columns: repeat(2, 1fr); }
  .home-partner, .home-partner--reverse{ grid-template-columns: 1fr; }
  .home-partner--reverse .home-partner-media{ order: 0; }
  .home-partner-frame{ max-width: 340px; margin: 0 auto; }
  .home-blog-grid{ grid-template-columns: 1fr 1fr; }
  .home-contact-grid{ grid-template-columns: 1fr; }
  .home-credentials{ flex-direction: column; }
  .home-credential{ border-left:none; border-top: 1px solid var(--line-on-light); }
  .home-credential:first-child{ border-top:none; }
}
@media (max-width: 720px){
  .home-hero-brand-panel{ padding:42px 28px 34px; min-height:340px; }
  .home-hero-logo{ max-width:340px; }
  .home-areas-grid{ grid-template-columns: 1fr; }
  .home-diff-row{ grid-template-columns: 50px 1fr; gap: 16px; }
  .home-blog-grid{ grid-template-columns: 1fr; }
  .home-blog-head{ flex-direction:column; align-items:flex-start; }
  .home-cta{ padding: 60px 22px; }
}

/* Ajustes finais de fluidez e respiro */
body:has(.home-hero) .section{ padding:82px 0; }
body:has(.home-hero) .section-head{ margin-bottom:34px; }
body:has(.home-hero) .home-cta{ padding:68px 32px; }

@supports not selector(:has(*)){
  .section{ padding:86px 0; }
  .section-head{ margin-bottom:34px; }
}

@media (max-width: 1080px){
  .home-about-new,
  .home-diff-new{ grid-template-columns:1fr; gap:34px; }
  .home-diff-heading{ position:static; }
  .home-about-intro{ max-width:none; }
}
@media (max-width: 760px){
  body:has(.home-hero) .section{ padding:66px 0; }
  .home-section-compact{ padding:66px 0; }
  .home-diff-cards{ grid-template-columns:1fr; }
  .home-blog-redirect{ flex-direction:column; align-items:flex-start; padding:34px 28px; }
  .home-about-panel{ padding:28px 26px; }
  .home-about-panel-line{ display:none; }
  .home-about-principle{ grid-template-columns:1fr; gap:12px; }
  .home-about-principle span{ box-shadow:none; }
}

/* ==========================================================================
   HOME V6 — proposta alternativa de layout
   ========================================================================== */

/* Espaçamentos mais compactos e constantes */
body:has(.home-hero) .section{ padding:76px 0; }
body:has(.home-hero) .section-head{ margin-bottom:32px; }
.home-section-compact{ padding:76px 0; }
.home-section-compact + .home-section-compact{ padding-top:52px; }

/* O Escritório — faixa escura editorial */
.home-about-alt{
  position:relative;
  padding:86px 0;
  background:
    radial-gradient(720px 320px at 84% 20%, rgba(199,168,109,.13), transparent 72%),
    linear-gradient(180deg, var(--surface-a-3), var(--surface-a-2));
  overflow:hidden;
}
.home-about-alt::before{
  content:'';
  position:absolute;
  inset:22px;
  border:1px solid rgba(199,168,109,.16);
  border-radius:30px;
  pointer-events:none;
}
.home-about-alt-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:58px;
  align-items:center;
}
.home-about-alt-copy h2{
  color:var(--surface-a-text);
  font-size:clamp(1.9rem,3.5vw,3.05rem);
  line-height:1.12;
  letter-spacing:-.02em;
  max-width:720px;
}
.home-about-alt-copy p{
  color:var(--surface-a-text-dim);
  font-size:1rem;
  line-height:1.75;
  max-width:650px;
  margin-top:20px;
}
.home-about-alt-card{
  background:rgba(247,245,240,.045);
  border:1px solid rgba(199,168,109,.22);
  border-radius:var(--radius-lg);
  padding:34px;
  box-shadow:0 30px 80px -54px rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
}
.home-about-alt-card-label{
  display:block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-400);
  margin-bottom:18px;
}
.home-about-alt-item{
  padding:20px 0;
  border-top:1px solid rgba(247,245,240,.10);
}
.home-about-alt-item:first-of-type{ border-top:none; padding-top:0; }
.home-about-alt-item:last-child{ padding-bottom:0; }
.home-about-alt-item strong{
  display:block;
  color:var(--surface-a-text);
  font-size:1.02rem;
  margin-bottom:7px;
}
.home-about-alt-item span{
  display:block;
  color:var(--surface-a-text-dim);
  font-size:.9rem;
  line-height:1.55;
}

/* Diferenciais — linha de processo */
.home-process-head{
  max-width:760px;
  margin-bottom:44px;
}
.home-process-line{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0;
  border:1px solid var(--line-on-light);
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:#fff;
  box-shadow:0 34px 80px -62px rgba(11,42,74,.36);
}
.home-process-line::before{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:82px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(199,168,109,.38), transparent);
}
.home-process-step{
  position:relative;
  min-height:245px;
  padding:30px 28px 32px;
  border-left:1px solid var(--line-on-light);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(251,250,247,.94));
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.home-process-step:first-child{ border-left:none; }
.home-process-step:hover{
  background:#fff;
  transform:translateY(-3px);
}
.home-process-step span{
  position:relative;
  z-index:1;
  display:inline-flex;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--navy-900);
  color:var(--gold-400);
  font-family:var(--font-display);
  font-size:.92rem;
  box-shadow:0 0 0 8px #fff;
  margin-bottom:38px;
}
.home-process-step h3{
  color:var(--navy-900);
  font-size:1.08rem;
  margin-bottom:10px;
}
.home-process-step p{
  color:var(--gray-500);
  font-size:.91rem;
  line-height:1.62;
}

/* Blog — redirecionamento editorial (adapta ao tema, como as demais
   seções "surface-a" do site: escura no modo escuro, clara no modo claro) */
.home-blog-alt{
  padding:72px 0;
  background:linear-gradient(135deg, var(--surface-a-3), var(--surface-a-1));
  border-top:1px solid var(--gold-border-soft);
  border-bottom:1px solid var(--gold-border-soft);
}
.home-blog-alt-inner{
  display:grid;
  grid-template-columns:1.05fr 1fr auto;
  gap:34px;
  align-items:center;
}
.home-blog-alt h2{
  color: var(--surface-a-text);
  font-size:clamp(1.45rem,2.55vw,2.25rem);
  line-height:1.16;
}
.home-blog-alt p:not(.eyebrow){
  color: var(--surface-a-text-dim);
  line-height:1.7;
  font-size:.96rem;
}

/* Desativa aparências antigas quando existirem */
.home-about-new,
.home-diff-new,
.home-blog-redirect{ display:none !important; }

@media (max-width:1080px){
  .home-about-alt-grid,
  .home-blog-alt-inner{ grid-template-columns:1fr; gap:30px; }
  .home-process-line{ grid-template-columns:1fr 1fr; }
  .home-process-step:nth-child(3){ border-left:none; border-top:1px solid var(--line-on-light); }
  .home-process-step:nth-child(4){ border-top:1px solid var(--line-on-light); }
}
@media (max-width:720px){
  body:has(.home-hero) .section{ padding:62px 0; }
  .home-about-alt{ padding:68px 0; }
  .home-about-alt::before{ inset:14px; border-radius:22px; }
  .home-about-alt-card{ padding:28px; }
  .home-process-line{ grid-template-columns:1fr; }
  .home-process-step{ border-left:none; border-top:1px solid var(--line-on-light); min-height:auto; }
  .home-process-step:first-child{ border-top:none; }
  .home-process-line::before{ display:none; }
  .home-process-step span{ margin-bottom:22px; }
  .home-blog-alt{ padding:62px 0; }
}
