
:root{
  --brown:#5C4E44; --brown-dark:#4C4037; --charcoal:#45463F;
  --sage:#9CB394; --sand:#D8CDA5; --taupe:#C8BDB0; --caramel:#B98B5E;
  --bg1:#F7F3EE; --bg2:#FDFCFA; --bg3:#EFF2ED; --bg5:#F3EEE8;
  --muted:#8A8279; --border:#E5DFD7;
  --serif:'Iowan Old Style',Georgia,'Palatino Linotype',Palatino,serif;
  --sans:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg1);color:var(--charcoal);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
.wrap{max-width:var(--container);margin:0 auto;padding:0 72px}
section{position:relative}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;margin:0}
h2{font-size:40px;line-height:1.14}
h3{font-size:20px;line-height:1.28}
p{margin:0 0 1rem}
em{font-style:italic}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 20px}
.ancora{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--brown);margin:22px 0 0}

/* botões */
.btn{display:inline-flex;align-items:center;gap:10px;height:54px;padding:0 34px;border-radius:999px;
  background:linear-gradient(135deg,rgba(43,212,110,.34),rgba(18,140,126,.20)),rgba(255,255,255,.16);color:#0B644B;text-decoration:none;font-size:14px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(18,140,126,.28);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(18,140,126,.12),0 14px 34px rgba(18,140,126,.18);
  transition:transform 220ms ease-out,box-shadow 220ms ease-out,background 220ms ease-out,border-color 220ms ease-out}
.btn:hover{background:linear-gradient(135deg,rgba(43,212,110,.46),rgba(18,140,126,.30)),rgba(255,255,255,.24);border-color:rgba(18,140,126,.48);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 18px 38px rgba(18,140,126,.25)}
.btn.ghost{background:rgba(255,255,255,.16);color:#0B644B;border-color:rgba(18,140,126,.30);box-shadow:inset 0 1px 0 rgba(255,255,255,.58),0 10px 28px rgba(18,140,126,.11)}
.btn.ghost:hover{background:rgba(43,212,110,.18);border-color:rgba(18,140,126,.50);box-shadow:inset 0 1px 0 rgba(255,255,255,.76),0 15px 32px rgba(18,140,126,.18)}

/* HERO: sólido, com degradê. É o único botão cheio da página. */
.btn.wpp{
  background:linear-gradient(135deg,#2BD46E 0%,#1FAE5C 52%,#128C7E 100%);
  color:#FFFFFF;border-color:transparent;
  box-shadow:0 6px 18px rgba(18,140,126,.24)}
.btn.wpp:hover{
  background:linear-gradient(135deg,#25C765 0%,#1A9E53 52%,#0F7C6F 100%);
  box-shadow:0 12px 26px rgba(18,140,126,.32)}

/* Chamadas de agendamento: verde do WhatsApp com profundidade, brilho sutil e sem aspecto chapado. */
.agenda-cta{
  color:#fff!important;border-color:rgba(255,255,255,.22)!important;
  background:linear-gradient(118deg,#27CD6C 0%,#19B465 46%,#0C907A 100%)!important;
  background-size:160% 100%!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.30),inset 0 -1px 0 rgba(7,99,79,.24),0 13px 28px rgba(12,132,103,.26)!important;
  animation:agenda-pulso 5.5s ease-in-out infinite}
.agenda-cta:hover{background-position:100% 0!important;transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 18px 34px rgba(12,132,103,.34)!important}
@keyframes agenda-pulso{0%,100%{background-position:0 0;filter:saturate(1)}50%{background-position:100% 0;filter:saturate(1.08)}}

/* O hero usa verde sólido. As demais ações usam vidro verde. */
.btn.vidro{background:linear-gradient(135deg,rgba(43,212,110,.34),rgba(18,140,126,.20)),rgba(255,255,255,.16);border-color:rgba(18,140,126,.28);color:#0B644B}
.btn.vidro:hover{background:linear-gradient(135deg,rgba(43,212,110,.46),rgba(18,140,126,.30)),rgba(255,255,255,.24);border-color:rgba(18,140,126,.48)}

.wa{width:17px;height:17px;flex:0 0 17px;fill:currentColor}

/* nav */
/* gradiente no próprio fundo do menu: sem ele o botão some sobre a área clara da foto */
.nav{position:fixed;inset:0 0 auto;z-index:100;height:78px;display:flex;align-items:center;
  background:linear-gradient(to bottom,rgba(247,243,238,.78) 0%,rgba(247,243,238,.56) 42%,rgba(247,243,238,.26) 72%,rgba(247,243,238,0) 100%);
  border-bottom:1px solid transparent;
  transition:height 280ms ease,background 280ms ease,border-color 280ms ease}
.nav[data-s]{height:64px;background:rgba(247,243,238,.88);
  backdrop-filter:saturate(1.1) blur(14px);-webkit-backdrop-filter:saturate(1.1) blur(14px);
  border-bottom-color:var(--border)}
.nav .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%}
.nav:not(.elan-nav) .wrap{position:relative;grid-template-columns:auto 1fr auto}
.nav:not(.elan-nav)>.wrap>.marca{grid-column:1;justify-self:start}
.nav:not(.elan-nav) .nav-centro{grid-column:2;justify-self:center}
.nav:not(.elan-nav) .nav-centro>.marca{position:absolute;left:0;top:50%;transform:translateY(-50%)}
.nav-centro{grid-column:2;display:flex;align-items:center;gap:30px}
.nav .btn{grid-column:3;justify-self:end}
.marca{display:flex;align-items:center;flex:0 0 auto}
.marca img{height:42px;width:auto;display:block;transition:height 280ms ease}
.nav[data-s] .marca img{height:34px}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav a{font-size:14px;color:var(--charcoal);text-decoration:none;position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--sage);
  transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--ease)}
.nav a:hover::after{transform:scaleX(1)}
.nav .btn{height:44px;padding:0 22px;font-size:12px}
.nav .btn.vidro{background:rgba(253,252,250,.48);border-color:rgba(92,78,68,.22);color:var(--brown);box-shadow:inset 0 1px 0 rgba(255,255,255,.68),0 8px 22px rgba(73,63,56,.10);-webkit-backdrop-filter:blur(16px) saturate(1.08);backdrop-filter:blur(16px) saturate(1.08)}
.nav .btn.vidro:hover{background:rgba(253,252,250,.70);border-color:rgba(92,78,68,.32);box-shadow:inset 0 1px 0 rgba(255,255,255,.84),0 12px 28px rgba(73,63,56,.14)}
.nav[data-s] .btn.vidro{background:rgba(253,252,250,.72)}
.menu-toggle,.menu-mobile,.menu-topo-mobile{display:none}

/* ---------- DOBRA 1 · hero largura total ---------- */
/* padding-top reserva o menu fixo. sem vh: em tela baixa o vh esmagava tudo */
/* Foto inteira como fundo do hero. Altura na proporção da imagem (1.78),
   para ela aparecer sem corte. Nenhuma divisão de coluna, nenhuma borda. */
.hero{position:relative;display:flex;align-items:center;overflow:hidden;
  height:clamp(600px,54vw,880px);min-height:600px}
.hero-col{position:relative;z-index:2;width:100%;
  padding:0 44px 0 max(24px,calc((100vw - 1180px)/2 + 72px))}
/* véu localizado atrás do texto. Elíptico e desfocado: não cria borda visível. */
.hero-col::before{content:"";position:absolute;z-index:-1;pointer-events:none;
  top:-10%;bottom:-10%;left:-6%;right:auto;width:min(680px,52vw);
  background:radial-gradient(70% 66% at 34% 50%,
    rgba(247,243,238,.88) 0%, rgba(247,243,238,.68) 48%,
    rgba(247,243,238,.24) 72%, transparent 92%);
  filter:blur(10px)}
.hero-img{position:absolute;inset:0;z-index:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* overlay EM CAMADAS, nunca opacity simples */
/* pena larga na borda esquerda: dissolve a costura entre o creme e a foto.
   A partir de 34% a foto aparece limpa, e ela está bem depois disso. */
.hero-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to right,rgba(247,243,238,.88) 0%,rgba(247,243,238,.66) 17%,rgba(247,243,238,.34) 31%,rgba(247,243,238,.08) 43%,transparent 52%)}
.luz{position:absolute;left:-10%;width:70%;top:-14%;height:80%;z-index:1;pointer-events:none;
  background:radial-gradient(40% 48% at 32% 46%,rgba(216,205,165,.34),transparent 70%),
             radial-gradient(34% 40% at 60% 60%,rgba(156,179,148,.24),transparent 72%);
  filter:blur(66px);animation:respira 26s ease-in-out infinite alternate}
