/* ==========================================================================
   CEDRA · Centro de Endoscopia Digestiva e Rastreamento Avançado
   Sistema de design — tokens, base, componentes, seções, movimento
   Sem framework, sem build. Mobile-first.
   ========================================================================== */

/* ---------- Fontes (self-host, variáveis, subset latino, licença OFL) ---------- */
@font-face {
  font-family: "Cinzel";
  src: url("../fonts/cinzel-latin-wght-normal.woff2") format("woff2");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-latin-wght-normal.woff2") format("woff2");
  font-weight: 300 600;
  font-style: normal;
  font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  /* Paleta oficial */
  --bege: #F2EFEA;
  --verde-profundo: #0A392F;
  --ouro-claro: #CFAF8C;
  --ouro-escuro: #997453;
  --ouro-degrade: linear-gradient(180deg, #CFAF8C 0%, #997453 100%);

  /* Derivados (documentados no brief) */
  --verde-noite: #062A22;     /* camadas mais escuras, rodapé */
  --verde-fumaca: #2C574C;    /* verde ~25% mais claro: filetes e marcas sobre o verde */
  --bege-sombra: #E8E3DA;     /* separação sutil de seções */
  --ouro-texto: #6B5238;      /* texto dourado pequeno sobre bege (6,3:1) */
  --verde-suave: #4A6A60;     /* texto secundário sobre bege (5,2:1) */
  --bege-suave: #C9D2CC;      /* texto secundário sobre verde (≈8:1) */

  /* Tipografia */
  --f-titulo: "Cinzel", "Times New Roman", serif;
  --f-texto: "Montserrat", "Segoe UI", sans-serif;
  --t-display: clamp(2.5rem, 1.2rem + 5.2vw, 5.5rem);
  --t-h2: clamp(1.85rem, 1.1rem + 3vw, 3.5rem);
  --t-h3: clamp(1.4rem, 1.15rem + 1vw, 1.9rem);
  --t-lead: clamp(1.125rem, 1rem + 0.6vw, 1.4rem);
  --t-corpo: clamp(1.0625rem, 1rem + 0.2vw, 1.125rem);
  --t-menor: 0.9375rem;
  --t-rotulo: 0.75rem;
  --trk-rotulo: 0.22em;

  /* Espaço */
  --e-1: 0.5rem;
  --e-2: 0.75rem;
  --e-3: 1rem;
  --e-4: 1.5rem;
  --e-5: 2rem;
  --e-6: 3rem;
  --e-7: clamp(3.5rem, 2rem + 6vw, 6.5rem);
  --e-8: clamp(5rem, 2.5rem + 10vw, 10.5rem);
  --margem: clamp(1.25rem, 0.2rem + 5vw, 5.5rem);
  --largura: 84rem;
  --arco-h: clamp(64px, 13vw, 210px);
  --arco-hero: clamp(56px, 9vw, 132px);
  --cabecalho-h: 4.75rem;

  /* Raio: ou reto, ou curva ampla. Nada no meio. */
  --raio-0: 0;
  --raio-1: 2px;
  --raio-total: 999px;

  /* Movimento: lento, fluido, sem quique */
  --ease: cubic-bezier(0.22, 0.61, 0.21, 1);
  --dur-1: 600ms;
  --dur-2: 900ms;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--cabecalho-h) + 1rem); }
