/* ============================================================
   FACINPRIMEUR — Responsive Styles
   Breakpoints: 1440 / 1200 / 992 / 768 / 576
   ============================================================ */

/* === 1440px — Large Desktop === */
@media (max-width: 1440px) {
  :root { --container-pad: 60px; --section-pad: 100px; }
  .hero-content h1 { font-size: 64px; }
  .footer-grid { grid-template-columns: 1.8fr 1fr 1fr 1.4fr; gap: 48px; }
}

/* === 1200px — Standard Desktop === */
@media (max-width: 1200px) {
  :root { --container-pad: 48px; --section-pad: 88px; }
  .main-nav { gap: 26px; }
  .header-phone { display: none; }
  .metiers-grid { grid-template-columns: repeat(2, 1fr); }
  .metier-card { border-bottom: 1px solid var(--or-pale); }
  .metier-card:nth-child(2) { border-right: none; }
  .metier-card:nth-child(3) { border-right: 1px solid var(--or-pale); border-bottom: none; }
  .metier-card:nth-child(4) { border-bottom: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 48px; }
  .stats-grid { }
  .stat-item { padding: 60px 28px; }
  .team-grid { gap: 36px; }
  .history-wrap { padding-left: 120px; }
  .history-year { font-size: 30px; width: 90px; left: -120px; }
  .manifeste-body { column-gap: 44px; }
  .service-content { padding: 64px 48px; }
  .process-content { padding: 64px 48px; }
  .contact-layout { grid-template-columns: 1fr 360px; gap: 60px; }
}

/* === 992px — Tablet Landscape === */
@media (max-width: 992px) {
  :root { --container-pad: 36px; --section-pad: 72px; }

  /* Header */
  .main-nav { display: none; }
  .hamburger { display: flex; }
  body { cursor: auto; }
  .cursor { display: none; }
  .btn-outline-gold,
  .btn-solid-dark,
  .filter-btn,
  .carousel-btn,
  .hamburger,
  .mobile-nav-close { cursor: pointer; }
  .form-group select,
  .checkbox-wrap input[type="checkbox"],
  .form-group input { cursor: auto; }
  details.faq-item summary { cursor: pointer; }
  .proj-card, .portfolio-card, .material-card, .video-thumb,
  .link-gold, .link-underline, .atelier-figure { cursor: pointer; }

  /* Grids */
  .grid-2 { grid-template-columns: 1fr; gap: 48px; }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-item:nth-child(2) { border-right: none; }
  .stat-item:nth-child(1),
  .stat-item:nth-child(2) { border-bottom: 1px solid rgba(201,169,97,0.15); }

  /* Hero */
  .hero-content h1 { font-size: 52px; }
  .hero-content .subtitle { font-size: 18px; }
  .cta-group { gap: 28px; }

  /* Manifeste */
  .manifeste-wrap { grid-template-columns: 1fr; gap: 48px; }
  .manifeste-text { padding-right: 0; }
  .manifeste-figure { aspect-ratio: 16/9; max-width: 600px; }
  .manifeste-body { column-count: 1; }

  /* Service blocks */
  .service-block,
  .service-block.reverse { grid-template-columns: 1fr; }
  .service-block .service-img-wrap { order: 1; }
  .service-block .service-content { order: 2; }
  .service-block.reverse .service-img-wrap { order: 1; }
  .service-block.reverse .service-content { order: 2; }
  .service-img { min-height: 380px; }
  .service-content { padding: 52px 40px; }

  /* Process blocks */
  .process-block,
  .process-block.reverse { grid-template-columns: 1fr; }
  .process-block .process-img-wrap { order: 1; }
  .process-block .process-content { order: 2; }
  .process-block.reverse .process-img-wrap { order: 1; }
  .process-block.reverse .process-content { order: 2; }
  .process-img { min-height: 360px; }
  .process-content { padding: 52px 40px; }

  /* Portfolio */
  .portfolio-mosaic { grid-template-columns: repeat(2, 1fr); }
  .portfolio-mosaic .proj-card:nth-child(1),
  .portfolio-mosaic .proj-card:nth-child(4) { grid-row: span 1; }
  .portfolio-grid-full { grid-template-columns: repeat(2, 1fr); }
  .portfolio-card:nth-child(3n+1) .portfolio-card-img,
  .portfolio-card:nth-child(3n+2) .portfolio-card-img,
  .portfolio-card:nth-child(3n) .portfolio-card-img { height: 280px; }

  /* Timeline */
  .process-timeline { grid-template-columns: 1fr 1fr; gap: 32px; }
  .process-timeline::before { display: none; }

  /* Materials */
  .materials-grid { grid-template-columns: repeat(4, 1fr); }

  /* Team */
  .team-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  .atelier-gallery { grid-template-columns: 1fr; }

  /* History */
  .history-wrap { padding-left: 80px; }
  .history-year { font-size: 24px; width: 68px; left: -80px; }
  .history-wrap::before { left: 64px; }
  .history-dot { left: -28px; }

  /* Contact */
  .contact-layout { grid-template-columns: 1fr; gap: 48px; }

  /* Footer */
  .footer-grid { grid-template-columns: 1fr 1fr; }

  /* Distinctions */
  .distinctions-grid { grid-template-columns: repeat(3, 1fr); }

  /* Legal */
  .legal-body { padding: 64px 0 88px; }

  /* Modal gallery */
  .modal-gallery { grid-template-columns: 1fr; }
  .modal-gallery img:first-child { height: 300px; }
  .modal-gallery-right { display: none; }
  .modal-body { padding: 32px; }
}

