/* Port Advocacia — site institucional (protótipo) */
:root{
  --bg:#F7F5F0; --ink:#0E121B; --gold:#B38C3C; --gold-soft:rgba(179,140,60,.12);
  --paper:#FFFFFF; --muted:#5C6370; --line:rgba(179,140,60,.4); --line-soft:rgba(14,18,27,.09);
  --wa:#128C4B;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--ink);
  background-image:url('papel.png');
  font-family:'Saira',sans-serif; font-weight:400; line-height:1.65; font-size:16px; }
img{ max-width:100%; height:auto; }
a{ color:var(--gold); text-decoration:none; }
.wrap{ max-width:1080px; margin:0 auto; padding:0 24px; }
.narrow{ max-width:760px; }

/* ---------- Navegação (azul marinho) ---------- */
:root{ --navy:#0E121B; --navy-2:#161D2C; --navy-text:#E8E5DC; --navy-muted:#A7ACB8; }
nav.top{ position:sticky; top:0; z-index:40; background:var(--navy); }
nav.top::after{ content:""; display:block; height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--gold) 22%, var(--gold) 78%, transparent 100%); opacity:.55; }
nav.top .wrap{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 24px; }
.brand{ display:inline-flex; align-items:center; gap:14px; color:#fff!important; }
.brand img{ height:48px; width:auto; }
.brand .bsep{ width:1px; height:40px; background:linear-gradient(180deg, transparent, var(--gold) 30%, var(--gold) 70%, transparent); }
.brand .btxt{ display:flex; flex-direction:column; line-height:1.2; }
.brand .btxt b{ font-weight:500; font-size:17.5px; letter-spacing:.34em; color:#fff; }
.brand .btxt small{ font-size:10px; letter-spacing:.6em; color:var(--gold); font-weight:500; margin-top:2px; }
nav.top img.logo-full{ width:150px; }
nav.top .links{ display:flex; align-items:center; gap:26px; }
nav.top .links a{ color:var(--navy-text); font-size:14.5px; font-weight:500; letter-spacing:.04em; }
nav.top .links a:hover{ color:var(--gold); }
nav.top .links a:not(.btn-wa){ position:relative; padding-bottom:4px; }
nav.top .links a:not(.btn-wa)::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
nav.top .links a:not(.btn-wa):hover::after{ transform:scaleX(1); }
nav.top .btn-wa{ background:transparent; border:1px solid var(--gold); color:var(--gold)!important; padding:8px 18px; }
nav.top .btn-wa:hover{ background:var(--gold); color:var(--navy)!important; box-shadow:none; }
.btn-wa{ display:inline-flex; align-items:center; gap:9px; background:var(--wa); color:#fff!important;
  font-weight:500; padding:10px 20px; border-radius:6px; font-size:15px;
  transition:transform .2s ease, box-shadow .2s ease; }
.btn-wa:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(18,140,75,.28); }
.btn-wa svg{ width:18px; height:18px; flex:0 0 auto; }
.btn-dark{ display:inline-block; background:var(--ink); color:var(--bg)!important; font-weight:500;
  padding:12px 26px; border-radius:6px; font-size:15.5px; transition:transform .2s ease, box-shadow .2s ease; }
.btn-dark:hover{ transform:translateY(-2px); box-shadow:0 6px 18px rgba(14,18,27,.22); }
.nav-toggle{ display:none; appearance:none; -webkit-appearance:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; padding:8px 2px 8px 10px; }
.nav-toggle span{ width:22px; height:2px; background:var(--gold); border-radius:2px; transition:transform .3s ease, opacity .3s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (max-width:720px){
  nav.top .links a:not(.btn-wa){ display:none; }
  .nav-toggle{ display:flex; }
  nav.top .links.open{ position:absolute; top:100%; left:0; right:0; background:var(--navy);
    flex-direction:column; align-items:stretch; gap:0; padding:8px 24px 22px;
    border-bottom:2px solid var(--line); box-shadow:0 22px 34px rgba(0,0,0,.4); }
  nav.top .links.open a:not(.btn-wa){ display:block; padding:13px 2px; font-size:16px;
    border-bottom:1px solid rgba(255,255,255,.07); }
  nav.top .links.open .btn-wa{ margin-top:14px; justify-content:center; }
}
@media (max-width:640px){
  nav.top .wrap{ gap:8px; padding:11px 14px; }
  .brand{ gap:8px; flex:0 1 auto; min-width:0; }
  .brand img{ height:34px; }
  .brand .bsep{ height:28px; }
  .brand .btxt b{ font-size:12px; letter-spacing:.18em; }
  .brand .btxt small{ font-size:7.5px; letter-spacing:.3em; }
  nav.top .btn-wa{ padding:7px 11px; font-size:12.5px; flex:0 0 auto; gap:6px; }
  nav.top .btn-wa svg{ width:14px; height:14px; }
  .nav-toggle{ padding:6px 0 6px 4px; }
}

/* ---------- Tipografia ---------- */
h1,h2,h3,h4{ font-weight:500; line-height:1.22; margin:0; text-wrap:balance; }
.eyebrow{ font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
  font-weight:500; margin:0 0 14px; }
p.lead{ font-size:19px; color:var(--muted); max-width:58ch; }
.justify p{ text-align:justify; }

/* ---------- Primeira dobra (faixa navy, texto centralizado) ---------- */
.hero-navy{ background:var(--navy); color:var(--navy-text); text-align:center;
  padding:112px 0 96px; position:relative; overflow:hidden; }
.hero-navy::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 0%, rgba(179,140,60,.10), transparent 70%); }
.hero-navy .wrap{ position:relative; z-index:2; }

