.nb-contact-details {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 24px 48px;
  justify-content: center;
  margin: 0 auto 28px;
  max-width: 760px;
  text-align: left;
}

.nb-contact-item {
  align-items: flex-start;
  color: #fff;
  display: flex;
  gap: 14px;
  line-height: 1.45;
  min-width: 240px;
}

.nb-contact-item .fa {
  color: #87c744;
  flex: 0 0 auto;
  font-size: 24px;
  line-height: 1.2;
  margin-top: 2px;
  text-align: center;
  width: 26px;
}

.nb-contact-item address {
  color: inherit;
  font-style: normal;
  margin: 0;
}

.nb-contact-title {
  display: block;
  font-weight: 600;
}

.nb-contact-phone {
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.nb-contact-phone:hover,
.nb-contact-phone:focus {
  color: #87c744;
  text-decoration: underline;
}

.nb-claris-partner {
  margin: 26px auto 30px;
  text-align: center;
}

.nb-claris-partner img {
  display: block;
  height: auto;
  margin: 0 auto;
  max-width: min(360px, 100%);
}

#collabo .nb-certifications {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  margin: 26px auto 10px;
  transform: translateX(-50%);
  width: min(872px, calc(100vw - 64px));
  margin-left: 50%;
}

#collabo .nb-certifications::before,
#collabo .nb-certifications::after {
  content: none !important;
  display: none !important;
}

#collabo .nb-certification-badge {
  display: block;
  flex: 0 0 200px;
  height: 200px;
  max-width: calc(100vw - 80px);
  object-fit: contain;
  width: 200px;
}

@media (max-width: 640px) {
  .nb-contact-details {
    gap: 22px;
    justify-content: flex-start;
    margin-bottom: 26px;
    max-width: 320px;
  }

  .nb-contact-item {
    min-width: 0;
    width: 100%;
  }

  #collabo .nb-certifications {
    flex-direction: column;
    gap: 18px;
    margin-left: auto;
    margin-top: 24px;
    transform: none;
    width: 100%;
  }
}

#drop_mainmenu > li > a {
  font-family: "Source Sans Pro", Arial, Helvetica, sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  white-space: nowrap;
}

#drop_mainmenu > li:hover > a,
#drop_mainmenu > li.hover > a,
#drop_mainmenu > li.current_page_item > a,
#drop_mainmenu > li.current-menu-item > a {
  letter-spacing: 0 !important;
}

