/**
 * GEO Services page-only extras.
 * Loaded only via seo.extra_css from GeoThemeHtmlSeeder.
 * Scoped to body.page-geo / .geo-theme-page — does not affect other pages.
 */
body.page-geo .geo-theme-page.theme-html-root {
  /* namespace hook */
}

body.page-geo .geo-theme-page .sec,
body.page-geo .geo-theme-page .sec-ink,
body.page-geo .geo-theme-page .sec-mist,
body.page-geo .geo-theme-page .paper {
  position: relative;
}

/* No theme eyebrow in shared KodRank hero — breadcrumbs only */
body.page-geo .hero-eyebrow {
  display: none !important;
}

body.page-geo .hero-badges.hero-trust,
body.page-geo .hero-trust.hero-badges {
  margin-top: clamp(40px, 4.5vw, 64px) !important;
  margin-bottom: clamp(36px, 5vw, 64px) !important;
  padding-top: clamp(26px, 3vw, 36px) !important;
}

/* Match on-page: breadcrumb→H1 + CTA→badges gaps */
body.page-geo.page-service .hero .breadcrumb,
body.page-geo.page-service .hero .crumbs,
body.page-geo.page-theme-html .hero .breadcrumb {
  margin: 0 0 clamp(36px, 4vw, 52px) !important;
  padding-bottom: 0 !important;
}
body.page-geo.page-service .hero h1,
body.page-geo.page-theme-html .hero h1 {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.page-geo.page-service .hero .hero-actions,
body.page-geo.page-service .hero .hero-cta {
  margin: 0 0 clamp(28px, 3.5vw, 44px) !important;
}

/* Hero headline left-aligned (beats home.css 19ch / any center defaults) */
html body.page-geo.page-service .hero,
html body.page-geo.page-service .hero > .wrap,
html body.page-geo.page-service .hero .hero-copy,
html body.page-geo.page-service .hero .breadcrumb,
html body.page-geo.page-service .hero h1,
html body.page-geo.page-service .hero .lede,
html body.page-geo.page-service .hero .hero-actions,
html body.page-geo.page-service .hero .hero-badges,
html body.page-geo.page-service .hero .hero-trust {
  text-align: left !important;
}

html body.page-geo.page-service .hero .hero-copy {
  margin-left: 0 !important;
  margin-right: auto !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  max-width: min(760px, 100%) !important;
}

html body.page-geo.page-service .hero h1 {
  margin-left: 0 !important;
  margin-right: auto !important;
  max-width: none !important;
  width: 100% !important;
}

/* "GEO services" accent — global strong{color:graphite} was invisible on dark hero */
html body.page-geo.page-service .hero h1 strong.pop-o,
html body.page-geo.page-service .hero h1 .pop-o {
  color: var(--signal, #f47a1f) !important;
  font-weight: 800 !important;
}

/* ── Carousel dots (same pattern as AEO / techseo) ── */
body.page-geo .geo-theme-page .testi-dots.thm-carousel-dots,
body.page-geo .testi-dots.thm-carousel-dots {
  display: none;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
  margin-top: 18px;
  padding: 4px 0;
  min-height: 18px;
}

body.page-geo .geo-theme-page .thm-carousel-dots .testi-dot,
body.page-geo .thm-carousel-dots .testi-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  min-height: 10px;
  border-radius: 50%;
  padding: 0;
  margin: 0;
  border: 2px solid transparent;
  background: #c5d4ce;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
  box-shadow: 0 0 0 8px transparent;
}

body.page-geo .geo-theme-page .thm-carousel-dots .testi-dot.is-active,
body.page-geo .thm-carousel-dots .testi-dot.is-active {
  background: var(--signal, #f47a1f);
  border-color: rgba(244, 122, 31, 0.25);
  transform: scale(1.2);
  box-shadow: 0 0 0 6px rgba(244, 122, 31, 0.12);
}

body.page-geo .thm-carousel-nav-wrap,
body.page-geo .geo-theme-page .thm-carousel-nav-wrap {
  display: none !important;
}

@media (max-width: 980px) {
  body.page-geo .geo-theme-page .testi-dots.thm-carousel-dots,
  body.page-geo .testi-dots.thm-carousel-dots {
    display: flex !important;
  }

  body.page-geo .geo-theme-page section#problem,
  body.page-geo .geo-theme-page section#services,
  body.page-geo .geo-theme-page section:has(.pain-grid),
  body.page-geo .geo-theme-page section:has(.serv-grid),
  body.page-geo .geo-theme-page section:has(.test-grid),
  body.page-geo .geo-theme-page section:has([data-thm-carousel]),
  body.page-geo .geo-theme-page section:has(.why-mobile-carousel) {
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .pain-grid[data-thm-stack]),
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .pain-grid.page-svc-stack) {
    display: contents !important;
  }

  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .pain-grid:not([data-thm-stack]):not(.page-svc-stack)),
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .serv-grid),
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .test-grid) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    touch-action: auto !important;
    scroll-snap-type: none !important;
  }

  /* Services + testimonials — 1 card per swipe carousel (pain uses swipe-up stack) */
  html body.page-geo.page-service .geo-theme-page #services .serv-grid[data-thm-carousel],
  html body.page-geo.page-service .geo-theme-page #services .serv-grid.thm-mobile-carousel,
  html body.page-geo.page-service .geo-theme-page #services .serv-grid:not([data-thm-stack]):not(.page-svc-stack),
  html body.page-geo.page-service .geo-theme-page .test-grid[data-thm-carousel],
  html body.page-geo.page-service .geo-theme-page .test-grid.thm-mobile-carousel,
  html body.page-geo.page-service .geo-theme-page .test-grid:not([data-thm-stack]):not(.page-svc-stack),
  html body.page-geo.page-service .geo-theme-page .why-mobile-carousel > .serv-grid,
  html body.page-geo.page-service .geo-theme-page .why-mobile-carousel > .test-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    overscroll-behavior-x: contain !important;
    grid-template-columns: none !important;
    grid-template-rows: none !important;
    scrollbar-width: none !important;
    touch-action: pan-x !important;
    position: relative !important;
    transform: none !important;
    filter: none !important;
    contain: none !important;
  }

  html body.page-geo.page-service .geo-theme-page .serv-grid::-webkit-scrollbar,
  html body.page-geo.page-service .geo-theme-page .test-grid::-webkit-scrollbar {
    display: none !important;
  }

  html body.page-geo.page-service .geo-theme-page .serv-grid > .serv-card,
  html body.page-geo.page-service .geo-theme-page .serv-grid > .svc-stack-item,
  html body.page-geo.page-service .geo-theme-page .serv-grid > .svc-slide,
  html body.page-geo.page-service .geo-theme-page .test-grid > .test-card,
  html body.page-geo.page-service .geo-theme-page .test-grid > .svc-stack-item,
  html body.page-geo.page-service .geo-theme-page .test-grid > .svc-slide {
    flex: 0 0 100% !important;
    flex-shrink: 0 !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
    position: relative !important;
    top: auto !important;
    transform: none !important;
    opacity: 1 !important;
    margin: 0 !important;
  }

  html body.page-geo.page-service .geo-theme-page .serv-grid > .svc-stack-item > .serv-card,
  html body.page-geo.page-service .geo-theme-page .serv-grid > .svc-slide > .serv-card,
  html body.page-geo.page-service .geo-theme-page .test-grid > .svc-stack-item > .test-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    box-sizing: border-box !important;
  }

  /* Pain cards — swipe-up sticky stack */
  body.page-geo .geo-theme-page section#problem:has(.pain-grid[data-thm-stack]),
  body.page-geo .geo-theme-page section#problem:has(.pain-grid.page-svc-stack),
  body.page-geo .geo-theme-page section#problem.has-page-svc-stack {
    overflow-x: clip !important;
    overflow-y: visible !important;
  }
  body.page-geo .geo-theme-page .pain-grid.page-svc-stack,
  body.page-geo .geo-theme-page .pain-grid[data-thm-stack],
  body.page-geo .geo-theme-page #problem .pain-grid.page-svc-stack,
  body.page-geo .geo-theme-page #problem .pain-grid[data-thm-stack] {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
    scroll-snap-type: none !important;
    touch-action: auto !important;
  }
  body.page-geo .geo-theme-page .pain-grid.page-svc-stack > .svc-stack-item,
  body.page-geo .geo-theme-page .pain-grid[data-thm-stack] > .svc-stack-item {
    position: sticky !important;
    top: calc(var(--svc-stack-nav, 68px) + (var(--index0, 0) * var(--svc-stack-peek, 14px))) !important;
    z-index: calc(1 + var(--index0, 0)) !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 var(--svc-stack-gap, 18px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
  }
  body.page-geo .geo-theme-page .pain-grid.page-svc-stack > .svc-stack-item:last-child,
  body.page-geo .geo-theme-page .pain-grid[data-thm-stack] > .svc-stack-item:last-child {
    margin-bottom: 0 !important;
  }
  body.page-geo .geo-theme-page .pain-grid.page-svc-stack .pain-card,
  body.page-geo .geo-theme-page .pain-grid.page-svc-stack .svc-stack-item > .pain-card,
  body.page-geo .geo-theme-page .pain-grid[data-thm-stack] .pain-card,
  body.page-geo .geo-theme-page .pain-grid[data-thm-stack] .svc-stack-item > .pain-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 160px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    transform: none !important;
  }
  body.page-geo .geo-theme-page #problem .thm-carousel-dots,
  body.page-geo .geo-theme-page section#problem > .wrap > .testi-dots {
    display: none !important;
  }

  /* Readable card faces on mobile */
  html body.page-geo.page-service .geo-theme-page .pain-card,
  html body.page-geo.page-service .geo-theme-page .serv-card,
  html body.page-geo.page-service .geo-theme-page .test-card {
    background: #fff !important;
    border: 1px solid #e1e9e5 !important;
    border-radius: 18px !important;
    box-shadow: 0 10px 28px -16px rgba(13, 32, 41, 0.18) !important;
    color: #0d2029 !important;
    padding: 24px 22px !important;
  }

  html body.page-geo.page-service .geo-theme-page .pain-card h3,
  html body.page-geo.page-service .geo-theme-page .serv-card h3,
  html body.page-geo.page-service .geo-theme-page .test-card h3,
  html body.page-geo.page-service .geo-theme-page .test-card .name {
    color: #0d2029 !important;
  }

  html body.page-geo.page-service .geo-theme-page .pain-card p,
  html body.page-geo.page-service .geo-theme-page .serv-card p,
  html body.page-geo.page-service .geo-theme-page .test-card p,
  html body.page-geo.page-service .geo-theme-page .test-card .quote {
    color: #4b5b62 !important;
  }

  body.page-geo .geo-theme-page .wrap > .thm-carousel-nav-wrap {
    display: none !important;
  }

  body.page-geo .geo-theme-page .wrap > .testi-dots.thm-carousel-dots {
    margin-top: 12px !important;
  }

  body.page-geo .geo-theme-page .sec-ink .thm-carousel-dots .testi-dot:not(.is-active) {
    background: rgba(255, 255, 255, 0.35);
  }
}

