/* ── Reset & base ── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; }
img, svg { display: block; max-width: 100%; }

/* ── Animations ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-up {
  animation: fadeUp .7s cubic-bezier(.22,.61,.36,1) both;
}

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Nav ── */
#nav {
  background: transparent;
  transition: background .4s, box-shadow .4s, padding .4s;
}
#nav.scrolled {
  background: rgba(253,248,240,.92);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(92,61,46,.08);
}

/* ── Hero blobs ── */
.hero-blob {
  animation: drift 12s ease-in-out infinite alternate;
}
.blob-1 { animation-delay: 0s; }
.blob-2 { animation-delay: -4s; }
.blob-3 { animation-delay: -8s; }
@keyframes drift {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(30px, -20px) scale(1.05); }
  100% { transform: translate(-20px, 15px) scale(.97); }
}

/* ── Service cards ── */
.service-card {
  will-change: transform;
}

/* ── Mobile menu ── */
.mob-link {
  display: block;
}

/* ── Counter ── */
[data-count] {
  display: inline-block;
}

/* ── Form focus ring ── */
input:focus, select:focus, textarea:focus {
  outline: none;
}

/* ── Smooth scrollbar ── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #FDF8F0; }
::-webkit-scrollbar-thumb { background: #E8DDD3; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #C4956A; }
