/* ============================================================
   A&S ADVOGADOS — ESTILOS
   Paleta: Bordô Imperial · Vinho Nobre · Marfim Pérola · Ouro Champagne
   ============================================================ */

:root{
  --bordo: #3D0C11;
  --bordo-hover: #2B070A;
  --vinho: #240508;
  --vinho-light: #59141B;
  --marfim: #FAF8F5;
  --areia: #F2ECE4;
  --gold: #C5A059;
  --gold-light: #E8C8A0;
  --grafite: #1C1917;
  --cinza: #78716C;
  --branco: #FFFFFF;
  --wa: #25D366;

  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;

  --maxw: 1240px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  background:var(--marfim);
  color:var(--grafite);
  line-height:1.6;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
ul{ list-style:none; }
::selection{ background:var(--bordo); color:var(--marfim); }

/* Grain overlay */
body::before{
  content:""; position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.04; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Layout helpers ---------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 22px; }
section{ position:relative; }
.section-pad{ padding:88px 0; }
@media(min-width:768px){ .section-pad{ padding:128px 0; } }

.eyebrow{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:.6rem; font-weight:500;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); display:inline-block; }
.eyebrow.center::after{ content:""; width:26px; height:1px; background:var(--gold); display:inline-block; }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.1; letter-spacing:-.01em; }
.display{ font-size:clamp(2.4rem,7vw,4.6rem); font-weight:600; line-height:1.04; letter-spacing:-.02em; }
.h2{ font-size:clamp(1.9rem,4.2vw,3.1rem); }
.lead{ font-size:clamp(1rem,1.4vw,1.18rem); color:var(--cinza); line-height:1.7; }
em, .italic{ font-style:italic; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:16px 28px; border-radius:100px; font-weight:600; font-size:.92rem;
  letter-spacing:.01em; transition:transform .5s var(--ease), background .35s, color .35s, box-shadow .35s;
  will-change:transform; position:relative;
}
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--bordo); color:var(--marfim); }
.btn-primary:hover{ background:var(--bordo-hover); box-shadow:0 18px 40px -12px rgba(61,12,17,.55); }
.btn-wa{ background:var(--wa); color:#053d29; }
.btn-wa:hover{ background:#1fbe5c; box-shadow:0 18px 40px -12px rgba(37,211,102,.5); }
.btn-ghost{ border:1px solid rgba(28,25,23,.22); color:var(--grafite); }
.btn-ghost:hover{ border-color:var(--bordo); color:var(--bordo); }
.btn-light{ background:var(--marfim); color:var(--bordo); }
.btn-light:hover{ background:#fff; box-shadow:0 18px 40px -12px rgba(0,0,0,.35); }
.on-dark .btn-ghost{ border-color:rgba(250,248,245,.28); color:var(--marfim); }
.on-dark .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

/* LED verde esfumaçado atrás do botão (sem movimento) */
.btn-glow{ animation:ledglow 3.2s ease-in-out infinite; }
@keyframes ledglow{
  0%,100%{ box-shadow:0 0 20px 2px rgba(37,211,102,.32), 0 0 44px 10px rgba(37,211,102,.16); }
  50%{ box-shadow:0 0 30px 6px rgba(37,211,102,.6), 0 0 66px 18px rgba(37,211,102,.28); }
}

/* ---------- Header ---------- */
.header .logo {
  position: relative;
  display: flex;
  align-items: center;
}

/* Logo branca: aparece inicialmente */
.header .logo .logo-white {
  display: block;
  height: 120px;
  width: auto;
  margin-top: 20px;
}

/* Logo preta: escondida inicialmente */
.header .logo .logo-black {
  display: none;
  height: 120px;
  width: auto;
  margin-top: 20px;
}

/* No mobile a logo fica menor para o header não ocupar metade da tela */
@media(max-width:959px){
  .header .logo .logo-white,
  .header .logo .logo-black{ height:56px; margin-top:0; }
}

/* Quando o usuário rolar a página */
.header.scrolled .logo .logo-white {
  display: none;
}

.header.scrolled .logo .logo-black {
  display: block;
}

/* Se abrir o menu mobile, mantém a logo branca */
.menu-open .header .logo .logo-white {
  display: block;
}

.menu-open .header .logo .logo-black {
  display: none;
}
.header{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:18px 0; transition:background .4s, padding .4s, box-shadow .4s, border-color .4s;
  border-bottom:1px solid transparent;
}
.header.scrolled{
  background:rgba(250,248,245,.82); backdrop-filter:blur(18px) saturate(1.4);
  padding:10px 0; border-bottom:1px solid rgba(28,25,23,.08);
}
.header .container{ display:flex; align-items:center; justify-content:space-between; }
.logo{ color:var(--bordo); display:flex; align-items:center; height:40px; transition:color .4s; }
.logo svg{ height:38px; width:auto; }
.header:not(.scrolled) .logo{ color:var(--marfim); }
.header:not(.scrolled).hero-dark .logo{ color:var(--marfim); }
.nav{ display:none; align-items:center; gap:34px; }
.nav a{ font-size:.9rem; font-weight:500; position:relative; color:var(--marfim); transition:color .35s; }
.header.scrolled .nav a{ color:var(--grafite); }
.nav a::after{ content:""; position:absolute; left:0; bottom:-6px; width:0; height:1.5px; background:var(--gold); transition:width .35s var(--ease); }
.nav a:hover::after{ width:100%; }
.nav a:hover{ color:var(--gold); }
.header-cta{ display:none; }
@media(min-width:960px){ .nav{ display:flex; } .header-cta{ display:inline-flex; } }

/* ============================================================
   MENU MOBILE — NOVO
   Overlay em tela cheia: fundo vinho com brilho ouro, links
   numerados com animação em cascata, botão fechar dedicado,
   CTA de WhatsApp e contatos rápidos no rodapé do menu.
   ============================================================ */

/* Botão hambúrguer (círculo com traços) */
.burger{
  display:flex; flex-direction:column; gap:5px;
  width:46px; height:46px; border-radius:50%;
  align-items:center; justify-content:center;
  border:1px solid rgba(250,248,245,.32);
  transition:opacity .3s, border-color .35s, background .35s;
}
.header.scrolled .burger{ border-color:rgba(28,25,23,.25); }
.burger span{ height:2px; background:var(--marfim); display:block; border-radius:2px; transition:background .35s; }
.header.scrolled .burger span{ background:var(--grafite); }
.burger span:nth-child(1){ width:18px; }
.burger span:nth-child(2){ width:12px; }
.burger span:nth-child(3){ width:18px; }
/* Quando o menu abre, o hambúrguer some (quem assume é o botão fechar do overlay) */
.menu-open .burger{ opacity:0; pointer-events:none; }
@media(min-width:960px){ .burger{ display:none; } }

/* Overlay do menu */
.mobile-nav{
  position:fixed; inset:0; z-index:1001;
  display:flex; flex-direction:column;
  background:
    radial-gradient(130% 100% at 85% -10%, #4A0E14 0%, var(--vinho) 58%);
  padding:calc(env(safe-area-inset-top, 0px) + 22px) 28px calc(env(safe-area-inset-bottom, 0px) + 26px);
  opacity:0; visibility:hidden; transform:translateY(-3%);
  transition:opacity .4s var(--ease), transform .55s var(--ease), visibility 0s .55s;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.menu-open .mobile-nav{
  opacity:1; visibility:visible; transform:translateY(0);
  transition:opacity .45s var(--ease), transform .55s var(--ease), visibility 0s;
}

/* Marca d'água A&S ao fundo */
.mobile-nav-bg{
  position:absolute; right:-8%; bottom:-6%; z-index:0;
  font-family:var(--serif); font-weight:600; line-height:.8; font-size:46vw;
  color:transparent; -webkit-text-stroke:1px rgba(197,160,89,.14);
  pointer-events:none; user-select:none;
}

/* Topo do menu: logo + botão fechar */
.mobile-nav-top{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:space-between;
  opacity:0; transform:translateY(-12px);
  transition:opacity .45s var(--ease) .08s, transform .55s var(--ease) .08s;
}
.menu-open .mobile-nav-top{ opacity:1; transform:translateY(0); }
.mobile-nav-logo{ height:60px; width:auto; }
.menu-close{
  width:52px; height:52px; border-radius:50%;
  border:1px solid rgba(250,248,245,.32); color:var(--marfim);
  display:flex; align-items:center; justify-content:center;
  transition:background .35s, color .35s, border-color .35s, transform .5s var(--ease);
}
.menu-close:hover{ background:var(--gold); border-color:var(--gold); color:var(--vinho); transform:rotate(90deg); }
.menu-close svg{ width:20px; height:20px; }

/* Links */
.mobile-nav-links{
  position:relative; z-index:2; flex:1;
  display:flex; flex-direction:column; justify-content:center;
  padding:20px 0;
}
.mobile-nav-links a{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1rem, 4vw, 1.25rem); color:var(--marfim);
  padding:16px 0; border-bottom:1px solid rgba(250,248,245,.1);
  display:flex; align-items:baseline; gap:16px;
  opacity:0; transform:translateY(26px);
  transition:opacity .5s var(--ease), transform .6s var(--ease), color .3s, padding-left .35s var(--ease);
}
.mobile-nav-links a span{
  font-family:var(--mono); font-size:.7rem; font-weight:400;
  letter-spacing:.22em; color:var(--gold);
}
.mobile-nav-links a:hover,
.mobile-nav-links a:focus-visible{ color:var(--gold); padding-left:12px; }
.menu-open .mobile-nav-links a{ opacity:1; transform:translateY(0); }
.menu-open .mobile-nav-links a:nth-child(1){ transition-delay:.12s; }
.menu-open .mobile-nav-links a:nth-child(2){ transition-delay:.19s; }
.menu-open .mobile-nav-links a:nth-child(3){ transition-delay:.26s; }
.menu-open .mobile-nav-links a:nth-child(4){ transition-delay:.33s; }

/* Rodapé do menu: CTA WhatsApp + contatos rápidos */
.mobile-nav-foot{
  position:relative; z-index:2;
  opacity:0; transform:translateY(18px);
  transition:opacity .5s var(--ease) .4s, transform .6s var(--ease) .4s;
}
.menu-open .mobile-nav-foot{ opacity:1; transform:translateY(0); }
.mobile-nav-foot .btn{ width:100%; }
.mobile-nav-contact{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px;
  margin-top:20px;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  color:rgba(250,248,245,.65);
}
.mobile-nav-contact a{ transition:color .3s; }
.mobile-nav-contact a:hover{ color:var(--gold); }
.mobile-nav-contact .dot{ width:3px; height:3px; border-radius:50%; background:var(--gold); }

/* No desktop o overlay nunca aparece */
@media(min-width:960px){ .mobile-nav{ display:none; } }

/* ---------- Hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--vinho); color:var(--marfim); padding:130px 0 90px; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; opacity:.62; filter:saturate(1.08) contrast(1.02); }
.hero-veil{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(102deg, var(--vinho) 6%, rgba(36,5,8,.78) 40%, rgba(36,5,8,.32) 78%, rgba(36,5,8,.5) 100%),
    linear-gradient(0deg, rgba(28,25,23,.55) 0%, rgba(28,25,23,0) 42%); }
.hero .container{ position:relative; z-index:3; }
.hero-inner{ max-width:920px; }

.hero-kicker{ font-family:var(--mono); font-size:.72rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:16px; margin-bottom:34px; }
.hero-kicker::before{ content:""; width:52px; height:1px; background:var(--gold); display:inline-block; }

.hero h1{ font-size:clamp(2.3rem,6.3vw,4.2rem); line-height:1.15; margin-bottom:30px; letter-spacing:-.025em; }
.hero h1 .gold{ color:var(--gold); font-style:italic; }
.line-mask{ overflow:hidden; display:block; }
.line-mask > span{ display:block; transform:translateY(110%); }
.hero-sub{ font-size:clamp(1rem,1.4vw,1.22rem); color:rgba(250,248,245,.85); max-width:40em; margin-bottom:40px; line-height:1.75; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.hero .btn-ghost{ border-color:rgba(250,248,245,.34); color:var(--marfim); }
.hero .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

/* watermark A&S */
.hero-ghost{ position:absolute; right:-1%; bottom:-9%; z-index:2; font-family:var(--serif); font-weight:600; line-height:.8; font-size:clamp(9rem,26vw,26rem); color:transparent; -webkit-text-stroke:1px rgba(197,160,89,.18); pointer-events:none; user-select:none; }
/* vertical side label */
.hero-side{ position:absolute; right:30px; top:50%; z-index:3; transform:translateY(-50%); writing-mode:vertical-rl; text-orientation:mixed; font-family:var(--mono); font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(250,248,245,.55); display:flex; align-items:center; gap:16px; }
.hero-side::before{ content:""; height:60px; width:1px; background:linear-gradient(var(--gold),transparent); }
@media(max-width:900px){ .hero-side{ display:none; } .hero-ghost{ font-size:34vw; bottom:-4%; } }

.scroll-hint{ position:absolute; bottom:22px; left:50%; transform:translateX(-50%); z-index:3; font-family:var(--mono); font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(250,248,245,.5); display:flex; flex-direction:column; align-items:center; gap:10px; }
.scroll-hint .bar{ width:1px; height:40px; background:linear-gradient(var(--gold),transparent); animation:drop 1.8s infinite; }
@keyframes drop{ 0%{ transform:scaleY(0); transform-origin:top;} 45%{ transform:scaleY(1); transform-origin:top;} 55%{ transform:scaleY(1); transform-origin:bottom;} 100%{ transform:scaleY(0); transform-origin:bottom;} }
@media(max-width:979px){ .scroll-hint{ display:none; } }
.logo-mark{ display:block; }

/* ---------- Marquee ---------- */
.marquee{ background:var(--bordo); color:rgba(250,248,245,.85); padding:9px 0; overflow:hidden; border-top:1px solid rgba(197,160,89,.18); border-bottom:1px solid rgba(197,160,89,.18); }
.marquee-track{ display:flex; gap:0; white-space:nowrap; width:max-content; animation:scroll-x 32s linear infinite; }
.marquee-track span{ font-family:var(--mono); font-size:.72rem; font-weight:400; letter-spacing:.14em; text-transform:uppercase; padding:0 22px; display:inline-flex; align-items:center; gap:22px; }
.marquee-track span::after{ content:"◆"; font-size:.42rem; color:var(--gold); }
@keyframes scroll-x{ to{ transform:translateX(-50%); } }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(34px); }

/* ---------- Manifesto ---------- */
.manifesto{ background:var(--vinho); color:var(--marfim); overflow:hidden; }
.manifesto .head{ max-width:760px; margin-bottom:64px; }
.manifesto .head h2{ font-size:clamp(2rem,4.6vw,3.4rem); margin-top:22px; }
.manifesto .head .lead{ color:rgba(250,248,245,.72); margin-top:22px; }
.chapters{ display:grid; grid-template-columns:1fr; gap:0; border-top:1px solid rgba(250,248,245,.12); }
@media(min-width:820px){ .chapters{ grid-template-columns:repeat(3,1fr); } }
.chapter{ padding:40px 30px 40px 0; border-bottom:1px solid rgba(250,248,245,.12); }
@media(min-width:820px){ .chapter{ padding:44px 34px; border-right:1px solid rgba(250,248,245,.12); border-bottom:none; }
  .chapter:last-child{ border-right:none; } .chapter:first-child{ padding-left:0; } }
.chapter .no{ font-family:var(--mono); font-size:.72rem; color:var(--gold); letter-spacing:.2em; }
.chapter h3{ font-size:1.7rem; margin:16px 0 12px; }
.chapter p{ color:rgba(250,248,245,.7); font-size:.98rem; }

/* ---------- Section head (light) ---------- */
.sec-head{ margin-bottom:60px; }
.sec-head.center{ text-align:center; max-width:720px; margin-left:auto; margin-right:auto; }
.sec-head h2{ margin-top:20px; }
.sec-head .lead{ margin-top:20px; max-width:44em; }
.sec-head.center .lead{ margin-left:auto; margin-right:auto; }

/* ---------- Services grid ---------- */
.services{ background:linear-gradient(180deg,#F5EFE7 0%, #ECE2D5 100%); }
.svc-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:640px){ .svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1000px){ .svc-grid{ grid-template-columns:repeat(3,1fr); } }
.svc-card{ position:relative; background:#FFFDFB; border:1px solid rgba(61,12,17,.07); border-radius:20px; padding:40px 32px 34px; overflow:hidden; box-shadow:0 2px 6px rgba(28,25,23,.05); transition:transform .55s var(--ease), box-shadow .55s var(--ease), border-color .5s; display:flex; flex-direction:column; min-height:300px; }
.svc-card::after{ content:""; position:absolute; left:0; top:0; width:100%; height:3px; background:linear-gradient(90deg,var(--gold),rgba(197,160,89,0)); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease); }
.svc-card:hover{ transform:translateY(-8px); box-shadow:0 36px 66px -32px rgba(61,12,17,.42); border-color:rgba(197,160,89,.45); }
.svc-card:hover::after{ transform:scaleX(1); }
.svc-no{ position:absolute; top:20px; right:28px; font-family:var(--serif); font-size:2.7rem; font-weight:600; color:rgba(61,12,17,.08); line-height:1; }
.svc-ico{ width:24px; height:24px; padding:15px; box-sizing:content-box; color:var(--bordo); background:radial-gradient(circle at 32% 30%, rgba(197,160,89,.2), rgba(61,12,17,.05)); border:1px solid rgba(197,160,89,.4); border-radius:50%; margin-bottom:24px; transition:background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease); }
.svc-card:hover .svc-ico{ background:var(--bordo); color:var(--gold); border-color:var(--bordo); }
.svc-card h3{ font-size:1.5rem; margin-bottom:12px; }
.svc-card p{ color:var(--cinza); font-size:.95rem; flex:1; }
.svc-more{ margin-top:24px; font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--bordo); display:inline-flex; align-items:center; gap:8px; transition:gap .35s var(--ease), color .35s; }
.svc-more svg{ width:15px; height:15px; }
.svc-card:hover .svc-more{ gap:14px; color:var(--gold); }
.svc-foot{ margin-top:48px; text-align:center; }

/* ---------- About ---------- */
.about{ background:var(--grafite); color:var(--marfim); overflow:hidden; }
.about-grid{ display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:900px){ .about-grid{ grid-template-columns:.95fr 1.05fr; gap:70px; } }
.about-visual{ position:relative; }
.about-visual .main-img{ border-radius:4px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); }
.about-visual .main-img img{ width:100%; height:100%; object-fit:cover; }
.about-visual .stat-badge{ position:absolute; right:-10px; bottom:-24px; background:var(--bordo); padding:24px 28px; border-radius:4px; box-shadow:0 24px 60px -20px rgba(0,0,0,.6); }
.about-visual .stat-badge .n{ font-family:var(--serif); font-size:2.6rem; color:var(--gold); line-height:1; }
.about-visual .stat-badge .t{ font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(250,248,245,.7); margin-top:6px; }
.about h2{ font-size:clamp(2rem,4.4vw,3.2rem); margin:20px 0 24px; }
.about p{ color:rgba(250,248,245,.74); margin-bottom:18px; }
.about .highlight{ color:var(--gold); font-style:italic; }

/* Partners */
.partners{ background:var(--grafite); color:var(--marfim); padding-top:0; }
.partners-grid{ display:grid; grid-template-columns:1fr; gap:26px; }
@media(min-width:700px){ .partners-grid{ grid-template-columns:repeat(2,1fr); } }
.partner{ position:relative; border-radius:4px; overflow:hidden; }
.partner img{ width:100%; aspect-ratio:4/5; object-fit:cover; filter:grayscale(.35) contrast(1.02); transition:filter .6s var(--ease), transform .8s var(--ease); }
.partner:hover img{ filter:grayscale(0); transform:scale(1.03); }
.partner .info{ position:absolute; left:0; right:0; bottom:0; padding:28px 26px 24px; background:linear-gradient(transparent, rgba(28,25,23,.92)); }
.partner .info h4{ font-size:1.5rem; }
.partner .info .role{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-top:6px; }
.partner .info .oab{ font-size:.82rem; color:rgba(250,248,245,.6); margin-top:8px; }

/* ---------- Testimonials ---------- */
.testi{ background:var(--areia); }
.testi-grid{ display:grid; grid-template-columns:1fr; gap:22px; }
@media(min-width:760px){ .testi-grid{ grid-template-columns:repeat(3,1fr); } }
.testi-card{ background:var(--marfim); border:1px solid rgba(28,25,23,.08); border-radius:6px; padding:32px 28px; display:flex; flex-direction:column; box-shadow:0 1px 0 rgba(28,25,23,.03); transition:transform .5s var(--ease), box-shadow .5s; }
.testi-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -30px rgba(61,12,17,.35); }
.testi-card .stars{ color:var(--gold); letter-spacing:3px; font-size:.9rem; margin-bottom:16px; }
.testi-card blockquote{ font-family:var(--serif); font-size:1.24rem; line-height:1.45; color:var(--grafite); flex:1; }
.testi-card .who{ display:flex; align-items:center; gap:12px; margin-top:24px; padding-top:20px; border-top:1px solid rgba(28,25,23,.08); }
.testi-card .who .av{ width:42px; height:42px; border-radius:50%; background:var(--bordo); color:var(--marfim); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1.1rem; }
.testi-card .who .nm{ font-weight:600; font-size:.92rem; }
.testi-card .who .sg{ font-size:.78rem; color:var(--cinza); }
.testi-note{ text-align:center; font-size:.78rem; color:var(--cinza); margin-top:32px; }