body {
  margin: 0;
  background: var(--bege);
  color: var(--verde-profundo);
  font-family: var(--f-texto);
  font-size: var(--t-corpo);
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
strong { font-weight: 600; }
::selection { background: var(--ouro-claro); color: var(--verde-profundo); }

:focus-visible { outline: 2px solid var(--foco, var(--verde-profundo)); outline-offset: 4px; border-radius: var(--raio-1); }

.so-leitor {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.pular {
  position: absolute; left: var(--margem); top: 0; z-index: 100;
  transform: translateY(-120%);
  background: var(--verde-profundo); color: var(--bege);
  padding: 0.9rem 1.25rem; font-weight: 600; font-size: var(--t-menor);
  text-decoration: none; border-bottom: 2px solid var(--ouro-claro);
}
.pular:focus { transform: none; }

/* ---------- Tipografia ---------- */
.titulo {
  font-family: var(--f-titulo);
  font-weight: 500;
  font-size: var(--t-h2);
  line-height: 1.12;
  letter-spacing: 0.015em;
  text-wrap: balance;
}
.titulo--display { font-size: var(--t-display); font-weight: 400; line-height: 1.04; letter-spacing: 0.01em; }
.titulo--3 { font-size: var(--t-h3); line-height: 1.2; letter-spacing: 0.03em; }
.linha { display: block; }
.linha > span { display: block; }

/* A assinatura tipográfica do descritor do logotipo */
.rotulo {
  font-family: var(--f-texto);
  font-size: var(--t-rotulo);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: var(--trk-rotulo);
  text-transform: uppercase;
  color: var(--cor-rotulo, var(--ouro-texto));
}
.lead { font-size: var(--t-lead); font-weight: 300; line-height: 1.6; max-width: 34em; }
.texto { max-width: 36em; }
.texto + .texto { margin-top: var(--e-3); }
.secundario { color: var(--cor-secundaria, var(--verde-suave)); }

/* Filete dourado */
.filete { display: block; height: 1px; border: 0; margin: 0; background: var(--ouro-degrade); transform-origin: left center; }
.filete--2 { height: 2px; }

/* Pendências visíveis: dados que só a clínica tem */
.pendente {
  display: inline;
  background: rgba(207, 175, 140, 0.26);
  color: var(--verde-profundo);
  font-family: var(--f-texto);
  font-size: 0.86em;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-transform: none;
  padding: 0.12em 0.42em;
  border-radius: var(--raio-1);
  outline: 1px dashed var(--ouro-escuro);
  outline-offset: -1px;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.rodape .pendente { color: var(--bege); background: rgba(207, 175, 140, 0.16); outline-color: var(--ouro-claro); }

/* ---------- Estrutura ---------- */
.caixa { width: min(100% - 2 * var(--margem), var(--largura)); margin-inline: auto; }
.sec { position: relative; padding-block: var(--e-8); background: var(--sec-bg); color: var(--sec-cor); }
.sec--bege { --sec-bg: var(--bege); --sec-cor: var(--verde-profundo); --foco: var(--verde-profundo); }
.sec--sombra { --sec-bg: var(--bege-sombra); --sec-cor: var(--verde-profundo); --foco: var(--verde-profundo); }
.sec--verde {
  --sec-bg: var(--verde-profundo); --sec-cor: var(--bege);
  --cor-rotulo: var(--ouro-claro); --cor-secundaria: var(--bege-suave); --foco: var(--ouro-claro);
}
.sec--arco-abaixo { padding-bottom: calc(var(--e-7) + var(--arco-h)); }
.sec > .caixa { position: relative; z-index: 2; }

/* Arcos: a transição entre seções é uma curva ampla, nunca uma linha reta */
.arco {
  position: absolute; left: 0; bottom: calc(100% - 1px); z-index: 3;
  width: 100%; height: var(--arco-h);
  color: var(--sec-bg); fill: currentColor;
  transform-origin: center bottom;
  pointer-events: none;
}
.arco--espelho { transform: scaleX(-1); }

/* Símbolo gigante, cortado e translúcido */
.marca-fundo {
  position: absolute; z-index: 0; pointer-events: none; user-select: none;
  opacity: 0.1;
}
.sec--bege .marca-fundo, .sec--sombra .marca-fundo { opacity: 0.11; }
.recorte { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }

/* ---------- Botões ---------- */
.btn {
  --btn-bg: var(--verde-profundo); --btn-cor: var(--bege); --btn-borda: var(--verde-profundo);
  --btn-icone-bg: transparent; --btn-icone-cor: var(--ouro-claro); --btn-icone-borda: var(--ouro-claro);
  display: inline-flex; align-items: center; gap: 0.9rem;
  min-height: 3.5rem; padding: 0.3rem 1.6rem 0.3rem 0.35rem;
  background: var(--btn-bg); color: var(--btn-cor);
  border: 1px solid var(--btn-borda); border-radius: var(--raio-total);
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; line-height: 1.3;
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
.btn__icone {
  flex: none; display: grid; place-items: center;
  width: 2.85rem; height: 2.85rem; border-radius: 50%;
  background: var(--btn-icone-bg); color: var(--btn-icone-cor); border: 1px solid var(--btn-icone-borda);
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);
}
.btn__icone svg { width: 1.35rem; height: 1.35rem; }
.btn:hover { --btn-icone-bg: var(--ouro-claro); --btn-icone-cor: var(--verde-profundo); }
.btn--sem-icone { padding-inline: clamp(1.1rem, 4vw, 1.6rem); min-height: 2.75rem; }
.btn--largo { width: 100%; justify-content: flex-start; }
.btn[disabled] { opacity: 0.65; cursor: progress; }

/* Link com filete que cresce */
.elo {
  position: relative; display: inline-flex; align-items: center; gap: 0.7rem;
  min-height: 2.75rem; padding-block: 0.6rem;
  font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; line-height: 1.3;
}
.elo::after {
  content: ""; position: absolute; left: 0; bottom: 0.35rem; width: 100%; height: 1px;
  background: var(--ouro-degrade); transform: scaleX(0.28); transform-origin: left center;
  transition: transform var(--dur-1) var(--ease);
}
.elo:hover::after, .elo:focus-visible::after { transform: scaleX(1); }
.elo svg { width: 1.5rem; height: 0.75rem; flex: none; transition: transform var(--dur-1) var(--ease); }
.elo:hover svg { transform: translateX(4px); }

/* Ícone em círculo de contorno dourado (cartão virtual) */
.circulo {
  flex: none; display: grid; place-items: center;
  width: 3.25rem; height: 3.25rem; border-radius: 50%;
  border: 1px solid var(--ouro-claro); color: var(--sec-cor, currentColor);
}
.sec--bege .circulo, .sec--sombra .circulo { border-color: var(--ouro-escuro); }
.circulo svg { width: 1.45rem; height: 1.45rem; }
.icone { fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Cabeçalho ---------- */
.cabecalho {
  position: fixed; inset: 0 0 auto 0; z-index: 50; height: var(--cabecalho-h);
  background: var(--bege); color: var(--verde-profundo); --foco: var(--verde-profundo);
  border-bottom: 1px solid var(--ouro-claro);
  transition: background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.cabecalho__caixa { display: flex; align-items: center; justify-content: space-between; gap: var(--e-4); height: 100%; }
.logo { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; padding-block: 0.4rem; }
.logo__simbolo { width: 2.4rem; height: auto; }
.logo__palavra { width: 5.2rem; height: auto; }
@media (max-width: 21.9rem) { .cabecalho .logo__palavra { display: none; } }
@media (min-width: 30rem) { .logo__simbolo { width: 2.6rem; } .logo__palavra { width: 6.6rem; } }
.nav { display: none; }
.nav__lista { display: flex; gap: clamp(1.1rem, 2.2vw, 2.4rem); }
.nav__elo {
  position: relative; display: inline-flex; align-items: center; min-height: 2.75rem;
  font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
}
.nav__elo::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0.45rem; height: 1px; background: var(--ouro-degrade);
  transform: scaleX(0); transform-origin: left center; transition: transform var(--dur-1) var(--ease);
}
.nav__elo:hover::after, .nav__elo[aria-current="true"]::after { transform: scaleX(1); }
.cabecalho__acoes { display: flex; align-items: center; gap: var(--e-2); }
.cabecalho .btn { --btn-bg: transparent; --btn-cor: currentColor; --btn-borda: var(--ouro-escuro); font-size: var(--t-rotulo); }
.cabecalho .btn:hover { --btn-bg: var(--verde-profundo); --btn-cor: var(--bege); --btn-borda: var(--verde-profundo); }
.menu-abrir {
  display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem;
  background: none; border: 1px solid var(--ouro-escuro); border-radius: 50%; color: inherit; text-decoration: none;
}
.menu-abrir svg { width: 1.25rem; height: 1.25rem; }

/* Sobre o hero (só com JS): transparente no topo, bege ao rolar */
.js .cabecalho:not(.is-rolando) { background: transparent; border-bottom-color: transparent; }

@media (min-width: 62rem) {
  .nav { display: block; }
  .menu-abrir { display: none; }
}

/* ---------- Menu em tela cheia (celular) ---------- */
.menu {
  width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0;
  background: var(--bege-sombra); color: var(--verde-profundo); --foco: var(--verde-profundo);
  overflow: hidden auto;
}
.menu::backdrop { background: var(--bege-sombra); }
.menu__corpo { position: relative; z-index: 2; min-height: 100%; display: flex; flex-direction: column; padding: 0 var(--margem) calc(var(--e-6) + env(safe-area-inset-bottom)); }
.menu__topo { display: flex; align-items: center; justify-content: space-between; height: var(--cabecalho-h); }
.menu__fechar { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; background: none; border: 1px solid var(--ouro-escuro); border-radius: 50%; color: inherit; }
.menu__fechar svg { width: 1.1rem; height: 1.1rem; }
.menu__lista { margin-top: var(--e-6); counter-reset: m; }
.menu__lista li { border-top: 1px solid var(--ouro-claro); counter-increment: m; }
.menu__lista a {
  display: flex; align-items: baseline; gap: 1rem; padding: 1.05rem 0; text-decoration: none;
  font-family: var(--f-titulo); font-size: clamp(1.5rem, 6.4vw, 2rem); letter-spacing: 0.03em; line-height: 1.2;
}
.menu__lista a::before { content: "0" counter(m); font-family: var(--f-texto); font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.18em; color: var(--ouro-texto); }
.menu__base { margin-top: auto; padding-top: var(--e-6); display: grid; gap: var(--e-4); }
.menu__arco { position: absolute; z-index: 0; right: -55vw; bottom: -42vw; width: 130vw; aspect-ratio: 1; border-radius: 50%; background: var(--bege); }
.menu .marca-fundo { right: -30vw; top: 12vh; width: 105vw; opacity: 0.07; }

/* ---------- 1 · Hero ---------- */
.hero {
  position: relative; background: var(--bege-sombra); color: var(--verde-profundo);
  --foco: var(--verde-profundo);
  min-height: min(100svh, 62rem);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding-top: calc(var(--cabecalho-h) + var(--e-5));
  padding-bottom: calc(var(--arco-hero) + var(--e-4));
}
.hero + .sec > .arco { height: var(--arco-hero); }
.hero .marca-fundo { width: min(128vw, 62rem); right: max(-46vw, -18rem); top: -5rem; opacity: 0.13; }
.hero__faixa {
  position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; width: clamp(1.25rem, 5.2vw, 5.75rem);
  background: var(--ouro-degrade); clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.hero__caixa { position: relative; z-index: 2; }
.hero__titulo { max-width: 11.5em; margin-top: var(--e-4); }
.hero__sub { margin-top: clamp(1.25rem, 3vh, 2rem); max-width: 30em; }
.hero__acoes { margin-top: clamp(2rem, 4vh, 3rem); display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-3) var(--e-5); }
.confianca { margin-top: clamp(2.5rem, 6vh, 4.5rem); max-width: 58rem; }
.confianca__lista { display: grid; gap: var(--e-3) var(--e-6); padding-top: var(--e-4); }
.confianca__item { font-size: var(--t-menor); line-height: 1.55; }
.confianca__item .rotulo { display: block; margin-bottom: 0.3rem; }
@media (min-width: 48rem) {
  .confianca__lista { grid-template-columns: 1fr 1.5fr 1fr; }
  .hero__caixa { padding-right: clamp(2rem, 8vw, 9rem); }
}
@media (min-width: 62rem) {
  .hero .marca-fundo { width: min(64vw, 60rem); right: -7vw; top: -14%; }
}

/* ---------- 2 · Rastreamento ---------- */
.rastreio__topo { display: grid; gap: var(--e-5); }
.rastreio__numero {
  position: relative; font-family: var(--f-titulo); font-weight: 400; line-height: 0.82;
  font-size: clamp(9.5rem, 4rem + 30vw, 25rem); letter-spacing: -0.02em;
  background: var(--ouro-degrade); -webkit-background-clip: text; background-clip: text; color: transparent;
  margin-left: -0.05em; padding-bottom: 0.06em;
}
.rastreio__legenda { display: block; margin-top: var(--e-3); max-width: 20rem; }
.rastreio__estrias { position: absolute; z-index: 0; left: 0; top: 2%; width: 100%; height: clamp(14rem, 34vw, 30rem); opacity: 0.5; pointer-events: none; }
.rastreio__intro .titulo { margin-top: var(--e-3); }
.rastreio__intro .lead { margin-top: var(--e-4); }
.rastreio__corpo { display: grid; gap: var(--e-7); margin-top: var(--e-7); }
.definicoes > div { padding-block: var(--e-4); border-top: 1px solid var(--ouro-claro); }
.definicoes dt { margin-bottom: var(--e-2); }
.definicoes dd { max-width: 30em; }
.sinais__titulo { margin-bottom: var(--e-4); }
.sinais__lista { counter-reset: s; border-bottom: 1px solid var(--ouro-claro); }
.sinais__lista li {
  counter-increment: s; display: grid; grid-template-columns: 2.6rem 1fr; align-items: baseline;
  padding-block: 1.05rem; border-top: 1px solid var(--ouro-claro);
  font-size: var(--t-lead); font-weight: 300; line-height: 1.4;
}
.sinais__lista li::before { content: "0" counter(s); font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.18em; color: var(--ouro-texto); }
.sinais__nota { margin-top: var(--e-4); font-size: var(--t-menor); }
@media (min-width: 62rem) {
  .rastreio__topo { grid-template-columns: 5fr 6fr; align-items: end; gap: var(--e-7); }
  .rastreio__intro { padding-bottom: 1.5rem; }
  .rastreio__corpo { grid-template-columns: 4fr 6fr; gap: clamp(3rem, 9vw, 9rem); }
  .sinais { margin-top: calc(-1 * var(--e-5)); }
}

/* ---------- 3 · Como é o exame ---------- */
.etapas__grade { display: grid; gap: var(--e-7); }
.etapas__intro .titulo { margin-top: var(--e-3); }
.etapas__intro .lead { margin-top: var(--e-4); }
.etapas__intro .secundario { margin-top: var(--e-4); font-size: var(--t-menor); max-width: 26em; }
.trilha { position: relative; padding-left: clamp(3.6rem, 9vw, 6.5rem); }
.trilha__estrias {
  position: absolute; left: 0; top: 0; bottom: 0; width: clamp(2.6rem, 6vw, 4.5rem);
  clip-path: inset(0 0 calc((1 - var(--p, 1)) * 100%) 0);
}
.trilha__estrias img { width: 100%; height: 100%; }
.trilha__estrias::before {
  content: ""; position: absolute; inset: 0; opacity: 0.0;
}
.trilha__fantasma { position: absolute; left: 0; top: 0; bottom: 0; width: clamp(2.6rem, 6vw, 4.5rem); opacity: 0.16; }
.trilha__fantasma img { width: 100%; height: 100%; }
.etapa { position: relative; padding-bottom: var(--e-7); }
.etapa:last-child { padding-bottom: 0; }
.etapa__no {
  position: absolute; top: 0.2rem; left: calc(-1 * clamp(3.6rem, 9vw, 6.5rem) + clamp(2.6rem, 6vw, 4.5rem) / 2);
  width: 2.5rem; height: 2.5rem; margin-left: -1.25rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bege-sombra); border: 1px solid var(--ouro-escuro); color: var(--ouro-texto);
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em;
  transition: background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease);
}
.etapa__titulo { padding-top: 0.15rem; }
.etapa__texto { margin-top: var(--e-3); max-width: 33em; }
.etapa__dado { display: block; margin-top: var(--e-4); padding-top: var(--e-2); border-top: 1px solid var(--ouro-claro); max-width: 33rem; }
@media (min-width: 62rem) {
  .etapas__grade { grid-template-columns: 5fr 7fr; gap: clamp(3rem, 7vw, 8rem); align-items: start; }
  .etapas__intro { position: sticky; top: calc(var(--cabecalho-h) + var(--e-6)); }
}

/* ---------- 4 · Exames (lista editorial) ---------- */
.exames__topo { display: grid; gap: var(--e-4); margin-bottom: var(--e-7); }
.exames__topo .titulo { margin-top: var(--e-3); }
.exames__lista { position: relative; }
.exame { position: relative; border-top: 1px solid var(--ouro-claro); }
.exame:last-child { border-bottom: 1px solid var(--ouro-claro); }
.exame::before {
  content: ""; position: absolute; left: 0; top: -1px; width: 100%; height: 2px; background: var(--ouro-degrade);
  transform: scaleX(0); transform-origin: left center; transition: transform var(--dur-2) var(--ease);
}
.exame:hover::before, .exame:focus-within::before { transform: scaleX(1); }
.exame__caixa { display: grid; gap: var(--e-3); padding-block: var(--e-5); }
.exame__num { font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.18em; color: var(--ouro-texto); padding-top: 0.6em; }
.exame__nome { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.6rem, 1rem + 2.6vw, 3rem); line-height: 1.1; letter-spacing: 0.02em; }
.exame__linha { max-width: 30em; }
.exame__resumo { display: grid; gap: 0.35rem var(--e-5); margin-top: var(--e-3); font-size: var(--t-menor); }
.exame__resumo div { display: flex; gap: 0.6rem; align-items: baseline; }
.exame__resumo dt { flex: none; min-width: 5.2rem; }
.exame--pendente .exame__nome { font-family: var(--f-texto); font-size: var(--t-corpo); letter-spacing: 0; line-height: 1.7; }
@media (min-width: 62rem) {
  .exames__topo { grid-template-columns: 6fr 5fr; align-items: end; gap: var(--e-7); }
  .exame__caixa { grid-template-columns: 5rem 5fr 5fr auto; align-items: start; gap: var(--e-5); padding-block: var(--e-6); }
  .exame__acao { align-self: center; }
  .exame__resumo { grid-template-columns: 1fr; }
}
/* Em telas com cursor, o resumo se revela no hover/foco. No toque, fica sempre visível. */
@media (hover: hover) and (min-width: 62rem) {
  .exame__resumo { opacity: 0; transform: translateY(6px); transition: opacity var(--dur-1) var(--ease), transform var(--dur-1) var(--ease); }
  .exame:hover .exame__resumo, .exame:focus-within .exame__resumo { opacity: 1; transform: none; }
}

/* ---------- 5 · Segurança ---------- */
.seguranca .marca-fundo { width: min(120vw, 58rem); left: max(-50vw, -22rem); bottom: -12%; }
.seguranca__grade { display: grid; gap: var(--e-7); }
.seguranca__intro .titulo { margin-top: var(--e-3); }
.seguranca__intro .lead { margin-top: var(--e-4); }
.cuidados li { display: grid; gap: 0.4rem; padding-block: var(--e-4); border-top: 1px solid var(--ouro-claro); }
.cuidados li:first-child { border-top: 1px solid var(--ouro-claro); }
.cuidados li:last-child { border-bottom: 1px solid var(--ouro-claro); }
.cuidados h3 { font-family: var(--f-titulo); font-weight: 500; font-size: var(--t-h3); letter-spacing: 0.03em; line-height: 1.2; }
.cuidados p { color: var(--verde-suave); max-width: 32em; }
.seguranca__nota { margin-top: var(--e-5); max-width: 32em; }
@media (min-width: 62rem) {
  .seguranca__grade { grid-template-columns: 5fr 6fr; gap: clamp(3rem, 9vw, 10rem); }
  .seguranca__lista { padding-top: var(--e-7); }
}

/* ---------- 6 · Equipe ---------- */
.corpo__topo { max-width: 46rem; margin-bottom: var(--e-7); }
.corpo__topo .titulo { margin-top: var(--e-3); }
.corpo__topo .lead { margin-top: var(--e-4); }
.corpo__grade { display: grid; gap: var(--e-7); }
.medico { display: grid; align-content: start; }

/* Retrato em arco, com um eco dourado deslocado (como as peças da marca) */
.medico__retrato { position: relative; isolation: isolate; margin: 0; width: min(100%, 30rem); aspect-ratio: 4 / 5; }
.medico__retrato img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--raio-total) var(--raio-total) 0 0; background: var(--bege-sombra); }
.medico__retrato::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  border: 1px solid var(--ouro-escuro); border-radius: var(--raio-total) var(--raio-total) 0 0;
  transform: translate(0.9rem, -0.9rem);
}
.medico + .medico .medico__retrato::before { transform: translate(-0.9rem, -0.9rem); }
.medico__retrato::after { content: ""; position: absolute; left: 0; right: 0; bottom: -0.6rem; height: 1px; background: var(--ouro-degrade); }

