/* Maria Taróloga: rosa de pétala, linho bege e branco, com tipografia moderna.
   Fotografia de objetos e mandala linear traduzem acolhimento sem inventar um retrato.
   Composição editorial assimétrica, ações claras e movimento apenas nos detalhes. */
:root {
  --papel:#fffaf5; --branco:#fff; --rosa:#973f59; --rosa-escuro:#7e3048;
  --petala:#efcdd3; --rosa-claro:#fcf0f0; --bege:#e9dfd2; --linha:#e5dcd5;
  --texto:#3f3036; --suave:#715f66; --borda-rosa:#d7adb7;
  --fonte:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Manrope",var(--fonte); --largura:1260px; --gutter:clamp(20px,5vw,66px);
  --espaco:clamp(64px,7.8vw,104px); --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; -webkit-text-size-adjust:100%; overflow-x:clip; }
body { margin:0; background:var(--papel); color:var(--texto); font:400 16px/1.75 var(--fonte); -webkit-font-smoothing:antialiased; }
img,video,svg { display:block; max-width:100%; }
img,video { height:auto; }
a { color:inherit; text-decoration:none; }
button,select,input,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
p { margin:0 0 1em; }
p:last-child { margin-bottom:0; }
ul,ol { list-style:none; padding:0; margin:0; }
figure,fieldset { margin:0; }
fieldset { padding:0; border:0; min-width:0; }
h1,h2,h3 { font-family:var(--display); font-weight:500; margin:0; letter-spacing:-.055em; line-height:1.17; }
h2 { font-size:clamp(32px,3.8vw,46px); }
h3 { font-size:24px; letter-spacing:-.04em; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid var(--rosa); outline-offset:5px; border-radius:4px; }
::selection { background:var(--petala); color:var(--texto); }
.container { width:100%; max-width:var(--largura); margin:0 auto; padding:0 var(--gutter); }
.secao { padding:var(--espaco) 0; }
.sprite { position:absolute; }
.ico { width:21px; height:21px; flex:none; }
.pular { position:fixed; top:-90px; left:18px; z-index:100; padding:12px 20px; border-radius:8px; background:var(--rosa); color:#fff; }
.pular:focus { top:15px; }
.rotulo { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:10px; letter-spacing:.13em; font-weight:600; text-transform:uppercase; color:var(--rosa); margin:0 0 24px; }
.ponto { width:3px; height:3px; background:currentColor; border-radius:50%; }

/* Botões e links: controles com presença, sem volume de interface de aplicativo. */
.btn { display:inline-flex; justify-content:center; align-items:center; gap:16px; min-height:54px; padding:15px 23px; border:1px solid transparent; border-radius:8px; font:600 13px/1.5 var(--fonte); text-align:center; transition:background .25s,border-color .25s,transform .25s var(--ease); }
.btn:hover { transform:translateY(-2px); }
.btn-rosa { background:var(--rosa); color:#fff; }
.btn-rosa:hover { background:var(--rosa-escuro); }
.btn-contorno { background:transparent; border-color:var(--borda-rosa); color:var(--rosa); }
.btn-contorno:hover { background:#fff; border-color:var(--rosa); }
.btn-pequeno { min-height:44px; padding:10px 17px; font-size:12px; }
.link { display:inline-flex; align-items:center; min-height:44px; font-size:12px; font-weight:600; color:var(--rosa); text-decoration:underline; text-decoration-color:var(--borda-rosa); text-underline-offset:6px; }
.link-seta { display:inline-flex; align-items:center; gap:15px; min-height:44px; color:var(--rosa); font-size:12px; font-weight:600; }
.link-seta .ico { width:18px; transition:transform .25s; }
.link-seta:hover .ico { transform:translateX(4px); }

/* Cabeçalho fixo. Sem JavaScript, a navegação continua aberta. */
.topo { position:fixed; inset:0 0 auto; z-index:40; padding:19px 0; background:rgba(255,250,245,.97); transition:box-shadow .3s; }
.topo.rolado,.topo.menu-aberto { background:var(--papel); box-shadow:0 1px 0 var(--linha); }
.topo-linha { display:flex; align-items:center; gap:18px; }
.marca { display:inline-flex; align-items:center; gap:11px; margin-right:auto; flex:none; }
.marca-simbolo { width:43px; height:43px; color:var(--rosa); }
.marca > span { font:600 26px/1.05 var(--display); letter-spacing:-.05em; }
.marca small { display:block; margin-top:7px; font:400 9px/1.2 var(--fonte); letter-spacing:.07em; color:var(--suave); }
.menu { display:flex; align-items:center; gap:24px; }
.menu > a:not(.btn) { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:var(--suave); border-bottom:1px solid transparent; }
.menu > a:not(.btn):hover,.menu > a.ativo { color:var(--rosa); border-bottom-color:var(--rosa); }
.som-botao,.menu-botao { display:grid; place-items:center; width:44px; height:44px; flex:none; border:1px solid var(--linha); background:transparent; border-radius:50%; padding:0; color:var(--rosa); }
.som-botao[aria-pressed="true"] { background:var(--rosa); color:#fff; border-color:var(--rosa); }
.som-botao .ondas { opacity:.35; }
.som-botao[aria-pressed="true"] .ondas { opacity:1; }
.menu-botao { display:none; }
.ico-fechar { display:none; }
.menu-botao[aria-expanded="true"] .ico-abrir { display:none; }
.menu-botao[aria-expanded="true"] .ico-fechar { display:block; }

/* Abertura: o título é o primeiro plano; a imagem tem moldura própria. */
.hero { position:relative; overflow:clip; padding:142px 0 80px; }
.hero-grade { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:clamp(40px,6vw,88px); }
.hero h1 { font-size:clamp(46px,5.8vw,75px); font-weight:500; line-height:1.11; letter-spacing:-.065em; }
.hero h1 span { color:var(--rosa); }
.hero-lead { color:var(--suave); font-size:16px; line-height:1.9; max-width:42ch; margin-top:26px; }
.hero-acoes { display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; margin-top:29px; }
.hero-nota { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:var(--suave); margin-top:20px; max-width:40ch; }
.hero-nota .ico { width:15px; height:15px; margin-top:2px; color:var(--rosa); }
.hero-visual { position:relative; min-width:0; padding:0 0 26px; }
.hero-foto { position:relative; overflow:hidden; border-radius:180px 180px 22px 22px; background:var(--bege); aspect-ratio:4/5; }
.hero-foto img { width:100%; height:100%; object-fit:cover; }
.hero-mandala { position:absolute; width:400px; height:400px; max-width:none; right:-110px; top:-50px; color:var(--rosa); opacity:.13; transform:rotate(13deg); }
.hero-visual figcaption { position:absolute; left:-30px; bottom:0; width:calc(100% - 44px); max-width:320px; display:flex; align-items:center; gap:19px; padding:20px 24px; border:1px solid var(--linha); background:#fff; border-radius:13px; box-shadow:0 12px 35px #715f660a; }
.foto-detalhe { color:var(--rosa); font:500 48px/1 var(--display); letter-spacing:-.08em; }
.hero-visual figcaption > span:nth-child(2) { font-size:13px; line-height:1.65; }
.hero-visual figcaption .ico { color:var(--rosa); margin-left:auto; width:25px; height:25px; }
.faixa-fatos { border-top:1px solid var(--linha); border-bottom:1px solid var(--linha); background:#fff; }
.fatos { display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:32px; padding-top:27px; padding-bottom:27px; }
.fatos p { display:grid; gap:4px; margin:0; }
.fatos p + p { border-left:1px solid var(--linha); padding-left:32px; }
.fatos strong { font-family:var(--display); color:var(--rosa); font-size:17px; font-weight:600; letter-spacing:-.03em; }
.fatos span { font-size:11px; color:var(--suave); }

/* Serviços: três tipos concretos, com condições combinadas no contato. */
.cabeca-secao { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:40px; }
.cabeca-secao > p { max-width:29ch; font-size:14px; color:var(--suave); margin:0 0 3px; }
.servicos-grade { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.servico { display:flex; flex-direction:column; align-items:flex-start; padding:30px; border:1px solid var(--linha); border-radius:14px; background:#fff; }
.servico-amor { background:var(--rosa-claro); border-color:#e8c8cf; }
.servico-topo { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; margin-bottom:28px; color:var(--rosa); }
.servico-ico { width:38px; height:38px; }
.servico-topo > span { font-size:10px; font-variant-numeric:tabular-nums; color:var(--suave); }
.servico h3 { font-size:23px; }
.servico > p { color:var(--suave); font-size:14px; line-height:1.85; margin-top:18px; margin-bottom:24px; }
.servico .link-seta { margin-top:auto; }
.servicos-nota { margin-top:22px; color:var(--suave); font-size:11px; }

/* Escolha opcional: a própria pessoa conduz a primeira mensagem. */
.escolha { background:var(--rosa-claro); border-top:1px solid #f0dfe1; border-bottom:1px solid #f0dfe1; }
.escolha-grade { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(35px,6vw,85px); }
.escolha-lead { font-size:15px; max-width:39ch; color:var(--suave); margin-top:25px; }
.escolha-nota { font-size:11px; max-width:42ch; color:var(--suave); margin-top:24px; }
.escolha-painel { padding:32px; background:#fff; border:1px solid #ead3d8; border-radius:15px; }
.escolha-painel legend { font-size:13px; font-weight:600; margin-bottom:17px; }
.assuntos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.assuntos button { min-height:60px; padding:12px; border:1px solid var(--linha); background:var(--papel); border-radius:7px; font-size:12px; line-height:1.5; text-align:left; }
.assuntos button:hover { border-color:var(--borda-rosa); }
.assuntos button[aria-pressed="true"] { color:var(--rosa); border-color:var(--rosa); background:var(--rosa-claro); box-shadow:inset 3px 0 0 var(--rosa); }
.escolha-resposta { margin:23px 0; padding-left:16px; border-left:1px solid var(--borda-rosa); min-height:112px; }
.escolha-resposta strong { display:block; font-size:14px; color:var(--rosa); font-weight:500; }
.escolha-resposta p { font-size:12px; color:var(--suave); margin-top:8px; line-height:1.8; }
.escolha-painel .btn { width:100%; padding-left:16px; padding-right:16px; font-size:12px; }
.mensagem-nota { font-size:10px; color:var(--suave); text-align:center; margin-top:13px; }

/* Trajetória: experiência informada, sem números de clientes ou biografia fictícia. */
.sobre { background:#fff; }
.sobre-grade { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(38px,6vw,88px); align-items:center; }
.sobre-identidade { position:relative; isolation:isolate; padding:18px 0; }
.sobre-mandala { position:absolute; z-index:-1; width:380px; height:380px; max-width:100%; left:-85px; top:0; color:#d7adb7; opacity:.23; }
.sobre h2 { font-size:clamp(30px,3.2vw,41px); }
.experiencia { display:flex; align-items:center; gap:22px; margin-top:36px; color:var(--rosa); }
.experiencia strong { font:400 85px/.95 var(--display); letter-spacing:-.08em; }
.experiencia > span { font-size:11px; line-height:1.7; }
.sobre-texto > p { color:var(--suave); font-size:14px; line-height:1.95; }
.sobre-texto .texto-maior { color:var(--texto); font-size:20px; line-height:1.6; letter-spacing:-.025em; margin-bottom:23px; }
.sobre-texto .link-seta { margin-top:10px; }

/* Passos e segurança da decisão. */
.passos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.passos li { border-top:1px solid var(--borda-rosa); padding-top:23px; }
.passos li > span { color:var(--rosa); font-size:11px; }
.passos h3 { font-size:21px; margin-top:27px; }
.passos p { font-size:14px; color:var(--suave); margin-top:15px; line-height:1.85; }
.antes { display:flex; align-items:center; gap:18px; margin-top:45px; border:1px solid var(--linha); background:#fff; border-radius:9px; padding:23px 27px; }
.antes > .ico { color:var(--rosa); }
.antes p { font-size:12px; color:var(--suave); margin:0; max-width:68ch; }
.antes strong { color:var(--texto); font-weight:600; }
.antes .link { margin-left:auto; flex:none; }

/* Ambiente audiovisual original. Não há reprodução automática com som. */
.ambiente { padding-top:20px; }
.ambiente-grade { display:grid; grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); align-items:center; gap:clamp(35px,6vw,80px); }
.ambiente-grade > div > p:not(.rotulo) { color:var(--suave); font-size:14px; max-width:38ch; margin-top:24px; }
.ambiente .btn { margin-top:10px; }
.ambiente-grade > div > .ambiente-status { font-size:10px; min-height:18px; margin-top:15px; }
.ambiente-video { overflow:hidden; border:1px solid var(--linha); border-radius:17px; background:#fff; }
.ambiente-video video { width:100%; aspect-ratio:8/5; object-fit:cover; background:var(--rosa-claro); }
.ambiente-video figcaption { padding:13px 17px; color:var(--suave); font-size:10px; }

/* FAQ nativo e independente de JavaScript. */
.perguntas { background:#fff; border-top:1px solid var(--linha); border-bottom:1px solid var(--linha); }
.perguntas-grade { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(35px,6vw,85px); }
.perguntas-grade > div > p:not(.rotulo) { color:var(--suave); font-size:14px; max-width:34ch; margin-top:24px; }
.perguntas .link-seta { margin-top:15px; }
.faq { border-top:1px solid var(--linha); }
.faq details { border-bottom:1px solid var(--linha); }
.faq summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:21px 0; min-height:66px; list-style:none; font-size:14px; font-weight:500; cursor:pointer; line-height:1.6; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; font:400 22px var(--display); color:var(--rosa); flex:none; }
.faq details[open] summary::after { content:"−"; }
.faq details p { color:var(--suave); font-size:13px; line-height:1.9; padding-right:27px; margin:0 0 23px; }

/* Convite final: rosa, mandala e uma única ação. */
.contato-painel { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; padding:58px 30px; border:1px solid #e4bec8; border-radius:20px; background:#f5dde1; text-align:center; }
.contato-painel > :not(svg) { position:relative; }
.contato-mandala { position:absolute; width:530px; height:530px; max-width:none; right:-210px; top:-130px; color:var(--rosa); opacity:.12; }
.contato .rotulo { justify-content:center; margin-bottom:20px; }
.contato h2 { font-size:clamp(35px,4vw,51px); }
.contato p:not(.rotulo) { font-size:14px; color:#65454f; max-width:44ch; margin:24px 0 26px; }
.contato-nota { font-size:10px; margin-top:18px; color:#65454f; }

/* Rodapé. */
.rodape { border-top:1px solid var(--linha); padding:38px 0 28px; background:#fff; }
.rodape-linha { display:flex; align-items:center; gap:35px; padding-bottom:30px; border-bottom:1px solid var(--linha); }
.rodape-linha nav { display:flex; flex-wrap:wrap; gap:10px 23px; font-size:11px; color:var(--suave); }
.rodape-linha nav a { display:inline-flex; align-items:center; min-height:44px; }
.rodape-linha > p { font-size:10px; color:var(--rosa); margin:0 0 0 auto; }
.rodape-base { display:flex; justify-content:space-between; gap:40px; padding-top:22px; font-size:10px; color:var(--suave); }
.rodape-base > p { max-width:67ch; }
.rodape-base > div { flex:none; text-align:right; }
.rodape-base > div > p { margin-bottom:4px; }
.rodape-base a { color:var(--rosa); text-decoration:underline; text-underline-offset:3px; }
.whats-flutuante { position:fixed; right:20px; bottom:calc(20px + env(safe-area-inset-bottom)); z-index:35; display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--rosa); color:#fff; box-shadow:0 7px 22px #973f5933; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s,visibility .25s,transform .25s; }
.whats-flutuante.visivel { opacity:1; visibility:visible; transform:none; }
.whats-flutuante .ico { width:26px; height:26px; }

/* Melhorias progressivas: conteúdo sempre visível sem JavaScript. */
.motion [data-reveal] { opacity:0; transform:translateY(13px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.motion [data-reveal].is-in { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition-duration:.01ms !important; }
  .motion [data-reveal] { opacity:1; transform:none; }
}
@media(max-width:1050px) {
  .js .menu-botao { display:grid; }
  .js .menu { position:fixed; inset:0 0 auto; z-index:-1; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:100px var(--gutter) 28px; background:var(--papel); max-height:100vh; max-height:100dvh; overflow-y:auto; transform:translateY(-105%); visibility:hidden; transition:transform .3s var(--ease),visibility .3s; }
  .js .menu.aberto { transform:none; visibility:visible; transition-property:transform; }
  .js .menu > a:not(.btn) { min-height:52px; font-size:16px; border-bottom:1px solid var(--linha); }
  .js .menu .btn { margin-top:20px; }
  html:not(.js) .topo { position:static; }
  html:not(.js) .topo-linha { flex-wrap:wrap; }
  html:not(.js) .menu { flex:1 0 100%; flex-wrap:wrap; gap:8px 20px; }
  html:not(.js) .hero { padding-top:40px; }
  .hero-grade { gap:44px; }
  .hero h1 { font-size:clamp(46px,5.8vw,65px); }
  .servicos-grade { gap:14px; }
  .servico { padding:24px; }
  .servico h3 { font-size:21px; }
  .sobre-grade,.escolha-grade,.perguntas-grade { gap:40px; }
  .escolha-painel { padding:25px; }
  .antes { flex-wrap:wrap; }
  .antes .link { margin-left:39px; }
}
@media(max-width:760px) {
  .topo { padding:14px 0; }
  .topo-linha { gap:9px; }
  .marca { gap:8px; }
  .marca-simbolo { width:38px; height:38px; }
  .marca > span { font-size:24px; }
  .marca small { font-size:8px; letter-spacing:.035em; }
  .hero { padding:120px 0 47px; }
  .hero-grade { grid-template-columns:minmax(0,1fr); gap:43px; }
  .hero h1 { font-size:clamp(43px,10.7vw,62px); }
  .hero .rotulo { font-size:9px; letter-spacing:.095em; margin-bottom:20px; }
  .hero-lead { margin-top:23px; font-size:15px; line-height:1.85; max-width:43ch; }
  .hero-acoes { margin-top:24px; gap:8px 22px; }
  .hero-acoes .btn { flex:1 1 100%; }
  .hero-acoes .link { margin:0 auto; }
  .hero-nota { margin-top:12px; font-size:10px; }
  .hero-visual { width:100%; max-width:450px; margin:0 auto; }
  .hero-foto { aspect-ratio:5/5.4; border-radius:150px 150px 20px 20px; }
  .hero-visual figcaption { left:0; max-width:290px; padding:17px 21px; }
  .hero-mandala { width:340px; height:340px; right:-90px; }
  .fatos { grid-template-columns:minmax(0,1fr); gap:18px; padding-top:25px; padding-bottom:25px; }
  .fatos p { display:flex; justify-content:space-between; align-items:center; gap:20px; }
  .fatos p + p { padding-left:0; border:0; border-top:1px solid var(--linha); padding-top:18px; }
  .fatos strong { font-size:15px; flex:none; }
  .fatos span { font-size:10px; max-width:19ch; text-align:right; }
  .cabeca-secao { display:block; margin-bottom:28px; }
  .rotulo { font-size:9px; margin-bottom:19px; }
  .cabeca-secao > p { max-width:39ch; margin:22px 0 0; }
  .servicos-grade,.escolha-grade,.sobre-grade,.passos,.ambiente-grade,.perguntas-grade { grid-template-columns:minmax(0,1fr); }
  .servicos-grade { gap:17px; }
  .servico { padding:27px; }
  .servico h3 { font-size:24px; }
  .servico-topo { margin-bottom:23px; }
  .escolha-grade { gap:28px; }
  .escolha-lead { margin-top:22px; }
  .escolha-nota { margin-top:16px; }
  .escolha-painel { padding:24px; }
  .escolha-resposta { min-height:0; }
  .sobre-grade { gap:32px; }
  .sobre-identidade { padding:0; }
  .sobre-mandala { left:-65px; top:-23px; }
  .experiencia { margin-top:29px; }
  .experiencia strong { font-size:77px; }
  .passos { gap:29px; }
  .passos h3 { margin-top:17px; }
  .antes { padding:22px; gap:13px; align-items:flex-start; }
  .antes p { flex:1 1 80%; }
  .antes .link { margin-left:34px; }
  .ambiente { padding-top:0; }
  .ambiente-grade { gap:27px; }
  .perguntas-grade { gap:31px; }
  .perguntas .link-seta { margin-top:10px; }
  .contato-painel { padding:40px 24px; }
  .contato .btn { width:100%; padding-left:14px; padding-right:14px; font-size:12px; }
  .contato .rotulo { font-size:9px; }
  .contato-nota { max-width:31ch; }
  .rodape-linha { align-items:flex-start; flex-wrap:wrap; gap:23px; }
  .rodape-linha .marca { flex:1 0 100%; }
  .rodape-linha nav { flex:1 1 100%; gap:8px 22px; }
  .rodape-linha > p { margin:0; }
  .rodape-base { display:block; }
  .rodape-base > div { text-align:left; margin-top:20px; }
  .whats-flutuante { right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); }
}
@media(max-width:370px) {
  .marca-simbolo { width:30px; height:30px; }
  .marca > span { font-size:22px; }
  .marca small { font-size:7px; }
  .topo-linha { gap:7px; }
  .som-botao,.menu-botao { width:42px; height:42px; }
  .hero h1 { font-size:40px; }
  .hero { padding-top:113px; }
  .hero .rotulo { font-size:8px; gap:7px; }
  .assuntos { grid-template-columns:minmax(0,1fr); }
  .escolha-painel { padding:20px; }
}
