/* Conceito: a linguagem do Function (pergaminho, tinta e um terracota) com o movimento de um ultrassom. O dourado fica só na imagem do bebê. */
@property --varredura { syntax: '<angle>'; inherits: false; initial-value: 84deg; }

:root {
  --pergaminho: #FEF9EF;
  --papel: #F5EEE1;
  --taupe: #D1C9BF;
  --tinta: #2A2B2F;
  --apoio: #515151;
  --branco: #FFFFFF;
  --terracota: #B05A36;
  --terracota-texto: #984B2B;
  --breu: #120A05;
  --breu-claro: #2A1609;
  --claro: #FFF7EA;
  --ouro: #E7B56A;

  --display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --corpo: 'Instrument Sans', 'Segoe UI', system-ui, sans-serif;

  --alt-cabecalho: 68px;
  --respiro: clamp(4rem, 9vw, 7.5rem);
  --curva: cubic-bezier(.16, 1, .3, 1);
  --sombra: 12px 32px 80px rgba(42, 43, 47, .1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--alt-cabecalho) + 28px); }
body { margin: 0; background: var(--pergaminho); color: var(--tinta); font: 400 1.0625rem/1.55 var(--corpo); letter-spacing: -.012em; -webkit-font-smoothing: antialiased; }
img, svg { max-width: 100%; display: block; }
img { height: auto; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: 0; line-height: 1.08; text-wrap: balance; }
h1 em, h2 em { font-style: italic; font-weight: 300; color: var(--terracota); }
h2 { font-size: clamp(2.3rem, 4.8vw, 3.7rem); }
h3 { font-size: 1.5rem; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--terracota); outline-offset: 3px; border-radius: 6px; }

.conteudo { width: min(100% - 2.5rem, 1280px); margin-inline: auto; }
.icone { width: 1.2em; height: 1.2em; flex: none; }
.seta { transition: transform .2s ease; }

.pular { position: absolute; left: 1rem; top: -4rem; z-index: 50; padding: .6rem 1rem; background: var(--tinta); color: var(--branco); border-radius: 8px; }
.pular:focus { top: 1rem; }

/* Entrada dos blocos: site.js liga a classe .revela só quando o movimento é permitido. */
.surge { transition: opacity .9s var(--curva), transform .9s var(--curva); transition-delay: calc(var(--i, 0) * 120ms); }
.revela .surge:not(.visivel) { opacity: 0; transform: translateY(28px); }

/* Botões */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 48px; padding: .65rem 1.4rem; border: 1.5px solid transparent; border-radius: 40px;
  font-weight: 600; font-size: 1rem; line-height: 1.2; text-align: center; text-decoration: none; white-space: nowrap;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.botao--primario { background: var(--terracota); color: var(--branco); }
.botao--linha { background: transparent; border-color: var(--terracota); color: var(--terracota-texto); }
.botao--claro { background: var(--claro); color: var(--terracota-texto); }
.botao--contorno { background: transparent; border-color: rgba(255, 247, 234, .55); color: var(--claro); }
.botao--texto { padding-inline: .7rem; }
.botao--icone { width: 48px; padding: 0; }
.acoes { display: flex; flex-wrap: wrap; gap: .7rem; }

@media (hover: hover) and (pointer: fine) {
  .botao--primario:hover { background: var(--terracota-texto); }
  .botao--linha:hover { background: var(--papel); }
  .botao--claro:hover { background: var(--branco); }
  .botao--contorno:hover { background: rgba(255, 247, 234, .12); border-color: var(--claro); }
  .botao--texto:hover, .botao--icone:hover { background: rgba(42, 43, 47, .07); }
  .cabecalho__nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
  .etapa:hover .seta { transform: translateX(4px); }
  .etapa:hover h3 { color: var(--terracota-texto); }
  .area:hover .seta, .item-exame a:hover .seta { transform: translateX(4px); }
  .area:hover h3 { color: var(--terracota-texto); }
  .atalhos a:hover { background: var(--papel); }
  .final__opcoes a:hover { background: rgba(255, 247, 234, .07); }
  .exame__navegar a:hover { border-color: var(--terracota); }
}

