/* ── Landing pages modulares ─────────────────────────────────────────── */
body{padding-top:0}
.hero-p{position:relative;display:flex;align-items:flex-end;min-height:clamp(820px,94svh,980px);overflow:hidden;background:var(--plum-deep)}
.hero-p-img{position:absolute;inset:80px 0 0;width:100%;height:calc(100% - 80px);object-fit:cover;object-position:center top;filter:saturate(108%) brightness(.62)}
.hero-p-veil{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(44,29,73,.30) 0%,rgba(44,29,73,.36) 46%,rgba(36,23,61,.88) 100%),
  radial-gradient(110% 82% at 12% 100%,rgba(245,213,202,.18) 0%,transparent 62%)}
.hero-p-in{position:relative;z-index:2;width:100%;max-width:1440px;margin:0 auto;
  padding:clamp(150px,20vh,230px) clamp(20px,4vw,40px) clamp(46px,6vh,74px);
  display:flex;flex-direction:column;gap:26px}
.hero-p .eyebrow{color:var(--gold-lt);margin:0}
.hero-p .eyebrow::before{background:var(--gold-lt)}
.hero-p-h1{font-family:var(--font-display);font-weight:300;margin:0;color:#FFF9F7;
  font-size:clamp(38px,5.8vw,80px);line-height:1.02;letter-spacing:-.03em;max-width:19ch;
  text-shadow:0 2px 40px rgba(12,6,22,.6)}
.hero-p-h1 em{font-style:italic;font-weight:400;color:var(--gold-lt)}
.hero-p-sub{font-size:clamp(15.5px,1.2vw,19px);line-height:1.68;font-weight:300;color:rgba(255,249,247,.92);margin:0;max-width:60ch}
.hero-p-facts{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(245,213,202,.24);margin-top:14px}
.hero-p-facts>div{flex:1 1 190px;padding:18px 22px 4px 0;display:flex;flex-direction:column;gap:7px}

/* Hero editorial das páginas internas: fundo da marca e retrato real flutuante. */
.hero-p:not(.hero-p--home-split){
  min-height:clamp(700px,82svh,860px);
  isolation:isolate;
  background:
    radial-gradient(62% 92% at 88% 44%,rgba(131,109,174,.58),transparent 70%),
    radial-gradient(44% 62% at 12% 92%,rgba(245,213,202,.16),transparent 72%),
    linear-gradient(128deg,#24163e 0%,#2c1d49 56%,#49346f 100%);
}
.hero-p:not(.hero-p--home-split)::before{
  position:absolute;inset:80px 0 0;z-index:0;pointer-events:none;content:"";
  background-image:linear-gradient(rgba(245,213,202,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(245,213,202,.055) 1px,transparent 1px);
  background-size:84px 84px;
  mask-image:linear-gradient(90deg,transparent,black 52%,black);
}
.hero-p:not(.hero-p--home-split) .hero-p-img{
  inset:clamp(118px,14vh,152px) max(30px,calc((100vw - 1360px)/2)) auto auto;
  width:clamp(330px,31vw,500px);height:clamp(470px,62vh,650px);
  border:1px solid rgba(245,213,202,.34);border-radius:48% 52% 43% 57% / 34% 36% 64% 66%;
  object-fit:cover;object-position:center 18%;filter:saturate(.94) contrast(1.02);
  box-shadow:0 34px 90px rgba(10,5,22,.4);z-index:1;
}
.hero-p:not(.hero-p--home-split) .hero-p-img::after{content:""}
.hero-p:not(.hero-p--home-split) .hero-p-veil{
  z-index:1;background:linear-gradient(90deg,rgba(36,22,62,.22) 0%,rgba(36,22,62,.08) 56%,transparent 76%);
}
.hero-p:not(.hero-p--home-split) .hero-p-in{max-width:1440px;padding-right:min(43vw,620px);justify-content:center}
.hero-p:not(.hero-p--home-split) .hero-p-h1{max-width:14.5ch;font-size:clamp(44px,5vw,72px);text-shadow:none}
.hero-p:not(.hero-p--home-split) .hero-p-sub{max-width:48ch}
.hero-p:not(.hero-p--home-split) .hero-p-facts{max-width:720px}
/* Sem isso, o rótulo herdava --muted (roxo escuro pra texto sobre fundo
   claro) e o valor herdava a cor padrão do body (--ink, também escura) —
   os dois quase invisíveis sobre o fundo escuro do herói. */
.hero-fact-label{color:var(--dmuted)}
.hero-fact-value{display:block;color:var(--dtext);font-family:var(--font-display);font-weight:300;font-size:clamp(15px,1.2vw,18px);line-height:1.3}
@media (max-width:760px){
  /* max(780px,94svh) prendia o herói a quase a tela inteira (94% da altura
     visível, no mínimo 780px) em toda página interna, não importa se o
     texto era curto — sobrava rolagem vazia antes do resto do conteúdo
     começar, no mesmo padrão já corrigido no herói da home. Um mínimo bem
     menor deixa a altura seguir o conteúdo de cada página; quando o título
     é mais longo (como neste caso), o próprio conteúdo já estica a caixa
     além disso — o mínimo só evita um herói baixo demais em páginas com
     texto curto. */
  .hero-p{min-height:min(74svh,640px)}
  .hero-p-img{inset:70px 0 0;height:calc(100% - 70px)}
  /* Sem isso, o herói herdava o padding e o gap do desktop (pensados pra
     compensar um header bem mais alto e uma leitura mais espaçada) e
     transbordava a tela — dava pra ver o conteúdo inteiro só rolando
     dentro do próprio herói, antes mesmo de chegar ao resto da página. */
  .hero-p-in{padding:96px 20px 32px;gap:16px}
  .hero-p-facts{margin-top:4px}
  .hero-p-facts>div{flex:1 1 42%;padding:14px 14px 4px 0}
  /* Os banners (foto com painel roxo à esquerda + cenário à direita) recortam
     de forma mais fechada no mobile — sem reforçar o escurecimento do lado
     do texto, o recorte estreito acaba puxando parte do cenário pra debaixo
     do título/texto e derruba a legibilidade. */
  .hero-p-veil{background:
    linear-gradient(100deg,rgba(30,18,52,.6) 0%,rgba(30,18,52,.32) 46%,transparent 72%),
    linear-gradient(180deg,rgba(44,29,73,.30) 0%,rgba(44,29,73,.36) 46%,rgba(36,23,61,.88) 100%),
    radial-gradient(110% 82% at 12% 100%,rgba(245,213,202,.18) 0%,transparent 62%)}
  .hero-p:not(.hero-p--home-split){min-height:auto;padding-top:70px;display:block}
  .hero-p:not(.hero-p--home-split)::before{inset:70px 0 0;background-size:52px 52px}
  .hero-p:not(.hero-p--home-split) .hero-p-img{
    position:relative;inset:auto;width:calc(100% - 40px);height:clamp(260px,74vw,390px);margin:22px 20px 0;
    border-radius:42% 58% 48% 52% / 36% 42% 58% 64%;object-position:center 18%;
  }
  .hero-p:not(.hero-p--home-split) .hero-p-veil{background:linear-gradient(180deg,transparent 0%,rgba(44,29,73,.18) 44%,rgba(44,29,73,.55) 100%)}
  .hero-p:not(.hero-p--home-split) .hero-p-in{padding:30px 20px 38px;gap:16px}
  .hero-p:not(.hero-p--home-split) .hero-p-h1{max-width:18ch;font-size:clamp(36px,10.5vw,52px)}
  .hero-p:not(.hero-p--home-split) .hero-p-facts{display:grid;grid-template-columns:1fr 1fr;width:100%}
}

.crumb{padding:14px clamp(20px,4vw,40px);border-bottom:1px solid var(--line)}
.crumb a:hover{color:var(--gold-dk)}

.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}
.card-p{display:flex;flex-direction:column;gap:16px;padding:clamp(22px,2vw,30px);transition:background .4s ease}
.card-p:hover{background:var(--gold-mist)}
/* As fotos das categorias são bem panorâmicas de origem (~2:1: a pessoa
   enquadrada à direita, parede/fundo desfocado à esquerda) — um recorte
   16:9 cortava lateralmente perto de onde a pessoa está. Casando a caixa
   com a proporção real da foto, o corte quase desaparece (a maioria fica
   exatamente 2:1) e o pouco que resta é vertical, então favorece a parte
   de cima do quadro em vez de cortar rosto/mãos nas laterais. */
.card-p-img{width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center 42%;display:block;filter:saturate(96%)}
.card-p-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:6px}

