/* Scroll-reveal: elements fade/rise in once, on entering the viewport */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
}

img {
  max-width: 100%;
}

/* Subtle repeating dot pattern used behind a few sections for texture/contrast
   without depending on extra image assets. */
.pattern-dots {
  background-image: radial-gradient(circle, rgba(176, 138, 52, 0.16) 1.4px, transparent 1.4px);
  background-size: 22px 22px;
}

/* Smooth-sliding testimonial carousel dots */
.testimonial-dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background-color: rgba(33, 28, 23, 0.2);
  transition: background-color 0.3s ease, width 0.3s ease;
}
.testimonial-dot.is-active {
  background-color: #B08A34;
  width: 22px;
}
