  /* ── Base & Utilities ── */
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; scroll-padding-top: 80px; }
  body { overflow-x: hidden; }

  /* ── Scroll Indicator Animation ── */
  @keyframes scrollDown {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100%); }
  }
  .animate-scrollDown { animation: scrollDown 1.5s ease-in-out infinite; }

  /* ── Scroll Reveal (progressive enhancement) ── */
  @media (prefers-reduced-motion: no-preference) {
    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
  }

  /* ── Hero floating card animation ── */
  @media (prefers-reduced-motion: no-preference) {
    .float-slow { animation: floatSlow 6s ease-in-out infinite; }
    .float-fast { animation: floatFast 4s ease-in-out infinite; }
  }
  @keyframes floatSlow {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
  }
  @keyframes floatFast {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-6px) rotate(2deg); }
  }

  /* ── Gallery hover ── */
  .gallery-item { overflow: hidden; }
  .gallery-item img { transition: transform 0.6s ease; }

  /* ── Program card hover ── */
  .program-card { transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease; }
  .program-card:hover { transform: translateY(-4px); }

  /* ── Testimonial card hover ── */
  .testimonial-card { transition: transform 0.3s ease, shadow 0.3s ease; }
  .testimonial-card:hover { transform: translateY(-4px); }

  /* ── Mobile menu transitions ── */
  #mobileMenu { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
  #mobileMenu.open { max-height: 400px; }

  /* ── Custom scrollbar ── */
  ::-webkit-scrollbar { width: 8px; }
  ::-webkit-scrollbar-track { background: #fdf2f4; }
  ::-webkit-scrollbar-thumb { background: #f4a3b8; border-radius: 4px; }
  ::-webkit-scrollbar-thumb:hover { background: #ec6c8e; }

  /* ── Selection color ── */
  ::selection { background: #f9cdd7; color: #7f1434; }
