:root{
  --wine: #4B1B27;
  --wine-light: #7A3244;
  --wine-pale: #C98D9B;
  --black: #131111;
  --surface: #1B1717;
  --surface-2: #221D1D;
  --white: #FBFAF8;
  --ink-soft: #C9C2C0;
  --ink-mute: #8a8282;
  --line: rgba(251,250,248,0.14);
  --ok: #8FBF9A;
  --warn: #E0B872;
  --err: #E08A8A;
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans: 'Source Sans 3', -apple-system, 'Segoe UI', sans-serif;
  --bg: var(--black);
  --fg: var(--white);
  color-scheme: dark;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 16px;} }

h1,h2,h3{font-family:var(--serif); font-weight:500; margin:0; letter-spacing:0.2px;}

.eyebrow-line{display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:12px; letter-spacing:2px; color:var(--wine-pale);}
.eyebrow-line .rule{width:28px; height:1px; background:var(--wine-pale);}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(19,17,17,0.88); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; height:76px; gap:16px;}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand-mark{
  width:38px; height:38px; border:1.5px solid var(--wine-pale);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:17px; color:var(--wine-pale); flex-shrink:0;
}
.brand-name{font-family:var(--serif); font-size:17px; letter-spacing:0.5px; line-height:1.15;}
.brand-name span{display:block; font-size:11px; color:var(--ink-soft); letter-spacing:2px; font-family:var(--sans); margin-top:2px;}
nav.links{display:flex; gap:36px; font-size:15px;}
nav.links a{text-decoration:none; color:var(--ink-soft); transition:color .2s; white-space:nowrap;}
@media (max-width:520px){ .hide-xs{display:none;} }
nav.links a:hover{color:var(--fg);}
@media (max-width:820px){ nav.links .hide-sm{display:none;} }
@media (max-width:420px){ .brand-name{font-size:15px;} }

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:96px 0 84px;
  background:
    radial-gradient(ellipse 900px 500px at 82% -10%, rgba(122,50,68,0.35), transparent 60%),
    var(--black);
  border-bottom:1px solid var(--line);
}
@media (max-width:640px){ .hero{padding:56px 0 64px;} }
.hero-grid{display:grid; grid-template-columns:auto 1fr; gap:64px; align-items:start;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:44px;} .hero-form-col{order:-1;} }

.hero-video-frame{
  position:relative; border:1px solid var(--line);
  padding:14px; background:var(--surface);
  max-width:340px; width:100%;
}
@media (max-width:900px){ .hero-video-frame{margin:0 auto;} }
.video-frame--lg{aspect-ratio:9/16;}
.hero-video-caption{margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.hero-video-caption h3{font-size:17px; margin-bottom:4px;}
.hero-video-caption p{margin:0; font-size:13.5px; color:var(--ink-soft);}

.hero-form-col h1{font-size:clamp(30px, 3.6vw, 42px); line-height:1.14; margin-bottom:16px;}
.hero-form-col p.lede{font-size:16.5px; color:var(--ink-soft); max-width:60ch; margin:0 0 32px;}

.price-note{
  display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline;
  padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  font-size:14.5px; color:var(--ink-soft);
}
.price-note strong{font-family:var(--serif); font-weight:500; font-size:22px; color:var(--fg);}

/* ---------- Specialties ---------- */
.specialties{padding:88px 0; border-bottom:1px solid var(--line);}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head h2{font-size:clamp(26px,3vw,34px);}
/* Quatro colunas: as oito áreas de atuação ficam em duas linhas. */
.spec-list{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line);}
@media (max-width:980px){ .spec-list{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .spec-list{grid-template-columns:1fr;} }
.spec-item{
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:32px 28px; min-height:150px; display:flex; flex-direction:column; justify-content:space-between;
}
.spec-item .num{font-family:var(--serif); font-size:14px; color:var(--wine-pale);}
.spec-item h3{font-size:19px; margin-top:22px;}

/* ---------- Formulários ---------- */
form.stack{display:flex; flex-direction:column; gap:20px;}
.row-two{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:480px){ .row-two{grid-template-columns:1fr;} }
.field label{display:block; font-size:13.5px; color:var(--ink-soft); margin-bottom:8px; letter-spacing:0.3px;}
.field input, .field textarea, .field select{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  color:var(--fg); font-family:var(--sans); font-size:16px; padding:10px 2px;
  resize:vertical; transition:border-color .2s; border-radius:0;
}
.field select{background:var(--surface); padding:10px 8px; border:1px solid var(--line);}
.field textarea{min-height:160px; line-height:1.55;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--wine-pale);}
.field input::placeholder, .field textarea::placeholder{color:#6b6363;}
.field .hint{font-size:12.5px; color:var(--ink-mute); margin-top:6px;}
.check{display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--ink-soft);}
.check input{margin-top:4px; width:17px; height:17px; accent-color:var(--wine-light); flex-shrink:0;}
.check a{color:var(--wine-pale);}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