/* Cabeçalho: transparente sobre o topo escuro, sólido no resto do site. */
.cabecalho { position: fixed; top: 12px; left: 12px; right: 12px; z-index: 20; }
.cabecalho__barra {
  display: flex; align-items: center; gap: 1.25rem; width: min(100%, 1280px); min-height: var(--alt-cabecalho); margin-inline: auto; padding: .4rem .6rem .4rem 1.1rem;
  background: var(--pergaminho); border-radius: 12px; box-shadow: var(--sombra);
  transition: background-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.cabecalho__logo { flex: none; }
.cabecalho__logo img { width: 158px; }
.cabecalho__logo-claro { display: none; }
.cabecalho__nav { display: flex; gap: 1.2rem; margin-inline: auto; font-size: .97rem; }
.cabecalho__nav a { text-decoration: none; white-space: nowrap; }
.cabecalho__acoes { display: flex; align-items: center; gap: .15rem; }
.cabecalho__acoes .botao--primario { margin-left: .35rem; }
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .cabecalho__barra { background: transparent; box-shadow: none; color: var(--claro); }
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .cabecalho__logo-escuro { display: none; }
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .cabecalho__logo-claro { display: block; }
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .botao--texto:hover,
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .botao--icone:hover { background: rgba(255, 247, 234, .12); }
.js .cabecalho--sobre-topo:not(.cabecalho--rolou) .botao--primario { background: var(--claro); color: var(--terracota-texto); }
.menu-movel { display: none; position: relative; margin-left: auto; }
.menu-movel summary { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; list-style: none; font-size: 1.15rem; }
.menu-movel summary::-webkit-details-marker { display: none; }
.menu-movel nav { position: absolute; right: 0; top: calc(100% + 12px); display: grid; min-width: 240px; padding: .6rem; background: var(--pergaminho); color: var(--tinta); border-radius: 16px; box-shadow: var(--sombra); }
.menu-movel nav a { padding: .75rem .9rem; border-radius: 10px; text-decoration: none; }
.menu-movel nav a:hover { background: var(--papel); }

/* Topo: a imagem ocupa a direita e o fundo quase preto dela continua até a esquerda. */
.topo {
  position: relative; overflow: hidden; display: grid; align-items: end; min-height: min(100svh, 880px);
  padding-block: calc(var(--alt-cabecalho) + 3rem) clamp(2.5rem, 6vw, 4.5rem);
  background: var(--breu); color: var(--claro); isolation: isolate; --de: 0; --l: 0;
}
.topo__imagem { position: absolute; top: 0; right: 0; bottom: 0; width: min(82%, 1560px); }
.topo__bebe, .topo__ruido { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 70% 50%; }
.topo__ruido { opacity: 0; transition: opacity .5s ease; }
.topo__bebe { transition: opacity .4s ease; }
.topo--formando .topo__bebe {
  --m: conic-gradient(from calc(var(--de) * 1deg) at 50% -40%, transparent 0deg, #000 5deg, #000 calc((var(--l) + 5) * 1deg), transparent calc((var(--l) + 10) * 1deg));
  -webkit-mask-image: var(--m); mask-image: var(--m);
}
.topo__veu { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, var(--breu) 10%, rgba(18, 10, 5, .72) 36%, rgba(18, 10, 5, 0) 62%), linear-gradient(0deg, rgba(18, 10, 5, .6), rgba(18, 10, 5, 0) 28%); }
.topo__texto { position: relative; z-index: 1; display: grid; gap: 1.1rem; justify-items: start; }
.topo h1 { font-size: clamp(2.7rem, 6.2vw, 5.6rem); font-weight: 300; line-height: .98; }
.topo h1 em { color: var(--ouro); }
.topo__texto > p { max-width: 38ch; font-size: clamp(1.05rem, 1.5vw, 1.25rem); line-height: 1.4; color: rgba(255, 247, 234, .88); }
.topo__acoes { margin-top: .4rem; transition: opacity .9s var(--curva) .36s, transform .9s var(--curva) .36s; }
.topo__legenda { position: absolute; z-index: 1; right: clamp(1rem, 3vw, 2.5rem); bottom: 1rem; font-size: .8rem; color: rgba(255, 247, 234, .8); }
.topo__dica { position: absolute; z-index: 1; right: clamp(1rem, 3vw, 2.5rem); top: calc(var(--alt-cabecalho) + 2rem); padding: .3rem .9rem; border-radius: 99px; background: rgba(18, 10, 5, .62); font-size: .88rem; opacity: 0; transition: opacity .3s ease; }
.topo--sonda .topo__dica { opacity: 1; }
@media (hover: none), (pointer: coarse) { .topo__dica { display: none; } }

.linha { display: block; overflow: hidden; padding-bottom: .14em; margin-bottom: -.14em; }
.linha > span { display: block; transition: transform .9s var(--curva); transition-delay: calc(var(--i, 0) * 120ms); }

/* Antes do script assumir. Se ele não rodar, tudo aparece sozinho depois de 5 s. */
.anima .topo:not(.topo--pronta) .topo__bebe { opacity: 0; animation: mostrar .3s 5s forwards; }
.anima .topo:not(.topo--texto) .linha > span { transform: translateY(112%); transition: none; animation: mostrar .3s 5s forwards; }
.anima .topo:not(.topo--texto) .topo__acoes { opacity: 0; transform: translateY(12px); transition: none; animation: mostrar .3s 5s forwards; }
@keyframes mostrar { to { opacity: 1; transform: none; } }

/* Destaques */
.destaques { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: clamp(1.5rem, 3vw, 2.25rem); text-align: center; }
.destaques li { display: grid; gap: .1rem; padding-inline: 1rem; }
.destaques li + li { border-left: 1px solid var(--taupe); }
.destaques strong { font: 400 clamp(1.35rem, 2.3vw, 1.75rem)/1.15 var(--display); letter-spacing: 0; }
.destaques span { font-size: .95rem; color: var(--apoio); }

/* A clínica na home */
.clinica { padding-block: clamp(2.5rem, 5vw, 4rem) 0; }
.clinica .botao { justify-self: start; }

/* Cartões de como funciona */
.passos { display: grid; gap: clamp(1.75rem, 3vw, 2.75rem); padding-block: clamp(3rem, 6vw, 5rem) var(--respiro); }
.passos h2 { text-align: center; }
.cartoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cartao { display: grid; gap: .35rem; justify-items: center; align-content: start; padding: 2.25rem 1.75rem 1.75rem; background: var(--papel); border-radius: 24px; text-align: center; }
.cartao__num { font-weight: 600; font-size: .92rem; color: var(--terracota-texto); }
.cartao h3 { font-size: 1.85rem; }
.cartao p { color: var(--apoio); }
.mini { width: 100%; max-width: 230px; height: auto; margin-top: 1.25rem; overflow: visible; }
.mini__linha { fill: none; stroke: var(--taupe); stroke-width: 1.5; stroke-linecap: round; }
.mini__forte { fill: none; stroke: var(--terracota); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.mini__dia { fill: var(--taupe); }
.mini__escolha { fill: var(--terracota); transform-box: fill-box; transform-origin: center; animation: escolher 6s var(--curva) infinite; }
.mini__confere { stroke: var(--branco); stroke-dasharray: 26; animation: conferir 6s ease-out infinite; }
.mini__feixe { transform-box: view-box; transform-origin: 100px -12px; animation: varrer-mini 3.2s ease-in-out infinite alternate; }
.mini__texto { stroke-dasharray: 120; animation: escrever 6s ease-out infinite; animation-delay: calc(var(--i) * 260ms); }
.cartoes:not(.em-vista) .mini *, .pausado .mini * { animation-play-state: paused; }
@keyframes escolher { 0%, 12% { opacity: 0; transform: translate(-48px, -18px) scale(.6); } 22%, 80% { opacity: 1; transform: none; } 92%, 100% { opacity: 0; transform: scale(.8); } }
@keyframes conferir { 0%, 30% { stroke-dashoffset: 26; } 44%, 86% { stroke-dashoffset: 0; } 96%, 100% { stroke-dashoffset: 26; } }
@keyframes varrer-mini { from { transform: rotate(36deg); } to { transform: rotate(-36deg); } }
@keyframes escrever { 0% { stroke-dashoffset: 120; } 22%, 82% { stroke-dashoffset: 0; } 96%, 100% { stroke-dashoffset: 120; } }

/* Jornada: com .jornada--presa, a rolagem conduz as semanas. Sem ela, a régua funciona sozinha. */
.jornada { scroll-margin-top: calc(-1 * (var(--alt-cabecalho) + 28px)); }
.jornada--presa .jornada__trilho { height: 300vh; }
.jornada__palco { display: grid; align-content: center; padding-block: calc(var(--alt-cabecalho) + 2rem) 1.5rem; }
.jornada--presa .jornada__palco { position: sticky; top: 0; min-height: 100svh; }
.jornada__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 1.5rem clamp(2rem, 6vw, 5.5rem); align-items: end; }
.leitura { display: grid; gap: .2rem; }
.leitura__pergunta { color: var(--apoio); font-size: 1.1rem; }
.leitura__rotulo { margin-top: 1rem; font-weight: 600; }
.leitura__semana { display: flex; align-items: baseline; gap: .6rem; font-family: var(--display); font-weight: 300; line-height: .92; letter-spacing: 0; }
.leitura__semana output { font-size: clamp(5.5rem, 13vw, 10.5rem); font-variant-numeric: tabular-nums lining-nums; }
.leitura__semana span { font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-style: italic; color: var(--terracota-texto); }
.leitura__texto { min-height: 3.2em; max-width: 36ch; font-size: 1.12rem; color: var(--apoio); }
.leitura__texto a { color: var(--terracota-texto); font-weight: 600; }
.no-js .leitura__rotulo, .no-js .leitura__semana, .no-js .leitura__texto { display: none; }
.jornada__fecho { max-width: 62ch; padding-block: 1.5rem clamp(1rem, 3vw, 2rem); color: var(--apoio); }

.etapas { display: grid; }
.etapa { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) auto auto; gap: .85rem; align-items: baseline; padding-block: .72rem; border-bottom: 1px solid var(--taupe); text-decoration: none; color: var(--apoio); transition: color .2s ease; }
.etapa h3 { font-size: 1.35rem; line-height: 1.15; transition: color .2s ease; }
.etapa__num { font-size: .86rem; font-weight: 600; }
.etapa__para { font-size: .93rem; }
.etapa__quando { font-size: .88rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.etapa .seta { align-self: center; }
.etapa[data-ativo] { color: var(--tinta); }
.etapa[data-ativo] .etapa__num, .etapa[data-ativo] .etapa__quando { color: var(--terracota-texto); }

.regua { position: relative; grid-column: 1 / -1; }
.regua__trilho { position: relative; height: 104px; margin-inline: 17px; }
.regua__faixa { position: absolute; top: 34px; height: 30px; background: rgba(176, 90, 54, .2); border-radius: 7px; transition: background-color .2s ease; }
.regua__faixa[data-ativo] { background: var(--terracota); }
.regua__faixa--apagada { background: rgba(42, 43, 47, .08); }
.regua:not(.regua--controle) .regua__faixa:not(.regua__faixa--apagada) { background: var(--terracota); }
.regua__num {
  position: absolute; top: -30px; left: 50%; transform: translateX(-50%); display: grid; place-items: center;
  width: 24px; height: 24px; border-radius: 50%; background: var(--papel); font-size: .8rem; font-weight: 600; line-height: 1;
}
.regua__faixa[data-ativo] .regua__num { background: var(--tinta); color: var(--branco); }
.regua:not(.regua--controle) .regua__faixa:not(.regua__faixa--apagada) .regua__num { background: var(--tinta); color: var(--branco); }
.regua:not(.regua--controle) .regua__faixa--apagada .regua__num { background: transparent; color: var(--apoio); }
.regua__marca { position: absolute; top: 68px; width: 1px; height: 7px; background: rgba(42, 43, 47, .32); }
.regua__marca--maior { height: 13px; background: var(--tinta); }
.regua__rotulo { position: absolute; top: 82px; transform: translateX(-50%); font-size: .9rem; font-variant-numeric: tabular-nums; }
.regua__legenda { margin-top: .2rem; font-size: .85rem; color: var(--apoio); text-align: center; }
.regua__agulha { position: absolute; top: 32px; left: -17px; width: 34px; height: 34px; border-radius: 50%; background: var(--tinta); border: 4px solid var(--pergaminho); box-shadow: 0 4px 12px rgba(0, 0, 0, .3); pointer-events: none; will-change: transform; }
.regua:has(.regua__controle:focus-visible) .regua__agulha { outline: 3px solid var(--terracota); outline-offset: 2px; }
.no-js .regua__agulha, .no-js .regua__controle { display: none; }
.regua__controle {
  position: absolute; left: 0; top: 25px; width: 100%; height: 48px; margin: 0; padding: 0;
  background: transparent; -webkit-appearance: none; appearance: none; cursor: grab; touch-action: pan-y;
}
.regua__controle:active { cursor: grabbing; }
.regua__controle:focus-visible { outline: none; }
.regua__controle::-webkit-slider-runnable-track { height: 48px; background: transparent; }
.regua__controle::-moz-range-track { height: 48px; background: transparent; }
.regua__controle::-webkit-slider-thumb { -webkit-appearance: none; width: 34px; height: 34px; margin-top: 7px; opacity: 0; }
.regua__controle::-moz-range-thumb { width: 34px; height: 34px; border: 0; opacity: 0; }

/* Foto 3D */
.foto3d { margin-top: clamp(1.5rem, 3vw, 2.5rem); padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--breu); color: var(--claro); }
.foto3d h2 em { color: var(--ouro); }
.foto3d__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 2.5rem clamp(2rem, 5vw, 4rem); align-items: center; }
.foto3d__texto { display: grid; gap: 1.1rem; justify-items: start; }
.foto3d__texto > p { max-width: 44ch; font-size: 1.15rem; color: rgba(255, 247, 234, .88); }
.foto3d__lista { display: grid; width: 100%; margin: 0 0 .4rem; }
.foto3d__lista > div { padding-block: .9rem; border-top: 1px solid rgba(255, 247, 234, .2); }
.foto3d__lista dt { font-family: var(--display); font-size: 1.5rem; line-height: 1.2; letter-spacing: 0; }
.foto3d__lista dt a { text-underline-offset: 4px; text-decoration-color: rgba(255, 247, 234, .4); }
.foto3d__lista dd { margin: .2rem 0 0; color: rgba(255, 247, 234, .76); }
.foto3d__imagem { margin: 0; }
.foto3d__imagem figcaption { margin-top: .6rem; font-size: .8rem; text-align: right; color: rgba(255, 247, 234, .8); }