.tec{border-top:1px solid var(--line)}
.tec>details{border-bottom:1px solid var(--line)}
.tec>details>summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;align-items:baseline;gap:clamp(14px,2vw,28px);transition:color .3s ease}
.tec>details>summary::-webkit-details-marker{display:none}
.tec>details>summary:hover{color:var(--gold-dk)}
.tec-sign{margin-left:auto;flex:0 0 auto;width:24px;height:24px;position:relative}
.tec-sign::before,.tec-sign::after{content:"";position:absolute;left:50%;top:50%;background:var(--gold);transition:transform .35s ease}
.tec-sign::before{width:15px;height:1px;transform:translate(-50%,-50%)}
.tec-sign::after{width:1px;height:15px;transform:translate(-50%,-50%)}
.tec>details[open] .tec-sign::after{transform:translate(-50%,-50%) scaleY(0)}
.tec-body{padding:0 0 30px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,56px)}
@media (max-width:860px){.tec-body{grid-template-columns:1fr}}

.steps{display:grid;gap:1px;background:var(--line)}
.step{background:var(--bg-2);padding:clamp(22px,2.2vw,34px);display:flex;flex-direction:column;gap:14px;position:relative}
.tint .step{background:var(--bg-3)}
.dark .step,.dark-2 .step{background:transparent}
.step-n{font-family:var(--font-display);font-weight:200;font-size:clamp(30px,3.2vw,46px);line-height:1;letter-spacing:-.03em;color:var(--gold)}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--line)}
.split>div{background:var(--bg-2);padding:clamp(24px,2.4vw,38px);display:flex;flex-direction:column;gap:16px}
.tint .split>div{background:var(--bg-3)}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.intro-features{margin-top:6px}
.intro-feature{padding:26px 24px 30px}
.intro-feature-copy{display:flex;flex-direction:column;gap:6px}
@media(max-width:560px){
  .intro-feature{flex-direction:row;align-items:center;gap:16px;padding:16px 4px}
  .intro-feature-copy{gap:3px}
}

.ulist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.ulist>li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.65;font-weight:300}
.ulist>li>span:first-child{flex:0 0 auto;margin-top:2px;color:var(--gold);display:inline-flex}
.ulist>li>span:first-child svg{width:16px;height:16px}
.ulist-no>li>span:first-child{color:var(--violet)}

/* Ficha de contato do CTA de agendamento é sempre numa seção escura (.dark),
   mas .mono e .small (rótulo/valor de cada linha) usam --muted, pensado
   pra texto sobre fundo claro — quase ilegível aqui. */
.cta-contact-rows .mono{color:var(--dmuted)}
.cta-contact-value{color:var(--dtext)}

/* .tag é inline-flex mas não tem margem própria — sem gap no container,
   várias tags em sequência ficavam coladas umas nas outras. */
.technique-tags{display:flex;flex-wrap:wrap;gap:7px}

.tline{display:grid;gap:1px;background:var(--line);grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.tline>div{background:var(--bg-2);padding:clamp(20px,2vw,28px);display:flex;flex-direction:column;gap:11px}
.tint .tline>div{background:var(--bg-3)}
.tline-bar{height:2px;background:var(--gold);width:100%;opacity:.35}

.faq{border-top:1px solid var(--line)}
.faq>details{border-bottom:1px solid var(--line)}
.faq>details>summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;gap:18px;align-items:flex-start;font-family:var(--font-display);font-weight:400;font-size:clamp(17px,1.5vw,21px);line-height:1.3;transition:color .3s ease}
.faq>details>summary::-webkit-details-marker{display:none}
.faq>details>summary:hover{color:var(--gold-dk)}
.faq-a{padding:0 0 24px;max-width:78ch}

.pquote{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;padding:clamp(22px,2.2vw,32px)}

.doc{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,4vw,72px);align-items:center}
@media (max-width:900px){.doc{grid-template-columns:1fr}}
/* O aspect-ratio antes vivia só na <img>: dentro de uma coluna fr de grid,
   isso deixava a altura de referência ambígua e o retrato acabava esticando
   bem além do 4/5 pretendido (chegava a 1000px numa coluna de ~550px),
   enquanto o texto — encurtado — flutuava minúsculo e centralizado ao lado
   de uma imagem enorme. Fixando o aspect-ratio e um teto de altura no
   <figure> (elemento de bloco, não substituído) a altura fica previsível;
   a <img> só precisa preencher esse quadro. */
.doc-portrait{aspect-ratio:4/5;max-height:480px;width:100%}
.doc-img{width:100%;height:100%;object-fit:cover;display:block}
.doc-lower{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(28px,4.5vw,80px);margin-top:clamp(48px,6vw,88px);align-items:start}
.doc-video{position:relative;aspect-ratio:16/9;margin:0;background:var(--plum-deep);overflow:hidden}
.doc-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Vídeo (quando presente) troca de lugar com o retrato: fica em cima, ao
   lado do texto curto — e o retrato desce para o rodapé, ao lado das
   credenciais, bem mais alto e sem recorte (object-fit:contain). */
.doc-video--top{width:100%;max-height:480px}
.doc-portrait--tall{aspect-ratio:auto;max-height:820px}
.doc-portrait--tall .doc-img{height:100%;object-fit:contain}
/* Ficha (credenciais) e trajetória são o mesmo tipo de lista, empilhadas na
   mesma coluna — ambas já envolvem as linhas num <div class="rows">, que
   por si só já desenha a borda superior (regra geral de .rows). O
   border-top que existia aqui em .doc-trajectory duplicava essa linha bem
   em cima do próprio "Trajetória", ficando com duas bordas (uma antes do
   título, outra depois) onde a ficha ao lado tem só uma — a mesma inconsistência
   se repetia com o padding/gap da seção. Removido: sem ele, os dois blocos
   usam exatamente o mesmo padrão (eyebrow + .rows com borda), e o gap de
   .doc-profile-details já cuida sozinho do respiro entre os dois. */
/* .doc-lower .doc-trajectory.stack: ".page-home .stack" (engine-refactor.css,
   carregado depois deste arquivo) dá gap:28px no mobile com a MESMA
   especificidade de um seletor de duas classes — empatada, quem carrega
   depois ganha, não esta regra. Um ancestral a mais (.doc-lower) supera
   essa especificidade e garante que o gap:0 realmente valha, em vez do
   respiro extra de 28px que sobrava entre "Trajetória" e a lista (a ficha
   ao lado não tem esse extra: ela não é flex, só o margin-bottom do
   eyebrow separa). */
