/* ==== hero.css ==== */
/* Hipótese B · 943 — Dra. Raphaella Gatts */

:root {
  /* cor — amostrada da foto da recepção (pedra do balcão, madeira ripada, latão do R) */
  --pedra: #efe8de;
  --pedra-2: #e4d9c9;
  --pedra-3: #d9c8b1;
  --luz: #f8f2e8;
  --madeira: #c89a6a;
  --madeira-clara: #dcae7b;
  --madeira-escura: #85593a;
  --champanhe: #ecd5b0;
  --latao: #a8803f;
  --latao-texto: #8a6428;
  --cafe: #2b211b;
  --cafe-2: #574436;
  --creme: #fbf6ee;

  /* tipo */
  --f-titulo: "Alumni Sans", "Arial Narrow", sans-serif;
  --f-texto: "Lusitana", Georgia, serif;
  --t-titulo: clamp(2.9rem, 1rem + 3.6vw, 4.25rem);
  --t-apoio: clamp(1.0625rem, .95rem + .3vw, 1.2rem);
  --t-rotulo: .9375rem;

  /* espaço */
  --margem: clamp(20px, 4.4vw, 76px);
  --nav-h: 76px;
  --raio: 999px;

  /* o número */
  --num-razao: 1.7444; /* largura ÷ altura da tinta de "943" (medida em tempo real pelo script) */
  --micro: 14px;
  --traco: 2.4;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--pedra);
  color: var(--cafe);
  font-family: var(--f-texto);
  font-size: 1.125rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
a { color: inherit; }
img { display: block; max-width: 100%; }

/* ---------- navegação ---------- */
.nav {
  position: absolute; z-index: 20; inset: 0 0 auto 0;
  height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 0 var(--margem);
}
.nav__marca { display: flex; align-items: center; gap: 12px; text-decoration: none; min-height: 48px; }
.nav__r {
  display: grid; place-items: center;
  width: 42px; height: 42px; border-radius: 50%;
  border: 1px solid color-mix(in oklab, var(--latao) 70%, transparent);
  font-family: var(--f-texto); font-size: 1.45rem; line-height: 1; color: var(--latao-texto);
  padding-top: 2px;
}
.nav__nome {
  display: flex; flex-direction: column;
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.3rem; letter-spacing: .16em; text-transform: uppercase; line-height: 1;
}
.nav__nome small { font-weight: 500; font-size: .9rem; letter-spacing: .26em; color: var(--latao-texto); margin-top: 5px; }
.nav__links { display: flex; gap: clamp(20px, 2.6vw, 40px); margin-left: auto; }
.nav__links a {
  font-family: var(--f-titulo); font-weight: 500; font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase;
  text-decoration: none; color: var(--cafe-2); padding: 12px 0; position: relative;
}
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 1px; background: var(--latao); transform: scaleX(0); transform-origin: left; transition: transform .4s ease; }
.nav__links a:hover::after, .nav__links a:focus-visible::after { transform: scaleX(1); }
.nav__botao {
  display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px;
  border-radius: var(--raio); border: 1px solid var(--cafe);
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.25rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  background: color-mix(in oklab, var(--luz) 60%, transparent);
  backdrop-filter: blur(6px);
  transition: background .3s ease, color .3s ease;
}
.nav__botao:hover, .nav__botao:focus-visible { background: var(--cafe); color: var(--creme); }

/* ---------- hero ---------- */
.hero {
  position: relative;
  --col: min(420px, 31vw);
  --num-esq: calc(var(--margem) + var(--col) + clamp(24px, 3vw, 56px));
  --num-h: clamp(300px, min(62svh, calc((100vw - var(--num-esq) - 24px) / var(--num-razao))), 680px);
  min-height: max(100svh, 680px);
  max-height: 1100px;
  overflow: clip;
  isolation: isolate;
}