/* Variante A: foto arquitetônica com véu navy */
.hero-navy.v-foto::before{ background:url("hero-arquitetura.jpg") center 35%/cover no-repeat;
  opacity:.38; filter:grayscale(.3) brightness(.9); animation:heroZoom 10s ease-out both; }
@keyframes heroZoom{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
.hero-navy.v-foto .backdrop{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(14,18,27,.66) 0%, rgba(14,18,27,.42) 45%, var(--navy) 97%); }

/* Variante B: símbolo como marca d'água */
.hero-navy.v-simbolo::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:url("simbolo-branco.png") no-repeat right -40px center / min(44vw, 500px); opacity:.05; }
.hero-navy .eyebrow{ letter-spacing:.3em; }
.hero-navy h1{ color:#fff; font-size:clamp(32px,4.8vw,54px); max-width:24ch; margin:0 auto; }
.hero-navy .fio{ width:64px; border:none; border-top:2px solid var(--gold); margin:26px auto; }
.hero-navy .sub{ font-size:16.5px; color:var(--navy-muted); max-width:56ch; margin:0 auto 38px; }
.nichos{ display:flex; flex-wrap:wrap; justify-content:center; row-gap:10px; margin:0 auto 44px; max-width:72ch;
  font-size:13.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--navy-text); font-weight:500; }
