/* Global mobile horizontal overflow protection */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  width: 100% !important;
}

@media (max-width: 1024px) {
  .kr-card-grid,
  .kr-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .kr-pulse-shell {
    width: min(calc(100% - 22px), var(--kr-container));
  }

  .kr-preview-page { padding-top: var(--kr-space-6); }
  .kr-section { margin-block: var(--kr-space-10); }

  .kr-category-hero__inner { padding: 28px 22px 32px; }
  .kr-category-hero__title { max-width: 14ch; }

  .kr-story-rail {
    grid-auto-columns: min(78vw, 300px);
    gap: 14px;
    margin-inline: -4px;
    padding-right: 18vw;
    scroll-snap-type: x mandatory;
  }

  .kr-story-card { scroll-snap-align: start; }
  .kr-story-card__content { inset: auto 18px 18px; }
  .kr-story-card__title { font-size: 1.14rem; }

  .kr-card-grid,
  .kr-related__grid {
    grid-template-columns: 1fr;
    gap: var(--kr-space-4);
  }

  .kr-read-card__title,
  .kr-brief-card__title {
    font-size: 1.08rem;
  }

  aside.kr-world-bridge,
  .kr-world-bridge,
  .kr-world-bridge:has(> .kr-world-bridge__copy) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 18px !important;
    padding: 22px 18px !important;
  }

  aside.kr-world-bridge .kr-button,
  .kr-world-bridge .kr-button,
  .kr-world-bridge__btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* Keep Jannah's floating back-to-top control from covering Pulse cards on phone widths. */
  body.kriyasya-pulse #go-to-top,
  body.kriyasya-pulse .go-to-top-button {
    display: none !important;
  }
}
