/* ==========================================================================
   MozaTour — movimento e efeitos (desactivado com "reduzir movimento")
   ========================================================================== */

/* barra de progresso de leitura */
.readbar{position:fixed;left:0;top:0;height:3px;width:0;background:var(--brand);z-index:120;transition:width .1s linear}

/* revelar ao fazer scroll (aplicado por JS a cartões, títulos, blocos) */
.mv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.mv.mv-l{transform:translateX(-36px)}
.mv.mv-r{transform:translateX(36px)}
.mv.mv-z{transform:scale(.94)}
.mv.in{opacity:1;transform:none}

/* entrada dos heróis */
.hero-in>*{opacity:0;transform:translateY(22px);animation:heroIn .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero-in>*:nth-child(1){animation-delay:.1s}
.hero-in>*:nth-child(2){animation-delay:.22s}
.hero-in>*:nth-child(3){animation-delay:.36s}
.hero-in>*:nth-child(4){animation-delay:.5s}
.hero-in>*:nth-child(5){animation-delay:.62s}
@keyframes heroIn{to{opacity:1;transform:none}}

/* zoom lento nas fotos de fundo */
.hz-frame .fr>img,.hero-bg img,.page-hero>img{animation:kenburns 22s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1%,-1%)}}

/* paralaxe (JS define --py) */
.plx{transform:translate3d(0,var(--py,0px),0) scale(1.12);will-change:transform}

/* Clássico: círculos a flutuar e forma a respirar */
.tc-art .c1{animation:floatA 7s ease-in-out infinite}
.tc-art .c2{animation:floatB 6s ease-in-out infinite}
.tc-art .c3{animation:floatA 5.5s ease-in-out infinite reverse}
.tc-art .blob{animation:blob 12s ease-in-out infinite}
.tc-art .badge{animation:floatB 6.5s ease-in-out infinite}
.tc-art .dash path{stroke-dashoffset:0;animation:dash 18s linear infinite}
@keyframes floatA{50%{transform:translateY(-14px)}}
@keyframes floatB{50%{transform:translateY(12px)}}
@keyframes blob{50%{border-radius:48% 52% 0 0/70% 80% 0 0}}
@keyframes dash{to{stroke-dashoffset:-400}}

/* Moderno: mosaico com movimento suave */
.md-collage>div{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.md-collage>div:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 26px 50px rgba(0,0,0,.18)}
.md-collage img{transition:transform 1.2s}
.md-collage>div:hover img{transform:scale(1.08)}

/* brilho nos botões principais */
.btn-primary,.tc-btn,.sbar .go{position:relative;overflow:hidden}
.btn-primary::after,.tc-btn::after,.sbar .go::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s}
.btn-primary:hover::after,.tc-btn:hover::after,.sbar .go:hover::after{left:140%}

/* cartões: elevação mais viva */
.trip,.tc-dcard,.dcard2,.ta-card,.bx,.trow,.hz-mini,.svc>div,.ed-agenda a{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,background .2s}
.tc-dcard:hover{transform:translateY(-8px)}
.tc-dcard .ph{transition:box-shadow .35s}
.tc-dcard:hover .ph{box-shadow:0 18px 36px rgba(232,99,143,.28)}
.dcard2:hover,.ta-card:hover{transform:translateY(-6px)}
.bx:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}

/* faixa de destinos em movimento */
.ticker{overflow:hidden;background:var(--ink);color:#fff;padding:1.05rem 0;white-space:nowrap;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:1}
.ticker::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--ink),transparent)}
.ticker-track{display:inline-flex;gap:2.6rem;animation:ticker 38s linear infinite;padding-left:2.6rem}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker a{display:inline-flex;align-items:center;gap:.8rem;font:600 1.15rem var(--serif);opacity:.9}
.ticker a:hover{opacity:1;color:#FFC2A8}
.ticker a::after{content:"✦";font-size:.8rem;color:var(--coral);margin-left:1.8rem}
@keyframes ticker{to{transform:translateX(-50%)}}

/* WhatsApp: pulsar discreto */
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--wa);animation:waPulse 2.6s infinite}
@keyframes waPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.55);opacity:0}}

/* cabeçalho: sombra ao fazer scroll */
.hdr{transition:box-shadow .3s,background .3s}
body.scrolled .hdr{box-shadow:0 8px 28px rgba(30,20,15,.08)}

/* imagens a aparecer com zoom */
.mv-img{overflow:hidden}
.mv-img img{transform:scale(1.15);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.mv-img.in img{transform:scale(1)}

@media (prefers-reduced-motion:reduce){
  .mv,.hero-in>*{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .tc-art *,.hz-frame .fr>img,.hero-bg img,.page-hero>img,.ticker-track,.wa-float::before{animation:none!important}
  .plx{transform:none!important}
}