.medico__texto { padding-top: var(--e-5); max-width: 30rem; }
.medico__nome { margin-top: 0.35rem; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.1rem); letter-spacing: 0.03em; line-height: 1.2; }
.medico__registro { margin-top: 0.5rem; font-size: var(--t-menor); }
.medico__registro .rotulo { margin-right: 0.5em; }
.medico__especialidades { margin-top: var(--e-4); border-top: 1px solid var(--ouro-claro); }
.medico__especialidades div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--e-3); padding-block: 0.7rem; border-bottom: 1px solid var(--ouro-claro); }
.medico__especialidades dt { font-weight: 500; }
.medico__especialidades dd { flex: none; font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ouro-texto); }
.medico__formacao { margin-top: var(--e-4); font-size: var(--t-menor); line-height: 1.55; color: var(--verde-suave); }
.medico__formacao li { position: relative; padding-left: 1.4rem; }
.medico__formacao li + li { margin-top: 0.55rem; }
.medico__formacao li::before { content: ""; position: absolute; left: 0; top: 0.78em; width: 0.75rem; height: 1px; background: var(--ouro-escuro); }
@media (min-width: 40rem) {
  .corpo__grade { grid-template-columns: 1fr 1fr; gap: var(--e-6); }
  .medico + .medico { margin-top: clamp(3rem, 8vw, 6rem); }
}
@media (min-width: 62rem) {
  .corpo__grade { gap: clamp(3rem, 8vw, 9rem); }
  .medico + .medico { margin-top: clamp(6rem, 11vw, 11rem); }
}