/* Áreas de atendimento na home */
.areas { padding-block: var(--respiro) 0; }
.areas__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2.25rem; }
.area { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: 1.75rem; background: var(--papel); border-radius: 24px; text-decoration: none; }
.area h3 { font-size: 1.85rem; transition: color .2s ease; }
.area p { color: var(--apoio); }
.area .seta { margin-top: auto; padding-top: .35rem; box-sizing: content-box; color: var(--terracota-texto); }

/* Outros exames e faixa em movimento */
.outros { padding-block: clamp(2.5rem, 5vw, 4rem) 0; }
.outros__texto, .clinica { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1rem clamp(2rem, 5vw, 4rem); align-items: end; }
.outros__texto { padding-bottom: clamp(1.75rem, 3vw, 2.5rem); }
.outros__texto h2, .clinica h2 { grid-row: span 2; }
.fita { position: relative; overflow: hidden; border-block: 1px solid var(--taupe); }
.fita__trilho { display: flex; width: max-content; animation: fita 64s linear infinite; }
.fita ul { display: flex; flex: none; }
.fita li { padding-block: 1rem; font: 300 1.4rem/1.2 var(--display); letter-spacing: 0; white-space: nowrap; }
.fita li::after { content: '·'; margin-inline: 1.15rem; color: var(--terracota); font-weight: 400; }
.fita:hover .fita__trilho, .pausado .fita__trilho { animation-play-state: paused; }
.fita__pausa { position: absolute; right: .75rem; top: 50%; display: grid; place-items: center; width: 44px; height: 44px; margin-top: -22px; padding: 0; background: var(--pergaminho); border: 1px solid var(--taupe); border-radius: 50%; cursor: pointer; }
.fita__pausa span { width: 12px; height: 14px; border-inline: 4px solid var(--tinta); }
.fita__pausa[aria-pressed="true"] span { height: 0; width: 0; margin-left: 3px; border-style: solid; border-width: 7px 0 7px 12px; border-color: transparent transparent transparent var(--tinta); }
@keyframes fita { to { transform: translateX(-25%); } }