.doc-lower .doc-trajectory.stack{gap:0}
.doc-trajectory-row{display:grid;grid-template-columns:minmax(72px,100px) 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.doc-trajectory-row>span:last-child{display:flex;flex-direction:column;gap:5px}
.doc-trajectory-row strong{font-weight:400}
@media(max-width:860px){.doc-lower{grid-template-columns:1fr}}

/* explorador de procedimentos: categorias à esquerda, resumo interativo à direita */
.procedure-explorer-wrap{gap:clamp(32px,4vw,58px)}
.procedure-explorer{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.38fr);gap:1px;background:var(--line);align-items:stretch}
.procedure-macro-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);align-content:start}
.procedure-macro{position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:320px;padding:0;border:0;border-top:2px solid transparent;background:var(--bg-2);color:var(--ink);text-align:left;cursor:pointer;font:inherit;overflow:hidden;transition:background .3s ease,border-color .3s ease,transform .3s ease}
.procedure-macro:hover{background:var(--gold-mist)}
.procedure-macro-media{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--violet-mist)}
.procedure-macro-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(44,29,73,.3) 100%);pointer-events:none}
.procedure-macro-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(88%);transition:transform .55s ease,filter .35s ease}
.procedure-macro:hover .procedure-macro-media img{transform:scale(1.04);filter:saturate(100%)}
.procedure-macro.is-active{background:var(--plum-deep);color:var(--dtext);border-top-color:var(--gold);transform:translateY(-2px);z-index:1}
.procedure-macro.is-active .procedure-macro-media img{filter:saturate(78%) brightness(.72)}
.procedure-macro-content{position:relative;display:flex;flex:1;flex-direction:column;align-items:stretch;gap:11px;padding:clamp(18px,2vw,27px);background:var(--bg-2)}
.procedure-macro.is-active .procedure-macro-content{background:var(--plum-deep)}
.procedure-macro:focus-visible,.procedure-choice:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;z-index:3}
.procedure-macro-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}
.procedure-macro-index{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--gold-ink)}
.procedure-macro.is-active .procedure-macro-index{color:var(--gold-lt)}
.procedure-macro-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right}
.procedure-macro.is-active .procedure-macro-count{color:var(--violet-soft)}
.procedure-macro-title{font-family:var(--font-display);font-size:clamp(21px,2.2vw,31px);font-weight:300;line-height:1.05;letter-spacing:-.02em}
.procedure-macro-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink)}
.procedure-macro.is-active .procedure-macro-label{color:var(--gold-lt)}
.procedure-macro-text{font-size:13px;line-height:1.6;font-weight:300;color:var(--muted);margin-top:auto}
.procedure-macro.is-active .procedure-macro-text{color:rgba(255,249,247,.74)}
.procedure-macro-arrow{position:absolute;right:22px;bottom:18px;font-size:20px;color:var(--gold-ink);opacity:.8;transition:transform .3s ease}
.procedure-macro:hover .procedure-macro-arrow,.procedure-macro.is-active .procedure-macro-arrow{transform:translate(3px,-3px)}
.procedure-macro.is-active .procedure-macro-arrow{color:var(--gold-lt)}
.procedure-detail-shell{min-width:0;background:var(--bg-2)}
.procedure-panel{padding:clamp(24px,3.4vw,52px);min-height:100%;background:var(--bg-2)}
.procedure-panel[hidden],.procedure-detail[hidden]{display:none}
.procedure-panel-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.7fr);gap:26px;align-items:end;padding-bottom:clamp(22px,2.5vw,34px);border-bottom:1px solid var(--line)}
.procedure-panel-head .mono-g{display:block;margin-bottom:12px}
.procedure-panel-head h3{margin:0;max-width:16ch}
.procedure-panel-description{align-self:end}
.procedure-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(22px,2.5vw,34px);background:var(--line);border-top:1px solid var(--line)}
.procedure-choice{display:flex;align-items:flex-start;gap:13px;min-height:88px;padding:17px 16px;border:0;border-top:2px solid transparent;background:var(--bg-3);color:var(--ink);text-align:left;cursor:pointer;font:inherit;transition:background .25s ease,border-color .25s ease}
.procedure-choice:hover{background:var(--gold-mist)}
.procedure-choice.is-active{background:var(--gold-mist);border-top-color:var(--gold)}
.procedure-choice-index{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--gold-ink);padding-top:2px}
.procedure-choice-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.procedure-choice-copy strong{font-family:var(--font-display);font-weight:400;font-size:17px;line-height:1.15}
.procedure-choice-copy small{font-size:12px;line-height:1.45;color:var(--muted)}
.procedure-choice-arrow{margin-left:auto;color:var(--gold-ink);font-size:16px;line-height:1}
.procedure-detail-panels{margin-top:clamp(22px,2.7vw,38px)}
.procedure-detail{padding:clamp(22px,2.8vw,38px);border:1px solid var(--line);background:var(--paper)}
.procedure-detail-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:clamp(22px,2.8vw,38px)}
.procedure-detail-heading .mono-g{display:block;margin-bottom:11px}
.procedure-detail-heading h4{margin:0 0 10px;max-width:22ch}
.procedure-detail-summary{max-width:48ch}
.procedure-detail-cta{white-space:nowrap;flex:0 0 auto}
.procedure-detail-rows{margin:0}
.procedure-detail-rows .row{display:grid;grid-template-columns:minmax(110px,.35fr) minmax(0,1fr);gap:18px}
.procedure-explorer-note{max-width:88ch}
@media(max-width:1080px){.procedure-explorer{grid-template-columns:1fr}.procedure-macro-grid{grid-template-columns:1fr}.procedure-macro{min-height:300px}}
@media(max-width:760px){.procedure-macro-grid,.procedure-choice-list{grid-template-columns:1fr}.procedure-macro{min-height:0}.procedure-panel-head,.procedure-detail-heading{grid-template-columns:1fr;display:grid}.procedure-detail-cta{justify-self:start}.procedure-detail-rows .row{grid-template-columns:1fr;gap:7px}}

/* recuperação interativa — áreas e fases do protótipo, com conteúdo editorial */
.recovery-explorer-wrap{gap:clamp(28px,3.6vw,52px)}
.recovery-explorer{display:grid;grid-template-columns:minmax(180px,.28fr) minmax(0,1fr);gap:1px;background:var(--line)}
.recovery-area-tabs{display:flex;flex-direction:column;gap:1px;background:var(--line);align-self:start}
.recovery-area-tab{display:flex;align-items:center;gap:12px;min-height:72px;padding:16px 18px;border:0;border-left:2px solid transparent;background:var(--bg-2);color:var(--ink);text-align:left;cursor:pointer;font:inherit;transition:background .25s ease,border-color .25s ease}
.recovery-area-tab:hover{background:var(--gold-mist)}
.recovery-area-tab.is-active{background:var(--plum-deep);color:var(--dtext);border-left-color:var(--gold)}
.recovery-area-tab strong{font-family:var(--font-display);font-size:20px;font-weight:400;line-height:1}
.recovery-area-tab>span:last-child{margin-left:auto;font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.recovery-area-tab.is-active>span:last-child{color:var(--violet-soft)}
.recovery-area-index{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--gold-ink)}
.recovery-area-tab.is-active .recovery-area-index{color:var(--gold-lt)}
.recovery-area-tab:focus-visible,.recovery-phase-tab:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;z-index:2}
.recovery-area-panels{min-width:0;background:var(--bg-2)}
.recovery-area-panel{padding:clamp(24px,3vw,48px);background:var(--bg-2)}
.recovery-area-panel[hidden],.recovery-phase-panel[hidden]{display:none}
.recovery-area-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);gap:24px;align-items:end;padding-bottom:clamp(22px,2.5vw,34px);border-bottom:1px solid var(--line)}
.recovery-area-heading .mono-g{display:block;margin-bottom:12px}
.recovery-area-heading h3{margin:0;max-width:18ch}
.recovery-phase-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-top:clamp(22px,2.5vw,34px);background:var(--line);border-top:1px solid var(--line)}
.recovery-phase-tab{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:100px;padding:18px 14px;border:0;border-top:2px solid transparent;background:var(--bg-3);color:var(--ink);text-align:left;cursor:pointer;font:400 12px/1.35 var(--font-body);transition:background .25s ease,border-color .25s ease}
.recovery-phase-tab:hover{background:var(--gold-mist)}
.recovery-phase-tab.is-active{background:var(--bg-2);border-top-color:var(--gold)}
.recovery-phase-number{font-family:var(--font-display);font-size:30px;font-weight:200;line-height:1;color:var(--gold-ink)}
.recovery-phase-panels{margin-top:clamp(22px,2.5vw,36px)}
.recovery-phase-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,64px);align-items:start}
.recovery-phase-copy{display:flex;flex-direction:column;gap:14px}.recovery-phase-copy h4{margin:0;max-width:12ch}.recovery-phase-copy .body{max-width:44ch}
.recovery-phase-big{font-family:var(--font-display);font-size:clamp(72px,8vw,122px);font-weight:200;line-height:.78;letter-spacing:-.05em;color:var(--line-strong)}
.recovery-phase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.recovery-phase-card{padding:24px 22px 28px;background:var(--bg-2);border-top:2px solid var(--gold)}
.recovery-phase-card--restricted{background:var(--plum-deep);color:var(--dtext);border-top-color:var(--violet-lt)}
.recovery-phase-card p{margin:0;font-size:14px;line-height:1.65;font-weight:300}.recovery-phase-card p+p{margin-top:13px}.recovery-phase-card .mono,.recovery-phase-card .mono-g{display:flex;align-items:center;gap:9px}.recovery-phase-card svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.recovery-explorer-note{max-width:88ch}.recovery-explorer-ctas{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:980px){.recovery-explorer{grid-template-columns:1fr}.recovery-area-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.recovery-area-tab{border-left:0;border-top:2px solid transparent}.recovery-area-tab.is-active{border-top-color:var(--gold)}.recovery-area-heading{grid-template-columns:1fr}.recovery-phase-panel{grid-template-columns:1fr}}
@media(max-width:680px){.recovery-area-tabs,.recovery-phase-tabs,.recovery-phase-grid{grid-template-columns:1fr}.recovery-area-tab{min-height:60px}.recovery-phase-tab{min-height:74px;flex-direction:row;align-items:center}.recovery-phase-number{font-size:26px}.recovery-phase-card{padding:22px 18px 24px}}