/* ---------- 7 · Dúvidas ---------- */
.duvidas__grade { display: grid; gap: var(--e-6); }
.duvidas__intro .titulo { margin-top: var(--e-3); }
.duvidas__intro .texto { margin-top: var(--e-4); }
.duvidas__intro .elo { margin-top: var(--e-4); }
.faq { border-bottom: 1px solid var(--ouro-escuro); }
.faq details { border-top: 1px solid var(--ouro-escuro); }
.faq summary {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--e-4);
  padding: 1.35rem 0; min-height: 2.75rem; cursor: pointer; list-style: none;
  font-size: var(--t-lead); font-weight: 400; line-height: 1.4;
}
.faq summary::-webkit-details-marker { display: none; }
.faq__sinal { position: relative; width: 2.25rem; height: 2.25rem; border: 1px solid var(--ouro-escuro); border-radius: 50%; flex: none; }
.faq__sinal::before, .faq__sinal::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 0.8rem; height: 1px; background: var(--verde-profundo);
  transform: translate(-50%, -50%); transition: transform var(--dur-1) var(--ease);
}
.faq__sinal::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq details[open] .faq__sinal::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq__resposta { padding: 0 0 var(--e-5); max-width: 38em; }
.faq__resposta p + p { margin-top: var(--e-3); }
.faq__resposta ul { margin-top: var(--e-2); }
.faq__resposta li { position: relative; padding-left: 1.4rem; }
.faq__resposta li::before { content: ""; position: absolute; left: 0; top: 0.85em; width: 0.75rem; height: 1px; background: var(--ouro-escuro); }
@media (min-width: 62rem) {
  .duvidas__grade { grid-template-columns: 4fr 7fr; gap: clamp(3rem, 8vw, 9rem); align-items: start; }
  .duvidas__intro { position: sticky; top: calc(var(--cabecalho-h) + var(--e-6)); }
}

