/* Approved site-wide typography and outer container system. */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-sans/plus-jakarta-sans-latin-variable.woff2") format("woff2");
}
:root {
  --site-font: "Plus Jakarta Sans", Arial, sans-serif;
  --site-container: 1600px;
  --site-gutter: clamp(16px, 2.5vw, 40px);
}
html body,
body .migrated-page,
body .migrated-page :is(div, section, article, aside, header, footer, nav, main, h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label, li, dt, dd, blockquote, figcaption, table, th, td, summary, small, strong, em),
body .migrated-page span:not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab):not([class*="eicon"]):not([class*="iconfont"]) {
  font-family: var(--site-font) !important;
}
body .migrated-page :is(h1,h2,h3,h4,h5,h6,p,a,button,label,li) {
  word-break: normal;
  overflow-wrap: break-word;
}
html body :is(h1,h2,h3),
html body :is(h1,h2,h3) *,
html body .migrated-page :is(h1,h2,h3),
html body .migrated-page :is(h1,h2,h3) * {
  font-weight: 800 !important;
}
body .migrated-page main h1 {
  font-size: clamp(30px, 3.1vw, 56px) !important;
  line-height: 1.18 !important;
}
body .migrated-page main h2 {
  font-size: clamp(26px, 2.35vw, 44px) !important;
  line-height: 1.25 !important;
}
body .migrated-page main h3 {
  font-size: clamp(21px, 1.65vw, 30px) !important;
  line-height: 1.35 !important;
}
body .migrated-page main p {
  font-size: clamp(16px, .95vw, 18px);
  line-height: 1.65;
}
body .migrated-page :is(button, input, select, textarea) {
  max-width: 100%;
}
/* A definite widget width lets percentage-width images contribute their true
   height to flex layout. Explicitly sized and positioned widgets keep theirs. */
body .migrated-page main .migrated-widget-image:not(.migrated-widget__width-initial):not(.migrated-widget__width-auto):not(.migrated-absolute) {
  width: 100%;
}
body .migrated-page :is(button, .migrated-button) {
  min-height: 44px;
  line-height: 1.4;
}
body .migrated-page .e-con.e-parent.e-con-boxed > .e-con-inner,
body .migrated-page .header-containers > .e-con-inner,
body .migrated-page .id-blog-wrap,
body .migrated-page .id-schedule-container {
  max-width: min(var(--site-container), calc(100vw - 2 * var(--site-gutter))) !important;
  min-width: 0;
  margin-inline: auto;
}
body .migrated-page .e-con.e-parent.e-con-boxed {
  --container-max-width: var(--site-container);
  --content-width: var(--site-container);
}
body .secondary-service-page :is([class*="max-w-[90%]"], .container, .max-w-7xl) {
  width: min(100%, calc(100vw - 2 * var(--site-gutter)));
  max-width: var(--site-container) !important;
  margin-inline: auto;
}
body .migrated-page[data-source-path="/"] .green-position[data-id] h1 {
  font-size: clamp(30px, 2.2vw, 42px) !important;
  line-height: 1.22 !important;
}
body .migrated-page .sitekit-navbar-nav > li > a {
  white-space: nowrap;
}
@media (min-width: 1025px) {
  body .migrated-page .header-containers [data-id="29c3b1be"] {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    gap: clamp(12px, 1.2vw, 24px) !important;
    width: 100% !important;
    min-height: 64px;
    padding: 8px clamp(12px, 1.25vw, 20px) !important;
  }
  body .migrated-page .header-containers [data-id="29c3b1be"] > .e-con {
    min-width: 0;
    width: auto !important;
    margin: 0 !important;
  }
  body .migrated-page .header-containers [data-id="4eeda28c"] img {
    width: clamp(110px, 8vw, 145px) !important;
    max-width: 100%;
    height: auto !important;
  }
  body .migrated-page .header-containers [data-id="4128428c"] {
    flex-direction: row !important;
    align-items: center;
    gap: clamp(12px, 1.2vw, 24px) !important;
  }
  body .migrated-page .header-containers [data-id="4128428c"] a { white-space: nowrap; }
  body .migrated-page .header-containers .getintouch { width: auto !important; min-width: 120px; }
  body .migrated-page .header-containers .sitekit-navbar-nav { display: flex !important; flex-wrap: nowrap !important; justify-content: center; }
  body .migrated-page .header-containers .sitekit-navbar-nav > li { flex: 0 0 auto; width: auto; }
}
/* Portfolio mockups are translated below their flow box. Reserve that offset
   and keep the widget at its actual image height, rather than covering copy. */