/* navegação por objetivo — composição do protótipo antigo */
.objective-explorer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4.5vw,80px);align-items:start}
.objective-explorer-copy{display:flex;flex-direction:column;gap:clamp(28px,3.5vw,44px)}
.objective-explorer-copy .eyebrow{margin:0}
.objective-explorer-title{max-width:14ch}
.objective-tabs{display:flex;flex-wrap:wrap;gap:8px}
.objective-tab{min-height:44px;padding:11px 17px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-family:var(--font-body);font-size:12.5px;font-weight:300;line-height:1.25;text-align:left;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.objective-tab:hover{border-color:var(--gold);background:var(--gold-mist);color:var(--ink);transform:translateY(-1px)}
.objective-tab.is-active{border-color:var(--gold);background:var(--gold);color:var(--plum-deep)}
.objective-tab:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.objective-explorer-panels{min-width:0}
.objective-panel{display:flex;flex-direction:column;gap:24px;align-self:start;padding:clamp(28px,3vw,44px);border-top:2px solid var(--gold);background:var(--bg-3)}
.objective-panel[hidden]{display:none}
.objective-panel-lead{margin:0;font-family:var(--font-display);font-size:clamp(20px,2vw,27px);font-weight:300;line-height:1.4}
.objective-links{border-color:var(--line-strong)}
.objective-link-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:16px 0;color:var(--ink);text-decoration:none;transition:color .25s ease}
.objective-link-row:hover{color:var(--gold-dk)}
.objective-link-row>span:last-child{text-align:right}
.objective-link-row .mono{white-space:nowrap}
.objective-ctas{display:flex;flex-wrap:wrap;gap:10px}
.objective-ctas .b{width:auto}
@media(max-width:900px){.objective-explorer{grid-template-columns:1fr}.objective-explorer-title{max-width:18ch}}
@media(max-width:560px){.objective-panel{padding:26px 20px}.objective-link-row{flex-direction:column;align-items:flex-start;gap:5px}.objective-link-row>span:last-child{text-align:left}.objective-ctas{flex-direction:column}.objective-ctas .b{width:100%}}

/* assistente digital — interface informativa do protótipo antigo */
.assistant-section{position:relative;overflow:hidden;background:linear-gradient(138deg,var(--gold-mist) 0%,var(--bg-2) 42%,rgba(131,109,174,.2) 100%)}
.assistant-section:before{position:absolute;inset:0;pointer-events:none;background:radial-gradient(58% 82% at 8% 18%,rgba(245,213,202,.2),transparent 70%);content:""}
.assistant-section>.wrap{position:relative}
.assistant-layout{align-items:start}
.assistant-copy{gap:22px;max-width:52ch}
.assistant-copy .eyebrow{margin:0 0 26px}
.assistant-title{max-width:16ch}
.assistant-capabilities{margin-top:2px}
.assistant-capability{display:flex;align-items:flex-start;justify-content:flex-start;gap:14px;padding:13px 0;font-size:14.5px;line-height:1.6}
.assistant-capability .mono-g{padding-top:3px;flex:0 0 auto}
.assistant-panel{display:flex;flex-direction:column;min-height:540px;min-width:0}
.assistant-panel-head{display:flex;align-items:center;gap:11px;padding:20px 24px;border-bottom:1px solid var(--dline)}
.assistant-status{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--gold)}
.assistant-reset{margin-left:auto;padding:6px 0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--dmuted);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;transition:color .25s ease,border-color .25s ease}
.assistant-reset:hover,.assistant-reset:focus-visible{border-color:var(--gold);color:var(--gold-lt)}
.assistant-messages{flex:1 1 auto;display:flex;flex-direction:column;gap:14px;max-height:420px;min-height:260px;overflow-y:auto;padding:24px}
.assistant-message{max-width:88%;padding:13px 16px;border:1px solid var(--dline);font-size:14.5px;line-height:1.62;font-weight:300;white-space:pre-wrap}
.assistant-message--bot{align-self:flex-start;background:transparent;color:var(--dtext)}
.assistant-message--user{align-self:flex-end;border-color:rgba(245,213,202,.5);background:rgba(245,213,202,.14);color:var(--dtext)}
.assistant-message-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid var(--dline)}
.assistant-message-action{display:inline-flex;align-items:center;min-height:36px;padding:8px 11px;border:1px solid rgba(245,213,202,.48);color:var(--gold-lt);font-family:var(--font-mono);font-size:9px;letter-spacing:.11em;line-height:1.35;text-transform:uppercase;transition:background .25s ease,color .25s ease}
.assistant-message-action:hover,.assistant-message-action:focus-visible{background:var(--gold);color:var(--plum-deep)}
.assistant-typing{align-self:flex-start;color:var(--dmuted);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}
.assistant-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 24px 16px}
.assistant-suggestion{padding:9px 13px;border:1px solid var(--dline);background:transparent;color:var(--dmuted);font-size:12px;font-weight:300;line-height:1.35;text-align:left;cursor:pointer;transition:background .25s ease,border-color .25s ease,color .25s ease}
.assistant-suggestion:hover,.assistant-suggestion:focus-visible{border-color:var(--gold);background:rgba(245,213,202,.08);color:var(--dtext)}
.assistant-form{display:flex;border-top:1px solid var(--dline)}
.assistant-form input{flex:1 1 auto;min-width:0;min-height:60px;border:0;background:transparent;color:var(--dtext);padding:18px 24px;font-size:15px;font-weight:300;outline:none}
.assistant-form input::placeholder{color:var(--dmuted)}
.assistant-form input:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.assistant-submit{width:auto;min-height:60px;flex:0 0 auto}
.assistant-form .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:560px){.assistant-panel{min-height:500px}.assistant-messages{padding:20px;min-height:250px}.assistant-suggestions{padding-inline:20px}.assistant-form input{padding-inline:20px}.assistant-submit{padding-inline:20px}}

/* jornada do paciente — calendário horizontal e detalhe visual por etapa */
.journey-inner{min-width:0}
.journey-head{margin-bottom:clamp(30px,3.5vw,48px)}
.journey-title{max-width:18ch}
.journey-lead{max-width:46ch}
.journey-tabs{display:flex;overflow-x:auto;margin-bottom:clamp(30px,3.5vw,48px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);scrollbar-width:thin}
.journey-tab{display:flex;flex:1 0 118px;flex-direction:column;gap:9px;min-height:96px;padding:20px 14px;border:0;border-right:1px solid var(--line);border-top:2px solid transparent;background:transparent;color:var(--muted);text-align:left;cursor:pointer;font:inherit;transition:background .25s ease,color .25s ease,border-color .25s ease}
.journey-tab:hover{background:var(--gold-mist);color:var(--ink)}
.journey-tab.is-active{border-top-color:var(--gold);background:var(--bg-3);color:var(--ink)}
.journey-tab:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.journey-tab-number{font-size:25px;color:var(--muted);line-height:1}
.journey-tab.is-active .journey-tab-number{color:var(--gold-ink)}
.journey-tab-label{font-size:11.5px;line-height:1.35;letter-spacing:.02em}
.journey-panels{min-width:0}
.journey-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4.5vw,80px);align-items:start}
.journey-panel[hidden]{display:none}
.journey-copy{display:flex;flex-direction:column;gap:18px}
.journey-panel-number{font-size:clamp(70px,8vw,120px);color:var(--line-strong);line-height:.78}
.journey-panel-title{max-width:15ch;font-size:clamp(26px,3vw,42px)}
.journey-panel-text{max-width:50ch}
.journey-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.journey-media{position:relative;height:clamp(280px,34vw,440px);overflow:hidden;isolation:isolate}
.journey-media::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,var(--plum),var(--plum-mid));opacity:.36;mix-blend-mode:multiply;pointer-events:none}
.journey-media.gframe::after{z-index:2}
.journey-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:900px){.journey-panel{grid-template-columns:1fr}.journey-media{height:min(70vw,440px)}}
@media(max-width:560px){.journey-tab{flex-basis:104px;min-height:88px;padding:17px 12px}.journey-tab-number{font-size:22px}.journey-panel-number{font-size:76px}.journey-media{height:72vw;max-height:360px}}

