/* Calaes Clínica de Psicologia | Persona B, Acolhedor Orgânico, camada "mandala viva" */

@property --aura-a{syntax:"<color>";inherits:true;initial-value:rgba(141,182,238,.55)}
@property --aura-b{syntax:"<color>";inherits:true;initial-value:rgba(157,134,221,.35)}

:root{
  --azul:#3050B4;
  --azul-escuro:#243F96;
  --indigo:#1F2A6B;
  --ceu:#8DB6EE;
  --ceu-claro:#EAF2FD;
  --lilas:#9D86DD;
  --lilas-suave:#F0EBFC;
  --turquesa:#35AFC0;
  --sol:#F2C641;
  --ouro:#C9951C;
  --fundo:#FBFCFF;
  --superficie:#FFFFFF;
  --texto:#1F2A6B;
  --texto-suave:#555D86;
  --linha:rgba(31,42,107,.13);
  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius:28px;
  --radius-sm:16px;
  --shadow:0 18px 50px -24px rgba(31,42,107,.28);
  --shadow-soft:0 10px 30px -18px rgba(31,42,107,.22);
  --ease:cubic-bezier(.22,.61,.36,1);
  --wrap:1180px;
  --aura-a:rgba(141,182,238,.55);
  --aura-b:rgba(157,134,221,.35);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.7;color:var(--texto);background:var(--fundo);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.08;color:var(--indigo);margin:0 0 .6em;letter-spacing:-.01em}
h1{font-size:clamp(2.7rem,6vw,5.2rem);font-weight:500}
h2{font-size:clamp(2.2rem,4.4vw,3.6rem);font-weight:500}
h3{font-size:clamp(1.45rem,2.2vw,1.8rem)}
p{margin:0 0 1.1em}
em.acento,.acento{font-style:italic;color:var(--azul)}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--azul);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:1rem;top:-4rem;z-index:2000;background:var(--indigo);color:#fff;padding:.7rem 1.1rem;border-radius:10px;text-decoration:none}
.skip:focus{top:1rem}

/* ---------- aura ambiente (muda de cor por seção) ---------- */
.aura{position:fixed;inset:-20vh -20vw;z-index:-1;pointer-events:none;
  background:
    radial-gradient(40vw 40vw at 15% 20%,var(--aura-a),transparent 70%),
    radial-gradient(45vw 45vw at 88% 70%,var(--aura-b),transparent 70%);
  opacity:.55;transition:--aura-a 1.6s var(--ease),--aura-b 1.6s var(--ease);filter:blur(10px)}
.grao{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .16 0 0 0 0 .42 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.85rem 1.6rem;border-radius:999px;font-weight:600;font-size:1rem;text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s,border-color .25s}
.btn svg{width:20px;height:20px;flex:0 0 auto}
.btn-primario{background:var(--azul);color:#fff;box-shadow:0 12px 28px -12px rgba(48,80,180,.65)}
.btn-primario:hover{background:var(--azul-escuro);transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(48,80,180,.75)}
.btn-contorno{border-color:rgba(31,42,107,.28);color:var(--indigo);background:rgba(255,255,255,.55);backdrop-filter:blur(6px)}
.btn-contorno:hover{border-color:var(--azul);color:var(--azul);transform:translateY(-2px)}
.btn-claro{background:#fff;color:var(--indigo)}
.btn-claro:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(0,0,0,.4)}
.link-seta{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;color:var(--azul);text-decoration:none}
.link-seta svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.link-seta:hover svg{transform:translateX(4px)}

/* ---------- eyebrow e cabeçalhos ---------- */
.eyebrow{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.55rem;font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--azul);margin-bottom:1.1rem}
.eyebrow::after{content:'';width:34px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--turquesa),var(--lilas),var(--sol))}
.centro{text-align:center}
.centro .eyebrow{align-items:center}
.cabeca{max-width:760px;margin-bottom:clamp(2.5rem,5vw,4rem)}
.cabeca.centro{margin-inline:auto}
.cabeca .intro{color:var(--texto-suave);font-size:1.12rem;max-width:620px}
.cabeca.centro .intro{margin-inline:auto}

.secao{position:relative;padding-block:clamp(4.5rem,8vw,7rem)}

