/* ========================================================
   Marques Gonçalves Advogados Associados — Estilos
   Cores: #2b5f8b (marine) · #65839c (steel) · #91989f (ash) · #f8fdfc (ivory)
======================================================== */

:root{
  --marine:   #2b5f8b;
  --steel:    #65839c;
  --ash:      #91989f;
  --ivory:    #f8fdfc;
  --graphite: #1a3c58;
}

*{ -webkit-tap-highlight-color: transparent; }

html{ scroll-behavior: smooth; scroll-padding-top: 80px; }
body{ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

::selection{ background: var(--marine); color: #fff; }

/* Scrollbar */
::-webkit-scrollbar{ width: 10px; }
::-webkit-scrollbar-track{ background: var(--ivory); }
::-webkit-scrollbar-thumb{ background: var(--steel); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover{ background: var(--marine); }

/* ===================== NAVBAR ===================== */
#navbar.scrolled{
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 20px rgba(43,95,139,0.08);
}
#navbar .nav-link{
  color: rgba(255,255,255,0.92);
  position: relative;
  transition: color .25s ease;
}
#navbar .nav-link::after{
  content:''; position:absolute; left:0; bottom:-6px;
  width:0; height:1.5px; background: currentColor;
  transition: width .3s ease;
}
#navbar .nav-link:hover::after{ width:100%; }
#navbar.scrolled .nav-link{ color: var(--graphite); }
#navbar.scrolled #menuToggle{ color: var(--marine); }

#navbar .nav-cta{
  background: rgba(255,255,255,0.15);
  color: #fff;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.25);
}
#navbar .nav-cta:hover{
  background: #fff;
  color: var(--marine);
  transform: translateY(-1px);
}
#navbar.scrolled .nav-cta{
  background: var(--marine);
  color: #fff;
  border-color: var(--marine);
}
#navbar.scrolled .nav-cta:hover{
  background: var(--graphite);
  border-color: var(--graphite);
}

/* ===================== HERO ===================== */
.hero-bg{
  background:
    radial-gradient(ellipse at 20% 0%, rgba(101,131,156,0.55) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 100%, rgba(26,60,88,0.65) 0%, transparent 55%),
    linear-gradient(135deg, #2b5f8b 0%, #1a3c58 60%, #2b5f8b 100%);
}
.hero-pattern{
  background-image:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 75%);
}

/* ===================== ÁREAS DE ATUAÇÃO ===================== */
.practice-card{
  position: relative;
  background: #fff;
  border: 1px solid rgba(145,152,159,0.18);
  border-radius: 22px;
  padding: 2rem 1.75rem;
  transition: all .35s cubic-bezier(.2,.7,.2,1);
  overflow: hidden;
}
.practice-card::before{
  content:''; position:absolute; inset:0;
  background: linear-gradient(135deg, var(--marine) 0%, var(--steel) 100%);
  opacity: 0;
  transition: opacity .4s ease;
  z-index: 0;
}
.practice-card > *{ position: relative; z-index: 1; }
.practice-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 22px 48px -22px rgba(43,95,139,0.45);
  border-color: transparent;
}
.practice-card:hover::before{ opacity: 1; }
.practice-card:hover .practice-title,
.practice-card:hover .practice-desc{ color: #fff; }
.practice-card:hover .practice-icon{
  background: rgba(255,255,255,0.15);
  color: #fff;
  border-color: rgba(255,255,255,0.3);
}

.practice-icon{
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 16px;
  background: rgba(43,95,139,0.08);
  border: 1px solid rgba(43,95,139,0.15);
  color: var(--marine);
  margin-bottom: 1.25rem;
  transition: all .35s ease;
}
.practice-icon svg{ width: 26px; height: 26px; }

.practice-title{
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--marine);
  margin-bottom: 0.6rem;
  line-height: 1.15;
  transition: color .3s ease;
}
.practice-desc{
  color: rgba(26,60,88,0.7);
  font-size: 0.95rem;
  line-height: 1.55;
  transition: color .3s ease;
}