/* Check-ups */
.checkups { padding-block: var(--respiro) 0; }
.secao-topo { display: grid; gap: .6rem; max-width: 880px; }
.secao-topo p { font-size: 1.15rem; color: var(--apoio); }
.checkups__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.25rem; }
.checkup { display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--papel); border-radius: 24px; }
.checkup h2, .checkup h3 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.checkup > p { color: var(--apoio); }
.checkup ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem 1.25rem; width: 100%; margin-block: .4rem 1rem; }
.checkup li::first-letter { text-transform: uppercase; }
.checkup > .botao, .checkup > .acoes { margin-top: auto; }
.checkup .botao { white-space: normal; }

/* Páginas institucionais */
.atendimentos { display: grid; gap: 2.25rem; padding-block: clamp(2.5rem, 5vw, 4rem) var(--respiro); }
.atendimentos .exame__intro { max-width: 34em; }
.atendimentos .checkups__grade { margin-top: 0; }
.grupos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.grupos .grupo { gap: .3rem; align-content: start; }
.grupos h3 { font-size: 1.35rem; }
.grupos p { color: var(--apoio); }

.catalogo { display: grid; gap: clamp(2.5rem, 5vw, 4rem); padding-block: clamp(2.5rem, 5vw, 4rem) var(--respiro); }
.catalogo > .exame__intro { max-width: 34em; }
.catalogo > .exame__nota { max-width: 68ch; }
.atalhos { display: flex; flex-wrap: wrap; gap: .5rem; }
.atalhos a { display: inline-flex; align-items: center; min-height: 44px; padding: .4rem 1rem; border: 1px solid var(--taupe); border-radius: 40px; font-size: .97rem; text-decoration: none; transition: background-color .2s ease; }
.catalogo__area { display: grid; gap: 1.5rem; }
.catalogo__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.item-exame { display: flex; flex-direction: column; gap: .35rem; padding: 1.5rem; background: var(--papel); border-radius: 20px; }
.item-exame h3 { font-size: 1.45rem; line-height: 1.15; }
.item-exame p { color: var(--apoio); font-size: .97rem; }
.item-exame .item-exame__tag { font-size: .88rem; font-weight: 600; color: var(--terracota-texto); }
.item-exame a { display: inline-flex; align-items: center; gap: .4rem; margin-top: auto; padding-top: .5rem; font-weight: 600; color: var(--terracota-texto); text-underline-offset: 3px; }