/* ---------- header ---------- */
.topo{position:fixed;inset:0 0 auto;z-index:1000;transition:background .35s,box-shadow .35s,padding .35s;padding-block:1.1rem}
.topo.scrolled{background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 8px 30px -20px rgba(31,42,107,.4);padding-block:.6rem}
.topo__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.marca{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--indigo);flex-shrink:0}
.marca__simbolo{position:relative;width:46px;height:46px;flex:0 0 auto}
.marca__simbolo svg{width:100%;height:100%;overflow:visible}
.marca__flor{transform-origin:25px 25px;transform:rotate(var(--giro,0deg));transition:transform .1s linear}
.marca__progresso{fill:none;stroke:var(--azul);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--progresso,0));transform:rotate(-90deg);transform-origin:25px 25px}
.marca__trilha{fill:none;stroke:var(--linha);stroke-width:2.4}
.marca__texto{display:flex;flex-direction:column;line-height:1}
.marca__nome{font-family:var(--serif);font-size:1.7rem;font-weight:600;letter-spacing:.02em}
.marca__sub{font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--texto-suave);margin-top:.28rem}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav__links{display:flex;gap:1.35rem;list-style:none;margin:0;padding:0}
.nav__links a{position:relative;text-decoration:none;font-size:.93rem;font-weight:600;color:var(--texto);padding:.4rem 0;transition:color .2s}
.nav__links a::after{content:'';position:absolute;left:50%;bottom:0;width:5px;height:5px;border-radius:50%;background:var(--sol);transform:translate(-50%,6px) scale(0);transition:transform .25s var(--ease)}
.nav__links a:hover,.nav__links a.active{color:var(--azul)}
.nav__links a:hover::after,.nav__links a.active::after,.nav__links a[aria-current="page"]::after{transform:translate(-50%,6px) scale(1)}
.nav .btn{min-height:46px;padding:.65rem 1.25rem;font-size:.93rem}
.nav-toggle{display:none;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid var(--linha);background:rgba(255,255,255,.9);border-radius:50%;color:var(--indigo);cursor:pointer;box-shadow:var(--shadow-soft)}
.nav-toggle svg{width:24px;height:24px}

/* drawer mobile: visual sempre fora de media query */
.mobile-menu{position:fixed;top:0;right:0;bottom:0;z-index:1200;width:min(86vw,360px);display:flex;flex-direction:column;padding:1.1rem 1.5rem 2rem;background:var(--superficie);box-shadow:-18px 0 50px -22px rgba(0,0,0,.28);transform:translateX(100%);visibility:hidden;transition:transform .34s cubic-bezier(.4,0,.2,1),visibility .34s;overscroll-behavior:contain;overflow-y:auto}
.mobile-menu.open{transform:none;visibility:visible}
.mobile-menu__head{display:flex;align-items:center;justify-content:space-between;padding-bottom:1rem;margin-bottom:.4rem;border-bottom:1px solid var(--linha)}
.mobile-menu__head .marca__simbolo{width:40px;height:40px}
.mobile-menu__head .marca__nome{font-size:1.5rem}
.mobile-menu__links{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.mobile-menu__links li{border-bottom:1px solid var(--linha)}
.mobile-menu__links a{display:flex;align-items:center;min-height:54px;font-size:1.06rem;font-weight:500;color:var(--texto);text-decoration:none;transition:color .2s}
.mobile-menu__links a:hover,.mobile-menu__links a.active,.mobile-menu__links a[aria-current="page"]{color:var(--azul)}
.mobile-menu__cta{margin-top:auto;width:100%;justify-content:center}
.mobile-menu__links + .mobile-menu__cta{margin-top:2rem}
.mobile-close{background:none;border:none;color:var(--azul);cursor:pointer;padding:.3rem;margin:-.3rem;line-height:0}
.mobile-close svg{width:30px;height:30px}
.menu-backdrop{position:fixed;inset:0;z-index:1100;background:rgba(18,24,64,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}
.menu-backdrop.open{opacity:1;visibility:visible}

@media (max-width:1100px){
  .topo__inner{justify-content:space-between}
  .nav{display:none}
  .marca{margin-right:auto}
  .nav-toggle{display:flex;margin-left:auto}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-top:7.5rem;padding-bottom:4rem;overflow:hidden;isolation:isolate}
.hero::before{content:'';position:absolute;inset:0;z-index:-2;background:
  radial-gradient(60% 70% at 78% 45%,rgba(157,134,221,.26),transparent 70%),
  radial-gradient(50% 60% at 12% 10%,rgba(141,182,238,.45),transparent 70%),
  linear-gradient(180deg,#EEF4FE 0%,#F6F3FD 60%,var(--fundo) 100%)}
.hero__luz{position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(420px 420px at var(--mx,70%) var(--my,40%),rgba(242,198,65,.18),transparent 70%);transition:background .2s}
.hero__grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.hero__crp{display:inline-flex;align-items:center;gap:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--texto-suave);margin-bottom:1.4rem}
.hero__crp::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--sol);box-shadow:0 0 0 5px rgba(242,198,65,.22)}
.hero h1{margin-bottom:.45em;line-height:1.14}
.hero h1 .acento{display:inline}
.hero__sub{font-size:clamp(1.08rem,1.4vw,1.22rem);color:var(--texto-suave);max-width:540px;margin-bottom:2.1rem}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.9rem}
.hero__selo{display:flex;flex-wrap:wrap;gap:1.4rem 2rem;margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--linha);max-width:560px}
.hero__selo div{display:flex;flex-direction:column;line-height:1.25}
.hero__selo strong{font-family:var(--serif);font-size:1.9rem;font-weight:600;color:var(--indigo)}
.hero__selo span{font-size:.84rem;color:var(--texto-suave)}

