/* Site-wide mobile / tablet layout
   Loaded after style.css so it can correct overflow, nav, and stacked content. */

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
}

body {
  max-width: 100%;
}

table {
  max-width: 100%;
}

h1, h2, h3, h4, h5, p {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* Keep header logos readable */
.header-logo img,
.mobile_logo img,
.header_mobile .mlogo_wrapper img {
  max-width: 180px;
  width: auto;
  height: auto;
}

/* ------------------------------------------------------------------
   Tablet + mobile: hamburger nav, stop overlay covering page content
   ------------------------------------------------------------------ */
@media (max-width: 1199px) {
  .octf-main-header {
    display: none !important;
  }

  .header-topbar {
    display: none !important;
  }

  .site-header,
  .site-header.header-overlay {
    position: relative !important;
    top: auto;
    left: auto;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    background: #fff !important;
    box-shadow: 2px 2px 15px 0px rgba(42, 67, 113, 0.15);
  }

  /* Chat widget is position:fixed; this container must not stretch the header into a white screen */
  #webchat-container {
    position: static !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .header_mobile {
    display: block;
    width: 100%;
    background: #fff;
    font-family: "Red Hat Display", sans-serif;
  }

  .header_mobile .container {
    width: 100%;
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  .header_mobile .mlogo_wrapper {
    position: relative;
    background: #fff;
    padding: 8px 0;
    width: 100%;
    min-height: 64px;
  }

  .header_mobile .mlogo_wrapper .mobile_logo {
    float: left;
    max-width: calc(100% - 50px);
  }


  .header_mobile .mlogo_wrapper img {
    height: 52px;
    width: auto;
    max-width: 160px;
  }

  #mmenu_toggle {
    position: absolute;
    cursor: pointer;
    width: 26px;
    height: 20px;
    right: 0;
    margin-top: -10px;
    top: 50%;
    z-index: 5;
  }

  #mmenu_toggle button {
    position: absolute;
    left: 0;
    top: 50%;
    margin: -2px 0 0;
    background: #1a1b1e;
    height: 4px;
    padding: 0;
    border: none;
    width: 100%;
    transition: all 0.3s ease;
    outline: none;
    border-radius: 2px;
  }

  #mmenu_toggle button:before,
  #mmenu_toggle button:after {
    content: "";
    position: absolute;
    left: 0;
    width: 26px;
    height: 4px;
    background: #1a1b1e;
    border-radius: 2px;
    transition: all 0.3s ease;
    transform-origin: 1.5px center;
  }

  #mmenu_toggle button:before {
    top: -8px;
  }

  #mmenu_toggle button:after {
    bottom: -8px;
  }

  #mmenu_toggle.active button {
    background: none;
  }

  #mmenu_toggle.active button:before {
    top: 0;
    transform: rotate(-45deg);
    transform-origin: 50% 50%;
  }

  #mmenu_toggle.active button:after {
    bottom: 0;
    transform: rotate(45deg);
    transform-origin: 50% 50%;
  }

  .header_mobile .mobile_nav {
    display: none;
    background: #fff;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .header_mobile .mobile_nav .mobile_mainmenu {
    margin: 0;
    padding: 0 0 12px;
  }

  .header_mobile .mobile_nav .mobile_mainmenu ul {
    display: none;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin: 0 0 0 12px;
    padding: 0;
    min-width: 0 !important;
    width: auto;
    background: transparent;
    box-shadow: none;
  }

  .header_mobile .mobile_nav .mobile_mainmenu ul ul {
    display: none;
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin: 0 0 8px 12px;
    padding: 0 0 0 8px;
    min-width: 0 !important;
    width: auto;
    border-left: 2px solid #dbe4f0;
  }

  .header_mobile .menu-item-has-children .sub-menu,
  .header_mobile .menu-item-has-children .sub-menu .menu-item-has-children .sub-menu {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    min-width: 0 !important;
    margin: 0 0 0 8px !important;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li {
    position: relative;
    list-style: none;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li a {
    padding: 12px 40px 12px 0;
    display: block;
    color: #1a1b1e;
    font-weight: 500;
    border-bottom: 1px solid #e5e5e5;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li li a {
    font-size: 15px;
    padding: 10px 40px 10px 8px;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li li li a {
    font-size: 14px;
    color: #1a1b1e;
    padding: 10px 16px 10px 12px;
    border-bottom: 1px solid #f0f0f0;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li.menu-item-has-children > .arrow {
    color: #fff;
    position: absolute;
    display: block;
    right: 0;
    top: 0;
    cursor: pointer;
    width: 50px;
    padding: 12px 8px 12px 0;
    text-align: right;
    box-sizing: border-box;
    z-index: 2;
  }

  .header_mobile .mobile_nav .mobile_mainmenu li.menu-item-has-children > .arrow i {
    color: #9397a7;
  }

  .header-fullwidth .octf-area-wrap {
    padding-left: 16px;
    padding-right: 16px;
  }

  .page-title {
    margin-top: 0;
    font-size: 32px;
    line-height: 1.25;
  }

  .page-header {
    height: auto;
    min-height: 160px;
    padding: 28px 0 24px;
  }

  .page-header .dcell {
    height: auto;
    display: block;
    padding: 24px 0;
  }
}

/* ------------------------------------------------------------------
   Tablet
   ------------------------------------------------------------------ */
@media (max-width: 991px) {
  img,
  video,
  iframe,
  embed,
  object {
    max-width: 100%;
    height: auto;
  }

  .container,
  .container-fluid {
    width: 100%;
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  .row {
    margin-left: -8px;
    margin-right: -8px;
  }

  .row > [class*="col-"] {
    padding-left: 8px;
    padding-right: 8px;
  }

  .flex-row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }

  .p-l80,
  .p-t125,
  .p-t160 {
    padding-left: 0 !important;
  }

  .p-t125,
  .p-t160,
  .p-t165 {
    padding-top: 48px !important;
  }

  .p-b160,
  .p-b170,
  .p-b330,
  .p-b120 {
    padding-bottom: 48px !important;
  }

  .m-t--140,
  .m-t--210,
  .m-t--295 {
    margin-top: 0 !important;
  }

  h2.main-heading,
  .ot-heading h2,
  .ot-heading .main-heading {
    font-size: 28px;
    line-height: 1.3;
  }

  .font22 {
    font-size: 18px;
    line-height: 1.5;
  }

  .about-content {
    padding-left: 0 !important;
  }

  .about-swrap-top-1 {
    margin-top: 0;
  }

  .site-footer .row > [class*="col-"],
  .site-footer-2 .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    float: none;
    margin-bottom: 28px;
  }

  .footer-contact {
    margin-left: 0 !important;
    flex-wrap: wrap;
    padding: 2px 12px;
  }

  .footer-contact p {
    justify-content: center;
    flex-wrap: wrap;
  }

  .footerBox {
    width: 100%;
    justify-content: center;
  }

  .footerBox img {
    max-width: 180px;
    width: auto;
  }

  .bpWebchat {
    width: calc(100vw - 16px) !important;
    max-width: 360px;
    height: calc(100dvh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    right: 8px !important;
    bottom: 8px !important;
    overflow: hidden !important;
  }

  .site-footer-home2 .footer-bottom,
  .site-footer-2 .footer-bottom,
  .site-footer .footer-bottom {
    padding-bottom: 70px;
  }

  .site-footer-home2 .footer-bottom .copyright-2,
  .site-footer-2 .footer-bottom .copyright-2,
  .copyright-2 {
    padding-left: 12px;
    padding-right: 12px;
    margin-bottom: 0;
  }
}

/* ------------------------------------------------------------------
   Mobile
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
  .banner,
  .banner.big-padding-top,
  .bg-banner-gradient {
    height: auto !important;
    min-height: 0;
    overflow: hidden;
    max-width: 100%;
  }

  .banner .banner-wrap {
    min-height: 0 !important;
  }

  .container,
  .container-fluid {
    padding-left: 14px;
    padding-right: 14px;
  }

  .page-title {
    font-size: 26px;
  }

  h2.main-heading,
  .ot-heading h2,
  .ot-heading .main-heading {
    font-size: 24px;
    line-height: 1.35;
  }

  .page-header {
    min-height: 140px;
    padding: 20px 0 16px;
  }

  .header_mobile .mlogo_wrapper img,
  .mobile_logo img {
    height: 44px;
    max-width: 140px;
  }

  .shadow-primary {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 40px 16px !important;
  }

  .ot-button.text-right {
    text-align: left;
  }

  .team-slider,
  .partners,
  .owl-carousel {
    max-width: 100%;
  }

  .custom-form-container,
  .custom-container {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 10px 8px 6px;
  }

  .button-container {
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
  }

  .ot-heading br,
  .main-heading br,
  .about-intro br {
    display: none;
  }
}

@media (max-width: 480px) {
  .page-title {
    font-size: 22px;
  }

  h2.main-heading,
  .ot-heading h2 {
    font-size: 22px;
  }

  .octf-btn {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
  }

  .site-footer-2 .footer-bottom .copyright-2 {
    color: black;
    font-size: 13px;
    font-family: "Red Hat Text", sans-serif;
    justify-content: center;
    padding-left: 12px;
    padding-right: 12px;
  }

  .site-footer-home2 .footer-bottom p {
    line-height: 1.45;
    margin-top: 8px;
    margin-bottom: 0;
  }

  .site-footer-home2 .footer-bottom,
  .site-footer-2 .footer-bottom {
    padding-bottom: 82px;
  }
}
