/* ---------- Scroll reveal ---------- */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.8s cubic-bezier(.2,.7,.2,1), transform 0.8s cubic-bezier(.2,.7,.2,1);
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger.in-view .servico-card,
.reveal-stagger.in-view .diferencial,
.reveal-stagger.in-view figure {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger .servico-card,
.reveal-stagger .diferencial,
.reveal-stagger figure {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.7s cubic-bezier(.2,.7,.2,1), transform 0.7s cubic-bezier(.2,.7,.2,1);
}
.reveal-stagger .servico-card:nth-child(1),
.reveal-stagger figure:nth-child(1) { transition-delay: 0s; }
.reveal-stagger .servico-card:nth-child(2),
.reveal-stagger figure:nth-child(2) { transition-delay: .1s; }
.reveal-stagger .servico-card:nth-child(3),
.reveal-stagger figure:nth-child(3) { transition-delay: .2s; }
.reveal-stagger .servico-card:nth-child(4) { transition-delay: .3s; }
.reveal-stagger .diferencial:nth-child(1) { transition-delay: 0s; }
.reveal-stagger .diferencial:nth-child(2) { transition-delay: .1s; }
.reveal-stagger .diferencial:nth-child(3) { transition-delay: .2s; }
.reveal-stagger .diferencial:nth-child(4) { transition-delay: .3s; }

/* ---------- Nav scrolled state ---------- */
.nav.scrolled {
  background: rgba(250, 246, 239, 0.97);
  box-shadow: 0 4px 24px rgba(43,33,24,0.08);
}

/* ---------- Buttons: shine sweep + lift ---------- */
.btn { position: relative; overflow: hidden; isolation: isolate; }

.btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,0.55), transparent);
  transform: skewX(-20deg);
  transition: left 0.65s ease;
  z-index: 1;
  pointer-events: none;
}
.btn:hover::before { left: 130%; }

.btn-primary:hover,
.btn-lg:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px rgba(156,122,46,0.32);
}

.btn-ghost:hover,
.btn-outline:hover {
  transform: translateY(-2px);
}

.btn { transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease; }

/* ---------- Service & result cards: lift + zoom ---------- */
.servico-card { transition: transform 0.4s ease, box-shadow 0.4s ease; }
.servico-img { transition: transform 0.6s cubic-bezier(.2,.7,.2,1); }
.servico-card:hover .servico-img { transform: scale(1.06); }

/* ---------- Clickable images ---------- */
.clickable-img { cursor: zoom-in; }

/* ---------- Lightbox ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(20, 14, 8, 0.86);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
  padding: 40px;
}
.lightbox.open { opacity: 1; visibility: visible; }

.lightbox img {
  max-width: 90vw;
  max-height: 85vh;
  border-radius: 4px;
  transform: scale(0.9);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1);
  box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.lightbox.open img { transform: scale(1); }

.lightbox-close {
  position: absolute;
  top: 28px;
  right: 32px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(250,246,239,0.4);
  background: rgba(250,246,239,0.08);
  color: var(--cream);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease;
}
.lightbox-close:hover { background: rgba(250,246,239,0.2); transform: rotate(90deg); }

/* ---------- Whatsapp float pulse ---------- */
.whatsapp-float a {
  animation: wa-pulse 2.6s ease-in-out infinite;
}
@keyframes wa-pulse {
  0%, 100% { box-shadow: 0 8px 24px rgba(0,0,0,0.18), 0 0 0 0 rgba(37,211,102,0.45); }
  50% { box-shadow: 0 8px 24px rgba(0,0,0,0.18), 0 0 0 10px rgba(37,211,102,0); }
}

/* ---------- Hero entrance ---------- */
.hero .eyebrow,
.hero h1,
.hero-sub,
.hero-actions {
  opacity: 0;
  transform: translateY(22px);
  animation: hero-rise 0.9s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero .eyebrow { animation-delay: 0.1s; }
.hero h1 { animation-delay: 0.22s; }
.hero-sub { animation-delay: 0.36s; }
.hero-actions { animation-delay: 0.5s; }

@keyframes hero-rise {
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-stagger .servico-card, .reveal-stagger .diferencial,
  .hero .eyebrow, .hero h1, .hero-sub, .hero-actions {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .whatsapp-float a { animation: none !important; }
}
