/* =============================================
   GEO PARTNER — Sticky horizontal scroll
   ============================================= */

.geo-partner-showcase {
  position: relative;
}

.geo-partner-showcase.is-passive {
  height: auto;
}

.geo-partner-pin {
  height: 100vh;
  height: 100dvh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.geo-partner-inner {
  width: 100%;
  padding-top: 24px;
  padding-bottom: 24px;
}

.geo-partner-header {
  margin-bottom: 40px;
}

.geo-partner-cards-viewport {
  overflow: hidden;
  width: 100%;
}

.geo-partner-cards-track {
  display: flex;
  flex-direction: row;
  gap: 16px;
  will-change: transform;
}

.geo-partner-cards-track .seo-partner-card {
  flex: 0 0 calc((100% - 32px) / 3);
  min-width: 280px;
  justify-content: flex-start;
}

.geo-partner-cards-track .seo-partner-card h3 {
  font-size: 18px;
  line-height: 1.4;
  margin-top: 16px;
}

.geo-partner-showcase.is-passive .geo-partner-pin {
  height: auto;
  min-height: 0;
  overflow: visible;
}

.geo-partner-showcase.is-passive:not(.is-marquee) .geo-partner-cards-viewport {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.geo-partner-showcase.is-passive:not(.is-marquee) .geo-partner-cards-viewport::-webkit-scrollbar {
  display: none;
}

.geo-partner-showcase.is-passive:not(.is-marquee) .geo-partner-cards-track {
  transform: none !important;
  width: max-content;
  flex-wrap: nowrap;
  will-change: auto;
}

.geo-partner-showcase.is-marquee .geo-partner-cards-viewport {
  overflow: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
  cursor: grab;
  user-select: none;
}

.geo-partner-showcase.is-marquee .geo-partner-cards-viewport.is-marquee-paused {
  cursor: grabbing;
}

.geo-partner-showcase.is-marquee .geo-partner-cards-track {
  width: max-content;
  flex-wrap: nowrap;
  will-change: transform;
}

.geo-partner-showcase.is-passive:not(.is-marquee) .seo-partner-card {
  scroll-snap-align: start;
}

@media (max-width: 1024px) {
  .geo-partner-cards-track .seo-partner-card {
    flex: 0 0 calc((100% - 16px) / 2);
    min-width: 260px;
  }
}

@media (max-width: 640px) {
  .geo-partner-pin {
    height: auto;
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .geo-partner-cards-track .seo-partner-card {
    flex: 0 0 85%;
    min-width: 260px;
  }

  .geo-partner-showcase.is-marquee .seo-partner-card {
    flex: 0 0 auto;
    min-width: 0;
  }
}
