/* ==========================================================================
   Responsive — Mobile-first, 4 breakpoints (480, 768, 1024, 1280px)
   ========================================================================== */

/* ---------- Small Mobile (up to 480px) — Base styles ---------- */
/* Mobile-first: base styles in other CSS files serve this range */

/* ---------- Large Mobile / Small Tablet (480px+) ---------- */
@media (min-width: 480px) {
  .hero__photo-wrapper {
    width: 250px;
    height: 250px;
  }

}

/* ---------- Tablet (768px+) ---------- */
@media (min-width: 768px) {
  /* Navbar: show full menu, hide hamburger */
  .navbar__menu {
    display: flex;
  }

  .navbar__hamburger {
    display: none;
  }

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

/* ---------- Small Desktop (1024px+) ---------- */
@media (min-width: 1024px) {
  .container {
    padding-inline: 2rem;
  }

  .competences__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ---------- Large Desktop (1280px+) ---------- */
@media (min-width: 1280px) {
  .container {
    padding-inline: 2.5rem;
  }
}

/* ---------- Mobile-specific (below 768px) ---------- */
@media (max-width: 767px) {
  /* Navbar: hamburger menu */
  .navbar__menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background-color: var(--bg-elevated);
    flex-direction: column;
    padding: 1rem;
    gap: 0.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
  }

  .navbar__menu.is-open {
    display: flex;
  }

  .navbar__hamburger {
    display: flex;
  }

  /* Hero: already centered layout */
  .hero__photo-wrapper {
    width: 200px;
    height: 200px;
  }

  .hero__cta {
    flex-direction: column;
    width: 100%;
    align-items: center;
  }

  /* Profil: single column details */
  .profil__details {
    grid-template-columns: 1fr;
  }

  /* Parcours: single column */
  .parcours__grid {
    grid-template-columns: 1fr;
  }

  /* Contact: single column */
  .contact__grid {
    grid-template-columns: 1fr;
  }

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

  /* Footer: stack */
  .footer__container {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }

  /* Compétences: single column on mobile */
  .competences__grid {
    grid-template-columns: 1fr;
  }

  /* Grid utilities */
  .grid--2,
  .grid--3 {
    grid-template-columns: 1fr;
  }

  /* Project detail modal */
  .project-detail__content {
    padding: 1.5rem;
  }

  .project-detail__gallery {
    grid-template-columns: 1fr;
  }
}
