/* ═══════════════════════════════════════
   GDESIGN — Animations
   ═══════════════════════════════════════ */

@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(8px); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes goldPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201, 169, 110, 0.4); }
  50%       { box-shadow: 0 0 0 12px rgba(201, 169, 110, 0); }
}

/* Hero entry animations */
.hero-overline {
  animation: fadeInUp 0.8s ease 0.2s both;
}

.hero-headline {
  animation: fadeInUp 0.9s ease 0.4s both;
}

.hero-subline {
  animation: fadeInUp 0.9s ease 0.6s both;
}

.hero-actions {
  animation: fadeInUp 0.9s ease 0.8s both;
}

/* Stagger children */
.stagger-children > * {
  opacity: 0;
  animation: fadeInUp 0.7s ease forwards;
}

.stagger-children > *:nth-child(1) { animation-delay: 0.1s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.2s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.3s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.4s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.5s; }

/* Gold line reveal */
.gold-line {
  animation: scaleInX 0.6s cubic-bezier(0.4, 0, 0.2, 1) both;
  transform-origin: left;
}

@keyframes scaleInX {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* Subtle hover lift (non-transform conflicts) */
.testimonial-card {
  will-change: transform, box-shadow;
}

/* Page loader overlay */
.page-loader {
  position: fixed;
  inset: 0;
  background-color: var(--color-primary-dark);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.page-loader.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader-logo {
  height: 72px;
  filter: brightness(0) invert(1);
  animation: fadeIn 0.5s ease both;
}

.loader-bar {
  width: 180px;
  height: 2px;
  background-color: rgba(255,255,255,0.15);
  border-radius: 2px;
  overflow: hidden;
}

.loader-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
  border-radius: 2px;
  animation: loaderFill 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes loaderFill {
  from { width: 0%; }
  to   { width: 100%; }
}

/* Hero photo Ken Burns — slow zoom out for cinematic feel */
@keyframes heroKenBurns {
  from { transform: scale(1.08); }
  to   { transform: scale(1.00); }
}