/* ===================== DIFERENCIAIS ===================== */
.benefit-card{
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 20px;
  padding: 2rem 1.5rem;
  backdrop-filter: blur(10px);
  transition: all .35s ease;
}
.benefit-card:hover{
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.25);
  transform: translateY(-4px);
}
.benefit-num{
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem;
  font-weight: 600;
  color: rgba(255,255,255,0.4);
  line-height: 1;
  margin-bottom: 1rem;
}
.benefit-title{
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.45rem;
  font-weight: 600;
  margin-bottom: 0.6rem;
}
.benefit-desc{
  color: rgba(255,255,255,0.75);
  font-size: 0.92rem;
  line-height: 1.55;
}

/* ===================== EQUIPE ===================== */
.lawyer-card{
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(145,152,159,0.15);
  transition: all .4s cubic-bezier(.2,.7,.2,1);
  box-shadow: 0 6px 24px -12px rgba(43,95,139,0.18);
}
.lawyer-card:hover{
  transform: translateY(-8px);
  box-shadow: 0 30px 60px -25px rgba(43,95,139,0.4);
}
.lawyer-photo{
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: linear-gradient(135deg, var(--steel), var(--marine));
}
.lawyer-photo img{
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .8s ease;
  filter: saturate(0.95) contrast(1.02);
}
.lawyer-card:hover .lawyer-photo img{ transform: scale(1.06); }
.lawyer-overlay{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(26,60,88,0.6) 100%);
  pointer-events: none;
}
.lawyer-info{ padding: 1.75rem; }
.lawyer-role{
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--steel);
  margin-bottom: 0.6rem;
}
.lawyer-name{
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.7rem;
  font-weight: 600;
  color: var(--marine);
  line-height: 1.1;
  margin-bottom: 0.6rem;
}
.lawyer-oab{
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(43,95,139,0.08);
  color: var(--marine);
  margin-bottom: 1rem;
  letter-spacing: 0.05em;
}
.lawyer-bio{
  font-size: 0.92rem;
  line-height: 1.6;
  color: rgba(26,60,88,0.72);
}

/* --- Cards em destaque (Alexandre e Victoria) --- */
.lawyer-card--featured{
  border-color: rgba(43,95,139,0.22);
  box-shadow: 0 18px 44px -22px rgba(43,95,139,0.4);
}
.lawyer-card--featured .lawyer-photo{ aspect-ratio: 4 / 4.4; }
.lawyer-card--featured .lawyer-name{ font-size: 1.95rem; }
.lawyer-card--featured .lawyer-info{ padding: 2rem; }

/* --- Card compacto / menos destaque (Ninive) --- */
.lawyer-card--compact{
  box-shadow: 0 4px 18px -12px rgba(43,95,139,0.16);
  background: #fcfdfe;
}
.lawyer-card--compact:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -24px rgba(43,95,139,0.3);
}
.lawyer-card--compact{ display: flex; align-items: stretch; }
.lawyer-card--compact .lawyer-photo{
  width: 122px;
  flex-shrink: 0;
  aspect-ratio: auto;
  filter: saturate(0.92);
}
.lawyer-card--compact .lawyer-info{
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.1rem 1.25rem;
}
.lawyer-card--compact .lawyer-name{ font-size: 1.2rem; }
.lawyer-card--compact .lawyer-role{ color: var(--ash); margin-bottom: 0.4rem; }
.lawyer-card--compact .lawyer-oab{ margin-bottom: 0.7rem; }
.lawyer-card--compact .lawyer-bio{ font-size: 0.84rem; color: rgba(26,60,88,0.62); }
@media (min-width: 640px){
  .lawyer-card--compact .lawyer-photo{ width: 200px; }
  .lawyer-card--compact .lawyer-info{ padding: 1.75rem 2rem; }
  .lawyer-card--compact .lawyer-name{ font-size: 1.45rem; }
  .lawyer-card--compact .lawyer-bio{ font-size: 0.88rem; }
}

