/* Efeitos progressivos: o conteúdo permanece visível sem JavaScript. */
.site-header {
  transition: box-shadow .3s ease, background .3s ease;
}
.site-header.is-scrolled {
  background: rgba(250, 249, 246, .98);
  box-shadow: 0 8px 28px #292d260a;
}
.site-header::after {
  content: '';
  position: absolute;
  inset: auto 0 -1px;
  height: 2px;
  background: #879567;
  transform: scaleX(var(--reading-progress, 0));
  transform-origin: left;
  pointer-events: none;
}
.hero-visual, .practice-card, .team-photo {
  transition: transform .45s ease, box-shadow .45s ease, border-color .3s ease;
}
.hero-visual { box-shadow: 0 22px 44px -30px #26302170; }
.practice-card, .team-photo { position: relative; }
.practice-card::after, .team-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at var(--light-x, 50%) var(--light-y, 30%), #d9e2bd35, transparent 60%);
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s ease;
}
.button { position: relative; overflow: hidden; }
.button::after {
  content: '';
  position: absolute;
  inset: -60% auto -60% -65%;
  width: 35%;
  background: linear-gradient(90deg, transparent, #ffffff20, transparent);
  transform: skewX(-22deg);
  pointer-events: none;
}
.button .icon, .text-link .icon, .icon-box {
  transition: transform .3s ease;
}
.service-section::before, .service-section::after {
  content: '';
  position: absolute;
  width: 470px;
  height: 470px;
  border: 1px solid #c5cbb415;
  border-radius: 50%;
  right: -310px;
  top: -140px;
  pointer-events: none;
}
.service-section::after { right: -265px; top: -95px; }
.service-grid { position: relative; z-index: 1; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .has-tilt {
    transform: perspective(1100px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0px));
  }
  .has-tilt.is-tilting { transition: transform .12s ease-out, box-shadow .4s ease; --lift: -5px; }
  .hero-visual.is-tilting { box-shadow: 0 35px 50px -28px #26302180; }
  .practice-card.is-tilting { box-shadow: 0 24px 40px -25px #35402b55; border-color: #bfc8aa; }
  .team-photo.is-tilting { box-shadow: 0 20px 32px -22px #35402b70; }
  .is-tilting::after { opacity: 1; }
  .hero-visual .photo-tag { transform: translate(0, 0); transition: transform .45s ease; }
  .hero-visual.is-tilting .photo-tag { transform: translate(5px, -7px); }
  .practice-card:hover .icon-box { transform: rotate(-8deg) scale(1.06); }
  .button:hover::after { animation: button-sheen .75s ease; }
  .button:hover > .icon:last-child:not(:first-child), .text-link:hover .icon { transform: translateX(4px); }
  .floating-whatsapp:hover .icon { transform: rotate(-9deg); transition: transform .25s ease; }
}
@keyframes button-sheen { to { left: 130%; } }
@media (prefers-reduced-motion: reduce) {
  .has-tilt { transform: none; }
  .site-header::after { display: none; }
}