@keyframes respira{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-3%,2%,0) scale(1.08)}}
.orbe{position:absolute;left:26%;top:22%;width:220px;height:220px;border-radius:50%;z-index:1;pointer-events:none;
  background:radial-gradient(circle,rgba(156,179,148,.20),transparent 68%);filter:blur(70px);
  animation:orb 22s ease-in-out infinite alternate}
@keyframes orb{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(-40px,26px,0)}}
/* width:100% é essencial: como .hero é flex, o wrap encolhia para o conteúdo
   e jogava o texto para cima da foto */
.hero-txt{max-width:520px}
.hero h1{font-size:clamp(28px,2.7vw,42px);line-height:1.15} /* override: coluna estreita */
.mobile-line{display:none}
.hero-sub{font-size:18px;color:var(--muted);margin-top:22px}
.creds{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:32px;font-size:13px;color:var(--muted)}
.creds b{color:var(--charcoal);font-weight:500}
.autoridade-faixa{position:absolute;z-index:4;left:0;right:0;bottom:0;height:56px;
  overflow:hidden;isolation:isolate;display:flex;align-items:center;color:rgba(255,255,255,.94);
  background:linear-gradient(110deg,rgba(61,50,43,.10),rgba(255,255,255,.025) 48%,rgba(61,50,43,.08));
  border-top:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 -5px 22px rgba(49,39,32,.04),inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1)}
.autoridade-faixa::before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;
  background:linear-gradient(102deg,rgba(255,255,255,.06),transparent 30%,rgba(255,255,255,.02) 68%,rgba(255,255,255,.05))}
.autoridade-trilha{position:relative;z-index:1;display:flex;width:max-content;will-change:transform;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
  animation:autoridade-roda 46s linear infinite}
.autoridade-grupo{display:flex;align-items:center;flex:0 0 auto;height:56px;white-space:nowrap}
.autoridade-grupo span{display:flex;align-items:center;gap:28px;padding:0 28px;
  font-size:11px;font-weight:500;line-height:1;letter-spacing:.13em;text-transform:uppercase;
  text-shadow:0 1px 9px rgba(38,30,25,.72)}
.autoridade-grupo span::after{content:"";width:4px;height:4px;border-radius:50%;flex:0 0 4px;
  background:var(--gold)}
@keyframes autoridade-roda{to{transform:translate3d(-25%,0,0)}}

/* reveal — o estado oculto só existe com JS ativo.
   Sem JS, tudo aparece normalmente em vez de a página ficar em branco. */
.rm{overflow:hidden;display:block}
.js .rm>span{display:block;transform:translateY(106%);transition:transform 760ms var(--ease)}
.js .rm.on>span{transform:translateY(0)}
.js .r{opacity:0;transform:translateY(14px);transition:opacity 620ms ease-out,transform 620ms var(--ease)}
.js .r.on{opacity:1;transform:none}
.js .ri{opacity:0;transform:scale(1.05);transition:opacity 900ms ease-out,transform 900ms var(--ease)}
.js .ri.on{opacity:1;transform:none}

/* ---------- DOBRA 2 ---------- */
.ident{background:var(--bg2);padding:104px 0}
/* 980px = 836px de texto por linha. A maior frase pede 771px na pior fonte
   de fallback (Georgia), entao nenhuma quebra no desktop. Abaixo de 1024px
   o padding cai para 24px e a quebra volta a acontecer, que e o desejado. */
.ident .wrap{max-width:980px}
.vozes{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px}
.vozes li{font-family:var(--serif);font-size:18px;line-height:1.32;padding-left:18px;border-left:1px solid var(--taupe);color:var(--muted)}
/* leitura dinamica: lendo so o negrito, a dor se conta sozinha */
.vozes b{color:var(--charcoal);font-weight:700}

/* ---------- DOBRA 3 ---------- */
.invest{background:var(--bg3);padding:152px 0}
.invest .wrap{display:grid;grid-template-columns:45fr 55fr;gap:64px;align-items:center}
.grade4{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ph{border-radius:20px;display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(145deg,var(--taupe),var(--bg5))}
.ph.a{aspect-ratio:4/3}
.ph.b{aspect-ratio:1/1;background:linear-gradient(145deg,var(--sage),var(--bg3))}
.ph-l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(69,70,63,.5);padding:14px;text-align:center}

/* ---------- DOBRA 4 · o momento escuro ---------- */
.espec{position:relative;isolation:isolate;overflow:hidden;background:
    radial-gradient(760px 500px at 5% 12%,rgba(220,193,167,.42),transparent 68%),
    radial-gradient(660px 460px at 94% 82%,rgba(156,179,148,.18),transparent 72%),var(--bg1);padding:96px 0 120px}