/* tecnologias — simulação 3D remota e presencial */
.technology-section{position:relative;overflow:hidden}
.technology-texture,.technology-glow{position:absolute;inset:0;pointer-events:none}
.technology-glow{background:radial-gradient(90% 70% at 10% 6%,rgba(110,78,170,.38) 0%,transparent 58%)}
.technology-inner{position:relative;z-index:1}
.technology-head{margin-bottom:clamp(34px,4vw,56px)}
.technology-title{max-width:16ch}
.technology-lead{max-width:50ch}

.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:1px;background:rgba(245,213,202,.35);
  border-top:1px solid rgba(245,213,202,.45);backdrop-filter:blur(14px)}
.sticky-bar>a{flex:1 1 0;min-height:56px;display:flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.sticky-bar>a svg{width:16px;height:16px}
.sticky-bar-wa{background:#25d366;color:#fff}
.sticky-bar-cta{background:var(--plum-deep);color:var(--gold-lt)}
@media (max-width:760px){.sticky-bar{display:flex}.float-nav{display:none!important}.sticky-bar>a{font-size:9px;letter-spacing:.08em;padding:0 8px;text-align:center}}
/* Botão de WhatsApp flutuante (desktop/tablet — no mobile o .sticky-bar acima
   assume esse papel). Faltava a regra de posição/tamanho/aparência: só havia
   transição e hover, então o botão nunca flutuava de fato, só aparecia como
   um ícone solto no fluxo normal, no fim da página. */
.float-nav{position:fixed;z-index:76;right:24px;bottom:24px}
.wa-fab{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;
  border-radius:var(--radius-full);background:#25d366;color:#fff;box-shadow:0 10px 28px rgba(44,29,73,.28);
  transition:background .3s ease,transform .3s ease}
.wa-fab:hover{background:#1fbd5a;transform:translateY(-2px)}
.wa-fab:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:760px){body{padding-bottom:56px}}

.pform{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.pform .fld{grid-column:span 1}
.pform .fld-wide{grid-column:1/-1}
.pform .b{grid-column:1/-1}

/* conteúdo institucional, legal, contato e artigos no motor compartilhado */
.content-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(36px,7vw,110px);align-items:start}
.content-layout-head{position:sticky;top:110px;display:flex;flex-direction:column;gap:18px}
.content-prose{max-width:82ch;display:flex;flex-direction:column;gap:clamp(30px,4vw,52px)}
.content-prose>section{display:flex;flex-direction:column;gap:14px;padding-bottom:clamp(26px,3vw,40px);border-bottom:1px solid var(--line)}
.content-prose h2,.content-prose h3{font-family:var(--font-display);font-weight:400;line-height:1.14;color:var(--ink);margin:0}
.content-prose p{margin:0}
.content-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:15px;line-height:1.7;font-weight:300}
.contact-engine{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(40px,7vw,110px);align-items:start}
.contact-engine>div,.contact-engine-aside{display:flex;flex-direction:column;gap:22px}
.contact-engine-aside{background:var(--bg-3);padding:clamp(26px,3vw,42px)}
.contact-form{display:grid;gap:18px;margin-top:10px}
.contact-form__honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.form-row{display:grid;gap:18px}.form-row--half{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase}
.form-input{width:100%;min-height:54px;border:1px solid var(--line);border-radius:0;background:transparent;padding:14px 16px;outline:0}
.form-input:focus{border-color:var(--gold)}.form-textarea{min-height:150px;resize:vertical}
.form-required{color:var(--gold-dk)}.form-error{min-height:1em;color:#a23b47;font-size:12px}
.form-feedback{border-left:2px solid var(--gold);padding:14px 16px;font-size:13px}.form-feedback.is-success{background:rgba(80,145,106,.1);color:#39784e}.form-feedback.is-error{background:rgba(162,59,71,.08);color:#a23b47}
.contact-form__submit .btn-loading{display:none}.contact-form__submit.is-loading .btn-text{display:none}.contact-form__submit.is-loading .btn-loading{display:inline-flex}
.article-engine{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(250px,.5fr);gap:clamp(36px,6vw,90px);align-items:start}
.article-engine-aside{position:sticky;top:110px;display:flex;flex-direction:column;gap:18px;padding:clamp(24px,2.8vw,36px);background:var(--bg-3)}
.content-prose img{max-width:100%;height:auto}
@media (max-width:860px){
  .content-layout,.contact-engine,.article-engine{grid-template-columns:1fr}
  .content-layout-head,.article-engine-aside{position:static}
  .form-row--half{grid-template-columns:1fr}
}

.cases-wrap{gap:clamp(28px,4vw,54px)}
.cases-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.case-card{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:18px;background:transparent}
/* uma técnica só (página de procedimento individual): galeria e texto lado a lado, em vez de um card estreito solto no grid */
.cases-grid--single{grid-template-columns:1fr}
.cases-grid--single .case-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);gap:clamp(28px,4vw,48px);align-items:center}
.cases-grid--single .case-gallery .case-main{aspect-ratio:4/5}
@media(max-width:760px){.cases-grid--single .case-card{grid-template-columns:1fr}}
.case-body{gap:10px}
.case-body h3{max-width:32ch}
.case-body p{max-width:58ch;color:var(--muted)}
.cases-note{max-width:88ch}

/* galeria de caso real: imagem principal + miniaturas clicáveis */
.case-gallery{position:relative;display:flex;flex-direction:column;gap:8px}
.case-main{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:var(--tint)}
.case-main img{display:block;width:100%;height:100%;object-fit:cover;background:var(--tint)}
.case-main-nav{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:linear-gradient(0deg,rgba(44,29,73,.66),transparent);opacity:0;transition:opacity .25s ease}
.case-gallery:hover .case-main-nav,.case-gallery:focus-within .case-main-nav{opacity:1}
.case-nav-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid rgba(255,249,247,.5);border-radius:999px;background:rgba(44,29,73,.56);color:#fff;font-size:17px;line-height:1;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}
.case-nav-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--plum-deep)}
.case-nav-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.case-counter{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:#fff}
.case-thumbs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.case-thumb{flex:0 0 auto;width:52px;height:52px;padding:0;border:2px solid transparent;border-radius:2px;overflow:hidden;background:var(--tint);cursor:pointer;opacity:.6;transition:opacity .2s ease,border-color .2s ease}
.case-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.case-thumb:hover{opacity:.9}
.case-thumb.is-active{opacity:1;border-color:var(--gold)}
.case-thumb:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
/* minmax(0,1fr), não só 1fr: a versão desktop já usa minmax(0,1fr) — sem o
   "0" mínimo aí, a trilha do grid volta ao mínimo automático (min-content),
   e como o conteúdo do card (imagem, tira de miniaturas) não encolhe
   sozinho, o card ficava mais largo que a tela (~400px numa tela de
   375px), estourando a largura da página inteira em qualquer procedimento
   com "casos reais". */
@media(max-width:760px){.cases-grid{grid-template-columns:minmax(0,1fr)}.case-main{aspect-ratio:1/1.15}}

/* galeria de vídeos em estilo cinema: tela principal + fita de miniaturas.
   Heading e nota centralizados, alinhados ao mesmo eixo do player — antes o
   heading ficava colado à esquerda enquanto o player ficava centralizado. */
.video-cinema-wrap{gap:clamp(30px,3.6vw,46px)}
.video-cinema-head{max-width:720px;margin:0 auto;text-align:center}
.video-cinema-head .eyebrow{justify-content:center}
.video-cinema-head .lead{margin:0 auto}
.video-cinema .fine{max-width:88ch;margin:0 auto;text-align:center}
/* width:100% explícito é necessário aqui: .cinema é flex com align-items:
   center, então não estica pra preencher o pai — sem uma largura definida
   própria, o navegador tenta encaixar .cinema ao redor do conteúdo
   (shrink-to-fit), e como .cinema-screen/iframe só têm width:100% (uma
   porcentagem, sem base definida nesse cálculo), a largura acaba vindo de
   algo indefinido nos dois — o iframe media aos 800~ e poucos pixels
   independente da tela, estourando a largura da página inteira no mobile
   (rolagem horizontal em toda a página, não só nesta seção). */
.cinema{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:960px;margin:0 auto}
.cinema-screen{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000;box-shadow:0 50px 110px rgba(0,0,0,.55)}
.cinema-screen iframe{display:block;width:100%;height:100%;border:0}
.cinema-caption{margin:0;text-align:center}
.cinema-reel{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:4px 2px 16px;scrollbar-width:thin;scrollbar-color:var(--gold) rgba(127,127,127,.18)}
.cinema-reel::-webkit-scrollbar{height:5px}
.cinema-reel::-webkit-scrollbar-track{background:rgba(127,127,127,.18);border-radius:999px}
.cinema-reel::-webkit-scrollbar-thumb{background:var(--gold);border-radius:999px}
.cinema-reel::-webkit-scrollbar-thumb:hover{background:var(--gold-dk)}
.cinema-thumb{position:relative;flex:0 0 auto;width:148px;aspect-ratio:16/9;padding:0;border:2px solid transparent;overflow:hidden;cursor:pointer;background:#000;opacity:.6;transition:opacity .25s ease,border-color .25s ease,transform .2s ease}
.cinema-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.cinema-thumb:hover{opacity:.9;transform:translateY(-2px)}
.cinema-thumb.is-active{opacity:1;border-color:var(--gold)}
.cinema-thumb:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.cinema-thumb-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;background:rgba(44,29,73,.36);pointer-events:none}
.cinema-thumb.is-active .cinema-thumb-play{opacity:0}
@media(max-width:560px){.cinema-thumb{width:112px}}

/* blocos recuperados do protótipo: segurança, comparação, avaliações, conteúdo,
   pacientes de fora e locais de atendimento */
.proof-photo{position:relative;width:100%;height:clamp(300px,44vw,560px);margin:0;overflow:hidden;background:var(--bg-dark-2)}
.proof-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(92%)}
/* Formato em texto corrido: banner à esquerda, prosa com os mesmos detalhes
   (antes em cartões) à direita. */