.contato { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 2rem clamp(2rem, 5vw, 4rem); align-items: start; padding-block: clamp(2.5rem, 5vw, 4rem) var(--respiro); }
.contato a { text-underline-offset: 3px; }
.contato__mapa { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; border-radius: 24px; background: var(--papel); }

/* Sobre */
.sobre { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 1rem; padding-block: var(--respiro) 0; }
.sobre__medico, .sobre__local { padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: 24px; }
.sobre__medico { display: grid; grid-template-columns: clamp(96px, 16vw, 170px) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: center; background: var(--papel); }
.sobre__medico h2 { margin-bottom: .9rem; }
.identificacao { font-size: 1.12rem; }
.identificacao li + li { margin-top: .15rem; }
.sobre__local { display: grid; gap: .9rem; justify-items: start; align-content: center; border: 1px solid var(--taupe); }
.sobre__local h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); }

/* Dúvidas */
.duvidas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: clamp(1.5rem, 4vw, 4rem); padding-block: var(--respiro); }
.duvidas details { border-bottom: 1px solid var(--taupe); }
.duvidas summary { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1.05rem; font-weight: 600; cursor: pointer; list-style: none; }
.duvidas summary::-webkit-details-marker { display: none; }
.duvidas summary::after { content: '+'; font-size: 1.4rem; line-height: 1; color: var(--terracota-texto); transition: transform .2s ease; }
.duvidas details[open] summary::after { transform: rotate(45deg); }
.duvidas details p { max-width: 60ch; padding-bottom: 1.2rem; color: var(--apoio); }
.duvidas details[open] p { animation: abrir .3s ease-out; }
@keyframes abrir { from { opacity: 0; transform: translateY(-6px); } }

