/* MY SNO — mobile responsiveness only.
   Every rule is inside a max-width media query, so desktop rendering is 100%
   unchanged. Overrides use !important solely to win over the pages' existing
   inline styles (never to change desktop, which these queries don't touch). */

/* ---------- Mobile nav (hamburger) ---------- */
.mobile-menu-toggle {
  display: none;
  background: transparent;
  border: none;
  padding: 6px;
  cursor: pointer;
  line-height: 0;
}

@media (max-width: 900px) {
  .mobile-menu-toggle { display: inline-flex !important; align-items: center; }

  header .container { position: relative; flex-wrap: nowrap; }

  header nav {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #211a16;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 14px 20px 20px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.35);
    max-height: calc(100vh - 78px);
    overflow-y: auto;
  }
  header nav.open { display: flex !important; }

  header nav a,
  header nav .nav-item,
  header nav .nav-item > a {
    width: 100%;
    padding: 12px 0 !important;
    font-size: 16px !important;
  }
  header nav button {
    width: 100%;
    margin-top: 10px;
    padding: 14px 24px !important;
    font-size: 16px !important;
  }
  /* Hover mega-menu can't work on touch — the "Services" link still navigates. */
  .services-dropdown { display: none !important; }
}

/* ---------- Layout / typography scaling ---------- */
@media (max-width: 768px) {
  body { overflow-x: hidden; }

  h1 { font-size: 32px !important; }
  h2 { font-size: 26px !important; }
  h3 { font-size: 18px !important; }

  .container { padding-left: 18px !important; padding-right: 18px !important; }

  .hero { padding: 72px 0 !important; }
  .hero h1 { font-size: 32px !important; }
  .hero p { font-size: 16px !important; }

  .section { padding: 48px 0 !important; }

  /* Stack every multi-column grid (class-based or inline) into one column. */
  .grid-3,
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }

  .service-card { padding: 28px !important; }
  .card { padding: 24px !important; }

  /* Let inline flex rows (button groups, badge rows) wrap instead of overflowing. */
  [style*="display: flex"],
  [style*="display:flex"] { flex-wrap: wrap; }
}

@media (max-width: 600px) {
  .hero .cta-button,
  .hero button { width: 100% !important; }
}