.dark{padding:0;color:var(--charcoal);position:relative}
.js .dark{transform:translateY(28px);opacity:0;
  transition:transform 640ms var(--ease),opacity 640ms ease-out}
.js .dark.on{transform:none;opacity:1}
.espec-head{display:block;position:relative;z-index:2;max-width:780px;margin-bottom:38px}
.dark .eyebrow{color:var(--sage);text-align:left;margin-bottom:14px}
.dark h2{color:var(--brown);text-align:left;max-width:none;margin-bottom:14px;font-size:clamp(38px,4vw,52px)}
.dark .sub{text-align:left;color:var(--muted);font-family:var(--serif);font-size:18px;
  line-height:1.45;margin:0;max-width:42ch}
.grade7{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;position:relative;z-index:2}
.js .esp{opacity:0;transform:translateY(14px);transition:opacity 560ms ease-out,transform 560ms var(--ease)}
.js .esp.on{opacity:1;transform:none}
.esp{grid-column:span 6;display:grid;grid-template-columns:36px 1fr;gap:15px;padding:24px 26px;
  min-height:132px;border:1px solid rgba(255,255,255,.68);border-radius:16px;
  background:linear-gradient(135deg,rgba(255,255,255,.62),rgba(247,238,228,.18)),rgba(255,255,255,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 16px 34px rgba(73,63,56,.09);
  backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);
  transition:background 260ms ease,transform 260ms var(--ease),border-color 260ms ease,box-shadow 260ms ease}
.esp:nth-child(7):last-child{grid-column:4/span 6}
.esp:hover{background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(247,238,228,.30)),rgba(255,255,255,.28);
  border-color:rgba(255,255,255,.88);box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 20px 42px rgba(73,63,56,.14);
  transform:translateY(-2px)}
.esp-num{font-family:var(--serif);font-size:11px;line-height:1;color:var(--sage);padding-top:6px;
  font-variant-numeric:tabular-nums;letter-spacing:.08em}
.esp h3{color:var(--brown);font-size:20px;line-height:1.24;margin:0 0 8px}
.esp p{color:var(--muted);font-size:13.5px;line-height:1.55;margin:0;max-width:48ch}
.espec-cta{position:relative;z-index:2;margin-top:32px;text-align:center}
.espec-cta .btn{min-width:250px}
.dagua{display:none}

/* ---------- Currículo na Home ---------- */
.home-about{position:relative;isolation:isolate;min-height:780px;padding:0;overflow:hidden;background:var(--bg2)}
.home-about::before{content:"";position:absolute;z-index:1;pointer-events:none;top:-28px;bottom:-28px;left:calc(50% - 54px);width:244px;background:linear-gradient(90deg,rgba(57,52,49,0) 0%,rgba(57,52,49,.30) 27%,rgba(57,52,49,.22) 47%,rgba(253,252,250,.72) 82%,var(--bg2) 100%);filter:blur(19px)}
.home-about .wrap{position:relative;z-index:2;width:50%;max-width:none;min-height:780px;margin:0 0 0 50%;padding:112px clamp(40px,6vw,104px);box-sizing:border-box;display:flex;align-items:center}
.home-about-photo{position:absolute;inset:0 auto 0 0;z-index:0;width:50%;height:100%;margin:0;overflow:hidden;background:var(--taupe);box-shadow:26px 0 64px rgba(50,46,43,.34)}
.home-about-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(65,60,57,.22) 0%,rgba(65,60,57,.05) 15%,transparent 30%,transparent 68%,rgba(253,252,250,.52) 100%),linear-gradient(90deg,transparent 64%,rgba(48,44,41,.10) 84%,rgba(48,44,41,.24) 100%)}
.home-about-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:saturate(.92)}
.home-about-copy{max-width:620px}
.home-about-copy h2{max-width:15ch;margin-bottom:24px}
.home-about-copy>p:not(.eyebrow){max-width:55ch;color:var(--muted);font-size:18px;line-height:1.65}
.home-curriculum{margin:32px 0 28px;padding:0;list-style:none;border-top:1px solid rgba(91,78,68,.18)}
.home-curriculum li{display:grid;grid-template-columns:24px 1fr;gap:13px;margin:0;padding:15px 0;border-bottom:1px solid rgba(91,78,68,.15);color:var(--muted);font-size:15px;line-height:1.5}
.home-curriculum li::before{content:"→";color:var(--sage);font-family:var(--serif);font-size:20px;line-height:1.05}
.home-curriculum strong{color:var(--charcoal);font-weight:600}
.text-link{display:inline-flex;align-items:center;gap:12px;color:var(--brown);font-size:12px;font-weight:700;letter-spacing:.11em;text-decoration:none;text-transform:uppercase}
.text-link span{font-size:19px;font-weight:400;line-height:1;transition:transform 220ms var(--ease)}
.text-link:hover span{transform:translateX(4px)}
.text-link:focus-visible{outline:2px solid var(--sage);outline-offset:6px}
.home-about-copy .btn,.patient-stories-head .btn,.ident .btn{display:flex;width:max-content;margin:30px auto 0}

/* ---------- Galeria de pacientes ---------- */
.patient-stories{padding:142px 0;background:var(--bg5);overflow:hidden}
.patient-stories-head{max-width:1080px}
.patient-stories-head h2{max-width:none;margin:0 0 26px;white-space:nowrap}
.patient-gallery{width:100vw;margin:54px calc(50% - 50vw) 0;padding:32px 0 44px;overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none}
.patient-gallery.is-dragging{cursor:grabbing}
.patient-gallery-track{display:flex;align-items:center;gap:18px;width:max-content;will-change:transform}
.patient-gallery figure{position:relative;z-index:1;flex:0 0 clamp(176px,14vw,242px);height:350px;margin:0;overflow:hidden;border-radius:16px;background:var(--taupe);filter:grayscale(var(--patient-gray,1)) saturate(var(--patient-saturation,.45));opacity:var(--patient-opacity,.22);transform:scale(var(--patient-scale,.64));transform-origin:center;transition:filter 150ms linear,opacity 150ms linear,transform 150ms linear,box-shadow 180ms ease}
.patient-gallery figure.is-featured{z-index:3;box-shadow:0 22px 45px rgba(73,63,56,.2)}
.patient-gallery img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform 500ms var(--ease)}
.patient-gallery figure:hover img{transform:scale(1.025)}
.patient-stories-action{text-align:center;margin-top:18px}

/* ---------- DOBRA 5 ---------- */
.aval{background:var(--bg1);padding:0 0 152px;text-align:center;overflow:hidden}
.nota{font-family:var(--serif);font-size:64px;line-height:1;color:var(--brown)}
.estrelas{color:var(--sand);letter-spacing:.2em;font-size:20px;margin:8px 0 4px}
.aval .sub{color:var(--muted);margin-bottom:44px}
.aval .btns{display:flex;gap:14px;justify-content:center;margin-top:44px}