/* ---------- 8 · Convênios e informações práticas ---------- */
.pratico { border-top: 1px solid var(--ouro-claro); }
.pratico__grade { display: grid; gap: var(--e-7); }
.pratico .titulo { margin-top: var(--e-3); }
.pratico__convenios .texto { margin-top: var(--e-4); }
.pratico__lista { display: grid; gap: var(--e-5); }
.pratico__item { display: grid; grid-template-columns: auto 1fr; gap: var(--e-4); align-items: start; }
.pratico__item h3 { margin-bottom: 0.35rem; padding-top: 0.2rem; }
.pratico__item p { max-width: 30em; }
@media (min-width: 62rem) {
  .pratico__grade { grid-template-columns: 5fr 6fr; gap: clamp(3rem, 9vw, 10rem); }
  .pratico__lista { padding-top: var(--e-6); }
}

/* ---------- 9 · Contato ---------- */
.contato .marca-fundo { width: min(110vw, 52rem); right: max(-40vw, -16rem); bottom: -18%; opacity: 0.08; }
.contato__grade { display: grid; gap: var(--e-7); }
.contato__intro .titulo { margin-top: var(--e-3); }
.contato__intro .lead { margin-top: var(--e-4); }
.contato__wa { margin-top: var(--e-5); }
.contato__ou { display: flex; align-items: center; gap: var(--e-3); margin-block: var(--e-6) var(--e-4); }
.contato__ou::after { content: ""; flex: 1; height: 1px; background: var(--ouro-claro); }

