/* Site-wide custom bullet alignment
   Optically centers every custom dot against the visible letter height. */

body:not(.kp-admin-page) .kp-bullets li,
body:not(.kp-admin-page) .kp-newsletter-list li,
body:not(.kp-admin-page) .page-services .kp-rate-details li,
body:not(.kp-admin-page) .page-services .kp-services-list li,
body:not(.kp-admin-page) .page-services .kp-addon-includes li,
body:not(.kp-admin-page) .page-city-publications-case .kp-clean-list li,
body:not(.kp-admin-page) .page-city-publications-case .kp-workstream li,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-list li,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-workstream li {
  position: relative;
}

body:not(.kp-admin-page) .kp-bullets li::before,
body:not(.kp-admin-page) .kp-newsletter-list li::before,
body:not(.kp-admin-page) .page-services .kp-rate-details li::before,
body:not(.kp-admin-page) .page-services .kp-services-list li::before,
body:not(.kp-admin-page) .page-services .kp-addon-includes li::before,
body:not(.kp-admin-page) .page-city-publications-case .kp-clean-list li::before,
body:not(.kp-admin-page) .page-city-publications-case .kp-workstream li::before,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-list li::before,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-workstream li::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;

  /* Fallback followed by line-height-aware centering. */
  top: 0.85em !important;
  top: calc(0.5lh - 2px) !important;
  transform: translateY(-50%) !important;

  width: 6px !important;
  height: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  line-height: 1 !important;
  font-size: 0 !important;
  pointer-events: none !important;
}

/* Preserve the correct bullet colors across page types. */
body:not(.kp-admin-page) .kp-bullets li::before,
body:not(.kp-admin-page) .kp-newsletter-list li::before,
body:not(.kp-admin-page) .page-services .kp-rate-details li::before,
body:not(.kp-admin-page) .page-services .kp-services-list li::before,
body:not(.kp-admin-page) .page-services .kp-addon-includes li::before,
body:not(.kp-admin-page) .page-city-publications-case .kp-clean-list li::before,
body:not(.kp-admin-page) .page-city-publications-case .kp-workstream li::before,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-list li::before,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-workstream li::before {
  background: #a32024 !important;
}

/* Maintain comfortable spacing between the centered dot and the text. */
body:not(.kp-admin-page) .kp-bullets li {
  padding-left: 20px !important;
}

body:not(.kp-admin-page) .kp-newsletter-list li {
  padding-left: 18px !important;
}

body:not(.kp-admin-page) .page-services .kp-rate-details li,
body:not(.kp-admin-page) .page-services .kp-services-list li,
body:not(.kp-admin-page) .page-services .kp-addon-includes li,
body:not(.kp-admin-page) .page-city-publications-case .kp-clean-list li,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-list li {
  padding-left: 22px !important;
}

body:not(.kp-admin-page) .page-city-publications-case .kp-workstream li,
body:not(.kp-admin-page) .page-digital-ecosystem .kp-de-workstream li {
  padding-left: 18px !important;
}

/* Restore the original Home-page bullet treatment. */
body.page-home .kp-bullets li {
  position: relative !important;
  padding-left: 20px !important;
  margin-bottom: 10px !important;
}

body.page-home .kp-bullets li::before {
  content: "•" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: #a32024 !important;
  font-size: inherit !important;
  font-weight: 700 !important;
  line-height: inherit !important;
  pointer-events: none !important;
}

/* Newsletter bullets — baseline aligned with the text on every page. */
body:not(.kp-admin-page) .kp-newsletter-list li {
  position: relative !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  padding-left: 0 !important;
}

body:not(.kp-admin-page) .kp-newsletter-list li::before {
  content: "•" !important;
  position: static !important;
  flex: 0 0 auto !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: #a32024 !important;
  font-family: inherit !important;
  font-size: 1em !important;
  font-weight: 700 !important;
  line-height: inherit !important;
  pointer-events: none !important;
}