.btn, .submit-btn{
  display:inline-block; background:var(--wine); color:var(--white); border:none;
  padding:16px 32px; font-family:var(--sans); font-size:15px; font-weight:600; cursor:pointer;
  text-decoration:none; transition:background .2s; align-self:flex-start;
}
.btn:hover, .submit-btn:hover{background:var(--wine-light);}
.btn-ghost{background:transparent; border:1px solid var(--line); color:var(--ink-soft);}
.btn-ghost:hover{background:var(--surface-2); color:var(--fg);}
.btn-sm{padding:9px 16px; font-size:14px;}
.btn-danger{background:transparent; border:1px solid rgba(224,138,138,.5); color:var(--err);}
.btn-danger:hover{background:rgba(224,138,138,.1);}

.alert{padding:14px 18px; border:1px solid var(--line); background:var(--surface); font-size:14.5px; margin-bottom:24px;}
.alert ul{margin:6px 0 0; padding-left:18px;}
.alert-ok{border-color:rgba(143,191,154,.5); background:rgba(143,191,154,.08);}
.alert-warn{border-color:rgba(224,184,114,.5); background:rgba(224,184,114,.08);}
.alert-err{border-color:rgba(224,138,138,.55); background:rgba(224,138,138,.08);}

/* ---------- Vídeo ---------- */
.video-frame{position:relative; width:100%; background:var(--black); border:1px solid var(--line); overflow:hidden;}
.video-frame video, .video-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0; object-fit:cover; background:#000;}
.video-placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:16px; background:linear-gradient(160deg, var(--surface-2), var(--black));
}
.play-btn{
  width:64px; height:64px; border-radius:50%; border:1.5px solid var(--wine-pale);
  display:flex; align-items:center; justify-content:center;
}
.play-btn svg{width:20px; height:20px; margin-left:3px;}
.video-placeholder span{font-size:13.5px; color:var(--ink-soft); letter-spacing:0.3px;}

/* ---------- About ---------- */
.about{padding:96px 0;}
.about-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:center;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr; gap:40px;} }
.about-photo{border:1px solid var(--line); padding:12px; background:var(--surface); max-width:460px;}
.about-photo img{filter:grayscale(12%) contrast(1.03); width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover;}
.about-text h2{font-size:clamp(26px,3vw,32px); margin-bottom:22px;}
.about-text p{color:var(--ink-soft); font-size:16.5px; max-width:56ch;}
.credentials{margin-top:32px; display:flex; flex-direction:column; border-top:1px solid var(--line);}
.cred-row{display:flex; justify-content:space-between; gap:24px; padding:16px 0; border-bottom:1px solid var(--line); font-size:14.5px;}
.cred-row .k{color:var(--ink-soft);}
.cred-row .v{color:var(--fg); text-align:right;}

/* ---------- Páginas internas ---------- */
.page{padding:72px 0 96px; min-height:60vh;}
@media (max-width:640px){ .page{padding:44px 0 64px;} }
.page-narrow{max-width:760px;}
.page h1{font-size:clamp(28px,3.4vw,38px); line-height:1.15; margin-bottom:14px;}
.page h2{font-size:22px; margin:36px 0 12px;}
.page p, .page li{color:var(--ink-soft);}
.page .lede{font-size:16.5px; margin:0 0 32px;}
.card{border:1px solid var(--line); background:var(--surface); padding:28px;}
@media (max-width:640px){ .card{padding:20px;} }

.ticket-head{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:24px;}
.ticket-meta{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:0 28px; border-top:1px solid var(--line); margin-bottom:32px;}
/* min-width:0 e a quebra evitam que um e-mail longo invada a coluna vizinha. */
.ticket-meta div{padding:14px 0; border-bottom:1px solid var(--line); font-size:14.5px; min-width:0; overflow-wrap:anywhere;}
.ticket-meta .k{display:block; font-size:12px; letter-spacing:1px; color:var(--ink-mute); text-transform:uppercase;}
.proto{font-family:var(--serif); font-size:15px; color:var(--wine-pale); letter-spacing:1px;}

