/* ============================================
   Mamma Mia — Responsive (Mobile-first overrides)
   ============================================ */

/* ---- Tablet: 768px ---- */
@media (max-width: 768px) {
  :root {
    --nav-height: 64px;
    --side-pad: 20px;
  }

  /* Nav */
  .nav-links {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .nav-logo {
    font-size: 1.2rem;
  }

  /* Hero */
  .hero-title {
    font-size: clamp(3rem, 16vw, 6rem);
  }

  .hero-subtitle {
    font-size: 1rem;
    letter-spacing: 0.1em;
  }

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

  .hero-horaires {
    font-size: 0.7rem;
  }

  /* Menu */
  .menu-3d-container {
    height: 35vh;
    min-height: 200px;
  }

  .menu-category-panel {
    width: 90vw;
    max-width: none;
  }

  .menu-category-visual {
    height: 180px;
  }

  /* Histoire */
  .timeline-item {
    flex-direction: column;
    gap: 0.5rem;
  }

  .timeline-year {
    font-size: 2rem;
    width: auto;
  }

  /* Galerie */
  .galerie-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 200px;
  }

  .gallery-item-lg {
    grid-column: span 2;
  }

  .gallery-item-wide {
    grid-column: span 2;
  }

  /* Avis */
  .avis-card {
    width: 300px;
  }

  .avis-stats {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  /* Événements */
  .evenements-grid {
    grid-template-columns: 1fr;
  }

  .event-card {
    flex-direction: column;
    gap: 1rem;
  }

  .event-date {
    width: auto;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  /* Réservation */
  .reservation-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

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

  .reservation-form {
    padding: 1.5rem;
  }

  .reservation-bg-text {
    font-size: 30vw;
  }

  /* Localisation */
  .localisation-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .localisation-map iframe {
    height: 300px;
  }

  /* Footer */
  .footer-title {
    font-size: clamp(2.5rem, 12vw, 5rem);
  }

  .footer-bottom {
    flex-direction: column;
    gap: 1.5rem;
    text-align: center;
  }

  .footer-info {
    text-align: center;
  }

  /* Parallax — reduce on tablet */
  .parallax-layer-1 { width: 60%; opacity: 0.08; }
  .parallax-layer-2 { width: 50%; opacity: 0.06; }
  .parallax-layer-3 { display: none; }
}

/* ---- Mobile: 480px ---- */
@media (max-width: 480px) {
  :root {
    --side-pad: 16px;
  }

  .section-title {
    font-size: clamp(2rem, 8vw, 3rem);
  }

  .hero-title {
    font-size: clamp(2.5rem, 18vw, 5rem);
  }

  .hero-badge {
    padding: 0.4rem 0.8rem;
  }

  .hero-badge-text {
    font-size: 0.7rem;
  }

  .btn-primary {
    padding: 0.8rem 1.5rem;
    font-size: 0.9rem;
  }

  .btn-secondary {
    padding: 0.8rem 1.5rem;
    font-size: 0.9rem;
  }

  /* Menu */
  .menu-category-panel {
    width: 95vw;
    padding: 0 16px;
  }

  .menu-category-visual {
    height: 150px;
  }

  .menu-item-name {
    font-size: 1rem;
  }

  /* Galerie */
  .galerie-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 200px;
  }

  .gallery-item-lg,
  .gallery-item-wide {
    grid-column: span 1;
  }

  /* Avis */
  .avis-card {
    width: 280px;
    padding: 1.5rem;
  }

  .avis-number {
    font-size: 2.5rem;
  }

  /* Réservation */
  .reservation-phone {
    font-size: 1.3rem;
  }

  /* Localisation */
  .localisation-map iframe {
    height: 250px;
  }

  /* Lightbox */
  .lightbox-img {
    max-width: 95%;
    max-height: 70vh;
  }
}

/* ---- Large desktop: 1400px+ ---- */
@media (min-width: 1400px) {
  :root {
    --side-pad: 120px;
  }

  .menu-category-panel {
    max-width: 800px;
  }

  .galerie-grid {
    grid-auto-rows: 350px;
  }
}

/* ---- Ultra-wide: 1920px+ ---- */
@media (min-width: 1920px) {
  :root {
    --side-pad: 200px;
  }

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

  .footer-title {
    font-size: 8rem;
  }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .scroll-dot {
    animation: none;
  }

  .avis-track {
    animation: none;
  }

  .hero-title .char {
    opacity: 1 !important;
    transform: none !important;
  }

  .clip-reveal {
    clip-path: none !important;
  }

  .timeline-item,
  .event-card,
  .reservation-form,
  .reservation-info,
  .localisation-info,
  .localisation-map {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ---- Touch devices — disable hover effects ---- */
@media (hover: none) {
  .gallery-item:hover img {
    transform: none;
  }

  .gallery-caption {
    transform: translateY(0);
    background: linear-gradient(transparent 30%, rgba(0, 0, 0, 0.6));
  }

  .gallery-item::after {
    display: none;
  }
}

/* ---- Print ---- */
@media print {
  .nav,
  #loader-container,
  #transition-container,
  .hero-3d-container,
  .menu-3d-container,
  .water-3d-container,
  .hero-scroll-indicator,
  .lightbox {
    display: none !important;
  }

  body {
    color: #000;
    background: #fff;
  }

  .section-hero {
    height: auto;
    background: #fff;
  }

  .hero-content {
    position: static;
    height: auto;
  }

  .hero-title {
    color: #000;
    font-size: 3rem;
  }

  .section-galerie {
    background: #fff;
  }

  .section-reservation {
    background: #fff;
  }
}
