/* ===== MBPHA animation kit v2 ===== */
@keyframes slideInLeft  { from { opacity:0; transform: translateX(-46px);} to { opacity:1; transform:none; } }
@keyframes slideInRight { from { opacity:0; transform: translateX(46px);}  to { opacity:1; transform:none; } }
@keyframes slideInUp    { from { opacity:0; transform: translateY(38px);}  to { opacity:1; transform:none; } }
@keyframes fadeIn       { from { opacity:0; } to { opacity:1; } }
@keyframes fadeOutDown  { from { opacity:1; } to { opacity:0; transform: translateY(16px);} }
@keyframes zoomIn       { from { opacity:0; transform: scale(.94);} to { opacity:1; transform:none; } }
@keyframes floaty       { 0%,100% { transform: translateY(0);} 50% { transform: translateY(-7px);} }
@keyframes shimmerText  { to { background-position: 200% center; } }
@keyframes wobble       { 0%,100% { transform: rotate(0);} 20% { transform: rotate(-8deg);} 40% { transform: rotate(6deg);} 60% { transform: rotate(-4deg);} 80% { transform: rotate(2deg);} }

.anim { opacity: 0; }
.anim.go-left  { animation: slideInLeft  .65s cubic-bezier(.22,.9,.35,1) forwards; }
.anim.go-right { animation: slideInRight .65s cubic-bezier(.22,.9,.35,1) forwards; }
.anim.go-up    { animation: slideInUp    .65s cubic-bezier(.22,.9,.35,1) forwards; }
.anim.go-fade  { animation: fadeIn .8s ease forwards; }
.anim.go-zoom  { animation: zoomIn .55s cubic-bezier(.22,.9,.35,1) forwards; }
.fade-out { animation: fadeOutDown .4s ease forwards; }

/* Page load: whole body eases in */
body { animation: fadeIn .5s ease; }

/* Hero cascade */
.page-hero .eyebrow { animation: slideInUp .5s .05s ease both; }
.page-hero h1       { animation: slideInUp .6s .15s ease both; }
.page-hero p        { animation: slideInUp .6s .28s ease both; }

/* Photo-band heading: gold shimmer sweep */
.photo-band h2 { background: linear-gradient(90deg, #fff 40%, var(--gold,#F2B705) 50%, #fff 60%);
  background-size: 200% auto; -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; animation: shimmerText 3.5s linear infinite; }

/* Captioned page photos: gentle float */
.page-photo img { animation: floaty 6s ease-in-out infinite; }

/* Nav dropdown items: staggered entrance on hover */
@media (min-width:1001px) {
  .nav-item:hover .nav-dropdown a { animation: slideInUp .3s ease both; }
  .nav-item:hover .nav-dropdown a:nth-child(1){ animation-delay:.03s }
  .nav-item:hover .nav-dropdown a:nth-child(2){ animation-delay:.08s }
  .nav-item:hover .nav-dropdown a:nth-child(3){ animation-delay:.13s }
  .nav-item:hover .nav-dropdown a:nth-child(4){ animation-delay:.18s }
  .nav-item:hover .nav-dropdown a:nth-child(5){ animation-delay:.23s }
}

/* Chat bubble: occasional wobble */
#chatWidget button, .chat-launcher { animation: wobble 6s 3s ease-in-out infinite; }

/* Reduced motion: everything instant */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .anim { opacity: 1 !important; transform: none !important; }
}