/* feed automático do Google */
.feed{position:relative;margin:0 -72px}
.trilha{display:flex;gap:24px;width:max-content;padding:4px 72px;animation:deriva 62s linear infinite}
.feed:hover .trilha{animation-play-state:paused}
@keyframes deriva{to{transform:translate3d(-50%,0,0)}}
.rev{
  width:340px;flex:0 0 340px;text-align:left;border-radius:24px;padding:28px;
  background:linear-gradient(180deg,var(--bg5) 0%,var(--bg2) 62%);
  border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}
.rev .top{display:flex;align-items:center;gap:12px}
.rev .av{width:38px;height:38px;border-radius:50%;flex:0 0 38px;
  background:linear-gradient(145deg,var(--taupe),var(--sand));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:16px;color:var(--brown)}
.rev .nome{font-size:14px;font-weight:500;color:var(--charcoal);line-height:1.2}
.rev .quando{font-size:12px;color:var(--muted)}
.rev .st{color:var(--sand);font-size:13px;letter-spacing:.14em}
.rev p{font-size:15px;color:var(--muted);margin:0;line-height:1.6}
.selo{display:inline-flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-top:28px}
.selo i{width:6px;height:6px;border-radius:50%;background:var(--sage);display:inline-block}

/* ---------- DOBRA 6 ---------- */
.pilares{background:var(--bg2);padding:152px 0}
.grade5{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:56px}
.pil{background:var(--bg1);border:1px solid var(--border);border-radius:24px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform 260ms var(--ease),box-shadow 260ms ease-out}
.pil:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(69,70,63,.07)}
.pil .capa{aspect-ratio:3/2;background:linear-gradient(145deg,var(--taupe),var(--bg5))}
.pil.elan .capa{background:linear-gradient(145deg,var(--caramel),var(--sand))}
.pil .txt{padding:28px;display:flex;flex-direction:column;flex:1}
.pil h3{margin-bottom:10px}
.pil p{font-size:15px;color:var(--muted);flex:1}
.mais{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--brown);
  text-decoration:none;position:relative;align-self:flex-start;padding-bottom:3px}
.mais::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--sage);
  transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--ease)}
.pil:hover .mais::after{transform:scaleX(1)}
.programas-lista .pil{min-height:286px;overflow:visible;background:linear-gradient(145deg,rgba(253,252,250,.98),rgba(247,243,238,.82));border-radius:20px}
.programas-lista .pil.elan{background:linear-gradient(145deg,rgba(217,120,65,.14),rgba(255,248,242,.96))}
.programas-lista .pil .txt{padding:36px 38px}
.programas-lista .pil h3{font-size:clamp(24px,2vw,30px);line-height:1.12}
.programas-lista .pil p{max-width:29ch;font-size:16px;line-height:1.62}

/* ---------- DOBRA 7 · invertida ---------- */
.sobre{background:var(--bg5);padding:152px 0}
.sobre .wrap{display:grid;grid-template-columns:40fr 60fr;gap:72px;align-items:center}
.sobre .ph{aspect-ratio:4/5}
.sobre-foto{aspect-ratio:4/5;margin:0;border-radius:2px;background:var(--taupe)}
.sobre-foto img{width:100%;height:100%;object-fit:cover;object-position:center 44%;display:block;border-radius:2px}
.quem-sou-foto{aspect-ratio:auto}
.quem-sou-foto img{height:auto;object-fit:contain;object-position:center}
.formacoes .formacoes-grid{max-width:var(--container);display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:88px;align-items:start}
.formacoes-foto{margin:0}
.formacoes-foto img{display:block;width:100%;height:auto;border-radius:2px}
.formacoes-conteudo{padding-top:18px}

/* ---------- SOBRE MIM · propósito e trajetória ---------- */
.proposito{background:var(--bg2);padding:152px 0}
.leitura{max-width:900px}
.proposito h2{max-width:17ch;margin-bottom:32px}
.proposito .wrap>p:not(.eyebrow):not(.ancora){max-width:72ch;color:var(--muted)}
.proposito-fecho{margin-top:34px;padding:24px 28px;border-left:2px solid var(--sage);
  background:linear-gradient(90deg,rgba(156,179,148,.10),transparent)}
.programa-sobre .medida:first-child{padding-top:0}
.especialidades-sobre{background:var(--bg1)}
.sobre-cards{grid-template-columns:repeat(3,1fr)}
.sobre-cards .pil{min-height:220px}
.sobre-cards .txt{justify-content:flex-end}
.missao{background:var(--bg3);padding:152px 0}
.missao .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:90px;align-items:start}
.missao h2{margin-top:18px}
.missao .wrap>div:first-child>p:not(.eyebrow):not(.ancora){margin-top:22px;color:var(--muted)}
.trajetoria{border-top:1px solid var(--border)}
.trajetoria>div{padding:26px 0;border-bottom:1px solid var(--border)}
.trajetoria span{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);margin-bottom:8px}
.trajetoria strong{display:block;font-family:var(--serif);font-size:23px;font-weight:400;color:var(--charcoal)}
.trajetoria p{margin:4px 0 0;color:var(--muted);font-size:14px}

/* ---------- DOBRA 8 ---------- */
.faq{background:var(--bg1);padding:152px 0}
.faq .wrap{max-width:830px}
.item{border-bottom:1px solid var(--border)}
.item summary{list-style:none;cursor:pointer;padding:26px 0;display:flex;gap:20px;align-items:baseline;
  font-family:var(--serif);font-size:21px}
.item summary::-webkit-details-marker{display:none}
.item summary::after{content:"+";margin-left:auto;color:var(--brown);font-family:var(--sans);font-size:22px}
.item[open] summary::after{content:"–"}
.item .resp{padding:0 0 26px;color:var(--muted);max-width:66ch}
.faq .fechar{margin-top:56px;text-align:center}


/* ================= QUIET LUXURY ================= */

/* zoom lentíssimo. 26s é o que produz o "mal se move" da referência */
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.06) translate3d(-1.2%,-1%,0)}}
@keyframes kb2{from{transform:scale(1.06) translate3d(1.2%,1%,0)}to{transform:scale(1)}}
.js .kb{animation:kb 26s ease-in-out infinite alternate;will-change:transform}
.js .kb.alt{animation-name:kb2;animation-duration:32s}

/* moldura fina deslocada, com a imagem vazando por cima */
.moldura{position:relative;z-index:1}
.moldura::after{content:"";position:absolute;inset:20px -20px -20px 20px;
  border:1px solid var(--sand);pointer-events:none;z-index:-1;
  transition:inset 460ms var(--ease)}