/* malha de fundo — pedra, luz da recepção, calor da madeira */
.hero__fundo {
  position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(120% 90% at 18% 30% in oklab, var(--luz), transparent 70%),
    linear-gradient(170deg in oklab, var(--pedra) 0%, var(--pedra-2) 100%);
}
.hero__fundo::after { /* granulado fino */
  content: ""; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .14 0 0 0 0 .1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: .05; mix-blend-mode: multiply; pointer-events: none;
}
.mancha { position: absolute; border-radius: 50%; will-change: transform; }
.m1 { width: 70vmax; height: 70vmax; right: -18vmax; top: -24vmax; background: radial-gradient(closest-side in oklab, #f2dcbc, #f2dcbc00); animation: respira-a 34s ease-in-out infinite alternate; }
.m2 { width: 60vmax; height: 60vmax; right: 2vmax; bottom: -34vmax; background: radial-gradient(closest-side in oklab, #e3c7a1cc, #e3c7a100); animation: respira-b 28s ease-in-out infinite alternate; }
.m3 { width: 56vmax; height: 56vmax; left: -22vmax; bottom: -28vmax; background: radial-gradient(closest-side in oklab, #e0d2bf, #e0d2bf00); animation: respira-c 38s ease-in-out infinite alternate; }
.m4 { width: 40vmax; height: 40vmax; left: 30vw; top: -10vmax; background: radial-gradient(closest-side in oklab, #fbf7f0, #fbf7f000); animation: respira-a 31s ease-in-out infinite alternate-reverse; }

@keyframes respira-a { to { transform: translate3d(-6vmax, 4vmax, 0) scale(1.08); } }
@keyframes respira-b { to { transform: translate3d(5vmax, -5vmax, 0) scale(.92); } }
@keyframes respira-c { to { transform: translate3d(6vmax, -3vmax, 0) scale(1.1); } }

/* ---------- o número 943 ---------- */
.numero {
  position: absolute; z-index: 1;
  height: var(--num-h);
  width: calc(var(--num-h) * var(--num-razao));
  left: var(--num-esq);
  top: calc(var(--nav-h) + 24px);
}
.numero__defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.numero__defs text, .numero__contorno text { font-family: var(--f-titulo); font-weight: 500; font-size: 1000px; }
.numero__sombra { position: absolute; inset: 0; filter: drop-shadow(0 22px 34px rgb(110 74 40 / .2)); }
.numero__janela {
  position: absolute; inset: 0;
  clip-path: url(#corte943);
  background: #b5865a;
  overflow: hidden;
}
.janela__malha { position: absolute; inset: -12%; transform: translate3d(var(--px, 0px), var(--py, 0px), 0); transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
.jm { position: absolute; border-radius: 50%; will-change: transform; }
.j1 { width: 60%; aspect-ratio: 1; left: -6%; top: -10%; background: radial-gradient(closest-side in oklab, #e3b47f, #e3b47f00); animation: deriva-1 26s ease-in-out infinite alternate; }
.j2 { width: 55%; aspect-ratio: 1; left: 30%; top: 30%; background: radial-gradient(closest-side in oklab, #7e5233, #7e523300); animation: deriva-2 33s ease-in-out infinite alternate; }
.j3 { width: 48%; aspect-ratio: 1; right: -4%; top: -16%; background: radial-gradient(closest-side in oklab, #f0d6ad, #f0d6ad00); animation: deriva-3 29s ease-in-out infinite alternate; }
.j4 { width: 50%; aspect-ratio: 1; left: 6%; bottom: -24%; background: radial-gradient(closest-side in oklab, #a07434, #a0743400); animation: deriva-2 37s ease-in-out infinite alternate-reverse; }
.j5 { width: 46%; aspect-ratio: 1; right: 0; bottom: -18%; background: radial-gradient(closest-side in oklab, #cf9a62, #cf9a6200); animation: deriva-1 31s ease-in-out infinite alternate-reverse; }
@keyframes deriva-1 { to { transform: translate3d(18%, 12%, 0) scale(1.12); } }
@keyframes deriva-2 { to { transform: translate3d(-16%, -10%, 0) scale(.9); } }
@keyframes deriva-3 { to { transform: translate3d(-14%, 16%, 0) scale(1.08); } }

.janela__frases {
  position: absolute; left: 0; top: 0; width: 100%;
  font-family: var(--f-texto); font-size: var(--micro); line-height: 1.5;
  color: rgb(255 248 236 / .7);
  white-space: nowrap;
  animation: rolar 150s linear infinite;
}
.janela__frases p { margin: 0; overflow: hidden; }
.janela__frases b { font-weight: 700; color: #fffaf1; }
@keyframes rolar { to { transform: translate3d(0, -50%, 0); } }

.janela__brilho {
  position: absolute; inset: 0;
  background: linear-gradient(104deg in oklab, #fff3e000 38%, #fff3e038 50%, #fff3e000 62%);
  background-size: 260% 100%;
  mix-blend-mode: soft-light;
  animation: brilho 21s ease-in-out infinite;
}
@keyframes brilho { 0%, 100% { background-position: 110% 0; } 50% { background-position: -10% 0; } }

.numero__contorno { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.numero__contorno text { fill: none; stroke: var(--latao); stroke-width: var(--traco); stroke-opacity: .85; }

/* opiniões por ano — legenda do número */
.anos {
  position: absolute; z-index: 1; margin: 0;
  left: calc(var(--num-esq) + 4px);
  top: calc(var(--nav-h) + 24px + var(--num-h) + 22px);
  width: 250px;
}
.anos__barras { display: flex; align-items: flex-end; gap: 5px; height: 34px; }
.anos__barras span { flex: 1; height: calc(var(--v) * 100%); min-height: 2px; background: color-mix(in oklab, var(--latao) 80%, transparent); border-radius: 1px; transform-origin: bottom; }
.anos figcaption { display: flex; justify-content: space-between; gap: 8px; margin-top: 8px; font-family: var(--f-titulo); font-weight: 500; font-size: .9375rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cafe-2); white-space: nowrap; }
.anos figcaption span { color: var(--latao-texto); font-weight: 600; }
.anos figcaption em { font-style: normal; }
.anos__nota { display: none; }

/* ---------- retrato ---------- */
.retrato {
  position: absolute; z-index: 2; margin: 0;
  right: clamp(-90px, -4vw, 0px); bottom: 0;
  height: min(calc(100% - var(--nav-h) - 150px), 880px);
  aspect-ratio: 831 / 1220;
}
.retrato img { width: 100%; height: 100%; object-fit: contain; object-position: bottom right; filter: drop-shadow(-18px 20px 40px rgb(95 62 34 / .16)); }

/* ---------- texto ---------- */
.hero__texto {
  position: relative; z-index: 3;
  width: min(420px, 31vw);
  margin-left: var(--margem);
  min-height: max(100svh, 680px);
  display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--nav-h) + 16px) 0 28px;
}
.rotulo {
  margin: 0 0 clamp(14px, 2.6svh, 24px);
  display: flex; flex-direction: column; gap: 4px;
  font-family: var(--f-titulo); text-transform: uppercase; line-height: 1.1;
}
.rotulo strong { font-weight: 600; font-size: 1.375rem; letter-spacing: .12em; color: var(--cafe); }
.rotulo span { font-weight: 500; font-size: 1.0625rem; letter-spacing: .2em; color: var(--latao-texto); }
.titulo {
  margin: 0;
  font-family: var(--f-titulo); font-weight: 500; font-size: min(var(--t-titulo), 7.8svh);
  line-height: .9; letter-spacing: -.004em;
  color: var(--cafe);
  text-wrap: balance;
}
.titulo__linha { display: block; overflow: clip; overflow-clip-margin: .2em; padding-bottom: .04em; }
.titulo__linha > span { display: block; }
.titulo__linha + .titulo__linha { margin-top: .12em; }
.titulo__linha:nth-child(2) { font-weight: 300; color: var(--cafe-2); }
.destaque { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-texto); }
.destaque svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.destaque path { fill: none; stroke: var(--latao); stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }

.contagens {
  list-style: none; margin: clamp(18px, 3.2svh, 32px) 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px;
  max-width: 420px;
}
.contagens li { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-bottom: 9px; position: relative; font-size: .9375rem; color: var(--cafe-2); }
.contagens li::before { content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 100%; background: color-mix(in oklab, var(--latao) 26%, transparent); }
.contagens li::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 3px; border-radius: 2px; width: calc(var(--p) * 100%); background: var(--latao); transform-origin: left; }
.contagens b { font-family: var(--f-titulo); font-weight: 600; font-size: 1.6rem; line-height: 1; color: var(--cafe); }

.apoio { margin: clamp(16px, 2.8svh, 28px) 0 0; font-size: var(--t-apoio); line-height: 1.55; color: var(--cafe-2); max-width: 30em; }

.acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: clamp(18px, 3.2svh, 32px); }
.botao {
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 56px; padding: 0 24px 0 20px; border-radius: var(--raio);
  background: var(--cafe); color: var(--creme);
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.3rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
  box-shadow: 0 14px 30px -12px rgb(43 33 27 / .55);
  transition: background .3s ease, transform .3s ease;
}
.botao svg { width: 22px; height: 22px; fill: currentColor; }
.botao:hover, .botao:focus-visible { background: #4a3626; transform: translateY(-2px); }
.link-sec {
  display: inline-flex; align-items: center; gap: 8px; min-height: 48px;
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
  color: var(--cafe); border-bottom: 1px solid var(--latao);
}
.link-sec span { transition: transform .3s ease; }
.link-sec:hover span { transform: translateX(4px); }

.prova { margin-top: clamp(18px, 3.2svh, 32px); padding-top: clamp(12px, 2svh, 18px); border-top: 1px solid color-mix(in oklab, var(--latao) 30%, transparent); }
.prova p { margin: 0; }
.prova__nota { font-size: 1.125rem; color: var(--cafe); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.estrelas { color: var(--latao); letter-spacing: .12em; font-size: 1rem; }
.prova__nota strong { font-family: var(--f-titulo); font-weight: 700; font-size: 1.6rem; line-height: 1; }
.prova__nota b { font-weight: 700; font-variant-numeric: tabular-nums; }
.prova__sep { color: var(--latao); }
.prova__registro { margin-top: 6px !important; font-size: .9375rem; letter-spacing: .02em; color: var(--cafe-2); }

/* citação flutuante — voz de paciente ao lado do retrato */
.citacao {
  position: absolute; z-index: 4; margin: 0;
  left: calc(var(--num-esq) + 290px);
  top: calc(var(--nav-h) + 24px + var(--num-h) + 18px);
  width: 270px;
  padding: 18px 20px 16px;
  background: color-mix(in oklab, var(--luz) 78%, transparent);
  -webkit-backdrop-filter: blur(14px) saturate(1.1);
  backdrop-filter: blur(14px) saturate(1.1);
  border: 1px solid color-mix(in oklab, var(--latao) 28%, transparent);
  border-radius: 4px 22px 22px 22px;
  box-shadow: 0 20px 40px -24px rgb(90 58 30 / .45);
}
.citacao p { margin: 0; font-size: 1.125rem; line-height: 1.45; color: var(--cafe); }
.citacao cite { display: block; margin-top: 8px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--latao-texto); }

/* ---------- entrada coreografada (só com JS) ---------- */
.js .nav { animation: cai .9s cubic-bezier(.2,.7,.2,1) both .1s; }
.js .rotulo { animation: sobe .9s cubic-bezier(.2,.7,.2,1) both .15s; }
.js .titulo__linha > span { animation: linha 1.1s cubic-bezier(.16,.8,.2,1) both; }
.js .titulo__linha:nth-child(1) > span { animation-delay: .25s; }
.js .titulo__linha:nth-child(2) > span { animation-delay: .42s; }
.js .destaque path { stroke-dashoffset: 1; animation: risco 1s cubic-bezier(.6,0,.2,1) forwards 1.35s; }
.js .contagens li::after { transform: scaleX(0); animation: barra 1.2s cubic-bezier(.2,.7,.2,1) forwards; }
.js .contagens li:nth-child(1)::after { animation-delay: 1s; }
.js .contagens li:nth-child(2)::after { animation-delay: 1.1s; }
.js .contagens li:nth-child(3)::after { animation-delay: 1.2s; }
.js .contagens, .js .apoio { animation: sobe .9s cubic-bezier(.2,.7,.2,1) both .75s; }
.js .apoio { animation-delay: .85s; }
.js .acoes { animation: sobe .9s cubic-bezier(.2,.7,.2,1) both .95s; }
.js .prova { animation: sobe .9s cubic-bezier(.2,.7,.2,1) both 1.05s; }
.js .retrato { animation: retrato 1.5s cubic-bezier(.16,.8,.2,1) both .2s; }
.js .citacao { animation: sobe 1s cubic-bezier(.2,.7,.2,1) both 1.5s; }
.js .anos { animation: sobe .9s cubic-bezier(.2,.7,.2,1) both 1.2s; }
.js .anos__barras span { animation: barra-v 1s cubic-bezier(.2,.7,.2,1) both; }
.js .anos__barras span:nth-child(n) { animation-delay: calc(1.25s + var(--v) * .5s); }
.js .numero__contorno text { stroke-dasharray: 4200; stroke-dashoffset: 4200; }
.js .numero__janela { opacity: 0; }
.js.pronto .numero__contorno text { animation: contorno 2.2s cubic-bezier(.45,0,.2,1) forwards; }
.js.pronto .numero__janela { animation: janela 1.6s cubic-bezier(.2,.7,.2,1) forwards .35s; }

@keyframes cai { from { opacity: 0; transform: translateY(-14px); } }
@keyframes sobe { from { opacity: 0; transform: translateY(18px); } }
@keyframes linha { from { transform: translateY(105%); } }
@keyframes risco { to { stroke-dashoffset: 0; } }
@keyframes barra { to { transform: scaleX(1); } }
@keyframes barra-v { from { transform: scaleY(0); } }
@keyframes retrato { from { opacity: 0; transform: translateY(40px); filter: blur(6px); } }
@keyframes contorno { to { stroke-dashoffset: 0; } }
@keyframes janela { from { opacity: 0; transform: translateY(2%); } to { opacity: 1; transform: none; } }

/* ---------- notebooks e telas baixas ---------- */
@media (min-width: 901px) and (max-height: 880px) {
  .rotulo strong { font-size: 1.25rem; }
  .rotulo span { font-size: 1rem; }
  .botao { min-height: 52px; font-size: 1.15rem; padding: 0 20px 0 18px; gap: 10px; }
  .botao svg { width: 20px; height: 20px; }
  .acoes { gap: 12px 18px; }
  .link-sec { font-size: 1.1rem; }
  .apoio { line-height: 1.5; }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .hero__texto { width: min(400px, 36vw); }
  .hero { --col: min(400px, 36vw); }
  .botao { font-size: 1.1rem; padding: 0 18px 0 16px; }
  .link-sec { font-size: 1.05rem; }
  .citacao { display: none; }
}

/* ---------- celular e tablet em pé (até 900 px) ---------- */
@media (max-width: 900px) {
  :root { --nav-h: 68px; --micro: 10.5px; --traco: 4; }
  .nav__links { display: none; }
  .nav__nome { font-size: 1.12rem; }
  .nav__nome small { font-size: .8rem; }
  .nav__botao { padding: 0 18px; font-size: 1.1rem; }

  .hero { min-height: 0; max-height: none; display: flex; flex-direction: column; }

  .numero {
    --num-w: min(calc(100vw - 24px), 820px);
    width: var(--num-w); height: calc(var(--num-w) / var(--num-razao));
    left: 12px; right: auto;
    top: calc(var(--nav-h) + 6px);
  }
  .retrato {
    --ret-h: clamp(350px, 94vw, 660px);
    height: var(--ret-h);
    bottom: auto; right: auto;
    left: calc(100vw - var(--ret-h) * .6812 + var(--ret-h) * .07);
    top: calc(var(--nav-h) + 26vw);
    -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 99%);
    mask-image: linear-gradient(to bottom, #000 78%, transparent 99%);
  }
  .retrato img { filter: none; }
  .hero__texto {
    width: auto; min-height: 0;
    margin: 0; padding: 0 20px 44px;
    margin-top: calc(var(--nav-h) + 26vw + clamp(350px, 94vw, 660px) - 50px);
  }
  .acoes { order: 3; }
  .apoio { order: 4; }
  .prova { order: 5; }
  .rotulo { margin-bottom: 14px; }
  .rotulo strong { font-size: 1.25rem; }
  .rotulo span { font-size: .9375rem; letter-spacing: .16em; }
  .titulo { font-size: clamp(2.6rem, 1.4rem + 5.6vw, 4.2rem); }
  .rotulo { margin-bottom: 14px; }
  .contagens { margin-top: 22px; gap: 14px; }
  .contagens b { font-size: 1.4rem; }
  .apoio { font-size: 1.0625rem; margin-top: 20px; }
  .acoes { margin-top: 24px; }
  .botao { width: 100%; justify-content: center; }
  .link-sec { margin: 0 auto; }
  .citacao { display: none; }
  .anos {
    left: 20px; width: calc(100vw - clamp(350px, 94vw, 660px) * .6812 - 20px);
    max-width: 260px;
    top: calc(var(--nav-h) + 6px + min(calc(100vw - 24px), 820px) / var(--num-razao) + 26px);
  }
  .anos__barras { height: 30px; gap: 4px; }
  .anos__nota { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; color: var(--latao); font-size: .875rem; letter-spacing: .1em; }
  .anos__nota b { font-family: var(--f-titulo); font-weight: 700; font-size: 1.75rem; line-height: 1; letter-spacing: 0; color: var(--cafe); }
  .anos figcaption { flex-wrap: wrap; white-space: normal; font-size: .875rem; letter-spacing: .08em; }
  .anos figcaption em { order: 3; width: 100%; color: var(--cafe-2); line-height: 1.25; }
}

/* tablet em pé: texto à esquerda, ao lado do corpo dela, logo abaixo do número */
@media (min-width: 600px) and (max-width: 900px) {
  .numero { --num-w: calc(100vw - 48px); left: 24px; top: calc(var(--nav-h) + 8px); }
  .retrato {
    --ret-h: min(84vw, 760px);
    height: var(--ret-h);
    left: calc(100vw - var(--ret-h) * .6812 + var(--ret-h) * .06);
    top: calc(var(--nav-h) + 30vw);
  }
  .anos { display: none; }
  .hero__texto {
    width: calc(100vw - min(84vw, 760px) * .62 - 40px);
    margin: calc(var(--nav-h) + 8px + (100vw - 48px) / var(--num-razao) + 34px) 0 0 32px;
    padding: 0 0 56px;
  }
  .titulo { font-size: clamp(2.8rem, 1rem + 4.6vw, 3.6rem); }
  .botao { width: auto; }
  .link-sec { margin: 0; }
  .contagens { gap: 12px; }
  .prova { order: 4; }
  .apoio { order: 5; }
}
@media (max-width: 599px) and (max-height: 800px) {
  .contagens { order: 4; }
}
@media (max-width: 380px) {
  .nav__nome small { letter-spacing: .14em; }
}

/* pausa fora da tela */
.hero.fora .mancha, .hero.fora .jm, .hero.fora .janela__frases, .hero.fora .janela__brilho { animation-play-state: paused; }

/* ==== base.css ==== */
/* ===== base do site (depois do hero.css) ===== */
:root {
  --noite: #1c1511; --noite-2: #261c16; --noite-3: #33261d;
  --latao-claro: #d9b27a;
  --secao-y: clamp(96px, 12vw, 180px);
  --t-h2: clamp(2.6rem, 1rem + 3.6vw, 4.25rem);
}
html { scroll-padding-top: 84px; }
:focus-visible { outline: 2px solid var(--latao); outline-offset: 3px; }
.pular { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 12px 18px; background: var(--cafe); color: var(--creme); border-radius: 999px; font-family: var(--f-titulo); font-size: 1.1rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.pular:focus { top: 12px; }

/* entrada por rolagem */
.js [data-rev] { opacity: 0; transform: translateY(24px); transition: opacity .9s cubic-bezier(.2,.7,.2,1) var(--d, 0s), transform .9s cubic-bezier(.2,.7,.2,1) var(--d, 0s); }
.js [data-rev].visto { opacity: 1; transform: none; }

/* granulado reutilizável */
.wf-grao { position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .14 0 0 0 0 .1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: .05; mix-blend-mode: multiply; }

/* nav fixa depois do hero */
.nav.nav--fixa { position: fixed; height: 64px; background: color-mix(in oklab, var(--pedra) 88%, transparent); -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1); border-bottom: 1px solid color-mix(in oklab, var(--latao) 22%, transparent); animation: cai .5s cubic-bezier(.2,.7,.2,1) both; }
.nav.nav--fixa .nav__r { width: 36px; height: 36px; font-size: 1.25rem; }
@media (min-width: 901px) { .nav__links a[href="#contato"] { } }

/* ==== med.css ==== */
/* ===== 2 · A médica (med) — escuro ===== */
.med {
  --med-texto: color-mix(in oklab, var(--creme) 86%, transparent);
  --med-apoio: #d8c7b0;
  --med-borda: color-mix(in oklab, var(--latao-claro) 28%, transparent);
  position: relative; isolation: isolate; overflow: clip;
  background: var(--noite);
  color: var(--med-texto);
  padding: var(--secao-y) var(--margem);
}
.med .wf-grao { mix-blend-mode: soft-light; opacity: .14; }
.med-fundo { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.med-luz { position: absolute; border-radius: 50%; }
.med-luz--1 { width: 70vw; aspect-ratio: 1; left: -18vw; top: -16vw; background: radial-gradient(closest-side in oklab, #5a3a24aa, #5a3a2400); }
.med-luz--2 { width: 60vw; aspect-ratio: 1; right: -16vw; bottom: -20vw; background: radial-gradient(closest-side in oklab, #4a3020cc, #4a302000); }
.med > * { position: relative; z-index: 1; }

/* abertura: o 7 e o texto */
.med-abre {
  --med-h: clamp(520px, 86vh, 860px);
  --med-dx: 0px;
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: calc(var(--med-h) * .5) minmax(0, 1fr); gap: clamp(40px, 6vw, 110px); align-items: center;
}
.med-sete { margin: 0; position: relative; height: var(--med-h); }
.med-sete__svg { position: absolute; top: 0; height: 100%; width: auto; aspect-ratio: 990 / 700; right: calc(var(--med-dx) - var(--med-h) * .3314); overflow: visible; }
.med-sete__glifo, .med-sete__contorno { font-family: var(--f-titulo); font-weight: 800; font-size: 1000px; }
.med-sete__contorno { fill: none; stroke: var(--latao-claro); stroke-width: 3; stroke-linejoin: round; stroke-dasharray: 2600; stroke-dashoffset: 0; }
.med-sete__fantasma { opacity: .22; }
.med-sete__legenda { position: absolute; left: 0; right: 0; bottom: -6px; transform: translateY(100%); margin: 0; padding-top: 14px; font-size: 1rem; line-height: 1.4; color: var(--med-apoio); }
.med-sete__legenda span { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .16em; text-transform: uppercase; color: var(--latao-claro); }

.med-texto { position: relative; align-self: stretch; display: flex; flex-direction: column; justify-content: flex-start; padding: calc(var(--med-h) * .1) 0 calc(var(--med-h) * .057 + 26px); }
.med-texto::after { content: ""; position: absolute; bottom: calc(var(--med-h) * .057); left: calc(-1 * clamp(40px, 6vw, 110px) - var(--med-h) * .2); right: calc(-1 * var(--margem)); height: 1px; background: linear-gradient(to right in oklab, var(--latao-claro), color-mix(in oklab, var(--latao-claro) 30%, transparent) 70%, transparent); transform-origin: left; }
.med-rotulo { margin: 0 0 22px; display: flex; align-items: center; gap: 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .26em; text-transform: uppercase; color: var(--latao-claro); }
.med-rotulo::before { content: ""; width: 44px; height: 1px; background: var(--latao-claro); }
.med-titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(3.2rem, 1rem + 6.4vw, 7.6rem); line-height: .88; letter-spacing: -.005em; color: var(--creme); }
.med-titulo__l { display: block; overflow: clip; overflow-clip-margin: .2em; padding-bottom: .04em; }
.med-titulo__l > span { display: block; }
.med-titulo__l + .med-titulo__l { margin-top: .08em; font-weight: 300; color: var(--champanhe); }
.med-destaque { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-claro); }
.med-destaque svg { position: absolute; left: -2%; width: 104%; bottom: -.06em; height: .16em; overflow: visible; }
.med-destaque path { fill: none; stroke: var(--latao-claro); stroke-width: 2.8; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }

.med-citacao { margin: auto 0 0; padding-top: 40px; max-width: 30em; }
.med-citacao p { margin: 0; font-size: clamp(1.4rem, .9rem + 1.3vw, 2.15rem); line-height: 1.32; color: var(--creme); text-wrap: pretty; }
.med-citacao__a { color: #cdb89c; }
.med-citacao cite { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .16em; text-transform: uppercase; color: var(--latao-claro); }
.med-citacao cite::before { content: ""; width: 28px; height: 1px; background: currentColor; }

/* hoje: a trajetória e a médica na poltrona */
.med-hoje {
  max-width: 1320px; margin: clamp(90px, 9vw, 140px) auto 0;
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(40px, 6vw, 110px); align-items: start;
}
.med-intro { margin: 0 0 clamp(44px, 5vw, 72px); max-width: 30em; font-size: clamp(1.0625rem, .95rem + .35vw, 1.25rem); line-height: 1.6; color: var(--med-apoio); }
.med-intro__a { display: block; margin-bottom: 18px; font-family: var(--f-titulo); font-weight: 300; font-size: clamp(2.6rem, 1.4rem + 2.8vw, 4.4rem); line-height: .95; letter-spacing: -.005em; color: var(--champanhe); }
.med-intro__a b { font-weight: 600; color: var(--latao-claro); }
.med-linha { position: relative; padding-top: clamp(0px, 4vw, 60px); }
.med-linha__titulo { margin: 0 0 8px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .26em; text-transform: uppercase; color: var(--latao-claro); }
.med-linha__lista { list-style: none; margin: 0; padding: 0 0 0 40px; position: relative; }
.med-ano { display: grid; grid-template-columns: clamp(7rem, 5rem + 4vw, 9.5rem) minmax(0, 1fr); gap: 24px; align-items: center; padding: 20px 0; position: relative; }
.med-ano + .med-ano { border-top: 1px solid var(--med-borda); }
.med-ano::before { content: ""; position: absolute; left: -40px; top: 50%; width: 11px; height: 11px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--noite); border: 1px solid var(--latao-claro); transition: background .6s ease, box-shadow .6s ease; }
.med-ano__n { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(3rem, 1.8rem + 2.6vw, 4.6rem); line-height: .85; letter-spacing: .01em; color: transparent; -webkit-text-stroke: 1.3px color-mix(in oklab, var(--latao-claro) 88%, transparent); transition: color .8s ease, -webkit-text-stroke-color .8s ease; }
.med-ano__t { margin: 0; font-size: 1.125rem; line-height: 1.5; color: var(--med-apoio); max-width: 26em; }
.med-ano__t strong { font-family: var(--f-titulo); font-weight: 600; font-size: 1.3em; letter-spacing: .02em; line-height: 1; color: var(--creme); }
.med-linha__trilho { position: absolute; left: 0; width: 1px; top: var(--med-t0, 0); bottom: var(--med-t1, 0); background: var(--med-borda); }
.med-linha__luz { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--latao-claro), #f0d6ad); transform-origin: top; transform: scaleY(var(--med-p, 1)); box-shadow: 0 0 12px #e3b47f88; }
.med-ano.med-aceso .med-ano__n { color: var(--latao-claro); -webkit-text-stroke-color: transparent; }
.med-ano.med-aceso::before { background: var(--latao-claro); box-shadow: 0 0 0 6px #d9b27a26, 0 0 18px #e3b47f99; }

.med-retrato { position: relative; margin-top: clamp(-120px, -7vw, -40px); margin-right: calc(-1 * (var(--margem) + max(0px, (100vw - 2 * var(--margem) - 1320px) / 2))); }
.med-retrato__foto { margin: 0; }
.med-retrato__foto img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 42%; }
.med-retrato__foto::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to right, var(--noite), transparent 16%), linear-gradient(to top, #1c151199, transparent 24%); }
.med-placa { position: absolute; margin: 0; left: clamp(-90px, -6vw, -40px); bottom: clamp(-60px, -4vw, -30px); width: clamp(150px, 15vw, 210px); z-index: 2; }
.med-placa img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border: 1px solid var(--med-borda); outline: 8px solid var(--noite); box-shadow: 0 30px 60px -24px #000; }
.med-placa figcaption { white-space: nowrap; margin-top: 18px; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .18em; text-transform: uppercase; color: var(--latao-claro); }

/* movimento (só com JS) */
.js .med-sete__contorno { stroke-dashoffset: 2600; }
.js .med-sete__janela { opacity: 0; }
.js .med-sete__fantasma { opacity: 0; }
.js .med-sete__foto { transform: scale(1.08); transform-origin: 190px -320px; }
.js .med-titulo__l > span { transform: translateY(105%); }
.js .med-destaque path { stroke-dashoffset: 1; }
.js .med-sete__legenda { opacity: 0; }
.js .med-texto::after { transform: scaleX(0); }
.js .med-citacao { opacity: 0; transform: translateY(18px); }
.med.med-on .med-texto::after { transition: transform 1.8s cubic-bezier(.6,0,.2,1) 1.2s; transform: none; }
.med.med-on .med-citacao { transition: opacity 1s cubic-bezier(.2,.7,.2,1) 1.5s, transform 1s cubic-bezier(.2,.7,.2,1) 1.5s; opacity: 1; transform: none; }
.med.med-on .med-sete__contorno { transition: stroke-dashoffset 2.2s cubic-bezier(.45,0,.2,1); stroke-dashoffset: 0; }
.med.med-on .med-sete__janela { transition: opacity 1.6s cubic-bezier(.2,.7,.2,1) .5s; opacity: 1; }
.med.med-on .med-sete__foto { transition: transform 2.4s cubic-bezier(.2,.7,.2,1) .5s; transform: none; }
.med.med-on .med-sete__fantasma { transition: opacity 2s ease 1.4s; opacity: .2; }
.med.med-on .med-sete__legenda { transition: opacity 1s ease 1.6s; opacity: 1; }
.med.med-on .med-titulo__l > span { transition: transform 1.1s cubic-bezier(.16,.8,.2,1); transform: none; }
.med.med-on .med-titulo__l + .med-titulo__l > span { transition-delay: .17s; }
.med.med-on .med-destaque path { transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) 1.1s; stroke-dashoffset: 0; }

/* tablet e celular */
@media (min-width: 901px) and (max-width: 1180px) {
  .med-abre { --med-h: clamp(480px, 72vh, 700px); }
  .med-ano { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
@media (max-width: 900px) {
  .med-abre { --med-h: min(124vw, 760px); --med-dx: calc(50% - var(--med-h) * .2343); grid-template-columns: minmax(0, 1fr); gap: 84px; }
  .med-sete { width: 100%; }
  .med-sete__legenda { text-align: center; }
  .med-hoje { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 110px; }
  .med-retrato { order: -1; width: min(94%, 600px); margin: 0 calc(-1 * var(--margem)) 100px auto; }
  .med-placa { left: -8%; width: 120px; bottom: -44px; }
  .med-texto { padding: 0; }
  .med-texto::after { display: none; }
  .med-citacao { margin-top: 40px; padding: 24px 0 0; border-top: 1px solid var(--med-borda); }
  .med-linha { padding-top: 0; }
}
@media (max-width: 599px) {
  .med-linha__lista { padding-left: 28px; }
  .med-ano { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 18px 0; }
  .med-ano::before { left: -28px; top: 40px; }
  .med-ano__t { font-size: 1.0625rem; }
  .med-placa { width: 112px; bottom: -40px; }
  .med-placa figcaption { font-size: .9375rem; letter-spacing: .14em; }
}
@media (prefers-reduced-motion: reduce) {
  .js .med-sete__contorno { stroke-dashoffset: 0; }
  .js .med-sete__janela, .js .med-sete__legenda, .js .med-citacao { opacity: 1; transform: none; }
  .js .med-texto::after { transform: none; }
  .js .med-sete__fantasma { opacity: .2; }
  .js .med-sete__foto, .js .med-titulo__l > span { transform: none; }
  .js .med-destaque path { stroke-dashoffset: 0; }
}

/* ==== trt.css ==== */
/* ===== 3 · Tratamentos (trt) — claro ===== */
.trt {
  --trt-larg: 1360px;
  --trt-lado: max(var(--margem), calc((100% - var(--trt-larg)) / 2));
  --trt-linha: color-mix(in oklab, var(--latao) 30%, transparent);
  --trt-latao-txt: #6f4f1e; /* latão escurecido: passa AA (≥ 5,2:1) em rótulos pequenos sobre a pedra */
  position: relative; isolation: isolate; overflow: clip;
  padding: var(--secao-y) var(--trt-lado);
  background:
    radial-gradient(60% 50% at 80% 8% in oklab, var(--luz), transparent 70%),
    linear-gradient(180deg in oklab, var(--pedra) 0%, var(--pedra-2) 100%);
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  column-gap: clamp(40px, 6vw, 112px);
}
.trt > * { position: relative; z-index: 1; }

/* cabeçalho em largura total: título à esquerda, apoio pela base à direita */
.trt-cab { grid-column: 1 / 3; grid-row: 1; max-width: 64%; padding-bottom: clamp(48px, 6vw, 88px); }
.trt-apoio { grid-column: 2; grid-row: 1; justify-self: end; align-self: end; margin: 0 0 clamp(52px, 6.4vw, 94px); max-width: 22em; padding-left: 24px; border-left: 2px solid var(--latao); font-size: clamp(1.125rem, 1rem + .3vw, 1.25rem); line-height: 1.55; color: var(--cafe-2); }
.trt-rotulo { margin: 0 0 18px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--trt-latao-txt); }
.trt-titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(2.9rem, 1rem + 4.4vw, 5.2rem); line-height: .9; color: var(--cafe); }
.trt-titulo__l1 { display: block; }
.trt-titulo__l2 { display: block; margin-top: .12em; font-weight: 300; color: var(--cafe-2); }
.trt-destaque { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-texto); }
.trt-destaque svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.trt-destaque path { fill: none; stroke: var(--latao); stroke-width: 2.6; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .trt-destaque path { stroke-dashoffset: 1; transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .7s; }
.js .trt-titulo.visto .trt-destaque path { stroke-dashoffset: 0; }

/* foto sangrando até a borda esquerda, fixa enquanto a lista passa */
.trt-foto { grid-column: 1; grid-row: 2; margin: 0 0 0 calc(-1 * var(--trt-lado)); align-self: start; position: sticky; top: 88px; overflow: hidden; border-radius: 0 4px 4px 0; box-shadow: 0 30px 60px -36px rgb(90 58 30 / .55); }
.trt-foto img { width: 100%; height: min(calc(100vh - 112px), 860px); min-height: 580px; object-fit: cover; object-position: 60% 38%; }
.trt-foto::after { content: ""; position: absolute; inset: 45% 0 0 0; background: linear-gradient(180deg in oklab, rgb(28 21 17 / 0), rgb(28 21 17 / .78)); pointer-events: none; }
.trt-fala { position: absolute; z-index: 1; left: max(28px, var(--trt-lado)); right: 28px; bottom: 30px; margin: 0; }
.trt-fala p { margin: 0; font-family: var(--f-titulo); font-weight: 300; font-size: clamp(2.1rem, 1rem + 2.2vw, 3.2rem); line-height: .98; color: var(--creme); text-wrap: balance; }
.trt-fala p span { font-weight: 600; color: var(--champanhe); }
.trt-fala cite, .trt-prova cite, .trt-alem__fala cite { display: block; margin-top: 12px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase; color: var(--trt-latao-txt); }
.trt-fala cite { color: var(--latao-claro); }

/* dois capítulos: sem cortes (maior) e consagrados (menor) */
.trt-listas { grid-column: 2; grid-row: 2; }
.trt-cap { margin: 0; display: flex; align-items: center; gap: 18px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.125rem; letter-spacing: .22em; text-transform: uppercase; color: var(--trt-latao-txt); }
.trt-cap::after { content: ""; flex: 1; height: 1px; background: var(--latao); opacity: .55; }
.trt-cap--b { margin-top: clamp(48px, 6vw, 80px); }
.trt-lista { list-style: none; margin: 0; padding: 0; }
.trt-item { border-bottom: 1px solid var(--trt-linha); padding: 4px 0 22px; }
.trt-h3 { margin: 0; font: inherit; }
.trt-botao {
  all: unset; box-sizing: border-box; cursor: pointer; width: 100%;
  display: grid; grid-template-columns: 3rem minmax(0, 1fr) 52px; align-items: center; gap: 14px;
  min-height: 52px; padding: 18px 0 2px;
}
.trt-botao:focus-visible { outline: 2px solid var(--latao); outline-offset: 4px; border-radius: 4px; }
.trt-num { font-family: var(--f-titulo); font-weight: 500; font-size: 1.6rem; line-height: 1; letter-spacing: .02em; color: var(--trt-latao-txt); align-self: start; padding-top: .55em; }
.trt-nome { font-family: var(--f-titulo); font-weight: 400; font-size: clamp(3rem, 1.2rem + 4.6vw, 6.4rem); line-height: .92; letter-spacing: -.008em; color: var(--cafe); transition: color .5s ease; }
.trt-lista--b .trt-nome { font-size: clamp(2.3rem, 1.1rem + 2.6vw, 3.8rem); font-weight: 300; }
.trt-lista--b .trt-num { padding-top: .35em; font-size: 1.35rem; }
.trt-sinal { position: relative; width: 52px; height: 52px; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--latao) 50%, transparent); transition: background .4s ease, border-color .4s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.trt-sinal::before, .trt-sinal::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.5px; margin: -.75px 0 0 -8px; background: var(--cafe); transition: transform .5s cubic-bezier(.2,.7,.2,1), background .4s ease; }
.trt-sinal::after { transform: rotate(90deg); }
.trt-botao:hover .trt-sinal { border-color: var(--cafe); }
.trt-botao[aria-expanded="true"] .trt-sinal { background: var(--cafe); border-color: var(--cafe); }
.trt-botao[aria-expanded="true"] .trt-sinal::before, .trt-botao[aria-expanded="true"] .trt-sinal::after { background: var(--creme); }
.trt-botao[aria-expanded="true"] .trt-sinal::after { transform: rotate(0deg); }

/* o nome aberto ganha a malha de madeira e latão do 943 */
.trt-botao[aria-expanded="true"] .trt-nome, .trt-botao:hover .trt-nome {
  background:
    radial-gradient(closest-side at 20% 30% in oklab, #a07434, #a0743400),
    radial-gradient(closest-side at 70% 70% in oklab, #5e3c24, #5e3c2400),
    radial-gradient(closest-side at 90% 20% in oklab, #85593a, #85593a00),
    #7e5233;
  background-size: 200% 200%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: trt-malha 14s ease-in-out infinite alternate;
}
.trt-botao[aria-expanded="true"] .trt-nome { font-weight: 500; }
@keyframes trt-malha { from { background-position: 0% 0%; } to { background-position: 100% 100%; } }

.trt-para { margin: 10px 0 0 calc(3rem + 14px); font-size: 1.25rem; color: var(--cafe); }
.trt-painel { display: grid; grid-template-rows: 1fr; margin-left: calc(3rem + 14px); transition: grid-template-rows .6s cubic-bezier(.2,.7,.2,1); }
.trt-painel__in { overflow: hidden; min-height: 0; }
.trt-painel__in > p { margin: 18px 0 0; max-width: 34em; font-size: 1.1875rem; line-height: 1.6; color: var(--cafe); }
.js .trt-painel[hidden] { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .5s cubic-bezier(.2,.7,.2,1), visibility 0s .5s; }
.trt-prova { margin: 20px 0 4px; padding: 16px 20px 14px; background: color-mix(in oklab, var(--luz) 70%, transparent); border: 1px solid var(--trt-linha); border-radius: 4px 22px 22px 22px; max-width: 30em; }
.trt-prova p { margin: 0; font-size: 1.3125rem; line-height: 1.4; color: var(--cafe); }

/* além das varizes */
.trt-alem { grid-column: 1 / -1; grid-row: 3; margin-top: clamp(80px, 10vw, 150px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--latao); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px clamp(40px, 6vw, 112px); }
.trt-alem__titulo { margin: 0 0 22px; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(2.2rem, 1rem + 2.4vw, 3.4rem); line-height: .95; color: var(--cafe); }
.trt-alem__fala { margin: 0; max-width: 22em; }
.trt-alem__fala p { margin: 0; font-size: clamp(1.25rem, 1rem + .6vw, 1.55rem); line-height: 1.4; color: var(--cafe); }
.trt-alem__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 3vw, 48px); align-self: start; }
.trt-alem__lista li { display: flex; flex-direction: column; gap: 10px; padding: 22px 0 26px; border-top: 1px solid var(--trt-linha); }
.trt-alem__lista li:nth-child(-n+2) { border-top: 0; padding-top: 0; }
.trt-alem__lista span { font-family: var(--f-titulo); font-weight: 400; font-size: clamp(2rem, 1rem + 1.8vw, 2.9rem); line-height: 1; color: var(--cafe); }
.trt-alem__lista small { font-size: 1.125rem; line-height: 1.45; color: var(--cafe-2); }
.trt-acao { margin-top: 36px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.trt-acao__nota { margin: 0; max-width: 22em; font-size: 1.0625rem; color: var(--cafe-2); }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  .trt-cab { max-width: 70%; }
  .trt-apoio { grid-column: 1 / 3; grid-row: 2; justify-self: start; margin: -24px 0 56px; max-width: 34em; }
  .trt-foto { grid-row: 3; }
  .trt-listas { grid-row: 3; }
  .trt-alem { grid-row: 4; }
}
/* ---------- celular e tablet em pé ---------- */
@media (max-width: 900px) {
  .trt { grid-template-columns: minmax(0, 1fr); }
  .trt-cab, .trt-apoio, .trt-foto, .trt-listas, .trt-alem { grid-column: 1; max-width: none; }
  .trt-cab { grid-row: 1; padding-bottom: 22px; }
  .trt-apoio { grid-row: 2; margin: 0 0 36px; padding-left: 18px; }
  .trt-foto { grid-row: 3; position: relative; top: 0; margin: 0 calc(-1 * var(--trt-lado)) 48px; border-radius: 0; }
  .trt-listas { grid-row: 4; }
  .trt-alem { grid-row: 5; }
  .trt-fita { display: none; }
  .trt-foto img { height: auto; min-height: 0; aspect-ratio: 4 / 5; object-position: 64% 36%; }
  .trt-fala { left: var(--trt-lado); right: var(--trt-lado); bottom: 24px; }
  .trt-alem { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 599px) {
  .trt-titulo { font-size: clamp(2.7rem, 1.4rem + 6vw, 3.4rem); }
  .trt-botao { grid-template-columns: 2rem minmax(0, 1fr) 48px; gap: 8px; }
  .trt-sinal { width: 48px; height: 48px; }
  .trt-num { font-size: 1rem; padding-top: .9em; }
  .trt-para, .trt-painel { margin-left: calc(2rem + 8px); }
  .trt-para, .trt-painel__in > p { font-size: 1.0625rem; }
  .trt-num { font-size: 1.2rem; }
  .trt-alem__lista { grid-template-columns: minmax(0, 1fr); }
  .trt-alem__lista li:nth-child(2) { border-top: 1px solid var(--trt-linha); padding-top: 22px; }
  .trt-titulo__l2 br { display: none; }
  .trt-prova p { font-size: 1.15rem; }
  .trt-cap { font-size: 1rem; letter-spacing: .16em; }
  .trt .botao { width: 100%; justify-content: center; }
}

/* fita de luz âmbar (como a do painel do consultório) na borda da foto */
.trt-fita { position: absolute; z-index: 2; top: 0; right: 0; width: 3px; height: 100%; background: linear-gradient(180deg in oklab, #ffd9a000, #ffd9a0 18%, #f1b765 50%, #ffd9a0 82%, #ffd9a000); box-shadow: 0 0 18px 3px rgb(255 196 120 / .55), 0 0 60px 8px rgb(255 190 110 / .25); transform-origin: top; }
.js .trt-fita { transform: scaleY(0); transition: transform 1.8s cubic-bezier(.45,0,.2,1) .5s; }
.js .trt-foto.visto .trt-fita { transform: none; animation: trt-pulsa 9s ease-in-out 2.4s infinite alternate; }
@keyframes trt-pulsa { to { opacity: .55; } }

.trt.trt-fora .trt-nome, .trt.trt-fora .trt-fita { animation-play-state: paused; }
@media (max-width: 900px) {
  .trt-alem { display: flex; flex-direction: column; gap: 0; }
  .trt-alem__esq { display: contents; }
  .trt-alem__lista { order: 3; margin-top: 36px; }
  .trt-acao { order: 4; margin-top: 40px; }
}

/* ==== cns.css ==== */
/* ===== 4 · A consulta (cns) — escuro ===== */
.cns {
  --cns-larg: 1360px;
  --cns-lado: max(var(--margem), calc((100% - var(--cns-larg)) / 2));
  --cns-linha: color-mix(in oklab, var(--latao-claro) 24%, transparent);
  --cns-razao: 1.72;
  position: relative; isolation: isolate; overflow: clip;
  padding: var(--secao-y) var(--cns-lado);
  background: linear-gradient(180deg in oklab, var(--noite) 0%, var(--noite-2) 60%, var(--noite) 100%);
  color: var(--creme);
}
.cns > * { position: relative; z-index: 1; }
.cns .wf-grao { mix-blend-mode: soft-light; opacity: .14; }
.cns-fundo { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.cns-m { position: absolute; border-radius: 50%; }
.cns-m1 { width: 70vmax; height: 70vmax; left: -22vmax; top: -26vmax; background: radial-gradient(closest-side in oklab, #85593a66, #85593a00); animation: cns-resp-a 34s ease-in-out infinite alternate; }
.cns-m2 { width: 60vmax; height: 60vmax; right: -24vmax; top: 30%; background: radial-gradient(closest-side in oklab, #a0743440, #a0743400); animation: cns-resp-b 29s ease-in-out infinite alternate; }
.cns-m3 { width: 50vmax; height: 50vmax; left: 20%; bottom: -24vmax; background: radial-gradient(closest-side in oklab, #7e523355, #7e523300); animation: cns-resp-a 38s ease-in-out infinite alternate-reverse; }
@keyframes cns-resp-a { to { transform: translate3d(5vmax, 4vmax, 0) scale(1.08); } }
@keyframes cns-resp-b { to { transform: translate3d(-5vmax, -4vmax, 0) scale(.92); } }

/* ---- topo: o 340 e o título ---- */
.cns-topo { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 3vw, 48px) clamp(40px, 6vw, 112px); align-items: end; }
.cns-cab { display: contents; }
.cns-rotulo, .cns-titulo { grid-column: 1; }
.cns-titulo { grid-row: 2; }
.cns-rotulo { grid-row: 1; align-self: end; }
.cns-dela { grid-column: 2; grid-row: 1 / 3; align-self: end; }
.cns-num { grid-column: 1 / -1; grid-row: 3; margin: clamp(24px, 3vw, 48px) 0 0; }
.cns-num__svg { display: block; width: min(100%, calc(64svh * var(--cns-razao))); margin: 0 auto; height: auto; aspect-ratio: var(--cns-razao); overflow: visible; filter: drop-shadow(0 30px 50px rgb(0 0 0 / .35)); }
.cns-num__t { font-family: var(--f-titulo); font-weight: 500; font-size: 1000px; }
.cns-num__base { fill: #7e5233; }
.cns-num__fantasma { opacity: .3; }
.cns-num__janela { transform: translate(var(--cns-px, 0px), var(--cns-py, 0px)); transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
.cns-num__img { transform-box: fill-box; transform-origin: 50% 50%; animation: cns-deriva 30s ease-in-out infinite alternate; }
@keyframes cns-deriva { from { transform: scale(1.06) translate(-1.5%, 0); } to { transform: scale(1.16) translate(1.5%, -2%); } }
.cns-num__contorno { fill: none; stroke: var(--latao-claro); stroke-width: 3; stroke-opacity: .9; }
.js .cns-num__contorno { stroke-dasharray: 4200; stroke-dashoffset: 4200; }
.js .cns-num__svg g { opacity: 0; }
.js .cns-num.cns-vivo .cns-num__contorno { animation: cns-contorno 2.2s cubic-bezier(.45,0,.2,1) forwards; }
.js .cns-num.cns-vivo .cns-num__svg g { animation: cns-janela 1.6s cubic-bezier(.2,.7,.2,1) forwards .5s; }
@keyframes cns-contorno { to { stroke-dashoffset: 0; } }
@keyframes cns-janela { to { opacity: 1; } }

.cns-num__legenda { width: min(100%, calc(64svh * var(--cns-razao))); margin-inline: auto; display: flex; align-items: center; gap: 18px; margin-top: 26px; font-size: 1.25rem; color: color-mix(in oklab, var(--creme) 84%, transparent); }
.cns-num__legenda b { font-family: var(--f-titulo); font-weight: 600; font-size: 1.5rem; color: var(--creme); }
.cns-num__legenda em { font-style: normal; color: var(--latao-claro); font-weight: 700; }
.cns-num__barra { flex: 0 0 180px; height: 3px; border-radius: 2px; background: var(--cns-linha); overflow: hidden; }
.cns-num__barra i { display: block; height: 100%; width: calc(var(--v) * 100%); background: var(--latao-claro); transform-origin: left; }
.js .cns-num__barra i { transform: scaleX(0); transition: transform 1.2s cubic-bezier(.2,.7,.2,1) 1.6s; }
.js .cns-num.cns-vivo .cns-num__barra i { transform: none; }

.cns-rotulo { margin: 0; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--latao-claro); }
.cns-titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: var(--t-h2); line-height: .9; color: var(--creme); }
.cns-titulo__l1 { display: block; }
.cns-titulo__l2 { display: block; margin-top: .14em; font-weight: 300; color: var(--champanhe); }
.cns-destaque { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-claro); }
.cns-destaque svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.cns-destaque path { fill: none; stroke: var(--latao-claro); stroke-width: 2.6; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .cns-destaque path { stroke-dashoffset: 1; transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .7s; }
.js .cns-titulo.visto .cns-destaque path { stroke-dashoffset: 0; }
.cns-dela { margin: 0 0 .4em; padding-left: 22px; border-left: 2px solid var(--latao-claro); }
.cns-dela p { margin: 0; font-size: var(--t-apoio); line-height: 1.55; color: color-mix(in oklab, var(--creme) 90%, transparent); }
.cns-dela cite, .cns-balao cite, .cns-grande cite { display: block; margin-top: 10px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase; color: var(--latao-claro); }

/* ---- meio: foto e a consulta contada pelos pacientes ---- */
.cns-meio { margin-top: clamp(80px, 10vw, 150px); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 112px); align-items: start; }
.cns-foto { margin: 18px 0 0 18px; position: sticky; top: 110px; }
.cns-foto::before { content: ""; position: absolute; inset: -18px 18px 46px -18px; border: 1px solid color-mix(in oklab, var(--latao-claro) 55%, transparent); border-radius: 4px; pointer-events: none; }
.cns-foto img { position: relative; width: 100%; height: min(calc(100vh - 150px), 820px); object-fit: cover; object-position: 50% 55%; border-radius: 4px; box-shadow: 0 30px 60px -30px rgb(0 0 0 / .6); }
.cns-foto figcaption { margin-top: 12px; font-family: var(--f-titulo); font-weight: 500; font-size: .9375rem; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in oklab, var(--creme) 70%, transparent); }
.cns-passos__titulo { margin: 0 0 36px; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.9rem, 1rem + 1.6vw, 2.6rem); line-height: 1; color: var(--champanhe); }
.cns-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(26px, 2.6vw, 40px); }
.cns-passo { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 20px 32px; align-items: start; padding-top: 26px; border-top: 1px solid var(--cns-linha); }
.cns-passo__verbo { margin: 0; display: flex; flex-direction: column; gap: 6px; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(2rem, 1rem + 1.8vw, 3rem); line-height: .95; color: var(--creme); }
.cns-passo__verbo span { font-weight: 600; font-size: 1.9em; line-height: .8; color: transparent; -webkit-text-stroke: 1.4px var(--latao-claro); }
.cns-balao { margin: 0; padding: 20px 24px 18px; background: color-mix(in oklab, var(--noite-3) 80%, transparent); border: 1px solid var(--cns-linha); border-radius: 4px 22px 22px 22px; box-shadow: 0 20px 40px -24px rgb(0 0 0 / .6); }
.cns-balao p { margin: 0; font-size: 1.1875rem; line-height: 1.5; color: var(--creme); }
.cns-passo--auge .cns-balao { background: var(--champanhe); border-color: var(--champanhe); }
.cns-passo--auge .cns-balao p { color: var(--cafe); font-size: 1.375rem; line-height: 1.42; }
.cns-passo--auge .cns-balao cite { color: #6f4f1e; }
.cns-passo--auge .cns-passo__verbo { color: var(--champanhe); }
.cns-fonte { margin: 28px 0 0; font-size: 1rem; color: color-mix(in oklab, var(--creme) 70%, transparent); }

/* ---- fim: fala grande e chamada ---- */
.cns-fim { margin: clamp(96px, 12vw, 170px) auto 0; max-width: 980px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.cns-aspas { display: block; height: .42em; font-family: var(--f-texto); font-weight: 400; font-size: clamp(7rem, 4rem + 7vw, 12rem); line-height: .8; color: var(--latao-claro); }
.cns-fim { position: relative; }
.cns-fim::before { content: ""; position: absolute; z-index: -1; left: 50%; top: 50%; width: min(1100px, 120vw); aspect-ratio: 1.6; transform: translate(-50%, -50%); background: radial-gradient(closest-side in oklab, #a0743440, #a0743400); pointer-events: none; }
.cns-grande { margin: 0; }
.cns-grande p { margin: 0; font-family: var(--f-titulo); font-weight: 300; font-size: clamp(2.1rem, 1rem + 2.8vw, 3.8rem); line-height: 1.02; color: var(--creme); text-wrap: balance; }
.cns-acao { margin-top: clamp(36px, 4vw, 52px); display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cns-botao {
  display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 26px 0 22px; border-radius: 999px;
  background: var(--champanhe); color: var(--cafe);
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.3rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
  box-shadow: 0 14px 30px -12px rgb(0 0 0 / .6); transition: background .3s ease, transform .3s ease;
}
.cns-botao svg { width: 22px; height: 22px; fill: currentColor; }
.cns-botao:hover, .cns-botao:focus-visible { background: var(--creme); transform: translateY(-2px); }
.cns-botao:focus-visible { outline: 2px solid var(--latao-claro); outline-offset: 3px; }
.cns-acao__nota { margin: 0; font-size: 1.0625rem; color: color-mix(in oklab, var(--creme) 80%, transparent); }

/* ---------- tablet ---------- */
@media (max-width: 1100px) {
  .cns-topo { grid-template-columns: minmax(0, 1fr); }
  .cns-rotulo, .cns-titulo, .cns-dela, .cns-num { grid-column: 1; }
  .cns-titulo { grid-row: 2; } .cns-num { grid-row: 3; } .cns-dela { grid-row: 4; max-width: 36em; margin-top: 12px; }
}
/* ---------- celular e tablet em pé ---------- */
@media (max-width: 900px) {
  .cns-meio { grid-template-columns: minmax(0, 1fr); }
  .cns-foto { position: relative; top: 0; }
  .cns-foto img { height: auto; aspect-ratio: 4 / 4.6; object-position: 50% 45%; }
  .cns-foto { margin-bottom: 8px; }
}
@media (max-width: 599px) {
  .cns-num__legenda { flex-direction: column; align-items: flex-start; gap: 10px; font-size: 1.0625rem; }
  .cns-num__barra { flex-basis: auto; width: 120px; }
  .cns-balao { padding: 16px 18px 14px; }
  .cns-balao p { font-size: 1.0625rem; }
  .cns-passo { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .cns-passo__verbo { flex-direction: row; align-items: baseline; gap: 14px; font-size: 2rem; }
  .cns-passo--auge .cns-balao p { font-size: 1.1875rem; }
  .cns-aspas { font-size: 6rem; }
  .cns-titulo__l2 br { display: none; }
  .cns-foto::before { inset: -12px 12px 40px -12px; }
  .cns-foto { margin: 12px 0 0 12px; }
  .cns-fim { text-align: left; align-items: flex-start; }
  .cns-acao { align-items: stretch; width: 100%; }
  .cns-botao { width: 100%; justify-content: center; font-size: 1.15rem; padding: 0 18px; }
  .cns-dela p { font-size: 1.0625rem; }
}
.cns.cns-fora .cns-m, .cns.cns-fora .cns-num__img { animation-play-state: paused; }

/* ==== opi.css ==== */
/* ===== 5 · Opiniões — o acervo das 943 (agente 3) ===== */
.opi {
  --opi-borda: color-mix(in oklab, var(--latao) 30%, transparent);
  position: relative; isolation: isolate; overflow: clip;
  background: var(--luz);
  padding: var(--secao-y) var(--margem);
  color: var(--cafe);
}
.opi-fundo { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.opi-mancha { position: absolute; border-radius: 50%; }
.opi-mancha--1 { width: 70vw; aspect-ratio: 1; left: -22vw; top: -18vw; background: radial-gradient(closest-side in oklab, #f2e2c8, #f2e2c800); }
.opi-mancha--2 { width: 64vw; aspect-ratio: 1; right: -24vw; top: 22%; background: radial-gradient(closest-side in oklab, #ead9c0, #ead9c000); }
.opi-mancha--3 { width: 60vw; aspect-ratio: 1; left: 18vw; bottom: -30vw; background: radial-gradient(closest-side in oklab, #fdf9f2, #fdf9f200); }
.opi .wf-grao { z-index: -1; }
.opi-in { position: relative; max-width: 1320px; margin: 0 auto; }

/* ---------- topo ---------- */
.opi-topo { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 64px; align-items: end; }
.opi-rotulo { grid-column: 1 / -1; margin: 0 0 22px; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .22em; text-transform: uppercase; color: var(--latao-texto); }
.opi-titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: var(--t-h2); line-height: .9; letter-spacing: -.004em; color: var(--cafe); text-wrap: balance; }
.opi-titulo__l1, .opi-titulo__l2 { display: block; }
.opi-titulo__l2 { margin-top: .12em; font-weight: 300; color: var(--cafe-2); }
.opi-chave { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-texto); }
.opi-chave svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.opi-chave path { fill: none; stroke: var(--latao); stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .opi-chave path { stroke-dashoffset: 1; transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .9s; }
.js .opi-titulo.visto .opi-chave path { stroke-dashoffset: 0; }
.opi-notas { text-align: right; padding-bottom: .4rem; }
.opi-notas p { margin: 0; font-size: 1.125rem; color: var(--cafe-2); white-space: nowrap; }
.opi-notas p + p { margin-top: 6px; }
.opi-notas b { font-family: var(--f-titulo); font-weight: 700; font-size: 1.5rem; line-height: 1; color: var(--cafe); }
.opi-estrelas { color: var(--latao); letter-spacing: .1em; font-size: .9375rem; margin-right: 4px; }

/* ---------- palco: palavras × acervo ---------- */
.opi-palco {
  margin-top: clamp(48px, 6vw, 88px); display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  grid-template-areas: "esc leit" "esc graf" "dest graf";
  grid-template-rows: auto auto 1fr;
  column-gap: clamp(40px, 5vw, 96px); row-gap: 0; align-items: start;
}
.opi-leitura { grid-area: leit; }
.opi-escolha { grid-area: esc; }
.opi-acervo { grid-area: graf; }
.opi-destaque { grid-area: dest; align-self: end; margin-top: 48px; }
.opi-dica { margin: 0 0 18px; font-size: 1.125rem; color: var(--cafe-2); }
.opi-palavras { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 clamp(14px, 1.6vw, 26px); }
.opi-p {
  --fmin: 1.7rem; --fmax: 5.4rem;
  appearance: none; -webkit-appearance: none; background: none; border: 0; margin: 0; padding: .06em 0 .1em; cursor: pointer;
  min-height: 48px; display: inline-flex; align-items: baseline; gap: .1em;
  font-family: var(--f-titulo); font-weight: 500; line-height: .95; letter-spacing: -.005em;
  font-size: calc(var(--fmin) + (var(--fmax) - var(--fmin)) * var(--c));
  color: var(--cafe-2); -webkit-tap-highlight-color: transparent;
  transition: color .35s ease;
}
.opi-p__t {
  padding-bottom: .1em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8.5 C 40 4.2, 92 3.4, 140 5.6 S 186 9.2, 198 6.4' fill='none' stroke='%23a8803f' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left bottom / 0% .16em;
  transition: background-size .7s cubic-bezier(.6,0,.2,1);
}
.opi-p__n { position: static; align-self: flex-start; margin-top: .35em; font-family: var(--f-texto); font-size: .875rem; line-height: 1; color: var(--latao-texto); font-variant-numeric: tabular-nums; }
.opi-p:hover { color: var(--cafe); }
.opi-p[aria-pressed="true"] { color: var(--latao-texto); }
.opi-p[aria-pressed="true"] .opi-p__t { background-size: 100% .16em; }

.opi-leitura { display: flex; align-items: flex-end; gap: clamp(14px, 1.6vw, 24px); margin: 0 0 18px; }
.opi-leitura__n { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(5rem, 3rem + 5vw, 9rem); line-height: .74; letter-spacing: -.02em; color: var(--cafe); font-variant-numeric: tabular-nums; }
.opi-leitura__txt { display: flex; flex-direction: column; gap: 4px; padding-bottom: .1em; min-width: 0; }
.opi-leitura__de { font-size: 1.1875rem; line-height: 1.25; color: var(--cafe-2); }
.opi-leitura__p { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(2.3rem, 1.5rem + 2vw, 3.6rem); line-height: .9; color: var(--latao-texto); }

.opi-grafico { position: relative; padding-top: 30px; }
.opi-cv { display: block; width: 100%; }
html:not(.js) .opi-cv { display: none; }
.opi-anos { list-style: none; margin: 10px 0 0; padding: 8px 0 0; display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); column-gap: var(--opi-gap, 20px); border-top: 1px solid var(--opi-borda); }
.opi-anos li { position: relative; display: flex; flex-direction: column; align-items: center; line-height: 1.15; }
.opi-anos b { font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .04em; color: var(--cafe); }
.opi-tot { font-size: .875rem; color: var(--cafe-2); font-variant-numeric: tabular-nums; }
.opi-acesas { position: absolute; left: 50%; bottom: calc(100% + 21px + var(--opi-acesa-alt, 0px)); transform: translateX(-50%); padding: 1px 4px; border-radius: 4px; background: color-mix(in oklab, var(--luz) 88%, transparent); transition: bottom .9s cubic-bezier(.65,0,.35,1), opacity .6s ease; font-family: var(--f-titulo); font-weight: 700; font-size: 1.0625rem; line-height: 1; color: var(--latao-texto); font-variant-numeric: tabular-nums; }
.js .opi-acesas { opacity: 0; transition: bottom .9s cubic-bezier(.65,0,.35,1), opacity .6s ease 2.9s; }
.js .opi-viva .opi-acesas { opacity: 1; }
.opi-legenda { margin: 16px 0 0; font-size: .9375rem; line-height: 1.45; color: var(--cafe-2); }
.opi-legenda__ponto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #9e7332; margin-right: 6px; vertical-align: .05em; }

/* ---------- frases da palavra escolhida ---------- */
.opi-destaque .opi-frases__rotulo { margin-bottom: 18px; }
.opi-destaque__frase { position: relative; padding-top: 22px; border-top: 1px solid var(--opi-borda); }
.opi-destaque__frase::before { content: ""; position: absolute; left: 0; top: -2px; width: 44px; height: 3px; border-radius: 2px; background: var(--latao); }
.opi-destaque__frase .opi-frase__txt p { font-size: clamp(1.5rem, 1rem + 1vw, 2rem); line-height: 1.3; }
.opi-destaque__frase { transition: opacity .25s ease, transform .25s ease; }
.opi-destaque__frase.opi-sai { opacity: 0; transform: translateY(8px); }
.opi-destaque__frase.opi-entra { animation: opi-sobe .7s cubic-bezier(.2,.7,.2,1) both; }
.opi-destaque__frase.opi-entra .opi-m { animation: opi-marca .8s cubic-bezier(.6,0,.2,1) both .35s; }
.opi-frases__rotulo { margin: 0; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .22em; text-transform: uppercase; color: var(--latao-texto); }
.opi-frases { list-style: none; margin: clamp(56px, 6vw, 88px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); align-items: start; }
.opi-frase { position: relative; border-top: 1px solid var(--opi-borda); padding-top: 22px; }
.opi-frase::before { content: ""; position: absolute; left: 0; top: -2px; width: 44px; height: 3px; border-radius: 2px; background: var(--latao); }
.opi-frase:nth-child(2) { margin-top: 44px; }
.opi-frase:nth-child(3) { margin-top: 14px; }
.opi-frase__txt { margin: 0; }
.opi-frase__txt p { margin: 0; font-size: 1.25rem; line-height: 1.45; color: var(--cafe); text-wrap: pretty; }
.opi-m { color: inherit; padding: 0 .04em; background: linear-gradient(transparent 60%, color-mix(in oklab, var(--madeira-clara) 55%, transparent) 60%) no-repeat left / 100% 100%; }
.opi-frase__quem { margin: 14px 0 0; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cafe); }
.opi-frase__quem span { margin-left: 6px; font-family: var(--f-texto); font-weight: 400; font-size: .9375rem; letter-spacing: 0; text-transform: none; color: var(--cafe-2); }
.opi-frases .opi-frase { transition: opacity .25s ease, transform .25s ease; }
.opi-frases.opi-sai .opi-frase { opacity: 0; transform: translateY(8px); }
.opi-frases.opi-entra .opi-frase { animation: opi-sobe .7s cubic-bezier(.2,.7,.2,1) both calc(var(--j) * .08s); }
.opi-frases.opi-entra .opi-m { animation: opi-marca .8s cubic-bezier(.6,0,.2,1) both calc(.35s + var(--j) * .08s); }
@keyframes opi-sobe { from { opacity: 0; transform: translateY(14px); } }
@keyframes opi-marca { from { background-size: 0% 100%; } }

/* ---------- vozes em destaque ---------- */
.opi-vozes { margin-top: clamp(88px, 10vw, 150px); padding-top: 56px; border-top: 1px solid var(--opi-borda); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 56px clamp(28px, 3.4vw, 56px); align-items: start; }
.opi-voz { margin: 0; position: relative; }
.opi-voz blockquote { margin: 0; }
.opi-voz p { margin: 0; font-size: 1.375rem; line-height: 1.4; color: var(--cafe); text-wrap: pretty; }
.opi-voz figcaption { margin-top: 12px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cafe); }
.opi-voz figcaption span { margin-left: 6px; font-family: var(--f-texto); font-weight: 400; font-size: .9375rem; letter-spacing: 0; text-transform: none; color: var(--cafe-2); }
.opi-voz--1 { grid-column: 1 / span 6; }
.opi-voz--1 p { font-size: clamp(1.6rem, 1.1rem + 1.1vw, 2.25rem); line-height: 1.25; }
.opi-voz--2 { grid-column: 8 / span 4; margin-top: 14px; }
.opi-voz--3 { grid-column: 8 / span 4; grid-row: 2; }
.opi-voz--4 { grid-column: 2 / span 5; grid-row: 2; margin-top: 36px; }
.opi-voz--5 { grid-column: 3 / span 6; grid-row: 3; }
/* o fecho: a sexta estrela de Edna */
.opi-voz--0 { grid-column: 1 / -1; margin-top: clamp(40px, 5vw, 80px); padding: clamp(48px, 6vw, 96px) 0 0; border-top: 1px solid var(--opi-borda); text-align: center; }
.opi-voz--0 p { font-size: clamp(2.8rem, 1rem + 5.6vw, 7rem); line-height: .98; letter-spacing: -.015em; text-wrap: balance; }
.opi-voz--0 figcaption { margin-top: 22px; }
.opi-seis { font-family: var(--f-titulo); font-weight: 600; font-size: 1.3em; line-height: .7; color: var(--latao-texto); }
.opi-estrelas6 { display: flex; justify-content: center; gap: .18em; margin-bottom: 26px; font-size: clamp(1.6rem, 1.2rem + 1vw, 2.2rem); line-height: 1; color: var(--latao); }
.opi-est { display: inline-block; }
.opi-est--6 { color: transparent; -webkit-text-stroke: 1.4px var(--latao); position: relative; }
.opi-est--6::after { content: "★"; position: absolute; inset: 0; color: var(--latao-texto); clip-path: inset(100% 0 0 0); }
.js .opi-voz--0.visto .opi-est--6 { animation: opi-gira 1.6s cubic-bezier(.2,.7,.2,1) both .7s; }
.js .opi-voz--0.visto .opi-est--6::after { animation: opi-enche 1.1s cubic-bezier(.6,0,.2,1) forwards 1.7s; }
@keyframes opi-gira { from { opacity: 0; transform: translateY(-14px) rotate(-140deg) scale(.4); } }
@keyframes opi-enche { to { clip-path: inset(0 0 0 0); } }
html:not(.js) .opi-est--6::after { clip-path: none; }

/* ---------- fecho ---------- */
.opi-fim { margin-top: clamp(56px, 6vw, 88px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 64px; }
.opi-fim__links { display: flex; flex-wrap: wrap; gap: 8px 32px; }
.opi-metodo { margin: 0; max-width: 46em; font-size: .9375rem; line-height: 1.5; color: var(--cafe-2); }

/* ---------- até 1100: palco em coluna (mostrador, palavras e gráfico cabem juntos na tela) ---------- */
@media (max-width: 1100px) {
  .opi-palco { grid-template-columns: minmax(0, 1fr); grid-template-areas: "leit" "esc" "graf" "dest"; grid-template-rows: auto; }
  .opi-escolha { margin: 22px 0 26px; }
  .opi-dica { margin-bottom: 8px; }
  .opi-p { --fmin: 1.5rem; --fmax: 3.4rem; }
  .opi-destaque { margin-top: 56px; }
  .opi-frases { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .opi-voz--1 { grid-column: 1 / span 7; }
  .opi-voz--2 { grid-column: 9 / span 4; }
  .opi-voz--3 { grid-column: 1 / span 5; grid-row: auto; margin-top: 0; }
  .opi-voz--4 { grid-column: 7 / span 6; grid-row: auto; margin-top: 0; }
  .opi-voz--5 { grid-column: 1 / span 8; grid-row: auto; margin-top: 0; }
}
@media (max-width: 700px) {
  .opi-topo { grid-template-columns: minmax(0, 1fr); }
  .opi-notas { text-align: left; margin-top: 26px; }
  .opi-notas p { white-space: normal; font-size: 1.0625rem; }
  .opi-escolha { margin: 14px 0 18px; }
  .opi-dica { font-size: 1.0625rem; }
  .opi-p { --fmin: 1.3rem; --fmax: 2.35rem; min-height: 48px; padding: 0; }
  .opi-palavras { gap: 0 14px; }
  .opi-leitura { gap: 14px; margin-bottom: 0; }
  .opi-leitura__n { font-size: clamp(4.4rem, 2rem + 10vw, 5.5rem); }
  .opi-leitura__de { font-size: 1.0625rem; }
  .opi-leitura__p { font-size: clamp(2rem, 1.2rem + 3.5vw, 2.6rem); }
  .opi-anos b { font-size: .875rem; letter-spacing: 0; }
  .opi-acesas { font-size: .875rem; padding: 0 2px; }
  .opi-frases { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 40px; }
  .opi-frase:nth-child(n) { margin-top: 0; }
  .opi-frase__txt p { font-size: 1.125rem; }
  .opi-destaque__frase .opi-frase__txt p { font-size: 1.375rem; }
  .opi-vozes { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-top: 44px; }
  .opi-voz--1, .opi-voz--2, .opi-voz--3, .opi-voz--4, .opi-voz--5 { grid-column: 1; grid-row: auto; margin-top: 0; }
  .opi-voz p { font-size: 1.1875rem; }
  .opi-voz--1 p { font-size: 1.5rem; }
  .opi-voz--0 p { font-size: clamp(2.4rem, .8rem + 8vw, 3.2rem); }
}

/* ==== esp.css ==== */
/* ===== 6 · O consultório (esp) — escuro ===== */
@property --esp-a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.esp {
  --esp-apoio: #d8c7b0;
  --esp-borda: color-mix(in oklab, var(--latao-claro) 28%, transparent);
  --esp-led: #ffcf8a;
  position: relative; isolation: isolate; overflow: clip;
  background: var(--noite);
  color: color-mix(in oklab, var(--creme) 86%, transparent);
  padding: var(--secao-y) var(--margem);
}
.esp .wf-grao { mix-blend-mode: soft-light; opacity: .14; }
.esp > * { position: relative; z-index: 1; }
.esp-ripas { position: absolute !important; z-index: 0 !important; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 70% 40% in oklab, #6b4528aa, transparent 70%),
    radial-gradient(50% 40% at 15% 85% in oklab, #4a3020aa, transparent 70%),
    repeating-linear-gradient(90deg, #ffffff06 0 2px, transparent 2px 22px);
}

/* cabeçalho */
.esp-cabeca { max-width: 1320px; margin: 0 auto clamp(48px, 6vw, 88px); display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 88px); align-items: end; }
.esp-rotulo { margin: 0 0 22px; display: flex; align-items: center; gap: 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .26em; text-transform: uppercase; color: var(--latao-claro); }
.esp-rotulo::before { content: ""; width: 44px; height: 1px; background: var(--latao-claro); }
.esp-titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(3.2rem, 1rem + 6vw, 7.2rem); line-height: .88; color: var(--creme); }
.esp-titulo__l { display: block; overflow: clip; overflow-clip-margin: .2em; padding-bottom: .04em; }
.esp-titulo__l > span { display: block; }
.esp-titulo__l + .esp-titulo__l { margin-top: .06em; font-weight: 300; color: var(--champanhe); }
.esp-destaque { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-claro); }
.esp-destaque svg { position: absolute; left: -2%; width: 104%; bottom: -.06em; height: .16em; overflow: visible; }
.esp-destaque path { fill: none; stroke: var(--latao-claro); stroke-width: 2.8; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.esp-endereco { margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 4px 0; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.4rem, 1.1rem + .8vw, 1.85rem); letter-spacing: .06em; text-transform: uppercase; color: var(--creme); line-height: 1.1; }
.esp-endereco span { white-space: nowrap; }
.esp-endereco span:not(:last-child)::after { content: "·"; margin: 0 .45em; color: var(--latao-claro); }
.esp-apoio { margin: 0; font-size: clamp(1.0625rem, .95rem + .3vw, 1.2rem); line-height: 1.6; color: var(--esp-apoio); }

/* galeria editorial */
.esp-galeria {
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(16px, 2vw, 32px); row-gap: clamp(36px, 4vw, 64px);
  align-items: start;
}
.esp-foto { position: relative; margin: 0; }
.esp-quadro { position: relative; }
.esp-quadro img { width: 100%; height: auto; object-fit: cover; }
.esp-foto--grande { grid-column: 1 / 9; grid-row: 1; margin-left: calc(-1 * (var(--margem) + max(0px, (100vw - 2 * var(--margem) - 1320px) / 2))); }
.esp-foto--grande img { aspect-ratio: 16 / 10; object-position: 50% 42%; }
.esp-foto--vertical { grid-column: 9 / 13; grid-row: 1 / 3; margin-top: 16%; }
.esp-foto--vertical img { aspect-ratio: 683 / 1264; }
.esp-fala--grande { grid-column: 1 / 6; grid-row: 2; align-self: center; margin: 0; padding-right: 12px; }
.esp-foto--detalhe { grid-column: 6 / 9; grid-row: 2; z-index: 2; margin-top: -34%; }
.esp-foto--detalhe .esp-quadro { box-shadow: 0 0 0 10px var(--noite), 0 40px 70px -30px #000; }
.esp-foto--detalhe img { aspect-ratio: 352 / 433; }
.esp-foto--mesa { grid-column: 1 / 6; grid-row: 3; margin-top: clamp(20px, 4vw, 60px); }
.esp-foto--mesa img { aspect-ratio: 4 / 4.4; object-position: 50% 30%; }
.esp-lado { grid-column: 7 / 13; grid-row: 3; align-self: center; display: grid; gap: clamp(40px, 5vw, 72px); padding-top: clamp(20px, 4vw, 60px); }
.esp-fala--media { margin: 0; }
.esp-fala--media p { margin: 0; font-size: clamp(1.3rem, .95rem + .9vw, 1.75rem); line-height: 1.38; color: var(--creme); text-wrap: pretty; }
.esp-fala--media cite::before { content: ""; width: 28px; height: 1px; background: currentColor; }

.esp-fala--grande p { margin: 0; font-size: clamp(1.5rem, .9rem + 1.5vw, 2.35rem); line-height: 1.28; color: var(--creme); text-wrap: balance; }
.esp-fala cite { display: flex; align-items: center; gap: 12px; margin-top: 16px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .14em; text-transform: uppercase; color: var(--latao-claro); }
.esp-fala--grande cite::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.esp-fala--legenda { margin-top: 18px; max-width: 30em; font-size: 1.0625rem; line-height: 1.5; color: var(--esp-apoio); }
.esp-fala--legenda cite { margin-top: 8px; font-size: .9375rem; }

.esp-chegar { padding: 28px 0 0; border-top: 1px solid var(--esp-borda); }
.esp-chegar__titulo { margin: 0 0 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .24em; text-transform: uppercase; color: var(--latao-claro); }
.esp-chegar__lista { list-style: none; margin: 0; padding: 0; }
.esp-chegar__lista li { position: relative; padding: 8px 0 8px 22px; font-size: 1.125rem; line-height: 1.45; color: var(--creme); }
.esp-chegar__lista li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 8px; height: 8px; border-radius: 50%; background: var(--latao-claro); box-shadow: 0 0 10px #ffcf8a88; }
.esp-chegar__link { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; margin-top: 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; color: var(--creme); border-bottom: 1px solid var(--latao-claro); }
.esp-chegar__link span { transition: transform .3s ease; }
.esp-chegar__link:hover span, .esp-chegar__link:focus-visible span { transform: translateX(4px); }

/* título (só com JS) */
.js .esp-titulo__l > span { transform: translateY(105%); }
.js .esp-destaque path { stroke-dashoffset: 1; }
.esp.esp-on .esp-titulo__l > span { transition: transform 1.1s cubic-bezier(.16,.8,.2,1); transform: none; }
.esp.esp-on .esp-titulo__l + .esp-titulo__l > span { transition-delay: .17s; }
.esp.esp-on .esp-destaque path { transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) 1.1s; stroke-dashoffset: 0; }

/* a fita de LED: a luz âmbar dá a volta na moldura ao entrar e fica acesa no alto, como a fita embutida sobre o painel */
.esp-quadro::after {
  content: ""; position: absolute; inset: -1px; pointer-events: none; padding: 2px;
  background: conic-gradient(from var(--esp-a), transparent 0 62%, #ffcf8a00 64%, var(--esp-led) 82%, #fff3df 84%, transparent 86%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  filter: drop-shadow(0 0 6px #ffcf8acc);
  opacity: 0;
}
.esp-quadro::before {
  content: ""; position: absolute; z-index: 1; left: 0; right: 0; top: -1px; height: 42%; pointer-events: none; transform-origin: 50% 0;
  background:
    linear-gradient(90deg in oklab, #ffcf8a00, var(--esp-led) 16%, #fff3df 50%, var(--esp-led) 84%, #ffcf8a00) top / 100% 2px no-repeat,
    radial-gradient(70% 100% at 50% 0 in oklab, #ffc77a55, #ffc77a00 100%);
  mix-blend-mode: screen;
}
.js .esp-quadro::before { transform: scaleX(0); opacity: 0; }
.esp-quadro > img { position: relative; }
.esp-foto.visto .esp-quadro::after { animation: esp-led 2.4s cubic-bezier(.45,0,.2,1) both calc(var(--d, 0s) + .3s); }
.esp-foto.visto .esp-quadro::before { transition: transform 1.4s cubic-bezier(.2,.7,.2,1) calc(var(--d, 0s) + 2.2s), opacity .6s ease calc(var(--d, 0s) + 2.2s); transform: none; opacity: 1; }
@keyframes esp-led { 0% { opacity: 0; --esp-a: 0deg; } 12% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; --esp-a: 360deg; } }

/* tablet */
@media (min-width: 901px) and (max-width: 1180px) {
  .esp-fala--grande { grid-column: 1 / 5; }
  .esp-foto--detalhe { grid-column: 5 / 9; }
  .esp-lado { grid-column: 7 / 13; }
}
/* celular e tablet em pé */
@media (max-width: 900px) {
  .esp-cabeca { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .esp-galeria { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 52px; }
  .esp-galeria > * { grid-row: auto !important; }
  .esp-foto--grande { grid-column: 1 / -1; margin: 0 calc(-1 * var(--margem)); }
  .esp-foto--grande img { aspect-ratio: 4 / 3.3; }
  .esp-foto--vertical { grid-column: 2 / -1; margin: 0 calc(-1 * var(--margem)) 0 0; }
  .esp-fala--grande { grid-column: 1 / -1; padding: 0; }
  .esp-foto--detalhe { grid-column: 1 / -1; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: end; }
  .esp-foto--detalhe .esp-quadro { box-shadow: none; }
  .esp-foto--detalhe .esp-fala--legenda { margin: 0; }
  .esp-foto--mesa { grid-column: 1 / 6; margin: 0 0 0 calc(-1 * var(--margem)); }
  .esp-lado { grid-column: 1 / -1; padding: 0; gap: 48px; }
}
@media (min-width: 600px) and (max-width: 900px) {
  .esp-foto--detalhe { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .esp-foto--vertical { grid-column: 3 / -1; }
  .esp-foto--mesa { grid-column: 1 / 5; }
}
@media (max-width: 599px) {
  .esp-endereco { font-size: 1.3rem; }
  .esp-fala--grande p { font-size: 1.45rem; }
  .esp-fala--media p { font-size: 1.25rem; }
  .esp-chegar__lista li { font-size: 1.0625rem; }
}
@media (prefers-reduced-motion: reduce) {
  .js .esp-titulo__l > span { transform: none; }
  .js .esp-destaque path { stroke-dashoffset: 0; }
  .esp-quadro::after { display: none; }
  .js .esp-quadro::before { transform: none; opacity: 1; }
}

/* ==== faq.css ==== */
/* 7 · Dúvidas — claro (pedra) */
.faq {
  position: relative; isolation: isolate; overflow: clip;
  padding: var(--secao-y) var(--margem);
  background: linear-gradient(180deg in oklab, var(--pedra) 0%, var(--pedra-2) 100%);
  color: var(--cafe);
  --faq-latao: #74531f; /* latão escurecido: texto pequeno com AA sobre a pedra */
}
.faq > .wf-grao { z-index: -1; }
.faq__grade {
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(40px, 6vw, 110px);
  align-items: start;
}
.faq__lado { position: sticky; top: 96px; }
.faq__prova { margin-top: clamp(36px, 4vw, 56px); }
.faq__rotulo { margin: 0 0 18px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--faq-latao); }
.faq__titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: var(--t-h2); line-height: .9; color: var(--cafe); }
.faq__linha { display: block; }
.faq__linha--fina { font-weight: 300; color: var(--cafe-2); margin-top: .12em; }
.faq__chave { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-texto); }
.faq__chave svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.faq__chave path { fill: none; stroke: var(--latao); stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .faq__titulo .faq__chave path { stroke-dashoffset: 1; transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .9s; }
.js .faq__titulo.visto .faq__chave path { stroke-dashoffset: 0; }
.faq__apoio { margin: 24px 0 0; max-width: 28em; font-size: var(--t-apoio); line-height: 1.55; color: var(--cafe-2); }

.faq__dado { margin: 0; max-width: 460px; }
.faq__campo { display: block; width: 100%; height: auto; overflow: visible; }
.faq__fundo-pontos { opacity: 1; }
#faq-ponto circle { fill: color-mix(in oklab, var(--latao) 34%, transparent); }
.faq__acesos circle { fill: var(--latao); transform-box: fill-box; transform-origin: center; }
.js .faq__acesos circle { opacity: 0; transform: scale(.2); transition: opacity .5s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: calc(.3s + var(--i) * 16ms); }
.js .faq__dado.visto .faq__acesos circle { opacity: 1; transform: none; }
.faq__legenda { margin-top: 10px; }
.faq__anos { display: flex; justify-content: space-between; font-family: var(--f-titulo); font-weight: 600; font-size: .9375rem; letter-spacing: .12em; color: var(--faq-latao); }
.faq__num { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 18px; margin-top: 18px; font-size: 1.0625rem; line-height: 1.45; color: var(--cafe-2); }
.faq__num b { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(4.6rem, 3rem + 3vw, 6.4rem); line-height: .74; color: var(--cafe); letter-spacing: -.01em; }

.faq__fala { margin: 32px 0 0; max-width: 26em; padding: 20px 22px 18px; background: color-mix(in oklab, var(--luz) 80%, transparent); border: 1px solid color-mix(in oklab, var(--latao) 28%, transparent); border-radius: 4px 22px 22px 22px; box-shadow: 0 20px 40px -24px rgb(90 58 30 / .45); }
.faq__fala p { margin: 0; font-size: 1.125rem; line-height: 1.45; }
.faq__fala cite { display: block; margin-top: 10px; font-style: normal; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--faq-latao); }

/* lista */
.faq__lista { border-top: 1px solid color-mix(in oklab, var(--latao) 30%, transparent); }
.faq__lista { interpolate-size: allow-keywords; }
.faq__item { position: relative; border-bottom: 1px solid color-mix(in oklab, var(--latao) 30%, transparent); transition: background .5s ease, border-radius .5s ease, box-shadow .5s ease, margin .5s ease; }
.faq__item::details-content { block-size: 0; overflow: clip; transition: block-size .6s cubic-bezier(.2,.7,.2,1), content-visibility .6s allow-discrete; }
.faq__item[open]::details-content { block-size: auto; }
.faq__item[open] { background: radial-gradient(120% 140% at 0% 0% in oklab, var(--noite-3), var(--cafe) 70%); color: var(--creme); border-radius: 4px 22px 22px 22px; border-bottom-color: transparent; box-shadow: 0 30px 60px -30px rgb(43 33 27 / .65); margin: 10px -28px; padding: 6px 28px 8px; }
.faq__item:has(+ .faq__item[open]) { border-bottom-color: transparent; }
.faq__pergunta {
  list-style: none; cursor: pointer;
  display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) 48px; align-items: center; gap: 12px;
  min-height: 48px; padding: 26px 0;
}
.faq__pergunta::-webkit-details-marker { display: none; }
.faq__n { font-family: var(--f-titulo); font-weight: 500; font-size: 1.125rem; letter-spacing: .12em; color: var(--faq-latao); transition: font-size .5s cubic-bezier(.2,.7,.2,1); }
.faq__item[open] .faq__n { font-size: 1.6rem; letter-spacing: .04em; }
.faq__q { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(1.6rem, 1.1rem + 1.1vw, 2.2rem); line-height: 1.05; color: var(--cafe); }
.faq__mais { position: relative; width: 48px; height: 48px; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--latao) 50%, transparent); transition: background .3s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.faq__mais::before, .faq__mais::after { content: ""; position: absolute; left: 50%; top: 50%; width: 16px; height: 1.5px; margin: -.75px 0 0 -8px; background: var(--cafe); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.faq__mais::after { transform: rotate(90deg); }
.faq__item[open] .faq__mais { background: var(--cafe); transform: rotate(180deg); }
.faq__item[open] .faq__mais::before, .faq__item[open] .faq__mais::after { background: var(--creme); }
.faq__item[open] .faq__mais::after { transform: rotate(0deg); }
.faq__pergunta:hover .faq__q { color: var(--faq-latao); }

.faq__resposta { padding: 0 60px 30px calc(3.2rem + 12px); max-width: 46em; }
.faq__resposta > p:first-child { font-size: clamp(1.1875rem, 1rem + .4vw, 1.375rem); line-height: 1.5; color: var(--cafe); }
.faq__resposta p { margin: 0 0 14px; font-size: 1.125rem; line-height: 1.6; color: var(--cafe-2); }
.faq__resposta strong { color: var(--cafe); font-weight: 700; }
.faq__eco { padding-left: 18px; border-left: 2px solid var(--latao); color: var(--cafe) !important; }
.faq__eco span { display: block; margin-top: 4px; font-family: var(--f-titulo); font-weight: 600; font-size: .9375rem; letter-spacing: .1em; text-transform: uppercase; color: var(--faq-latao); }
.faq__link { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; color: var(--cafe); text-decoration: none; border-bottom: 1px solid var(--latao); }

.faq__fim { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-top: 32px; }
.faq__fim p { margin: 0; font-size: 1.125rem; color: var(--cafe-2); }

@media (max-width: 900px) {
  .faq__grade { grid-template-columns: minmax(0, 1fr); row-gap: 40px; }
  .faq__lado { display: contents; }
  .faq__cabeca { order: 1; } .faq__lista { order: 2; } .faq__prova { order: 3; }
  .faq__prova { margin-top: 8px; }
  .faq__pergunta { grid-template-columns: 2.4rem minmax(0, 1fr) 48px; padding: 20px 0; }
  .faq__item[open] { margin: 8px -14px; padding: 0 14px; }
  .faq__item[open] .faq__n { font-size: 1.3rem; }
  .faq__resposta { padding: 0 0 26px 0; }
  .faq__resposta p { font-size: 1.0625rem; }
  .faq__resposta > p:first-child { font-size: 1.1875rem; }
}

/* pergunta aberta: o balão escuro (ritmo claro/escuro dentro da seção) */
.faq__item[open] .faq__q { color: var(--creme); }
.faq__item[open] .faq__n { color: var(--latao-claro); }
.faq__item[open] .faq__mais { background: var(--champanhe); border-color: var(--champanhe); }
.faq__item[open] .faq__mais::before, .faq__item[open] .faq__mais::after { background: var(--cafe); }
.faq__item[open] .faq__resposta p { color: color-mix(in oklab, var(--creme) 82%, transparent); }
.faq__item[open] .faq__resposta > p:first-child, .faq__item[open] .faq__resposta strong { color: var(--creme); }
.faq__item[open] .faq__eco { border-left-color: var(--latao-claro); color: var(--creme) !important; }
.faq__item[open] .faq__eco span { color: var(--latao-claro); }
.faq__item[open] .faq__link { color: var(--creme); border-bottom-color: var(--latao-claro); }
.faq__item[open] .faq__pergunta:hover .faq__q { color: var(--champanhe); }
.faq__item[open] .faq__pergunta:focus-visible { outline-color: var(--latao-claro); }

/* fecho: botão de verdade */
.faq__fim { padding-top: 36px; }
.faq__fim p { font-size: var(--t-apoio); max-width: 20em; }
@media (max-width: 900px) {
  .faq__item[open] { margin: 8px -14px; padding: 4px 14px 6px; }
  .faq__fim .botao { width: 100%; justify-content: center; }
}

/* ==== ctt.css ==== */
/* 8 · Contato — escuro (madeira-noite), emenda com o rodapé café */
.ctt {
  --ctt-razao: 1.62;
  position: relative; isolation: isolate; overflow: clip;
  padding: var(--secao-y) var(--margem) clamp(72px, 8vw, 120px);
  background: linear-gradient(180deg in oklab, var(--noite) 0%, var(--noite-2) 62%, var(--cafe) 100%);
  color: var(--creme);
}
.ctt > .wf-grao { mix-blend-mode: soft-light; opacity: .14; z-index: -1; }
.ctt__fundo { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.ctt__luz { position: absolute; border-radius: 50%; }
.ctt__luz--a { width: 70vmax; height: 70vmax; right: -16vmax; top: -22vmax; background: radial-gradient(closest-side in oklab, rgb(200 154 106 / .30), rgb(200 154 106 / 0)); animation: ctt-respira 32s ease-in-out infinite alternate; }
.ctt__luz--b { width: 50vmax; height: 50vmax; left: -20vmax; top: 18%; background: radial-gradient(closest-side in oklab, rgb(133 89 58 / .35), rgb(133 89 58 / 0)); animation: ctt-respira 38s ease-in-out infinite alternate-reverse; }
@keyframes ctt-respira { to { transform: translate3d(-4vmax, 3vmax, 0) scale(1.08); } }

.ctt__topo { max-width: 1360px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 4vw, 72px); align-items: center; }
.ctt__rotulo { margin: 0 0 18px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .24em; text-transform: uppercase; color: var(--latao-claro); }
.ctt__titulo { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: clamp(3rem, 1.2rem + 4.4vw, 5.4rem); line-height: .9; color: var(--creme); }
.ctt__linha { display: block; }
.ctt__linha--fina { font-weight: 300; color: var(--champanhe); margin-top: .12em; }
.ctt__chave { position: relative; display: inline-block; font-style: normal; font-weight: 600; color: var(--latao-claro); }
.ctt__chave svg { position: absolute; left: -2%; width: 104%; bottom: -.08em; height: .16em; overflow: visible; }
.ctt__chave path { fill: none; stroke: var(--latao-claro); stroke-width: 2.4; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 0; }
.js .ctt__titulo .ctt__chave path { stroke-dashoffset: 1; transition: stroke-dashoffset 1s cubic-bezier(.6,0,.2,1) .9s; }
.js .ctt__titulo.visto .ctt__chave path { stroke-dashoffset: 0; }
.ctt__apoio { margin: 24px 0 0; max-width: 28em; font-size: var(--t-apoio); line-height: 1.55; color: color-mix(in oklab, var(--creme) 84%, transparent); }

.ctt__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 32px; }
.ctt__botao {
  display: inline-flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 26px 0 22px; border-radius: 999px;
  background: var(--champanhe); color: var(--cafe);
  font-family: var(--f-titulo); font-weight: 600; font-size: 1.3rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; white-space: nowrap;
  box-shadow: 0 16px 34px -14px rgb(0 0 0 / .6);
  transition: background .3s ease, transform .3s ease;
}
.ctt__botao svg { width: 22px; height: 22px; fill: currentColor; }
.ctt__botao:hover, .ctt__botao:focus-visible { background: var(--creme); transform: translateY(-2px); }
.ctt__link, .ctt__seta { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; color: var(--creme); border-bottom: 1px solid var(--latao-claro); white-space: nowrap; }
.ctt__link:hover, .ctt__seta:hover { color: var(--latao-claro); }

/* cena: 603 + retrato */
.ctt__cena { position: relative; min-height: clamp(520px, 52vw, 760px); }
.ctt__numero { position: absolute; left: 0; top: 8%; width: 64%; aspect-ratio: var(--ctt-razao); }
.ctt__legenda { position: absolute; left: 4px; top: calc(8% + 64% / var(--ctt-razao) + 22px); width: 34%; margin: 0; padding-top: 12px; border-top: 1px solid color-mix(in oklab, var(--latao-claro) 40%, transparent); font-family: var(--f-titulo); font-weight: 500; font-size: 1rem; letter-spacing: .14em; text-transform: uppercase; color: var(--champanhe); }
.ctt__legenda span { display: block; margin-top: 4px; font-family: var(--f-texto); font-size: 1.0625rem; letter-spacing: 0; text-transform: none; color: color-mix(in oklab, var(--creme) 74%, transparent); }
.ctt__defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ctt__defs text, .ctt__contorno text { font-family: var(--f-titulo); font-weight: 500; font-size: 1000px; }
.ctt__janela { position: absolute; inset: 0; clip-path: url(#ctt-corte); background: #b5865a; overflow: hidden; }
.ctt__janela img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 2.4s cubic-bezier(.2,.7,.2,1); }
.ctt__brilho { position: absolute; inset: 0; background: linear-gradient(104deg in oklab, #fff3e000 38%, #fff3e044 50%, #fff3e000 62%); background-size: 260% 100%; mix-blend-mode: soft-light; animation: ctt-brilho 21s ease-in-out infinite; }
@keyframes ctt-brilho { 0%, 100% { background-position: 110% 0; } 50% { background-position: -10% 0; } }
.ctt__contorno { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ctt__contorno text { fill: none; stroke: var(--latao-claro); stroke-width: 2.4; stroke-opacity: .9; }
.js .ctt__contorno text { stroke-dasharray: 4200; stroke-dashoffset: 4200; transition: stroke-dashoffset 2.2s cubic-bezier(.45,0,.2,1); }
.js .ctt__janela { opacity: 0; transition: opacity 1.6s cubic-bezier(.2,.7,.2,1) .35s; }
.js .ctt__cena.ctt--vista .ctt__contorno text { stroke-dashoffset: 0; }
.js .ctt__cena.ctt--vista .ctt__janela { opacity: 1; }
.js .ctt__cena.ctt--vista .ctt__janela img { transform: none; }

.ctt__retrato { position: absolute; right: -4%; bottom: calc(-1 * clamp(56px, 7vw, 96px)); margin: 0; width: 52%; }
.ctt__retrato::before { content: ""; position: absolute; inset: -10% -14% 0; z-index: -1; background: radial-gradient(closest-side in oklab, rgb(220 174 123 / .42), rgb(220 174 123 / 0)); }
.ctt__retrato img { width: 100%; height: auto; filter: drop-shadow(-16px 22px 40px rgb(0 0 0 / .45)); -webkit-mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); mask-image: linear-gradient(to bottom, #000 82%, transparent 100%); }

/* informações */
.ctt__info { position: relative; z-index: 1; max-width: 1360px; margin: clamp(56px, 7vw, 96px) auto 0; background: linear-gradient(180deg in oklab, var(--noite-2), transparent 70%); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 64px); padding-top: clamp(32px, 4vw, 48px); border-top: 1px solid color-mix(in oklab, var(--latao-claro) 28%, transparent); }
.ctt__h3 { margin: 0 0 14px; font-family: var(--f-titulo); font-weight: 600; font-size: 1.0625rem; letter-spacing: .2em; text-transform: uppercase; color: var(--latao-claro); }
.ctt__bloco p { margin: 0; font-size: 1.125rem; line-height: 1.6; color: var(--creme); }
.ctt__bloco .ctt__nota { margin-top: 10px; font-size: 1.0625rem; color: color-mix(in oklab, var(--creme) 72%, transparent); }
.ctt__seta { margin-top: 14px; }
.ctt__horas { margin: 0; }
.ctt__horas div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid color-mix(in oklab, var(--latao-claro) 16%, transparent); font-size: 1.125rem; }
.ctt__horas dt { color: var(--creme); }
.ctt__horas dd { margin: 0; font-family: var(--f-titulo); font-weight: 500; font-size: 1.6rem; line-height: 1.1; letter-spacing: .03em; color: var(--champanhe); }
.ctt__horas div.ctt--hoje dt::after { content: "hoje"; margin-left: 10px; padding: 2px 9px; border-radius: 999px; background: var(--latao-claro); color: var(--noite); font-family: var(--f-titulo); font-weight: 600; font-size: .875rem; letter-spacing: .12em; text-transform: uppercase; vertical-align: 2px; }
.ctt__canais { list-style: none; margin: 0; padding: 0; }
.ctt__canais a { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 8px 0; font-family: var(--f-titulo); font-weight: 500; font-size: 1.6rem; line-height: 1.1; letter-spacing: .02em; color: var(--creme); text-decoration: none; border-bottom: 1px solid color-mix(in oklab, var(--latao-claro) 16%, transparent); overflow-wrap: anywhere; }
.ctt__canais a span { font-family: var(--f-titulo); font-weight: 600; font-size: .9375rem; letter-spacing: .16em; text-transform: uppercase; color: var(--latao-claro); }
.ctt__canais a:hover { color: var(--latao-claro); }

.ctt__acesso { max-width: 1360px; margin: 40px auto 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.ctt__acesso li { padding: 8px 16px; border-radius: 999px; border: 1px solid color-mix(in oklab, var(--latao-claro) 40%, transparent); font-family: var(--f-titulo); font-weight: 500; font-size: 1.0625rem; letter-spacing: .08em; text-transform: uppercase; color: var(--champanhe); }

.ctt__mapa { position: relative; max-width: 1360px; height: clamp(280px, 30vw, 400px); margin: 40px auto 0; overflow: clip; border-radius: 4px; background: var(--noite-3); border: 1px solid color-mix(in oklab, var(--latao-claro) 26%, transparent); }
.ctt__mapa::before { content: ""; position: absolute; inset: 0; background:
  repeating-linear-gradient(90deg, color-mix(in oklab, var(--latao-claro) 8%, transparent) 0 1px, transparent 1px 64px),
  repeating-linear-gradient(0deg, color-mix(in oklab, var(--latao-claro) 8%, transparent) 0 1px, transparent 1px 64px),
  radial-gradient(60% 80% at 70% 50% in oklab, var(--noite-3), var(--noite-2)); }
.ctt__pino { position: absolute; left: 70%; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: var(--latao-claro); box-shadow: 0 0 0 8px rgb(217 178 122 / .18), 0 0 0 18px rgb(217 178 122 / .08); }
.ctt__cartao { position: absolute; z-index: 2; left: 24px; bottom: 24px; max-width: 340px; padding: 20px 22px; background: color-mix(in oklab, var(--noite) 86%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid color-mix(in oklab, var(--latao-claro) 30%, transparent); border-radius: 4px 22px 22px 22px; box-shadow: 0 20px 40px -20px rgb(0 0 0 / .6); }
.ctt__cartao p { margin: 0; font-size: 1.125rem; line-height: 1.45; color: var(--creme); }
.ctt__cartao b { display: block; font-family: var(--f-titulo); font-weight: 500; font-size: 2rem; line-height: 1; color: var(--champanhe); margin-bottom: 6px; }
.ctt__cartao .ctt__seta { margin-top: 8px; }
.ctt__mapa iframe { position: absolute; left: 0; top: -150px; width: 100%; height: calc(100% + 150px); border: 0; filter: sepia(.35) saturate(.8) contrast(.95); }

@media (max-width: 900px) {
  .ctt__topo { grid-template-columns: minmax(0, 1fr); }
  .ctt__cena { min-height: 0; margin-top: 12px; aspect-ratio: 1 / 1.42; max-width: 560px; }
  .ctt__numero { width: 100%; top: 0; }
  .ctt__retrato { width: 84%; right: -8%; bottom: -32px; }
  .ctt__legenda { left: 0; top: calc(100% / var(--ctt-razao) + 14px); width: 30%; font-size: .875rem; }
  .ctt__legenda span { font-size: 1rem; }
  .ctt__titulo { font-size: clamp(2.9rem, 1.6rem + 6vw, 4.4rem); }
  .ctt__mapa { height: 420px; }
  .ctt__cartao { left: 12px; right: 12px; bottom: 12px; max-width: none; }
  .ctt__info { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .ctt__botao { width: 100%; justify-content: center; }
  .ctt__bloco p, .ctt__horas div { font-size: 1.0625rem; }
  .ctt__canais a { font-size: 1.45rem; }
}
@media (min-width: 600px) and (max-width: 900px) {
  .ctt__info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==== rod.css ==== */
.rod { position: relative; isolation: isolate; background: var(--cafe); color: color-mix(in oklab, var(--creme) 82%, transparent); padding: clamp(72px, 9vw, 120px) var(--margem) 40px; overflow: clip; }
.rod .wf-grao { mix-blend-mode: soft-light; opacity: .12; }
.rod > * { position: relative; z-index: 1; }
.rod a { color: var(--creme); text-decoration-color: color-mix(in oklab, var(--latao-claro) 60%, transparent); text-underline-offset: 4px; }
.rod a:hover { color: var(--latao-claro); }
.rod__topo { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; padding-bottom: clamp(36px, 5vw, 64px); border-bottom: 1px solid color-mix(in oklab, var(--latao-claro) 26%, transparent); }
.rod__marca { display: flex; align-items: center; gap: 16px; text-decoration: none; }
.rod__r { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--latao-claro) 60%, transparent); font-family: var(--f-texto); font-size: 2.1rem; color: var(--latao-claro); padding-top: 3px; }
.rod__nome { display: flex; flex-direction: column; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(1.6rem, 1rem + 1.6vw, 2.4rem); letter-spacing: .14em; text-transform: uppercase; line-height: 1; color: var(--creme); }
.rod__nome small { font-weight: 500; font-size: .5em; letter-spacing: .3em; color: var(--latao-claro); margin-top: 8px; }
.rod__frase { margin: 0; max-width: 26em; font-size: clamp(1.15rem, 1rem + .5vw, 1.45rem); line-height: 1.4; color: var(--creme); }
.rod__frase span { display: block; margin-top: 8px; font-family: var(--f-titulo); font-weight: 600; font-size: .95rem; letter-spacing: .14em; text-transform: uppercase; color: var(--latao-claro); }
.rod__grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: clamp(36px, 5vw, 56px) 0; }
.rod__grade p { margin: 0; font-size: 1.0625rem; line-height: 1.75; }
.rod__rotulo { margin: 0 0 12px; font-family: var(--f-titulo); font-weight: 600; font-size: 1rem; letter-spacing: .2em; text-transform: uppercase; color: var(--latao-claro); }
.rod__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; padding-top: 24px; border-top: 1px solid color-mix(in oklab, var(--latao-claro) 18%, transparent); font-size: .9375rem; }
.rod__base p { margin: 0; }
.rod__selo a { font-weight: 700; display: inline-block; padding: 12px 0; margin: -12px 0; }
.rod-fixo { display: none; }
@media (max-width: 900px) {
  .rod__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rod { padding-bottom: 110px; }
  .rod-fixo { position: fixed; z-index: 30; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; border-radius: 999px; background: var(--cafe); color: var(--creme); font-family: var(--f-titulo); font-weight: 600; font-size: 1.25rem; letter-spacing: .05em; text-transform: uppercase; text-decoration: none; box-shadow: 0 16px 34px -12px rgb(28 21 17 / .6); transform: translateY(140%); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
  .rod-fixo svg { width: 22px; height: 22px; fill: currentColor; }
  .rod-fixo.ativo { transform: none; }
}
@media (max-width: 520px) { .rod__grade { grid-template-columns: 1fr; gap: 24px; } }

/* ==== ajustes.css ==== */
/* ajustes da montagem */
:root { --latao-texto: #71511f; } /* latão escurecido: AA em texto pequeno sobre pedra/champanhe */
@media (min-width: 901px) and (max-width: 1180px) { .nav__links { gap: 18px; } .nav__links a { font-size: 1.1rem; } }
@media (prefers-reduced-motion: reduce) { .js [data-rev] { opacity: 1 !important; transform: none !important; } }
.rod__nome small { font-size: max(.5em, 14px); }

/* ---------- movimento reduzido: reset geral ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
    transition-duration: .001ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
  .janela__frases { animation: none !important; }
  .js .numero__contorno text { stroke-dashoffset: 0; }
  .js .numero__janela { opacity: 1; }
}