/* Chamada final */
.final { padding-block: clamp(3.5rem, 7vw, 6rem); background: var(--breu); color: var(--claro); }
.final h2 em { color: var(--ouro); }
.final__opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(1.75rem, 3vw, 2.75rem); border-top: 1px solid rgba(255, 247, 234, .2); }
.final__opcoes a { display: grid; gap: .3rem; align-content: start; padding: 1.5rem; text-decoration: none; transition: background-color .2s ease, opacity .9s var(--curva), transform .9s var(--curva); }
.final__opcoes a + a { border-left: 1px solid rgba(255, 247, 234, .2); }
.final__opcoes .icone { font-size: 1.25rem; margin-bottom: .35rem; color: var(--ouro); }
.final__opcoes strong { font-family: var(--display); font-weight: 400; font-size: 1.6rem; line-height: 1.2; letter-spacing: 0; }
.final__opcoes span { color: rgba(255, 247, 234, .76); }

/* Rodapé */
.rodape { padding-block: 3.5rem 2rem; background: var(--tinta); color: var(--branco); font-size: .97rem; }
.rodape__grade { display: grid; grid-template-columns: 1.3fr .8fr 1fr 1fr; gap: 2rem 3rem; }
.rodape__logo { width: 200px; margin-bottom: 1.2rem; }
.rodape__titulo { margin-bottom: .75rem; font-family: var(--corpo); font-size: 1rem; font-weight: 600; letter-spacing: -.012em; }
.rodape__lista { display: grid; gap: .4rem; color: rgba(255, 255, 255, .84); }
.rodape__lista a { text-underline-offset: 3px; }
.rodape__lista--igual { color: var(--branco); }
.rodape__fim { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, .16); font-size: .88rem; color: rgba(255, 255, 255, .72); }