/* ---------- FAQ ---------- */
.faq{ background:var(--marfim); }
.faq-wrap{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid rgba(28,25,23,.12); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 0; text-align:left; font-family:var(--serif); font-size:1.25rem; color:var(--grafite); transition:color .35s; }
.faq-q:hover{ color:var(--bordo); }
.faq-q .ic{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1px solid rgba(28,25,23,.2); display:flex; align-items:center; justify-content:center; position:relative; transition:.4s var(--ease); }
.faq-q .ic::before,.faq-q .ic::after{ content:""; position:absolute; background:var(--bordo); transition:.4s var(--ease); }
.faq-q .ic::before{ width:12px; height:1.5px; } .faq-q .ic::after{ width:1.5px; height:12px; }
.faq-item.open .faq-q .ic{ background:var(--bordo); border-color:var(--bordo); transform:rotate(135deg); }
.faq-item.open .faq-q .ic::before,.faq-item.open .faq-q .ic::after{ background:var(--marfim); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-a p{ padding:0 0 26px; color:var(--cinza); max-width:60ch; }

/* ---------- Contact ---------- */
.contact{ background:var(--bordo); color:var(--marfim); overflow:hidden; position:relative; }
.contact::before{ content:""; position:absolute; top:0; right:0; width:50%; height:100%; background:radial-gradient(circle at 80% 20%, rgba(197,160,89,.14), transparent 60%); pointer-events:none; }
.contact-grid{ display:grid; grid-template-columns:1fr; gap:52px; position:relative; z-index:2; }
@media(min-width:920px){ .contact-grid{ grid-template-columns:.9fr 1.1fr; gap:70px; } }
.contact h2{ font-size:clamp(2rem,4.6vw,3.3rem); margin:18px 0 22px; }
.contact .lead{ color:rgba(250,248,245,.78); margin-bottom:36px; }
.contact-info{ display:flex; flex-direction:column; gap:6px; }
.info-row{ display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-top:1px solid rgba(250,248,245,.14); }
.info-row .ico{ width:22px; height:22px; color:var(--gold); flex:0 0 auto; margin-top:3px; }
.info-row .k{ font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.info-row .v{ font-size:1.05rem; margin-top:3px; }
.info-row a.v:hover{ color:var(--gold-light); }

.form-card{ background:var(--marfim); color:var(--grafite); border-radius:8px; padding:34px 30px; box-shadow:0 40px 90px -40px rgba(0,0,0,.6); }
@media(min-width:600px){ .form-card{ padding:44px 40px; } }
.form-card h3{ font-size:1.7rem; margin-bottom:6px; }
.form-card .sub{ font-size:.9rem; color:var(--cinza); margin-bottom:26px; }
.field{ margin-bottom:20px; }
.field label{ display:block; font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bordo); margin-bottom:8px; }
.field input,.field select,.field textarea{ width:100%; padding:14px 16px; border:1px solid rgba(28,25,23,.18); border-radius:6px; font-family:var(--sans); font-size:.98rem; background:#fff; color:var(--grafite); transition:border .3s, box-shadow .3s; }
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--bordo); box-shadow:0 0 0 3px rgba(61,12,17,.1); }
.form-row{ display:grid; grid-template-columns:1fr; gap:0; }
@media(min-width:520px){ .form-row{ grid-template-columns:1fr 1fr; gap:16px; } }
.form-actions .btn{ width:100%; }
.form-hint{ font-size:.76rem; color:var(--cinza); text-align:center; margin-top:14px; }
.form-msg{ display:none; margin-top:16px; padding:14px 16px; border-radius:6px; font-size:.9rem; text-align:center; }
.form-msg.ok{ display:block; background:rgba(37,211,102,.12); color:#0b7a45; border:1px solid rgba(37,211,102,.3); }
.form-msg.err{ display:block; background:rgba(61,12,17,.08); color:var(--bordo); border:1px solid rgba(61,12,17,.25); }

/* ---------- Footer ---------- */
.footer{ background:var(--vinho); color:rgba(250,248,245,.7); padding:70px 0 30px; }
.footer-top{ display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(250,248,245,.12); }
@media(min-width:820px){ .footer-top{ grid-template-columns:1.4fr 1fr 1fr; gap:50px; } }
.footer .logo{ color:var(--marfim); height:auto; margin-bottom:20px; }
.footer .logo svg{ height:44px; }
.footer-about p{ font-size:.92rem; max-width:34ch; }
.footer-col h5{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.footer-col a{ display:block; padding:7px 0; font-size:.94rem; transition:color .3s, padding-left .3s; }
.footer-col a:hover{ color:var(--gold); padding-left:6px; }
.socials{ display:flex; gap:12px; margin-top:22px; }
.socials a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(250,248,245,.2); display:flex; align-items:center; justify-content:center; transition:.35s var(--ease); }
.socials a:hover{ background:var(--gold); border-color:var(--gold); color:var(--vinho); transform:translateY(-3px); }
.socials svg{ width:18px; height:18px; }
.footer-bottom{ display:flex; flex-direction:column; gap:12px; padding-top:26px; font-size:.78rem; }
@media(min-width:700px){ .footer-bottom{ flex-direction:row; justify-content:space-between; align-items:center; } }
.footer-bottom .oab{ color:rgba(250,248,245,.45); }

/* ---------- Floating WhatsApp ---------- */
.fab-wa{ position:fixed; right:20px; bottom:20px; z-index:900; width:60px; height:60px; border-radius:50%; background:var(--wa); display:flex; align-items:center; justify-content:center; box-shadow:0 14px 34px -8px rgba(37,211,102,.6); transition:transform .4s var(--ease); animation:fab-in .6s var(--ease) 1.2s both; }
.fab-wa:hover{ transform:scale(1.08); }
.fab-wa svg{ width:32px; height:32px; color:#fff; }
.fab-wa::after{ content:""; position:absolute; inset:0; border-radius:50%; border:2px solid var(--wa); animation:ring 2.2s infinite; }
@keyframes ring{ 0%{ transform:scale(1); opacity:.7;} 100%{ transform:scale(1.6); opacity:0;} }
@keyframes fab-in{ from{ transform:scale(0); } to{ transform:scale(1); } }
@media(min-width:600px){ .fab-wa{ right:28px; bottom:28px; } }

/* ---------- Custom cursor (desktop) ---------- */
.cursor-dot,.cursor-ring{ position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; transform:translate(-50%,-50%); mix-blend-mode:difference; }
.cursor-dot{ width:6px; height:6px; background:#fff; }
.cursor-ring{ width:34px; height:34px; border:1px solid rgba(255,255,255,.7); transition:width .3s, height .3s, background .3s; }
.cursor-ring.hover{ width:54px; height:54px; background:rgba(255,255,255,.12); }
@media(max-width:900px){ .cursor-dot,.cursor-ring{ display:none; } }

/* ---------- Services page ---------- */
.page-hero{ background:var(--vinho); color:var(--marfim); padding:150px 0 90px; position:relative; overflow:hidden; }
.page-hero .hero-glow{ opacity:.8; }
.page-hero .crumb{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.page-hero h1{ font-size:clamp(2.4rem,6vw,4.4rem); max-width:16ch; line-height:1.04; }
.page-hero .lead{ color:rgba(250,248,245,.78); max-width:52ch; margin-top:26px; }

.svc-detail{ padding:70px 0; border-bottom:1px solid rgba(28,25,23,.1); }
.svc-detail:nth-child(even){ background:var(--areia); }
.svc-detail-grid{ display:grid; grid-template-columns:1fr; gap:44px; align-items:start; }
@media(min-width:900px){ .svc-detail-grid{ grid-template-columns:.85fr 1.15fr; gap:64px; } }
.svc-detail.flip .svc-detail-media{ order:2; }
.svc-detail-media{ position:relative; border-radius:6px; overflow:hidden; }
.svc-detail-media .big-no{ position:absolute; top:16px; left:20px; font-family:var(--serif); font-size:5rem; color:rgba(250,248,245,.85); z-index:2; line-height:1; text-shadow:0 6px 30px rgba(0,0,0,.4); }
/* Imagem de fundo dos cards */
.svc-detail-media .band {
  min-height: 200px;
  padding: 20px;
  position: relative;
  overflow: hidden;
  background: var(--vinho);
}
.svc-detail-media .band::before {
  content: "";
  position: absolute;
  inset: 0;

  background:
    linear-gradient(
      90deg,
      rgba(60, 5, 10, 0.95) 0%,
      rgba(60, 5, 10, 0.70) 45%,
      rgba(60, 5, 10, 0.35) 100%
    ),
    var(--band-image) center / cover no-repeat;

  opacity: 0.8;
  z-index: 0;
}
.svc-detail-media .band > * {
  position: relative;
  z-index: 1;
}
/* ==========================================
   IMAGEM DE CADA SERVIÇO
   ========================================== */
#direito-imobiliario .band {
  --band-image: url("../assets/direito-imobiliario.jpg");
}
#contratos .band {
  --band-image: url("../assets/contratos.jpg");
}
#usucapiao .band {
  --band-image: url("../assets/usucapiao.jpg");
}
#regularizacao .band {
  --band-image: url("../assets/regularizacao.jpg");
}
#inventario .band {
  --band-image: url("../assets/inventario.jpg");
}
#consultoria .band {
  --band-image: url("../assets/consultoria.jpg");
}
.svc-detail-media .band .ico{ width:52px; height:52px; color:var(--gold); margin-bottom:20px; }
.svc-detail-media .band h2{ font-size:2rem; color:var(--marfim); }
.svc-detail-media .band .k{ font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; color:var(--gold-light); text-transform:uppercase; }
.svc-detail-body h3{ font-size:1.2rem; color:var(--bordo); margin:26px 0 10px; display:flex; align-items:center; gap:10px; }
.svc-detail-body h3:first-child{ margin-top:0; }
.svc-detail-body h3 .n{ font-family:var(--mono); font-size:.9rem; color:var(--gold); }
.svc-detail-body p{ color:var(--cinza); margin-bottom:6px; }
.svc-detail-body ul.checks{ margin:6px 0 6px; }
.svc-detail-body ul.checks li{ padding:6px 0 6px 26px; position:relative; color:var(--grafite); font-size:.95rem; }
.svc-detail-body ul.checks li::before{ content:""; position:absolute; left:0; top:12px; width:12px; height:7px; border-left:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(-45deg); }
.svc-detail-body .btn{ margin-top:26px; }

