/* Reset básico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: #000;
    color: #fff;
    scroll-behavior: smooth;
}

/* Variáveis de cores */
:root {
    --primary-color: #E2B220; /* Dourado/Amarelo */
    --text-light: #ffffff;
    --dark-bg: #1a1a1a;
    --blue-dark: #0a3a70;
}

/* Cabeçalho */
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 5%;
    background-color: rgba(0, 0, 0, 0.8);
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 100;
    transition: background-color .3s ease, padding .3s ease, box-shadow .3s ease;
}

.header--scrolled {
    padding: 12px 5%;
    background-color: rgba(0, 0, 0, 0.95);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.logo img {
    height: 50px;
}

.nav-menu ul {
    list-style: none;
    display: flex;
    gap: 30px;
}

.nav-menu a {
    text-decoration: none;
    color: var(--text-light);
    font-size: 14px;
    transition: color 0.3s ease;
}

.nav-menu a:hover {
    color: var(--primary-color);
}

/* Botões Globais */
.btn-primary {
    background-color: var(--primary-color);
    color: #111;
    padding: 10px 25px;
    text-decoration: none;
    font-weight: 600;
    border-radius: 4px;
    transition: background 0.3s ease;
}

.btn-primary:hover {
    background-color: #c99c19;
}

.btn-outline {
    background-color: transparent;
    color: var(--primary-color);
    border: 1px solid var(--primary-color);
    padding: 15px 30px;
    text-decoration: none;
    font-size: 16px;
    display: inline-block;
    transition: all 0.3s ease;
}

.btn-outline:hover {
    background-color: var(--primary-color);
    color: #111;
}

.btn-outline-dark {
    background-color: transparent;
    color: #111;
    border: 1px solid #111;
    padding: 15px 30px;
    text-decoration: none;
    font-size: 16px;
    display: inline-block;
    margin-top: 20px;
    transition: all 0.3s ease;
}

.btn-outline-dark:hover {
    background-color: #111;
    color: var(--primary-color);
}

/* Badges / Etiquetas */
.badge {
    background-color: var(--blue-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 6px 30px;
    display: inline-block;
    margin-bottom: 25px;
}

.badge-azul {
    background-color: var(--blue-dark);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 6px 20px;
    margin-bottom: 30px;
    display: inline-block;
}

.badge-amarelo {
    background-color: var(--primary-color);
    color: #111;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    padding: 6px 20px;
    margin-bottom: 20px;
    display: inline-block;
}

/* Hero Section */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('../images/fundo-hero.avif') center/cover no-repeat;
    padding: 0 20px;
}

.hero-content h1 {
    font-family: 'Playfair Display', serif;
    font-size: 5.6rem;
    color: var(--primary-color);
    margin-bottom: 20px;
    line-height: 1.2;
}

.hero-content p {
    font-size: 1.92rem;
    margin-bottom: 40px;
    max-width: 600px;
    margin: 0 auto 40px;
    color: #ddd;
}

/* Estatísticas */
.estatisticas {
    display: flex;
    width: 100%;
}

.stat-box {
    flex: 1;
    padding: 60px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.stat-box h2 {
    font-size: 4rem;
    font-weight: 700;
    margin-bottom: 10px;
    color: inherit;
}

.amarelo { background-color: var(--primary-color); color: #111; }
.escuro { background-color: #2a2a2a; color: #fff; }

/* Soluções (FAQ) */
.solucoes {
    background-color: #f9f9f9;
    color: #000;
    padding: 80px 5%;
}

.solucoes-header {
    text-align: center;
    margin-bottom: 60px;
}

.solucoes-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 3.52rem;
    line-height: 1.3;
    max-width: 600px;
    margin: 0 auto;
}

.faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 80px;
    max-width: 1100px;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid #ccc;
    margin-bottom: 15px;
}

.faq-item summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
    font-size: 1.76rem;
    cursor: pointer;
    list-style: none;
    font-weight: 500;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    font-size: 1.6rem;
    color: var(--blue-dark);
}
.faq-item summary .icon::before { content: '+'; }
.faq-item[open] summary .icon::before { content: '\2212'; }

.faq-content {
    background-color: #f0f0f0;
    padding: 20px;
    font-size: 1.52rem;
    color: #333;
    margin-bottom: 15px;
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease;
}
.faq-item:not([open]) .faq-content { display: none; }

@media (prefers-reduced-motion: reduce) {
    .faq-content { transition: none; }
}
.faq-content p { margin: 0 0 12px; }
.faq-content ul { margin: 0; padding-left: 20px; }
.faq-content ul li { margin-bottom: 6px; line-height: 1.5; }

/* Sobre o Escritório */
.sobre {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 600px;
}

.sobre-conteudo {
    background-color: var(--primary-color);
    padding: 80px 10%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.sobre-conteudo h2 {
    font-family: 'Playfair Display', serif;
    font-size: 4.8rem;
    color: #111;
    line-height: 1.1;
    margin-bottom: 30px;
}

.sobre-conteudo p {
    font-size: 1.6rem;
    color: #111;
    line-height: 1.6;
    margin-bottom: 20px;
}

.sobre-imagem {
    background: url('../images/foto-escritorio.png') center/cover no-repeat;
    width: 100%;
    height: 100%;
}

/* Os Sócios */
.socios {
    background-color: var(--dark-bg);
    padding: 80px 5% 40px;
    text-align: center;
}

.socios-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 4.8rem;
    color: #fff;
    margin-top: 15px;
    margin-bottom: 60px;
}

.socios-grid {
    display: flex;
    justify-content: center;
    gap: 60px;
    max-width: 1000px;
    margin: 0 auto;
}

.socio-card { flex: 1; }

.socio-imagem-wrapper {
    position: relative;
    display: inline-block;
}

.socio-imagem-wrapper img {
    width: 100%;
    max-width: 350px;
    display: block;
    position: relative;
    z-index: 2;
}

.socio-imagem-wrapper::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border: 15px solid var(--primary-color);
    z-index: 1;
}