/* Páginas de exame */
.exame-topo { padding: calc(var(--alt-cabecalho) + 12px + clamp(2.5rem, 5vw, 4rem)) 0 clamp(2rem, 4vw, 3rem); background: var(--papel); }
.leque__defs { position: absolute; }
.exame-topo__grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 440px); gap: 1.5rem clamp(2rem, 5vw, 4rem); align-items: center; }
.exame-topo__texto { display: grid; gap: .8rem; }
.exame-topo h1 { font-size: clamp(2.7rem, 5.6vw, 4.8rem); font-weight: 300; line-height: 1; }
.exame-topo__etapa { font-weight: 600; color: var(--terracota-texto); }
.exame-topo__chamada { font-size: 1.25rem; color: var(--apoio); }
.exame-topo__leque {
  display: grid; place-items: center; aspect-ratio: 1000 / 684; padding-top: 11%; text-align: center; color: var(--claro);
  background: linear-gradient(180deg, var(--breu-claro), var(--breu));
  -webkit-mask-image: conic-gradient(from 142deg at 50% -18.7%, #000 var(--varredura), transparent calc(var(--varredura) + 8deg));
  mask-image: conic-gradient(from 142deg at 50% -18.7%, #000 var(--varredura), transparent calc(var(--varredura) + 8deg));
  animation: varrer 1.1s var(--curva) .15s backwards;
}
.exame-topo__leque img { width: 100%; height: 100%; margin-top: -12%; object-fit: cover; }
.exame-topo__leque p { display: grid; gap: .1rem; }
.exame-topo__leque strong { font-family: var(--display); font-weight: 300; font-size: clamp(2.8rem, 5.4vw, 4.4rem); line-height: 1; letter-spacing: 0; white-space: nowrap; }
.exame-topo__leque span { font-size: 1.05rem; font-weight: 500; }
@keyframes varrer { from { --varredura: 0deg; } to { --varredura: 84deg; } }
.exame-topo .regua { grid-column: 1 / -1; }
.exame-topo .regua__legenda { color: var(--apoio); }
.exame-topo .regua__num { background: var(--pergaminho); }
.trilha { display: flex; flex-wrap: wrap; gap: .3rem .6rem; font-size: .95rem; }
.trilha a { text-underline-offset: 3px; }
.trilha a + a::before { content: '/'; display: inline-block; margin-right: .6rem; color: var(--apoio); }

.exame { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2rem, 5vw, 5rem); align-items: start; padding-block: clamp(2.5rem, 5vw, 4rem) var(--respiro); }
.exame__texto { display: grid; gap: 2.5rem; min-width: 0; max-width: 68ch; }
.exame__intro { font: 400 clamp(1.4rem, 2.2vw, 1.65rem)/1.35 var(--display); letter-spacing: 0; }
.exame__texto section { display: grid; gap: 1rem; }
.exame__texto h2 { font-size: clamp(1.85rem, 3vw, 2.4rem); }
.exame__fecho { padding: 1.3rem 1.5rem; background: var(--papel); border-radius: 20px; font-weight: 600; }
.exame__nota { padding: 1.3rem 1.5rem; border: 1px solid var(--taupe); border-radius: 20px; }
.marcada { display: grid; gap: .45rem; }
.marcada li { position: relative; padding-left: 1.4rem; }
.marcada li::before { content: ''; position: absolute; left: 0; top: .62em; width: .5rem; height: .5rem; border-radius: 50%; background: var(--terracota); }
.grupo { display: grid; gap: .6rem; padding: 1.3rem 1.4rem; background: var(--papel); border-radius: 20px; }
.definicoes { display: grid; margin: 0; }
.definicoes > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; padding-block: .8rem; border-bottom: 1px solid var(--taupe); }
.definicoes dt { font-weight: 600; }
.definicoes dd { margin: 0; }
.tabela { overflow-x: auto; background: var(--papel); border-radius: 18px; }
.tabela table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .97rem; }
.tabela th, .tabela td { padding: .8rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--taupe); }
.tabela thead th { font-weight: 600; color: var(--apoio); }
.tabela tbody th { font-weight: 600; white-space: nowrap; }
.tabela tbody tr:last-child > * { border-bottom: 0; }
.quatro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; counter-reset: exame; }
.quatro li { counter-increment: exame; display: grid; gap: .3rem; padding: 1.1rem 1.2rem; background: var(--papel); border-radius: 18px; font-weight: 500; }
.quatro li::before { content: counter(exame); font-family: var(--display); font-size: 1.5rem; color: var(--terracota-texto); }
.exame__navegar { display: flex; flex-wrap: wrap; gap: .7rem; padding-top: 1rem; }
.exame__navegar a { display: grid; flex: 1 1 220px; gap: .1rem; padding: 1rem 1.2rem; background: var(--papel); border: 1.5px solid transparent; border-radius: 18px; text-decoration: none; font-weight: 600; transition: border-color .2s ease; }
.exame__navegar span { font-size: .9rem; font-weight: 400; color: var(--apoio); }
.exame__proximo { text-align: right; }
.exame__lateral { position: sticky; top: calc(var(--alt-cabecalho) + 32px); }
.cartao-agenda { display: grid; gap: .8rem; padding: 1.5rem; background: var(--papel); border-radius: 24px; }
.cartao-agenda h2 { font-family: var(--corpo); font-size: 1rem; font-weight: 600; letter-spacing: -.012em; color: var(--apoio); }
.cartao-agenda__quando { font-family: var(--display); font-size: 1.7rem; line-height: 1.2; letter-spacing: 0; }
.cartao-agenda .botao { width: 100%; white-space: normal; }
.cartao-agenda .botao--primario { margin-top: .4rem; }

