/* Extra animations layered on top of the built site. Safe to remove. */
html { scroll-behavior: smooth; }

/* Images fade in once loaded (class added by extra-animations.js) */
img.xa-img { opacity: 0; transition: opacity .6s ease, transform .6s ease; }
img.xa-img.xa-loaded { opacity: 1; }

/* Cards lift on hover */
[class*="_card_"], [class*="_post_"], [class*="_member_"], [class*="_review_"], [class*="_tour_"] {
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
[class*="_card_"]:hover, [class*="_post_"]:hover, [class*="_member_"]:hover, [class*="_review_"]:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(20, 60, 30, .14);
}

/* Photos zoom gently inside their frame on hover */
[class*="_card_"], [class*="_campus_"], [class*="_post_"], [class*="_item_"], [class*="_photo_"], [class*="_gallery_"] { overflow: hidden; }
[class*="_card_"] img, [class*="_campus_"] img, [class*="_post_"] img, [class*="_item_"] img,
[class*="_galleryImg_"], [class*="_img_"], [class*="_image_"] {
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease, opacity .6s ease;
}
[class*="_card_"]:hover img, [class*="_campus_"] > *:hover img, [class*="_post_"]:hover img, [class*="_item_"]:hover img,
[class*="_galleryImg_"]:hover, [class*="_img_"]:hover, [class*="_image_"]:hover {
  transform: scale(1.06);
  filter: saturate(1.1);
}

/* Buttons: lift + soft glow */
[class*="_btn_"], button, a[class*="_cta_"] {
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease;
}
[class*="_btn_"]:hover, a[class*="_cta_"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(30, 110, 50, .25);
}
[class*="_btn_"]:active, button:active { transform: translateY(0) scale(.98); }

/* Nav links: animated underline */
[class*="_navLink_"] { position: relative; }
[class*="_navLink_"]::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
[class*="_navLink_"]:hover::after { transform: scaleX(1); }

/* Logo: small bounce on hover */
[class*="_logo_"] img, img[src$="logo.webp"] { transition: transform .4s cubic-bezier(.3,1.6,.5,1); }
[class*="_logo_"]:hover img, a:hover > img[src$="logo.webp"] { transform: scale(1.06) rotate(-2deg); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  img.xa-img { opacity: 1; transition: none; }
  [class*="_card_"], [class*="_post_"], [class*="_member_"], [class*="_review_"], [class*="_tour_"],
  [class*="_btn_"], button, img { transition: none !important; transform: none !important; }
  [class*="_navLink_"]::after { transition: none; }
}