.header.nb-gradient-purple {
  background-image: linear-gradient(135deg, #4b2c80 0%, #8b4ec6 52%, #c77ee8 100%) !important;
}

.header.nb-gradient-green {
  background-image: linear-gradient(135deg, #117a5b 0%, #33a86e 52%, #8bcf6f 100%) !important;
}

.header.nb-gradient-orange {
  background-image: linear-gradient(135deg, #c93414 0%, #ef6118 48%, #ff941f 100%) !important;
}

@media (min-width: 1024px) {
  #drop_mainmenu > li {
    margin-left: 5px !important;
    margin-right: 5px !important;
  }

  #drop_mainmenu > li > a {
    font-size: 0.9em !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

.nb-ai-page {
  color: #555;
}

.nb-ai-section {
  background: #fff;
  padding: 72px 0;
}

.nb-ai-section.nb-ai-alt {
  background: #f6f8fa;
}

.nb-ai-section h2,
.nb-ai-section h3 {
  color: #2f353a;
  margin-top: 0;
}

.nb-ai-section p {
  line-height: 1.65;
}

.nb-ai-kicker {
  color: #03a9f4;
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.nb-ai-lead {
  color: #3d3d3d;
  font-size: 1.22em;
  line-height: 1.55;
  margin-bottom: 26px;
}

.nb-ai-intro {
  margin: 0 auto;
  max-width: 920px;
  text-align: center;
}

.nb-ai-text {
  max-width: 900px;
}

.nb-ai-text-centered {
  margin: 0 auto;
  max-width: 920px;
  text-align: center;
}

.nb-ai-two-col {
  align-items: start;
  display: grid;
  gap: 46px;
  grid-template-areas: "text media";
  grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
}

.nb-ai-two-col.nb-ai-reverse {
  grid-template-areas: "media text";
  grid-template-columns: minmax(280px, 430px) minmax(0, 1fr);
}

.nb-ai-two-col .nb-ai-text {
  grid-area: text;
}

.nb-ai-two-col .nb-ai-media {
  grid-area: media;
}

.nb-ai-media img {
  border-radius: 6px;
  box-shadow: 0 18px 48px rgba(30, 45, 60, 0.16);
  display: block;
  height: auto;
  width: 100%;
}

.nb-ai-list,
.nb-ai-steps {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.nb-ai-list {
  display: grid;
  column-gap: 42px;
  grid-auto-flow: column;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(4, auto);
  row-gap: 13px;
}

.nb-ai-list li,
.nb-ai-steps li {
  break-inside: avoid;
  line-height: 1.5;
  margin: 0;
  padding-left: 28px;
  position: relative;
}

.nb-ai-list li::before {
  color: #4caf50;
  content: "\f058";
  font-family: FontAwesome;
  left: 0;
  position: absolute;
  top: 1px;
}

.nb-ai-steps {
  counter-reset: ai-step;
  margin-bottom: 30px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 34px;
  max-width: 780px;
  text-align: left;
}

.nb-ai-steps li {
  counter-increment: ai-step;
  margin-bottom: 18px;
  min-height: 34px;
  padding-left: 46px;
}

.nb-ai-steps li:last-child {
  margin-bottom: 0;
}

.nb-ai-steps li::before {
  align-items: center;
  background: #03a9f4;
  border-radius: 50%;
  color: #fff;
  content: counter(ai-step);
  display: flex;
  font-size: 0.9rem;
  font-weight: 700;
  height: 30px;
  justify-content: center;
  left: 0;
  position: absolute;
  top: -2px;
  width: 30px;
}

.nb-ai-feature-grid {
  display: grid;
  gap: 24px;
  grid-auto-flow: row;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 38px;
}

.nb-ai-feature-grid::before,
.nb-ai-feature-grid::after {
  content: none !important;
  display: none !important;
}

.nb-ai-feature {
  background: #fff;
  border: 1px solid #e7edf1;
  border-radius: 6px;
  min-width: 0;
  padding: 28px;
}

.nb-ai-feature .fa {
  color: #4caf50;
  font-size: 28px;
  margin-bottom: 14px;
}

.nb-ai-feature h4 {
  margin-bottom: 10px;
  margin-top: 0;
}

.nb-cloud-page .nb-ai-list {
  margin-bottom: 18px;
}

.nb-cloud-page .nb-ai-feature-grid {
  align-items: stretch;
}

.nb-ai-cta {
  background: #1f2930;
  color: #fff;
  padding: 74px 0;
  text-align: center;
}

.nb-ai-cta h2,
.nb-ai-cta p {
  color: #fff;
}

.nb-ai-cta p {
  margin-left: auto;
  margin-right: auto;
  max-width: 760px;
}

@media (max-width: 900px) {
  .nb-ai-two-col,
  .nb-ai-two-col.nb-ai-reverse,
  .nb-ai-feature-grid {
    grid-template-columns: 1fr;
  }

  .nb-ai-two-col,
  .nb-ai-two-col.nb-ai-reverse {
    grid-template-areas:
      "media"
      "text";
  }

  .nb-ai-list {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    grid-template-rows: none;
  }
}

@media (max-width: 640px) {
  .nb-ai-section,
  .nb-ai-cta {
    padding: 52px 0;
  }

  .nb-ai-lead {
    font-size: 1.08em;
  }

  .nb-ai-feature {
    padding: 24px;
  }
}

.nb-software-page section,
.nb-software-page #fm-webpunch {
  scroll-margin-top: 96px;
}

.nb-software-index {
  padding-bottom: 84px;
  padding-top: 54px;
}

.nb-software-card-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0;
}

.nb-software-card-grid::before,
.nb-software-card-grid::after {
  content: none !important;
  display: none !important;
}

.nb-software-card {
  background: #fff;
  border: 1px solid #e3ebf0;
  border-radius: 6px;
  box-shadow: 0 14px 36px rgba(35, 45, 55, 0.08);
  color: #555;
  display: flex;
  flex-direction: column;
  min-height: 330px;
  padding: 28px;
  text-decoration: none;
  transition: box-shadow 180ms ease, transform 180ms ease;
}

.nb-software-card:hover,
.nb-software-card:focus {
  box-shadow: 0 18px 42px rgba(35, 45, 55, 0.14);
  color: #555;
  transform: translateY(-3px);
}

.nb-software-logo-wrap {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-bottom: 28px;
}

.nb-software-logo {
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  width: 100%;
}

.nb-software-card h3 {
  color: #2f353a;
  font-size: 1.45rem;
  margin: 0 0 12px;
}

.nb-software-card p {
  line-height: 1.55;
  margin: 0;
}

.nb-software-link {
  color: #03a9f4;
  font-weight: 700;
  margin-top: auto;
  padding-top: 24px;
}

.nb-software-heading {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 46px;
  text-align: center;
}

.nb-software-detail-logo,
.nb-software-section-logo {
  display: block;
  height: auto;
  max-width: 450px;
  object-fit: contain;
  width: 100%;
}

.nb-software-heading h2 {
  margin-bottom: 0;
}

.nb-routepro-note {
  color: #66727a;
  font-size: 0.95em;
  line-height: 1.45;
  margin: 14px auto 0;
  max-width: 720px;
  text-align: center;
}

.nb-routepro-note a {
  color: #03a9f4;
  font-weight: 700;
  text-decoration: none;
}

.nb-routepro-note a:hover,
.nb-routepro-note a:focus {
  text-decoration: underline;
}

.nb-software-section-logo {
  margin: 0 auto 24px;
}

.nb-software-media-stack {
  display: grid;
  gap: 22px;
}

.nb-software-video {
  background: #111;
  border-radius: 6px;
  box-shadow: 0 18px 48px rgba(30, 45, 60, 0.16);
  display: block;
  width: 100%;
}

.nb-software-demo {
  margin: 56px auto 0;
  max-width: 980px;
}

.nb-software-demo-copy {
  margin: 0 auto 30px;
  max-width: 760px;
  text-align: left;
}

.nb-software-demo-copy h3 {
  margin-top: 0;
}

.nb-software-demo-conclusion {
  color: #2f353a;
  font-size: 1.25em;
  font-weight: 700;
  margin-top: 22px;
  text-align: center;
}

.nb-software-demo-video-wrap {
  margin: 0 auto;
  max-width: 980px;
}

.nb-software-demo-video {
  margin: 0 auto;
}

.nb-software-list {
  display: grid;
  gap: 12px;
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}

.nb-software-list li {
  line-height: 1.5;
  padding-left: 28px;
  position: relative;
}

.nb-software-list li::before {
  color: #4caf50;
  content: "\f058";
  font-family: FontAwesome;
  left: 0;
  position: absolute;
  top: 1px;
}

.nb-software-feature-grid {
  display: grid;
  gap: 24px;
  grid-auto-flow: row;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 44px;
}

.nb-software-feature-grid::before,
.nb-software-feature-grid::after {
  content: none !important;
  display: none !important;
}

.nb-software-feature {
  background: #fff;
  border: 1px solid #e3ebf0;
  border-radius: 6px;
  min-width: 0;
  padding: 28px;
}

.nb-software-feature .fa {
  color: #4caf50;
  font-size: 28px;
  margin-bottom: 14px;
}

.nb-software-feature h3 {
  font-size: 1.35rem;
  margin: 0 0 12px;
}

.nb-software-feature p {
  margin-bottom: 0;
}

.nb-software-route-secondary {
  margin-top: 58px;
}

#fm-routepro .nb-ai-two-col {
  grid-template-columns: minmax(0, 1fr) minmax(350px, 540px);
}

#fm-routepro .nb-ai-two-col.nb-ai-reverse {
  grid-template-columns: minmax(350px, 540px) minmax(0, 1fr);
}

@media (max-width: 900px) {
  .nb-software-card-grid,
  .nb-software-feature-grid {
    grid-template-columns: 1fr;
  }

  #fm-routepro .nb-ai-two-col,
  #fm-routepro .nb-ai-two-col.nb-ai-reverse {
    grid-template-columns: 1fr;
  }

  .nb-software-card {
    min-height: 0;
  }

  .nb-software-detail-logo {
    max-width: 450px;
  }
}

@media (max-width: 640px) {
  .nb-software-card,
  .nb-software-feature {
    padding: 24px;
  }

  .nb-software-logo-wrap {
    height: auto;
  }

  .nb-software-detail-logo,
  .nb-software-section-logo {
    width: 100%;
  }
}
