/* ==========================================================================
   Lícia Santos Advocacia — Direito Médico e da Saúde
   Estética: editorial monocromático, premium, minimalista, predominante branco.
   Tipografia: General Sans (subst. de Aeonik Pro / fluid.glass) + Space Mono.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
  --ivory:   #FBFAF7;   /* fundo primário (marfim quente do brandbook) */
  --paper:   #FFFFFF;   /* cartões / branco puro */
  --ink:     #14161A;   /* texto quase-preto */
  --graphite:#23262C;   /* seções escuras (grafite da marca) */
  --graphite-2:#2E323A;
  --stone:   #6C6F76;   /* texto secundário */
  --stone-2: #9A9CA1;
  --line:    #E7E3DB;   /* hairline quente */
  --line-dk: rgba(255,255,255,.14);

  --maxw: 1240px;
  --gut: clamp(20px, 5vw, 64px);

  --ff: "General Sans", system-ui, -apple-system, sans-serif;
  --fm: "Space Mono", ui-monospace, monospace;

  --ease: cubic-bezier(.16, 1, .3, 1);
  --ease-2: cubic-bezier(.22, 1, .36, 1);

  --r: 4px;   /* raio discreto — luxo minimalista */
  --r-lg: 8px;
}

/* ---------- Reset ---------- */
* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body {
  font-family: var(--ff);
  background: var(--ivory);
  color: var(--ink);
  line-height: 1.55;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
b, strong { font-weight:inherit; }
.icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.whatsapp-icon { display:block; width:18px; height:18px; flex:0 0 auto; object-fit:contain; fill:currentColor; overflow:visible; }
::selection { background: var(--ink); color: var(--ivory); }

/* ---------- Tipografia base ---------- */
h1,h2 { font-weight:400; line-height:1.04; letter-spacing:-.02em; text-wrap:balance; }
h3,h4 { font-weight:400; line-height:1.04; letter-spacing:-.02em; text-wrap:balance; }
p { text-wrap:pretty; }

.eyebrow {
  font-family: var(--fm);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--stone);
}
.eyebrow--light { color: rgba(255,255,255,.6); }

/* ---------- Layout ---------- */
.wrap { max-width: var(--maxw); margin-inline:auto; padding-inline: var(--gut); }
.section { padding-block: clamp(72px, 11vw, 148px); position:relative; }
.section--tight { padding-block: clamp(56px, 8vw, 104px); }

.bg-ivory   { background: var(--ivory); color: var(--ink); }
.bg-paper   { background: var(--paper); color: var(--ink); }
.bg-graphite{ background: var(--graphite); color: var(--ivory); }