.form { display: grid; gap: var(--e-5); max-width: 34rem; }
.campo { display: grid; gap: 0.35rem; }
.campo label, .campo legend { padding: 0; }
.campo input[type="text"], .campo input[type="tel"], .campo select {
  width: 100%; min-height: 3rem; padding: 0.55rem 0; background: transparent; color: var(--verde-profundo);
  border: 0; border-bottom: 1px solid var(--ouro-escuro); border-radius: 0; font-size: var(--t-corpo);
  appearance: none; -webkit-appearance: none;
}
.campo select { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23997453' stroke-width='1.25'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E") right 0.2rem center / 0.75rem auto no-repeat; padding-right: 1.5rem; }
.campo select option { color: var(--verde-profundo); background: var(--bege); }
.campo input::placeholder { color: var(--verde-suave); opacity: 1; }
.campo input:focus-visible, .campo select:focus-visible { outline: 0; border-bottom: 2px solid var(--verde-profundo); padding-bottom: calc(0.55rem - 1px); }
.campo [aria-invalid="true"] { border-bottom: 2px solid var(--verde-profundo); }
.campo__erro { font-size: 0.875rem; color: var(--verde-profundo); display: flex; gap: 0.5rem; align-items: baseline; }
.campo__erro::before { content: ""; flex: none; width: 0.9rem; height: 1px; background: var(--ouro-escuro); transform: translateY(-0.3em); }
.campo__erro:empty { display: none; }
fieldset.campo { border: 0; margin: 0; padding: 0; min-width: 0; }
.opcoes { display: flex; flex-wrap: wrap; gap: 0.5rem var(--e-5); margin-top: 0.35rem; }
.opcao { display: inline-flex; align-items: center; gap: 0.7rem; min-height: 2.75rem; cursor: pointer; font-size: var(--t-corpo); }
.opcao input { appearance: none; -webkit-appearance: none; flex: none; width: 1.25rem; height: 1.25rem; margin: 0; border: 1px solid var(--ouro-escuro); border-radius: 50%; background: transparent; display: grid; place-items: center; }
.opcao input::after { content: ""; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--verde-profundo); transform: scale(0); transition: transform 300ms var(--ease); }
.opcao input:checked::after { transform: scale(1); }
.opcao--caixa { align-items: flex-start; font-size: var(--t-menor); line-height: 1.55; }
.opcao--caixa input { border-radius: var(--raio-1); margin-top: 0.15rem; }
.opcao--caixa input::after { border-radius: 0; width: 0.65rem; height: 0.65rem; }
.form__nota { font-size: 0.875rem; color: var(--verde-suave); }
.form__estado { font-size: var(--t-corpo); padding: var(--e-3) 0 0; border-top: 1px solid var(--ouro-escuro); }
.form__estado:empty { display: none; }

.onde { display: grid; gap: var(--e-5); align-content: start; }
.mapa {
  position: relative; overflow: hidden; aspect-ratio: 5 / 4; background: var(--bege);
  border-radius: var(--raio-total) var(--raio-total) 0 0;
  display: grid; place-items: center; text-align: center; padding: var(--e-6) var(--e-5) var(--e-5);
}
.mapa__estrias { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.7; }
.mapa__conteudo { position: relative; display: grid; justify-items: center; gap: var(--e-3); }
.mapa__conteudo .circulo { background: var(--bege); }
.onde__lista { display: grid; gap: var(--e-4); }
.onde__item { display: grid; grid-template-columns: auto 1fr; gap: var(--e-4); align-items: center; }
.onde__item a { text-decoration: none; border-bottom: 1px solid var(--ouro-claro); transition: border-color var(--dur-1) var(--ease); }
.onde__item a:hover { border-bottom-color: var(--ouro-escuro); }
.onde__item .rotulo { display: block; margin-bottom: 0.15rem; }
.onde__horario { font-size: var(--t-menor); color: var(--verde-suave); padding-left: calc(3.25rem + var(--e-4)); }
@media (min-width: 62rem) {
  .contato__grade { grid-template-columns: 6fr 5fr; gap: clamp(3rem, 9vw, 10rem); }
  .onde { padding-top: var(--e-6); }
}

/* ---------- 10 · Rodapé ---------- */
.rodape { position: relative; background: var(--verde-noite); color: var(--bege); --foco: var(--ouro-claro); --cor-rotulo: var(--ouro-claro); padding-block: var(--e-7) calc(var(--e-6) + env(safe-area-inset-bottom)); }
.rodape > .filete { position: absolute; top: 0; left: 0; width: 100%; }
.rodape__grade { display: grid; gap: var(--e-6); }
.rodape__logo { width: 11.5rem; height: auto; }
.rodape__nav { display: grid; gap: 0.1rem; align-content: start; }
.rodape__nav a { display: inline-flex; align-items: center; min-height: 2.75rem; text-decoration: none; font-size: var(--t-menor); }
.rodape__nav a:hover { text-decoration: underline; text-decoration-color: var(--ouro-claro); }
.rodape__legal { display: grid; gap: var(--e-3); font-size: 0.875rem; line-height: 1.65; color: var(--bege); align-content: start; }
.rodape__legal .rotulo { display: block; margin-bottom: 0.2rem; }
.rodape__aviso { margin-top: var(--e-6); padding-top: var(--e-4); padding-bottom: 4.5rem; border-top: 1px solid var(--verde-fumaca); display: grid; gap: var(--e-3); font-size: 0.875rem; color: var(--bege-suave); }
.rodape__aviso p:first-child { color: var(--bege); max-width: 44em; }
@media (min-width: 62rem) {
  .rodape__grade { grid-template-columns: 3fr 2fr 5fr; gap: var(--e-7); }
  .rodape__aviso { grid-template-columns: 1fr auto; align-items: end; padding-right: 5.5rem; padding-bottom: 0; }
}

