/* Consistent layout for CMS-backed solution detail pages. */
body.cms-solution-detail {
  overflow-x: clip;
}

.cms-solution-detail-content > .elementor {
  width: 100%;
  margin-inline: auto;
}

.cms-solution-detail-content > .elementor > .elementor-top-section {
  box-sizing: border-box;
  padding-block: clamp(54px, 7vw, 104px);
}

.cms-solution-detail-content > .elementor > .elementor-top-section > .elementor-container {
  width: min(1280px, calc(100% - 64px));
  max-width: 1280px;
  margin-inline: auto;
  align-items: center;
  gap: clamp(28px, 4vw, 64px);
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-column {
  min-width: 0;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-wrap {
  align-content: center;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-heading-title {
  color: #202a39;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.16;
}

.cms-solution-detail-content > .elementor > .elementor-top-section h2.elementor-heading-title {
  margin: 0 0 20px;
  font-size: clamp(30px, 3.1vw, 44px);
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-text-editor,
.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-text-editor p {
  color: #505b69;
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.75;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}

.cms-solution-detail-content > .elementor > .elementor-top-section:first-of-type > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-text-editor {
  max-width: 860px;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
}

/* Keep the shared decorative dot graphic consistent across solution pages.
   Match this asset specifically so featured and content images keep their layout. */
.cms-solution-detail-content img[src*="Shape-dots-arrow-right-1.svg"] {
  display: block;
  width: min(450px, 100%) !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-wrapper {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 14px;
  text-align: left;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-icon {
  flex: 0 0 auto;
  margin: 2px 0 0;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-icon .elementor-icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  color: #fff;
  fill: #fff;
  background: #1755a6;
  border-radius: 50%;
  font-size: 18px;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-icon svg {
  width: 20px;
  height: 20px;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-title {
  margin: 0 0 8px;
  color: #202a39;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 700;
  line-height: 1.3;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-icon-box-description {
  color: #566171;
  font-size: 16px;
  line-height: 1.6;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-button {
  min-height: 48px;
  padding: 14px 24px;
  border-radius: 5px;
  background: #0755aa;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: background-color .2s ease, transform .2s ease;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-button:hover {
  transform: translateY(-1px);
  background: #063f82;
}

.cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(even) {
  background: #f5f7fb;
}

.cms-solution-detail-content > .elementor > .elementor-top-section.elementor-section-boxed > .elementor-container {
  width: min(1280px, calc(100% - 64px));
}

@media (max-width: 767px) {
  .cms-solution-detail-content > .elementor > .elementor-top-section {
    padding-block: 48px;
  }

  .cms-solution-detail-content > .elementor > .elementor-top-section > .elementor-container {
    width: calc(100% - 40px);
    flex-wrap: wrap;
    gap: 24px;
  }

  .cms-solution-detail-content > .elementor > .elementor-top-section > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }

  .cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-wrap {
    padding-inline: 0;
  }

  .cms-solution-detail-content > .elementor > .elementor-top-section h2.elementor-heading-title {
    font-size: 30px;
  }

  .cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-text-editor,
  .cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-text-editor p {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cms-solution-detail-content > .elementor > .elementor-top-section .elementor-button {
    transition: none;
  }
}

/* Restore the empty right-hand image panels from the original solution
   layouts. Each solution keeps its own service-specific visual. */
.cms-solution-detail-content > .elementor > .elementor-top-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
  min-width: 0;
}

.cms-solution-emerging-technology-solutions .elementor-element-3df32b92 > .elementor-container > .elementor-column:first-child,
.cms-solution-hardware-and-infrastructure-solutions .elementor-element-23ad3669 > .elementor-container > .elementor-column:first-child,
.cms-solution-business-intelligence-data-analytics .elementor-element-288f47aa > .elementor-container > .elementor-column:first-child,
.cms-solution-cybersecurity-data-protection .elementor-element-5a2fe3de > .elementor-container > .elementor-column:first-child,
.cms-solution-it-consulting-advisory .elementor-element-4b5d37ad > .elementor-container > .elementor-column:first-child,
.cms-solution-managed-it-network-services .elementor-element-2dbbabe > .elementor-container > .elementor-column:first-child,
.cms-solution-cloud-hosting-solutions .elementor-element-9bc80d1 > .elementor-container > .elementor-column:first-child,
.cms-solution-software-web-development .elementor-element-3b34ee31 > .elementor-container > .elementor-column:first-child {
  width: auto !important;
  max-width: none !important;
  flex: 1.2 1 0 !important;
}

.cms-solution-emerging-technology-solutions .elementor-element-3df32b92 > .elementor-container > .elementor-column:last-child,
.cms-solution-hardware-and-infrastructure-solutions .elementor-element-23ad3669 > .elementor-container > .elementor-column:last-child,
.cms-solution-business-intelligence-data-analytics .elementor-element-288f47aa > .elementor-container > .elementor-column:last-child,
.cms-solution-cybersecurity-data-protection .elementor-element-5a2fe3de > .elementor-container > .elementor-column:last-child,
.cms-solution-it-consulting-advisory .elementor-element-4b5d37ad > .elementor-container > .elementor-column:last-child,
.cms-solution-managed-it-network-services .elementor-element-2dbbabe > .elementor-container > .elementor-column:last-child,
.cms-solution-cloud-hosting-solutions .elementor-element-9bc80d1 > .elementor-container > .elementor-column:last-child,
.cms-solution-software-web-development .elementor-element-3b34ee31 > .elementor-container > .elementor-column:last-child {
  width: auto !important;
  max-width: none !important;
  flex: 0.8 1 0 !important;
}

.cms-solution-detail-content > .elementor > .elementor-top-section h3.elementor-heading-title {
  margin-block: 0 8px;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-heading {
  margin-block-end: 0 !important;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-heading + .elementor-widget-text-editor {
  margin-block-start: 0 !important;
}

.cms-solution-detail-content > .elementor > .elementor-top-section .elementor-widget-heading + .elementor-widget-text-editor p:first-child {
  margin-block-start: 0;
}

.cms-solution-emerging-technology-solutions .elementor-element-3df32b92 > .elementor-container,
.cms-solution-hardware-and-infrastructure-solutions .elementor-element-23ad3669 > .elementor-container,
.cms-solution-business-intelligence-data-analytics .elementor-element-288f47aa > .elementor-container,
.cms-solution-cybersecurity-data-protection .elementor-element-5a2fe3de > .elementor-container,
.cms-solution-it-consulting-advisory .elementor-element-4b5d37ad > .elementor-container,
.cms-solution-managed-it-network-services .elementor-element-2dbbabe > .elementor-container,
.cms-solution-cloud-hosting-solutions .elementor-element-9bc80d1 > .elementor-container,
.cms-solution-software-web-development .elementor-element-3b34ee31 > .elementor-container {
  align-items: stretch;
  gap: clamp(28px, 4vw, 64px);
}

.cms-solution-emerging-technology-solutions .elementor-element-4556fe8d > .elementor-widget-wrap,
.cms-solution-hardware-and-infrastructure-solutions .elementor-element-55c257f6 > .elementor-widget-wrap,
.cms-solution-business-intelligence-data-analytics .elementor-element-5af171ce > .elementor-widget-wrap,
.cms-solution-cybersecurity-data-protection .elementor-element-514f8dd4 > .elementor-widget-wrap,
.cms-solution-it-consulting-advisory .elementor-element-6731c343 > .elementor-widget-wrap,
.cms-solution-managed-it-network-services .elementor-element-eb47bab > .elementor-widget-wrap,
.cms-solution-cloud-hosting-solutions .elementor-element-7c32a5a0 > .elementor-widget-wrap,
.cms-solution-software-web-development .elementor-element-2867153c > .elementor-widget-wrap {
  min-height: clamp(440px, 46vw, 640px);
  padding: 0 !important;
  overflow: hidden;
  border-radius: 12px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* Keep the feature lists in each solution's follow-up section on one shared
   rhythm. Some imported Elementor pages had percentage-based spacing, while
   others had no separation at all. */
body.cms-solution-detail .cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(n + 2):has(.elementor-icon-box-wrapper) .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-icon-box) > .elementor-element-populated {
  margin-block: 0 !important;
  margin-inline: 0 !important;
}

body.cms-solution-detail .cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(n + 2):has(.elementor-icon-box-wrapper) .elementor-widget-icon-box {
  margin-block-end: 0 !important;
}

body.cms-solution-detail .cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(n + 2):has(.elementor-icon-box-wrapper) .elementor-widget-icon-box > .elementor-widget-container {
  padding: 24px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #d9dee7 !important;
}

body.cms-solution-detail .cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(n + 2):has(.elementor-icon-box-wrapper) .elementor-column .elementor-widget-icon-box:last-child > .elementor-widget-container {
  border-bottom: 0 !important;
}

/* The software page's secondary image was an empty background column whose
   only content was a 50px spacer. Restore the intended text-left, image-right
   composition and give the image a real display height. */
.cms-solution-software-web-development .elementor-element-97af9a7 > .elementor-container {
  align-items: center;
}

.cms-solution-software-web-development .elementor-element-97af9a7 > .elementor-container > .elementor-column:first-child {
  order: 2;
  width: auto !important;
  max-width: none !important;
  flex: 0.9 1 0 !important;
}

.cms-solution-software-web-development .elementor-element-97af9a7 > .elementor-container > .elementor-column:last-child {
  order: 1;
  width: auto !important;
  max-width: none !important;
  flex: 1.1 1 0 !important;
}

.cms-solution-software-web-development .elementor-element-97af9a7 .elementor-element-690bb94a > .elementor-widget-wrap {
  min-height: clamp(380px, 38vw, 520px);
  padding: 0 !important;
  overflow: hidden;
  border-radius: 12px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.cms-solution-software-web-development .elementor-element-97af9a7 .elementor-element-690bb94a .elementor-widget-spacer {
  display: none;
}

.cms-solution-software-web-development .elementor-element-97af9a7 .elementor-element-7fc9e81a > .elementor-element-populated {
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 767px) {
  body.cms-solution-detail .cms-solution-detail-content > .elementor > .elementor-top-section:nth-of-type(n + 2):has(.elementor-icon-box-wrapper) .elementor-widget-icon-box > .elementor-widget-container {
    padding-block: 20px !important;
  }

  .cms-solution-software-web-development .elementor-element-97af9a7 .elementor-element-690bb94a > .elementor-widget-wrap {
    min-height: 340px;
  }
}

.cms-solution-emerging-technology-solutions .elementor-element-4556fe8d > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/emerging-technology.jpg");
}
.cms-solution-hardware-and-infrastructure-solutions .elementor-element-55c257f6 > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/hardware-infrastructure.jpg");
}
.cms-solution-business-intelligence-data-analytics .elementor-element-5af171ce > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/business-intelligence.jpg");
}
.cms-solution-cybersecurity-data-protection .elementor-element-514f8dd4 > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/cybersecurity.jpg");
}
.cms-solution-it-consulting-advisory .elementor-element-6731c343 > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/it-consulting.jpg");
}
.cms-solution-managed-it-network-services .elementor-element-eb47bab > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/managed-it-network.jpg");
}
.cms-solution-cloud-hosting-solutions .elementor-element-7c32a5a0 > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/cloud-hosting.jpg");
}
.cms-solution-software-web-development .elementor-element-2867153c > .elementor-widget-wrap {
  background-image: url("../uploads/2026/10/solution-panels/software-development.jpg") !important;
}

/* The review carousel is reused across solution detail pages. Tighten both
   transitions so the slider does not float far from the surrounding content. */
body.cms-solution-detail:has(section.elementor-element-1b35929f) section.elementor-element-1b35929f {
  margin-top: 32px !important;
  margin-bottom: 0 !important;
}

body.cms-solution-detail:has(section.elementor-element-1b35929f) .cms-contact-section {
  margin-top: 20px !important;
}

body.cms-solution-detail:has(section.elementor-element-1b35929f) section.elementor-element-2422c17 {
  margin-top: 24px !important;
}

@media (max-width: 1024px) {
  .cms-solution-emerging-technology-solutions .elementor-element-4556fe8d > .elementor-widget-wrap,
  .cms-solution-hardware-and-infrastructure-solutions .elementor-element-55c257f6 > .elementor-widget-wrap,
  .cms-solution-business-intelligence-data-analytics .elementor-element-5af171ce > .elementor-widget-wrap,
  .cms-solution-cybersecurity-data-protection .elementor-element-514f8dd4 > .elementor-widget-wrap,
  .cms-solution-it-consulting-advisory .elementor-element-6731c343 > .elementor-widget-wrap,
  .cms-solution-managed-it-network-services .elementor-element-eb47bab > .elementor-widget-wrap,
  .cms-solution-cloud-hosting-solutions .elementor-element-7c32a5a0 > .elementor-widget-wrap,
  .cms-solution-software-web-development .elementor-element-2867153c > .elementor-widget-wrap {
    min-height: 460px;
  }
}

@media (max-width: 767px) {
  .cms-solution-emerging-technology-solutions .elementor-element-4556fe8d > .elementor-widget-wrap,
  .cms-solution-hardware-and-infrastructure-solutions .elementor-element-55c257f6 > .elementor-widget-wrap,
  .cms-solution-business-intelligence-data-analytics .elementor-element-5af171ce > .elementor-widget-wrap,
  .cms-solution-cybersecurity-data-protection .elementor-element-514f8dd4 > .elementor-widget-wrap,
  .cms-solution-it-consulting-advisory .elementor-element-6731c343 > .elementor-widget-wrap,
  .cms-solution-managed-it-network-services .elementor-element-eb47bab > .elementor-widget-wrap,
  .cms-solution-cloud-hosting-solutions .elementor-element-7c32a5a0 > .elementor-widget-wrap,
  .cms-solution-software-web-development .elementor-element-2867153c > .elementor-widget-wrap {
    min-height: 340px;
  }
}
/* Keep carousel arrow icons precisely centered inside their circular controls. */
.cms-shared-testimonials .elementor-swiper-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  padding: 0 !important;
  line-height: 0 !important;
  text-align: center !important;
}

.cms-shared-testimonials .elementor-swiper-button > svg {
  position: static !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: 15px !important;
  height: 15px !important;
  margin: 0 !important;
  transform: none !important;
}

/* Normalize the CMS first-section offset across every Solution detail page. */
.cms-solution-detail-content > .elementor > .elementor-top-section:first-of-type {
  margin-top: 0 !important;
  margin-block-start: 0 !important;
}

.cms-solution-detail-content > .elementor > .elementor-top-section:first-of-type > .elementor-container {
  align-items: flex-start !important;
}

.cms-solution-detail-content > .elementor > .elementor-top-section:first-of-type .elementor-widget-wrap {
  align-content: flex-start !important;
}

/* Imported Elementor pages used percentage top margins on the first row's
   columns, pushing the content down by different amounts. Keep the first
   section aligned consistently with the shared section padding. */
.cms-solution-detail-content > .elementor > .elementor-top-section:first-of-type > .elementor-container > .elementor-column > .elementor-element-populated {
  margin-top: 0 !important;
  margin-block-start: 0 !important;
}

/* The imported Software & Web Development page has oversized Elementor
   section margins and padding. Compact its section rhythm without changing
   the other solution pages or requiring CMS content edits. */
body.cms-solution-software-web-development .cms-solution-detail-content > .elementor > .elementor-top-section {
  margin-block: 0 !important;
  padding-block: clamp(32px, 4vw, 56px) !important;
}

/* This imported section places the dot ornament above its heading. Its
   original percentage margins pull the ornament over the heading at desktop
   widths, so restore normal flow and leave a clear gap beneath it. */
body.cms-solution-software-web-development .cms-solution-detail-content .elementor-element-5be8b048 .elementor-element-530a242b > .elementor-widget-container {
  margin: 0 0 28px !important;
}

body.cms-solution-software-web-development .cms-solution-detail-content .elementor-element-5be8b048 .elementor-element-530a242b img {
  width: min(450px, 100%) !important;
}

@media (max-width: 767px) {
  body.cms-solution-software-web-development .cms-solution-detail-content > .elementor > .elementor-top-section {
    padding-block: 28px !important;
  }
}

/* The fixed flex splits above (1.2/0.8, 0.9/1.1, 0.9/1.1) are each scoped to
   one page's slug + one Elementor element ID. Chasing that same pattern with
   an equally page-specific mobile override (first a plain reset, then an
   :is(:first-child, :last-child) version) turned into exactly the kind of
   per-page, per-Elementor-ID whack-a-mole this stylesheet exists to avoid,
   and it kept missing pages. This rule is deliberately generic instead: it
   doesn't name a slug or an element ID at all, so it is automatically shared
   by every current and future solution page that has a two-column top
   section, with no per-page list to maintain. To beat the specific desktop
   rules above outright (not rely on a source-order tie), the shared ancestor
   class is repeated, which is valid CSS and raises the class-tier
   specificity well past theirs without naming anything page-specific. */
@media (max-width: 767px) {
  .cms-solution-detail-content.cms-solution-detail-content.cms-solution-detail-content.cms-solution-detail-content
    > .elementor > .elementor-top-section > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    order: 0 !important;
  }
}
