/* ============================================================
   ShubhLuck CodeWorks — Responsive Layer
   Intentional mobile layouts, not shrunken desktop
   ============================================================ */

/* ---------- Large desktop ---------- */
@media (min-width: 1700px) {
  :root { --container: 1320px; --container-wide: 1560px; }
}

/* ---------- Laptop / small desktop ---------- */
@media (max-width: 1180px) {
  .primary-nav { gap: 16px; }
  .grid-4 { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Tablet ---------- */
@media (max-width: 991px) {
  :root { --header-height: 68px; }

  .primary-nav, .header-cta { display: none; }
  .nav-toggle { display: flex; }

  .hero { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; gap: var(--space-4); padding-block: var(--space-4) var(--space-5); }
  .hero-visual { max-width: 560px; margin-inline: auto; width: 100%; }

  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .value-row { grid-template-columns: 1fr; }

  .split, .split--reverse { grid-template-columns: 1fr; }
  .split--reverse > :first-child { order: 0; }

  .service-row { grid-template-columns: 56px 1fr; }
  .service-row .service-aside { grid-column: 2; }

  .tech-group-inner { grid-template-columns: 1fr; }

  .b2b-grid { grid-template-columns: 1fr; }
  .b2b-visual { order: -1; max-width: 460px; margin-inline: auto; }

  .ai-grid { grid-template-columns: 1fr; }
  .ai-visual { order: -1; max-width: 480px; margin-inline: auto; }

  .stats-band { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(3) { border-left: 0; }

  .case-card, .case-card:nth-child(even) { grid-template-columns: 1fr; }
  .case-card:nth-child(even) .case-visual { order: 0; }
  .case-visual { min-height: 240px; }

  .contact-layout { grid-template-columns: 1fr; }
  .contact-aside { order: 2; }

  .footer-top { grid-template-columns: 1fr 1fr; }
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
  :root {
    --space-section: 4rem;
    --text-hero: clamp(2.3rem, 11vw, 3rem);
    --text-3xl: clamp(2rem, 9vw, 2.6rem);
  }

  .container, .container--wide { width: calc(100% - 2.25rem); }

  .brand img { height: 36px; }
  .brand-name { font-size: 0.92rem; }

  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-meta { gap: var(--space-2); }
  .hero-meta div { min-width: calc(50% - var(--space-2)); }

  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }

  .card { padding: var(--space-3); }

  .service-row { grid-template-columns: 1fr; gap: var(--space-2); }
  .service-row .service-aside { grid-column: 1; }

  .stats-band { grid-template-columns: 1fr; }
  .stat, .stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--color-border); }
  .stat:first-child { border-top: 0; }
  .section--navy .stat { border-color: rgba(255,255,255,0.14); }

  .b2b-points { grid-template-columns: 1fr; }
  .b2b-contact { flex-direction: column; align-items: flex-start; gap: var(--space-2); }

  .ai-offer { grid-template-columns: 1fr; }

  .process-line { left: 10px; }
  .process-step { padding-left: 44px; }
  .process-step .step-dot { left: 0; width: 20px; height: 20px; }

  .form-grid { grid-template-columns: 1fr; }

  .footer-top { grid-template-columns: 1fr; gap: var(--space-3); }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .cta-band { padding: var(--space-4) var(--space-3); }
  .cta-band .btn-group .btn { width: 100%; justify-content: center; }

  /* Simplify heavy visuals on small screens */
  .bg-blob { opacity: 0.3; }
  .cursor-dot, .cursor-ring { display: none; }
}

/* Touch devices: no custom cursor, no magnetic hover dependence */
@media (hover: none), (pointer: coarse) {
  .cursor-dot, .cursor-ring { display: none !important; }
  html.has-custom-cursor, html.has-custom-cursor a, html.has-custom-cursor button { cursor: auto; }
}
