/* Corpore Pilates — estilos */

@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
  src:url('../fonts/cormorant-garamond-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}
@font-face{
  font-family:'Jost';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../fonts/jost-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;
}

:root{
  --verde-escuro:#3a4a35;
  --verde:#556b4c;
  --verde-claro:#7c9370;
  --areia:#b9a081;
  --areia-clara:#e8ddcc;
  --creme:#faf6ef;
  --creme-2:#f2ece1;
  --branco:#ffffff;
  --texto:#2c2c26;
  --texto-suave:#5c5c52;
  --linha:#e2d9c8;
  --sombra: 0 20px 45px -20px rgba(58,74,53,.35);
  --sombra-suave: 0 10px 30px -18px rgba(58,74,53,.28);
  --raio: 18px;
  --fonte-titulo:'Cormorant Garamond', 'Georgia', serif;
  --fonte-corpo:'Jost', 'Segoe UI', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

body{
  margin:0;
  font-family:var(--fonte-corpo);
  color:var(--texto);
  background:var(--creme);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--fonte-titulo); font-weight:600; margin:0 0 .5em; color:var(--verde-escuro); line-height:1.15;}
p{margin:0 0 1em;}
.container{width:min(1160px, 92%); margin-inline:auto;}
section{padding:clamp(64px, 9vw, 120px) 0;}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--fonte-corpo); text-transform:uppercase; letter-spacing:.16em;
  font-size:.75rem; font-weight:600; color:var(--verde);
  margin-bottom:.9em;
}
.eyebrow::before{content:''; width:26px; height:1px; background:var(--areia);}
.centro{text-align:center; max-width:680px; margin-inline:auto;}
.centro .eyebrow::before{display:none;}
.centro .eyebrow{justify-content:center;}