body .migrated-page[data-source-path="/portfolio"] .position-relative {
  height: auto !important;
  max-height: none !important;
}
body .migrated-page[data-source-path="/portfolio"] .position-relative .migrated-widget-image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  flex-shrink: 0;
  margin-bottom: max(0px, var(--e-transform-translateY, 0px)) !important;
}
@media (min-width: 1025px) and (max-width: 1439px) {
  body .migrated-page .sitekit-navbar-nav > li > a {
    font-size: 14px !important;
    padding-inline: clamp(8px, .9vw, 13px) !important;
  }
  body .migrated-page .header-containers .getintouch a {
    font-size: 14px !important;
    padding-inline: 20px !important;
  }
}
@media (max-width: 767px) {
  body .migrated-page main h1 { font-size: clamp(28px, 7vw, 36px) !important; }
  body .migrated-page main h2 { font-size: clamp(24px, 6vw, 30px) !important; }
  body .migrated-page main h3 { font-size: clamp(20px, 5vw, 25px) !important; }
  body .migrated-page main p { font-size: 16px; line-height: 1.65; }
  body .migrated-page :is(.migrated-widget-container, .e-con, .e-con-inner) { min-width: 0; }
  body .migrated-page .sitekit-menu-container a { white-space: normal; }
  body .migrated-page :is(input, select, textarea) { font-size: 16px; }
}
@media (max-width: 1024px) {
  html body .migrated-page[data-source-path] .header-containers .migrated-element.migrated-widget-ekit-nav-menu #ekit-megamenu-menu.sitekit-menu-container.sitekit-menu-offcanvas-elements {
    padding: 0 0 calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    scroll-padding-top: 118px;
    scroll-padding-bottom: 88px;
    isolation: isolate;
  }
  html body .migrated-page[data-source-path] .header-containers .migrated-element.migrated-widget-ekit-nav-menu #ekit-megamenu-menu.sitekit-menu-container.sitekit-menu-offcanvas-elements > .sitekit-nav-identity-panel {
    top: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 25px 24px !important;
    background: #202020 !important;
    z-index: 1001 !important;
  }
  html body .migrated-page[data-source-path] .header-containers .migrated-element.migrated-widget-ekit-nav-menu #ekit-megamenu-menu.sitekit-menu-container.sitekit-menu-offcanvas-elements > .sitekit-navbar-nav {
    width: 100% !important;
    padding-inline: 17px !important;
  }
  body .migrated-page[data-source-path="/"] .home-container-sty {
    --min-height: 0;
    --padding-top: 20px;
    --padding-right: 20px;
    --padding-bottom: 20px;
    --padding-left: 20px;
    height: 100% !important;
    min-height: 0 !important;
    padding: 20px !important;
  }
  body .migrated-page[data-source-path="/"] .home-container-sty .homecard-bottom {
    height: auto !important;
    min-height: 0 !important;
    flex-grow: 0;
    transform: none !important;
  }
  /* The imported hero stretched a landscape image to 100% x 100% on phones. */
  body .secondary-service-page[data-secondary-path="/mobile-game-development"] > div:first-of-type > div:first-of-type {
    height: auto !important;
    min-height: 0;
    background-size: 100% auto !important;
    background-repeat: no-repeat;
    background-position: center bottom;
    padding-bottom: clamp(180px, 52vw, 420px);
  }
}
.site-chat-launcher {
  position: fixed;
  right: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 2147483000;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #06f;
  color: #fff;
  box-shadow: 0 3px 14px #0003;
  cursor: pointer;
}
.site-chat-launcher:focus-visible { outline: 3px solid #00ce44; outline-offset: 4px; }
html:not([data-chat-open="true"]) #chat-widget-container {
  visibility: hidden !important;
  pointer-events: none !important;
}
@media (min-width: 768px) and (max-width: 1024px) {
  body .migrated-page[data-source-path="/"] [data-id="17188440"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body .migrated-page[data-source-path="/"] [data-id="17188440"] > .home-container-sty:last-child {
    grid-column: 1 / -1;
  }
}

/* Fluid outer containers: laptop up to 1440px, larger desktops up to 1600px. */
@media (min-width: 1025px) and (max-width: 1599px) {
  :root { --site-container: 1440px; }
}
html body .migrated-page .e-con.e-parent.e-con-boxed > .e-con-inner {
  width: 100% !important;
  --container-max-width: var(--site-container) !important;
}

/* Inner-page H1 specification; the homepage retains its approved typography. */
html body .migrated-page[data-source-path]:not([data-source-path="/"]) main h1,
html body .migrated-page[data-source-path]:not([data-source-path="/"]) main h1 * {
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}
:root { --site-icon-size: 45px; }
html body .migrated-page img[data-standard-icon="true"],
html body .migrated-page main .migrated-icon-box-icon .migrated-icon,
html body .migrated-page main .migrated-widget-icon > .migrated-widget-container > .migrated-icon-wrapper > .migrated-icon {
  width: var(--site-icon-size) !important;
  height: var(--site-icon-size) !important;
  min-width: var(--site-icon-size);
  max-width: var(--site-icon-size) !important;
  object-fit: contain !important;
  flex: 0 0 auto;
}
html body .migrated-page main .migrated-icon-box-icon .migrated-icon svg { width: 100%; height: 100%; }
/* Global-client logos retain their proportions and wrap rather than overflow. */
html body .migrated-page main .e-con:has(> .globle-logo),
html body .migrated-page main .e-con-inner:has(> .globle-logo) {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(16px, 2vw, 32px) !important;
  width: 100% !important;
  min-width: 0;
}
html body .migrated-page main .globle-logo {
  flex: 0 1 140px !important;
  width: clamp(80px, 10vw, 140px) !important;
  min-width: 0 !important;
  max-width: 140px !important;
  height: auto !important;
  margin: 0 !important;
}
html body .migrated-page main .globle-logo img {
  width: 100% !important; height: auto !important; max-height: 140px; object-fit: contain !important;
}
@media (max-width: 767px) {
  :root { --site-icon-size: 30px; }
  html body .migrated-page main .globle-logo { flex-basis: 80px !important; max-width: 90px !important; }
}

/* Review marks in banners stay together, including narrow phone layouts. */
html body .migrated-page main .e-con:has(> .migrated-widget-image img[alt*="Review Badge"]) {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
  align-items: center !important; justify-content: flex-start !important;
  gap: clamp(8px, 1.5vw, 24px) !important; min-width: 0;
}
html body .migrated-page main .e-con:has(> .migrated-widget-image img[alt*="Review Badge"]) > .migrated-widget-image {
  flex: 0 1 150px !important; width: calc((100% - 32px) / 3) !important;
  min-width: 0 !important; margin: 0 !important;
}
html body .migrated-page main .e-con:has(> .migrated-widget-image img[alt*="Review Badge"]) > .migrated-widget-image img {
  width: 100% !important; height: auto !important; max-height: 70px; object-fit: contain !important;
}
@media (max-width: 767px) {
  html body .migrated-page main .e-con.e-parent:not(.header-containers),
  html body .migrated-page main > section,
  html body .secondary-service-page > div:not(:first-of-type),
  html body .secondary-service-page > div:first-of-type > section,
  html body .secondary-service-page > div:first-of-type > div {
    --padding-top: 50px; --padding-bottom: 50px;
    padding-top: 50px !important; padding-bottom: 50px !important;
  }
}

/* Uniform client-logo tiles on every device; pictograms remain 45px/30px. */
html body .migrated-page main .e-con:has(> .migrated-widget-image img[data-client-logo="true"]),
html body .migrated-page main .e-con-inner:has(> .migrated-widget-image img[data-client-logo="true"]) {
  display: flex !important; flex-direction: row !important; flex-wrap: wrap !important;
  align-items: center !important; justify-content: center !important;
  gap: 20px !important; width: 100% !important; min-width: 0;
}
html body .migrated-page main .globle-logo,
html body .migrated-page main .migrated-widget-image:has(img[data-client-logo="true"]) {
  flex: 0 0 100px !important; width: 100px !important; height: 100px !important;
  min-width: 100px !important; max-width: 100px !important;
  min-height: 100px !important; max-height: 100px !important;
  margin: 0 !important; padding: 0 !important; align-self: center !important;
  display: flex !important; align-items: center; justify-content: center;
}
html body .migrated-page main .globle-logo img,
html body .migrated-page main img[data-client-logo="true"] {
  width: 100px !important; height: 100px !important;
  min-width: 100px !important; max-width: 100px !important; max-height: 100px !important;
  object-fit: contain !important; object-position: center; border-radius: 16px;
}
@media (max-width: 767px) {
  /* Boxed containers already pass padding variables to their inner wrapper. */
  html body .migrated-page main .e-con.e-parent.e-con-boxed > .e-con-inner {
    padding-top: 0 !important; padding-bottom: 0 !important;
  }
  html body .migrated-page main .e-con.e-parent {
    margin-top: max(0px, var(--margin-top, 0px)) !important;
    margin-bottom: max(0px, var(--margin-bottom, 0px)) !important;
  }
  /* Template-only wrappers do not create a second section's worth of spacing. */
  html body .migrated-page main .e-con.e-parent:has(> .migrated-widget-template:only-child) {
    --padding-top: 0px; --padding-bottom: 0px;
    padding-top: 0 !important; padding-bottom: 0 !important;
  }
}

html body .migrated-page main .globle-logo:hover,
html body .migrated-page main .migrated-widget-image:has(img[data-client-logo="true"]):hover { transform: translateY(-4px) !important; }

@media (max-width: 767px) { html body main.secondary-service-page { margin-top: 0 !important; } }

html body .secondary-service-page div:has(> img[data-client-logo="true"]) {
  display: flex !important; flex-direction: row !important; flex-wrap: wrap !important;
  align-items: center !important; justify-content: center !important; gap: 20px !important;
}
html body .secondary-service-page div:has(> div > img[alt^="review-"]) {
  display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
  align-items: center !important; gap: 12px !important;
}
html body .secondary-service-page div:has(> div > img[alt^="review-"]) > div {
  flex: 0 1 150px; min-width: 0;
}
html body .secondary-service-page img[alt^="review-"] { width: 100%; height: auto; object-fit: contain; }

/* Approved paragraph size on desktop, tablet and mobile. */
html body .migrated-page p,
html body .migrated-page p :is(span, a, strong, em, b, i) {
  font-size: 14px !important;
  line-height: 1.65;
}

/* Keep Schedule A Call labels vertically centered with even button padding. */
html body .migrated-page .openpop-shedule .migrated-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  min-height: 48px !important;
}