.socia-detalhe::after { top: -20px; left: -20px; border-right: none; border-bottom: none; }
.socio-detalhe::after { top: -20px; right: -20px; border-left: none; border-bottom: none; }

.socio-info {
    text-align: left;
    margin-top: 40px;
}

.socio-info h3 {
    font-size: 2.4rem;
    color: #fff;
    font-weight: 500;
    margin-bottom: 5px;
    line-height: 1.2;
}

.socio-info .oab {
    display: block;
    font-size: 1.36rem;
    color: #888;
    margin-bottom: 20px;
}

.socio-info p {
    font-size: 1.6rem;
    color: #ccc;
    line-height: 1.5;
    max-width: 90%;
}

.socios-botao { margin-top: 80px; text-align: center; }

/* Transição Curva */
.transicao-curva {
    background-color: #E6E6E6;
    height: 50px;
    position: relative;
    display: flex;
    justify-content: center;
}

.transicao-curva::before {
    content: '';
    position: absolute;
    top: 0;
    width: 120px;
    height: 60px;
    background-color: var(--dark-bg);
    border-bottom-left-radius: 60px;
    border-bottom-right-radius: 60px;
    z-index: 1;
}

.seta-icone {
    position: relative;
    z-index: 2;
    top: 15px;
    cursor: pointer;
}

/* Depoimentos */
.depoimentos {
    background-color: #E6E6E6;
    padding: 100px 5% 80px;
    color: #111;
}

.depoimentos-topo {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 60px;
    max-width: 1200px;
    margin: 0 auto;
}

.depoimentos-titulos h2 {
    font-family: 'Playfair Display', serif;
    font-size: 4rem;
    line-height: 1.2;
    margin-top: 15px;
}

.depoimentos-stats {
    display: flex;
    gap: 20px;
}

.stat-box-amarelo {
    background-color: var(--primary-color);
    padding: 30px 40px;
    text-align: center;
    color: #111;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.stat-box-amarelo h3 { font-size: 3.2rem; margin-bottom: 5px; font-weight: 700; }
.stat-box-amarelo p { font-size: 1.44rem; font-weight: 500; }

.depoimentos-midia-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto;
}