/* Barra de ações no celular */
.barra-acoes {
  position: fixed; inset: auto 0 0; z-index: 30; display: none; grid-template-columns: repeat(3, 1fr);
  padding-bottom: env(safe-area-inset-bottom); background: var(--pergaminho); box-shadow: 0 -8px 24px -12px rgba(42, 43, 47, .35);
}
.barra-acoes a { display: grid; justify-items: center; gap: .15rem; min-height: 62px; padding: .6rem .25rem .5rem; font-size: .84rem; font-weight: 600; text-decoration: none; }
.barra-acoes .icone { font-size: 1.1rem; }
.barra-acoes a:first-child { background: var(--terracota); color: var(--branco); }

@media (max-width: 1260px) {
  .cabecalho__nav, .cabecalho__acoes .botao--texto { display: none; }
  .cabecalho__acoes { margin-left: auto; }
  .menu-movel { display: block; margin-left: 0; }
}

@media (max-width: 980px) {
  .cartoes, .jornada__grade, .outros__texto, .clinica, .foto3d__grade, .contato, .sobre, .duvidas, .exame, .exame-topo__grade { grid-template-columns: minmax(0, 1fr); }
  .areas__grade, .catalogo__lista, .rodape__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outros__texto h2, .clinica h2 { grid-row: auto; }
  .mini { max-width: 200px; margin-top: .75rem; }
  .exame-topo .exame-topo__leque { display: none; }
  .exame__lateral { position: static; grid-row: 1; }
  .exame--clinica .exame__lateral { grid-row: auto; }
  .exame__texto { max-width: none; }
  .leitura__texto { min-height: 0; }
}

@media (max-width: 760px) {
  body { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
  .barra-acoes { display: grid; }
  .cabecalho__acoes { display: none; }
  .menu-movel { margin-left: auto; }
  .cabecalho__logo img { width: 146px; }

  .topo { min-height: calc(100svh - 62px); padding-bottom: 2rem; }
  .topo__imagem { width: 100%; bottom: auto; height: 68%; }
  .topo__bebe, .topo__ruido { object-position: 64% 50%; }
  .topo__veu { background: linear-gradient(0deg, var(--breu) 34%, rgba(18, 10, 5, .6) 50%, rgba(18, 10, 5, 0) 70%); }
  .topo h1 { font-size: clamp(2.5rem, 11.5vw, 4rem); }
  .topo__acoes { display: none; }
  .topo__legenda { top: calc(var(--alt-cabecalho) + 1.75rem); bottom: auto; }

  .destaques { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
  .destaques li + li { border-left: 0; }

  .jornada__palco { padding-bottom: calc(62px + 1rem); }
  .jornada--presa .leitura__pergunta, .jornada--presa .leitura__rotulo { display: none; }
  .jornada--presa .leitura__semana output { font-size: 5.5rem; }
  .jornada--presa .etapas li:not(:has([data-ativo])) { display: none; }
  .jornada--presa .etapa__para { display: none; }
  .jornada__grade { gap: .75rem; }
  .etapa { grid-template-columns: 1.6rem minmax(0, 1fr) auto; min-height: 44px; }
  .etapa__quando { display: none; }
  .regua__trilho { height: 96px; }

  .outros__texto { padding-bottom: 1.5rem; }
  .fita li { font-size: 1.2rem; }
  .checkups__grade, .final__opcoes, .areas__grade, .catalogo__lista, .grupos, .checkup ul.marcada { grid-template-columns: minmax(0, 1fr); }
  .final__opcoes a { padding-inline: 0; }
  .final__opcoes a + a { border-left: 0; border-top: 1px solid rgba(255, 247, 234, .2); }
  .rodape__grade { grid-template-columns: minmax(0, 1fr); }
  .definicoes > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
  .quatro { grid-template-columns: minmax(0, 1fr); }
  .sobre__medico { grid-template-columns: minmax(0, 1fr); }
  .sobre__medico img { width: 96px; }
}

/* A troca de página abre em leque a partir de um ponto acima da tela. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: none; }
::view-transition-new(root) { animation: abrir-leque 450ms var(--curva) both; }
@keyframes abrir-leque {
  from { clip-path: polygon(50% -60%, 50% 180%, 50% 180%); }
  to { clip-path: polygon(50% -60%, -160% 180%, 260% 180%); }
}

/* Movimento reduzido: sem varredura nem rolagem conduzida, só a imagem aparece em 200 ms. */
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .topo__bebe { animation: aparecer 200ms ease-out !important; }
  .fita__trilho { flex-wrap: wrap; width: auto; padding-inline: 1.25rem; }
  .fita ul { flex-wrap: wrap; }
  .fita ul[aria-hidden="true"], .fita__pausa { display: none; }
}
@keyframes aparecer { from { opacity: 0; } }