@media (max-width: 767px) {
  html body .migrated-page p,
  html body .migrated-page p :is(span, a, strong, em, b, i) {
    font-size: 14px !important;
  }
}

/* Consistent text-button spacing without enlarging icon-only controls. */
html body .migrated-page :is(a.migrated-button, button.migrated-button, button[type="submit"], input[type="submit"], .id-ios-next, .id-ios-back, .id-ios-send, .id-ios-download),
html body .secondary-service-page a[class*="bg-"],
html body .secondary-service-page button:not([aria-expanded]):not([aria-label]) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  padding: 12px 24px !important; min-height: 48px !important;
  box-sizing: border-box; max-width: 100%;
  line-height: 1.4 !important; text-align: center; white-space: normal;
  gap: 8px;
}

/* Web-app category cards: keep complete labels inside the interactive card. */
html body .migrated-page .cwa-v2-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html body .migrated-page .cwa-v2 .cwa-v2-card {
  min-width: 0 !important; height: auto !important; padding: 20px !important;
  white-space: normal !important; overflow: visible;
}
html body .migrated-page .cwa-v2-card-title {
  width: 100%; min-width: 0; max-width: 100%; white-space: normal !important;
  overflow-wrap: anywhere !important; word-break: normal;
  font-size: clamp(14px, 1.3vw, 20px) !important; line-height: 1.5 !important;
  height: auto;
}
html body .migrated-page .cwa-v2-icon { width: 45px; height: 45px; flex: 0 0 auto; }
html body .migrated-page .cwa-v2-icon svg { width: 100%; height: 100%; }
@media (max-width: 600px) {
  html body .migrated-page .cwa-v2-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 12px !important; }
  html body .migrated-page .cwa-v2 .cwa-v2-card {
    display: grid; grid-template-columns: 30px minmax(0, 1fr);
    align-items: center; column-gap: 14px; min-height: 80px !important;
  }
  html body .migrated-page .cwa-v2-card-title { margin-bottom: 0 !important; }
  html body .migrated-page .cwa-v2-icon { width: 30px; height: 30px; margin: 0; }
}