.proof-prose-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,4.5vw,72px);align-items:stretch}
.proof-photo--prose{height:100%;min-height:420px;max-height:640px}
.proof-prose-copy{justify-content:center}
.proof-prose-text{color:var(--dmuted);max-width:64ch}
@media (max-width:900px){
  .proof-prose-layout{grid-template-columns:1fr}
  .proof-photo--prose{height:clamp(260px,60vw,420px);max-height:none}
}
.comparison-wrap{gap:clamp(30px,3.5vw,48px)}
.comparison-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(32px,5vw,78px);align-items:start}
.comparison-frame{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--bg-2);touch-action:pan-y;isolation:isolate}
.comparison-frame>img,.comparison-after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none}
.comparison-before{position:absolute;z-index:2;inset:0 50% 0 0;overflow:hidden}
.comparison-before img{display:block;width:200%;max-width:none;height:100%;object-fit:cover;object-position:left center;user-select:none}
.comparison-line{position:absolute;z-index:3;left:50%;top:0;bottom:0;width:1px;background:var(--gold);transform:translateX(-.5px);pointer-events:none}
.comparison-handle{position:absolute;z-index:4;left:50%;top:50%;width:52px;height:52px;transform:translate(-50%,-50%);border:1px solid var(--gold);background:rgba(44,29,73,.88);color:var(--gold-lt);display:flex;align-items:center;justify-content:center;gap:6px;font:13px var(--font-mono);pointer-events:none}
.comparison-range{position:absolute;z-index:5;inset:0;width:100%;height:100%;margin:0;opacity:.001;cursor:ew-resize;touch-action:none}
.comparison-label,.comparison-caption{position:absolute;z-index:4;background:rgba(44,29,73,.9);color:var(--dtext);padding:8px 12px;font-size:10px;pointer-events:none}
.comparison-label{top:16px}.comparison-label--before{left:16px}.comparison-label--after{right:16px;background:var(--gold);color:#2C1D49}.comparison-caption{left:50%;bottom:16px;transform:translateX(-50%);white-space:nowrap;font-size:9.5px}
.comparison-copy .ctas{margin-top:0}.comparison-copy .ctas .b{width:auto}
.quotes-old-head{margin-bottom:clamp(32px,3.8vw,50px)}
.quotes-rating{display:flex;align-items:center;gap:clamp(20px,2.5vw,34px);border:1px solid var(--gold);padding:22px clamp(22px,2.4vw,32px);flex:0 0 auto}
.quotes-rating>div:first-child{display:flex;flex-direction:column;gap:8px}.quotes-rating-rule{width:1px;align-self:stretch;background:var(--line-strong)}
.quotes-rating .rating-stars{display:flex}.quotes-rating .rating-stars svg,.quotes-old-card .rating-stars svg{width:14px;height:14px;fill:var(--gold);stroke:none}
.quotes-old-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--dline)}
.quotes-old-card{margin:0;padding:clamp(26px,2.6vw,34px);display:flex;flex-direction:column;gap:20px;background:var(--bg-dark-2);min-height:300px}
.quotes-old-mark{font-size:42px;line-height:.5;color:var(--gold);height:18px}.quotes-old-card blockquote{margin:0;font-family:var(--font-display);font-weight:300;font-style:italic;font-size:18px;line-height:1.55;color:var(--dtext)}
.quotes-old-card figcaption{display:flex;align-items:center;gap:13px;margin-top:auto;padding-top:8px;border-top:1px solid var(--dline)}
.quotes-initial{flex:0 0 auto;width:40px;height:40px;border:1px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:17px}
.google-mark{margin-left:auto;color:#4285f4;font:600 17px Arial,sans-serif}
.quotes-old-note{margin-top:24px}
/* Cartão de caso real (não é depoimento): sem estrelas, sem aspas gigantes,
   sem atribuição a uma pessoa — foto da categoria, título da combinação de
   técnicas, descrição, as técnicas quebradas em tags e link para o caso
   completo na LP, com o CTA sempre no rodapé do cartão. */
.quotes-old-card--case{padding:0;gap:0;min-height:0}
.case-quote-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.case-quote-media-link{display:block;width:100%;height:100%}
.case-quote-media img{width:100%;height:100%;object-fit:cover;object-position:78% center;transition:transform .6s var(--ease)}
.quotes-old-card--case:hover .case-quote-media img{transform:scale(1.045)}
/* A categoria é um link real (aba para a página da categoria), não só um
   rótulo decorativo — por isso o fundo sólido e o estado de hover/foco,
   pra parecer clicável em cima da foto. */
.case-quote-media .quote-category{position:absolute;top:16px;left:16px;background:rgba(44,29,73,.55);backdrop-filter:blur(6px);transition:background .3s ease,color .3s ease,border-color .3s ease}
a.quote-category:hover,a.quote-category:focus-visible{background:var(--gold);color:#2C1D49;border-color:var(--gold)}
.case-quote-body{display:flex;flex-direction:column;gap:14px;padding:clamp(22px,2.4vw,28px)}
.case-quote-title{margin:0;color:var(--dtext)}
.case-quote-text{color:var(--dmuted)}
.case-quote-tags{display:flex;flex-wrap:wrap;gap:7px}
.case-quote-tags .tag{border-color:var(--dline);color:var(--dmuted)}
/* Nem toda técnica tem página de procedimento própria (ex.: Renuvion,
   Retraction são tecnologias, não procedimentos cadastrados) — só a tag
   vira link (acesso relacionado) quando existe destino real. */
.case-quote-tags a.tag{cursor:pointer;transition:border-color .3s ease,color .3s ease,background .3s ease}
.case-quote-tags a.tag:hover,.case-quote-tags a.tag:focus-visible{border-color:var(--gold);color:var(--gold-lt);background:rgba(245,213,202,.08)}
.case-quote-link{align-self:stretch;margin-top:auto;padding-top:14px;border-top:1px solid var(--dline);border-bottom:0;color:var(--gold-lt)}
.case-quote-link:hover{color:var(--gold)}
.content-grid-2x2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,34px)}
.content-card-old{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:18px;color:inherit;transition:border-color .35s ease,transform .35s ease}.content-card-old:hover{border-top-color:var(--gold);transform:translateY(-3px)}
.content-card-media{height:clamp(190px,19vw,260px);overflow:hidden}.content-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.content-card-old:hover img{transform:scale(1.03)}.content-card-old h3{font-size:20px;margin:0}.content-card-old p{margin:0;max-width:54ch}.content-card-link{margin-top:auto;color:var(--violet)}
.content-recognition{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:28px;align-items:center;border-top:1px solid var(--line);padding-top:clamp(28px,3vw,44px)}.content-recognition p{margin:12px 0 0;max-width:56ch}.content-recognition .link{justify-self:start}
.international-layout{gap:clamp(38px,7vw,110px)}.international-copy{max-width:52ch;gap:22px}.international-tags{display:flex;flex-wrap:wrap;gap:8px}.international-tag{transition:border-color .25s ease,color .25s ease}.international-tag:hover{border-color:var(--gold);color:var(--gold-ink)}.international-rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}.international-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.international-row h3{margin:0 0 6px}.international-row p{margin:8px 0 0}.international-row .step-n{font-size:32px}
.locations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.location-card{padding:clamp(28px,3vw,40px);display:flex;flex-direction:column;gap:16px;background:var(--bg-3)}
.location-title{display:flex;align-items:center;gap:16px}.location-title h3{margin:0}.location-title>.ico{flex:0 0 auto}.location-card>p{margin:0;max-width:44ch}
.locations-maps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.location-map{position:relative;height:clamp(280px,32vw,390px);overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.location-map iframe{display:block;width:100%;height:100%;border:0;filter:saturate(78%) contrast(.96)}
.location-map-link{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:9px;padding:10px 13px;background:rgba(44,29,73,.94);color:var(--dtext);font-size:9.5px;box-shadow:0 8px 24px rgba(44,29,73,.2);transition:background .25s ease,color .25s ease,gap .25s ease}
.location-map-link:hover,.location-map-link:focus-visible{gap:14px;background:var(--gold);color:var(--plum-deep)}
@media(max-width:1000px){.quotes-old-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.comparison-layout,.international-layout,.content-recognition{grid-template-columns:1fr}.comparison-copy{max-width:70ch}.locations-maps{grid-template-columns:1fr}}
@media(max-width:760px){.content-grid-2x2,.locations-grid{grid-template-columns:1fr}.quotes-rating{width:100%;justify-content:space-between}.quotes-old-grid{grid-template-columns:1fr}.quotes-old-card{min-height:0}.comparison-caption{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.international-row{grid-template-columns:44px minmax(0,1fr)}}

.legacy-contact{position:relative;overflow:hidden}.legacy-contact-texture,.legacy-contact-glow{position:absolute;inset:0;pointer-events:none}.legacy-contact-glow{background:radial-gradient(85% 75% at 88% 6%,rgba(131,109,174,.42) 0%,transparent 60%)}.legacy-contact-layout{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);gap:clamp(36px,7vw,110px);align-items:start}.legacy-contact-intro{display:flex;flex-direction:column;gap:24px;max-width:46ch}.legacy-contact-quick{margin-top:4px}.legacy-contact-quick-row{display:flex;align-items:center;gap:16px;padding:17px 0}.legacy-contact-quick-row .step-n{font-size:30px}.legacy-form{border:1px solid var(--dline);padding:clamp(26px,2.8vw,44px);display:flex;flex-direction:column;gap:26px;background:rgba(44,29,73,.58)}.legacy-form-top{display:flex;justify-content:space-between;align-items:center}.legacy-progress{height:1px;background:var(--dline)}.legacy-progress span{display:block;height:1px;background:var(--gold);width:25%;transition:width .35s ease}.legacy-steps{min-height:300px}.legacy-step{border:0;padding:0;margin:0;display:grid;gap:18px;min-inline-size:0}.legacy-step[hidden]{display:none}/* <legend> não participa direito do gap do grid do .legacy-step (fieldset
   tem um algoritmo de layout próprio pra legend em vários navegadores) — só
   a margem própria dela conta, então os 2px aqui eram o espaço real entre
   o título e o card abaixo, não os 18px+2px que o gap do grid sugeriria. */
.legacy-step legend{padding:0;margin:0 0 16px;color:var(--gold-lt)}.legacy-picks{display:grid;gap:16px}.legacy-pick{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;border:1px solid var(--dline);background:transparent;color:var(--dtext);font:inherit;text-align:left;cursor:pointer;transition:border-color .25s ease,background .25s ease}.legacy-pick span{font-size:13px;color:var(--dmuted)}.legacy-pick.is-selected{border-color:var(--gold);background:rgba(245,213,202,.13)}.legacy-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.legacy-chip{padding:11px 16px;border:1px solid var(--dline);background:transparent;color:var(--dmuted);font:12px var(--font-mono);cursor:pointer;transition:border-color .25s ease,color .25s ease,background .25s ease}.legacy-chip:hover,.legacy-chip.is-selected{border-color:var(--gold);color:var(--gold-lt);background:rgba(245,213,202,.13)}.legacy-chip-row--large .legacy-chip{min-height:44px}.legacy-consent{display:flex;align-items:flex-start;gap:12px;color:var(--dmuted);font-size:13px;line-height:1.6;cursor:pointer}.legacy-consent input{accent-color:var(--gold);margin-top:4px}.legacy-form-actions{display:flex;flex-wrap:wrap;gap:11px;align-items:center}.legacy-form-actions .b{width:auto}.legacy-form-actions .fine{flex:1 1 180px;min-height:1.4em}.legacy-step input[aria-invalid="true"]{border-color:#c35b67}
@media(max-width:860px){.legacy-contact-layout{grid-template-columns:1fr}.legacy-contact-intro{max-width:70ch}}
.legacy-form-actions [hidden]{display:none!important}
.proof-photo img{object-position:center 42%}
.comparison-label--after{color:var(--plum-deep)}
.comparison-copy{gap:22px}.comparison-meta-row{padding:16px 0}.comparison-meta-key{margin-bottom:6px}.comparison-meta-value{font-size:15px;line-height:1.55}
.quotes-rating-meta{gap:10px}.quotes-author{gap:3px}.google-mark{color:var(--violet-soft)}
.content-grid-wrap{gap:clamp(32px,4vw,56px)}
.international-layout{align-items:start}
.locations-wrap{gap:clamp(30px,3.5vw,48px)}.location-row{padding:12px 0}
.legacy-step input[aria-invalid="true"]{border-color:var(--gold)}

/* simulador visual do fluxo de planejamento 3D — abas de etapa + "tela" central.
   Heading centralizado no mesmo eixo do simulador, com espaçamento real entre
   os dois (antes o heading ficava colado à esquerda e sem gap). */
.sim-flow-wrap{gap:clamp(30px,3.6vw,46px)}
.sim-flow-head{max-width:720px;margin:0 auto;text-align:center}
.sim-flow-head .eyebrow{justify-content:center}
.sim-flow-head .lead{margin:0 auto}
.sim-flow-note{max-width:88ch;margin:0 auto;text-align:center}

/* ── dossiê em abas ───────────────────────────────────────────────────────
   Reúne numa seção só o que antes eram seis seções seguidas (técnica,
   critérios, jornada, recuperação, recursos e segurança) nas páginas de
   categoria. Ver includes/engine/blocks/dossier.php. */
.dossier-wrap{gap:clamp(26px,3vw,40px)}
.dossier-tabs{display:flex;gap:1px;background:var(--line);border-block:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.dossier-tabs::-webkit-scrollbar{display:none}
.dossier-tab{flex:1 1 0;min-width:132px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px 18px;border:0;border-top:2px solid transparent;background:var(--bg-2);color:var(--ink);text-align:left;cursor:pointer;font:inherit;transition:background .25s ease,border-color .25s ease,color .25s ease}
.dossier-tab:hover{background:var(--gold-mist)}
.dossier-tab.is-active{background:var(--plum-deep);border-top-color:var(--gold);color:var(--dtext)}
.dossier-tab.is-active .dossier-tab-index{color:var(--gold-lt)}
.dossier-tab:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.dossier-tab-label{font-family:var(--font-display);font-size:clamp(16px,1.3vw,19px);font-weight:400;line-height:1.15}
.dossier-panel{display:flex;flex-direction:column;gap:clamp(18px,2vw,26px)}
.dossier-panel-title{margin:0;max-width:24ch}
.dossier-panel-lead{margin:0;max-width:68ch}
.dossier-panel-note{margin:0;max-width:82ch}

.dossier-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line)}
.dossier-col{display:flex;flex-direction:column;gap:16px;padding:clamp(20px,2.2vw,30px);background:var(--bg-2)}
.dossier-col-head{display:flex;align-items:center;gap:13px}
.dossier-col-head h4{margin:0}
.dossier-col-list li{position:relative;padding-left:17px;color:var(--muted)}
.dossier-col-list li::before{content:"";position:absolute;top:.62em;left:0;width:5px;height:5px;border-radius:50%;background:var(--gold)}

.dossier-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--line)}
.dossier-detail{display:flex;flex-direction:column;gap:13px;padding:clamp(20px,2.2vw,30px);background:var(--bg-2)}
.dossier-detail h4{margin:0}
.dossier-detail p{margin:0;color:var(--muted)}
.dossier-detail-summary{color:var(--gold-ink)!important}
.dossier-detail-rows{margin-top:2px}
.dossier-detail-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:4px}

