:root{
  --bg: #272727;
  --bg2:#111A2E;
  --text:#E9EEF8;
  --muted:#AAB6D1;
  --gold:#C3AC5F;
  --gold-25: rgba(195, 172, 95, 0.25);
}

*{ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body{ background: var(--bg); color: var(--text); font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

.site-header{
  background: rgba(39, 39, 39, .98);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.brand-logo{
  height: 60px;
  width: auto;
  display: block;
}
@media (max-width: 576px){
  .brand-logo{ height: 38px; }
}


.brand-title{ font-family: "Playfair Display", serif; letter-spacing:.3px; font-weight: 700; }
.brand-sub{ color: var(--muted); font-size: .85rem; }

.navbar .nav-link{ color: rgba(233,238,248,.85); }
.navbar .nav-link:hover{ color: var(--text); }

.btn-gold{
  background: var(--gold);
  color: #1a1406;
  border: 1px solid rgba(0,0,0,.15);
  font-weight: 600;
}
.btn-gold:hover{
  background: #F1F1F1;
  color: #272727; /* importante pra manter contraste */
}

.hero{
  position: relative;
  padding: 92px 0 70px;
  min-height: 85vh; /* ocupa a dobra inteira */
  display: flex;
  align-items: center;

  /* imagem de fundo */
  background-image:
    var(--hero-image, url("../img/hero.jpg"));
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.hero .container{
  position: relative;
  z-index: 2;
}
.hero::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(700px 400px at 20% 20%, rgba(200,162,74,.18), transparent 55%);
  pointer-events: none;
  z-index: 1;
}
.kicker{ color: var(--muted); letter-spacing:.12em; text-transform: uppercase; font-size: .85rem; }
.hero-title{
  font-family: "Playfair Display", serif;
  line-height: 1.3;
}


.hero-lead{ color: rgba(233,238,248,.85); 
            width: 100%;
  max-width: none !important;  /* remove qualquer limite */
  margin-left: 0 !important;
  margin-right: 0 !important;
  text-align: justify;
  text-justify: inter-word
}


@media (max-width: 768px){
  .hero{
    min-height: 100vh; /* ocupa tela toda */
    padding: 0; /* remove espaçamento */
  }

  .hero .col-6{
    display: none; /* esconde todo o conteúdo */
  }
  .hero{
    background-position: calc(100% + 50px) center;
  }
}

.section{ padding: 64px 0; }
.section-alt{
  background: #F5F6F8;          /* cinza bem próximo do branco */
  color: #0B1220;               /* texto escuro para contraste */
  border-top: 1px solid rgba(11,18,32,.10);
  border-bottom: 1px solid rgba(11,18,32,.10);
}

.section-alt .section-title{
  color: #0B1220;
}

.section-alt .text-soft,
.section-alt .section-subtitle,
.section-alt .kicker{
  color: rgba(11,18,32,.72) !important;
}

.section-head{ margin-bottom: 20px; }
.section-title{ font-family: "Playfair Display", serif; font-weight: 700; margin-bottom: 8px; }
.section-subtitle{ color: var(--muted);  }

/* Card da equipe */
.team-card{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: stretch;
}

/* Imagem e texto ocupam larguras iguais no desktop/tablet */
@media (min-width: 768px){
  .team-card{
    grid-template-columns: 1fr 1fr;
  }
}

/* Bloco da foto */
.team-card .lawyer-photo{
  width: 100%;
  height: 100%;
  min-height: 320px;
  border-radius: 18px;
  object-fit: cover;
  display: block;
}

/* Bloco de texto */
.team-card > div:last-child{
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

/* Mobile: imagem e texto um abaixo do outro, ambos bem proporcionais */
@media (max-width: 767.98px){
  .team-card{
    grid-template-columns: 1fr;
  }

  .team-card .lawyer-photo{
    min-height: 280px;
  }
}

.card-dark{
  background: #272727; /* preto/grafite */
  border: 1px solid #F1F1F1; /* cinza claro */
  border-radius: 18px;
  padding: 18px 18px;
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
}
.card-link{ text-decoration: none; display: block; }
.card-link:hover{ border-color: var(--gold-25); transform: translateY(-1px); transition: .15s ease; }
.article-card-cover{
  display: block;
  width: calc(100% + 36px);
  max-width: none;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: -18px -18px 18px;
  border-radius: 18px 18px 0 0;
  background: #272727;
}

.card-light{
  background: #FFFFFF;
  border: 1px solid rgba(11,18,32,.10);
  border-radius: 18px;
  padding: 18px 18px;
  box-shadow: 0 12px 30px rgba(0,0,0,.08);
  color: #0B1220;
}

.card-light .text-soft{
  color: rgba(11,18,32,.70) !important;
}


.text-soft{ color: var(--muted) !important; 
            text-align: justify;
    
}
.badge-soft{
  background: rgba(200,162,74,.12);
  border: 1px solid var(--gold-25);
  color: var(--text);
  padding: .45rem .6rem;
  border-radius: 999px;
  margin-right: .35rem;
}

.hero-card{ composes: card-dark; } /* (se seu editor não suportar, só ignore) */
.dot{
  display:inline-block; width:8px; height:8px; border-radius:999px;
  background: var(--gold); margin-right: 10px; box-shadow: 0 0 0 3px rgba(200,162,74,.18);
}

.cta-row .cta-box{
  border: 1px solid var(--gold-25);
  background: rgba(200,162,74,.07);
  border-radius: 18px;
  padding: 16px;
  display:flex; align-items:center; justify-content:space-between; gap: 12px;
}

.form-control-dark{
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.10);
  color: var(--text);
}
.form-control-dark:focus{
  border-color: var(--gold-25);
  box-shadow: 0 0 0 .25rem rgba(200,162,74,.12);
  background: rgba(255,255,255,.04);
  color: var(--text);
}

/* Agendamento público */
.meeting-page{ min-height: 70vh; }
.meeting-hero{ padding: 72px 0 36px; background: radial-gradient(700px 260px at 16% 0, rgba(195,172,95,.16), transparent 62%); }
.meeting-hero .section-subtitle{ max-width: 720px; }
.meeting-layout{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:24px; align-items:start; }
.meeting-slots-panel,.meeting-details-panel{ background:#fff; color:#272727; border:1px solid rgba(39,39,39,.1); border-radius:18px; padding:24px; box-shadow:0 14px 36px rgba(11,18,32,.08); }
.meeting-details-panel{ position:sticky; top:104px; }
.meeting-panel-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:18px; border-bottom:1px solid rgba(39,39,39,.1); }
.meeting-panel-head>div{ display:flex; align-items:center; gap:10px; }
.meeting-panel-head h2{ margin:0; font:700 1.25rem "Playfair Display",serif; }
.meeting-panel-head small{ color:#667085; }
.step-number{ width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#C3AC5F; color:#272727; font-weight:700; }
.meeting-date-groups{ display:grid; gap:16px; margin-top:18px; max-height:680px; overflow:auto; padding-right:6px; }
.meeting-date-group{ border:0; padding:0; margin:0; }
.meeting-date-group legend{ float:none; width:auto; margin:0 0 10px; color:#272727; font-weight:700; font-size:.96rem; }
.meeting-time-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.meeting-time-option{ cursor:pointer; margin:0; }
.meeting-time-option input{ position:absolute; opacity:0; pointer-events:none; }
.meeting-time-option span{ display:flex; justify-content:space-between; align-items:center; gap:8px; min-height:58px; padding:10px 12px; border:1px solid rgba(39,39,39,.16); border-radius:10px; transition:.15s ease; }
.meeting-time-option b{ color:#272727; font-size:1rem; }
.meeting-time-option small{ color:#667085; text-align:right; line-height:1.2; }
.meeting-time-option input:checked+span{ border-color:#C3AC5F; box-shadow:0 0 0 3px rgba(195,172,95,.22); background:#fffdf5; }
.meeting-time-option input:focus-visible+span{ outline:2px solid #272727; outline-offset:2px; }
.meeting-details-panel label{ display:block; margin-top:16px; }
.meeting-details-panel label>span{ display:block; margin-bottom:6px; font-size:.86rem; font-weight:600; color:#475467; }
.meeting-details-panel input,.meeting-details-panel textarea{ width:100%; border:1px solid #d0d5dd; border-radius:9px; padding:11px 12px; background:#fff; color:#272727; }
.meeting-details-panel input:focus,.meeting-details-panel textarea:focus{ outline:0; border-color:#C3AC5F; box-shadow:0 0 0 3px rgba(195,172,95,.2); }
.meeting-details-panel button{ margin-top:20px; }
.meeting-privacy{ display:block; margin-top:10px; color:#667085; text-align:center; }
.meeting-empty{ display:grid; gap:5px; padding:30px 18px; margin-top:18px; text-align:center; border:1px dashed #d0d5dd; border-radius:12px; color:#667085; }
.meeting-alert{ border-radius:12px; margin-bottom:20px; }
@media(max-width:991.98px){ .meeting-layout{ grid-template-columns:1fr; } .meeting-details-panel{ position:static; } }
@media(max-width:575.98px){ .meeting-slots-panel,.meeting-details-panel{ padding:18px; } .meeting-time-grid{ grid-template-columns:1fr; } .meeting-panel-head{ display:block; } .meeting-panel-head small{ display:block; margin-top:8px; } }

.lawyer-photo{
  width: 140px;
  height: 140px;
  border-radius: 18px;
  object-fit: cover;
  object-position: center top; /* 👈 PRIORIZA O ROSTO */
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
  flex: 0 0 auto;
}


.hero-form{
  border-color: #C8A25A;
  background: rgba(255,255,255,0.08);
  padding: 30px;
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.25);
  width: 100%;
  max-width: 100%;
  margin-left: 0;
}
@media (max-width: 991.98px){
  .section-full{
    padding: 56px 0;
  }

  .hero-form{
    margin-top: 10px;
  }
}

.form-title{
  font-family: "Playfair Display", serif;
  color: #fff;
  margin-bottom: 5px;
}

.form-subtitle{
  color: rgba(255,255,255,0.7);
  font-size: 0.9rem;
  margin-bottom: 20px;
}

.form-group{
  margin-bottom: 12px;
}

.hero-form input,
.hero-form textarea{
  border-color: #fff;
  background: rgba(255,255,255,0.97);
  color: #111;
  font-weight: 500;  
  width: 100%;
  padding: 12px 14px;
  border-radius: 6px;
}

.hero-form input::placeholder,
.hero-form textarea::placeholder{
  color: #6f6f6f;
}

.hero-form input:focus,
.hero-form textarea:focus{
  outline: none;
  border-color: #C8A25A;
}

.footer{ border-top: 1px solid rgba(255,255,255,.06); }
.footer-link{ color: rgba(233,238,248,.8); text-decoration:none; }
.footer-link:hover{ color: var(--text); }


.section-full{
    text-align: justify;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 80px 0; /* mantém respiro */
}

.office-visual{
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 40px rgba(0,0,0,.28);
  background: rgba(255,255,255,.03);
}

.office-map{
  width: 100%;
  height: 520px;
  border: 0;
  display: block;
}

/* Ajuste para telas menores */
@media (max-width: 576px){
  .office-map{
    height: 360px;
  }
}
.post-content{
  max-width: 820px;
}

.article-hero{
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 18px;
  margin-bottom: 2rem;
  box-shadow: 0 14px 36px rgba(0,0,0,.24);
}

.post-body p{
  margin-bottom: 1.2rem;
  line-height: 1.7;
}

.post-body h2{
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-family: "Playfair Display", serif;
}

.post-body ul{
  padding-left: 1.2rem;
}
.btn-outline-dark-soft{
  color: #0B1220;
  border: 1px solid rgba(11,18,32,.35);
  background: transparent;
  font-weight: 500;
}

.btn-outline-dark-soft:hover{
  background: #0B1220;
  color: #ffffff;
  border-color: #0B1220;
}

.pagination-wrap{
  display: flex;
  justify-content: center;
  margin-top: 32px;
}

.paginator{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.paginator_item{
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid rgba(11,18,32,.18);
  border-radius: 9px;
  background: #fff;
  color: #0B1220;
  display: inline-grid;
  place-items: center;
  text-decoration: none;
  font-weight: 600;
}

a.paginator_item:hover,
.paginator_active{
  background: var(--gold);
  border-color: var(--gold);
  color: #1a1406;
}
