/* Tamiris Novak — camada de experiência (transições, reveals e microinterações) */
:root{--tn-ease:cubic-bezier(.22,1,.36,1);--tn-ease-soft:cubic-bezier(.4,0,.2,1)}

html.tn-anim{scroll-behavior:smooth}
html.tn-anim [data-reveal]{
  opacity:0;
  transform:translate3d(0,28px,0);
  transition:opacity .75s var(--tn-ease),transform .75s var(--tn-ease);
  transition-delay:var(--tn-delay,0ms);
  will-change:opacity,transform;
}
html.tn-anim [data-reveal="left"]{transform:translate3d(-26px,0,0)}
html.tn-anim [data-reveal="right"]{transform:translate3d(26px,0,0)}
html.tn-anim [data-reveal="scale"]{transform:scale(.965)}
html.tn-anim [data-reveal].tn-visible{opacity:1;transform:none;will-change:auto}

body.tn-leaving{opacity:0;transform:translate3d(0,-8px,0);transition:opacity .22s ease,transform .22s ease;pointer-events:none}
body.tn-page-in{animation:tnPageIn .6s var(--tn-ease-soft)}
@keyframes tnPageIn{from{opacity:0}to{opacity:1}}

.tn-progress{
  position:fixed;left:0;top:0;width:100%;height:3px;z-index:300;
  background:linear-gradient(90deg,#4f5d4b,#7e8f72,#c5ad99);
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform .12s linear,opacity .35s ease;opacity:0;pointer-events:none;
}
.tn-progress.is-on{opacity:1}

.hero-picture img,.local-hero::after{will-change:transform}
.local-hero::after{transform:translate3d(0,var(--tn-drift,0px),0)}
html.tn-anim .local-hero::after{transition:transform .2s linear}

.detail-card,.local-featured-service,.result-posts a,.local-service-grid a,.local-blog-grid a,.work-gallery figure,.about-photo,.location-panel{
  transition:transform .45s var(--tn-ease),box-shadow .45s var(--tn-ease),border-color .45s var(--tn-ease);
}
.detail-card:hover,.local-featured-service:hover,.work-gallery figure:hover,.about-photo:hover,.location-panel:hover{
  transform:translateY(-5px);box-shadow:0 18px 45px rgba(89,64,48,.10)
}
.local-service-grid a:hover,.local-blog-grid a:hover{
  transform:translateY(-3px);border-color:#d3b9a5;box-shadow:0 12px 26px rgba(89,64,48,.09)
}
.result-posts a:hover{transform:translateY(-4px)}

.floating-whatsapp{position:relative}
.floating-whatsapp::after{
  content:"";position:absolute;inset:-4px;border-radius:50%;
  border:1px solid rgba(79,93,75,.45);pointer-events:none;
  animation:tnPulse 3.2s ease-out infinite
}
@keyframes tnPulse{
  0%{transform:scale(.86);opacity:.7}
  60%{transform:scale(1.18);opacity:0}
  100%{transform:scale(1.18);opacity:0}
}

.blog-faq-list details[open] p,.faq-list details[open] p{animation:tnFadeUp .35s var(--tn-ease) both}
@keyframes tnFadeUp{from{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}}

@media (max-width:700px){
  html.tn-anim [data-reveal]{transform:translate3d(0,18px,0)}
  html.tn-anim [data-reveal="left"],html.tn-anim [data-reveal="right"]{transform:translate3d(0,18px,0)}
  .detail-card:hover,.local-featured-service:hover,.work-gallery figure:hover,.about-photo:hover,.location-panel:hover{transform:none;box-shadow:none}
}

@media (prefers-reduced-motion:reduce){
  html.tn-anim [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  body.tn-page-in{animation:none}
  body.tn-leaving{transition:none;opacity:1;transform:none}
  .floating-whatsapp::after{animation:none;display:none}
  .local-hero::after{transform:none}
  .tn-progress{display:none}
  .blog-faq-list details[open] p,.faq-list details[open] p{animation:none}
  .detail-card:hover,.local-featured-service:hover,.work-gallery figure:hover,.about-photo:hover,.location-panel:hover,.local-service-grid a:hover,.local-blog-grid a:hover,.result-posts a:hover{transform:none;box-shadow:none}
}