@media (min-width: 981px) {
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .pain-grid),
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .serv-grid),
  body.page-geo .geo-theme-page .why-mobile-carousel:has(> .test-grid) {
    display: contents !important;
  }

  body.page-geo .geo-theme-page .testi-dots.thm-carousel-dots {
    display: none !important;
  }

  /* Problem: 4 cards, 2 per row (beats webdev-ref 3-up) */
  html body.page-geo.page-service .geo-theme-page #problem .pain-grid,
  html body.page-geo.page-service .geo-theme-page #problem .pain-grid[data-thm-stack],
  html body.page-geo.page-service .geo-theme-page #problem .pain-grid.page-svc-stack {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  html body.page-geo.page-service .geo-theme-page #problem .pain-grid > .pain-card,
  html body.page-geo.page-service .geo-theme-page #problem .pain-grid > .svc-stack-item,
  html body.page-geo.page-service .geo-theme-page #problem .pain-grid > .svc-stack-pair {
    position: static !important;
    top: auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    flex: none !important;
  }

  /* Services: exactly 3 cards per row */
  html body.page-geo.page-service .geo-theme-page #services .serv-grid,
  html body.page-geo.page-service .geo-theme-page #services .serv-grid[data-thm-carousel],
  html body.page-geo.page-service .geo-theme-page #services .why-mobile-carousel > .serv-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    flex-wrap: unset !important;
    scroll-snap-type: none !important;
    transform: none !important;
  }

  html body.page-geo.page-service .geo-theme-page #services .serv-grid > .serv-card,
  html body.page-geo.page-service .geo-theme-page #services .serv-grid > .svc-slide,
  html body.page-geo.page-service .geo-theme-page #services .serv-grid > .svc-stack-item {
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    scroll-snap-align: unset !important;
    margin: 0 !important;
  }
}
