:root {
  --mobile-space-1: 8px;
  --mobile-space-2: 12px;
  --mobile-space-3: 16px;
  --mobile-space-4: 20px;
  --mobile-space-5: 24px;
}

html, body {
  overflow-x: clip;
  max-width: 100%;
}

*, *::before, *::after {
  box-sizing: border-box;
}

img, video, iframe, canvas, svg {
  max-width: 100%;
  height: auto;
}

.container, .section, .card, .lead-card, .pro-card, .hero, main, header, footer {
  min-width: 0;
}

a.btn, button, input, select, textarea {
  min-height: 44px;
}

input, select, textarea {
  width: 100%;
  max-width: 100%;
}

nav, .nav, .menu, .dropdown, .dropdown-menu {
  max-width: 100%;
}

@media (max-width: 980px) {
  .lead-grid,
  .pro-grid,
  .use-grid,
  .grid,
  .grid-2,
  .grid-3,
  .grid-4,
  .split,
  .split-3up,
  .cards,
  .feature-grid,
  .hero-grid {
    grid-template-columns: 1fr !important;
  }

  .actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--mobile-space-2);
  }

  .actions .btn,
  a.btn,
  button.btn,
  button,
  .cta,
  .btn-primary,
  .btn-secondary {
    width: 100%;
  }

  h1, .section-title {
    font-size: clamp(28px, 7vw, 38px) !important;
    line-height: 1.12;
    letter-spacing: -0.01em;
  }

  h2 {
    font-size: clamp(22px, 5.8vw, 30px) !important;
    line-height: 1.2;
  }

  p, li, .section-subtitle {
    font-size: clamp(16px, 4.4vw, 19px) !important;
    line-height: 1.55;
  }

  section, .section, .hero {
    padding-left: var(--mobile-space-3) !important;
    padding-right: var(--mobile-space-3) !important;
  }

  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  #tpl-controls-grid,
  .filters,
  .blog-filters,
  .comparison-grid {
    grid-template-columns: 1fr !important;
  }

  .nav-links,
  .dropdown-menu,
  .mobile-menu {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    word-break: break-word;
  }

  form {
    gap: var(--mobile-space-2);
  }

  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }
}
