/* =====================================================
   DGF TRIVELMORRA — responsive.css
   ALL media queries — Mobile / Tablet / Desktop Small
   ===================================================== */

/* ── Disable cursor on touch devices ── */
@media (hover: none) {
  #cursor, #cursor-dot { display: none !important; }
  body { cursor: auto !important; }
}

/* ════════════════════════════════════════════════════
   Desktop Small — max 1024px
   ════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  nav { padding: 0 40px; }
  section { padding: 80px 40px; }
  .page-hero { padding: 100px 40px 60px; }
  .cta-section { padding: 60px 40px; }

  .come-lavoriamo-wrap { grid-template-columns: 1fr; }
  .geo-cross-canvas { position: static; height: 220px; }
  .contatti-layout { grid-template-columns: 1fr; }
  .lcn-layout { grid-template-columns: 1fr; }
  .numeri-grid { grid-template-columns: repeat(2,1fr); }
  .normativa-grid { grid-template-columns: repeat(2,1fr); }
  .lcn-values { grid-template-columns: repeat(2,1fr); }

  footer { padding: 40px 40px 24px; }
}

/* ════════════════════════════════════════════════════
   Tablet / Mobile — max 768px
   ════════════════════════════════════════════════════ */
@media (max-width: 768px) {

  /* Navbar */
  nav { padding: 0 20px; height: 64px; }
  .nav-links { display: none; }
  .nav-cta { display: none; }
  .nav-logo-img { height: 40px; }
  .nav-logo-tagline { display: none; }
  .nav-hamburger { display: flex; }
  .mobile-menu { top: 64px; padding: 32px 24px; }

  /* Sections */
  section { padding: 64px 24px; }
  .page-hero { padding: 84px 24px 48px; }
  .cta-section { padding: 48px 24px; }

  /* Hero */
  .hero-title { font-size: clamp(36px,10vw,64px); letter-spacing: -2px; }
  .hero-content { padding: 0 24px 160px; }
  .hero-ctas { flex-direction: column; gap: 12px; }
  .hero-ctas .btn-primary,
  .hero-ctas .btn-ghost { width: 100%; text-align: center; }
  .stat-item {
    border-right: none; border-bottom: 1px solid var(--border);
    width: 50%; flex: none;
  }
  .stat-item:nth-child(even) { border-left: 1px solid var(--border); }
  .scroll-indicator { display: none; }

  /* Geo layers */
  .geo-layer { padding: 0 24px; }

  /* Servizi */
  .servizi-grid { grid-template-columns: 1fr; }
  .servizi-secondary-grid { grid-template-columns: repeat(2,1fr); }
  .tutti-servizi-toggle { padding: 16px 20px; font-size: 13px; }

  /* Progetti */
  .projects-grid { grid-template-columns: 1fr; }

  /* Numeri */
  .numeri-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .stat-big { font-size: 40px; }
  .certs-row { flex-direction: column; }

  /* Contatti */
  .contatti-layout { grid-template-columns: 1fr; }
  .contact-form-wrap { padding: 28px 20px; }

  /* Form */
  .form-row { grid-template-columns: 1fr; }
  .form-group input,
  .form-group textarea,
  .form-group select { font-size: 16px; } /* prevent iOS zoom */

  /* Sicurezza */
  .sicurezza-grid { grid-template-columns: 1fr; }
  .sic-stats-row { grid-template-columns: 1fr 1fr; }
  .sic-stat { border-right: none; border-bottom: 1px solid var(--border); }
  .sic-stat:nth-child(odd) { border-right: 1px solid var(--border); }
  .normativa-grid { grid-template-columns: 1fr; }

  /* Lavora */
  .lcn-values { grid-template-columns: 1fr; }
  .lcn-layout { grid-template-columns: 1fr; }
  .lcn-form-wrap { padding: 28px 20px; }
  .posizione-header { flex-direction: column; gap: 8px; }
  .file-btn { min-height: 48px; font-size: 12px; }

  /* Footer */
  footer { padding: 40px 24px 24px; }
  .footer-top { flex-direction: column; gap: 24px; }
  .footer-links { gap: 14px; }
  .footer-logo-img { height: 56px; }
  .footer-certs { flex-direction: column; gap: 10px; }

  /* Page hero */
  .page-hero-title { font-size: clamp(32px,9vw,56px); letter-spacing: -1.5px; }
  .breadcrumb { margin-top: 16px; }

  /* CTA box */
  .cta-box { padding: 40px 24px; }
  .cta-box h2 { font-size: 24px; }
}

/* ════════════════════════════════════════════════════
   Mobile Small — max 480px
   ════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  nav { padding: 0 16px; }
  section { padding: 48px 16px; }
  .page-hero { padding: 72px 16px 40px; }

  .hero-title { font-size: clamp(30px,9vw,48px); }
  .hero-content { padding: 0 16px 160px; }

  .projects-grid { grid-template-columns: 1fr; }
  .servizi-secondary-grid { grid-template-columns: 1fr; }
  .numeri-grid { grid-template-columns: 1fr; }
  .sic-stats-row { grid-template-columns: 1fr; }
  .sic-stat { border-right: none; }

  .contact-form-wrap { padding: 24px 16px; }
  .lcn-form-wrap { padding: 24px 16px; }

  footer { padding: 32px 16px 24px; }
  .footer-top { align-items: center; text-align: center; }
  .footer-brand .sub { text-align: center; }
  .footer-logo-img { height: 48px; }
  .footer-logo-link { margin: 0 auto; }

  .filter-tabs { gap: 8px; }
  .filter-tab { padding: 7px 14px; font-size: 10px; }
}
