/**
 * Pricing table stickies for geo pages (same behaviour as plans/global liverow).
 * Desktop: vertical sticky header is the fixed clone from geo-pricing-sticky.js
 *          (CSS sticky inside .geo-table-scroll covers the first data row).
 * Mobile: that same header clone, plus the first column sticks while scrolling sideways.
 */

.geo-pricing-sticky-shell {
  position: fixed;
  z-index: 30;
  overflow: hidden;
  pointer-events: none;
  box-shadow: 0 2px 8px rgba(26, 16, 51, 0.18);
  box-sizing: border-box;
}

.geo-pricing-sticky-shell.is-active {
  pointer-events: none;
}

.geo-pricing-sticky-shell[hidden] {
  display: none !important;
}

.geo-pricing-sticky-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  pointer-events: none;
}

.geo-pricing-sticky-scroll::-webkit-scrollbar {
  display: none;
}

.geo-pricing-sticky-clone {
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
}

.geo-pricing-sticky-clone thead th {
  background: #774fda;
  color: #fff;
  border: 2px solid #fff;
  font-weight: bold;
  vertical-align: middle;
  text-align: center;
}

.geo-pricing-sticky-clone thead th,
.geo-pricing-sticky-clone thead th * {
  color: #fff;
}

/* Real header stays in flow (keeps row 1 below it). Hide it only while the clone is on screen. */
body.geo-page .geo-table-wrap.is-geo-head-fixed .geo-pricing-table thead th {
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 768px) {
  body.geo-page .geo-table-wrap .geo-table-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  body.geo-page .geo-table-wrap .geo-pricing-table {
    border-collapse: separate;
    border-spacing: 0;
  }

  body.geo-page .geo-table-wrap .geo-pricing-table thead th:first-child,
  body.geo-page .geo-table-wrap .geo-pricing-table tbody td:first-child {
    position: -webkit-sticky;
    position: sticky;
    left: 0;
  }

  body.geo-page .geo-table-wrap:not(.is-geo-head-fixed) .geo-pricing-table thead th:first-child {
    z-index: 4;
    background-color: #774fda;
  }

  body.geo-page .geo-table-wrap.is-geo-head-fixed .geo-pricing-table thead th:first-child {
    position: static;
    left: auto;
  }

  body.geo-page .geo-table-wrap .geo-pricing-table tbody td:first-child {
    z-index: 2;
    background: #f8f0ff !important;
  }

  body.geo-page .geo-table-wrap.is-scrolled-x .geo-pricing-table thead th:first-child,
  body.geo-page .geo-table-wrap.is-scrolled-x .geo-pricing-table tbody td:first-child {
    box-shadow: 4px 0 8px rgba(26, 16, 51, 0.12);
  }

  .geo-pricing-sticky-shell--mobile .geo-pricing-sticky-clone thead th:first-child {
    position: -webkit-sticky;
    position: sticky;
    left: 0;
    z-index: 2;
    background-color: #774fda;
  }
}
