/** Service and market hubs: illustrated introductions and readable editorial. */
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-index-intro, .cyb-city-editorial, .cyb-city-contact-card, .cyb-city-brand-links) {
  box-sizing: border-box;
  min-width: 0;
  color: #203b2d;
  -webkit-text-fill-color: #203b2d;
  overflow-wrap: break-word;
}

/* The marked service panels override only the legacy card/intro treatments. */
html body.path-node.page-node-type-service #wrapper #main-content .service-node-content > .service-editorial-intro.cyb-city-index-intro--service,
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .hub-intro.cyb-city-index-intro.cyb-city-index-intro--service {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: center !important;
  gap: 32px !important;
  width: 100% !important;
  max-width: 960px !important;
  margin: 0 auto 2rem !important;
  padding: 28px !important;
  border: 1px solid #d7e5dc !important;
  border-left: 4px solid #138450 !important;
  border-radius: 14px !important;
  background: #fff !important;
  background-image: none !important;
  box-shadow: 0 8px 24px rgb(10 47 28 / 5%) !important;
  text-align: left !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-index-intro--service > .cyb-city-index-intro__copy {
  display: block;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  min-width: 0;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro .summary-box,
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro .summary-box :is(p, ul, ol, li),
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .cyb-city-index-intro__copy :is(p, ul, ol, li) {
  max-width: 68ch !important;
  margin: 0 0 0.9rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #203b2d !important;
  -webkit-text-fill-color: #203b2d !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  text-align: left !important;
  white-space: normal !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro .summary-box h2 {
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  color: #0a2f1c !important;
  -webkit-text-fill-color: #0a2f1c !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: clamp(1.1rem, 1.6vw, 1.3rem) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  text-align: left !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro .summary-box h2 * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  background: transparent !important;
  font-size: inherit !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro.cyb-city-index-intro--service h1 {
  font-size: clamp(1.7rem, 3vw, 2.35rem) !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-editorial-intro .editorial-primary-actions {
  margin-bottom: 0;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-index-intro--service > .service-lottie--intro,
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service > .hub-lottie {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  align-self: center !important;
  width: 100% !important;
  max-width: 25rem !important;
  min-width: 0 !important;
  margin: 0 !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-index-intro--service .service-lottie--hub {
  width: 100%;
  margin: 0;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-index-intro--service > .cyb-section-navigation {
  grid-column: 1 / -1;
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .hub-intro__links {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  max-width: 100% !important;
  margin: 1.25rem 0 0 !important;
}
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .hub-intro__links a {
  display: inline-flex !important;
  box-sizing: border-box !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  max-width: 100% !important;
  padding: 12px 18px !important;
  border: 1px solid #bcd9c8 !important;
  border-radius: 8px !important;
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
}
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .hub-intro__links a.hub-intro__btn--consult {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #138450 !important;
  border-color: #138450 !important;
}
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .hub-intro__links a:is(:hover, :focus-visible) {
  background: #eaf7ee !important;
  border-color: #138450 !important;
}
html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service .hub-intro__links a.hub-intro__btn--consult:is(:hover, :focus-visible) {
  background: #0e6c3e !important;
}

/* One reading rail, with quiet section dividers instead of repeated cards. */
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial {
  width: 100%;
  max-width: 68rem;
  margin: 2rem auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial__section {
  box-sizing: border-box;
  min-width: 0;
  margin: 0;
  padding: 1.5rem 0;
  border: 0;
  border-bottom: 1px solid #d7e5dc;
  background: transparent;
  box-shadow: none;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial__section:last-child {
  border-bottom: 0;
}
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-editorial, .cyb-city-contact-card, .cyb-city-brand-links) :is(h2, h3) {
  max-width: 100%;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
  color: #0a2f1c !important;
  -webkit-text-fill-color: #0a2f1c !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-size: clamp(1.25rem, 1.8vw, 1.6rem) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  text-wrap: balance;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial h3 {
  margin-top: 1.25rem !important;
  font-size: 1.1rem !important;
}
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-editorial, .cyb-city-contact-card, .cyb-city-brand-links) :is(p, ul, ol, li) {
  box-sizing: border-box;
  max-width: 68ch;
  margin: 0 0 0.9rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #203b2d !important;
  -webkit-text-fill-color: #203b2d !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  text-align: left !important;
  text-wrap: pretty;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial :is(ul, ol) {
  padding-left: 1.4rem !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial li {
  margin-bottom: 0.45rem !important;
}
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-editorial, .cyb-city-contact-card, .cyb-city-brand-links) :is(h2, h3) * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  background: transparent !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial :is(p, li) a {
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-city-editorial .service-illustration-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 18rem);
  align-items: center;
  gap: 24px;
  max-width: 100%;
  margin: 0;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial .service-illustration-row > .service-lottie {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  width: 100%;
  max-width: 18rem;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial :is(.service-illustration-remainder, .service-illustration-continuation) {
  grid-column: 1 / -1;
}

/* Neutral wrappers retain the existing reading flow below the desktop breakpoint. */
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper :is(.cyb-service-text-columns, .cyb-service-text-column) {
  display: contents;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .service-illustration-remainder > .cyb-service-text-columns > .cyb-service-text-column:last-child > :last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 991.98px) {
  /* This paragraph ended a new column, but still has following authored copy. */
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-service-text-columns > .cyb-service-text-column:first-child > p:last-child {
    margin-bottom: 0.7rem !important;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-city-editorial .cyb-service-text-columns > .cyb-service-text-column:first-child > p:last-child {
    margin-bottom: 0.9rem !important;
  }
}
@media (min-width: 992px) {
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-service-text-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
    width: 100%;
    min-width: 0;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-service-text-column {
    display: block;
    width: 100%;
    min-width: 0;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-service-text-column > :first-child {
    margin-top: 0 !important;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .service-node-content .service-cards-wrapper .service-illustration-row--split-remainder > .service-lottie {
    grid-row: 1;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .service-node-content .service-cards-wrapper .service-illustration-row--split-remainder > .service-illustration-remainder {
    grid-column: 1 / -1;
    grid-row: 2;
    max-width: 100%;
  }
}

html body[class*="path-"] #wrapper #main-content .cyb-city-editorial .faq-card,
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-card {
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 1px solid #d7e5dc !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial .faq-card > summary,
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-card > summary {
  padding: 14px 40px 14px 18px !important;
  min-height: 48px;
  border: 0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #0a2f1c !important;
  -webkit-text-fill-color: #0a2f1c !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-editorial .faq-answer,
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-answer {
  margin: 0 !important;
  padding: 0 18px 8px !important;
  color: #203b2d !important;
  -webkit-text-fill-color: #203b2d !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-section {
  box-sizing: border-box;
  width: 100%;
  max-width: 68rem;
  margin: 2rem auto !important;
  padding: 1.5rem 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-grid {
  display: block !important;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-section .section-header {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-answer strong {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
  font-weight: 600;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-section::before,
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-card::before,
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-card::after {
  display: none;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-card > summary::after {
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] .faq-answer p {
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #203b2d !important;
  -webkit-text-fill-color: #203b2d !important;
  font-weight: 400 !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial__resources {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  width: 100%;
  max-width: 68rem;
  margin: 1.5rem auto;
  padding: 1.5rem 0;
  border-top: 1px solid #d7e5dc;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial__resources h2 {
  flex-basis: 100%;
}
html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial__resources a {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  max-width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid #d7e5dc;
  border-radius: 8px;
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  background: #fff;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  overflow-wrap: anywhere;
}

html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: 100%;
  max-width: 68rem;
  margin: 2.5rem auto;
  padding: 32px;
  border: 1px solid #cfe4d7;
  border-left: 4px solid #138450;
  border-radius: 14px;
  background: #eaf7ee;
  box-shadow: none;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__copy {
  flex: 1 1 0;
  min-width: 0;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card .cyb-city-contact-card__eyebrow {
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__actions {
  display: flex;
  flex: 0 1 20rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-width: 0;
}
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-contact-card__primary, .cyb-city-contact-card__secondary, .cyb-city-brand-links__link) {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 18px;
  border: 1px solid #bcd9c8;
  border-radius: 8px;
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__primary {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  background: #138450 !important;
  border-color: #138450;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__primary:is(:hover, :focus-visible) {
  background: #0e6c3e !important;
  border-color: #0e6c3e;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__details {
  flex-basis: 100%;
  margin: 0 !important;
  font-size: 0.875rem !important;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__details a {
  display: inline-block;
  padding-block: 8px;
  color: #0e6c3e !important;
  -webkit-text-fill-color: #0e6c3e !important;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-brand-links {
  width: 100%;
  max-width: 68rem;
  margin: 2.5rem auto;
  padding: 24px 0;
  border-top: 1px solid #d7e5dc;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-brand-links__items {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  min-width: 0;
}
html body[class*="path-"] #wrapper #main-content .cyb-city-brand-links__link:is(:hover, :focus-visible),
html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__secondary:is(:hover, :focus-visible) {
  border-color: #138450;
  background: #eaf7ee !important;
}
html body[class*="path-"] #wrapper #main-content :is(.cyb-city-editorial, .cyb-city-contact-card, .cyb-city-brand-links, .cyb-city-index-intro) :is(a, summary, button):focus-visible {
  outline: 3px solid #4fa36f !important;
  outline-offset: 4px !important;
}
html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper[data-service-key] :is(.faq-card > summary, .cyb-city-editorial__resources a):focus-visible {
  outline: 3px solid #4fa36f !important;
  outline-offset: 4px !important;
}

@media (max-width: 991.98px) {
  html body.path-node.page-node-type-service #wrapper #main-content .service-node-content > .service-editorial-intro.cyb-city-index-intro--service,
  html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .hub-intro.cyb-city-index-intro.cyb-city-index-intro--service {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px !important;
    padding: 20px !important;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-index-intro--service > .service-lottie--intro,
  html body[class*="path-"]:not(.path-team):not(.path-blog) #wrapper #main-content #content-wide-top .cyb-city-index-intro--service > .hub-lottie {
    grid-column: 1 !important;
    grid-row: auto !important;
    max-width: 20rem !important;
  }
  html body[class*="path-"] #wrapper #main-content .cyb-city-index-intro--service :is(.editorial-primary-actions, .hub-intro__links) {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  html body[class*="path-"] #wrapper #main-content .cyb-city-index-intro--service :is(.editorial-primary-actions, .hub-intro__links) a {
    width: 100% !important;
  }
}
@media (max-width: 767.98px) {
  html body.path-node.page-node-type-service #wrapper #main-content .service-cards-wrapper .cyb-city-editorial .service-illustration-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  html body.path-node.page-node-type-service #wrapper #main-content .cyb-city-editorial .service-illustration-row > .service-lottie {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
    max-width: 16rem;
  }
  html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    padding: 24px;
  }
  html body[class*="path-"] #wrapper #main-content .cyb-city-contact-card__actions {
    flex-basis: auto;
  }
  html body[class*="path-"] #wrapper #main-content :is(.cyb-city-contact-card__primary, .cyb-city-contact-card__secondary) {
    width: 100%;
  }
}