/* === 768px — Tablet Portrait === */
@media (max-width: 768px) {
  :root { --container-pad: 24px; --section-pad: 60px; }

  h1 { font-size: 38px; }
  h2 { font-size: 30px; }
  .subtitle { font-size: 17px; }

  /* Hero */
  .hero-content h1 { font-size: 38px; }
  .hero-content .subtitle { font-size: 17px; }
  .cta-group { flex-direction: column; align-items: flex-start; gap: 20px; }
  .btn-outline-gold { width: 100%; justify-content: center; }

  /* Page hero */
  .page-hero { height: 50vh; min-height: 340px; padding-bottom: 52px; }

  /* Form */
  .form-grid { grid-template-columns: 1fr; gap: 28px; }
  .form-full { grid-column: 1; }
  .form-box { padding: 36px 28px; }

  /* Metiers */
  .metiers-grid { grid-template-columns: 1fr; }
  .metier-card { border-right: none; }
  .metier-card:nth-child(3) { border-right: none; border-bottom: 1px solid var(--or-pale); }

  /* Portfolio */
  .portfolio-mosaic { grid-template-columns: 1fr; }
  .portfolio-grid-full { grid-template-columns: 1fr 1fr; }

  /* Stats */
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat-item { padding: 48px 20px; }
  .stat-number { font-size: 52px; }

  /* Timeline */
  .process-timeline { grid-template-columns: 1fr; gap: 24px; }

  /* Team */
  .team-grid { grid-template-columns: 1fr; max-width: 400px; margin: 0 auto; }

  /* RSE */
  .rse-grid { grid-template-columns: 1fr; }
  .guarantee-grid,
  .guarantees-grid { grid-template-columns: 1fr; gap: 20px; }

  /* Materials */
  .materials-grid { grid-template-columns: repeat(2, 1fr); }

  /* Carousel */
  .carousel-slide { padding: 0 16px; }
  .quote-icon { font-size: 90px; }
  .testimonial-body { font-size: 16px; }

  /* Coulisses */
  .coulisses-grid { grid-template-columns: 1fr; }

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

  /* Distinctions */
  .distinctions-grid { grid-template-columns: repeat(2, 1fr); }

  /* History */
  .history-wrap { padding-left: 0; }
  .history-wrap::before { display: none; }
  .history-year { position: static; font-size: 36px; opacity: 0.3; margin-bottom: 8px; width: auto; text-align: left; }
  .history-dot { display: none; }

  /* Manifeste body */
  .manifeste-body { column-count: 1; }

  /* Techniques table */
  .techniques-table { display: block; overflow-x: auto; }

  /* Contact */
  .contact-encadre { flex-direction: column; gap: 16px; }

  /* Legal */
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .footer-legal { flex-wrap: wrap; gap: 12px; }

  /* Gantt */
  .gantt-wrap { font-size: 11px; }
}