.palco{position:relative;aspect-ratio:1/1;width:min(100%,660px);margin-inline:auto;display:grid;place-items:center}
.palco__mandala{position:absolute;inset:0;transform:rotate(var(--spin,0deg))}
.palco__mandala svg{width:100%;height:100%;overflow:visible}
.palco__halo{position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(242,198,65,.25) 45%,rgba(157,134,221,.12) 65%,transparent 72%);filter:blur(4px)}
.portal{position:relative;z-index:2;width:56%;aspect-ratio:3/4;border-radius:999px 999px 36px 36px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(31,42,107,.55),0 0 0 8px rgba(255,255,255,.7);background:var(--ceu-claro)}
.portal img{width:100%;height:100%;object-fit:cover;object-position:42% 62%;transform:scale(1.08)}
.portal__legenda{position:absolute;z-index:3;left:50%;bottom:4%;transform:translateX(-50%);display:flex;align-items:center;gap:.55rem;padding:.55rem 1.05rem;border-radius:999px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft);font-size:.82rem;font-weight:600;white-space:nowrap;color:var(--indigo)}
.portal__legenda i{width:8px;height:8px;border-radius:50%;background:var(--turquesa);box-shadow:0 0 0 4px rgba(53,175,192,.2)}

/* mandala (gerada em JS) */
.mandala .traco{stroke-linecap:round;stroke-linejoin:round}
.mandala circle.traco{fill:none}
.mandala .camada{transform-origin:0 0}
.mandala .gira-1{animation:gira 120s linear infinite}
.mandala .gira-2{animation:gira 90s linear infinite reverse}
.mandala .gira-3{animation:gira 160s linear infinite}
.mandala .ponto{fill:var(--ouro)}
.mandala .palavras{font-family:var(--sans);font-size:9.5px;font-weight:700;letter-spacing:.42em;text-transform:uppercase;fill:var(--azul)}
@keyframes gira{to{transform:rotate(360deg)}}
.mandala .desenha{stroke-dasharray:1;stroke-dashoffset:1;animation:desenha 2.6s var(--ease) forwards;animation-delay:calc(var(--d,0) * 1ms)}
@keyframes desenha{to{stroke-dashoffset:0}}
.mandala .floresce{opacity:0;animation:floresce 1.4s var(--ease) forwards;animation-delay:calc(var(--d,0) * 1ms)}
@keyframes floresce{from{opacity:0}to{opacity:1}}

/* entrada do hero no load */
.entra{opacity:0;transform:translateY(22px);animation:entra 1s var(--ease) forwards;animation-delay:calc(var(--i,0) * 120ms + 200ms)}
@keyframes entra{to{opacity:1;transform:none}}
.palavra-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.14em 0 .08em;margin:-.14em 0 -.08em}
.palavra-mask > span{display:inline-block;transform:translateY(105%);animation:sobe 1s var(--ease) forwards;animation-delay:calc(var(--i,0) * 70ms + 250ms)}
@keyframes sobe{to{transform:none}}

/* ---------- divisor com nó de mandala ---------- */
.divisor{display:flex;align-items:center;justify-content:center;gap:1rem;width:min(100% - 2.5rem,640px);margin:0 auto;color:var(--lilas)}
.divisor::before,.divisor::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--linha) 30%,rgba(157,134,221,.5))}
.divisor::after{background:linear-gradient(270deg,transparent,var(--linha) 30%,rgba(157,134,221,.5))}
.divisor svg{width:26px;height:26px;flex:0 0 auto}

/* ---------- pausa para respirar ---------- */
.respira{padding-block:clamp(3.5rem,6vw,5rem)}
.respira__card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding:clamp(2rem,4vw,3.2rem);border-radius:var(--radius);background:linear-gradient(120deg,rgba(255,255,255,.85),rgba(240,235,252,.8));border:1px solid rgba(157,134,221,.22);box-shadow:var(--shadow);overflow:hidden}
.respira__card::after{content:'';position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(242,198,65,.25),transparent 70%)}
.bolha{position:relative;width:clamp(170px,22vw,220px);aspect-ratio:1;display:grid;place-items:center}
.bolha__anel{position:absolute;inset:0;border-radius:50%;border:1.5px dashed rgba(157,134,221,.45)}
.bolha__nucleo{position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--ceu) 55%,var(--lilas));box-shadow:0 0 40px rgba(141,182,238,.6);transform:scale(.72);transition:transform 4s cubic-bezier(.45,.05,.55,.95)}
.bolha__texto{position:relative;z-index:2;font-family:var(--serif);font-style:italic;font-size:1.35rem;font-weight:600;color:var(--indigo);text-align:center;line-height:1.1}
.bolha.inspira .bolha__nucleo{transform:scale(1.3);transition-duration:4s}
.bolha.segura .bolha__nucleo{transform:scale(1.3)}
.bolha.expira .bolha__nucleo{transform:scale(.72);transition-duration:6s}
.respira__texto h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}
.respira__texto p{color:var(--texto-suave);max-width:560px}
.respira__acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.6rem}
.respira__contagem{font-size:.9rem;color:var(--texto-suave)}