/* Approved cover crop applies only to the seven location-page hero banners. */
html body .migrated-page[data-source-path] main .hero-section-location.migrated-element[data-id="4f8c8f04"] {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* Use the supported flexible Turnstile size, with a full-width form row. */
html body .migrated-page [data-contact-verification],
html body .migrated-page .migrated-field-group:has([data-contact-verification]) {
  width: 100% !important; max-width: 100% !important; min-width: 0 !important;
  flex-basis: 100% !important; grid-column: 1 / -1; box-sizing: border-box;
}
html body .migrated-page [data-contact-verification][data-verification-size="compact"] {
  display: flex; justify-content: center;
}

/* Healthcare feature tabs retain a real tablist on phones and tablets. */
@media (max-width: 1024px) {
  html body .migrated-page .patient-tab .e-n-tabs {
    display: flex !important; flex-direction: column !important; width: 100%; min-width: 0; gap: 20px !important;
    --n-tabs-heading-display: flex; --n-tabs-content-display: block;
  }
  html body .migrated-page .patient-tab .e-n-tabs-heading {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
    width: 100% !important; max-width: 100% !important; min-width: 0 !important;
    overflow-x: auto !important; overflow-y: hidden !important;
    justify-content: flex-start !important; white-space: normal !important;
    padding: 4px !important; gap: 4px !important; margin: 0 !important;
    scrollbar-width: thin; scrollbar-color: #00ce44 transparent; scroll-padding-inline: 4px;
    overscroll-behavior-x: contain;
  }
  html body .migrated-page .patient-tab .e-n-tabs-heading [role="tab"] {
    flex: 0 0 auto !important; width: auto !important; min-width: 160px;
    max-width: 240px; min-height: 52px !important; margin: 0 !important;
    padding: 12px 16px !important; white-space: normal !important;
  }
  html body .migrated-page .patient-tab .e-n-tab-title-text {
    white-space: normal !important; overflow-wrap: break-word; font-size: 14px !important; line-height: 1.5;
  }
  html body .migrated-page .patient-tab .e-n-tabs-content { display: block !important; width: 100%; min-width: 0; }
  html body .migrated-page .patient-tab .e-n-tabs-content > [hidden] { display: none !important; }
  html body .migrated-page .patient-tab .e-n-tabs-content > .e-con:not([hidden]) { display: flex !important; width: 100%; }
}

html body .migrated-page [data-contact-verification] { min-height: 72px; }
html body .migrated-page [data-contact-verification][data-verification-size="compact"] { min-height: 140px; }

/* Headings scale with their text column, rather than the entire screen. */
html body .migrated-page :is(h1,h2,h3,h4,h5,h6) {
  max-width: 100%; min-width: 0; height: auto;
  white-space: normal !important; overflow-wrap: break-word;
  word-break: normal; text-wrap: pretty;
  line-height: 1.25 !important;
}
html body .migrated-page h2 { font-size: clamp(22px, 2.7vw, 40px) !important; }
html body .migrated-page h3 { font-size: clamp(18px, 2vw, 30px) !important; }
html body .migrated-page h4 { font-size: clamp(17px, 1.6vw, 24px) !important; }
html body .migrated-page :is(h5,h6) { font-size: clamp(16px, 1.3vw, 20px) !important; }
html body .migrated-page :is(h1,h2,h3,h4,h5,h6) :is(span,a,strong,b,em) {
  font-size: inherit !important; line-height: inherit !important;
  white-space: normal !important;
}
/* ResizeObserver supplies the resolved text width without size containment.
   Containment would erase intrinsic widths in the existing auto-track tables. */
html body .migrated-page .migrated-widget-heading h2 {
  font-size: clamp(18px, calc(10px + var(--heading-column-width, 600px) * .05), 30px) !important;
}
html body .migrated-page .migrated-widget-heading h3 {
  font-size: clamp(14px, calc(8px + var(--heading-column-width, 481px) * .045), 20px) !important;
}
html body .migrated-page .migrated-widget-heading h4 {
  font-size: clamp(17px, calc(8px + var(--heading-column-width, 400px) * .04), 24px) !important;
}

/* UX audit: percentage widths are redundant inside the five fixed grid tracks. */
@media (min-width: 1025px) {
  html body .migrated-page[data-source-path="/portfolio/pulse-check-timer"] [data-id="30bd76e"] > .e-con {
    width: 100% !important; min-width: 0;
  }
}
/* The source tablet hero had a -80px margin beneath a fixed 80px header. */
@media (min-width: 768px) and (max-width: 1024px) {
  html body .migrated-page[data-source-path="/mobile-app-development"] main [data-id="358a8ace"] {
    margin-top: 0 !important;
  }
}

/* Short tablet/phone landscapes cannot use the legacy negative page offset. */
@media (max-width: 1024px) and (max-height: 600px) {
  html body main.secondary-service-page { margin-top: 0 !important; }
}

/* User-approved desktop heading size; homepage and smaller devices retain their rules. */
@media (min-width: 1025px) {
  html body .migrated-page[data-source-path]:not([data-source-path="/"]) main h1,
  html body .migrated-page[data-source-path]:not([data-source-path="/"]) main h1 * {
    font-size: 20px !important; font-weight: 600 !important; line-height: 1.3 !important;
  }
}
:where(.migrated-page) .migrated-1414 .migrated-element.migrated-element-2cb4f8dd {
  column-gap: 0px; font-size: 18px; font-weight: 300; font-style: normal;
  line-height: 30px; color: var(--e-global-color-21e635e);
}
:where(.migrated-page) .migrated-1414 .migrated-element.migrated-element-31a23d0 {
  column-gap: 0px; font-size: 16px; font-weight: 300; font-style: normal; line-height: 30px;
}

/* User-approved compact H3 typography from phones through tablets. */
@media (max-width: 1024px) {
  html body .migrated-page h3,
  html body .migrated-page .migrated-widget-heading h3 {
    font-size: clamp(11px, 3vw, 18px) !important;
    line-height: 18px !important;
  }
}
/* Requested exception for this icon at laptop/tablet/mobile widths. */
@media (max-width: 1600px) {
  html body .migrated-page .migrated-1441 .migrated-element.migrated-element-f285168 img {
    width: 35px !important; height: 35px !important; object-fit: contain;
  }
}

/* Explicit user-approved fitness hero background crop. */
html body .migrated-page .migrated-15825 .migrated-element.migrated-element-30411462:not(.migrated-motion-effects-element-type-background) {
  background-color: var(--e-global-color-6dfe40b);
  background-image: url(/assets/pages/fitness-app-development/images/598e28c598-fitness-bg.webp) !important;
  background-position: top right !important;
  background-repeat: no-repeat !important;
  }
:where(.migrated-page) .migrated-1414 .migrated-element.migrated-element-2cb4f8dd,
:where(.migrated-page) .migrated-1414 .migrated-element.migrated-element-31a23d0 {
  font-family: "Plus Jakarta Sans", sans-serif;
}

html body .migrated-page .migrated-15825 .migrated-element.migrated-element-f557337:not(.migrated-motion-effects-element-type-background) {
  background-color: var(--e-global-color-6dfe40b);
  background-image: url(/assets/pages/fitness-app-development/images/45327a768f-cata-fitnese.webp) !important;
  background-position: right !important;
  background-repeat: no-repeat !important;
  }

/* Global cover override removed at the user's request: retain each original page background size. */
/* Sector pictograms use the same icon box as other service cards. */
html body .migrated-page .healthcare-sector > .migrated-widget-image img {
  width: var(--site-icon-size) !important; height: var(--site-icon-size) !important;
  object-fit: contain !important;
}
/* Keep the Schedule dialog close icon still on pointer hover. */
html body .migrated-page .schedule-popup-close,
html body .migrated-page .schedule-popup-close:hover,
html body .migrated-page .schedule-popup-close:focus-visible,
html body .migrated-page .schedule-popup-close:active,
html body .migrated-page .schedule-popup-close svg {
  transform: none !important;
}

html body .migrated-page .migrated-15825 .migrated-element.migrated-element-192867fe:not(.migrated-motion-effects-element-type-background) {
  background-image: url(/assets/pages/fitness-app-development/images/9898adab7e-health-banner.webp) !important;
  background-position: right !important;
  background-repeat: no-repeat !important;
  }

.shared-case-study-showcase { width: 100%; min-width: 0; max-width: 100%; }
/* The replacement has its own controls; hide only the old controls beside it. */
html body .secondary-service-page div:has(> [data-replaced-secondary-showcase="true"]) [data-secondary-arrow] {
  display: none !important;
}

/* Hide scrollbar chrome while preserving native wheel, touch and keyboard scroll. */
html, body, html body .migrated-page * {
  scrollbar-width: none !important;
  -ms-overflow-style: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
html body .migrated-page *::-webkit-scrollbar {
  display: none !important; width: 0 !important; height: 0 !important;
}
html body .migrated-page[data-source-path] .header-containers .migrated-element.migrated-widget-ekit-nav-menu #ekit-megamenu-menu.sitekit-menu-container.sitekit-menu-offcanvas-elements,
html body .migrated-page .patient-tab .e-n-tabs-heading {
  scrollbar-width: none !important;
}

/* Short screens: remove legacy negative hero offsets rather than clipping text. */
@media (max-height: 600px) {
  html body .migrated-page[data-source-path]:not([data-source-path="/"]) main > .page-content > .migrated > .e-con.e-parent:first-child {
    margin-top: max(0px, var(--margin-top, 0px)) !important;
    height: auto !important;
    min-height: 0 !important;
  }
}

/* Requested text-column sizing; retain the approved Plus Jakarta Sans. */
html body .migrated-page .migrated-7502 .migrated-element.migrated-element-8e494fd {
  --container-widget-width: 100%; --container-widget-flex-grow: 0;
  width: var(--container-widget-width, 100%); max-width: 100%; column-gap: 0px;
  text-align: start; font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 14px !important; font-weight: 300; font-style: normal; line-height: 23px !important;
}
html body .migrated-page .migrated-7502 .migrated-element.migrated-element-8e494fd p {
  font-size: 14px !important; line-height: 23px !important;
}

html body .migrated-page .migrated-9428 .migrated-element.migrated-element-fba177b:not(.migrated-motion-effects-element-type-background) {
  background-color: black !important;
  background-image: url(/assets/pages/leadership/images/7bfd9fcf23-9def1442811a69ec737a2e651265dfa95fbc3e40-optimized.webp) !important;
  background-position: right !important; background-repeat: no-repeat !important; }

/* Explicit user exception to the site-wide cover setting. */
html body .migrated-page .migrated-8991 .migrated-element.migrated-element-a474156:not(.migrated-motion-effects-element-type-background) {
 background-color: var(--e-global-color-6dfe40b);
 background-image: url(/assets/pages/real-estate-app-development-company/images/5e6863f6ab-3140fadc718ae6863059e860a79c897e25806e27-optimized.webp) !important;
 background-position: right bottom !important; background-repeat: no-repeat !important; background-size: contain !important;
}

/* Uniform content bounds also apply to boxed children inside full-width templates. */
html body .migrated-page .e-con.e-con-boxed > .e-con-inner {
  width: 100% !important;
  max-width: min(var(--site-container), calc(100vw - 2 * var(--site-gutter))) !important;
  min-width: 0; margin-inline: auto !important;
  --container-max-width: var(--site-container) !important;
}

/* User-approved square circular arrow controls; text CTAs retain their padding. */
html body .migrated-page :is(.migrated-swiper-button,.swiper-button-prev,.swiper-button-next),
html body .migrated-page [data-secondary-arrow]:not([aria-label^="Swipe"]) {
  width: 40px !important; height: 40px !important;
  min-width: 40px !important; max-width: 40px !important;
  min-height: 40px !important; max-height: 40px !important;
  border-radius: 50px !important; padding: 8px !important;
  box-sizing: border-box; display: inline-flex !important;
  align-items: center !important; justify-content: center !important;
  flex: 0 0 40px !important; line-height: 1 !important;
}
html body .migrated-page :is(.migrated-swiper-button,.swiper-button-prev,.swiper-button-next) svg,
html body .migrated-page [data-secondary-arrow]:not([aria-label^="Swipe"]) svg {
  width: 20px !important; height: 20px !important; flex: 0 0 20px;
}
html body .migrated-page #id-contact-popup button.id-cp__dot {
  width: 11px !important; height: 11px !important;
  min-width: 0 !important; min-height: 0 !important; max-height: 11px !important;
  padding: 0 !important; border-radius: 50% !important; flex: 0 0 11px;
}

/* Change the showcase artwork rules that were 80%; leave brand/store logos alone. */
html body .migrated-page [data-component="casestudy-slider-component"] :is([data-id="69f8e681"],[data-id="7c4f9343"],[data-id="398961ab"],[data-id="2a0b8fc1"],[data-id="5f867582"],[data-id="102fec5b"],[data-id="5281aa4a"],[data-id="445d2ff7"]) img { width: 60% !important; height: auto; }

/* User-approved question-title size, limited to FAQ controls. */
html body .migrated-page summary h3,
html body .migrated-page .e-n-accordion-item-title-text,
html body .migrated-page .schema-faq-question,
html body .migrated-page [data-secondary-faq],
html body .migrated-page .faq button,
html body .migrated-page .faq .faq-btn { font-size: clamp(15px, 1vw, 19px) !important; }

/* Footer copyright and legal/DMCA row, as requested. */
html body .migrated-page [data-id="2fa7507"] {
  justify-content: space-between !important;
  align-items: center !important;
}

/* Latest user specification: every H3 is 25px on every viewport. */
html body .migrated-page h3,
html body .migrated-page main h3,
html body .migrated-page .migrated-widget-heading h3,
html body .migrated-page summary h3,
html body .migrated-page h3.e-n-accordion-item-title-text,
html body .migrated-page :is(#id-contact-popup,#schedulePopup) h3 {
  font-size: 25px !important;
  line-height: 1.3 !important;
}

/* Managed case-study tracks must not inherit Elementor's clipped/gapped track. */
html body .migrated-page[data-source-path] .shared-case-study-showcase [data-component="casestudy-slider-component"] [data-managed-carousel] {
  width: 100% !important; max-width: 100% !important; min-width: 0;
  overflow: hidden !important;
}
html body .migrated-page[data-source-path] .shared-case-study-showcase [data-component="casestudy-slider-component"] [data-managed-carousel] > .swiper-wrapper {
  display: flex !important; flex-wrap: nowrap !important;
  gap: 0 !important; column-gap: 0 !important; row-gap: 0 !important;
  width: 100% !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important;
  overflow: visible !important; box-sizing: border-box;
}
html body .migrated-page[data-source-path] .shared-case-study-showcase [data-component="casestudy-slider-component"] .swiper-slide {
  flex: 0 0 100% !important; width: 100% !important;
  min-width: 0 !important; margin: 0 !important; height: auto !important;
}

/* User-requested compact labels for the mobile-app feature cards. */
html body .migrated-page[data-source-path="/mobile-app-development"] [data-id="6075cae0"] h3 {
  font-size: 14px !important; line-height: 1.35 !important;
}
html body .migrated-page[data-source-path="/mobile-app-development"] [data-id="6075cae0"] .e-con:has(> .migrated-widget-image-box) {
  padding: 10px !important; box-sizing: border-box;
}

/* Latest icon-size request: content pictograms use equal 35px boxes. */
:root { --site-icon-size: 35px; }
html body .migrated-page[data-source-path="/mobile-app-development"] [data-id="6075cae0"] .migrated-image-box-img img {
  width: 35px !important; height: 35px !important; object-fit: contain !important;
}

/* Generic image/blog carousels clip at the viewport, never at the moving track. */
html body .migrated-page .swiper:not([data-managed-carousel]),
html body .migrated-page .swiper-container:not([data-managed-carousel]) { overflow: hidden !important; }
html body .migrated-page .swiper:not([data-managed-carousel]) > .swiper-wrapper,
html body .migrated-page .swiper-container:not([data-managed-carousel]) > .swiper-wrapper {
  display: flex !important; flex-wrap: nowrap !important;
  width: 100% !important; min-width: 0 !important; overflow: visible !important;
}
/* Let desktop/tablet CTA labels keep their natural width and wrap the row instead. */
@media (min-width: 768px) {
  html body .migrated-page main .e-con:has(> .migrated-widget-button + .migrated-widget-button) { flex-wrap: wrap !important; }
  html body .migrated-page main .e-con > .migrated-widget-button {
    width: auto !important; max-width: 100%; flex: 0 0 auto !important;
  }
  html body .migrated-page main .migrated-widget-button .migrated-button {
    width: max-content !important; max-width: 100%; white-space: nowrap !important;
  }
}
