/* HCM Cache - mobile-first helper layer */
.hcm-responsive-grid,
.hcm-cache-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 3vw, 28px);
}

.hcm-responsive-card,
.hcm-cache-card,
.hcm-fwe-event-card,
.hcm-record-card,
.hcm-bym-card {
  max-width: 100%;
  overflow: hidden;
}

.hcm-responsive-grid img,
.hcm-cache-grid img,
.hcm-fwe-event-card img,
.hcm-record-card img,
.hcm-bym-card img {
  max-width: 100%;
  height: auto;
}

.hcm-responsive-button,
.hcm-cache-button,
.hcm-fwe-event-card a,
.hcm-record-card a,
.hcm-bym-card a {
  min-height: 44px;
  min-width: 44px;
}

.hcm-scroll-x,
.hcm-carousel,
.hcm-fwe-event-carousel,
.hcm-records-carousel {
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
}

@media (min-width: 640px) {
  .hcm-responsive-grid,
  .hcm-cache-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  .hcm-responsive-grid,
  .hcm-cache-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .hcm-mobile-stack,
  .hcm-frontpage-row,
  .hcm-builder-row {
    display: block !important;
  }

  .hcm-mobile-stack > *,
  .hcm-frontpage-row > *,
  .hcm-builder-row > * {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 18px;
  }

  .hcm-hide-mobile {
    display: none !important;
  }
}
