
/*================================================================
  Responsive (Tablet)
================================================================*/
@media (max-width: 992px) {
  .section-title { font-size: 2.5rem; }
  .hero-title { font-size: 3rem; }
  .hero-lead { font-size: 1.2rem; }

  .about-grid, .access-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .about-grid img {
    margin-bottom: 20px;
  }
}

/*================================================================
  Responsive (Mobile)
================================================================*/
@media (max-width: 768px) {
  /* --- Navbar --- */
  .nav-menu {
    position: fixed;
    top: 0;
    right: -100%; /* Start off-screen */
    width: 80%;
    height: 100vh;
    /* Slightly transparent white background */
    background: rgba(255, 255, 255, 0.9);
    flex-direction: column;
    padding-top: 80px;
    transition: right 0.5s ease;
    align-items: center;
  }

  #nav-toggle:checked ~ .nav-menu {
    right: 0;
  }

  /* Reduce spacing between items in hamburger menu */
  .nav-menu li {
    margin: 5px 0;
  }

  /* Reduce padding and line-height inside links */
  .nav-menu a {
    display: block;
    padding: 6px 0;
    line-height: 1.2;
  }

  .icon-burger {
    display: block;
    position: relative;
    width: 30px;
    height: 20px;
    cursor: pointer;
    z-index: 1001; /* Above navbar */
  }

  .icon-burger span,
  .icon-burger span::before,
  .icon-burger span::after {
    content: '';
    display: block;
    background: var(--text-color);
    height: 3px;
    width: 100%;
    position: absolute;
    transition: all 0.3s ease;
  }

  .icon-burger span { top: 50%; transform: translateY(-50%); }
  .icon-burger span::before { top: -10px; }
  .icon-burger span::after { top: 10px; }

  #nav-toggle:checked ~ .icon-burger span { background: transparent; }
  #nav-toggle:checked ~ .icon-burger span::before { transform: rotate(45deg); top: 0; }
  #nav-toggle:checked ~ .icon-burger span::after { transform: rotate(-45deg); top: 0; }

  /* --- Sections --- */
  .section { padding: 60px 0; }
  .section-title { font-size: 2rem; }
  .section-sub { margin-bottom: 40px; }

  .hero { height: 70vh; }
  .hero-inner { padding: 20px; }
  .hero-title { font-size: 1.8rem; }
  .hero-lead { font-size: 0.9rem; }

  /* Smaller catch phrase on mobile */
  .catch { font-size: 1.2rem; }
  .main-catchphrase .catch { font-size: 1.2rem; }

  .card-grid {
    grid-template-columns: 1fr;
  }

  .feature-grid,
  .ba-grid {
    grid-template-columns: 1fr;
  }

  .staff-card {
    flex-direction: column;
    text-align: left; /* Changed from center */
  }

  .staff-card img {
    margin-right: 0;
    margin-bottom: 20px;
  }

  .footer-inner {
    flex-direction: column;
  }

  .footer .logo {
    margin-bottom: 20px;
  }

  .sns li:first-child { margin-left: 0; }

  /* ===================== Testimonials slider ===================== */
  .testimonial-grid-full {
    display: flex;
    overflow-x: auto;
    gap: 20px;
    scroll-snap-type: x mandatory;
  }
  .testimonial-card {
    flex: 0 0 80%;
    scroll-snap-align: center;
    max-width: 80%;
    position: relative;
  }
  /* Collapse long content */
  .testimonial-card .testimonial-qa {
    max-height: 160px;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }
  .testimonial-card.expanded .testimonial-qa {
    max-height: none;
  }

  /* ===================== Before-After horizontal scroll ===================== */
  .ba-grid {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 20px;
    scroll-snap-type: x mandatory;
  }
  .ba-card {
    flex: 0 0 80%;
    scroll-snap-align: center;
  }

  /* ===================== Gallery horizontal scroll ===================== */
  .gallery-scroll {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .gallery-scroll img {
    flex: 0 0 70%;
    scroll-snap-align: center;
  }
}