.moldura:hover::after{inset:12px -28px -28px 12px}

/* filete antes do rótulo */
.eyebrow.filete{display:flex;align-items:center;gap:16px}
.eyebrow.filete::before{content:"";width:56px;height:1px;background:var(--taupe);flex:0 0 56px}
.eyebrow.filete.centro{justify-content:center}

/* ================= CONTEÚDOS · editorial ================= */
.conteudos{background:var(--bg2);padding:160px 0 152px;overflow:hidden;position:relative}

/* faixa principal: título gigante | imagem emoldurada | bloco de texto */
.ed{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:56px;align-items:center;position:relative}
.ed .lado{position:relative;z-index:2}
.ed .lado.dir{padding-top:40px}
.ed h2{font-size:clamp(40px,5.4vw,78px);line-height:.98;letter-spacing:-.03em}
.ed .micro{font-size:13px;line-height:1.7;color:var(--muted);max-width:30ch}
.ed .micro.just{text-align:justify}

/* letra da marca como grafismo, atrás da imagem */
.ed .glifo{position:absolute;left:50%;top:50%;transform:translate(-50%,-52%);
  font-family:var(--serif);font-size:clamp(320px,34vw,520px);line-height:.7;
  color:var(--sand);opacity:.16;pointer-events:none;user-select:none;z-index:0}

/* imagem central: moldura deslocada, a foto vaza por cima */
.ed .palco{position:relative;z-index:1}
.ed .palco .quadro{position:relative;aspect-ratio:4/5;border-radius:2px;overflow:hidden;
  background:linear-gradient(155deg,var(--taupe),var(--bg5))}
.ed .palco::after{content:"";position:absolute;inset:-26px -26px 26px 26px;
  border:1px solid var(--sand);pointer-events:none;z-index:-1;transition:inset 520ms var(--ease)}
.ed .palco:hover::after{inset:-34px -34px 18px 18px}
.ed .fill{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(69,70,63,.4)}

/* trilha dos demais conteúdos */
.trilha-ig{margin-top:110px;position:relative}
.trilha-ig .rail{display:flex;gap:36px;overflow-x:auto;padding:8px 0 20px;
  scroll-snap-type:x mandatory;scrollbar-width:none}
.trilha-ig .rail::-webkit-scrollbar{display:none}
.ig{flex:0 0 300px;scroll-snap-align:start;text-decoration:none;color:inherit;display:block}
.ig .capa{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:2px;
  background:linear-gradient(150deg,var(--taupe),var(--bg5))}
.ig .capa::after{content:"";position:absolute;inset:14px -14px -14px 14px;
  border:1px solid var(--sand);pointer-events:none;transition:inset 460ms var(--ease)}
.ig:hover .capa::after{inset:8px -20px -20px 8px}
.ig .fill{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--sans);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:rgba(69,70,63,.4)}
.ig .play{position:absolute;left:12px;bottom:12px;width:28px;height:28px;border-radius:50%;
  background:rgba(253,252,250,.88);display:flex;align-items:center;justify-content:center;z-index:2}
.ig .play svg{width:10px;height:10px;fill:var(--brown);margin-left:2px}
.ig .leg{margin-top:20px;font-size:13px;line-height:1.6;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ig .meta{margin-top:10px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe)}
.conteudos .rodape{margin-top:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.selo-ig{display:inline-flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted)}
.selo-ig i{width:5px;height:5px;border-radius:50%;background:var(--sage);display:inline-block}

