/* Loaded after the template styles so their fixed sizes do not win on mobile. */
.cm-inner-page :is(.cm-hero-grid, .cm-two-columns, .cm-workflow-row, .cm-reading-layout, .cm-featured-guide) > *,
.cm-directory-toolbar > *,
.cm-footer-bottom > * {
  min-width: 0;
}

.cm-language-switch {
  width: min(100%, 360px);
  margin-inline: auto;
}

.cm-language-switch button {
  min-width: 0;
  min-height: 44px;
}

.cm-inner-page .cm-table-wrap {
  max-width: 100%;
  overscroll-behavior-x: contain;
}

.cm-legal-page .cm-table-wrap .table {
  min-width: 700px;
  margin-bottom: 0;
}

@media (max-width: 1199px) {
  .theme-gradient .row > * {
    min-width: 0;
  }

  .theme-gradient .footer .cm-footer-lead {
    white-space: normal;
  }

  .cm-company-details {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 1024px) {
  .theme-gradient .cm-site-nav {
    --menu-bar-height: 76px;
    --menu-bar-height-scrolled: 64px;
    --cm-header-height: var(--menu-bar-height);
  }

  .theme-gradient .cm-site-nav.small-height {
    --cm-header-height: var(--menu-bar-height-scrolled);
  }

  .theme-gradient .cm-site-nav .main-nav-sub {
    align-items: center;
  }

  .theme-gradient .cm-site-nav .nav-logo-wrap {
    margin-right: 0 !important;
    padding-right: 0 !important;
  }

  .theme-gradient .cm-site-nav .mobile-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-width: 48px;
  }

  .theme-gradient .cm-site-nav .desktop-nav {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: auto;
    max-height: calc(100vh - var(--cm-header-height));
    max-height: calc(100dvh - var(--cm-header-height));
    padding: 8px 16px max(16px, env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    background: #121a2b;
    box-shadow: 0 18px 30px #163a7826;
    transition: none;
  }

  .theme-gradient .cm-site-nav .desktop-nav.js-opened {
    display: block !important;
  }

  .theme-gradient .cm-site-nav .desktop-nav ul {
    overflow: visible;
    background: transparent;
  }

  .theme-gradient .cm-site-nav .desktop-nav > ul.items-end {
    position: static;
    padding-top: 8px;
  }

  .theme-gradient .cm-site-nav .desktop-nav ul li {
    margin: 0 !important;
  }

  .theme-gradient .cm-site-nav .desktop-nav ul li a {
    min-height: 48px;
    padding: 14px 12px;
    white-space: normal;
    overflow-wrap: break-word;
  }

  .theme-gradient .cm-site-nav .desktop-nav .mn-has-sub {
    padding-right: 48px;
  }

  .theme-gradient .cm-site-nav .mn-sub.cm-menu,
  .theme-gradient .cm-site-nav .mn-sub.cm-mega {
    display: none;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: none;
    padding: 0 0 8px;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transition: none;
  }

  .theme-gradient .cm-site-nav .js-opened > .mn-sub.mobile-sub-active {
    display: block;
    max-height: none;
    opacity: 1;
  }

  .theme-gradient .cm-site-nav .cm-mega-grid {
    display: block;
    min-width: 0;
  }

  .theme-gradient .cm-site-nav .inner-nav .cm-mega-grid a,
  .theme-gradient .cm-site-nav .inner-nav ul li .mn-sub.cm-menu li a {
    padding: 14px 20px;
    color: #fff !important;
    background: transparent;
  }

  .theme-gradient .cm-site-nav .cm-mega-text {
    color: #bac5da;
  }

  .theme-gradient .cm-site-nav a:focus-visible,
  .theme-gradient .cm-site-nav button:focus-visible {
    outline: 2px solid #89b4ff;
    outline-offset: -3px;
  }
}

@media (max-width: 991px) {
  .theme-gradient .cm-hero {
    background-image: linear-gradient(#eef3fbeb, #eef3fbeb), url("/new_ui/hero_big.png");
    background-position: center;
  }

  .theme-gradient .cm-hero > .container {
    min-height: min(760px, 100svh);
    padding-top: 128px !important;
    padding-bottom: 152px !important;
  }

  .theme-gradient .cm-hero .hs-title-1 {
    font-size: clamp(36px, 7.5vw, 60px) !important;
    line-height: 1.12 !important;
    overflow-wrap: break-word;
  }

  .theme-gradient .cm-hero .text-nowrap,
  .theme-gradient .cm-week .cm-week-lead,
  .theme-gradient .cm-pricing-title span {
    white-space: normal !important;
  }

  .cm-hero-lead::before {
    content: none;
  }

  .cm-contact-panel {
    max-width: 100%;
  }

  .theme-gradient .cm-home-page #contact-form > .row > div:first-child {
    order: 2;
    margin-top: 32px;
    margin-bottom: 0;
  }

  .theme-gradient .cm-home-page #contact-form > .row > div:last-child {
    order: 1;
  }

  .theme-gradient .contact-item .ci-text {
    overflow-wrap: anywhere;
  }

  .theme-gradient .cm-page-hero.has-media .cm-hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .cm-page-hero.has-media .cm-page-hero-media {
    justify-content: center;
    width: 100%;
    max-width: 560px;
    margin-inline: auto;
  }

  .cm-page-hero.is-fade .cm-page-hero-media img {
    max-height: 420px;
    margin-inline: auto;
  }

  .cm-directory-search {
    min-width: 0;
  }

  .cm-company-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .theme-gradient .container {
    padding-inline: 20px;
  }

  .theme-gradient .full-wrapper {
    --full-wrapper-margin-x: 12px;
  }

  .theme-gradient :is(.cm-home-page, .footer) {
    --section-padding-y: 56px;
    overflow-wrap: break-word;
  }

  .theme-gradient .cm-home-page .section-title,
  .theme-gradient .cm-home-page .section-title.cm-display,
  .theme-gradient .cm-inner-page .section-title {
    font-size: clamp(30px, 8vw, 42px) !important;
    line-height: 1.15 !important;
    overflow-wrap: break-word;
  }

  .theme-gradient .cm-page-hero .hs-title-1,
  .theme-gradient .cm-page-hero.has-media .hs-title-1 {
    font-size: clamp(34px, 9vw, 52px) !important;
    line-height: 1.1 !important;
  }

  .theme-gradient .cm-page-hero.has-media .hs-title-1 .cm-display-line {
    font-size: inherit;
    white-space: normal;
  }

  .theme-gradient .cm-home-page .section-descr,
  .theme-gradient .cm-contact-panel .section-descr-medium {
    font-size: 17px !important;
    line-height: 1.75 !important;
  }

  .theme-gradient .cm-hero .btn.btn-large {
    max-width: 100%;
    padding: 17px 28px;
  }

  .theme-gradient .cm-home-page .cm-automate::before {
    background: #071426d9;
  }

  .theme-gradient .services-7-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .theme-gradient .services-7-tabs > li > a {
    height: 100%;
    padding: 16px 36px 16px 14px;
    border: 1px solid #e2e9f4;
    border-radius: 12px;
  }

  .theme-gradient .services-7-tabs > li > a::before {
    content: none;
  }

  .theme-gradient .services-7-tabs > li > a.active {
    border-color: #4a72ea;
    background: #eef3ff;
  }

  .theme-gradient .services-7-title {
    margin: 0;
    font-size: 16px;
    line-height: 1.4;
  }

  .theme-gradient .services-7-text {
    display: none;
  }

  .theme-gradient .services-7-arrow {
    right: 8px;
    width: 24px;
    height: 24px;
  }

  .theme-gradient .services-7-arrow i {
    font-size: 18px;
  }

  .theme-gradient .cm-plan,
  .theme-gradient .cm-link-card-copy {
    padding: 24px 20px;
  }

  .theme-gradient .cm-plan-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
  }

  .theme-gradient .cm-plan .cm-price {
    font-size: clamp(32px, 9vw, 42px);
  }

  .theme-gradient #pricing .badge {
    max-width: 100%;
    white-space: normal;
    line-height: 1.5;
  }

  .theme-gradient :is(.cm-switch button, .cm-filter-tabs button) {
    min-height: 44px;
  }

  .theme-gradient .cm-filter-tabs {
    flex: 0 1 auto;
    min-width: 0;
    scroll-padding-inline: 8px;
    overscroll-behavior-x: contain;
  }

  .theme-gradient .form :is(input, textarea),
  .theme-gradient .cm-directory-search input {
    font-size: 16px;
  }

  .theme-gradient .cm-contact-panel {
    padding: 28px 20px !important;
  }

  .theme-gradient .contact-form .btn {
    width: 100%;
    min-height: 48px;
  }

  .theme-gradient .contact-item {
    padding-left: 62px;
  }

  .theme-gradient .cm-inner-page {
    overflow-wrap: break-word;
  }

  .theme-gradient .cm-inner-page .cm-faq {
    padding-inline: 18px;
  }

  .cm-inner-page .cm-table-wrap {
    scrollbar-width: thin;
    scrollbar-color: #8ca8e7 #edf3ff;
  }

  .cm-comparison-table caption {
    position: sticky;
    left: 0;
    width: calc(100vw - 42px);
    padding: 16px;
    text-align: left;
  }

  .theme-gradient .cm-legal-page .legal-prose :is(h2, h3, a) {
    overflow-wrap: anywhere;
  }

  .cm-legal-page .legal-prose aside .btn {
    min-width: 44px;
    min-height: 44px;
  }

  .cm-article-related,
  .cm-security-contact,
  .theme-gradient .cm-legal-page .legal-prose article .cm-card {
    padding: 24px 20px;
  }

  .theme-gradient .footer .cm-footer-split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
  }

  .theme-gradient .footer .fw-menu a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
  }

  .theme-gradient .cm-footer-legal {
    justify-self: center;
    gap: 4px 18px;
  }

  .theme-gradient .cm-footer-legal a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 13px;
  }

  .theme-gradient .footer {
    padding-bottom: calc(96px + env(safe-area-inset-bottom)) !important;
  }

  .cm-float {
    right: max(12px, env(safe-area-inset-right));
    bottom: max(12px, env(safe-area-inset-bottom));
    flex-direction: row;
    gap: 8px;
  }

  .cm-float :is(a, button),
  .cm-float a.cm-wa,
  .cm-float .cm-wa-icon {
    width: 44px;
    height: 44px;
  }

  .cm-float .cm-wa-label {
    display: none;
  }

  .cm-modal-card {
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    padding: 28px 20px;
  }
}

@media (max-width: 420px) {
  .theme-gradient .cm-site-nav .cm-logo {
    max-width: 160px;
    height: auto;
  }

  .theme-gradient .cm-inner-page .cm-actions > .btn,
  .cm-download-panel .btn,
  .cm-error-links .btn {
    width: 100%;
    max-width: 100%;
    text-align: center;
    white-space: normal;
  }

  .cm-company-details,
  .cm-capability-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .theme-gradient .cm-language-switch button {
    padding-inline: 10px;
    font-size: 13px;
  }
}