/* === 576px — Mobile === */
@media (max-width: 576px) {
  :root { --container-pad: 18px; --section-pad: 52px; }

  h1 { font-size: clamp(32px, 9vw, 40px); }
  h2 { font-size: 26px; }
  h3 { font-size: 22px; }

  /* Logo */
  .logo-name { font-size: 15px; letter-spacing: 0.2em; }
  .logo-tagline { display: none; }

  /* Hero */
  .hero-home { min-height: 580px; }
  .hero-content h1 { font-size: clamp(30px, 9vw, 40px); }
  .hero-content .subtitle { font-size: 16px; }
  .scroll-indicator { display: none; }

  /* Section header */
  .section-header { margin-bottom: 44px; }

  /* Form */
  .form-header h2 { font-size: 26px; }

  /* Portfolio */
  .portfolio-mosaic { grid-template-columns: 1fr; }
  .portfolio-grid-full { grid-template-columns: 1fr; }
  .portfolio-card:nth-child(3n+1) .portfolio-card-img,
  .portfolio-card:nth-child(3n+2) .portfolio-card-img,
  .portfolio-card:nth-child(3n) .portfolio-card-img { height: 260px; }

  /* Stats */
  .stats-grid { grid-template-columns: 1fr; }
  .stat-item { border-right: none; border-bottom: 1px solid rgba(201,169,97,0.15); }
  .stat-item:last-child { border-bottom: none; }
  .stat-number { font-size: 60px; }

  /* Materials */
  .materials-grid { grid-template-columns: repeat(2, 1fr); }

  /* Mobile nav */
  .mobile-nav { width: 100%; padding: 80px 28px 40px; }
  .mobile-nav-link { font-size: 24px; }

  /* Form box */
  .form-box { padding: 28px 20px; }

  /* Modal */
  .modal-backdrop { padding: 0; }
  .modal-box { max-height: 100vh; border-radius: 0; }
  .modal-body { padding: 24px 20px; }
  .modal-meta { gap: 20px; }

  /* Service / Process */
  .service-content { padding: 44px 24px; }
  .process-content { padding: 44px 24px; }

  /* Timeline */
  .process-timeline { gap: 20px; }

  /* Atelier gallery */
  .atelier-gallery { grid-template-columns: 1fr; }

  /* Filter */
  .filter-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .filter-btn { padding: 14px 18px; white-space: nowrap; }

  /* Footer */
  .footer-legal { gap: 10px; }
  .footer-copy { font-size: 10px; }

  /* Contact encadre */
  .contact-encadre { padding: 24px; }

  /* RSE */
  .rse-card { padding: 32px 24px; }

  /* Distinctions */
  .distinctions-grid { grid-template-columns: repeat(2, 1fr); }

  /* History */
  .history-year { font-size: 28px; }
}

/* === Print === */
@media print {
  .site-header, .site-footer, .cursor, .mobile-nav, .scroll-indicator { display: none; }
  body { cursor: auto; color: #000; background: #fff; }
  .section { padding: 40px 0; }
  .hero-home, .page-hero { height: auto; min-height: auto; padding: 60px 0; }
  .hero-overlay, .hero-bg { display: none; }
  .hero-content h1, .page-hero h1 { color: #000; }
}