.dossier-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line)}
.dossier-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:clamp(12px,1.5vw,18px);align-items:start;padding:clamp(18px,2vw,26px);background:var(--bg-2)}
.dossier-item-index{padding-top:4px;color:var(--gold-ink)}
.dossier-item-icon{margin-top:1px}
.dossier-item-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.dossier-item-copy h4{margin:0}
.dossier-item-copy p{margin:0;color:var(--muted)}
.dossier-item-meta{color:var(--gold-ink);font-size:10px}

@media(max-width:760px){
  .dossier-tab{flex:0 0 auto;min-width:118px;padding:13px 14px 15px}
  .dossier-tab-label{font-size:15px}
  .dossier-details,.dossier-list,.dossier-split{grid-template-columns:1fr}
  .dossier-item{grid-template-columns:32px minmax(0,1fr);gap:11px}
}

/* saída embutida no fechamento (antes era a seção "Continue" separada) */
.cta-related{margin-top:clamp(34px,4vw,52px);padding-top:clamp(22px,2.4vw,30px);border-top:1px solid var(--dline);display:flex;flex-wrap:wrap;align-items:baseline;gap:12px clamp(20px,3vw,38px)}
.cta-related-label{flex:0 0 auto;color:var(--gold-lt)}
.cta-related-links{display:flex;flex-wrap:wrap;gap:10px clamp(18px,2.5vw,30px)}
.cta-related-link{display:inline-flex;align-items:center;gap:9px;color:var(--dtext);text-decoration:none;border-bottom:1px solid var(--dline);padding-bottom:3px;transition:color .3s ease,border-color .3s ease}
.cta-related-link:hover{color:var(--gold-lt);border-bottom-color:var(--gold)}
.cta-related-link .d4{font-size:clamp(15px,1.2vw,18px)}
@media(max-width:760px){.cta-related{flex-direction:column;gap:14px}.cta-related-links{flex-direction:column;gap:12px}.cta-related-link{justify-content:space-between;width:100%}}