.midia-placeholder {
    background-color: #ccc;
    aspect-ratio: 3 / 4;
    width: 100%;
    overflow: hidden;
}

.midia-placeholder img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Blog */
.blog-preview {
    background-color: #ffffff;
    padding: 80px 5%;
}

.blog-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    max-width: 1200px;
    margin: 0 auto 50px;
}

.blog-titulos h2 {
    font-family: 'Playfair Display', serif;
    font-size: 4rem;
    margin-top: 15px;
    color: #111;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto 60px;
}

.blog-card {
    background-color: #fff;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
}

.blog-imagem { position: relative; height: 220px; }
.blog-imagem img { width: 100%; height: 100%; object-fit: cover; }

.categoria {
    position: absolute;
    top: 20px;
    right: 0;
    background-color: var(--primary-color);
    color: #111;
    padding: 6px 20px;
    font-size: 1.36rem;
    font-weight: 600;
}

.blog-conteudo {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blog-conteudo time { font-size: 1.36rem; color: #666; margin-bottom: 15px; }
.blog-conteudo h3 { font-size: 2rem; color: #111; margin-bottom: 30px; font-weight: 400; line-height: 1.4; }
.btn-saiba-mais { margin-top: auto; font-size: 1.36rem; color: #111; text-decoration: none; font-weight: 700; letter-spacing: 1px; }

.paginacao { text-align: center; margin-top: 20px; }
.paginacao a { color: #111; text-decoration: none; margin: 0 8px; font-size: 1.6rem; }
.paginacao a.ativo { font-weight: bold; }

/* Call to Action */
.cta-contato {
    background-color: var(--primary-color);
    padding: 80px 5%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.cta-contato p {
    font-size: 1.92rem;
    color: #111;
    max-width: 650px;
    margin: 0 auto 40px;
    line-height: 1.5;
    font-weight: 500;
}

/* Localização */
.localizacao {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 500px;
}

.mapa { width: 100%; height: 100%; }

.localizacao-info {
    background-color: var(--blue-dark);
    padding: 80px 10%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.localizacao-info h2 {
    font-family: 'Playfair Display', serif;
    font-size: 5.6rem;
    color: #fff;
    line-height: 1.1;
}

/* Fale conosco (formulário) */
.fale-conosco-topo {
    background-color: var(--blue-dark);
    color: #fff;
    text-align: center;
    padding: 70px 8% 60px;
}
.fale-conosco-topo h2 {
    font-family: 'Playfair Display', serif;
    font-size: 3.84rem;
    margin-bottom: 15px;
    color: #fff;
}
.fale-conosco-topo p { color: #dbe4ee; font-size: 1.6rem; }

.fale-conosco-corpo {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
}

.form-contato { padding: 70px 8%; background-color: #fff; }
.form-contato h3 {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    color: #111;
    margin-bottom: 15px;
}
.form-contato > p { color: #555; font-size: 1.44rem; margin-bottom: 30px; max-width: 480px; }
.form-contato form { display: flex; flex-direction: column; gap: 4px; max-width: 480px; }
.form-contato select,
.form-contato input,
.form-contato textarea {
    border: none;
    border-bottom: 1px solid #ccc;
    padding: 12px 4px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.44rem;
    color: #111;
    background: transparent;
    outline: none;
}
.form-contato textarea { border: 1px solid #ccc; background: #f5f5f5; resize: vertical; margin-top: 15px; padding: 12px; }
.form-contato select:focus,
.form-contato input:focus,
.form-contato textarea:focus { border-color: var(--primary-color); }
.form-contato button {
    align-self: flex-start;
    margin-top: 20px;
    background-color: var(--blue-dark);
    color: #fff;
    border: none;
    padding: 14px 34px;
    font-size: 1.44rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .3s;
}
.form-contato button:hover { background-color: #082c58; }
.form-contato button:disabled { opacity: .6; cursor: default; }
#formContatoMsg { font-size: 1.28rem; padding: 10px 0; }
#formContatoMsg.ok { color: #1a7a3c; }
#formContatoMsg.erro { color: #b3261e; }

.contato-lateral { background-color: var(--primary-color); padding: 70px 8%; color: #111; }
.contato-item { margin-bottom: 35px; }
.contato-item h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.44rem;
    margin-bottom: 15px;
}
.contato-item p { display: flex; align-items: center; gap: 10px; font-size: 1.44rem; margin-bottom: 8px; }
.mini-mapa { width: 100%; height: 220px; }
.mini-mapa iframe { width: 100%; height: 100%; border: 0; }

@media (max-width: 900px) {
    .fale-conosco-corpo { grid-template-columns: 1fr; }
    .localizacao { grid-template-columns: 1fr; }
    .localizacao .mapa { height: 320px; }
}

/* Listagem do blog (/blog) */
.blog-topo {
    background-color: var(--blue-dark);
    color: #fff;
    text-align: center;
    padding: 160px 8% 70px;
}
.blog-topo h1 {
    font-family: 'Playfair Display', serif;
    font-size: 4rem;
    margin-bottom: 15px;
    color: #fff;
}
.blog-topo > p { color: #dbe4ee; font-size: 1.6rem; margin-bottom: 30px; }
.blog-busca {
    display: flex;
    max-width: 500px;
    margin: 0 auto 20px;
}
.blog-busca input {
    flex: 1;
    border: none;
    padding: 14px 18px;
    font-size: 1.44rem;
    font-family: 'Montserrat', sans-serif;
    outline: none;
}
.blog-busca button {
    background-color: #fff;
    border: none;
    padding: 0 20px;
    cursor: pointer;
    color: var(--blue-dark);
    font-size: 1.44rem;
}
.blog-topo a.voltar { color: #fff; font-size: 1.28rem; text-decoration: underline; }

.blog-lista { padding: 70px 5% 40px; }
.blog-lista .blog-grid { margin-top: 0; }

@media (max-width: 900px) {
    .blog-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .blog-grid { grid-template-columns: 1fr; }
}

/* Rodapé */
.rodape {
    background-color: var(--dark-bg);
    padding: 0 5% 40px;
    color: #ccc;
}

.rodape-linha {
    width: 100%;
    height: 1px;
    background-color: rgba(226, 178, 32, 0.3);
    margin-bottom: 60px;
}

.rodape-container {
    display: grid;
    grid-template-columns: 2fr 1fr 2fr 1fr;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto 40px;
}

.rodape-coluna h3 {
    color: var(--primary-color);
    font-size: 1.76rem;
    margin-bottom: 25px;
    font-weight: 500;
}

.rodape-coluna p { font-size: 1.44rem; line-height: 1.6; color: #bbb; }

.logo-rodape { width: 150px; margin-bottom: 20px; }

.rodape-coluna ul { list-style: none; }
.rodape-coluna ul li { margin-bottom: 15px; }
.rodape-coluna ul a { color: #bbb; text-decoration: none; font-size: 1.44rem; transition: color 0.3s; }
.rodape-coluna ul a:hover { color: var(--primary-color); }

.redes-icones { display: flex; gap: 15px; }
.icone-social {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--primary-color);
    color: #111;
    border-radius: 50%;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.28rem;
    transition: transform 0.3s;
}
.icone-social:hover { transform: scale(1.1); }

/* Direitos Autorais e Créditos (Barra inferior) */
.rodape-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.rodape-bottom p {
    font-size: 1.28rem;
    color: #888;
}

/* ===== Seções novas — reconstruídas a partir do mockup (temp/index.png), não
   existiam na casca em HTML recuperada. ===== */

/* Tira de fotos logo abaixo do nav */
.foto-tira {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 6px;
    height: 260px;
}
.foto-tira > div {
    background-size: cover;
    background-position: center;
    background-color: #333; /* placeholder até subir a foto de verdade */
}

/* "Mais de 20 anos de experiência" — box azul com foto do fundador */
.escritorio-box {
    background-color: var(--blue-dark);
    display: flex;
    align-items: center;
    gap: 60px;
    padding: 70px 8%;
    flex-wrap: wrap;
}
.escritorio-texto { flex: 1 1 420px; }
.escritorio-texto h2 {
    font-family: 'Playfair Display', serif;
    font-size: 3.84rem;
    color: #fff;
    margin: 20px 0 25px;
    line-height: 1.2;
}
.escritorio-texto p { color: #dbe4ee; font-size: 1.52rem; line-height: 1.7; margin-bottom: 15px; }
.escritorio-foto {
    flex: 0 1 340px;
    max-width: 340px;
}
.escritorio-foto img { width: 100%; height: auto; display: block; }

/* Citação */
.citacao {
    text-align: center;
    padding: 90px 10%;
    color: #333;
}
.citacao p.frase {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 2.56rem;
    max-width: 700px;
    margin: 0 auto 20px;
    line-height: 1.5;
}
.citacao .autor { color: #999; font-size: 1.44rem; }

/* Missão / Visão / Valores */
.mvv {
    background-color: var(--primary-color);
    color: #111;
    padding: 70px 8%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px;
}
.mvv h3 { font-family: 'Playfair Display', serif; font-size: 2.24rem; margin-bottom: 18px; }
.mvv p { font-size: 1.44rem; line-height: 1.7; }

/* Equipe (carrossel) */
.equipe {
    background-color: var(--dark-bg);
    padding: 80px 8%;
    display: flex;
    gap: 60px;
    align-items: center;
    flex-wrap: wrap;
}
.equipe-intro { flex: 1 1 320px; }
.equipe-intro h2 {
    font-family: 'Playfair Display', serif;
    font-size: 3.52rem;
    color: #fff;
    margin-top: 15px;
    line-height: 1.25;
}
.equipe-slider { flex: 2 1 600px; max-width: 700px; }
.equipe-card { text-align: left; padding: 0 8px; }
.equipe-foto {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    background-color: #333; /* placeholder até subir a foto de verdade */
    display: block;
}
.equipe-card h4 { color: #fff; font-size: 1.6rem; margin: 14px 0 4px; font-weight: 600; }
.equipe-card .oab { color: #999; font-size: 1.28rem; display: block; margin-bottom: 12px; }
.equipe-card .btn-curriculo {
    display: inline-block;
    background-color: var(--primary-color);
    color: #111;
    font-size: 1.152rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 7px 16px;
    text-decoration: none;
}
.equipe-slider .owl-dots { text-align: left; margin-top: 20px; }
.equipe-slider .owl-dot span { background: #555 !important; }
.equipe-slider .owl-dot.active span { background: var(--primary-color) !important; }

/* Galeria de fotos do escritório */
.galeria-fotos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.galeria-fotos > div {
    aspect-ratio: 4/3;
    background-size: cover;
    background-position: center;
    background-color: #222; /* placeholder até subir a foto de verdade */
}

@media (max-width: 900px) {
    .mvv { grid-template-columns: 1fr; gap: 35px; }
    .galeria-fotos { grid-template-columns: repeat(2, 1fr); }
    .foto-tira { grid-template-columns: 1fr; height: auto; }
    .foto-tira > div { height: 200px; }
}
/* Micro-interações */
.blog-card, .socio-imagem-wrapper, .stat-box-amarelo, .faq-item {
    transition: transform .35s ease, box-shadow .35s ease;
}
.blog-card:hover { transform: translateY(-8px); box-shadow: 0 12px 30px rgba(0,0,0,0.15); }
.socio-imagem-wrapper:hover { transform: translateY(-6px); }
.stat-box-amarelo:hover { transform: translateY(-6px); }

/* Revelação suave ao rolar a página */
[data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .7s ease, transform .7s ease;
}
[data-animate].is-visible {
    opacity: 1;
    transform: translateY(0);
}
[data-animate="fade"] { transform: none; }

@media (prefers-reduced-motion: reduce) {
    [data-animate] {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .blog-card, .socio-imagem-wrapper, .stat-box-amarelo {
        transition: none;
    }
}

@media (max-width: 600px) {
    .galeria-fotos { grid-template-columns: 1fr; }
    .escritorio-box { padding: 50px 6%; }
}