.badge{display:inline-block; padding:4px 10px; font-size:12.5px; font-weight:600; letter-spacing:.3px; border:1px solid var(--line); white-space:nowrap;}
.badge-aguardando_pagamento{color:var(--warn); border-color:rgba(224,184,114,.45);}
.badge-em_analise{color:var(--wine-pale); border-color:rgba(201,141,155,.5);}
.badge-respondido{color:var(--ok); border-color:rgba(143,191,154,.5);}
.badge-inativo{color:var(--ink-mute);}
.badge-ativo{color:var(--ok); border-color:rgba(143,191,154,.5);}
.badge-cancelado{color:var(--err); border-color:rgba(224,138,138,.45);}

.thread{display:flex; flex-direction:column; gap:16px; margin-bottom:32px;}
.msg{border:1px solid var(--line); padding:18px 20px; background:var(--surface);}
.msg-advogado{border-left:3px solid var(--wine-pale); background:var(--surface-2);}
.msg-head{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:13px; color:var(--ink-mute); margin-bottom:10px;}
.msg-head strong{color:var(--fg); font-weight:600;}
.msg-body{white-space:pre-wrap; word-wrap:break-word; color:var(--fg); font-size:15.5px;}

/* ---------- Admin ---------- */
.tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px;}
.tabs a{padding:8px 14px; border:1px solid var(--line); text-decoration:none; font-size:14px; color:var(--ink-soft);}
.tabs a.on{background:var(--wine); border-color:var(--wine); color:var(--white);}
.tabs a .n{opacity:.7; margin-left:4px;}
.table-wrap{overflow-x:auto; border:1px solid var(--line);}
table.list{width:100%; border-collapse:collapse; font-size:14.5px; min-width:640px;}
table.list th, table.list td{padding:12px 14px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top;}
table.list th{font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--ink-mute); font-weight:600; background:var(--surface);}
table.list tr:hover td{background:var(--surface);}
table.list a{text-decoration:none;}
.muted{color:var(--ink-mute);}
.actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}

/* ---------- Footer ---------- */
footer{background:var(--black); padding:64px 0 36px; border-top:1px solid var(--line);}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px;}
@media (max-width:720px){ .footer-grid{grid-template-columns:1fr; gap:36px;} }
.footer-brand .brand-name{font-size:19px;}
.footer-brand p{color:var(--ink-soft); font-size:14.5px; margin-top:18px; max-width:32ch;}
.footer-col h4{font-size:13px; letter-spacing:1px; color:var(--wine-pale); margin:0 0 18px; font-weight:600;}
.footer-col p, .footer-col a{font-size:14.5px; color:var(--ink-soft); margin:0 0 10px; text-decoration:none; display:block; overflow-wrap:anywhere;}
.footer-col a:hover{color:var(--fg);}
.footer-bottom{
  margin-top:52px; padding-top:24px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:13px; color:#7a7373;
}
.footer-bottom a{color:#7a7373;}

/* ---------- Painel: abas, menu lateral, ícones, paginação ---------- */
nav.links a.admin-aba{padding:6px 2px; border-bottom:2px solid transparent;}
nav.links a.admin-aba.on{color:var(--fg); border-bottom-color:var(--wine-pale);}
.admin-quem{color:var(--ink-mute); font-size:14px; max-width:18ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; align-self:center;}
@media (max-width:640px){ nav.links{gap:18px;} }

.admin-layout{display:grid; grid-template-columns:200px 1fr; gap:40px; align-items:start;}
@media (max-width:820px){ .admin-layout{grid-template-columns:1fr; gap:20px;} }
.admin-lateral{display:flex; flex-direction:column; border:1px solid var(--line); background:var(--surface); position:sticky; top:100px;}
.admin-lateral a{padding:12px 16px; text-decoration:none; color:var(--ink-soft); border-left:3px solid transparent; font-size:15px;}
.admin-lateral a + a{border-top:1px solid var(--line);}
.admin-lateral a:hover{color:var(--fg); background:var(--surface-2);}
.admin-lateral a.on{color:var(--fg); border-left-color:var(--wine-pale); background:var(--surface-2);}
@media (max-width:820px){ .admin-lateral{flex-direction:row; position:static;} .admin-lateral a{flex:1; text-align:center; border-left:none; border-bottom:3px solid transparent;} .admin-lateral a + a{border-top:none; border-left:1px solid var(--line);} .admin-lateral a.on{border-bottom-color:var(--wine-pale);} }
.admin-painel{min-width:0;}
.admin-painel h1{margin-bottom:10px;}
h2.secao{font-size:20px; margin:36px 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line);}
code{font-family:ui-monospace, Consolas, monospace; font-size:.92em; background:var(--surface-2); padding:1px 5px; color:var(--fg);}