/* painéis do dossiê nas LPs: o conteúdo vem das seções originais, então o
   painel fica fora do .wrap e cada bloco mantém o seu próprio wrap interno */
.dossier-panel-head{display:flex;flex-direction:column;gap:12px;max-width:74ch}
.dossier-panel-head h3{margin:0}
.dossier-panel-head .lead{margin:0}
.dossier-panel>.wrap:not(.dossier-panel-head){padding-top:0}
.dossier-panel .sec,.dossier-panel .sec-sm{padding:0;background:none}
/* setas do carrossel herdadas de seção escura: no painel claro precisam de
   contraste próprio */
.dossier-panel .slider-arrow{border-color:var(--line-strong);color:var(--ink)}

/* ── 06 · dossiê enxuto ───────────────────────────────────────────────────
   Substitui o painel de abas: acordeão nativo, sem JS e sem wrap aninhado.
   Mesma gramática do .tec (linha fina, sinal em cruz, ouro no hover). */
.dlite{border-top:1px solid var(--line)}
.dlite-item{border-bottom:1px solid var(--line)}
.dlite-item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:clamp(14px,2vw,26px);padding:20px 0;transition:color .3s ease}
.dlite-item>summary::-webkit-details-marker{display:none}
.dlite-item>summary:hover{color:var(--gold-ink)}
.dlite-item>summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.dlite-index{flex:0 0 auto;color:var(--gold-ink)}
.dlite-label{flex:1 1 auto}
.dlite-sign{margin-left:auto;flex:0 0 auto;width:22px;height:22px;position:relative}
.dlite-sign::before,.dlite-sign::after{content:"";position:absolute;left:50%;top:50%;background:var(--gold);transition:transform .35s ease}
.dlite-sign::before{width:14px;height:1px;transform:translate(-50%,-50%)}
.dlite-sign::after{width:1px;height:14px;transform:translate(-50%,-50%)}
.dlite-item[open] .dlite-sign::after{transform:translate(-50%,-50%) scaleY(0)}
.dlite-body{padding:0 0 26px}
.dlite-intro{max-width:70ch;margin:0 0 18px;color:var(--gold-ink)}
.dlite-row{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(14px,2vw,30px);padding:14px 0;border-top:1px solid var(--line)}
.dlite-row .d4{margin:0}
.dlite-row p{margin:0;color:var(--muted)}
.dlite-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(20px,2.6vw,38px)}
.dlite-col{display:flex;flex-direction:column;gap:12px}
.dlite-list li{position:relative;padding-left:17px;color:var(--muted)}
.dlite-list li::before{content:"";position:absolute;top:.62em;left:0;width:5px;height:5px;border-radius:50%;background:var(--gold)}
@media(max-width:760px){
  .dlite-row{grid-template-columns:1fr;gap:6px;padding:13px 0}
  .dlite-item>summary{padding:16px 0;gap:12px}
}

/* ── 03 · casos em slider ─────────────────────────────────────────────────
   Cards menores, com fundo e borda, rolando na horizontal com setas. */
.cases-slider-shell .cases-grid{display:flex;grid-template-columns:none;gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;padding-bottom:4px}
.cases-slider-shell .cases-grid::-webkit-scrollbar{display:none}
.cases-slider-shell .case-card{flex:0 0 clamp(272px,31%,360px);display:flex;flex-direction:column;gap:14px;scroll-snap-align:start;border:1px solid var(--line);border-top:1px solid var(--line);background:var(--bg-2);padding:14px 14px 18px}
.cases-slider-shell .case-body{gap:9px}
.cases-slider-shell .case-body .d4{font-size:17px}
.cases-slider-shell .case-thumbs{gap:5px}
.cases-slider-shell .case-thumb{width:44px}
.cases-slider-shell .card-slider-controls{display:flex}
.cases-slider-shell .slider-arrow{border-color:var(--line-strong);color:var(--ink)}
.cases-slider-shell .slider-arrow:hover:not(:disabled){border-color:var(--gold);color:var(--gold-ink)}
@media(max-width:760px){
  .cases-slider-shell .case-card{flex:0 0 84%}
}

/* seção da doutora replicada da home nas LPs: as correções de mobile
   existiam só escopadas em .page-home, então valem para #cirurgia em
   qualquer página (na home as regras originais seguem ganhando) */
@media(max-width:760px){
  #cirurgia .doc{display:flex;flex-direction:column;gap:24px}
  #cirurgia .doc-main-copy{order:1}
  #cirurgia .doc-portrait,#cirurgia .doc-video--top{order:2}
  #cirurgia .doc>figure{width:min(60vw,230px);height:280px;justify-self:start}
  #cirurgia .doc .doc-video--top{width:100%;height:auto;aspect-ratio:16/9;max-height:none;justify-self:stretch}
  #cirurgia .doc-main-copy .ctas,#cirurgia .doc-main-copy .ctas .b{width:100%}
  #cirurgia .doc-img{width:100%;height:100%;object-fit:cover;object-position:center top}}

/* ── mobile: cards de procedimento e depoimentos rolam na horizontal ───────
   Empilhados, os quatro cards de cada seção somavam muita rolagem vertical.
   Em faixa deslizante com encaixe, a seção ocupa uma tela e o conteúdo
   continua todo acessível pelo gesto. */
@media(max-width:760px){
  #lista .cards-grid,
  .auto--ruled:has(>.quote-card){
    display:flex;
    grid-template-columns:none;
    gap:12px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:inline mandatory;
    scrollbar-width:none;
    padding-bottom:4px;
    background:rgba(0,0,0,0);
  }
  #lista .cards-grid::-webkit-scrollbar,
  .auto--ruled:has(>.quote-card)::-webkit-scrollbar{display:none}
  #lista .cards-grid>.card-p,
  .auto--ruled:has(>.quote-card)>.quote-card{
    flex:0 0 84%;
    min-width:0;
    scroll-snap-align:start;
  }
  /* sem a grade, o card perde a borda que vinha do fundo do .hair */
  #lista .cards-grid>.card-p{border:1px solid var(--line)}
}