/* ---------- 11 · WhatsApp flutuante ---------- */
.flutuante {
  position: fixed; z-index: 40; right: max(1rem, env(safe-area-inset-right)); bottom: calc(1rem + env(safe-area-inset-bottom));
  display: grid; place-items: center; width: 3.75rem; height: 3.75rem; border-radius: 50%;
  background: var(--verde-profundo); color: var(--bege); border: 1px solid var(--ouro-claro);
  box-shadow: 0 0 0 4px var(--bege); --foco: var(--verde-profundo);
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), opacity var(--dur-1) var(--ease), transform var(--dur-1) var(--ease), visibility 0s;
}
.flutuante svg { width: 1.7rem; height: 1.7rem; }
.flutuante:hover { background: var(--ouro-claro); color: var(--verde-profundo); }

/* ---------- Cookies ---------- */
.cookies {
  position: fixed; z-index: 60; left: max(1rem, env(safe-area-inset-left)); bottom: calc(1rem + env(safe-area-inset-bottom));
  width: min(26rem, calc(100vw - 2rem));
  background: var(--bege); color: var(--verde-profundo); border: 1px solid var(--ouro-escuro); border-top: 2px solid var(--ouro-escuro);
  padding: var(--e-4); font-size: 0.875rem; line-height: 1.6; --foco: var(--verde-profundo);
}
.cookies[hidden] { display: none; }
.cookies__acoes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2); margin-top: var(--e-3); }
.cookies__acoes button {
  min-height: 2.75rem; background: transparent; border: 1px solid var(--verde-profundo); border-radius: var(--raio-total);
  font-size: var(--t-rotulo); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  transition: background-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);
}
.cookies__acoes button:hover { background: var(--verde-profundo); color: var(--bege); }

/* ---------- Página de texto (privacidade) ---------- */
.pagina { padding-top: calc(var(--cabecalho-h) + var(--e-7)); }
.prosa { max-width: 42rem; }
.prosa h2 { font-family: var(--f-titulo); font-weight: 500; font-size: var(--t-h3); letter-spacing: 0.03em; line-height: 1.25; margin-top: var(--e-6); padding-top: var(--e-4); border-top: 1px solid var(--ouro-claro); }
.prosa p, .prosa ul { margin-top: var(--e-3); }
.prosa li { position: relative; padding-left: 1.4rem; }
.prosa li::before { content: ""; position: absolute; left: 0; top: 0.85em; width: 0.75rem; height: 1px; background: var(--ouro-escuro); }

/* ==========================================================================
   Movimento — uma só linguagem: lenta, fluida, orgânica.
   Tudo aqui dentro só existe com JS ativo e sem "reduzir movimento".
   Sem JS ou com prefers-reduced-motion, o conteúdo já está no estado final.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }

  /* Títulos entram por máscara, linha a linha */
  .js .mascara .linha { overflow: hidden; padding-block: 0.14em; margin-block: -0.14em; }
  .js .mascara .linha > span { transform: translateY(118%); transition: transform var(--dur-2) var(--ease); }
  .js .mascara .linha:nth-child(2) > span { transition-delay: 110ms; }
  .js .mascara .linha:nth-child(3) > span { transition-delay: 220ms; }
  .js .mascara.is-dentro .linha > span { transform: none; }

  /* O hero não espera o observador: entra ao carregar */
  .js .hero .mascara .linha > span { animation: subir 1000ms var(--ease) both; transition: none; }
  .js .hero .mascara .linha:nth-child(2) > span { animation-delay: 120ms; }
  .js .hero .mascara .linha:nth-child(3) > span { animation-delay: 240ms; }
  @keyframes subir { from { transform: translateY(118%); } to { transform: none; } }

  /* Filetes se desenham da esquerda para a direita */
  .js .desenha { transform: scaleX(0); transition: transform 1000ms var(--ease); }
  .js .desenha.is-dentro { transform: scaleX(1); }

  /* Etapa alcançada: o nó se preenche */
  .js .etapa.is-ativa .etapa__no { background: var(--ouro-claro); border-color: var(--ouro-claro); color: var(--verde-profundo); }

  @supports (animation-timeline: view()) {
    /* Símbolo gigante: deriva lenta, rotação quase imperceptível */
    .paralaxe { animation: deriva linear both; animation-timeline: view(); animation-range: entry 0% exit 100%; }
    @keyframes deriva { from { transform: translate3d(0, -3.5%, 0) rotate(-1.5deg); } to { transform: translate3d(0, 3.5%, 0) rotate(1.5deg); } }
    /* Arcos: a curva se levanta ao entrar */
    .arco { animation: erguer linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
    .arco--espelho { animation-name: erguer-espelho; }
    @keyframes erguer { from { transform: scaleY(0.3); } to { transform: scaleY(1); } }
    @keyframes erguer-espelho { from { transform: scale(-1, 0.3); } to { transform: scale(-1, 1); } }
  }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto; }
  .btn, .btn__icone, .elo::after, .elo svg, .nav__elo::after, .exame::before, .exame__resumo, .faq__sinal::before, .faq__sinal::after, .flutuante, .cabecalho, .etapa__no, .opcao input::after { transition-duration: 1ms; }
}