/* Conteúdos reais do Instagram: carregados somente após a escolha da pessoa */
.conteudos-head{display:grid;grid-template-columns:1fr 1.2fr;column-gap:72px;align-items:end;margin-bottom:68px;padding-bottom:42px;border-bottom:1px solid var(--line)}
.conteudos-head .eyebrow{grid-column:1;margin-bottom:22px}
.conteudos-head h2{grid-column:1;margin:0;font-size:clamp(42px,5.7vw,78px);line-height:.98;letter-spacing:-.03em}
.conteudos-head>p:last-child{grid-column:2;grid-row:1 / span 2;max-width:46ch;margin:0 0 4px;color:var(--muted);font-size:14px;line-height:1.75}
.conteudos-reels-topo{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:34px}
.conteudos-reels-topo h3{margin:0;font-family:var(--serif);font-size:clamp(27px,3vw,40px);font-weight:400;line-height:1.08}
.conteudos-reels-faixa{overflow:hidden}
.conteudos-reels-rail{display:flex;gap:24px;overflow-x:auto;padding:4px 2px 22px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--taupe) transparent}
.reel-miniatura{flex:0 0 clamp(210px,22vw,280px);display:block;scroll-snap-align:start;margin:0}
.reel-capa{position:relative;display:block;overflow:hidden;aspect-ratio:9/16;background:var(--bg5)}
.reel-inline-video{display:block;width:100%;height:100%;object-fit:cover;background:#171310;transition:transform 600ms var(--ease),filter 300ms ease}
.reel-inline-start{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer}
.reel-inline-player.is-playing .reel-inline-start{display:none}
.reel-play{position:absolute;left:50%;top:50%;width:62px;height:62px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(69,55,46,.5);box-shadow:0 12px 32px rgba(32,25,20,.18);transition:transform 300ms var(--ease),background 300ms ease}
.reel-play::after{content:"";position:absolute;left:25px;top:19px;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:18px solid #fff}
.reel-origem{display:block;margin-top:14px;color:var(--taupe);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.reel-titulo{display:-webkit-box;min-height:44px;margin-top:8px;overflow:hidden;color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.reel-link{display:inline-block;margin-top:10px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.13em;text-decoration:none;text-transform:uppercase;border-bottom:1px solid var(--line);padding-bottom:3px}
.reel-link:hover{color:var(--brown);border-bottom-color:var(--brown)}
.reel-miniatura:hover .reel-inline-player:not(.is-playing) .reel-inline-video{transform:scale(1.025);filter:brightness(.95)}
.reel-miniatura:hover .reel-play{transform:translate(-50%,-50%) scale(1.06);background:rgba(69,55,46,.68)}
.reel-inline-start:focus-visible{outline:2px solid var(--brown);outline-offset:-5px}

/* ================= ESPAÇOS · faixa editorial do consultório ================= */
/* A recepção lidera por tamanho: é a única foto que traz o nome e o CRM em
   relevo iluminado, entao ela e a prova de que o lugar existe. */
.espacos{background:var(--bg2);padding:0 0 152px}
.esp-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:26px;align-items:start}
.foto{position:relative;display:block;margin:0}
.foto .cx{position:relative;overflow:hidden;border-radius:2px;
  background:linear-gradient(152deg,var(--taupe),var(--bg5))}
.foto .cx img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.foto .fill{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:16px;font-family:var(--sans);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(69,70,63,.42);line-height:1.9}
.foto .leg{margin-top:14px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--taupe)}
/* moldura fina deslocada, só na recepção: é ela que lidera */
.foto.marco::after{content:"";position:absolute;inset:18px -18px 40px 18px;
  border:1px solid var(--sand);pointer-events:none;z-index:-1;transition:inset 520ms var(--ease)}
.foto.marco:hover::after{inset:10px -26px 48px 10px}
/* as quatro fotos são verticais. A recepção é mais alta e as outras descem
   em degrau, para a fileira não virar uma cerca de retângulos iguais. */
.esp-a .cx{aspect-ratio:2/3}
.esp-b .cx,.esp-c .cx,.esp-d .cx{aspect-ratio:3/4}
.esp-b{margin-top:58px}
.esp-c{margin-top:26px}
.esp-d{margin-top:86px}
.esp-topo{display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:36px}
.esp-topo .micro{font-size:13px;color:var(--muted);max-width:38ch;margin:0}

/* ================= PRINTS · depoimentos recebidos ================= */
/* A captura fica crua, porque é dela que vem a credibilidade. Quem faz o
   trabalho de elegância é o passe-partout creme em volta. */
.prints{display:grid;grid-template-columns:minmax(0,430px);justify-content:center;gap:30px;margin:0 0 64px}
.print{background:var(--bg2);border:1px solid var(--border);border-radius:22px;
  padding:20px 20px 18px;text-align:left;
  transition:transform 280ms var(--ease),box-shadow 280ms ease-out}
.print:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(69,70,63,.08)}
.print .shot{position:relative;overflow:hidden;border-radius:14px;
  background:linear-gradient(160deg,#12212B,#0B141A)}
.print .shot img{width:100%;display:block}
.print .shot .fill{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;text-align:center;padding:20px;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(253,252,250,.34);line-height:2}
.print .rot{display:flex;align-items:center;gap:8px;margin-top:15px;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe)}
.print .rot i{width:5px;height:5px;border-radius:50%;background:var(--sage);flex:0 0 5px}
.nota-print{font-size:12px;color:var(--muted);margin:0 0 44px;text-align:center}


/* ================= SISTEMA DE PÁGINAS ================= */
/* Cada item do menu é uma página de verdade, com URL própria.
   A aba ativa reaproveita o mesmo filete verde do hover, travado aberto. */
.nav a.ativo{color:var(--brown-dark)}
.nav a.ativo::after{transform:scaleX(1)}

/* Faixa que abre toda página interna: título e rastro de navegação.
   O padding do topo reserva o menu fixo. */
.faixa{position:relative;overflow:hidden;text-align:center;
  background:linear-gradient(180deg,var(--bg5) 0%,var(--bg1) 100%);
  padding:170px 0 76px;border-bottom:1px solid var(--border)}
.faixa::before{content:"";position:absolute;left:50%;top:-40%;width:80%;height:150%;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(46% 44% at 50% 50%,rgba(216,205,165,.30),transparent 70%);
  filter:blur(60px)}
.faixa .wrap{position:relative;z-index:1}
.faixa h1{font-size:clamp(34px,4.6vw,60px);line-height:1.06;letter-spacing:-.02em}
.faixa .sub{color:var(--muted);margin:18px auto 0;max-width:56ch;font-size:17px}
/* rastro: resolve "onde estou" sem depender do menu, e vale no mobile */
.rastro{margin:22px 0 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--taupe)}
.rastro a{color:var(--brown);text-decoration:none;border-bottom:1px solid transparent;
  transition:border-color 220ms var(--ease)}
.rastro a:hover{border-bottom-color:var(--sage)}
.rastro i{font-style:normal;margin:0 10px;color:var(--taupe)}

/* cartão de programa que leva para a página do programa */
.pil{cursor:pointer}
.pil a.mais::after{background:var(--sage)}

/* teaser do sobre na home */
.teaser .ph{aspect-ratio:4/5}


/* o cartão inteiro é alvo de clique, não só o "Saiba mais" */
.pil{position:relative}
.pil .mais::before{content:"";position:absolute;inset:0;z-index:1}


/* ================= O QUE É MEDIDO ================= */
/* Esta dobra defende "medir em vez de estimar". Foto de banco de imagem
   enfraqueceria o argumento, e não existe foto dos aparelhos ainda.
   Então a prova aqui é a própria lista do que é medido, em tipografia. */
.medidas{display:grid;gap:0;border-top:1px solid var(--border)}
.medida{display:grid;grid-template-columns:auto 1fr;gap:0 22px;align-items:baseline;
  padding:26px 0;border-bottom:1px solid var(--border);position:relative}
.medida .n{font-family:var(--serif);font-size:13px;color:var(--taupe);
  font-variant-numeric:tabular-nums;padding-top:6px}
.medida h3{font-size:22px;line-height:1.2;color:var(--charcoal)}
.medida p{margin:8px 0 0;font-size:14.5px;line-height:1.6;color:var(--muted)}
.js .medida{opacity:0;transform:translateY(12px);
  transition:opacity 620ms ease-out,transform 620ms var(--ease)}
.js .medida.on{opacity:1;transform:none}

/* ---------- rodapé ---------- */
footer{background:var(--charcoal);color:rgba(253,252,250,.7);padding:96px 0 48px;font-size:14px}
footer .marca{color:var(--bg2);font-size:20px;display:block;margin-bottom:26px;font-family:var(--serif);letter-spacing:.06em;text-transform:uppercase}
.rod{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px}
footer strong{color:var(--bg2);font-weight:500}
.fine{margin-top:56px;padding-top:26px;border-top:1px solid rgba(253,252,250,.12);font-size:12px;color:rgba(253,252,250,.5)}

.aviso{position:fixed;left:16px;bottom:16px;z-index:200;background:var(--brown);color:var(--bg2);
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:8px 14px;border-radius:999px;opacity:.9}

@media (max-width:1024px){
  .wrap{padding:0 24px}
  .nav{height:112px;align-items:stretch;background:rgba(247,243,238,.94);backdrop-filter:saturate(1.1) blur(14px);-webkit-backdrop-filter:saturate(1.1) blur(14px);border-bottom-color:var(--border)}
  .nav[data-s]{height:104px}
  .nav .wrap{grid-template-columns:1fr;grid-template-rows:64px 48px;gap:0;padding:0 20px}
  .nav:not(.elan-nav)>.wrap>.marca{grid-column:1;grid-row:1;justify-self:start}
  .nav:not(.elan-nav) .nav-centro{grid-column:1;grid-row:1;justify-self:start}
  .nav:not(.elan-nav) .nav-centro>.marca{position:static;transform:none}
  .nav[data-s] .wrap{grid-template-rows:56px 48px}
  .nav ul{display:none}
  .nav-centro{grid-column:1;justify-self:center}
  .marca img{height:34px}
  .nav[data-s] .marca img{height:28px}
  .nav .btn{display:none}
  .menu-toggle{display:none}
  .menu-topo-mobile{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;gap:24px;
    justify-content:safe center;
    min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;border-top:1px solid rgba(129,117,100,.12)}
  .menu-topo-mobile::-webkit-scrollbar{display:none}
  .menu-topo-mobile a{flex:0 0 auto;scroll-snap-align:center;padding:12px 0 11px;
    font-size:11px;line-height:1;white-space:nowrap;color:var(--charcoal)}
  .menu-topo-mobile a::after{bottom:7px}
  .menu-topo-mobile a.ativo::after{transform:scaleX(1)}
  .menu-toggle span{display:block;width:17px;height:1px;background:currentColor;
    transition:transform 260ms var(--ease)}
  .nav[data-menu] .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .nav[data-menu] .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
  .menu-mobile{display:flex;position:fixed;z-index:101;inset:0;background:rgba(247,243,238,.98);
    padding:112px 24px 36px;flex-direction:column;justify-content:space-between;
    opacity:0;visibility:hidden;transform:translateY(-12px);
    transition:opacity 260ms ease,visibility 260ms ease,transform 260ms var(--ease)}
  .nav[data-menu] .menu-mobile{opacity:1;visibility:visible;transform:none}
  .menu-mobile-links{display:grid;border-top:1px solid var(--border)}
  .menu-mobile-links a{font-family:var(--serif);font-size:clamp(28px,8vw,42px);line-height:1.1;
    padding:17px 0;border-bottom:1px solid var(--border);color:var(--charcoal)}
  .menu-mobile-links a::after{display:none}
  .menu-mobile-rodape{font-size:12px;line-height:1.7;color:var(--muted);margin:30px 0 0}
  .menu-aberto{overflow:hidden}
  .luz,.orbe{display:none}
  .esp-grid{grid-template-columns:1fr 1fr;gap:22px 16px}
  .esp-a{grid-row:auto;grid-column:1 / span 2}
  .esp-a .cx{aspect-ratio:4/5}
  .esp-d{grid-column:1 / span 2}
  .esp-b,.esp-c,.esp-d{margin-top:0}
  .foto.marco::after{inset:12px -12px 34px 12px}
  .esp-topo{flex-direction:column;align-items:flex-start;gap:10px}
  .prints{grid-template-columns:1fr;gap:22px}
  .feed{margin:0 -24px}
  .feed::before,.feed::after{width:40px}
  .trilha{padding:4px 24px}
  .rev{width:280px;flex-basis:280px}
  .aval .btns{flex-direction:column}
  .invest .wrap,.sobre .wrap{grid-template-columns:1fr;gap:40px}
  .espec-head{margin-bottom:42px;padding-bottom:0}
  .dark .sub{max-width:none}
  .grade7{grid-template-columns:1fr 1fr;gap:14px}
  .grade7 .esp:nth-child(n){grid-column:auto}
  .grade7 .esp:nth-child(7):last-child{grid-column:1 / -1;width:calc(50% - 7px);justify-self:center}
  .grade5,.rod{grid-template-columns:1fr}
  .ed{grid-template-columns:1fr;gap:32px}
  .ed .glifo{font-size:240px}
  .ed .lado.dir{padding-top:0}
  .ig{flex-basis:220px}
  .trilha-ig{margin-top:56px}
  .conteudos .rodape{flex-direction:column;align-items:flex-start;gap:12px}
  .conteudos-head{grid-template-columns:1fr;gap:22px;margin-bottom:48px;padding-bottom:32px}
  .conteudos-head .eyebrow,.conteudos-head h2,.conteudos-head>p:last-child{grid-column:1;grid-row:auto}
  .conteudos-reels-topo{align-items:flex-start;flex-direction:column}
  .reel-miniatura{flex-basis:220px}
  .dark{padding:0}
  .dagua{font-size:280px}
  .ident,.invest,.espec,.aval,.pilares,.sobre,.faq,.conteudos,.proposito,.missao{padding-top:96px;padding-bottom:96px}
  .espacos{padding-top:0;padding-bottom:96px}
  .faixa{padding:138px 0 66px}
  .missao .wrap{grid-template-columns:1fr;gap:52px}
  .formacoes .formacoes-grid{gap:48px}
}
/* O hero de telefone tem geometria calibrada em 390px. Acima de 640px
   quem vale e o hero de desktop, que ja e sangrado e preenche as laterais
   em qualquer largura. Sem isso, entre 650 e 1024px sobravam faixas creme. */
@media (max-width:640px){
  img,video{max-width:100%}
  main,section{max-width:100%}
  body{font-size:16px;line-height:1.6}
  .wrap{padding:0 20px}
  h2{font-size:clamp(31px,9vw,38px)}
  h3{font-size:19px}
  .nav .wrap{padding:0 14px;gap:0 8px}
  .nav .marca img{height:29px}
  .nav[data-s] .marca img{height:27px}
  .nav .btn{height:36px;padding:0 13px;font-size:0}
  .nav .btn::before{content:"Agendar";font-size:10px;letter-spacing:.08em}
  .menu-topo-mobile{gap:16px;margin:0 -14px;padding:0 14px}
  .menu-mobile{padding:96px 20px 28px}
  /* MOBILE: foto ocupa a dobra inteira. Texto, rótulo e botão ficam ACIMA
     da cabeça dela. A imagem é ampliada e ancorada no topo para empurrar
     a cabeça para baixo do botão. */
  .hero{height:1100px;display:block;padding:0;position:relative}
  .hero-img{position:absolute;inset:0;height:100%;width:100%;overflow:hidden}
  /* A centralizacao NAO pode usar transform: a animacao ken burns (.kb)
     sobrescreve o transform e desloca a foto. Centralizamos por margin. */
  /* O topo da cabeca dela esta a 44% da altura da foto. Com top:214 e
     height:1150, a cabeca cai em ~716px: 40px abaixo das credenciais (676),
     bem perto do botao, mesmo no ponto mais alto do ken burns.
     A mascara dissolve o proprio topo da foto e ja se completa em 414px,
     antes do degrade abrir (451), entao a imagem nunca tem borda. */
  .hero-img img{position:absolute;top:120px;left:0;right:0;margin:0 auto;
    width:100%;height:1100px;max-width:none;
    object-fit:cover;object-position:center top;transform:none;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 160px);
    mask-image:linear-gradient(to bottom,transparent 0,#000 160px)}
  .autoridade-faixa{left:0;right:0;bottom:0;height:50px;border-radius:0}
  .autoridade-grupo{height:50px}
  .autoridade-trilha{animation-duration:40s}
  .autoridade-grupo span{padding:0 20px;gap:20px;font-size:10px;letter-spacing:.11em}
  .hero-img::after{background:none}
  /* O bloco de texto carrega o proprio veu e o dissolve logo acima da
     cabeca dela. Assim a foto pode ficar mais limpa, sem escurecer tudo. */
  /* O degrade comeca a abrir em ~462px, antes da linha "Voce nao precisa
     aceitar tudo isso calada" (502). Dali ate as credenciais ele segura
     entre .90 e .66 para o texto continuar legivel, e so entao fecha
     rapido, ja em cima da cabeca dela. */
  .hero-col{position:relative;z-index:2;padding:112px 24px 70px;min-height:0;
    background:linear-gradient(to bottom,
      var(--bg1) 0%, var(--bg1) 36%,
      rgba(247,243,238,.90) 50%, rgba(247,243,238,.62) 64%,
      rgba(247,243,238,.20) 78%,
      transparent 100%)}
  /* O veu ficou mais leve nessa faixa, entao as credenciais precisam de
     mais contraste proprio para nao perder leitura sobre a estante. */
  .creds{color:#6B6359}
  .creds b{color:var(--brown-dark)}
  .hero-col::before{display:none}
  .hero-txt{max-width:none}
  .hero .eyebrow{margin-bottom:14px}
  .desktop-line{display:none}
  .mobile-line{display:inline}
  .hero h1{font-size:clamp(24px,7vw,28px);line-height:1.18;letter-spacing:-.02em}
  .hero h1 .rm:nth-child(3) .mobile-line{white-space:nowrap}
  .hero-sub{font-size:15.5px;margin-top:14px;line-height:1.55}
  .hero .ancora{font-size:16px;margin-top:14px}
  .hero .btn{width:100%;justify-content:center;margin-top:20px}
  .creds{gap:3px 16px;margin-top:16px;font-size:11.5px}
  .ident,.invest,.espec,.aval,.pilares,.sobre,.faq,.conteudos,.proposito,.missao,.home-about,.patient-stories{padding-top:80px;padding-bottom:80px}
  .ident{padding-top:70px;padding-bottom:70px}
  .ident .vozes{gap:12px}
  .ident .vozes li{font-size:17px;line-height:1.35;padding-left:16px}
  .espacos{padding-bottom:80px}
  .esp-grid{grid-template-columns:1fr 1fr;gap:18px 12px}
  .esp-a .cx{aspect-ratio:5/4}
  .esp-b .cx,.esp-c .cx{aspect-ratio:3/4}
  .esp-d .cx{aspect-ratio:5/4}
  .esp-topo{margin-bottom:26px}
  .invest .wrap,.sobre .wrap{gap:34px}
  .medida{gap:0 15px;padding:22px 0}
  .medida h3{font-size:19px}
  .medida p{font-size:14px}
  .dark{margin:0;padding:0}
  .espec-head{margin-bottom:32px;padding-bottom:0}
  .dark .sub{font-size:18px}
  .grade7{grid-template-columns:1fr;gap:12px}
  .grade7 .esp:nth-child(n),.grade7 .esp:nth-child(7):last-child{grid-column:auto}
  .grade7 .esp:nth-child(7):last-child{width:auto;justify-self:stretch}
  .esp{grid-template-columns:36px 1fr;gap:12px;padding:24px 20px;min-height:0;border-radius:16px}
  .esp h3{font-size:19px}
  .espec-cta{margin-top:22px}
  .espec-cta .btn{min-width:0;width:100%}
  .home-about{min-height:0;padding:0}
  .home-about::before{display:none}
  .home-about .wrap{width:100%;min-height:0;margin:0;padding:54px 20px 80px;display:block}
  .home-about-photo{position:relative;inset:auto;width:100%;height:520px;box-shadow:0 18px 42px rgba(50,46,43,.26)}
  .home-about-photo img{object-position:center 38%}
  .home-about-copy h2{max-width:none}
  .home-about-copy>p:not(.eyebrow){font-size:16px}
  .home-curriculum{margin:28px 0 24px}
  .home-curriculum li{grid-template-columns:22px 1fr;gap:10px;padding:14px 0;font-size:15px}
  .patient-gallery{margin-top:36px;padding:24px 0 36px}
  .patient-stories-head h2{white-space:normal}
  .patient-gallery-track{gap:12px}
  .patient-gallery figure{flex-basis:154px;height:246px;border-radius:13px}
  .nota{font-size:58px}
  .prints{margin-bottom:48px}
  .print{padding:14px;border-radius:18px}
  .feed{margin:0 -20px}
  .trilha{padding:4px 20px;animation-duration:74s}
  .grade5{gap:18px;margin-top:38px}
  .pil{display:grid;grid-template-columns:112px 1fr;border-radius:18px}
  .pil .capa{aspect-ratio:auto;min-height:100%}
  .pil .txt{padding:22px 20px}
  .pil p{font-size:14px}
  .programas-lista .pil{display:block;min-height:0}
  .programas-lista .pil .txt{padding:28px 24px}
  .programas-lista .pil p{font-size:15px}
  .sobre-cards{grid-template-columns:1fr}
  .sobre-cards .pil{display:block;min-height:0}
  .sobre-cards .txt{padding:24px 22px}
  .proposito h2{max-width:none}
  .proposito-fecho{padding:20px 20px}
  .trajetoria strong{font-size:21px}
  .sobre-foto{width:calc(100% - 18px);max-height:520px}
  .quem-sou-foto{max-height:none}
  .formacoes .formacoes-grid{grid-template-columns:1fr;gap:38px}
  .formacoes-conteudo{padding-top:0}
  .faq .item summary{font-size:19px;padding:22px 0}
  footer{padding:72px 0 36px}
  .rod{gap:28px}
  .fine{margin-top:36px}
  .faixa{padding:120px 0 54px}
  .faixa h1{font-size:clamp(34px,11vw,48px)}
  .faixa .sub{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .r,.ri{opacity:1!important;transform:none!important}
  .rm>span{transform:none!important}
  .dark,.esp{opacity:1!important;transform:none!important}
  .autoridade-faixa{overflow-x:auto}
  .autoridade-trilha{animation:none!important}
  .autoridade-grupo[aria-hidden="true"]{display:none}
  .patient-gallery{overflow-x:auto}
  .patient-gallery-track{transition:none!important}
}