.nichos span{ padding:0 16px; position:relative; }
.nichos span + span::before{ content:"·"; color:var(--gold); position:absolute; left:-4px; font-size:18px; line-height:1; top:0; }
.btn-gold{ display:inline-block; background:var(--gold); color:var(--navy)!important; font-weight:500;
  padding:13px 30px; border-radius:5px; font-size:15.5px; letter-spacing:.03em;
  transition:transform .2s ease, box-shadow .2s ease; }
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 8px 22px rgba(179,140,60,.35); }
.hero-navy .alt-link{ color:#fff; font-weight:500; margin-left:26px; }
.hero-navy .alt-link:hover{ color:var(--gold); }
.hero-navy .marks{ display:flex; gap:0; margin-top:64px; flex-wrap:wrap; justify-content:center; }
.hero-navy .mark{ padding:0 34px; font-size:13.5px; color:var(--navy-muted); text-align:center; }
.hero-navy .mark + .mark{ border-left:1px solid rgba(179,140,60,.35); }
.hero-navy .mark b{ display:block; color:#fff; font-weight:500; font-size:15.5px; margin-bottom:2px; }
@media (max-width:640px){ .hero-navy{ padding:80px 0 64px; } .hero-navy .mark{ padding:8px 18px; } }

/* ---------- Dobra escura de atuação ---------- */
section.navy{ background:var(--navy); }
section.navy .sec-head h2{ color:#fff; }
section.navy .sec-head p{ color:var(--navy-muted); }
section.navy .area{ background:var(--navy-2); border:1px solid rgba(255,255,255,.07); border-top:2px solid var(--gold); }
section.navy .area h3{ color:#fff; }
section.navy .area p{ color:var(--navy-muted); }
section.navy .area:hover{ box-shadow:0 16px 34px rgba(0,0,0,.4); }

/* ---------- Seções ---------- */
section{ padding:76px 0; }
section.alt{ background:var(--paper); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); }
.sec-head{ margin-bottom:42px; max-width:640px; }
.sec-head h2{ font-size:clamp(26px,3.2vw,36px); }
.sec-head p{ color:var(--muted); font-size:17px; margin:14px 0 0; }
.gold-rule{ width:56px; border:none; border-top:2px solid var(--gold); margin:18px 0 0 0; }

/* áreas */
.areas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.area{ background:var(--bg); border:1px solid var(--line-soft); border-top:2px solid var(--gold);
  border-radius:8px; padding:26px 24px 22px; transition:transform .25s ease, box-shadow .25s ease; }
section:not(.alt) .area{ background:var(--paper); }
.area:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(14,18,27,.08); }
.area h3{ font-size:19.5px; margin-bottom:9px; }
.area p{ font-size:14.5px; color:var(--muted); margin:0 0 14px; }
.area a{ font-size:14px; font-weight:500; }
.area a::after{ content:" \2192"; }

/* sobre */
.sobre .wrap{ display:grid; grid-template-columns:.9fr 1.1fr; gap:54px; align-items:center; }
.sobre .foto{ background:var(--paper); border:1px solid var(--line); border-radius:8px;
  aspect-ratio:4/4.6; display:grid; place-items:center; color:var(--muted); font-size:14px; text-align:center; padding:20px; }
.sobre h2{ font-size:clamp(26px,3vw,34px); margin-bottom:18px; }
.sobre p{ color:var(--muted); }
@media (max-width:860px){ .sobre .wrap{ grid-template-columns:1fr; } }

/* blog cards */
.posts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.post{ background:var(--paper); border:1px solid var(--line-soft); border-radius:8px; overflow:hidden;
  display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease; }
.post:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(14,18,27,.08); }
.post .cat{ font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.post .body{ padding:24px 24px 22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.post h3{ font-size:18.5px; }
.post h3 a{ color:var(--ink); }
.post h3 a:hover{ color:var(--gold); }
.post p{ font-size:14.5px; color:var(--muted); margin:0; flex:1; }
.post .date{ font-size:13px; color:var(--muted); }

/* CTA final */
.cta-final{ text-align:center; }
.cta-final h2{ font-size:clamp(26px,3.4vw,38px); }
.cta-final p{ color:var(--muted); max-width:52ch; margin:16px auto 30px; }

/* footer */
footer{ background:var(--ink); color:#B9BDC7; padding:54px 0 34px; font-size:14px; }
footer .wrap{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:36px; }
footer img{ width:96px; margin-bottom:16px; }
footer h4{ color:#fff; font-size:15px; margin-bottom:12px; }
footer a{ color:#B9BDC7; display:block; margin-bottom:8px; }
footer a:hover{ color:var(--gold); }
footer .aviso{ grid-column:1/-1; border-top:1px solid rgba(255,255,255,.12); padding-top:20px; margin-top:12px;
  font-size:12.5px; color:#8A8F9B; }
@media (max-width:720px){ footer .wrap{ grid-template-columns:1fr; } }

/* ---------- Animações ---------- */
.reveal{ opacity:0; transform:translateY(30px); filter:blur(6px); transition:opacity .95s cubic-bezier(.22,.61,.36,1), transform .95s cubic-bezier(.22,.61,.36,1), filter .95s ease; }
.reveal.in{ opacity:1; transform:none; filter:none; }
.reveal.d1{ transition-delay:.15s; } .reveal.d2{ transition-delay:.3s; } .reveal.d3{ transition-delay:.45s; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .area,.post,.btn-wa,.btn-dark{ transition:none; }
}

/* ---------- Página interna / artigo ---------- */
.artigo{ padding:64px 0 80px; }
.artigo h1{ font-size:clamp(28px,3.8vw,42px); margin:10px 0 14px; }
.artigo .meta{ color:var(--muted); font-size:14px; margin-bottom:34px; }
.artigo .conteudo{ max-width:70ch; }
.artigo .conteudo p{ text-align:justify; margin:0 0 18px; font-size:16.5px; }
.artigo .conteudo h2{ font-size:23px; margin:38px 0 14px; }
.artigo .conteudo ul{ margin:0 0 18px; padding-left:22px; }
.artigo .conteudo li{ margin-bottom:8px; }
.box-cta{ border:1px solid var(--line); border-left:3px solid var(--gold); background:var(--gold-soft);
  border-radius:8px; padding:22px 26px; margin:34px 0; }
.box-cta p{ margin:0 0 14px!important; text-align:left!important; }

/* ---------- LP ---------- */
.lp-hero{ padding:70px 0 60px; }
.lp-hero h1{ font-size:clamp(30px,4.2vw,46px); max-width:20ch; }
.lp-hero .sub{ font-size:17.5px; color:var(--muted); max-width:62ch; margin:20px 0 30px; text-align:justify; }
.lp-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.lp-card{ background:var(--paper); border:1px solid var(--line-soft); border-left:2px solid var(--gold);
  border-radius:7px; padding:22px 22px 18px; }
.lp-card h3{ font-size:17px; margin-bottom:8px; }
.lp-card p{ font-size:14.5px; color:var(--muted); margin:0; text-align:justify; }
.faq-list{ max-width:760px; }
.faq-list details{ border-bottom:1px solid var(--line-soft); padding:6px 0; }
.faq-list summary{ cursor:pointer; font-weight:500; font-size:16.5px; padding:12px 0; list-style:none; display:flex; justify-content:space-between; gap:16px; }
.faq-list summary::after{ content:"+"; color:var(--gold); font-size:20px; }
.faq-list details[open] summary::after{ content:"\2212"; }
.faq-list details p{ color:var(--muted); margin:0 0 14px; text-align:justify; }
.center{ text-align:center; }

/* ---------- Páginas internas institucionais (abertura navy) ---------- */
.page-hero{ padding:76px 0 62px; background:var(--navy); color:var(--navy-text); text-align:center; }
.page-hero h1{ font-size:clamp(30px,4vw,44px); max-width:24ch; color:#fff; margin:0 auto; }
.page-hero .sub{ font-size:17.5px; color:var(--navy-muted); max-width:62ch; margin:18px auto 0; }
.page-hero .fio{ width:56px; border:none; border-top:2px solid var(--gold); margin:22px auto 0; }
.crumb{ font-size:13px; color:var(--navy-muted); margin-bottom:18px; }
.crumb a{ color:var(--navy-muted); } .crumb a:hover{ color:var(--gold); }

.prose{ max-width:70ch; }
.prose p{ text-align:justify; margin:0 0 18px; font-size:16.5px; }
.prose h2{ font-size:23px; margin:38px 0 14px; }
.prose ul{ margin:0 0 18px; padding-left:22px; }
.prose li{ margin-bottom:9px; }

.foto-adv{ width:100%; max-width:380px; border-radius:18px; border:1px solid var(--line);
  filter:grayscale(1); box-shadow:0 18px 40px rgba(14,18,27,.14); }

/* contato */
.contact-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:start; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
.c-item{ border-left:2px solid var(--gold); padding-left:16px; margin-bottom:26px; }
.c-item b{ display:block; font-weight:500; margin-bottom:4px; }
.c-item span, .c-item a{ color:var(--muted); font-size:15.5px; }
.mapa{ border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.mapa iframe{ display:block; width:100%; height:420px; border:0; filter:grayscale(.4); }

/* faixa de contato na home */
.strip{ background:var(--ink); color:#D8DAE0; padding:46px 0; }
.strip .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; }
.strip h3{ color:#fff; font-size:22px; }
.strip p{ margin:6px 0 0; font-size:15px; color:#B9BDC7; }


/* nichos dentro dos cards */
.area ul{ list-style:none; padding:0; margin:0 0 16px; }
.area li{ font-size:14px; color:var(--muted); padding:5px 0 5px 16px; position:relative;
  border-bottom:1px solid var(--line-soft); }
.area li:last-child{ border-bottom:none; }
.area li::before{ content:"·"; color:var(--gold); position:absolute; left:2px; font-weight:500; }
section.navy .area li{ color:var(--navy-muted); border-bottom-color:rgba(255,255,255,.07); }

/* traço elegante sob o eyebrow do advogado */
.trace{ width:34px; border:none; border-top:1px solid var(--gold); margin:8px 0 18px; }

/* ícones dos cards de área */
.area .ic{ color:var(--gold); margin-bottom:14px; }
.area .ic svg{ width:30px; height:30px; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

/* redes sociais */
.social{ display:flex; gap:16px; margin-top:16px; }
.social a{ color:#8A8F9B; transition:color .25s ease, transform .25s ease; display:inline-flex; }
.social a:hover{ color:var(--gold); transform:translateY(-2px); }
.social svg{ width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contact-grid .social a{ color:var(--muted); }
.contact-grid .social a:hover{ color:var(--gold); }

.sobre .social{ margin-top:18px; justify-content:center; max-width:380px; }
.sobre .social a{ color:var(--muted); }
.sobre .social a:hover{ color:var(--gold); }

/* ---------- Acabamentos de papelaria ---------- */
/* divisor com o símbolo */
.divisor-wrap{ padding:30px 0; background:var(--bg); }
.divisor{ display:flex; align-items:center; justify-content:center; gap:18px; max-width:420px; margin:0 auto; }
.divisor span{ flex:1; height:1px; }
.divisor span:first-child{ background:linear-gradient(90deg, transparent, var(--line)); }
.divisor span:last-child{ background:linear-gradient(90deg, var(--line), transparent); }
.divisor img{ height:22px; width:auto; opacity:.9; }
.conteudo .divisor{ margin:36px auto; }

/* cantoneiras douradas */
.foto-frame{ position:relative; display:inline-block; max-width:380px; }
.foto-frame::before, .foto-frame::after{ content:""; position:absolute; width:26px; height:26px; }
.foto-frame::before{ top:-9px; left:-9px; border-top:2px solid var(--gold); border-left:2px solid var(--gold); }
.foto-frame::after{ bottom:-9px; right:-9px; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); }
.area{ position:relative; }
.area::before, .area::after{ content:""; position:absolute; width:16px; height:16px; opacity:0; transition:opacity .35s ease; pointer-events:none; }
.area::before{ top:7px; left:7px; border-top:1.5px solid var(--gold); border-left:1.5px solid var(--gold); }
.area::after{ bottom:7px; right:7px; border-bottom:1.5px solid var(--gold); border-right:1.5px solid var(--gold); }
.area:hover::before, .area:hover::after{ opacity:1; }

/* capitular dourada */
.prose > p:first-of-type::first-letter,
.artigo .conteudo > p:first-of-type::first-letter{
  font-size:3.3em; font-weight:500; color:var(--gold); float:left; line-height:.82; padding:6px 10px 0 0; }

/* rodapé espelhando a linha do cabeçalho */
footer{ position:relative; }
footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--gold) 22%, var(--gold) 78%, transparent 100%); opacity:.55; }

/* toques finais */
::selection{ background:rgba(179,140,60,.3); color:var(--ink); }
html{ scrollbar-color:rgba(14,18,27,.38) transparent; }
::-webkit-scrollbar{ width:11px; }
::-webkit-scrollbar-thumb{ background:rgba(14,18,27,.32); border-radius:6px; }
::-webkit-scrollbar-thumb:hover{ background:var(--gold); }

/* mobile: leitura e empilhamento */
@media (max-width:640px){
  .justify p, .prose p, .artigo .conteudo p, .lp-card p, .page-hero .sub{ hyphens:auto; -webkit-hyphens:auto; }
  .hero-navy .alt-link{ display:block; margin:20px auto 0; }
  .btn-wa, .btn-gold, .btn-dark{ max-width:100%; }
}
@media (max-width:860px){
  .sobre .foto-frame{ display:block; margin:0 auto; }
  .sobre .social{ margin-left:auto; margin-right:auto; }
}

/* categoria-mãe dentro do card */
.area .acat{ display:block; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); font-weight:500; margin-bottom:5px; }

/* seção do advogado (coluna central) */
.center-col{ text-align:center; }
.center-col .trace{ margin-left:auto; margin-right:auto; }
.center-col .foto-frame{ margin:0 auto; }
.center-col .social{ justify-content:center; max-width:none; margin:20px auto 0; }
.center-col .prose{ margin:30px auto 0; }
.oab{ font-size:12.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--muted); margin:4px 0 30px; }

/* correção de precedência: cards dentro da dobra navy */
section.navy .area{ background:var(--navy-2); border:1px solid rgba(255,255,255,.07); border-top:2px solid var(--gold); }
section.navy .area h3{ color:#fff; }
section.navy .area p{ color:var(--navy-muted); }
section.navy .area li{ color:var(--navy-muted); border-bottom-color:rgba(255,255,255,.07); }

/* ícones nos cards da LP */
.lp-card .ic{ color:var(--gold); margin-bottom:12px; }
.lp-card .ic svg{ width:28px; height:28px; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }

/* avaliações de clientes */
.revs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.rev{ background:var(--paper); border:1px solid var(--line-soft); border-radius:8px; padding:22px 22px 18px;
  display:flex; flex-direction:column; gap:10px; }
.rev .stars{ color:var(--gold); font-size:15px; letter-spacing:.22em; }
.rev p{ font-size:14.5px; color:var(--muted); margin:0; text-align:justify; hyphens:auto; flex:1; }
.rev .who{ font-size:13.5px; font-weight:500; }
.rev .who span{ display:block; font-weight:400; font-size:12px; color:var(--muted); }

/* mobile: botões de conversão proporcionais */
@media (max-width:640px){
  .hero-navy .btn-wa, .cta-final .btn-wa{
    font-size:15px!important; padding:13px 20px!important;
    width:100%; max-width:330px; justify-content:center; text-align:center; margin-left:auto; margin-right:auto; }
  .center .btn-wa, section .wrap > p.center .btn-wa{ width:100%; max-width:330px; justify-content:center; }
}
