/* ============================================
   ROYAL JOY — Responsive Styles
   ============================================ */

@media (max-width: 1024px) {
  .about-grid {
    gap: 50px;
  }

  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .approach-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
}

@media (max-width: 768px) {
  :root {
    --gutter: 20px;
  }

  .section {
    padding: 70px 0;
  }

  .section-header {
    margin-bottom: 40px;
  }

  /* NAV MOBILE */
  .nav-toggle {
    display: flex;
  }

  .nav-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background: var(--navy);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    z-index: 1000;
  }

  .nav-menu.open {
    opacity: 1;
    visibility: visible;
  }

  .nav-list {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .nav-link {
    font-size: 1.25rem;
    padding: 14px 20px;
  }

  .nav-cta {
    margin-left: 0;
    margin-top: 16px;
  }

  .nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
  }

  .nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) {
    opacity: 0;
  }

  .nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
  }

  /* HERO */
  .hero-title {
    font-size: clamp(2.5rem, 10vw, 3.5rem);
  }

  .hero-actions {
    flex-direction: column;
    align-items: center;
  }

  .hero-actions .btn {
    width: 100%;
    max-width: 280px;
  }

  .hero-scroll { display: none; }
  .hide-mobile { display: none; }

  /* ABOUT */
  .about-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .about-img-accent { display: none; }

  /* SERVICES */
  .services-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  /* EXPERIENCES */
  .exp-grid {
    grid-template-columns: 1fr;
  }

  .exp-large {
    grid-row: span 1;
  }

  .exp-img-wrapper {
    min-height: 250px;
  }

  .exp-content {
    padding: 24px;
  }

  .exp-content h3 {
    font-size: 1.25rem;
  }

  /* GALLERY */
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  /* APPROACH */
  .approach-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  /* SOCIAL */
  .social-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .social-card-visual {
    max-height: 240px;
  }

  /* PREMIUM CTA */
  .premium-cta {
    padding: 80px 0;
  }

  .premium-cta-actions {
    flex-direction: column;
    align-items: center;
  }

  .premium-cta-actions .btn {
    width: 100%;
    max-width: 280px;
  }

  /* CONTACT */
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .contact-form {
    grid-template-columns: 1fr;
  }

  .form-group-full {
    grid-column: 1;
  }

  .form-actions {
    grid-column: 1;
  }

  /* FOOTER */
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  /* BACK TO TOP */
  .back-to-top {
    bottom: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
  }
}

@media (max-width: 480px) {
  .section {
    padding: 56px 0;
  }

  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .gallery-filters {
    gap: 6px;
  }

  .filter-btn {
    padding: 8px 16px;
    font-size: 0.75rem;
  }

  .service-body {
    padding: 20px;
  }

  .lightbox-prev { left: 8px; }
  .lightbox-next { right: 8px; }
}

@media (max-width: 320px) {
  :root {
    --gutter: 16px;
  }

  .hero-title {
    font-size: 1.75rem;
  }

  .btn {
    padding: 12px 24px;
    font-size: 0.8125rem;
  }
}