/* SG Advocacia V2: preto e grafite + bronze; vermelho só em ação e no logo */
:root {
  --tinta: #0F0F11;
  --grafite: #1A1A1E;
  --linha-escura: rgba(255, 255, 255, .10);
  --vermelho: #B21E27;
  --vermelho-hover: #951820;
  --bronze: #B8925A;
  --bronze-claro: #D6B67F;
  --bronze-texto: #7E5F2E;
  --marfim: #F5F1EA;
  --papel: #FFFFFF;
  --texto: #1C1B1A;
  --texto-2: #5C5650;
  --claro-2: rgba(255, 255, 255, .72);
  --zap: #1FA855;
  --serifa: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ilha-top: 12px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 16px; }
body { margin: 0; font-family: var(--sans); font-size: 1.0625rem; line-height: 1.6; color: var(--texto); background: var(--marfim); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--serifa); font-weight: 600; margin: 0; letter-spacing: -.01em; }
h2 { font-size: clamp(2.2rem, 1.2rem + 3.6vw, 3.9rem); line-height: 1.02; text-wrap: balance; }
h2 em, h1 em { font-style: italic; font-weight: 600; color: var(--bronze-texto); }
.sec--tinta h2 em, .hero h1 em, .cta h2 em { color: var(--bronze-claro); }
p { margin: 0 0 1em; }
ul, ol, dl, dd, figure { margin: 0; padding: 0; list-style: none; }
button { font: inherit; }
.num { font-variant-numeric: tabular-nums; }
.ic { width: 1.2em; height: 1.2em; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

:focus-visible { outline: 3px solid var(--bronze); outline-offset: 3px; border-radius: 8px; }
.pular { position: absolute; left: 12px; top: -80px; z-index: 200; background: #fff; color: var(--tinta); padding: 12px 18px; border-radius: 10px; font-weight: 700; }
.pular:focus { top: 12px; }
.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 52px; padding: 0 28px; border-radius: 999px; font: 700 1rem/1 var(--sans); text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: transform .3s var(--ease), background .3s, box-shadow .3s, border-color .3s, color .3s; white-space: nowrap; }
.btn .ic { transition: transform .3s var(--ease); }
.btn:hover { transform: translateY(-2px); }
.btn:hover .ic[class] { }
.btn--vermelho { background: var(--vermelho); color: #fff; box-shadow: 0 14px 30px -14px rgba(178, 30, 39, .9); }
.btn--vermelho:hover { background: var(--vermelho-hover); }
.btn--vermelho:hover .ic { transform: translateX(3px); }
.btn--contorno { color: var(--marfim); border-color: rgba(245, 241, 234, .45); background: rgba(255, 255, 255, .04); }
.btn--contorno:hover { border-color: var(--marfim); background: rgba(255, 255, 255, .1); }
.btn--escuro { background: var(--tinta); color: #fff; }
.btn--escuro:hover { background: #2a2a2e; }
.btn--escuro:hover .ic { transform: translateX(3px); }
.btn--peq { min-height: 44px; padding: 0 22px; font-size: .95rem; }
.btn--cheio { width: 100%; }

.sobre-t { display: flex; align-items: center; gap: 14px; font: 600 .75rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--bronze-texto); margin: 0 0 20px; }
.sobre-t::before { content: ""; width: 32px; height: 1px; background: currentColor; flex: none; }
.sobre-t--bronze { color: var(--bronze); }

/* ---------- Barra superior e ilha ---------- */
.barra { display: none; background: var(--tinta); color: var(--claro-2); font-size: .8rem; height: 44px; border-bottom: 1px solid var(--linha-escura); position: relative; z-index: 60; }
.barra__in { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.barra span, .barra a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; }
.barra a { min-height: 44px; }
.barra .ic { width: 14px; height: 14px; color: var(--bronze); }
.barra a:hover { color: #fff; }

.ilha { position: relative; z-index: 60; background: var(--tinta); border-bottom: 1px solid var(--linha-escura); }
.ilha__in { max-width: 1240px; margin: 0 auto; height: 72px; display: flex; align-items: center; gap: 16px; padding: 0 20px; color: #fff; }
.ilha__logo { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; color: var(--marfim); }
.ilha__menu { display: none; margin-left: auto; gap: 2px; }
.ilha__menu a { color: rgba(255, 255, 255, .82); text-decoration: none; font-weight: 500; font-size: .95rem; padding: 10px 14px; border-radius: 999px; transition: color .2s, background .2s; }
.ilha__menu a:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.ilha__zap { display: none; }
.burger { margin-left: auto; width: 48px; height: 48px; border: 0; background: transparent; color: #fff; display: grid; place-items: center; border-radius: 50%; cursor: pointer; }
.burger .ic { width: 26px; height: 26px; }
.burger:hover { background: rgba(255, 255, 255, .1); }

/* Logo montado: símbolo em SVG + nome em texto */
.logo { display: inline-flex; align-items: center; gap: 11px; color: var(--marfim); }
.logo__s { width: 20px; height: 35px; flex: none; }
.logo__t { display: flex; flex-direction: column; gap: 5px; }
.logo__n { font: 600 1.18rem/1 var(--serifa); letter-spacing: .08em; }
.logo__sub { font: 500 .6875rem/1 var(--sans); letter-spacing: .02em; color: var(--claro-2); }
.logo--g .logo__s { width: 30px; height: 53px; }
.logo--g .logo__n { font-size: 1.6rem; }
.logo--g .logo__sub { font-size: .8rem; }

.gaveta-fundo { position: fixed; inset: 0; z-index: 80; background: rgba(0, 0, 0, .65); opacity: 0; transition: opacity .3s; }
.gaveta-fundo.is-aberto { opacity: 1; }
.gaveta { position: fixed; z-index: 90; top: 0; right: 0; bottom: 0; width: min(90vw, 400px); background: var(--tinta); color: #fff; padding: 14px 22px 28px; display: flex; flex-direction: column; gap: 12px; transform: translateX(100%); transition: transform .4s var(--ease); overflow-y: auto; }
.gaveta.is-aberta { transform: none; }
.gaveta[hidden], .gaveta-fundo[hidden] { display: none; }
.gaveta__topo { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.gaveta nav { display: flex; flex-direction: column; margin: 10px 0 18px; }
.gaveta nav a { font: 600 2rem/1.2 var(--serifa); text-decoration: none; padding: 14px 2px; border-bottom: 1px solid var(--linha-escura); min-height: 60px; }
.gaveta nav a:hover { color: var(--bronze-claro); }
body.trava { overflow: hidden; }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--tinta); color: #fff; overflow: hidden; isolation: isolate; padding-top: 0; display: flex; flex-direction: column; }
.hero__luz { position: absolute; z-index: -2; inset: 0; background: radial-gradient(520px 420px at 78% 30%, rgba(184, 146, 90, .34), transparent 70%), radial-gradient(900px 600px at 100% 0%, rgba(107, 15, 21, .35), transparent 65%), radial-gradient(700px 500px at 0% 100%, rgba(184, 146, 90, .08), transparent 70%); }
.hero__grade-fundo { position: absolute; z-index: -1; inset: 0; opacity: .5; background-image: radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: 26px 26px; mask-image: linear-gradient(180deg, #000, transparent 75%); -webkit-mask-image: linear-gradient(180deg, #000, transparent 75%); }
.hero__palco { display: flex; flex-direction: column; position: relative; }
.gcard { position: absolute; left: 20px; bottom: -38px; z-index: 3; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 18px; text-decoration: none; background: rgba(26, 26, 30, .78); border: 1px solid rgba(255, 255, 255, .16); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 24px 40px -22px #000; transition: transform .35s var(--ease); max-width: 230px; }
.gcard:hover { transform: translateY(-4px); }
.gcard__topo { display: flex; align-items: center; gap: 8px; }
.gcard__g { width: 22px; height: 22px; flex: none; }
.gcard__estrelas { display: inline-flex; color: var(--bronze-claro); }
.gcard__estrelas .ic { width: 14px; height: 14px; fill: currentColor; stroke: none; }
.gcard strong { font: 700 1.05rem/1 var(--sans); }
.gcard__txt { font-size: .85rem; color: var(--claro-2); line-height: 1.3; }
.gcard__txt .num { color: #fff; font-weight: 700; }
.gcard__link { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 700; color: var(--bronze-claro); margin-top: 2px; }
.hero__texto { position: relative; z-index: 2; padding: 0 0 24px; }
.hero__eyebrow { margin-bottom: 14px; }
.hero__titulo { font-size: clamp(2.1rem, 10.3vw, 3rem); line-height: 1.02; margin-bottom: 16px; }
.hero__titulo .linha { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.04em; }
.hero__titulo .linha > span { display: inline-block; }
.hero__sub { color: var(--claro-2); font-size: .97rem; line-height: 1.5; max-width: 34em; margin-bottom: 20px; }
.hero__acoes { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.selos { display: flex; flex-wrap: wrap; gap: 8px; }
.selo:nth-child(3) { display: none; }
.selo { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; font-size: .82rem; font-weight: 500; color: rgba(255, 255, 255, .86); border: 1px solid rgba(184, 146, 90, .45); background: rgba(184, 146, 90, .08); }
.hero__numeros-wrap { padding-bottom: 0; }
.hero__numeros { margin-bottom: 96px; }
.hero__numeros { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--linha-escura); }
.hero__numeros > div { padding: 22px 8px 4px 0; display: flex; flex-direction: column-reverse; gap: 4px; }
.hero__numeros > div:nth-child(2n) { padding-left: 20px; border-left: 1px solid var(--linha-escura); }
.hero__numeros dd { font: 700 2.5rem/1 var(--sans); color: #fff; letter-spacing: -.02em; }
.hero__numeros dt { font-size: .82rem; color: var(--claro-2); line-height: 1.3; }


/* Hero: mosaico de fotos reais da firma (sem pessoa recortada) */
.hero__figura { order: -1; position: relative; margin: 0 -20px 46px; height: clamp(196px, 27svh, 260px); }
.marca-agua--hero { right: -6%; left: auto; top: 50%; width: 150px; opacity: .08; background: var(--bronze-claro); z-index: 0; }
.mosaico { position: absolute; inset: 0; }
.mq { position: absolute; margin: 0; overflow: hidden; background: var(--grafite); }
.mq img { width: 100%; height: 100%; object-fit: cover; }
.mq--a { inset: 0; border-radius: 0 0 28px 28px; }
.mq--a::after { content: ""; }
.mq--a img { object-position: 50% 52%; filter: saturate(1.05) brightness(.9); }
.mq--a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 15, 17, .55), rgba(15, 15, 17, 0) 38%, rgba(15, 15, 17, .15) 62%, var(--tinta)); }
.mq--b, .mq--c { display: none; }


/* Avaliações */
.aval__cab { display: flex; flex-direction: column; gap: 26px; margin-bottom: 34px; }
.aval__selo { display: inline-flex; align-items: center; gap: 14px; align-self: flex-start; min-height: 64px; padding: 12px 22px 12px 16px; border-radius: 999px; background: var(--tinta); color: #fff; text-decoration: none; border: 1px solid rgba(184, 146, 90, .4); box-shadow: 0 26px 40px -26px rgba(15, 15, 17, .8); transition: transform .35s var(--ease); }
.aval__selo:hover { transform: translateY(-3px); }
.aval__g { width: 28px; height: 28px; flex: none; }
.aval__n { font: 600 2.6rem/1 var(--serifa); }
.aval__meta { display: flex; flex-direction: column; gap: 4px; font-size: .85rem; font-weight: 600; line-height: 1.1; }
.aval__estrelas, .depo__est { display: inline-flex; gap: 2px; color: var(--bronze-claro); }
.aval__estrelas .ic { width: 15px; height: 15px; fill: currentColor; stroke: none; }
.depos { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 6px 20px 30px; scroll-padding-left: 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.depos::-webkit-scrollbar { display: none; }
.depo { position: relative; flex: 0 0 86%; scroll-snap-align: start; margin: 0; display: flex; flex-direction: column; padding: 66px 24px 14px; border-radius: 26px; background: var(--papel); border: 1px solid #e8e1d3; border-bottom: 3px solid var(--bronze); box-shadow: 0 30px 50px -34px rgba(15, 15, 17, .5); }
.depo__aspas { position: absolute; top: 4px; left: 20px; font: 600 6.5rem/1 var(--serifa); color: var(--bronze); opacity: .85; pointer-events: none; }
.depo blockquote { margin: 0 0 22px; }
.depo blockquote p { margin: 0; font: 500 1.28rem/1.42 var(--serifa); color: var(--texto); }
.depo figcaption { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; margin-top: auto; padding-top: 16px; border-top: 1px solid #ece5d8; }
.depo__av { grid-row: 1; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--tinta); color: var(--bronze-claro); font: 600 1.05rem/1 var(--serifa); letter-spacing: .04em; }
.depo__quem { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.depo__quem strong { font-size: .95rem; line-height: 1.2; }
.depo__quando { display: flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--texto-2); }
.depo__est .ic { width: 13px; height: 13px; fill: currentColor; stroke: none; color: var(--bronze); }
.depo__ver { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: .88rem; font-weight: 700; color: var(--bronze-texto); text-decoration: none; }
.depo__ver .ic { width: 14px; height: 14px; }
.depo__ver:hover { text-decoration: underline; }
.aval__rodape { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; margin-top: 4px; }
.aval__rodape p { margin: 0; font-size: .85rem; color: var(--texto-2); max-width: 30em; }

/* animação de abertura */
.js .hero__titulo .linha > span { transform: translateY(110%); animation: sobe .9s var(--ease) forwards; }
.js .hero__titulo .linha:nth-child(1) > span { animation-delay: .15s; }
.js .hero__titulo .linha:nth-child(2) > span { animation-delay: .27s; }
.js .hero__titulo .linha:nth-child(3) > span { animation-delay: .39s; }
.js .hero__eyebrow, .js .hero__sub, .js .hero__acoes, .js .selos, .js .hero__numeros { opacity: 0; transform: translateY(18px); animation: entra .8s var(--ease) forwards; }
.js .hero__eyebrow { animation-delay: .05s; }
.js .hero__sub { animation-delay: .55s; }
.js .hero__acoes { animation-delay: .65s; }
.js .selos { animation-delay: .8s; }
.js .hero__numeros { animation-delay: 1.05s; }
.js .gcard { opacity: 0; transform: scale(.96) translateY(10px); animation: card .8s var(--ease) 1.1s forwards; }
@keyframes sobe { to { transform: none; } }
@keyframes entra { to { opacity: 1; transform: none; } }
@keyframes card { to { opacity: 1; transform: none; } }
.js .mosaico { animation: foto .9s var(--ease) .1s forwards; }
@keyframes foto { from { opacity: 0; transform: scale(1.03); } to { opacity: 1; transform: none; } }

/* ---------- Pilares (sobem sobre o hero) ---------- */
.pilares { position: relative; z-index: 5; margin-top: -72px; }
.pilares__trilho { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 20px 16px; margin: 0 -20px; scrollbar-width: none; }
.pilares__trilho::-webkit-scrollbar { display: none; }
.pilar { flex: 0 0 78%; scroll-snap-align: center; background: var(--papel); border-radius: 22px; padding: 22px 22px 20px; box-shadow: 0 28px 50px -28px rgba(15, 15, 17, .55); border-bottom: 3px solid var(--bronze); transition: transform .35s var(--ease), box-shadow .35s; }
.pilar:hover { transform: translateY(-6px); }
.pilar__ic { width: 46px; height: 46px; border-radius: 14px; background: var(--marfim); color: var(--bronze-texto); display: grid; place-items: center; margin-bottom: 14px; }
.pilar h3 { font-size: 1.5rem; line-height: 1.1; margin-bottom: 6px; }
.pilar p { margin: 0; color: var(--texto-2); font-size: .95rem; line-height: 1.45; }
.pontos { display: flex; justify-content: center; gap: 8px; padding-bottom: 6px; }
.pontos span { width: 8px; height: 8px; border-radius: 99px; background: #d9d0c3; transition: width .3s var(--ease), background .3s; }
.pontos span.on { width: 24px; background: var(--bronze); }

/* ---------- Seções ---------- */
.sec { padding: clamp(72px, 10vw, 132px) 0; position: relative; }
.sec--marfim { background: var(--marfim); }
.sec--tinta { background: var(--tinta); color: #fff; }
.cab { max-width: 46rem; margin: 0 0 clamp(36px, 6vw, 60px); }
.cab--claro { color: #fff; }

/* Sobre */
.sobre { display: grid; gap: 56px; align-items: center; }
.moldura { position: relative; max-width: 460px; margin: 0 auto; padding: 0 0 18px 0; }
.moldura::before { content: ""; position: absolute; z-index: 0; left: -14px; bottom: 0; width: 82%; height: 88%; background: linear-gradient(135deg, var(--bronze), #8c6a37); border-radius: 26px; }
.moldura::after { content: ""; position: absolute; z-index: 0; right: -10px; top: -14px; width: 46%; height: 30%; border-radius: 22px; border: 1.5px solid var(--bronze); }
.moldura img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 30%; border-radius: 24px; box-shadow: 0 40px 60px -34px rgba(15, 15, 17, .6); margin: 0 0 18px 18px; width: calc(100% - 18px); }
.sobre__texto h2 { margin-bottom: 22px; }
.sobre__texto p { color: var(--texto-2); }
.destaque { font: italic 600 clamp(1.6rem, 1.1rem + 1.6vw, 2.1rem)/1.2 var(--serifa); color: var(--texto); border-left: 3px solid var(--bronze); padding-left: 18px; margin: 28px 0 !important; }

/* Áreas */
.areas { overflow: hidden; isolation: isolate; }
.areas__fundo { position: absolute; inset: 0; z-index: -1; background: radial-gradient(800px 400px at 15% 0%, rgba(184, 146, 90, .14), transparent 70%), url("img/balanca-1920.webp") center 30% / cover no-repeat; opacity: .28; filter: grayscale(1) contrast(1.1) brightness(.5); }
.areas::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--tinta), rgba(15, 15, 17, .6) 40%, var(--tinta)); }
.areas__cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 38px; }
.areas__cab h2 { max-width: 12em; }
.areas__setas { display: none; gap: 10px; }
.seta { width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); background: transparent; color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .3s, color .3s, transform .3s var(--ease), opacity .3s; }
.seta:hover { transform: scale(1.06); background: rgba(255, 255, 255, .1); }
.seta--claro { background: var(--marfim); color: var(--tinta); border-color: transparent; }
.seta--claro:hover { background: #fff; }
.seta[disabled] { opacity: .35; pointer-events: none; }
.areas__janela { position: relative; --pl: 32px; }
.areas__trilho { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 12px 20px 28px; scroll-padding: 0 20px; scrollbar-width: none; cursor: grab; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.areas__trilho::-webkit-scrollbar { display: none; }
.areas__trilho.arrastando { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.areas__trilho.arrastando a { pointer-events: none; }
.areas__fim { flex: 0 0 4px; }
.area-card { position: relative; flex: 0 0 82%; scroll-snap-align: start; min-height: 430px; display: flex; flex-direction: column; padding: 26px 24px 22px; border-radius: 26px; color: #fff; overflow: hidden; isolation: isolate; border: 1px solid var(--linha-escura); transition: transform .5s var(--ease), border-color .4s, box-shadow .5s; background: var(--grafite); }
.area-card::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("img/balanca-960.webp") var(--bgpos, 50% 50%) / cover no-repeat; filter: grayscale(1) contrast(1.15) brightness(.42); opacity: 1; }
.area-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 15, 17, .2), rgba(15, 15, 17, .92) 62%); }
.area-card.is-ativo { border-color: var(--bronze); transform: translateY(-6px); box-shadow: 0 34px 60px -30px rgba(0, 0, 0, .9); }
.area-card.is-ativo::marker { }
.area-card__n { position: absolute; top: 22px; right: 24px; font: 600 1.9rem/1 var(--serifa); color: var(--bronze); opacity: .85; }
.area-card.is-ativo .area-card__n::after { content: ""; display: block; width: 8px; height: 8px; margin: 8px 0 0 auto; border-radius: 50%; background: var(--vermelho); }
.area-card__ic { width: 56px; height: 56px; border-radius: 50%; background: var(--bronze); color: var(--tinta); display: grid; place-items: center; margin-bottom: auto; }
.area-card__ic .ic { width: 26px; height: 26px; }
.area-card h3 { font-size: 2rem; line-height: 1.05; margin: 78px 0 16px; }
.area-card ul { display: grid; gap: 10px; margin-bottom: 22px; padding-top: 16px; border-top: 1px solid var(--linha-escura); font-size: .94rem; color: var(--claro-2); }
.area-card li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; line-height: 1.4; }
.area-card li .ic { width: 16px; height: 16px; color: var(--bronze); margin-top: 3px; }
.area-card__link { display: inline-flex; align-items: center; gap: .55em; min-height: 44px; font-weight: 700; color: var(--bronze-claro); text-decoration: none; margin-top: auto; align-self: flex-start; }
.area-card__link .ic { transition: transform .3s var(--ease); }
.area-card__link:hover .ic { transform: translateX(5px); }
.area-card__link:hover { color: #fff; }
.arraste { position: absolute; z-index: 4; left: calc(var(--pl, 32px) + 158px); top: 62px; transform: translate(-50%, 0); display: none; align-items: center; gap: 8px; height: 64px; padding: 0 18px; border-radius: 99px; background: #fff; color: var(--tinta); font: 700 .85rem/1 var(--sans); box-shadow: 0 20px 40px -12px rgba(0, 0, 0, .7); pointer-events: none; transition: opacity .4s, transform .4s var(--ease); }
.arraste .ic { width: 14px; height: 14px; }
.arraste.some { opacity: 0; transform: translate(-50%, 0) scale(.8); }
.areas__progresso { height: 2px; background: var(--linha-escura); border-radius: 2px; overflow: hidden; margin-top: 4px; }
.areas__progresso span { display: block; height: 100%; width: 20%; background: var(--bronze); transform-origin: left; transition: width .2s linear, margin-left .2s linear; }
.areas__nota { margin: 26px 0 0; color: rgba(255, 255, 255, .5); font-size: .88rem; max-width: 42rem; }

/* Dra. Fernanda */
.dra { overflow: hidden; }
.dra__grade { display: grid; gap: 44px; align-items: center; }
.dra__nome { font-size: clamp(2.6rem, 1.4rem + 4vw, 4.2rem); line-height: 1; margin-bottom: 14px; }
.dra__oab { font-weight: 700; color: var(--bronze-texto); letter-spacing: .04em; margin-bottom: 22px; }
.dra__texto p { color: var(--texto-2); }
.dra__lista { display: grid; gap: 4px; margin: 26px 0 32px; }
.dra__lista li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid #e3dccf; font-weight: 500; }
.dra__lista .ic { width: 38px; height: 38px; padding: 9px; border-radius: 50%; background: var(--papel); color: var(--bronze-texto); border: 1px solid #e3dccf; }
.dra__foto { position: relative; width: 100%; }
.dra__foto img { width: 100%; aspect-ratio: 1280 / 825; object-fit: cover; border-radius: 24px; box-shadow: 0 40px 60px -40px rgba(15, 15, 17, .55); }

/* Eventos */
.eventos__grade { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.evento { position: relative; overflow: hidden; border-radius: 22px; aspect-ratio: 4 / 5; background: var(--grafite); border: 1px solid var(--linha-escura); }
.evento img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.evento:hover img { transform: scale(1.04); }
.evento::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(15, 15, 17, .94)); pointer-events: none; }
.evento figcaption { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 12px; display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--claro-2); transition: transform .5s var(--ease); }
.evento figcaption strong { font: 600 .98rem/1.1 var(--serifa); color: #fff; }
.evento figcaption span { color: var(--bronze-claro); font-weight: 500; font-size: .7rem; line-height: 1.25; }
.evento:hover figcaption { transform: translateY(-6px); }

/* Avaliações */

/* Etapas */
.marca-agua { position: absolute; z-index: 0; right: -4%; top: 50%; width: min(52vw, 420px); aspect-ratio: 68 / 120; transform: translateY(-50%); background: var(--marfim); opacity: .045; -webkit-mask: url("img/simbolo.svg") center / contain no-repeat; mask: url("img/simbolo.svg") center / contain no-repeat; pointer-events: none; }
.marca-agua--cta { z-index: -1; right: auto; left: 50%; transform: translate(-50%, -50%); width: min(60vw, 520px); opacity: .05; }
.etapas { overflow: hidden; }
.etapas > .wrap { position: relative; z-index: 1; }
.etapas::before { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 90% 0%, rgba(184, 146, 90, .12), transparent 70%); pointer-events: none; }
.etapas__lista { display: grid; gap: 36px; position: relative; counter-reset: e; }
.etapas__lista li { position: relative; padding-left: 74px; }
.etapas__lista li::before { content: ""; position: absolute; left: 30px; top: 66px; bottom: -36px; width: 1px; background: linear-gradient(var(--bronze), transparent); transform-origin: top; transform: scaleY(0); transition: transform 1.2s var(--ease) .3s; }
.etapas__lista li.in::before { transform: scaleY(1); }
.etapas__lista li:last-child::before { display: none; }
.etapa__n { position: absolute; left: 0; top: -6px; font: 600 3.6rem/1 var(--serifa); color: var(--bronze); }
.etapas__lista h3 { font-size: clamp(1.55rem, 6.6vw, 1.9rem); margin-bottom: 8px; }
.etapas__lista p { color: var(--claro-2); max-width: 26em; margin: 0; }
.etapas__aviso { margin: 44px 0 0; color: rgba(255, 255, 255, .5); font-size: .9rem; }

/* FAQ */
.faq-grade { display: grid; gap: 40px; }
.faq-lado h2 { margin-bottom: 18px; }
.faq-lado__p { color: var(--texto-2); margin-bottom: 26px; }
.faq { display: grid; gap: 12px; align-content: start; }
.faq details { background: var(--papel); border: 1px solid #e7dfd2; border-radius: 20px; transition: border-color .3s, box-shadow .3s; }
.faq details[open] { border-color: var(--bronze); box-shadow: 0 24px 40px -30px rgba(15, 15, 17, .5); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 68px; padding: 14px 24px; font: 600 1.4rem/1.15 var(--serifa); border-radius: 20px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ic { width: 24px; height: 24px; color: var(--bronze-texto); transition: transform .35s var(--ease); }
.faq details[open] summary .ic { transform: rotate(180deg); }
.faq__r { padding: 0 24px 20px; color: var(--texto-2); animation: abre .4s var(--ease); }
.faq__r p { margin: 0; }
@keyframes abre { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* CTA */
.cta { position: relative; background: var(--tinta); color: #fff; overflow: hidden; isolation: isolate; padding: clamp(84px, 12vw, 150px) 0; text-align: center; }
.cta__foto { position: absolute; inset: 0; z-index: -2; background: url("img/sala-1440.webp") center 78% / cover no-repeat; filter: grayscale(1) contrast(1.1); opacity: .42; }
.cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 15, 17, .82), rgba(15, 15, 17, .72) 50%, rgba(15, 15, 17, .9)), radial-gradient(600px 300px at 50% 100%, rgba(178, 30, 39, .35), transparent 70%); }
.cta__l { display: block; }
.cta h2 { font-size: clamp(2rem, 8.6vw, 4.6rem); max-width: 15em; margin: 0 auto 38px; line-height: 1; }
.cta__acoes { display: flex; flex-direction: column; gap: 12px; max-width: 380px; margin: 0 auto; }

/* Rodapé */
.rodape { background: var(--tinta); color: var(--claro-2); padding: 72px 0 34px; font-size: .96rem; border-top: 1px solid var(--linha-escura); }
.rodape__grade { display: grid; gap: 44px; }
.rodape h3 { font: 700 .75rem/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--bronze); margin: 0 0 16px; }
.rodape p { margin-bottom: .8em; }
.rodape a { text-decoration: none; }
.rodape__col--marca .logo { margin-bottom: 18px; }
.rodape__insta, .rodape__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 500; color: #fff; }
.rodape__link { color: var(--bronze-claro); font-weight: 700; }
.rodape__link:hover, .rodape__insta:hover { text-decoration: underline; text-underline-offset: 4px; }
.rodape__h { display: flex; gap: 8px; align-items: flex-start; font-size: .9rem; }
.rodape__h .ic { width: 16px; height: 16px; margin-top: 4px; color: var(--bronze); }
.rodape__tel { display: inline-flex; align-items: center; min-height: 44px; font: 700 1.5rem/1 var(--sans); color: #fff; }
.fachada { max-width: 150px; border-radius: 16px; overflow: hidden; border: 1px solid var(--linha-escura); margin-top: 8px; }
.fachada img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.mapa { position: relative; display: block; height: 132px; border-radius: 18px; overflow: hidden; background: #151518; border: 1px solid var(--linha-escura); margin: 14px 0 6px; transition: border-color .3s, transform .3s var(--ease); }
.mapa:hover { border-color: var(--bronze); transform: translateY(-2px); }
.mapa__fundo { position: absolute; inset: 0; width: 100%; height: 100%; }
.mapa__pino { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); width: 40px; height: 40px; border-radius: 50%; background: var(--vermelho); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 8px rgba(178, 30, 39, .25); }
.mapa__txt { position: absolute; left: 12px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; color: #fff; background: rgba(15, 15, 17, .7); padding: 6px 10px; border-radius: 99px; }
.rodape__fim { margin-top: 52px; padding-top: 24px; border-top: 1px solid var(--linha-escura); font-size: .84rem; color: rgba(255, 255, 255, .5); display: flex; flex-direction: column; gap: 4px; }
.rodape__fim p { margin: 0; }

/* WhatsApp flutuante */
.zap { position: fixed; right: 20px; bottom: 20px; z-index: 65; width: 56px; height: 56px; border-radius: 50%; background: var(--zap); color: #fff; display: grid; place-items: center; box-shadow: 0 14px 30px -8px rgba(0, 0, 0, .55); opacity: 0; transform: translateY(20px) scale(.8); pointer-events: none; transition: opacity .4s, transform .4s var(--ease); }
.zap.visivel { opacity: 1; transform: none; pointer-events: auto; }
.zap.recuado { opacity: 0; transform: translateY(20px) scale(.8); pointer-events: none; }
.zap .ic { width: 28px; height: 28px; stroke-width: 1.8; }
.zap:hover { transform: scale(1.08); }
.zap:focus-visible { outline-color: #fff; box-shadow: 0 0 0 6px var(--tinta); }

/* Entrada ao rolar */
.js [data-r] { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: var(--d, 0ms); }
.js [data-r].in { opacity: 1; transform: none; }
[data-parallax] { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js [data-r], .js .hero__eyebrow, .js .hero__sub, .js .hero__acoes, .js .selos, .js .hero__numeros, .js .gcard { opacity: 1; transform: none; }
  .js .hero__titulo .linha > span { transform: none; }
  .etapas__lista li::before { transform: scaleY(1); }
}

/* ---------- Telas maiores ---------- */
@media (min-width: 640px) {
  .wrap, .ilha__in { padding: 0 32px; }
  .hero__acoes { flex-direction: row; flex-wrap: wrap; }
  .selo:nth-child(3) { display: inline-flex; }
  .pilar { flex-basis: 46%; }
  .area-card { flex-basis: 320px; }
  .eventos__grade { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .evento figcaption { padding: 16px; }
  .evento figcaption strong { font-size: 1.12rem; }
  .evento figcaption span { font-size: .78rem; }
  .cta__acoes { flex-direction: row; max-width: none; justify-content: center; }
  .areas__trilho { padding-left: 32px; padding-right: 32px; scroll-padding: 0 32px; }
  .rodape__grade { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 960px) {
  .barra { display: block; }
  .ilha__menu { display: flex; }
  .ilha__zap { display: inline-flex; }
  .burger { display: none; }
  .ilha__logo { margin-right: 8px; }
  .hero { padding-top: 40px; min-height: min(100svh, 880px); display: flex; flex-direction: column; }
  .hero__palco { position: static; flex: 1; flex-direction: row; align-items: center; min-height: 470px; }
  .hero__texto { flex: 0 0 58%; padding: 20px 0 40px; }
  .hero__titulo { font-size: clamp(4.4rem, 5.9vw, 6.2rem); line-height: .98; }
  .hero__sub { font-size: 1.15rem; margin-bottom: 30px; max-width: 24em; }
  .hero__figura { order: 0; position: absolute; z-index: 1; right: max(32px, calc((100vw - 1240px) / 2 + 32px)); top: 56px; height: 470px; width: 520px; margin: 0; }
  .marca-agua--hero { left: 50%; right: auto; top: 50%; transform: translate(-50%, -50%); width: 460px; opacity: .07; }
  .mosaico { inset: 0; }
  .mq { border-radius: 26px; border: 1px solid rgba(255, 255, 255, .14); box-shadow: 0 40px 60px -30px rgba(0, 0, 0, .85); }
  .mq--a { inset: auto; right: 0; top: 0; width: 336px; height: 456px; border-radius: 28px; }
  .mq--a::after { background: linear-gradient(180deg, rgba(15, 15, 17, 0) 55%, rgba(15, 15, 17, .55)); }
  .mq--a::before { content: ""; position: absolute; z-index: -1; }
  .mq--b { display: block; left: 40px; bottom: -6px; width: 190px; height: 254px; border: 5px solid var(--tinta); outline: 1px solid rgba(184, 146, 90, .55); }
  .mq--c { display: block; left: 70px; top: 16px; width: 140px; height: 176px; border-radius: 22px; }
  .mq img { filter: saturate(1.05) brightness(.95); }
  .gcard { left: auto; right: -26px; bottom: 44px; top: auto; padding: 16px 20px; max-width: 250px; z-index: 5; }
  .hero__numeros-wrap { position: relative; z-index: 2; margin-top: auto; }
  .hero__numeros { margin-bottom: 124px; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--linha-escura); border-radius: 22px; background: rgba(255, 255, 255, .03); backdrop-filter: blur(6px); }
  .hero__numeros > div { padding: 26px 28px; flex-direction: column-reverse; border-left: 1px solid var(--linha-escura); }
  .hero__numeros > div:first-child { border-left: 0; }
  .hero__numeros > div:nth-child(2n) { padding-left: 28px; }
  .hero__numeros dd { font-size: 3.4rem; }
  .pilares { margin-top: -96px; }
  .pilares__trilho { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; overflow: visible; padding: 4px 0 8px; margin: 0; }
  .pilar { flex-basis: auto; padding: 28px 26px 24px; }
  .pontos { display: none; }
  .sobre { grid-template-columns: .9fr 1.1fr; gap: 96px; }
  .areas__setas { display: flex; }
  .areas__janela { --pl: max(32px, calc((100vw - 1240px) / 2 + 32px)); }
  .areas__trilho { padding-left: max(32px, calc((100vw - 1240px) / 2 + 32px)); padding-right: 48px; scroll-padding-left: max(32px, calc((100vw - 1240px) / 2 + 32px)); gap: 22px; }
  .area-card { flex-basis: 316px; min-height: 460px; }
  .arraste { display: inline-flex; }
  .dra__grade { grid-template-columns: .9fr 1.1fr; gap: 72px; }
  .eventos__grade { grid-template-columns: repeat(4, 1fr); }
  .aval { grid-template-columns: 1fr 1fr; gap: 90px; }
    .aval__cab { flex-direction: row; align-items: flex-end; justify-content: space-between; margin-bottom: 48px; }
  .depos { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; overflow: visible; margin: 0; padding: 0 0 36px; }
  .depo { flex: none; padding: 80px 40px 14px; }
  .depo__aspas { font-size: 8rem; left: 32px; top: 8px; }
  .depo blockquote p { font-size: 1.4rem; }
  .depo:nth-child(even) { transform: translateY(28px); }
  .aval__rodape { flex-direction: row; align-items: center; justify-content: space-between; margin-top: 28px; }
  .etapas__lista { grid-template-columns: repeat(3, 1fr); gap: 0 56px; }
  .etapas__lista li { padding-left: 0; padding-top: 96px; }
  .etapas__lista li::before { left: 0; right: -56px; top: 52px; bottom: auto; width: auto; height: 1px; background: linear-gradient(90deg, var(--bronze), rgba(184, 146, 90, .1)); transform-origin: left; transform: scaleX(0); }
  .etapas__lista li.in::before { transform: scaleX(1); }
  .etapa__n { top: 0; font-size: 4.6rem; }
  .faq-grade { grid-template-columns: .8fr 1.2fr; gap: 90px; }
  .faq-lado { position: sticky; top: 24px; align-self: start; }
  .rodape__grade { grid-template-columns: 1.1fr 1fr 1fr .8fr; gap: 40px; }
  .rodape__fim { flex-direction: row; justify-content: space-between; }
}
@media (min-width: 1280px) { .wrap, .ilha__in { padding: 0 40px; } }