/* ---------- Impressão ---------- */
@media print {
  .cabecalho, .flutuante, .cookies, .menu, .arco, .marca-fundo, .hero__faixa, .form, .mapa { display: none; }
  .sec, .hero, .rodape { background: #fff; color: #000; padding-block: 1.5rem; min-height: 0; }
  .trilha__estrias, .trilha__fantasma { display: none; }
}

.sem-quebra { white-space: nowrap; }
address { font-style: normal; }
.sprite { position: absolute; }
.rodape__aviso--so { margin-top: 0; border-top: 0; padding-top: 0; padding-bottom: 0; }

/* ==========================================================================
   Páginas internas (exames, preparo, equipe, contato…) — Fase 1
   Mesmo sistema: bege, verde profundo, ouro só em detalhes, Cinzel nos títulos.
   ========================================================================== */
.migalhas { font-size: var(--t-menor); color: var(--verde-suave); }
.migalhas ol { display: flex; flex-wrap: wrap; gap: 0.35rem 0.6rem; list-style: none; margin: 0; padding: 0; }
.migalhas li + li::before { content: "/"; margin-right: 0.6rem; color: var(--ouro-escuro); }
.migalhas a { color: inherit; text-decoration: underline; text-decoration-color: var(--ouro-claro); text-underline-offset: 0.2em; }
.migalhas [aria-current] { color: var(--verde-profundo); }
.abertura { display: grid; gap: var(--e-4); }
.abertura .titulo { margin: 0; }
.abertura .titulo--display { font-size: clamp(2.2rem, 1.2rem + 4vw, 4.25rem); }
.revisao { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2) var(--e-3); padding: var(--e-3) 0; border-block: 1px solid var(--ouro-claro); font-size: var(--t-menor); color: var(--verde-suave); max-width: 46rem; }
.revisao img { width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; object-position: 50% 28%; }
.revisao strong { color: var(--verde-profundo); font-weight: 600; }
.revisao a { color: inherit; }
.resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--ouro-claro); max-width: 56rem; }
.resumo > div { padding: var(--e-3) var(--e-3) var(--e-3) 0; border-bottom: 1px solid var(--ouro-claro); min-width: 0; }
.resumo dt { font-size: var(--t-rotulo); letter-spacing: var(--trk-rotulo); text-transform: uppercase; color: var(--ouro-texto); font-weight: 600; }
.resumo dd { margin: 0.3rem 0 0; }
.acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-3) var(--e-5); }
.duas-colunas { display: grid; gap: var(--e-6); }
@media (min-width: 60rem) { .duas-colunas { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); } }
.sumario { font-size: var(--t-menor); }
.sumario ol { list-style: none; margin: var(--e-2) 0 0; padding: 0; display: grid; gap: 0.45rem; }
.sumario a { color: var(--verde-suave); text-decoration: none; }
.sumario a:hover { color: var(--verde-profundo); text-decoration: underline; }
@media (min-width: 60rem) { .sumario { position: sticky; top: calc(var(--cabecalho-h) + var(--e-4)); align-self: start; } }
.prosa h3 { font-family: var(--f-texto); font-weight: 600; font-size: var(--t-corpo); margin-top: var(--e-4); }
.prosa ol { margin-top: var(--e-3); padding-left: 1.4rem; display: grid; gap: 0.4rem; }
.prosa ol li { padding-left: 0.2rem; }
.prosa ol li::before { content: none; }
.prosa a:not(.btn) { color: var(--verde-profundo); text-decoration-color: var(--ouro-escuro); text-underline-offset: 0.2em; }
.nota { margin-top: var(--e-4); padding: var(--e-3) var(--e-4); border-left: 2px solid var(--ouro-escuro); background: color-mix(in srgb, var(--bege-sombra) 70%, transparent); font-size: var(--t-menor); }
.fontes { margin-top: var(--e-6); font-size: var(--t-menor); color: var(--verde-suave); }
.fontes li { padding-left: 0; }
.fontes li::before { content: none; }
.cartoes-links { display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); border-top: 1px solid var(--ouro-claro); }
.cartoes-links a { display: grid; gap: 0.4rem; padding: var(--e-4) var(--e-4) var(--e-4) 0; border-bottom: 1px solid var(--ouro-claro); text-decoration: none; color: inherit; }
.cartoes-links a:hover .titulo--3 { text-decoration: underline; text-decoration-color: var(--ouro-escuro); }
.cartoes-links p { color: var(--verde-suave); font-size: var(--t-menor); }
.atalhos { display: flex; flex-wrap: wrap; gap: var(--e-3) var(--e-5); margin-top: var(--e-4); }
.perfil { scroll-margin-top: calc(var(--cabecalho-h) + 1rem); }
.perfil__grade { display: grid; gap: var(--e-5); align-items: start; }
.perfil__foto { width: 100%; max-width: 18rem; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 50% 50% var(--raio-1) var(--raio-1) / 38% 38% var(--raio-1) var(--raio-1); background: var(--bege-sombra); }
.perfil__foto img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.perfil__texto h3 { margin-top: var(--e-5); }
.perfil__texto .acoes { margin-top: var(--e-5); }
.perfil__texto .btn { text-decoration: none; }
@media (min-width: 48rem) {
  .perfil__grade { grid-template-columns: minmax(14rem, 20rem) 1fr; gap: clamp(2rem, 6vw, 5rem); }
  .perfil__foto { position: sticky; top: calc(var(--cabecalho-h) + 1.5rem); max-width: none; }
}
@media print {
  .migalhas, .sumario, .acoes, .chamada { display: none; }
  .prosa { max-width: none; }
}
.medico__retrato-pagina { max-width: 18rem; margin-bottom: var(--e-4); }
.medico__retrato-pagina img { width: 100%; height: auto; border-radius: 50% 50% var(--raio-1) var(--raio-1) / 38% 38% var(--raio-1) var(--raio-1); }
.chamada .abertura { max-width: 46rem; }
.prosa .faq { margin-top: var(--e-4); }
.tabela-precos { overflow-x: auto; margin-top: var(--e-4); border-top: 1px solid var(--ouro-claro); }
.tabela-precos table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.tabela-precos th, .tabela-precos td { text-align: left; padding: var(--e-2) var(--e-2) var(--e-2) 0; border-bottom: 1px solid var(--ouro-claro); vertical-align: top; }
.tabela-precos thead th { font-size: var(--t-rotulo); letter-spacing: 0.06em; text-transform: uppercase; color: var(--ouro-texto); font-weight: 600; }
.tabela-precos tbody th { font-weight: 500; }
.tabela-precos td { white-space: nowrap; font-weight: 600; }