/* Pipeline */
.pipeline{ background:var(--grafite); color:var(--marfim); }
.steps{ display:grid; grid-template-columns:1fr; gap:1px; background:rgba(250,248,245,.12); border:1px solid rgba(250,248,245,.12); border-radius:6px; overflow:hidden; }
@media(min-width:640px){ .steps{ grid-template-columns:repeat(5,1fr); } }
.step{ background:var(--grafite); padding:30px 24px; transition:background .5s; }
.step:hover{ background:#251f1c; }
.step .no{ font-family:var(--mono); font-size:.72rem; color:var(--gold); letter-spacing:.14em; }
.step h4{ font-size:1.25rem; margin:14px 0 8px; }
.step p{ font-size:.86rem; color:rgba(250,248,245,.6); }

.cta-banner{ background:var(--bordo); color:var(--marfim); text-align:center; padding:88px 0; position:relative; overflow:hidden; }
.cta-banner h2{ font-size:clamp(2rem,5vw,3.4rem); max-width:18ch; margin:0 auto 18px; }
.cta-banner p{ color:rgba(250,248,245,.8); max-width:46ch; margin:0 auto 34px; }
.cta-banner .btn{ margin:0 6px 10px; }

/* ---------- Utility ---------- */
.text-gold{ color:var(--gold); }
.mono{ font-family:var(--mono); }
.no-scroll{ overflow:hidden; }

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .line-mask > span{ transform:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .hero-kicker,.hero-sub,.hero-actions,.hero-ghost,.hero-side{ opacity:1 !important; }
  .menu-open .mobile-nav{ opacity:1 !important; visibility:visible !important; transform:none !important; }
  .menu-open .mobile-nav-top,
  .menu-open .mobile-nav-links a,
  .menu-open .mobile-nav-foot{ opacity:1 !important; transform:none !important; }
}