/* ================================
   MATVILLA - Responsive Design
   Breakpoints : Mobile < 768px | Tablette 768-1024px | Desktop > 1024px
   ================================ */

/* ===========================
   TABLETTE (768px - 1024px)
   =========================== */

   @media (max-width: 1024px) {
  
    /* === GRIDS === */
    .grid-3 {
      grid-template-columns: repeat(2, 1fr);
    }
    
    .grid-4 {
      grid-template-columns: repeat(2, 1fr);
    }
    
    /* === FOOTER === */
    .footer-grid {
      grid-template-columns: repeat(2, 1fr);
    }
    
    /* === SERVICE DETAIL === */
    .service-detail,
    .service-detail.reverse {
      grid-template-columns: 1fr;
      gap: var(--spacing-lg);
    }
    
    .service-detail.reverse .service-detail-image {
      order: 1;
    }
    
    .service-detail-image {
      position: relative;
      top: 0;
      padding: 0;
    }
    
    .service-detail.reverse .service-detail-image {
      padding-right: 0;
      width: 100%;
    }
    
    /* === CARD PRODUIT === */
    .card-product {
      grid-template-columns: 1fr !important;
      gap: var(--spacing-md);
    }
    
    .card-product.reverse {
      grid-template-columns: 1fr !important;
    }
    
    .card-product.reverse .product-image {
      order: 1 !important;
      width: 100% !important;
    }
    
    .card-product.reverse .product-content {
      order: 2 !important;
    }
    
    .product-image {
      width: 100% !important;
      max-width: 100% !important;
    }
    
    /* === STEPS === */
    .steps-container {
      flex-direction: column;
    }
    
    .step-arrow {
      transform: rotate(90deg);
    }
    
    /* === CLUB BENEFITS === */
    .club-benefits {
      grid-template-columns: 1fr;
    }
    
    /* === STATS === */
    .stats {
      gap: var(--spacing-md);
    }
  }
  
  /* ===========================
     MOBILE (< 768px)
     =========================== */
  
  @media (max-width: 768px) {
    
    /* === TYPOGRAPHIE === */
    h1 { font-size: var(--font-size-xxl); }
    h2 { font-size: var(--font-size-xl); }
    h3 { font-size: var(--font-size-lg); }
    
    /* === ESPACEMENTS === */
    section {
      padding: var(--spacing-xl) 0;
    }
    
    /* === CONTAINER === */
    .container {
      padding: 0 var(--spacing-sm);
    }
    
    /* === HEADER === */
    .header {
      height: 70px;
    }
    
    .logo {
      height: 40px;
    }
    
    /* === NAVIGATION MOBILE === */
    .menu-toggle {
      display: flex;
    }
    
    .nav {
      position: fixed;
      top: 70px;
      right: -100%;
      width: 80%;
      max-width: 300px;
      height: calc(100vh - 70px);
      background: var(--white);
      flex-direction: column;
      padding: var(--spacing-lg);
      box-shadow: var(--shadow-lg);
      transition: right var(--transition-base);
      z-index: 999;
      overflow-y: auto;
    }
    
    .nav.active {
      right: 0;
    }
    
    .nav-link {
      padding: var(--spacing-sm) 0;
      border-bottom: 1px solid var(--gray-light);
      width: 100%;
    }
    
    .nav-link::after {
      display: none;
    }
    
    .header .btn {
      display: none;
    }
    
    /* === HERO === */
    .hero {
      min-height: 80vh;
      padding-top: 70px;
    }
    
    .hero-title {
      font-size: 32px;
      line-height: 1.2;
    }
    
    .hero-subtitle {
      font-size: 16px;
    }
    
    .hero-cta {
      flex-direction: column;
      gap: var(--spacing-sm);
    }
    
    .hero-cta .btn {
      width: 100%;
    }
    
    .badges {
      flex-wrap: wrap;
      justify-content: center;
      gap: var(--spacing-xs);
    }
    
    .badge {
      font-size: var(--font-size-xs);
      padding: 8px 16px;
    }
    
    /* === GRIDS MOBILE === */
    .grid-2,
    .grid-3,
    .grid-4 {
      grid-template-columns: 1fr;
      gap: var(--spacing-md);
    }
    
    /* === FOOTER === */
    .footer-grid {
      grid-template-columns: 1fr;
      gap: var(--spacing-md);
    }
    
    /* === BUTTONS === */
    .btn-large {
      padding: 16px 24px;
      font-size: var(--font-size-sm);
    }
    
    /* === CARDS === */
    .card {
      padding: var(--spacing-md);
    }
    
    .card img {
      height: 200px;
    }
    
    /* === CARD CATÉGORIE === */
    .card-category {
      height: 220px;
    }
    
    /* === PRODUITS === */
    .card-product {
      grid-template-columns: 1fr !important;
      gap: var(--spacing-md);
    }
    
    .card-product.reverse {
      grid-template-columns: 1fr !important;
    }
    
    .card-product.reverse .product-image {
      order: 1 !important;
      width: 100% !important;
    }
    
    .card-product.reverse .product-content {
      order: 2 !important;
    }
    
    .product-image {
      width: 100% !important;
      max-width: 100% !important;
    }
    
    .product-features {
      margin: var(--spacing-sm) 0;
    }
    
    .product-feature {
      font-size: var(--font-size-xs);
    }
    
    /* === SERVICE NAV === */
    .service-nav {
      gap: 8px;
    }
    
    .service-nav-link {
      padding: 10px 16px;
      font-size: var(--font-size-xs);
    }
    
    /* === SERVICE DETAIL === */
    .service-icon {
      font-size: 36px;
    }
    
    .service-list li {
      font-size: var(--font-size-xs);
      padding: 10px 0 10px 28px;
    }
    
    .service-feature-item {
      font-size: var(--font-size-xs);
      padding: 10px;
    }
    
    /* === CONTACT === */
    .contact-quick-card {
      padding: var(--spacing-md);
    }
    
    .contact-quick-icon {
      width: 60px;
      height: 60px;
      font-size: 28px;
    }
    
    /* === FORMULAIRE DE CONTACT === */
    #contact-form .grid-2 {
      grid-template-columns: 1fr !important;
      gap: var(--spacing-sm) !important;
    }
    
    #contact-form .form-group {
      margin-bottom: var(--spacing-md);
    }
    
    #contact-form .form-input,
    #contact-form .form-textarea,
    #contact-form .form-select {
      width: 100%;
      font-size: var(--font-size-sm);
      padding: 12px 16px;
    }
    
    #contact-form h2 {
      font-size: var(--font-size-xl);
      margin-bottom: var(--spacing-sm);
    }
    
    #contact-form p {
      font-size: var(--font-size-sm);
      margin-bottom: var(--spacing-md);
    }
    
    /* === COORDONNÉES === */
    .contact-info-card {
      flex-direction: column !important;
      text-align: center !important;
      padding: var(--spacing-md) !important;
      margin-bottom: var(--spacing-md) !important;
    }
    
    .contact-info-icon {
      width: 50px !important;
      height: 50px !important;
      font-size: 24px !important;
      margin: 0 auto var(--spacing-sm) !important;
    }
    
    .contact-info-card h3 {
      font-size: var(--font-size-md) !important;
      margin-bottom: var(--spacing-xs) !important;
    }
    
    .contact-info-card p {
      font-size: var(--font-size-sm) !important;
      line-height: 1.6 !important;
    }
    
    .contact-info-card .social-link {
      font-size: var(--font-size-xs) !important;
      padding: 8px 12px !important;
    }
    
    /* === FORMULAIRES === */
    .form-group {
      margin-bottom: var(--spacing-sm);
    }
    
    .form-input,
    .form-textarea,
    .form-select {
      font-size: var(--font-size-sm);
    }
    
    /* === CLUB === */
    .club-section {
      padding: var(--spacing-xl) 0;
    }
    
    .club-hero {
      padding-top: calc(70px + var(--spacing-xl) + var(--spacing-lg)) !important;
    }
    
    .club-badge {
      font-size: var(--font-size-xs);
    }
    
    /* === TESTIMONIALS === */
    .testimonial-quote {
      font-size: 48px;
    }
    
    .testimonial-text {
      font-size: var(--font-size-sm);
    }
    
    /* === STEPS === */
    .step-item {
      min-width: auto;
      padding: var(--spacing-md);
    }
    
    .step-number {
      width: 50px;
      height: 50px;
      font-size: var(--font-size-lg);
    }
    
    .step-arrow {
      display: none;
    }
    
    /* === STORE CARDS === */
    .store-card {
      padding: var(--spacing-md);
    }
    
    /* === PAGE HEADER === */
    .page-header {
      padding: calc(70px + var(--spacing-md)) 0 var(--spacing-md);
    }
    
    .page-header-description {
      font-size: var(--font-size-sm);
    }
    
    /* === CTA SECTION === */
    .cta-section {
      padding: var(--spacing-lg);
    }
    
    .cta-section h2 {
      font-size: var(--font-size-xl);
    }
    
    /* === WHATSAPP FLOAT === */
    .whatsapp-float {
      bottom: 16px;
      right: 16px;
      width: 56px;
      height: 56px;
      font-size: 28px;
    }
    
    /* === FAQ === */
    .faq-item {
      padding: var(--spacing-md);
    }
    
    .faq-item h3 {
      font-size: var(--font-size-sm);
    }
  }
  
  /* ===========================
     TRÈS PETIT MOBILE (< 400px)
     =========================== */
  
  @media (max-width: 400px) {
    
    .hero-title {
      font-size: 28px;
    }
    
    .hero-subtitle {
      font-size: 14px;
    }
    
    .badge {
      font-size: 11px;
      padding: 6px 12px;
    }
    
    .btn {
      padding: 12px 20px;
      font-size: var(--font-size-xs);
    }
    
    .logo {
      height: 35px;
    }
    
    .section-header h2 {
      font-size: var(--font-size-lg);
    }
  }
  
  /* ===========================
     LANDSCAPE MOBILE
     =========================== */
  
  @media (max-height: 500px) and (orientation: landscape) {
    
    .hero {
      min-height: 100vh;
    }
    
    .nav {
      height: calc(100vh - 70px);
    }
  }