.grade-campos{display:grid; grid-template-columns:repeat(2, 1fr); gap:20px 24px;}
.grade-campos .campo-2{grid-column:1 / -1;}
@media (max-width:560px){ .grade-campos{grid-template-columns:1fr;} }
.smtp-teste{display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; padding:14px 16px; background:var(--surface); border:1px solid var(--line);}
.smtp-teste .field{flex:1; min-width:220px;}

.col-acoes{width:1%; white-space:nowrap;}
.icones{display:flex; gap:6px; align-items:center;}
.icones form{margin:0;}
.btn-icone{
  display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px;
  background:transparent; border:1px solid var(--line); color:var(--ink-soft); cursor:pointer; padding:0;
  transition:color .2s, border-color .2s, background .2s;
}
.btn-icone svg{width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.btn-icone:hover{color:var(--fg); border-color:var(--wine-pale); background:var(--surface-2);}
.btn-icone.excluir:hover{color:var(--err); border-color:rgba(224,138,138,.6);}

.paginacao{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px 24px; margin-top:18px; font-size:14px; color:var(--ink-soft);}
.paginacao form{margin:0;}
.paginacao select, .paginacao input{background:var(--surface); color:var(--fg); border:1px solid var(--line); padding:6px 8px; font-family:var(--sans); font-size:14px;}
.paginacao input{width:70px;}
.paginacao-nav{display:flex; flex-wrap:wrap; align-items:center; gap:12px;}
.btn.desativado{opacity:.4; pointer-events:none;}
nav.links{align-items:center;}
table.list .proto, table.list td.nowrap{white-space:nowrap;}
table.list td.titulo{min-width:170px;}
.filtros{display:flex; flex-wrap:wrap; gap:16px 20px; align-items:flex-end; padding:16px 18px; margin-bottom:20px; border:1px solid var(--line); background:var(--surface);}
.filtros .field{min-width:150px;}
.filtros .filtro-busca{flex:1; min-width:220px;}
.filtros .field label{margin-bottom:4px;}
.filtros input[type="date"]{color-scheme:dark;}
.acoes-form{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-top:6px;}
.notificar{margin-bottom:20px; border:1px solid var(--line); background:var(--surface);}
.notificar summary{cursor:pointer; padding:14px 18px; font-size:14.5px; color:var(--ink-soft); list-style:none; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.notificar summary::-webkit-details-marker{display:none;}
.notificar summary strong{color:var(--fg); font-weight:600;}
.notificar[open] summary{border-bottom:1px solid var(--line);}
.notificar form{padding:16px 18px; display:flex; flex-wrap:wrap; gap:14px 20px; align-items:flex-end;}
.notificar .field{flex:1; min-width:260px;}

/* ---------- Avaliações do Google ---------- */
.avaliacoes{padding:88px 0; border-top:1px solid var(--line); background:linear-gradient(180deg, var(--black), var(--surface));}
@media (max-width:640px){ .avaliacoes{padding:56px 0;} }
.estrelas{display:inline-flex; gap:3px; color:#E3B341; line-height:1;}
.estrela{width:18px; height:18px; stroke:#E3B341; stroke-width:1.2;}
.estrela.cheia{fill:currentColor;}
.estrela.meia{fill:url(#meiaEstrela);}
.estrela.vazia{fill:none;}
.aval-resumo{display:flex; align-items:center; gap:20px; flex-wrap:wrap; padding:22px 26px; border:1px solid var(--line); background:var(--surface); margin-bottom:28px;}
.aval-resumo .aval-nota{font-family:var(--serif); font-size:44px; line-height:1;}
.aval-resumo p{margin:8px 0 0; font-size:14px;}
.aval-resumo .btn{margin-left:auto;}
@media (max-width:520px){ .aval-resumo .btn{margin-left:0;} }
.aval-lista{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:20px;}
.aval-item{margin:0; padding:24px; border:1px solid var(--line); background:var(--surface); display:flex; flex-direction:column; gap:14px;}
.aval-item blockquote{margin:0; font-size:15.5px; color:var(--ink-soft); line-height:1.6;}
.aval-item figcaption{display:flex; align-items:center; gap:12px; margin-top:auto; font-size:13.5px; color:var(--ink-mute);}
.aval-item figcaption img{border-radius:50%; width:36px; height:36px; object-fit:cover;}
.aval-item figcaption strong{color:var(--fg); font-weight:600;}
.aval-fonte{margin-top:22px; font-size:13px;}
