(function () {
  'use strict';

  /* ----------------------------------------------------------
     Hero Slideshow (fade)
     ---------------------------------------------------------- */
  var slides = document.querySelectorAll('.hero__slide');
  if (slides.length > 1) {
    var current = 0;
    var interval = 6000;
    setInterval(function () {
      slides[current].classList.remove('is-active');
      current = (current + 1) % slides.length;
      slides[current].classList.add('is-active');
    }, interval);
  }

  /* ----------------------------------------------------------
     Header / Burger / Fixed Phone
     ---------------------------------------------------------- */
  var header = document.getElementById('header');
  var burger = document.getElementById('burger');
  var nav    = document.getElementById('nav');
  var fixedPhone = document.getElementById('fixedPhone');

  function onScroll() {
    var y = window.scrollY;
    if (header) header.classList.toggle('is-scrolled', y > 40);
    if (fixedPhone) fixedPhone.classList.toggle('is-visible', y > 500);
  }
  window.addEventListener('scroll', onScroll, { passive: true });
  onScroll();

  if (burger && nav) {
    burger.addEventListener('click', function () {
      var open = nav.classList.toggle('is-open');
      burger.classList.toggle('is-open', open);
      burger.setAttribute('aria-expanded', open);
      document.body.style.overflow = open ? 'hidden' : '';
    });
    nav.querySelectorAll('a').forEach(function (a) {
      a.addEventListener('click', function () {
        nav.classList.remove('is-open');
        burger.classList.remove('is-open');
        burger.setAttribute('aria-expanded', 'false');
        document.body.style.overflow = '';
      });
    });
  }

  /* ----------------------------------------------------------
     News Tabs (済生会参考)
     ---------------------------------------------------------- */
  var tabs  = document.querySelectorAll('.news__tab');
  var items = document.querySelectorAll('.news__item');

  tabs.forEach(function (tab) {
    tab.addEventListener('click', function () {
      var cat = this.dataset.tab;

      tabs.forEach(function (t) {
        t.classList.remove('is-active');
        t.setAttribute('aria-selected', 'false');
      });
      this.classList.add('is-active');
      this.setAttribute('aria-selected', 'true');

      items.forEach(function (item) {
        if (cat === 'all' || item.dataset.category === cat) {
          item.classList.remove('is-hidden');
        } else {
          item.classList.add('is-hidden');
        }
      });
    });
  });

  /* ----------------------------------------------------------
     GSAP Animations
     ---------------------------------------------------------- */
  if (typeof gsap === 'undefined' || typeof ScrollTrigger === 'undefined') {
    document.querySelectorAll(
      '.hero__title-line,.hero__subtitle,.hero__circle-cta,.hero__news-banner,' +
      '.section-title,.section-header__label,.card,.news__item,' +
      '.about-brief__content,.about-brief__visual,.cta-phone__content,' +
      '.med-section__content,.med-section__visual,.med-highlight,' +
      '.timeline__item,.events__daily-item,' +
      '.about-overview__content,.about-overview__visual,' +
      '.philosophy__main,.history-timeline__item,' +
      '.adm-flow__step,.adm-visit__point,.adm-visit__visual,.med-care__photo,.faq-item'
    ).forEach(function (el) { el.style.opacity = '1'; el.style.transform = 'none'; });
    return;
  }

  gsap.registerPlugin(ScrollTrigger);
  if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;

  /* Hero entrance */
  var heroTl = gsap.timeline({ delay: 0.2 });
  heroTl
    .to('.hero__title-line', { opacity: 1, y: 0, duration: 0.7, stagger: 0.12, ease: 'power3.out' })
    .to('.hero__subtitle',   { opacity: 1, y: 0, duration: 0.5, ease: 'power3.out' }, '-=0.35')
    .to('.hero__circle-cta', { opacity: 1, y: 0, duration: 0.6, ease: 'back.out(1.4)' }, '-=0.2')
    .to('.hero__news-banner', { opacity: 1, y: 0, duration: 0.55, ease: 'power3.out' }, '-=0.35');

  /* Section headers */
  gsap.utils.toArray('.section-header').forEach(function (hdr) {
    var label = hdr.querySelector('.section-header__label');
    var title = hdr.querySelector('.section-title');
    var tl = gsap.timeline({ scrollTrigger: { trigger: hdr, start: 'top 86%' } });
    if (label) tl.to(label, { opacity: 1, y: 0, duration: 0.4, ease: 'power3.out' });
    if (title) tl.to(title, {
      opacity: 1, y: 0, duration: 0.6, ease: 'power3.out',
      onComplete: function () { title.classList.add('is-visible'); }
    }, label ? '-=0.25' : 0);
  });

  /* Card groups */
  gsap.utils.toArray('.card-group').forEach(function (g) {
    gsap.to(g.querySelectorAll('.card'), {
      opacity: 1, y: 0, duration: 0.6, stagger: 0.1, ease: 'power3.out',
      scrollTrigger: { trigger: g, start: 'top 84%' }
    });
  });

  /* About brief */
  gsap.to('.about-brief__content', {
    opacity: 1, x: 0, duration: 0.7, ease: 'power3.out',
    scrollTrigger: { trigger: '.about-brief__inner', start: 'top 82%' }
  });
  gsap.to('.about-brief__visual', {
    opacity: 1, x: 0, duration: 0.7, delay: 0.15, ease: 'power3.out',
    scrollTrigger: { trigger: '.about-brief__inner', start: 'top 82%' }
  });

  /* News items */
  gsap.utils.toArray('.news__item').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, x: 0, duration: 0.4, delay: i * 0.06, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 92%' }
    });
  });

  /* CTA */
  gsap.to('.cta-phone__content', {
    opacity: 1, y: 0, duration: 0.7, ease: 'power3.out',
    scrollTrigger: { trigger: '.cta-phone', start: 'top 82%' }
  });

  /* Medical page sections */
  gsap.utils.toArray('.med-section__inner').forEach(function (inner) {
    var content = inner.querySelector('.med-section__content');
    var visual  = inner.querySelector('.med-section__visual');
    if (content) {
      gsap.to(content, {
        opacity: 1, x: 0, duration: 0.7, ease: 'power3.out',
        scrollTrigger: { trigger: inner, start: 'top 82%' }
      });
    }
    if (visual) {
      gsap.to(visual, {
        opacity: 1, x: 0, duration: 0.7, delay: 0.15, ease: 'power3.out',
        scrollTrigger: { trigger: inner, start: 'top 82%' }
      });
    }
  });

  /* Medical highlights */
  gsap.utils.toArray('.med-highlight').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, y: 0, duration: 0.5, delay: i * 0.08, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 90%' }
    });
  });

  /* Timeline items */
  gsap.utils.toArray('.timeline__item').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, x: 0, duration: 0.4, delay: i * 0.06, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 92%' }
    });
  });

  /* Daily recreation items */
  gsap.utils.toArray('.events__daily-item').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, y: 0, duration: 0.3, delay: i * 0.05, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 92%' }
    });
  });

  /* About page */
  gsap.to('.about-overview__content', {
    opacity: 1, x: 0, duration: 0.7, ease: 'power3.out',
    scrollTrigger: { trigger: '.about-overview', start: 'top 82%' }
  });
  gsap.to('.about-overview__visual', {
    opacity: 1, x: 0, duration: 0.7, delay: 0.15, ease: 'power3.out',
    scrollTrigger: { trigger: '.about-overview', start: 'top 82%' }
  });
  gsap.to('.philosophy__main', {
    opacity: 1, y: 0, duration: 0.6, ease: 'power3.out',
    scrollTrigger: { trigger: '.philosophy__main', start: 'top 85%' }
  });
  gsap.utils.toArray('.history-timeline__item').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, x: 0, duration: 0.4, delay: i * 0.08, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 90%' }
    });
  });

  /* Admission page flow steps */
  gsap.utils.toArray('.adm-flow__step').forEach(function (step, i) {
    gsap.to(step, {
      opacity: 1, y: 0, duration: 0.5, delay: i * 0.1, ease: 'power3.out',
      scrollTrigger: { trigger: step, start: 'top 88%' }
    });
  });
  gsap.utils.toArray('.adm-visit__point').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, y: 0, duration: 0.4, delay: i * 0.08, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 90%' }
    });
  });
  gsap.utils.toArray('.adm-visit__visual').forEach(function (el) {
    var visit = el.closest('.adm-visit');
    gsap.to(el, {
      opacity: 1, x: 0, duration: 0.65, ease: 'power3.out',
      scrollTrigger: { trigger: visit || el, start: 'top 82%' }
    });
  });

  gsap.utils.toArray('.med-care__photo').forEach(function (el) {
    gsap.to(el, {
      opacity: 1, y: 0, duration: 0.6, ease: 'power3.out',
      scrollTrigger: { trigger: el, start: 'top 86%' }
    });
  });

  /* FAQ items */
  gsap.utils.toArray('.faq-item').forEach(function (item, i) {
    gsap.to(item, {
      opacity: 1, y: 0, duration: 0.4, delay: i * 0.06, ease: 'power3.out',
      scrollTrigger: { trigger: item, start: 'top 92%' }
    });
  });

})();


var menuLinks = document.querySelectorAll('.header__menu-item a');
var currentPath = location.pathname.split('/').pop() || 'index.html';
menuLinks.forEach(function (a) {
  var href = a.getAttribute('href').split('/').pop();
  if (href === currentPath) {
    a.parentElement.classList.add('is-active');
  }
});