/* ---------- Botões ---------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-size:16px; font-weight:400; letter-spacing:-.01em;
  padding: 18px 40px;
  border-radius: 999px;
  transition: transform .5s var(--ease), background .4s var(--ease), color .4s var(--ease), box-shadow .5s var(--ease);
  will-change: transform;
}
.btn svg { width:17px; height:17px; transition: transform .5s var(--ease); }
.btn:hover svg { transform: translateX(4px); }
.btn--whatsapp:hover .whatsapp-icon { transform:none; }
.faq__aside .whatsapp-icon { filter:invert(1); }
.whatsapp-roll { display:inline-block; height:1.2em; overflow:hidden; line-height:1.2; }
.whatsapp-roll > span { display:block; transition:transform .42s var(--ease); }
.btn--whatsapp:hover .whatsapp-roll > span { transform:translateY(-100%); }
.btn--primary { background: var(--ink); color: var(--ivory); }
.btn--primary:hover { background:#000; transform: translateY(-2px); }
.btn--light { background: var(--ivory); color: var(--ink); }
.btn--light:hover { transform: translateY(-2px); }
.btn--ghost { background:transparent; color:var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
.btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--ink); transform: translateY(-2px); }
.btn--ghost-light { background:transparent; color:var(--ivory); box-shadow: inset 0 0 0 1px var(--line-dk); }
.btn--ghost-light:hover { box-shadow: inset 0 0 0 1px rgba(255,255,255,.5); transform: translateY(-2px); }

@media (max-width: 640px){
  .btn { width:100%; padding:17px 28px; }
}

/* =====================================================================
   NAV — liquid glass, esconde ao descer / aparece ao subir
   ===================================================================== */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  transition: transform .55s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
}
.nav__inner {
  max-width: var(--maxw); margin-inline:auto;
  padding: 15px var(--gut);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav.glass {
  background: rgba(251,250,247,.62);
  -webkit-backdrop-filter: blur(22px) saturate(1.7);
  backdrop-filter: blur(22px) saturate(1.7);
  box-shadow: 0 1px 0 rgba(20,22,26,.07), 0 10px 30px rgba(20,22,26,.05);
}
.nav--hidden { transform: translateY(-104%); }
.nav__logo img { height: 26px; width:auto; }
.nav__links { display:flex; align-items:center; gap:32px; }
.nav__links a {
  font-size:14px; color:var(--stone); letter-spacing:-.01em;
  position:relative; transition: color .3s var(--ease);
}
.nav__links a::after {
  content:""; position:absolute; left:0; bottom:-5px; width:100%; height:1px;
  background: var(--ink); transform: scaleX(0); transform-origin:left;
  transition: transform .45s var(--ease);
}
.nav__links a:hover { color: var(--ink); }
.nav__links a:hover::after { transform: scaleX(1); }
.nav__cta {
  font-size:14px; font-weight:400; color:var(--ink); background:transparent;
  box-shadow: inset 0 0 0 1px var(--line);
  padding:11px 24px; border-radius:999px;
  display:inline-flex; align-items:center; gap:.5em;
  transition: transform .5s var(--ease), box-shadow .4s var(--ease);
}
.nav__cta::after { display:none; }
.nav__cta:hover { box-shadow: inset 0 0 0 1px var(--ink); transform: translateY(-2px); }
.nav__cta .whatsapp-icon { width:16px; height:16px; fill:currentColor; filter:none; transition:filter .4s var(--ease); }
.nav__burger { display:none; width:34px; height:34px; position:relative; }
.nav__burger span { position:absolute; left:6px; right:6px; height:1.6px; background:var(--ink); transition: .4s var(--ease); }
.nav__burger span:nth-child(1){ top:12px; }
.nav__burger span:nth-child(2){ bottom:12px; }
body.menu-open .nav__burger span:nth-child(1){ top:16px; transform:rotate(45deg); }
body.menu-open .nav__burger span:nth-child(2){ bottom:16px; transform:rotate(-45deg); }

/* No topo, a navegação repousa diretamente sobre a Hero escura. */
.nav__logo img { transition:filter .35s var(--ease); }
.nav:not(.glass) .nav__logo img { filter:brightness(0) invert(1); }
.nav:not(.glass) .nav__links a { color: #fff; }
.nav:not(.glass) .nav__links a::after { background: #fff; }
.nav:not(.glass) .nav__links a:hover { color: #fff; }
.nav:not(.glass) .nav__cta {
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.58);
}
.nav:not(.glass) .nav__cta .whatsapp-icon { filter:brightness(0) invert(1); }
.nav:not(.glass) .nav__cta:hover { box-shadow: inset 0 0 0 1px #fff; }
.nav:not(.glass) .nav__burger span { background: #fff; }

/* Texto duplicado que sobe no hover — inspirado na interação da Evoxy. */
@media (hover: hover) {
  .roll {
    display: inline-block;
    height: 1.2em;
    overflow: hidden;
    vertical-align: top;
    line-height: 1.2;
  }
  .roll > span {
    display: block;
    transition: transform .42s var(--ease);
  }
  a.has-roll:hover .roll > span,
  button.has-roll:hover .roll > span { transform: translateY(-100%); }
  .nav__links a.has-roll::after { display: none; }
  .info-block a.v.has-roll:hover { text-decoration: none; }
}

@media (max-width: 900px){
  .nav__links { gap:24px; }
  .nav__cta { display:none; }
}
/* No celular o hero tem fundo marfim: logo e hambúrguer voltam a ser escuros no topo. */
@media (max-width: 860px){
  .nav:not(.glass) .nav__logo img { filter:none; }
  .nav:not(.glass) .nav__burger span { background: var(--ink); }
}
@media (max-width: 760px){
  .nav__links {
    position:fixed; top:0; left:0; width:100vw; height:100dvh; z-index:1;
    flex-direction:column; justify-content:center; gap:22px;
    background: var(--ivory);
    opacity:0; pointer-events:none; transform: translateY(-8px);
    transition: opacity .5s var(--ease), transform .5s var(--ease);
  }
  .nav__links a { font-size:24px; color:var(--ink); }
  .nav__links a::after { display:none; }
  .nav__links .nav__cta { display:inline-flex; width:auto; margin-top:10px; font-size:18px; padding:16px 34px; color:var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
  body.menu-open .nav__links { opacity:1; pointer-events:auto; transform:none; }
  body.menu-open .nav__links a { color: var(--ink); }
  body.menu-open .nav__links .nav__cta { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
  body.menu-open .nav__links .nav__cta .whatsapp-icon { filter:none; }
  body.menu-open .nav__burger span { background: var(--ink); }
  .nav__burger { display:block; z-index:3; }
}

/* =====================================================================
   HERO
   ===================================================================== */
.hero {
  position: relative; overflow: hidden;
  min-height: 100vh; min-height: 100dvh;
  display: flex; align-items: center;
  padding-block: clamp(110px, 14vh, 160px) clamp(56px, 8vw, 96px);
}
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: calc(100% + 76px); object-fit: cover; object-position: 78% 22%; }
/* Véu escuro sutil para assentar o texto branco sobre o cinza da foto */
.hero__scrim {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: transparent;
}
.hero__inner { position: relative; z-index: 2; width: 100%; }
.hero__copy { max-width: 660px; }
.hero__eyebrow { margin-bottom: 26px; }
/* Conteúdo da hero em branco */
.hero .hero__eyebrow { color: #FFFFFF; }
.hero h1 { color: #FFFFFF; }
.hero h1 em { color: #FFFFFF; }
.hero__sub { color: #FFFFFF; }
.hero .btn--primary { background: var(--ivory); color: var(--ink); }
.hero .btn--primary:hover { background: #fff; }
.hero .btn--ghost { color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.45); }
.hero .btn--ghost:hover { box-shadow: inset 0 0 0 1px #fff; }
.hero h1 {
  font-size: clamp(33px, 3.7vw, 50px);
  font-weight: 400;
  letter-spacing: -.03em;
  max-width: 15ch;
}
.hero h1 em { font-style: normal; }
.hero__sub {
  margin-top: 26px; font-size: clamp(15px, 1.15vw, 17px);
  max-width: 44ch; line-height:1.6;
}
.hero__actions { margin-top: 38px; display:flex; gap:14px; flex-wrap:wrap; }
.hero__cred {
  margin-top: 40px; padding-top: 24px; border-top:1px solid var(--line);
  display:flex; gap: clamp(20px,3vw,44px); flex-wrap:wrap;
}
.hero__cred div { display:flex; flex-direction:column; gap:3px; }
.hero__cred .n { font-size: clamp(24px,2.4vw,30px); font-weight:400; letter-spacing:-.02em; }
.hero__cred .l { font-family:var(--fm); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone-2); }

/* Hero com foto de estúdio (retrato, fundo cinza): o fundo da seção continua o cinza da foto
   e o texto fica escuro sobre ele. A foto ocupa a metade direita e se funde à esquerda. */
.hero--studio { background: linear-gradient(180deg, #8f918e 0%, #a9ada9 48%, #adafac 100%); }
.hero--studio .hero__bg { left: 44%; }
.hero--studio .hero__bg img { object-position: 50% 10%; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%); mask-image: linear-gradient(90deg, transparent 0, #000 26%); }
.hero--studio .hero__eyebrow, .hero--studio h1, .hero--studio h1 em, .hero--studio .hero__sub { color: var(--ink); }
.hero--studio .hero__sub { color: #2b2e33; }
.hero--studio .btn--primary { background: var(--ink); color: var(--ivory); }
.hero--studio .btn--primary:hover { background: #000; }
.hero--studio .btn--ghost { color: var(--ink); box-shadow: inset 0 0 0 1px rgba(20,22,26,.45); }
.hero--studio .btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--ink); }
@media (max-width: 1100px){ .hero--studio .hero__bg { left: 36%; } }
@media (max-width: 860px){
  .hero--studio { background: var(--ivory); }
  .hero--studio .hero__bg { left: auto; }
  .hero--studio .hero__bg img { -webkit-mask-image: none; mask-image: none; object-position: 50% 0; height: 100%; min-height: 100%; transform: none !important; }
  .hero--studio .hero__bg { height: 70vh; }
}

@media (max-width: 860px){
  .hero {
    min-height: 0; flex-direction: column; align-items: stretch;
    padding-top: clamp(116px, 16vh, 160px); padding-bottom: 0;
  }
  .hero__bg { position: relative; inset: auto; order: 2; width: 100%; height: 62vh; margin-top: clamp(36px, 7vw, 52px); }
  .hero__bg img { object-position: 60% 18%; }
  .hero__scrim { display: none; }
  .hero__inner { order: 1; }
  .hero__copy { max-width: none; }
  .hero h1 { max-width: 16ch; }
  /* No mobile o texto fica sobre o fundo marfim — volta ao esquema escuro */
  .hero .hero__eyebrow { color: var(--stone); }
  .hero h1 { color: var(--ink); }
  .hero h1 em { color: var(--stone); }
  .hero__sub { color: var(--stone); }
  .hero .btn--primary { background: var(--ink); color: var(--ivory); }
  .hero .btn--primary:hover { background: #000; }
  .hero .btn--ghost { color: var(--ink); box-shadow: inset 0 0 0 1px var(--line); }
  .hero .btn--ghost:hover { box-shadow: inset 0 0 0 1px var(--ink); }
}

/* =====================================================================
   MANIFESTO — banda grafite escura, foto + declaração + marquee
   ===================================================================== */
.manifesto { overflow:hidden; }
.manifesto__grid {
  display:grid; grid-template-columns: .82fr 1.18fr; gap: clamp(28px,4vw,64px); align-items:stretch;
}
.manifesto__media { border-radius: 0; overflow:hidden; min-height: 440px; background:var(--graphite-2); }
.manifesto__media img { width:100%; height:100%; object-fit:cover; object-position: 50% 18%; transform:scale(1); will-change:transform; }
.manifesto__body { display:flex; flex-direction:column; justify-content:center; }
.manifesto__body .eyebrow { margin-bottom: 26px; }
.manifesto h2 {
  font-size: clamp(27px, 3.2vw, 44px); font-weight:400; letter-spacing:-.025em;
  line-height:1.14; max-width: 20ch;
}
.manifesto h2 b { font-weight:400; }
.manifesto__p { margin-top: 26px; color: rgba(255,255,255,.66); max-width: 46ch; font-size:16px; line-height:1.65; }

.marquee {
  margin: 0;
  border-top:1px solid var(--line-dk); border-bottom:1px solid var(--line-dk);
  padding-block: 22px; overflow:hidden; white-space:nowrap; width:100%;
  background:#1F2227;
}
.marquee__track { display:inline-flex; will-change: transform; }
.marquee span {
  font-family: var(--fm); font-size: clamp(13px,1.4vw,15px); letter-spacing:.08em; text-transform:uppercase;
  color: rgba(255,255,255,.72); padding-inline: 26px; display:inline-flex; align-items:center; gap:26px;
}
.marquee span::after { content:"·"; color: rgba(255,255,255,.4); }

@media (max-width: 820px){
  .manifesto__grid { grid-template-columns: 1fr; }
  .manifesto__media { min-height: 62vh; }
}

/* =====================================================================
   ÁREAS DE ATUAÇÃO — bento grid
   ===================================================================== */
.areas__head { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom: clamp(38px,5vw,62px); }
.areas__head h2 { font-size: clamp(28px,3.4vw,46px); max-width: 16ch; }
.areas__head p { color:var(--stone); max-width: 34ch; font-size:16px; }

.bento { display:grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.card {
  position:relative; background: var(--paper); border:1px solid var(--line);
  border-radius:0; padding: 32px; display:flex; flex-direction:column;
  min-height: 244px; overflow:hidden;
  transition: transform .6s var(--ease), border-color .5s var(--ease);
}
.card:hover { transform: translateY(-4px); border-color: #dbd6cc; }
.card__idx { font-family:var(--fm); font-size:12px; letter-spacing:.12em; color:var(--stone-2); }
.card h3 { font-size: clamp(19px,1.5vw,23px); font-weight:400; margin-top: 18px; letter-spacing:-.02em; }
.card p { color:var(--stone); font-size:14.5px; line-height:1.6; margin-top: 12px; flex:1; }
.card__link {
  margin-top: 22px; font-size:14px; font-weight:400; color:var(--ink);
  display:inline-flex; align-items:center; gap:.5em; align-self:flex-start;
}
.card__link svg { width:14px; height:14px; transition: transform .5s var(--ease); }
.card:hover .card__link svg { transform: translateX(4px); }
.card:hover .card__link .whatsapp-icon { transform:none; }
.card::after {
  content:""; position:absolute; inset:0; border-radius:inherit;
  background: radial-gradient(600px circle at var(--mx,50%) var(--my,0%), rgba(20,22,26,.045), transparent 40%);
  opacity:0; transition: opacity .5s var(--ease); pointer-events:none;
}
.card:hover::after { opacity:1; }

.card--lg { grid-column: span 3; }
.card--md { grid-column: span 3; }
.card--sm { grid-column: span 2; }
.card--full { grid-column: span 6; min-height:0; padding: 34px 40px;
  flex-direction:row; align-items:center; gap:40px; flex-wrap:wrap; }
.card--full .card__body { flex:1; min-width:min(100%,320px); display:flex; flex-direction:column; }
.card--full h3 { margin-top:14px; }
.card--full p { margin-top:10px; max-width:60ch; }
.card--full .card__link { margin-top:0; white-space:nowrap; }

/* ---- Dois caminhos (home) ---- */
.areas__head > div .eyebrow { margin-bottom: 20px; }
.areas__head h2 { max-width: 18ch; }
.caminhos { display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.caminho { position:relative; display:flex; flex-direction:column; background: var(--paper); border:1px solid #b58b45; box-shadow: inset 0 2px 0 #b58b45; padding: clamp(28px,3vw,40px); min-height: 280px; transition: transform .6s var(--ease), box-shadow .5s var(--ease); }
.caminho:hover { transform: translateY(-4px); box-shadow: inset 0 3px 0 #b58b45, 0 14px 34px rgba(20,22,26,.08); }
.caminho p strong { color: var(--ink); font-weight: 400; }
.caminho h3 { font-size: clamp(24px,2.4vw,34px); }
.chooser__t { margin-top: 0; }
.caminho p { color: var(--stone); font-size: 15.5px; line-height: 1.6; margin-top: 14px; flex: 1; max-width: 44ch; }
.caminho__go { margin-top: 26px; font-size: 15px; color: var(--ink); display:inline-flex; align-items:center; gap:.5em; align-self:flex-start; }
.caminho__go::after { content: "→"; transition: transform .5s var(--ease); }
.caminho:hover .caminho__go::after { transform: translateX(4px); }
.porta__tag { position: absolute; top: 16px; right: 16px; font-family: var(--fm); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #8a6a30; border: 1px solid #b58b45; padding: 6px 10px; border-radius: 999px; }
@media (max-width: 820px){ .caminhos { grid-template-columns: 1fr; } .caminho { min-height: 0; } .porta__tag { position: static; align-self: flex-start; margin-bottom: 14px; } }

/* ---- Páginas de caminho: pergunta + escolha ---- */
.hub-page .nav.glass { background: rgba(251,250,247,.92); }
.hub-hero { padding: clamp(130px,18vh,190px) 0 clamp(48px,6vw,72px); }
.hub-hero h1 { font-size: clamp(32px,4vw,54px); margin-top: 22px; max-width: 16ch; }
.hub-hero__sub { color: var(--stone); margin-top: 22px; font-size: 16.5px; line-height: 1.65; max-width: 58ch; }
.chooser { margin-top: clamp(32px,4vw,48px); display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.chooser__opt { text-align:left; display:flex; flex-direction:column; gap: 10px; background: var(--paper); border:1px solid var(--line); padding: clamp(24px,2.6vw,34px); color: var(--ink); transition: transform .6s var(--ease), border-color .5s var(--ease), background .5s var(--ease); }
.chooser__opt:hover { transform: translateY(-4px); border-color: #dbd6cc; }
.chooser__opt.is-active { border-color: var(--ink); background: var(--ink); color: var(--ivory); }
.chooser__opt.is-active .card__idx, .chooser__opt.is-active .chooser__d { color: rgba(255,255,255,.65); }
.chooser__t { font-size: clamp(20px,1.9vw,26px); letter-spacing:-.02em; line-height:1.15; margin-top: 6px; }
.chooser__d { color: var(--stone); font-size: 14.5px; line-height: 1.55; }
.chooser__back { margin-top: 22px; font-size: 14px; color: var(--stone); border-bottom: 1px solid var(--line); padding-bottom: 2px; align-self:flex-start; }
.chooser__back:hover { color: var(--ink); border-color: var(--ink); }
@media (max-width: 700px){ .chooser { grid-template-columns: 1fr; } }

/* ---- Tronco: um assunto de cada vez ---- */
.tronco { border-top: 1px solid var(--line); scroll-margin-top: 80px; }
.tronco[hidden] { display: none; }
.tronco__grid { display:grid; grid-template-columns: .7fr 1.3fr; gap: clamp(32px,5vw,72px); align-items:start; }
.tronco__aside { display:flex; flex-direction:column; position: sticky; top: 96px; }
.tronco__aside h2 { font-size: clamp(26px,2.8vw,38px); margin-top: 20px; max-width: 14ch; }
.tronco__aside p { color: var(--stone); margin-top: 18px; font-size: 15.5px; line-height:1.65; max-width: 36ch; }
.ramo .faq__q { align-items: flex-start; padding: 24px 0; }
.ramo .faq__q > span:first-child { display:flex; align-items:baseline; gap: 16px; flex-wrap: wrap; }
.ramo__n { font-family: var(--fm); font-size: 12px; letter-spacing: .12em; color: var(--stone-2); }
.ramo__tag { font-style: normal; font-family: var(--fm); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #8a6a30; border: 1px solid #b58b45; padding: 4px 8px; border-radius: 999px; }
.ramo--main { border-top: 1px solid #b58b45; }
.ramo__body { padding-bottom: 30px; }
.ramo__body p { color: var(--stone); font-size: 15.5px; line-height: 1.65; max-width: 62ch; }
.ramo__body p + p { margin-top: 12px; }
.ramo__actions { margin-top: 22px; display:flex; flex-wrap:wrap; gap: 10px; }
.ramo__actions .btn { padding: 14px 24px; font-size: 15px; }
@media (max-width: 820px){ .tronco__grid { grid-template-columns: 1fr; gap: 28px; } .tronco__aside { position: static; } .tronco__aside h2, .tronco__aside p { max-width: none; } }
@media (max-width: 640px){ .ramo__actions .btn { width: 100%; } }

/* ---- Quem cuida (páginas de caminho) ---- */
.quem__grid { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(28px,4vw,64px); align-items:center; }
.quem__media { aspect-ratio: 4/5; overflow:hidden; background: #e8e4dc; max-height: 480px; }
.quem__media img { width:100%; height:100%; object-fit:cover; object-position: 50% 20%; }
.quem__body h2 { font-size: clamp(26px,2.8vw,38px); margin-top: 20px; max-width: 16ch; }
.quem__body p { color: var(--stone); margin-top: 18px; font-size: 16px; line-height: 1.65; max-width: 52ch; }
.quem__body .btn { margin-top: 28px; }
@media (max-width: 820px){ .quem__grid { grid-template-columns: 1fr; } .quem__media { max-height: 360px; aspect-ratio: 4/3; } }

/* ---- Área do cliente ---- */
.nav__links .nav__cliente { font-family: var(--fm); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #8a6a30; }
.nav:not(.glass) .nav__links .nav__cliente { color: #d9bf86; }
.nav__links .nav__cliente::after { background: #b58b45; }
@media (max-width: 760px){ .nav__links .nav__cliente { font-size: 14px; letter-spacing: .14em; color: #8a6a30; } }
.sistemas { display:grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sistema { display:flex; flex-direction:column; background: var(--ivory); border:1px solid #b58b45; box-shadow: inset 0 2px 0 #b58b45; padding: clamp(26px,3vw,36px); min-height: 240px; transition: transform .6s var(--ease); }
.sistema:hover { transform: translateY(-4px); }
.sistema h2 { font-size: clamp(22px,2.2vw,30px); margin-top: 14px; }
.sistema p { color: var(--stone); font-size: 15px; line-height: 1.6; margin-top: 12px; flex: 1; }
.sistema__go { margin-top: 22px; font-size: 15px; color: var(--ink); display:inline-flex; gap:.5em; align-items:center; }
.sistema__go::after { content: "→"; }
.sistema--breve { border-style: dashed; border-color: var(--line); box-shadow: none; opacity: .75; }
.sistemas__nota { margin-top: 26px; font-size: 14.5px; color: var(--stone); }
.sistemas__nota a { color: var(--ink); border-bottom: 1px solid var(--line); }
@media (max-width: 760px){ .sistemas { grid-template-columns: 1fr; } }

/* ---- Blog ---- */
.posts { display:grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.post { display:flex; flex-direction:column; background: var(--ivory); border:1px solid var(--line); padding: clamp(24px,2.6vw,32px); min-height: 260px; transition: transform .6s var(--ease), border-color .5s var(--ease); }
.post:hover { transform: translateY(-4px); border-color: #b58b45; }
.post h2 { font-size: clamp(19px,1.6vw,23px); margin-top: 14px; }
.post p { color: var(--stone); font-size: 14.5px; line-height: 1.6; margin-top: 10px; flex: 1; }
.post__go { margin-top: 20px; font-size: 14px; color: var(--ink); border-bottom: 1px solid var(--line); align-self: flex-start; }
.art-hero { padding: clamp(120px,16vh,170px) 0 clamp(40px,5vw,64px); }
.art-hero h1 { font-size: clamp(30px,3.8vw,50px); margin-top: 22px; max-width: 24ch; }
.art-hero__sub { color: var(--stone); margin-top: 20px; font-size: 17px; line-height: 1.65; max-width: 60ch; }
.art-hero__meta { margin-top: 18px; font-family: var(--fm); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--stone-2); }
.art-grid { display:grid; grid-template-columns: 240px minmax(0,1fr); gap: clamp(32px,5vw,72px); padding-top: clamp(40px,5vw,64px); padding-bottom: clamp(40px,5vw,64px); align-items:start; }
.art-indice { position: sticky; top: 96px; }
.art-indice ol { list-style:none; padding:0; margin-top: 14px; border-top:1px solid var(--line); }
.art-indice li { border-bottom:1px solid var(--line); }
.art-indice a { display:block; padding: 10px 0; font-size: 14px; color: var(--stone); }
.art-indice a:hover { color: var(--ink); }
.art-body { max-width: 68ch; font-size: 17px; line-height: 1.75; color: var(--ink); }
.art-body p { margin-top: 18px; color: #2b2e33; }
.art-body h2 { font-size: clamp(24px,2.4vw,32px); margin-top: 44px; }
.art-body h3 { font-size: clamp(19px,1.8vw,23px); margin-top: 30px; }
.art-body ul, .art-body ol { margin-top: 16px; padding-left: 22px; color: #2b2e33; }
.art-body li { margin-top: 8px; }
.art-body a { color: var(--ink); border-bottom: 1px solid #b58b45; }
.art-body blockquote { margin: 24px 0 0; padding: 18px 24px; border-left: 2px solid #b58b45; background: var(--ivory); }
.art-body blockquote p { margin: 0; }
.art-body strong { font-weight: 400; color: var(--ink); background: linear-gradient(transparent 60%, rgba(181,139,69,.18) 60%); }
.art-caixa { margin-top: 44px; padding: clamp(24px,3vw,36px); background: var(--ivory); border:1px solid #b58b45; box-shadow: inset 0 2px 0 #b58b45; }
.art-caixa h3 { font-size: clamp(20px,2vw,26px); margin-top: 14px; }
.art-caixa__btns { margin-top: 22px; display:flex; flex-wrap:wrap; gap: 10px; }
.art-autor { margin-top: 40px; display:grid; grid-template-columns: 96px 1fr; gap: 20px; align-items:center; padding-top: 28px; border-top:1px solid var(--line); }
.art-autor img { width: 96px; height: 96px; object-fit: cover; object-position: 50% 20%; border-radius: 999px; }
.art-autor h3 { font-size: 18px; margin-top: 8px; }
.art-autor p { font-size: 14.5px; margin-top: 6px; color: var(--stone); }
.art-autor a { color: var(--ink); border-bottom: 1px solid var(--line); }
.art-cta { margin-top: 28px; }
.rels { display:grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 24px; }
.rel { display:flex; flex-direction:column; background: var(--ivory); border:1px solid var(--line); padding: 24px; transition: transform .6s var(--ease); }
.rel:hover { transform: translateY(-4px); }
.rel h3 { font-size: 18px; margin-top: 12px; }
.rel p { color: var(--stone); font-size: 14px; margin-top: 8px; }
@media (max-width: 900px){ .posts, .rels { grid-template-columns: 1fr; } .art-grid { grid-template-columns: 1fr; } .art-indice { position: static; } }

/* ---- Página Sobre ---- */
.sobre-hero { padding-top: clamp(120px,16vh,170px); }
.sobre-hero__grid { display:grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px,5vw,80px); align-items:center; }
.sobre-hero h1 { font-size: clamp(34px,4.4vw,60px); margin-top: 22px; }
.sobre-hero__sub { color: var(--stone); margin-top: 22px; font-size: 17px; line-height: 1.6; max-width: 40ch; }
.sobre-hero__media { aspect-ratio: 4/5; overflow:hidden; background:#dadbd5; max-height: 620px; }
.sobre-hero__media img { width:100%; height:100%; object-fit:cover; object-position: 50% 12%; }
.sobre__grid { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px,5vw,72px); align-items:start; }
.sobre__aside { position: sticky; top: 96px; }
.sobre__aside h2 { font-size: clamp(26px,2.8vw,38px); margin-top: 20px; max-width: 16ch; }
.sobre__text p { color: var(--stone); font-size: 17px; line-height: 1.7; max-width: 60ch; }
.sobre__text p + p { margin-top: 18px; }
.sobre__h3 { font-family: var(--fm); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--stone-2); margin-top: 36px; }
.sobre__text strong { color: var(--ink); font-weight: 400; }
.sobre__list { list-style:none; padding:0; margin-top: 12px; border-top:1px solid var(--line); }
.sobre__list li { padding: 14px 0; border-bottom:1px solid var(--line); font-size: 16px; }
.sobre__cta { margin-top: 30px; display:flex; flex-wrap:wrap; gap: 10px; }
.sobre__addr { margin-top: 26px; font-family: var(--fm); font-size: 12px; letter-spacing: .06em; color: var(--stone-2) !important; }
.sobre-quote__grid { display:grid; grid-template-columns: .7fr 1.3fr; gap: clamp(32px,5vw,80px); align-items:center; }
.sobre-quote__media { aspect-ratio: 4/5; overflow:hidden; background: var(--graphite-2); max-height: 560px; }
.sobre-quote__media img { width:100%; height:100%; object-fit:cover; object-position: 50% 20%; }
.sobre-quote blockquote { margin: 24px 0 0; }
.sobre-quote blockquote p { font-size: clamp(20px,2vw,28px); line-height: 1.35; letter-spacing:-.015em; color: var(--ivory); max-width: 30ch; }
.sobre-quote blockquote p + p { margin-top: 16px; }
.sobre-quote blockquote footer { margin-top: 24px; font-family: var(--fm); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); }
@media (max-width: 860px){
  .sobre-hero__grid, .sobre__grid, .sobre-quote__grid { grid-template-columns: 1fr; }
  .sobre__aside { position: static; }
  .sobre-hero__media { max-height: 420px; aspect-ratio: 4/4.4; order: -1; }
  .sobre-quote__media { max-height: 380px; aspect-ratio: 4/3; }
}

/* ---- Páginas de assunto (landing pages) ---- */
.crumbs { font-family: var(--fm); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--stone-2); }
.crumbs a { color: var(--stone); }
.crumbs a:hover { color: var(--ink); }
.lp-hero { padding: clamp(120px,16vh,170px) 0 clamp(56px,7vw,88px); }
.lp-hero__grid { display:grid; grid-template-columns: 1.25fr .75fr; gap: clamp(32px,5vw,80px); align-items:center; }
.lp-hero h1 { font-size: clamp(30px,3.8vw,52px); margin-top: 22px; max-width: 20ch; }
.lp-hero__sub { color: var(--stone); margin-top: 22px; font-size: 17px; line-height: 1.65; max-width: 54ch; }
.lp-hero__actions { margin-top: 30px; display:flex; flex-wrap:wrap; gap: 12px; }
.lp-hero__note { margin-top: 16px; font-family: var(--fm); font-size: 11.5px; letter-spacing: .06em; color: var(--stone-2); }
.lp-hero__media { aspect-ratio: 4/5; overflow:hidden; background:#dadbd5; max-height: 520px; }
.lp-hero__media img { width:100%; height:100%; object-fit:cover; object-position: 50% 12%; }
.lp-h2 { font-size: clamp(27px,3.2vw,44px); margin-top: 20px; max-width: 22ch; }
.lp-sub { color: var(--stone); margin-top: 18px; font-size: 16px; line-height: 1.65; max-width: 60ch; }
.checks { list-style:none; padding:0; margin-top: 30px; display:grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.checks label { display:flex; gap: 14px; align-items:flex-start; padding: 18px 20px; background: var(--ivory); border:1px solid var(--line); cursor:pointer; font-size: 15.5px; line-height: 1.5; transition: border-color .4s var(--ease), background .4s var(--ease); }
.checks label:hover { border-color: #dbd6cc; }
.checks label:has(input:checked) { border-color: var(--ink); background: var(--paper); }
.checks input { margin-top: 4px; accent-color: var(--ink); width: 18px; height: 18px; flex: none; }
.checks__msg { margin-top: 18px; padding: 16px 20px; border-left: 2px solid #b58b45; background: var(--ivory); font-size: 15.5px; }
.checks__msg[hidden] { display: none; }
div.checks__msg { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; }
div.checks__msg p { margin: 0; flex: 1 1 320px; }
/* botão de WhatsApp no meio da página (depois da tabela e dos documentos) */
.lp-inline-cta { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.lp-inline-cta p { margin: 0; color: var(--stone); font-size: 16px; }
.lp-inline-cta--light p { color: rgba(255,255,255,.72); }
.lp-inline-cta--center { justify-content: center; }
.lei { display:grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-top: 32px; }
.lei__card { background: var(--paper); border:1px solid var(--line); padding: 28px; display:flex; flex-direction:column; }
.lei__card h3 { font-size: clamp(19px,1.6vw,23px); margin-top: 16px; }
.lei__card p { color: var(--stone); font-size: 15px; line-height: 1.65; margin-top: 12px; }
.lei__card a { color: var(--ink); border-bottom: 1px solid var(--line); }
.lei__card strong { color: var(--ink); font-weight: 400; }
.prec { margin-top: 20px; border:1px solid var(--line); background: var(--paper); padding: 0 24px; }
.prec summary { cursor:pointer; padding: 18px 0; font-size: 15px; color: var(--ink); list-style: none; display:flex; justify-content:space-between; align-items:center; }
.prec summary::after { content:"+"; font-size: 20px; color: var(--stone); }
.prec[open] summary::after { content:"−"; }
.prec ul { list-style:none; padding:0; border-top:1px solid var(--line); }
.prec li { padding: 14px 0; border-bottom:1px solid var(--line); font-size: 14.5px; line-height: 1.6; color: var(--stone); }
.prec li strong { color: var(--ink); font-weight: 400; }
.prec li a { color: var(--ink); border-bottom: 1px solid var(--line); }
.prec__note { font-family: var(--fm); font-size: 11px; letter-spacing: .06em; color: var(--stone-2); padding: 16px 0 20px; line-height: 1.6; }
.tool-frame { margin-top: 30px; border:1px solid var(--line); background: var(--ivory); }
.tool-frame iframe { display:block; width:100%; height: 1500px; border:0; }
.tool-frame__alt { margin-top: 12px; font-size: 14px; color: var(--stone); }
.tool-frame__alt a { color: var(--ink); border-bottom:1px solid var(--line); }
.quem__link { display:inline-block; margin: 20px 0 0 14px; font-size: 15px; color: var(--ink); border-bottom:1px solid var(--line); }
.lp-cta__box { text-align:center; padding: clamp(40px,6vw,72px) var(--gut); background: var(--paper); border:1px solid var(--line); border-top: 2px solid #b58b45; }
.lp-cta__box h2 { font-size: clamp(28px,3.4vw,46px); margin-top: 20px; }
.lp-cta__box p { color: var(--stone); margin: 18px auto 0; font-size: 16.5px; line-height: 1.65; max-width: 52ch; }
.lp-cta__box .btn { margin-top: 28px; }
.urgencia { margin-top: 22px; padding: 20px 24px; background: var(--paper); border:1px solid var(--line); border-left: 2px solid var(--ink); }
.urgencia p { margin-top: 10px; font-size: 15.5px; line-height: 1.6; color: var(--ink); }
.mapa { margin-top: 30px; overflow-x:auto; border:1px solid var(--line); background: var(--paper); }
.mapa table { width:100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.5; }
.mapa th { text-align:left; font-family: var(--fm); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--stone-2); padding: 14px 16px; border-bottom:1px solid var(--line); font-weight: 400; }
.mapa td { padding: 14px 16px; border-bottom:1px solid var(--line); vertical-align: top; color: var(--stone); }
.mapa td strong { color: var(--ink); font-weight: 400; }
.mapa__base { font-size: 13px; }
.mapa a { color: var(--ink); border-bottom: 1px solid var(--line); }
.docs { list-style:none; padding:0; margin-top: 26px; display:grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.docs li { padding: 16px 20px; background: var(--paper); border:1px solid var(--line); font-size: 15px; position: relative; padding-left: 40px; }
.docs li::before { content:"✓"; position:absolute; left: 18px; top: 15px; color: #b58b45; }
@media (max-width: 860px){
  .docs { grid-template-columns: 1fr; }
  .mapa th:nth-child(4), .mapa td:nth-child(4) { display: none; }
  .lp-hero__grid { grid-template-columns: 1fr; }
  /* celular: título e botões primeiro, foto depois (quem chega por anúncio vê a chamada sem rolar) */
  .lp-hero { padding-top: 96px; }
  .lp-hero h1 { margin-top: 14px; }
  .lp-hero__media { max-height: 320px; aspect-ratio: 4/4; order: 0; }
  .checks, .lei { grid-template-columns: 1fr; }
  .tool-frame iframe { height: 1750px; }
}

/* ---- Etapas estáticas (sem foto sincronizada) ---- */
.steps--static { max-width: 760px; }
.steps--static .step { min-height: 0; padding-block: 24px; }

/* ---- Sinais: botão da calculadora ---- */
.signs__cta { margin-top: 28px; }

/* ---- Botão flutuante WhatsApp ---- */
.fab-whatsapp { position: fixed; right: 20px; bottom: 20px; z-index: 90; display: inline-flex; align-items: center; gap: 10px; background: #25D366; color: #fff; padding: 14px 20px; border-radius: 999px; font-size: 15px; box-shadow: 0 10px 30px rgba(20,22,26,.18); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.fab-whatsapp:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(20,22,26,.24); }
.fab-whatsapp svg { width: 22px; height: 22px; fill: currentColor; }
@media (max-width: 640px){ .fab-whatsapp { padding: 14px; right: 16px; bottom: 16px; } .fab-whatsapp span { display: none; } }
body.menu-open .fab-whatsapp { display: none; }

@media (max-width: 900px){
  .bento { grid-template-columns: repeat(4,1fr); }
  .card--lg, .card--md, .card--full { grid-column: span 4; }
  .card--sm { grid-column: span 2; }
}
@media (max-width: 620px){
  .bento { grid-template-columns: 1fr; }
  .card--lg, .card--md, .card--sm, .card--full { grid-column: span 1; }
  .card { min-height: 0; }
  .card--full { flex-direction:column; align-items:flex-start; gap:0; }
  .card--full .card__idx { position:static; }
  .card--full p { margin-top:12px; }
  .card--full .card__link { margin-top:22px; }
  .areas__head { flex-direction:column; align-items:flex-start; }
}

/* =====================================================================
   SOBRE — galeria vertical guiada pelo scroll
   ===================================================================== */
.portrait-carousel { position:relative; overflow:clip; padding-block:clamp(72px,10vw,128px); }
.portrait-carousel__sticky { position:relative; }
.portrait-carousel__layout { min-height:min(78vh,800px); min-height:min(78svh,800px); display:grid; grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr); gap:clamp(36px,6vw,112px); align-items:center; }
.portrait-carousel__copy { position:relative; z-index:2; }
.about__body .eyebrow { margin-bottom: 24px; }
.portrait-carousel__copy .eyebrow { margin-bottom:24px; }
.portrait-carousel__copy h2 { font-size:clamp(27px,3.2vw,44px); max-width:15ch; }
.portrait-carousel__copy .lead { margin-top:26px; font-size:clamp(16px,1.3vw,19px); color:var(--ink); max-width:46ch; line-height:1.6; }
.portrait-carousel__copy p.small { margin-top:18px; color:var(--stone); font-size:15.5px; max-width:48ch; }
.about__values { margin-top: 34px; display:flex; flex-wrap:wrap; gap:10px; }
.about__values span {
  font-family:var(--fm); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--stone);
  border:1px solid var(--line); padding:9px 16px; border-radius:999px;
}
.portrait-carousel__viewport { height:min(78vh,800px); height:min(78svh,800px); overflow:hidden; display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(10px,1.4vw,20px); }
.portrait-carousel__column { display:flex; flex-direction:column; gap:clamp(10px,1.4vw,20px); will-change:transform; transform:translate3d(0,var(--gallery-y,0px),0); }
.portrait-carousel__column:nth-child(2) { padding-top:12vh; }
.portrait-carousel__column figure { flex:0 0 auto; height:clamp(300px,44vh,470px); overflow:hidden; background:#e8e4dc; }
.portrait-carousel__column img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.portrait-carousel__column figure:hover img { transform:scale(1.035); }
.portrait-carousel__column:nth-child(1) img { object-position:58% center; }
.portrait-carousel__column:nth-child(2) img { object-position:52% center; }
@media (max-width: 840px){
  .portrait-carousel { padding-block:88px 64px; }
  .portrait-carousel__layout { min-height:0; grid-template-columns:1fr; grid-template-rows:auto auto; gap:28px; }
  .portrait-carousel__copy h2 { max-width:22ch; }
  .portrait-carousel__copy .lead, .portrait-carousel__copy p.small { display:none; }
  .portrait-carousel__copy .eyebrow { margin-bottom:14px; }
  .portrait-carousel__viewport { height:min(58vh,560px); height:min(58svh,560px); }
  .portrait-carousel__column:nth-child(2) { padding-top:9vh; }
  .portrait-carousel__column figure { height:clamp(260px,42vh,430px); }
}
@media (max-width: 560px){
  .portrait-carousel { padding-block:82px 56px; }
  .portrait-carousel__layout { gap:20px; }
  .portrait-carousel__copy h2 { font-size:clamp(25px,8vw,34px); max-width:19ch; }
  .portrait-carousel__viewport { height:52vh; height:52svh; gap:8px; margin-inline:-2px; }
  .portrait-carousel__column { gap:8px; }
  .portrait-carousel__column:nth-child(2) { padding-top:7vh; }
  .portrait-carousel__column figure { height:32vh; min-height:190px; }
  .about__values { margin-top:18px; gap:6px; }
  .about__values span { font-size:9px; padding:7px 9px; letter-spacing:.06em; }
}
@media (prefers-reduced-motion: reduce){
  .portrait-carousel { padding-block:72px; }
  .portrait-carousel__sticky { position:static; }
  .portrait-carousel__layout { min-height:0; }
  .portrait-carousel__viewport { overflow:visible; mask-image:none; }
  .portrait-carousel__column { transform:none !important; }
}

/* =====================================================================
   DEPOIMENTOS — avaliações reais em marquee contínuo
   ===================================================================== */
.testimonials { overflow:hidden; border-top:1px solid var(--line); }
.testimonials__head { display:flex; justify-content:center; align-items:center; gap:40px; margin-bottom:clamp(40px,5vw,68px); text-align:center; }
.testimonials__head h2 { margin:20px auto 0; max-width:16ch; font-size:clamp(27px,3.2vw,44px); }
.testimonials__summary { flex:none; text-align:right; }
.testimonials__score { display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.testimonials__score strong { font-size:clamp(28px,3vw,42px); font-weight:400; letter-spacing:-.04em; }
.testimonials__stars, .testimonial-card__stars { color:#b58b45; letter-spacing:.12em; }
.testimonials__summary a { display:inline-block; margin-top:8px; color:var(--stone); font-size:14px; border-bottom:1px solid currentColor; }
.testimonials__marquee { width:100%; overflow:hidden; outline:none; }
.testimonials__track { display:flex; width:max-content; will-change:transform; animation:testimonials-marquee 58s linear infinite; }
.testimonials__group { display:flex; gap:16px; padding-right:16px; }
/* Depoimentos em prosa (OAB): só a citação e o primeiro nome. Sem estrelas, fotos ou selo. */
.testimonial-card { width:clamp(300px,31vw,430px); min-height:280px; flex:none; display:flex; flex-direction:column; justify-content:space-between; gap:28px; padding:clamp(24px,2.5vw,34px); background:var(--paper); border:1px solid var(--line); border-radius:0; }
.testimonial-card blockquote { margin:0; color:var(--ink); font-size:clamp(17px,1.4vw,20px); line-height:1.55; letter-spacing:-.015em; }
.testimonial-card__name { font-family:var(--fm); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); }
.testimonials__note { margin-top:28px; text-align:center; font-size:13px; color:var(--stone-2); }
.testimonials__marquee:hover .testimonials__track, .testimonials__marquee:focus-within .testimonials__track { animation-play-state:paused; }
@keyframes testimonials-marquee { to { transform:translate3d(-50%,0,0); } }
@media (max-width:700px){
  .testimonials__head { align-items:center; flex-direction:column; gap:24px; }
  .testimonials__summary { text-align:left; }
  .testimonials__score { justify-content:flex-start; }
  .testimonials__marquee { overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; }
  .testimonials__marquee::-webkit-scrollbar { display:none; }
  .testimonial-card { width:min(82vw,360px); min-height:320px; scroll-snap-align:start; }
}
@media (prefers-reduced-motion:reduce){
  .testimonials__marquee { overflow-x:auto; scrollbar-width:none; }
  .testimonials__track { animation:none; }
  .testimonials__group[aria-hidden="true"] { display:none; }
}

/* =====================================================================
   COMO FUNCIONA — timeline (sequência real)
   ===================================================================== */
.process__head { max-width: 640px; margin-bottom: clamp(44px,6vw,72px); }
.process__head h2 { font-size: clamp(28px,3.4vw,46px); margin-top:24px; }
.process__head p { color: rgba(255,255,255,.62); margin-top:18px; font-size:16px; max-width:48ch; }
.process__grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,72px); align-items:start; }
.steps { display:flex; flex-direction:column; }
.step {
  display:grid; grid-template-columns: auto 1fr; gap: 26px; align-items:start;
  min-height:clamp(178px,27vh,260px); padding-block:30px; border-top:1px solid var(--line-dk);
  align-content:center; transition:opacity .45s var(--ease), color .45s var(--ease);
}
.step:last-child { border-bottom:1px solid var(--line-dk); }
.step__n { font-family:var(--fm); font-size:13px; color: rgba(255,255,255,.5); letter-spacing:.1em; padding-top:4px; }
.step h3 { font-size: clamp(19px,1.6vw,24px); font-weight:400; }
.step p { color: rgba(255,255,255,.6); margin-top:10px; font-size:15px; max-width:40ch; }
.step:not(.active) { opacity:.36; }
.step.active .step__n { color:rgba(255,255,255,.82); }
.step.active p { color:rgba(255,255,255,.78); }
.process__media { position:sticky; top:clamp(88px,12vh,128px); overflow:hidden; aspect-ratio:4/5; max-height:min(68vh,680px); background:var(--graphite-2); }
.process__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%; opacity:0; transform:scale(1.035); transition:opacity .65s var(--ease), transform .8s var(--ease); }
.process__media img.active { opacity:1; transform:scale(1); }
@media (max-width: 840px){
  .process__grid { grid-template-columns:1fr; }
  .step { min-height:clamp(150px,23vh,220px); }
  .process__media { position:relative; top:auto; order:-1; aspect-ratio:3/4; max-height:70vh; }
}
@media (prefers-reduced-motion: reduce){
  .process__media img { transition:none; transform:none; }
}

/* =====================================================================
   SINAIS (falso coletivo) — grid enumerado
   ===================================================================== */
.signs__head { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom: clamp(40px,5vw,60px); }
.signs__head h2 { font-size: clamp(27px,3.2vw,44px); max-width: 18ch; }
.signs__head p { color:var(--stone); max-width:40ch; font-size:16px; }
.signs { display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border:1px solid var(--line); border-radius: var(--r-lg); overflow:hidden; }
.sign { background: var(--paper); padding: 34px 30px; transition: background .5s var(--ease); }
.sign:hover { background: var(--ivory); }
.sign__n { font-family:var(--fm); font-size:12px; letter-spacing:.12em; color:var(--stone-2); }
.sign p { margin-top: 16px; font-size: 15.5px; color:var(--ink); line-height:1.55; }
@media (max-width: 820px){ .signs { grid-template-columns: repeat(2,1fr); } .signs__head{ flex-direction:column; align-items:flex-start; } }
@media (max-width: 520px){ .signs { grid-template-columns: 1fr; } }

/* =====================================================================
   FAQ — accordion
   ===================================================================== */
.faq__grid { display:grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px,5vw,72px); align-items:start; }
.faq__aside h2 { font-size: clamp(27px,3.2vw,44px); margin-top:22px; max-width:12ch; }
.faq__aside p { color:var(--stone); margin-top:20px; font-size:16px; max-width:34ch; }
.faq__aside .btn { margin-top:30px; }
.faq__list { border-top:1px solid var(--line); }
.faq__item { border-bottom:1px solid var(--line); }
.faq__q {
  width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding: 26px 0; font-size: clamp(16px,1.4vw,19px); font-weight:400; color:var(--ink); letter-spacing:-.015em;
}
.faq__q .ic { position:relative; width:16px; height:16px; flex:none; }
.faq__q .ic::before, .faq__q .ic::after { content:""; position:absolute; background:var(--ink); transition: transform .5s var(--ease), opacity .4s; }
.faq__q .ic::before { top:7px; left:0; width:16px; height:1.6px; }
.faq__q .ic::after  { left:7px; top:0; width:1.6px; height:16px; }
.faq__item.open .ic::after { transform: scaleY(0); opacity:0; }
.faq__a { overflow:hidden; height:0; transition: height .55s var(--ease); }
.faq__a p { color:var(--stone); font-size: 15.5px; line-height:1.65; padding-bottom: 26px; max-width: 60ch; }
@media (max-width: 800px){ .faq__grid { grid-template-columns:1fr; gap:40px; } }

/* =====================================================================
   CTA + LOCALIZAÇÃO — banda grafite com foto de fundo
   ===================================================================== */
.final-overlay-stack { position:relative; isolation:isolate; }
/* A FAQ se mantém como camada de fundo enquanto a CTA entra por cima dela.
   O padding da seção continua sendo o definido por .section. */
.final-overlay-stack > #duvidas {
  position:sticky; top:0; z-index:0; min-height:100vh; min-height:100svh;
  /* Respiro externo: preserva integralmente o padding inferior original da FAQ. */
  margin-bottom:clamp(112px,15vh,184px);
}
.cta {
  --cta-radius:88px;
  position:relative; z-index:1; overflow:hidden; isolation:isolate;
  min-height:65vh; min-height:65svh;
  margin-top:clamp(-420px,-38vh,-260px);
  border-radius:var(--cta-radius) var(--cta-radius) 0 0;
  will-change:border-radius;
}
.cta__bg { position:absolute; inset:0; z-index:-2; }
.cta__bg img { width:100%; height:100%; object-fit:cover; object-position:center; }
.cta__grid { display:grid; grid-template-columns:minmax(0,540px); justify-content:end; gap:clamp(32px,4vw,56px); align-content:center; min-height:inherit; }
.cta__main, .cta__info { justify-self:end; width:100%; }
.cta__main .eyebrow { margin-bottom:24px; color:rgba(255,255,255,.7); }
.cta__main h2 { font-size: clamp(30px,4vw,58px); color:var(--ivory); max-width: 16ch; font-weight:400; letter-spacing:-.03em; }
.cta__main p { color:rgba(255,255,255,.8); margin-top:24px; font-size:17px; max-width:44ch; }
.cta__actions { margin-top:38px; display:flex; gap:14px; flex-wrap:wrap; }
.cta__info { display:flex; flex-direction:column; gap:26px; }
.info-block .l { font-family:var(--fm); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.info-block .v { color:var(--ivory); font-size:16px; margin-top:8px; line-height:1.5; }
.info-block a.v:hover { text-decoration:underline; }
/* CTA clara: foto de estúdio (fundo claro) à esquerda, fundindo-se ao fundo; texto escuro à direita. */
.cta--light { background: linear-gradient(180deg, #dadbd5 0%, #e6e7e1 60%, #e8e9e3 100%); }
.cta--light .cta__bg { right: 58%; }
.cta--light .cta__bg img { object-position: 85% 15%; -webkit-mask-image: linear-gradient(90deg, #000 55%, transparent 100%); mask-image: linear-gradient(90deg, #000 55%, transparent 100%); }
/* Duas colunas fixas: a esquerda é só da foto, a direita é só do texto, encostado na margem direita. */
.cta--light .cta__grid { grid-template-columns: minmax(0,1fr) minmax(0,440px); column-gap: clamp(40px,8vw,140px); justify-content: stretch; }
.cta--light .cta__main { grid-column: 2; justify-self: end; }
.cta--light .cta__main h2 { font-size: clamp(28px,3.4vw,48px); }
@media (min-width: 821px) and (max-width: 1100px){
  .cta--light .cta__bg { right: 62%; }
  .cta--light .cta__grid { grid-template-columns: minmax(0,1fr) minmax(0,360px); column-gap: 48px; }
  .cta--light .cta__main h2 { font-size: clamp(26px,3vw,34px); }
}
.cta--light .cta__main .eyebrow { color: var(--stone); }
.cta--light .cta__main h2 { color: var(--ink); }
.cta--light .cta__main p { color: #3a3d42; }
@media (max-width: 820px){
  .cta--light .cta__bg { position: relative; right: auto; inset: auto; height: 58vh; margin: 0 0 32px; }
  .cta--light .cta__bg img { -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 72%, transparent 100%); object-position: 50% 10%; }
  .cta--light .cta__grid { min-height: 0; }
}

@media (max-width: 820px){
  .final-overlay-stack > #duvidas { margin-bottom:clamp(72px,10vh,112px); }
  .cta { --cta-radius:56px; margin-top:clamp(-260px,-28vh,-160px); }
  .cta__grid { grid-template-columns:minmax(0,540px); justify-content:end; gap:44px; align-content:center; }
}
@media (prefers-reduced-motion: reduce){ .cta { --cta-radius:88px !important; } }

/* =====================================================================
   FOOTER
   ===================================================================== */
.footer { background:#17191D; color:var(--ivory); padding-block: clamp(56px,7vw,84px); }
.footer__top { display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; align-items:start; }
.footer__logo img { width:clamp(220px,18vw,290px); height:auto; margin-bottom:22px; }
.footer__top p { color: rgba(255,255,255,.55); font-size:15px; max-width:38ch; }
.footer__col h4 { font-family:var(--fm); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.45); font-weight:400; margin-bottom:18px; }
.footer__col a, .footer__col span { display:block; color:rgba(255,255,255,.78); font-size:15px; margin-bottom:12px; transition: color .3s var(--ease); transform:none !important; }
.footer__col a:hover { color:var(--ivory); }
.footer__social { display:flex; gap:12px; margin-top:6px; }
.footer__social a { width:40px; height:40px; border-radius:999px; box-shadow: inset 0 0 0 1px var(--line-dk); display:grid; place-items:center; line-height:0; transition: background .4s var(--ease), transform .4s var(--ease); margin:0; }
.footer__social a:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }
.footer__social svg { display:none; }
.footer__social a::before { content:""; display:block; width:19px; height:19px; background:center/contain no-repeat url("assets/in.svg"); filter:invert(1); }
.footer__social a:nth-child(2)::before { background-image:url("assets/Property 1=Bold.svg"); }
.footer__bottom { margin-top: clamp(44px,6vw,68px); padding-top:26px; border-top:1px solid var(--line-dk);
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer__bottom p { color: rgba(255,255,255,.4); font-size:13px; max-width: 62ch; }
.footer__credit { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.4); font-size:13px; }
.footer__credit img { width:auto; height:14px; filter:brightness(0) invert(1); opacity:.9; }
@media (max-width: 760px){ .footer__top { grid-template-columns:1fr; gap:40px; } }

/* =====================================================================
   Reveal animations (fade + blur)
   ===================================================================== */
.js .reveal { opacity:0; transform: translateY(28px); filter: blur(12px); transition: opacity 1.05s var(--ease), transform 1.05s var(--ease), filter 1.05s var(--ease); transition-delay: var(--d, 0s); }
.js .reveal.in { opacity:1; transform: none; filter: blur(0); }
.js .reveal-img > img { clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--ease); }
.js .reveal-img.in > img { clip-path: inset(0 0 0 0); }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-img, .reveal-img > img { opacity:1 !important; transform:none !important; filter:none !important; clip-path:none !important; transition:none !important; }
}

@media (max-width: 760px){ .hide-mobile { display:none !important; } }


/* Performance, accessibility and interaction hardening */
.skip-link { position:fixed; z-index:1000; top:12px; left:12px; padding:12px 18px; background:var(--paper); color:var(--ink); border-radius:999px; transform:translateY(-180%); transition:transform .25s var(--ease); }
.skip-link:focus { transform:translateY(0); }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.nav__burger:focus-visible, .footer__social a:focus-visible { border-radius:999px; }
img { height:auto; }
.manifesto__media img, .portrait-carousel__column img, .process__media img, .cta__bg img { height:100%; }
/* Reserva vertical para o deslocamento do parallax sem revelar o fundo da seção. */
.hero__bg img { height:calc(100% + 80px); min-height:calc(100% + 80px); }
@media (min-width: 841px) {
  .testimonials, .signs, .footer { content-visibility:auto; contain-intrinsic-size:auto 760px; }
}
@media (hover:none) {
  .btn, .card, .footer__social a { will-change:auto; }
}

/* ===== botões em fundo grafite ===== */
.bg-graphite .btn--primary { background: var(--ivory); color: var(--ink); }
.bg-graphite .btn--primary:hover { background: #fff; }
.bg-graphite .btn--ghost { color: var(--ivory); box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.bg-graphite .btn--ghost:hover { box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); }
.manifesto__cta { margin-top: 30px; }
.sobre-home__actions { margin-top: 26px; display:flex; flex-wrap:wrap; gap: 12px; }
#processo .lp-inline-cta { margin-top: 36px; }

/* ===== área principal: glosas e faturamento (home) ===== */
.destaque__grid { display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(36px,6vw,96px); align-items: start; }
.destaque__copy h2 { color: var(--ivory); font-size: clamp(30px,3.6vw,50px); margin-top: 18px; max-width: 16ch; }
.destaque__copy > p { margin-top: 24px; color: rgba(255,255,255,.72); font-size: 16.5px; line-height: 1.7; max-width: 56ch; }
.destaque__actions { margin-top: 32px; display:flex; flex-wrap:wrap; gap: 12px; }
.destaque__lista { list-style:none; margin:0; padding:0; border-top: 1px solid rgba(255,255,255,.14); }
.destaque__lista li { display:grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.destaque__lista h3 { color: var(--ivory); font-size: 19px; font-weight: 400; }
.destaque__lista p { margin-top: 8px; color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.6; }
.destaque__lista .step__n { color: #D4B97A; }
@media (max-width: 860px){ .destaque__grid { grid-template-columns: 1fr; } }

/* cartões de escolha (Pacientes): mesma altura e chamada visível */
.chooser { align-items: stretch; }
.chooser__opt { height: 100%; border-color: #b58b45; cursor: pointer; }
.chooser__go { margin-top: auto; padding-top: 14px; font-size: 14.5px; color: var(--ink); display:inline-flex; align-items:center; gap: 8px; }
.chooser__go::after { content: "→"; transition: transform .4s var(--ease); }
.chooser__opt:hover .chooser__go::after { transform: translateX(4px); }
.chooser__opt.is-active .chooser__go { color: var(--ivory); }
@media (max-width: 640px){ .chooser { grid-template-columns: 1fr; } }