/* ---------- visão integral: corpo, mente, espírito ---------- */
.integral{padding-bottom:clamp(3rem,6vw,5rem)}
.integral__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem)}
.integral__fixo{position:sticky;top:14vh;height:min(72vh,560px);display:grid;place-items:center}
.aneis{width:min(100%,480px);aspect-ratio:1;position:relative}
.aneis svg{width:100%;height:100%;overflow:visible;transform:rotate(var(--rot,0deg));transition:transform 1.2s var(--ease)}
.aneis .anel{fill:none;stroke-width:1.4;opacity:.35;transition:opacity .8s,stroke-width .8s,filter .8s}
.aneis .anel-petala{opacity:.28;transition:opacity .8s}
.aneis .rotulo-anel{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.35em;text-transform:uppercase;opacity:.4;transition:opacity .8s}
.integral[data-ativo="corpo"] .g-corpo .anel,.integral[data-ativo="mente"] .g-mente .anel,.integral[data-ativo="espirito"] .g-espirito .anel{opacity:1;stroke-width:2.6;filter:drop-shadow(0 0 6px currentColor)}
.integral[data-ativo="corpo"] .g-corpo .anel-petala,.integral[data-ativo="mente"] .g-mente .anel-petala,.integral[data-ativo="espirito"] .g-espirito .anel-petala{opacity:.9}
.integral[data-ativo="corpo"] .g-corpo .rotulo-anel,.integral[data-ativo="mente"] .g-mente .rotulo-anel,.integral[data-ativo="espirito"] .g-espirito .rotulo-anel{opacity:1}
.integral[data-ativo="corpo"]{--rot:0deg}
.integral[data-ativo="mente"]{--rot:-120deg}
.integral[data-ativo="espirito"]{--rot:-240deg}
.aneis__centro{position:absolute;inset:36%;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,#fff 40%,rgba(255,255,255,.6));box-shadow:0 0 50px rgba(242,198,65,.35);font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.5rem);font-style:italic;font-weight:600;color:var(--indigo);line-height:1.1;padding:.5rem}
.painel-integral{min-height:48vh;display:flex;flex-direction:column;justify-content:center;padding-block:2rem}
.painel-integral__num{display:inline-flex;align-items:center;gap:.8rem;font-size:.8rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1rem}
.painel-integral__num i{width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:0 0 0 6px color-mix(in srgb,currentColor 18%,transparent)}
.painel-integral h3{font-size:clamp(2rem,3.6vw,3rem);font-weight:500}
.painel-integral p{color:var(--texto-suave);font-size:1.1rem;max-width:520px}
.cor-corpo{color:var(--turquesa)}
.cor-mente{color:var(--azul)}
.cor-espirito{color:var(--ouro)}
.integral__nota{margin-top:1rem;padding:1.6rem 1.8rem;border-radius:var(--radius-sm);background:rgba(255,255,255,.75);border:1px solid var(--linha);color:var(--texto-suave);font-size:1rem}
.integral__nota strong{color:var(--indigo)}

/* ---------- sobre ---------- */
.sobre__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.sobre__foto{position:relative}
.sobre__foto .arco{border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.sobre__foto .arco img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.sobre__blob{position:absolute;z-index:-1;inset:-8% -10% -6% -8%;border-radius:58% 42% 55% 45%/48% 55% 45% 52%;background:linear-gradient(140deg,rgba(141,182,238,.45),rgba(157,134,221,.35),rgba(242,198,65,.28))}
.sobre__contador{position:absolute;right:-6%;bottom:9%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:150px;aspect-ratio:1;border-radius:50%;background:#fff;box-shadow:var(--shadow);text-align:center;line-height:1.1}
.sobre__contador strong{font-family:var(--serif);font-size:3.2rem;font-weight:600;color:var(--azul)}
.sobre__contador span{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--texto-suave);max-width:100px}
.sobre__texto p{color:var(--texto-suave)}
.sobre__texto p.destaque{font-family:var(--serif);font-size:clamp(1.4rem,2.3vw,1.8rem);font-style:italic;line-height:1.35;color:var(--indigo)}
.credenciais{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:.2rem}
.credenciais li{display:grid;grid-template-columns:28px 1fr;gap:.9rem;align-items:start;padding:.85rem 0;border-bottom:1px solid var(--linha);font-size:.98rem}
.credenciais li:last-child{border-bottom:0}
.credenciais svg{width:22px;height:22px;color:var(--lilas);margin-top:.15rem}
.credenciais strong{color:var(--indigo);font-weight:700}

/* ---------- atendimentos: painéis que se expandem ---------- */
.paineis{display:flex;gap:1rem;height:470px}
.painel{position:relative;flex:1;min-width:0;border-radius:var(--radius);overflow:hidden;cursor:pointer;padding:1.8rem;display:flex;flex-direction:column;justify-content:flex-end;color:var(--indigo);background:var(--bg);border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow-soft);transition:flex 0.8s var(--ease),box-shadow .4s;outline:none;text-align:left}
.painel:focus-visible{box-shadow:0 0 0 3px var(--azul)}
.painel.ativo{flex:3.2;box-shadow:var(--shadow)}
.painel__arte{position:absolute;right:-70px;top:-70px;width:260px;height:260px;opacity:.55;color:#fff;transition:transform 1.2s var(--ease)}
.painel.ativo .painel__arte{transform:rotate(45deg) scale(1.1)}
.painel:not(.ativo) h3{writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;margin:0}
.painel h3{transition:opacity .4s}
.painel__icone{position:absolute;top:1.6rem;left:1.6rem;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.85);color:var(--azul);box-shadow:var(--shadow-soft)}
.painel__icone svg{width:26px;height:26px}
.painel__num{position:absolute;top:1.9rem;right:1.7rem;font-family:var(--serif);font-size:1.1rem;font-style:italic;font-weight:600;opacity:.7}
.painel h3{margin-bottom:.5rem;font-size:clamp(1.5rem,2.2vw,2rem);white-space:nowrap}
.painel__corpo{max-height:0;opacity:0;overflow:hidden;transition:max-height .8s var(--ease),opacity .5s}
.painel.ativo .painel__corpo{max-height:260px;opacity:1;transition-delay:.25s}
.painel__corpo p{margin-bottom:.8rem;color:#343D78;max-width:460px;font-size:1rem}
.painel__tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}
.painel__tags li{font-size:.78rem;font-weight:600;padding:.3rem .75rem;border-radius:999px;background:rgba(255,255,255,.7)}
.p1{--bg:linear-gradient(160deg,#DDE9FB,#C3D8F7 60%,#B7CEF4)}
.p2{--bg:linear-gradient(160deg,#EEE7FC,#DCD0F7 60%,#CDBDF2)}
.p3{--bg:linear-gradient(160deg,#DDF3F5,#C1E8EC 60%,#A9DDE3)}
.p4{--bg:linear-gradient(160deg,#FCF3D6,#F8E6AE 60%,#F4DA8C)}

/* ---------- diferenciais: lista em órbita ---------- */
.diferenciais__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.diferenciais__intro{position:sticky;top:18vh}
.orbita{list-style:none;margin:0;padding:0;position:relative}
.orbita::before{content:'';position:absolute;left:44px;top:10px;bottom:10px;width:1.5px;background:linear-gradient(180deg,var(--turquesa),var(--azul),var(--lilas),var(--sol))}
.orbita li{position:relative;display:grid;grid-template-columns:90px 1fr;gap:1.4rem;padding:1.3rem 0}
.orbita__num{position:relative;z-index:1;width:90px;height:90px;border-radius:50%;display:grid;place-items:center;background:var(--fundo);border:1.5px solid rgba(157,134,221,.4);font-family:var(--serif);font-size:2.4rem;font-weight:500;font-style:italic;color:var(--azul);transition:background .4s,color .4s,transform .4s var(--ease)}
.orbita li:hover .orbita__num{background:var(--azul);color:#fff;transform:rotate(-8deg) scale(1.05)}
.orbita h3{margin:.9rem 0 .35rem;font-size:1.55rem}
.orbita p{color:var(--texto-suave);margin:0}

/* ---------- CTA intermediária ---------- */
.cta-faixa{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(5rem,9vw,7.5rem);color:#fff;text-align:center;background:linear-gradient(125deg,#1F2A6B 0%,#3050B4 48%,#6E5CC4 100%)}
.cta-faixa .onda{position:absolute;left:0;width:100%;height:70px;color:var(--fundo)}
.cta-faixa .onda-topo{top:-1px}
.cta-faixa .onda-base{bottom:-1px;transform:scaleY(-1)}
.cta-faixa__mandala{position:absolute;z-index:-1;left:50%;top:50%;width:min(900px,140vw);aspect-ratio:1;transform:translate(-50%,-50%) rotate(var(--spin,0deg));opacity:.22;color:#fff}
.cta-faixa__mandala svg{width:100%;height:100%}
.tema-escuro h1,.tema-escuro h2,.tema-escuro h3,.tema-escuro h4{color:#fff}
.tema-escuro .eyebrow{color:#FCE7A6}
.cta-faixa h2{max-width:780px;margin-inline:auto}
.cta-faixa p{max-width:600px;margin:0 auto 2rem;color:rgba(255,255,255,.85);font-size:1.12rem}
.cta-faixa .acento{color:#FCE7A6}

/* ---------- espaço: galeria em íris ---------- */
.galeria{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:280px 280px;gap:1rem}
.galeria figure{margin:0;position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.galeria figure:nth-child(1){grid-row:span 2;border-radius:999px 999px var(--radius) var(--radius)}
.galeria figure:nth-child(4){grid-column:span 2}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.galeria figure:hover img{transform:scale(1.05)}
.galeria figcaption{position:absolute;left:1rem;bottom:1rem;padding:.4rem .9rem;border-radius:999px;background:rgba(255,255,255,.9);font-size:.8rem;font-weight:600;color:var(--indigo)}
.reveal-iris{clip-path:circle(0% at 50% 60%);transition:clip-path 1.5s var(--ease);transition-delay:calc(var(--i,0) * 140ms)}
.reveal-iris.visible{clip-path:circle(150% at 50% 60%)}
.reveal-iris.iris-feito{clip-path:none;transition:none}

/* ---------- além do consultório ---------- */
.alem__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.trilha{list-style:none;margin:0;padding:0}
.trilha li{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.4rem 0;border-top:1px solid var(--linha)}
.trilha li:last-child{border-bottom:1px solid var(--linha)}
.trilha__marca{width:14px;height:14px;margin-top:.55rem;border-radius:50%;border:2px solid var(--lilas);background:var(--fundo)}
.trilha h3{font-size:1.35rem;margin-bottom:.3rem}
.trilha p{margin:0;color:var(--texto-suave);font-size:.98rem}
.empresas{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.7rem;padding:0;list-style:none}
.empresas li{font-size:.8rem;font-weight:600;padding:.3rem .8rem;border-radius:999px;background:var(--ceu-claro);color:var(--azul-escuro)}
.faixa-palestras{margin-top:clamp(3rem,6vw,4.5rem);overflow:hidden;border-block:1px solid var(--linha);padding-block:1.4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.faixa-palestras__trilho{display:flex;gap:3rem;width:max-content;animation:desliza 38s linear infinite}
.faixa-palestras:hover .faixa-palestras__trilho{animation-play-state:paused}
.faixa-palestras span{display:inline-flex;align-items:center;gap:3rem;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-style:italic;color:var(--indigo);white-space:nowrap}
.faixa-palestras span::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--sol)}
@keyframes desliza{to{transform:translateX(-50%)}}

/* ---------- como funciona: caminho que se desenha ---------- */
.caminho{position:relative}
.caminho__svg{position:absolute;left:0;right:0;top:40px;width:100%;height:80px;overflow:visible;pointer-events:none}
.caminho__svg path{fill:none;stroke-width:2;stroke-linecap:round}
.caminho__base{stroke:var(--linha);stroke-dasharray:4 8}
.caminho__vivo{stroke:url(#grad-caminho);stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--desenho,0))}
.passos{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.passo{text-align:center;padding:0 .5rem}
.passo__ponto{width:92px;height:92px;margin:0 auto 1.4rem;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:var(--shadow-soft);border:1.5px solid rgba(157,134,221,.35);color:var(--azul);position:relative;transition:transform .5s var(--ease),background .5s,color .5s}
.passo__ponto svg{width:32px;height:32px}
.passo__ponto b{position:absolute;top:-6px;right:-6px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--sol);color:var(--indigo);font-size:.85rem;font-weight:800}
.passo.aceso .passo__ponto{background:var(--azul);color:#fff;transform:scale(1.06)}
.passo h3{font-size:1.45rem;margin-bottom:.4rem}
.passo p{font-size:.97rem;color:var(--texto-suave);margin:0}

/* ---------- FAQ ---------- */
.faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.faq__intro{position:sticky;top:18vh}
.faq__lista{border-top:1px solid var(--linha)}
.faq__item{border-bottom:1px solid var(--linha)}
.faq__pergunta{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.35rem 0;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--serif);font-size:clamp(1.25rem,1.9vw,1.5rem);font-weight:600;color:var(--indigo);min-height:56px}
.faq__icone{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--linha);color:var(--azul);transition:transform .4s var(--ease),background .3s,color .3s}
.faq__icone svg{width:18px;height:18px}
.faq__item.aberto .faq__icone{transform:rotate(45deg);background:var(--azul);color:#fff;border-color:var(--azul)}
.faq__resposta{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.faq__item.aberto .faq__resposta{grid-template-rows:1fr}
.faq__resposta > div{overflow:hidden}
.faq__resposta p{padding:0 3.2rem 1.4rem 0;color:var(--texto-suave);margin:0}

/* ---------- blog ---------- */
.secao-blog{border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);background:linear-gradient(180deg,rgba(234,242,253,.55),rgba(240,235,252,.45))}
.blog__grade{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.card-breve{display:block;text-decoration:none;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--linha);box-shadow:var(--shadow-soft);transition:transform .35s var(--ease),box-shadow .35s}
.card-breve:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card-breve__capa{position:relative;aspect-ratio:16/10;overflow:hidden;display:grid;place-items:center}
.card-breve__capa svg{width:62%;height:auto;opacity:.75;color:#fff}
.capa-1{background:linear-gradient(140deg,#C9DCF8,#9EC0F0)}
.capa-2{background:linear-gradient(140deg,#E3DAF9,#BBA8EC)}
.capa-3{background:linear-gradient(140deg,#FBEFC7,#F1D27A)}
.card-breve__corpo{padding:1.4rem 1.5rem 1.6rem}
.selo-breve{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--azul);background:var(--ceu-claro);padding:.3rem .75rem;border-radius:999px;margin-bottom:.8rem}
.card-breve h3{font-size:1.4rem;margin:0 0 .3rem}
.card-breve p{margin:0;font-size:.95rem;color:var(--texto-suave)}
.blog__acao{text-align:center;margin-top:2.6rem}

/* ---------- contato ---------- */
.contato__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contato__info p{color:var(--texto-suave)}
.info-lista{list-style:none;margin:2rem 0;padding:0;display:grid;gap:1rem}
.info-lista li{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:center}
.info-lista .ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--linha);color:var(--azul)}
.info-lista .ico svg{width:22px;height:22px}
.info-lista a{text-decoration:none;font-weight:600;color:var(--indigo)}
.info-lista a:hover{color:var(--azul)}
.info-lista small{display:block;font-size:.85rem;color:var(--texto-suave);font-weight:400}
.form{position:relative;padding:clamp(1.6rem,3.5vw,2.6rem);border-radius:var(--radius);background:rgba(255,255,255,.92);border:1px solid var(--linha);box-shadow:var(--shadow)}
.form__linha{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.campo{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}
.campo label{font-size:.88rem;font-weight:700;color:var(--indigo)}
.campo input,.campo textarea{width:100%;font:inherit;font-size:1rem;color:var(--texto);padding:.9rem 1.05rem;border-radius:14px;border:1.5px solid var(--linha);background:var(--fundo);transition:border-color .2s,box-shadow .2s;min-height:52px}
.campo textarea{min-height:130px;resize:vertical}
.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 4px rgba(48,80,180,.12)}
.campo.erro input,.campo.erro textarea{border-color:#C0392B}
.campo__erro{font-size:.82rem;color:#B03A2E;min-height:1em}
.form__lgpd{font-size:.85rem;color:var(--texto-suave);margin:.2rem 0 1.3rem}
.form__lgpd a{color:var(--azul);font-weight:600}
.form .btn{width:100%}
.form__status{margin:1rem 0 0;font-size:.9rem;color:var(--azul);min-height:1.2em;text-align:center}

/* ---------- rodapé ---------- */
.rodape{position:relative;padding-top:clamp(5rem,8vw,6.5rem);padding-bottom:2rem;background:linear-gradient(180deg,#EDF3FD,#EFE9FB);overflow:hidden}
.rodape .onda-topo{position:absolute;top:-1px;left:0;width:100%;height:60px;color:var(--fundo)}
.rodape__grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--linha)}
.rodape__bio{color:var(--texto-suave);font-size:.95rem;max-width:380px;margin-top:1.2rem}
.rodape__titulo{font-family:var(--sans);font-size:.78rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--azul);margin-bottom:1rem}
.rodape__menu{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.rodape__menu a{display:inline-flex;min-height:36px;align-items:center;text-decoration:none;color:var(--texto);font-size:.95rem}
.rodape__menu a:hover{color:var(--azul)}
.contatos{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0}
.contatos a,.contatos span.item{display:inline-flex;align-items:center;gap:.65rem;min-height:44px;color:currentColor;text-decoration:none;font-size:.95rem}
.contatos a:hover{color:var(--azul)}
.contatos svg{flex:0 0 auto}
.rodape__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.6rem;font-size:.85rem;color:var(--texto-suave)}
.rodape__base a{color:var(--texto-suave)}
.rodape__base a:hover{color:var(--azul)}
.rodape__crp{font-weight:700;color:var(--indigo)}
.rodape__mandala{position:absolute;right:-160px;bottom:-200px;width:520px;opacity:.12;color:var(--lilas);pointer-events:none}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{position:fixed;bottom:2rem;right:2rem;z-index:900;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 10px 26px -8px rgba(37,211,102,.7);animation:wa-float 3.2s ease-in-out infinite,wa-pulse 2.8s ease-out 1.2s infinite;will-change:transform,box-shadow;transition:transform .25s}
.wa-float:hover{animation-play-state:paused;transform:scale(1.13)}
@keyframes wa-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes wa-pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 0 0 20px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* ---------- decorações ---------- */
.blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(40px);pointer-events:none}
.decor-drift{animation:drift 18s ease-in-out infinite alternate;will-change:transform}
@keyframes drift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-14px,0) rotate(1.5deg)}100%{transform:translate3d(8px,6px,0)}}
.marca-dagua{position:absolute;z-index:-1;pointer-events:none;color:var(--lilas);opacity:.1}

/* ---------- reveal on-scroll ---------- */
.animate-on-scroll{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:calc(var(--i,0) * 100ms)}
.animate-on-scroll.visible{opacity:1;transform:none}
.reveal-titulo .reveal-w{display:inline-block;transform:translateY(105%);transition:transform .9s var(--ease);transition-delay:calc(var(--w,0) * 55ms)}
.reveal-titulo .mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.14em 0 .1em;margin:-.14em 0 -.1em}
.reveal-titulo.visible .reveal-w{transform:none}

/* ---------- página de espera do blog / política ---------- */
.pagina-simples{padding-top:9rem;padding-bottom:5rem;position:relative;overflow:hidden}
.espera{min-height:70vh;display:grid;place-items:center;text-align:center}
.espera__simbolo{width:140px;margin:0 auto 2rem;color:var(--lilas)}
.espera p{color:var(--texto-suave);max-width:560px;margin-inline:auto}
.espera__acoes{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}
.politica{max-width:780px}
.politica h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:2.4rem}
.politica p,.politica li{color:var(--texto-suave)}

/* ---------- responsivo ---------- */
@media (max-width:1100px){
  .paineis{flex-direction:column;height:auto}
  .painel{min-height:auto;padding:5.5rem 1.6rem 1.8rem}
  .painel .painel__corpo{max-height:none;opacity:1}
  .painel__arte{width:170px;height:170px;right:-50px;top:-50px;opacity:.35}
  .painel h3{white-space:normal}
  .painel.ativo{flex:1}
  .painel:not(.ativo) h3{writing-mode:horizontal-tb;transform:none;align-self:auto;margin-bottom:.5rem}
}
@media (max-width:900px){
  .hero{padding-top:6.5rem;min-height:auto}
  .hero__grid,.sobre__grid,.integral__grid,.diferenciais__grid,.alem__grid,.faq__grid,.contato__grid{grid-template-columns:1fr}
  .hero__visual{order:-1}
  .palco{width:min(100%,460px)}
  .integral__fixo{position:relative;top:0;height:auto;margin-bottom:1rem}
  .aneis{width:min(100%,320px)}
  .painel-integral{min-height:auto;padding-block:1.4rem}
  .diferenciais__intro,.faq__intro{position:static}
  .sobre__foto{max-width:440px;margin-inline:auto}
  .galeria{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .galeria figure{aspect-ratio:3/4}
  .galeria figure:nth-child(1){grid-row:auto;grid-column:span 2;aspect-ratio:4/5}
  .galeria figure:nth-child(4){grid-column:span 2;aspect-ratio:16/10}
  .passos{grid-template-columns:1fr 1fr;row-gap:2.5rem}
  .caminho__svg{display:none}
  .blog__grade{grid-template-columns:1fr}
  .rodape__grid{grid-template-columns:1fr 1fr}
  .rodape__grid > div:first-child{grid-column:span 2}
  .respira__card{grid-template-columns:1fr;text-align:center;justify-items:center}
  .respira__texto p{margin-inline:auto}
  .respira__acoes{justify-content:center}
}
@media (max-width:640px){
  body{font-size:1rem}
  .wrap{width:min(100% - 2rem,var(--wrap))}
  .marca__nome{font-size:1.5rem}
  .marca__simbolo{width:40px;height:40px}
  .hero__ctas .btn{width:100%}
  .hero__selo{gap:1rem 1.6rem}
  .sobre__contador{width:118px;right:-2%}
  .sobre__contador strong{font-size:2.5rem}
  .orbita::before{left:32px}
  .orbita li{grid-template-columns:64px 1fr;gap:1rem}
  .orbita__num{width:64px;height:64px;font-size:1.8rem}
  .orbita h3{margin-top:.4rem;font-size:1.35rem}
  .passos{grid-template-columns:1fr}
  .form__linha{grid-template-columns:1fr}
  .rodape__grid{grid-template-columns:1fr}
  .rodape__grid > div:first-child{grid-column:auto}
  .faq__resposta p{padding-right:0}
  .wa-float{bottom:1.2rem;right:1.2rem;width:56px;height:56px}
  .painel h3{font-size:1.55rem}
  .galeria{grid-template-columns:1fr}
  .galeria figure,.galeria figure:nth-child(1),.galeria figure:nth-child(4){grid-column:auto;aspect-ratio:4/3}
  .galeria figure:nth-child(1){aspect-ratio:4/5}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .animate-on-scroll,.entra{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .palavra-mask > span,.reveal-titulo .reveal-w{transform:none!important;animation:none!important;transition:none!important}
  .reveal-iris{clip-path:none!important;transition:none!important}
  .decor-drift,.mandala .gira-1,.mandala .gira-2,.mandala .gira-3,.faixa-palestras__trilho,.wa-float{animation:none!important}
  .mandala .desenha{stroke-dashoffset:0!important;animation:none!important}
  .mandala .floresce{opacity:1!important;animation:none!important}
  [data-parallax]{transform:none!important}
  .mobile-menu,.menu-backdrop{transition:none!important}
  .bolha__nucleo{transition:none!important}
}