/* ===================== CARROSSEL ESCRITÓRIO ===================== */
.office-carousel{
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 25px 60px -20px rgba(26,60,88,0.35);
  background: linear-gradient(135deg, var(--steel), var(--marine));
}
.office-carousel__viewport{
  height: 100%;
  overflow: hidden;
  border-radius: 24px;
}
.office-carousel__track{
  display: flex;
  height: 100%;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
  will-change: transform;
}
.office-carousel__slide{
  position: relative;
  min-width: 100%;
  height: 100%;
}
.office-carousel__slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.office-carousel__shade{
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(26,60,88,0.35) 0%, transparent 40%);
  pointer-events: none;
}
.office-carousel__btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 999px;
  background: rgba(255,255,255,0.85);
  color: var(--marine);
  backdrop-filter: blur(6px);
  box-shadow: 0 6px 18px -6px rgba(26,60,88,0.4);
  transition: all .25s ease;
  z-index: 2;
}
.office-carousel__btn:hover{
  background: #fff;
  transform: translateY(-50%) scale(1.08);
}
.office-carousel__btn svg{ width: 22px; height: 22px; }
.office-carousel__btn--prev{ left: 14px; }
.office-carousel__btn--next{ right: 14px; }
.office-carousel__dots{
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}
.office-carousel__dot{
  width: 9px; height: 9px;
  border-radius: 999px;
  background: rgba(255,255,255,0.5);
  transition: all .3s ease;
  cursor: pointer;
}
.office-carousel__dot:hover{ background: rgba(255,255,255,0.8); }
.office-carousel__dot.is-active{
  width: 26px;
  background: #fff;
}
@media (max-width: 640px){
  .office-carousel__btn{ width: 38px; height: 38px; }
  .office-carousel__btn svg{ width: 19px; height: 19px; }
}

/* ===================== CONTATO ===================== */
.contact-item{
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 0.85rem 0;
  color: var(--graphite);
  transition: transform .25s ease;
}
.contact-item > span{ min-width: 0; }
.contact-item:hover{ transform: translateX(4px); }
.contact-icon{
  flex-shrink: 0;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
  background: rgba(43,95,139,0.08);
  color: var(--marine);
  transition: background .25s ease, color .25s ease;
}
.contact-item:hover .contact-icon{
  background: var(--marine);
  color: #fff;
}
.contact-label{
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ash);
  margin-bottom: 2px;
}
.contact-value{
  display: block;
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--graphite);
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ===================== FORMULÁRIO ===================== */
.form-group{ display: flex; flex-direction: column; }
.form-label{
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--graphite);
  margin-bottom: 0.5rem;
}
.form-input{
  width: 100%;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  border: 1.5px solid rgba(145,152,159,0.3);
  background: #fff;
  color: var(--graphite);
  font-size: 0.95rem;
  font-family: inherit;
  transition: all .2s ease;
}
.form-input::placeholder{ color: rgba(145,152,159,0.7); }
.form-input:focus{
  outline: none;
  border-color: var(--marine);
  box-shadow: 0 0 0 4px rgba(43,95,139,0.12);
}
select.form-input{
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2391989f' stroke-width='2'><path stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/></svg>");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 18px;
  padding-right: 2.75rem;
}

/* ===================== REVEAL ANIMAÇÃO ===================== */
.reveal{ opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }

/* ===================== RESPONSIVE TWEAKS ===================== */
@media (max-width: 640px){
  .practice-card{ padding: 1.5rem 1.25rem; }
  .practice-title{ font-size: 1.35rem; }
  .lawyer-info{ padding: 1.5rem; }
  .lawyer-name{ font-size: 1.5rem; }
  .benefit-card{ padding: 1.5rem 1.25rem; }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal{ opacity: 1; transform: none; }
}