/* Botões */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.95em 1.7em; border-radius:999px; font-weight:600; font-size:.98rem;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn:active{transform:translateY(1px);}
.btn-whats{background:#25D366; color:#fff; box-shadow:0 12px 28px -12px rgba(37,211,102,.55);}
.btn-whats:hover{background:#1fbd5a; transform:translateY(-2px);}
.btn-primario{background:var(--verde-escuro); color:#fff;}
.btn-primario:hover{background:var(--verde); transform:translateY(-2px);}
.btn-contorno{background:transparent; border-color:var(--verde-escuro); color:var(--verde-escuro);}
.btn-contorno:hover{background:var(--verde-escuro); color:#fff;}
.btn-claro{background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.5); color:#fff; backdrop-filter:blur(4px);}
.btn-claro:hover{background:#fff; color:var(--verde-escuro);}
.btn-bloco{width:100%;}

/* Header */
.topo{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:16px 0;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
}
.topo::before{
  content:''; position:absolute; inset:0; background:transparent; transition:background .35s ease, backdrop-filter .35s ease;
  z-index:-1;
}
.topo.rolou{padding:10px 0;}
.topo.rolou::before{background:rgba(250,246,239,.92); backdrop-filter:blur(10px); box-shadow:0 8px 30px -18px rgba(44,44,38,.25);}
.topo .container{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.marca{display:flex; align-items:center; gap:.7em; text-decoration:none;}
.marca img{height:44px; width:auto; border-radius:10px; transition:height .3s ease;}
.topo.rolou .marca img{height:38px;}
.marca span{
  font-family:var(--fonte-titulo); font-weight:600; letter-spacing:.04em;
  font-size:1.15rem; color:var(--branco);
  transition:color .3s ease;
}
.topo.rolou .marca span{color:var(--verde-escuro);}

.nav-desktop{display:flex; align-items:center; gap:2.1em;}
.nav-desktop a{
  text-decoration:none; font-size:.94rem; font-weight:500; color:var(--branco);
  position:relative; padding:.2em 0; transition:color .3s ease;
}
.topo.rolou .nav-desktop a{color:var(--texto);}
.nav-desktop a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-4px; height:2px; background:var(--areia);
  transition:right .25s ease;
}
.nav-desktop a:hover::after{right:0;}
.acoes-topo{display:flex; align-items:center; gap:14px;}
.hamburguer{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.5);
  background:transparent; cursor:pointer; padding:0;
}
.topo.rolou .hamburguer{border-color:var(--linha);}
.hamburguer span{width:18px; height:2px; background:var(--branco); margin-inline:auto; transition:all .3s ease;}
.topo.rolou .hamburguer span{background:var(--verde-escuro);}
.hamburguer.aberto span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburguer.aberto span:nth-child(2){opacity:0;}
.hamburguer.aberto span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.nav-mobile{
  position:fixed; inset:0; z-index:99; background:var(--creme);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6em;
  transform:translateY(-100%); transition:transform .4s ease;
}
.nav-mobile.aberto{transform:translateY(0);}
.nav-mobile a{font-family:var(--fonte-titulo); font-size:1.6rem; text-decoration:none; color:var(--verde-escuro);}

@media (max-width: 900px){
  .nav-desktop{display:none;}
  .hamburguer{display:flex;}
  .acoes-topo .btn-whats span.txt-completo{display:none;}
}

/* Hero */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:120px; overflow:hidden; isolation:isolate;
  background:linear-gradient(180deg, #2f3d2b 0%, #3a4a35 55%, #48583f 100%);
}
.hero-imagem{
  position:absolute; inset:0; z-index:-2;
}
.hero-imagem img{
  width:100%; height:100%; object-fit:cover; object-position:center 30%;
  opacity:.34;
}
.hero-imagem::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(35,46,32,.55) 0%, rgba(35,46,32,.75) 60%, var(--creme) 100%);
}
.orbe{position:absolute; border-radius:50%; filter:blur(60px); z-index:-1; opacity:.5;}
.orbe-1{width:420px; height:420px; background:var(--verde-claro); top:-120px; right:-100px; animation:flutuar 12s ease-in-out infinite;}
.orbe-2{width:320px; height:320px; background:var(--areia); bottom:-80px; left:-80px; animation:flutuar 14s ease-in-out infinite reverse;}
@keyframes flutuar{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(30px,-20px) scale(1.08);}
}

.hero .container{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center;}
.hero-texto .eyebrow{color:var(--areia-clara);}
.hero-texto .eyebrow::before{background:var(--areia);}
.hero-texto h1{color:#fff; font-size:clamp(2.3rem, 4.6vw, 3.6rem); max-width:14ch;}
.hero-texto h1 em{color:var(--areia-clara); font-style:normal;}
.hero-texto .lead{color:rgba(255,255,255,.86); font-size:1.12rem; max-width:46ch;}
.pilares-hero{display:flex; flex-wrap:wrap; gap:12px; margin:.9em 0 0;}
.pilar-tag{
  display:inline-flex; align-items:center; gap:.55em;
  padding:.7em 1.3em; border-radius:999px; font-size:1.02rem; font-weight:700; color:var(--verde-escuro);
  background:var(--areia-clara); box-shadow:0 10px 22px -10px rgba(0,0,0,.45);
}
.pilar-tag svg{color:var(--verde-escuro); flex-shrink:0;}
.hero-botoes{display:flex; flex-wrap:wrap; gap:14px; margin:1.6em 0 2em;}
.selos{display:flex; flex-wrap:wrap; gap:22px;}
.selo{display:flex; align-items:center; gap:.6em; color:#fff; font-size:.92rem;}
.selo strong{font-family:var(--fonte-titulo); font-size:1.5rem; display:block; color:var(--areia-clara); line-height:1;}
.selo svg{flex-shrink:0; color:var(--areia-clara);}

/* Ilustração hero: figura de pilates que se desenha */
.hero-figura{
  position:relative; display:flex; align-items:center; justify-content:center;
}
.hero-figura .anel{
  position:absolute; border:1px solid rgba(255,255,255,.25); border-radius:50%;
  animation:respirar 6s ease-in-out infinite;
}
.hero-figura .anel-1{width:320px; height:320px;}
.hero-figura .anel-2{width:400px; height:400px; animation-delay:.6s;}
.hero-figura .anel-3{width:480px; height:480px; animation-delay:1.2s;}
@keyframes respirar{
  0%,100%{transform:scale(1); opacity:.5;}
  50%{transform:scale(1.06); opacity:.9;}
}
.hero-figura svg{position:relative; z-index:1; width:min(280px, 62vw); height:auto; overflow:visible;}
.tracado{
  fill:none; stroke-dasharray:520; stroke-dashoffset:520;
  animation:desenhar 1.3s ease forwards;
}
.tracado-1{animation-delay:.2s;}
.tracado-2{animation-delay:1.1s; stroke-dasharray:280; stroke-dashoffset:280;}
.tracado-3{animation-delay:1.6s; stroke-dasharray:220; stroke-dashoffset:220;}
.tracado-4{animation-delay:2.05s;}
@keyframes desenhar{to{stroke-dashoffset:0;}}
.ponto-figura{
  transform-origin:center; opacity:0;
  animation:surgir .5s ease forwards 3.3s;
}
@keyframes surgir{to{opacity:1;}}

@media (max-width:960px){
  .hero .container{grid-template-columns:1fr; text-align:center;}
  .hero-texto h1,.hero-texto .lead{margin-inline:auto;}
  .hero-botoes,.selos,.pilares-hero{justify-content:center;}
  /* Efeito animado (figura + anéis + orbes) removido no mobile: menos custo de
     renderização/animação na primeira carga e um hero mais limpo em telas pequenas. */
  .hero-figura,.orbe{display:none;}
}

/* Contadores */
.faixa-numeros{
  background:var(--verde-escuro); color:#fff; padding:40px 0;
}
.faixa-numeros .container{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center;}
.numero{font-family:var(--fonte-titulo); font-size:clamp(1.9rem,3vw,2.6rem); color:var(--areia-clara);}
.numero-legenda{font-size:.85rem; color:rgba(255,255,255,.78); letter-spacing:.03em;}

/* Sobre */
.sobre .container{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.sobre-galeria{position:relative;}
.sobre-galeria img{border-radius:var(--raio); box-shadow:var(--sombra);}
.sobre-galeria .flutuante{
  position:absolute; bottom:-26px; right:-26px; width:52%;
  border:6px solid var(--creme); border-radius:14px; box-shadow:var(--sombra);
}
.lista-diferenciais{list-style:none; padding:0; margin:1.6em 0; display:grid; gap:14px;}
.lista-diferenciais li{display:flex; gap:.8em; align-items:flex-start; font-size:.98rem; color:var(--texto-suave);}
.lista-diferenciais svg{flex-shrink:0; color:var(--verde); margin-top:2px;}
@media (max-width:900px){
  .sobre .container{grid-template-columns:1fr;}
  .sobre-galeria{margin-bottom:40px;}
  /* Apenas uma imagem no mobile: a segunda foto (flutuante) fica oculta e nem chega a ser baixada. */
  .sobre-galeria .flutuante{display:none;}
}

/* Galeria */
.galeria{background:var(--creme-2);}
.grade-galeria{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px;}
.item-galeria{
  position:relative; aspect-ratio:3/4; border-radius:var(--raio); overflow:hidden;
  box-shadow:var(--sombra-suave);
}
.item-galeria img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.item-galeria:hover img{transform:scale(1.08);}
@media (max-width:900px){.grade-galeria{grid-template-columns:repeat(2,1fr); gap:14px;}}

/* Vídeo */
.video-wrapper{
  position:relative; max-width:320px; margin:48px auto 0; aspect-ratio:9/16;
  border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra);
  background:var(--verde-escuro); cursor:pointer;
}
.video-wrapper img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
.video-wrapper:hover img{transform:scale(1.05);}
.video-wrapper iframe{width:100%; height:100%; border:0; display:block;}
.video-play{
  position:absolute; inset:0; margin:auto; width:66px; height:66px; border-radius:50%;
  background:rgba(255,255,255,.94); display:flex; align-items:center; justify-content:center;
  color:var(--verde-escuro); box-shadow:0 10px 30px -10px rgba(0,0,0,.5);
  transition:transform .25s ease, background .25s ease;
}
.video-play svg{margin-left:3px;}
.video-wrapper:hover .video-play{transform:scale(1.08); background:#fff;}
.video-wrapper.ativo .video-play{display:none;}

/* Serviços */
.servicos{background:var(--creme-2);}
.grade-servicos{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
.cartao-servico{
  background:var(--branco); border-radius:var(--raio); padding:38px 30px;
  box-shadow:var(--sombra-suave); text-align:left; transition:transform .35s ease, box-shadow .35s ease;
  border-top:3px solid transparent;
}
.cartao-servico:hover{transform:translateY(-8px); box-shadow:var(--sombra); border-top-color:var(--areia);}
.icone-servico{
  width:60px; height:60px; border-radius:16px; background:var(--verde-escuro);
  display:flex; align-items:center; justify-content:center; color:var(--areia-clara); margin-bottom:22px;
}
.cartao-servico h3{font-size:1.5rem;}
.cartao-servico p{color:var(--texto-suave); font-size:.96rem;}
@media (max-width:900px){.grade-servicos{grid-template-columns:1fr;}}

/* Equipe */
.grade-equipe{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:48px;}
.cartao-equipe{
  background:var(--branco); border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra-suave);
  transition:transform .35s ease, box-shadow .35s ease;
}
.cartao-equipe:hover{transform:translateY(-6px); box-shadow:var(--sombra);}
.foto-equipe{aspect-ratio:4/5; overflow:hidden;}
.foto-equipe img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.cartao-equipe:hover .foto-equipe img{transform:scale(1.06);}
.info-equipe{padding:26px 26px 30px;}
.info-equipe .funcao{color:var(--verde); font-weight:600; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; display:block; margin-bottom:.3em;}
.info-equipe h3{font-size:1.5rem; margin-bottom:.25em;}
.info-equipe p{color:var(--texto-suave); font-size:.94rem; margin-bottom:0;}
@media (max-width:900px){.grade-equipe{grid-template-columns:1fr; max-width:420px; margin-inline:auto;}}

/* Antes e depois */
.antes-depois{background:var(--verde-escuro); color:#fff;}
.antes-depois .eyebrow{color:var(--areia-clara);}
.antes-depois .eyebrow::before{background:var(--areia);}
.antes-depois h2{color:#fff;}
.antes-depois .centro p{color:rgba(255,255,255,.78);}
.grade-antes-depois{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:48px;}
.par-antes-depois{
  margin:0; background:rgba(255,255,255,.06); border-radius:var(--raio); padding:14px;
  border:1px solid rgba(255,255,255,.12);
}
.par-antes-depois img{width:100%; height:auto; border-radius:12px; display:block;}
.par-antes-depois .legenda{text-align:center; font-size:.9rem; margin:14px 0 0; color:rgba(255,255,255,.8);}
@media (max-width:700px){.grade-antes-depois{grid-template-columns:1fr; max-width:460px; margin-inline:auto;}}

/* Avaliações */
.faixa-avaliacao{
  display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;
  margin:0 auto 48px; padding:20px 32px; background:var(--branco); border-radius:999px;
  box-shadow:var(--sombra-suave); width:fit-content;
}
.faixa-avaliacao .nota{font-family:var(--fonte-titulo); font-size:2.2rem; color:var(--verde-escuro); line-height:1;}
.estrelas{color:var(--areia); letter-spacing:2px; font-size:1.1rem;}
.faixa-avaliacao small{display:block; color:var(--texto-suave); font-size:.82rem;}
.faixa-avaliacao img{height:26px; width:auto;}

.grade-depoimentos{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:8px;
}
.depoimento{
  background:var(--branco); border-radius:var(--raio); padding:30px 28px; box-shadow:var(--sombra-suave);
  display:flex; flex-direction:column; gap:14px;
}
.depoimento .estrelas{font-size:.95rem;}
.depoimento p{color:var(--texto-suave); font-size:.94rem; margin:0; flex-grow:1;}
.autor-depoimento{display:flex; align-items:center; gap:12px; margin-top:6px;}
.avatar-depoimento{
  width:40px; height:40px; border-radius:50%; background:var(--verde-escuro); color:var(--areia-clara);
  display:flex; align-items:center; justify-content:center; font-family:var(--fonte-titulo); font-weight:600; flex-shrink:0;
}
.autor-depoimento strong{display:block; font-size:.9rem; color:var(--texto);}
.autor-depoimento span{font-size:.78rem; color:var(--texto-suave);}
.mais-avaliacoes{text-align:center; margin-top:40px;}
@media (max-width:900px){.grade-depoimentos{grid-template-columns:1fr; max-width:480px; margin-inline:auto;}}

/* Localização */
.localizacao{background:var(--creme-2);}
.localizacao .container{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:stretch;}
.cartao-local{
  background:var(--branco); border-radius:var(--raio); padding:38px; box-shadow:var(--sombra-suave);
  display:flex; flex-direction:column; justify-content:center; gap:22px;
}
.linha-info{display:flex; gap:16px; align-items:flex-start;}
.linha-info svg{flex-shrink:0; color:var(--verde); margin-top:3px;}
.linha-info strong{display:block; font-size:.98rem;}
.linha-info span, .linha-info a{color:var(--texto-suave); font-size:.94rem; text-decoration:none;}
.linha-info a:hover{color:var(--verde-escuro); text-decoration:underline;}
.mapa-wrapper{border-radius:var(--raio); overflow:hidden; box-shadow:var(--sombra-suave); min-height:340px;}
.mapa-wrapper iframe{width:100%; height:100%; min-height:340px; border:0;}
@media (max-width:900px){.localizacao .container{grid-template-columns:1fr;}}

/* CTA final */
.cta-final{
  background:linear-gradient(135deg, var(--verde-escuro), #2c3a28);
  color:#fff; text-align:center; position:relative; overflow:hidden;
}
.cta-final h2{color:#fff; font-size:clamp(1.8rem,3.4vw,2.6rem); max-width:16ch; margin-inline:auto;}
.cta-final p{color:rgba(255,255,255,.82); max-width:50ch; margin:0 auto 2em;}

/* Rodapé */
footer{background:#232d20; color:rgba(255,255,255,.75); padding:64px 0 24px; font-size:.92rem;}
.grade-rodape{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
.rodape-marca{display:flex; align-items:center; gap:.7em; margin-bottom:14px; text-decoration:none;}
.rodape-marca img{height:40px; border-radius:8px;}
.rodape-marca span{font-family:var(--fonte-titulo); font-size:1.2rem; color:#fff;}
footer h4{color:#fff; font-family:var(--fonte-corpo); font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:1.2em;}
footer ul{list-style:none; padding:0; margin:0; display:grid; gap:10px;}
footer a{text-decoration:none; color:rgba(255,255,255,.75); transition:color .25s ease;}
footer a:hover{color:var(--areia-clara);}
.rodape-baixo{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:24px; font-size:.82rem;}
.redes-sociais{display:flex; gap:12px;}
.redes-sociais a{width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center;}
.redes-sociais a:hover{background:var(--areia); border-color:var(--areia); color:var(--verde-escuro);}
@media (max-width:800px){.grade-rodape{grid-template-columns:1fr; gap:32px;}}

/* WhatsApp flutuante */
.zap-flutuante{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:60px; height:60px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 14px 30px -10px rgba(0,0,0,.4);
  animation:pulsar 2.6s ease-in-out infinite;
}
@keyframes pulsar{
  0%,100%{box-shadow:0 14px 30px -10px rgba(37,211,102,.5);}
  50%{box-shadow:0 14px 30px -10px rgba(37,211,102,.9), 0 0 0 10px rgba(37,211,102,.12);}
}

/* Revelar ao rolar */
.revelar{opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease;}
.revelar.visivel{opacity:1; transform:translateY(0);}
.revelar-atraso-1{transition-delay:.1s;}
.revelar-atraso-2{transition-delay:.2s;}
.revelar-atraso-3{transition-delay:.3s;}

/* Skip link */
.pular-link{
  position:absolute; left:-9999px; top:0; background:#fff; color:#000; padding:12px 18px; z-index:200; border-radius:0 0 8px 0;
}
.pular-link:focus{left:0;}
