/* Shared responsive layer — critical path (every page / every screen). */

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

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

img,
svg,
video,
canvas,
iframe,
embed,
object {
  max-width: 100%;
}

.section-img img,
.section-img_new img,
.blog_sec img,
.blog-sec img,
.page_portfolio_itm_img img,
.testimonials-item-img img,
.port-secs img,
.about-solutionpage img,
.gro-text img,
article img,
.card img {
  height: auto;
}

.vdo-bg {
  max-width: 100%;
  overflow: hidden;
}

.vdo-bg video {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

iframe,
.fram_video iframe {
  max-width: 100%;
}

.fram_video iframe,
iframe[src*="youtube"],
iframe[src*="vimeo"],
iframe[src*="youtu.be"] {
  width: 100% !important;
  height: auto;
  aspect-ratio: 16 / 9;
  min-height: 180px;
}

table {
  max-width: 100%;
}

pre,
code,
.form-control,
textarea,
select,
input,
.iti,
.intl-tel-input {
  max-width: 100%;
}

.iti,
.intl-tel-input {
  width: 100%;
  display: block;
}

h1,
h2,
h3,
h4,
h5,
p,
li,
a,
button,
label,
td,
th {
  overflow-wrap: break-word;
}

.container,
.container-fluid {
  width: 100%;
}

@media (min-width: 1600px) {
  .container {
    max-width: 1440px;
  }
}

@media (min-width: 1920px) {
  .container {
    max-width: 1520px;
  }
}

/* Hero columns stay side by side only when there is room. */
@media (max-width: 1599.98px) {
  .homepage_contentSld {
    flex: 1 1 auto !important;
    min-width: 0;
    max-width: 100%;
  }

  .home-page-trust {
    flex: 1 1 280px;
    max-width: 100%;
    min-width: 0;
  }

  .slider-heading {
    flex-wrap: wrap;
    width: 100%;
  }
}

/* Tablet and phone: hamburger menu, stacked page sections. */
@media (max-width: 1199.98px) {
  .navbar-brand img {
    height: 48px !important;
    width: auto !important;
  }

  .navbar-toggler {
    padding: 6px 8px;
    border: 0;
  }

  #navbarSupportedContent,
  .navbar-collapse {
    max-height: calc(100vh - 120px);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #fff;
  }

  .navbar .dropdown-menu,
  .navbar-nav .dropdown-menu,
  .dropdown-menu.dropdown_contact {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    float: none !important;
    box-shadow: none;
    border-radius: 0;
  }

  .header_menu_itms,
  .header_menu_itms.services_menu {
    max-height: none !important;
    padding: 12px;
  }

  .header_menu_cn .row,
  .header_menu_itms .row,
  .dropdown-menu .row {
    margin-left: 0;
    margin-right: 0;
  }

  .navbar-nav > .nav-item {
    border-bottom: 1px solid #ececec;
  }

  .navbar-dark .navbar-nav .nav-link {
    white-space: normal;
    height: auto;
  }

  .header_ai_itms_cls .itms_cls_ai_btn {
    max-width: 240px;
    white-space: normal;
    text-align: left;
    line-height: 1.3;
    margin-right: 8px;
    font-size: 12px;
  }

  .home_page {
    padding: 4.5rem 0 3.5rem;
  }

  .home_page .slider-heading h1,
  .slider-heading h1,
  #grocery-banner h1,
  .solution-bnr h1 {
    font-size: clamp(28px, 4.2vw, 40px) !important;
    line-height: 1.2;
    width: 100%;
  }

  .slider-heading p,
  #grocery-banner p {
    width: 100%;
    max-width: 100%;
    font-size: 16px;
  }

  .home_banner_client_itms,
  .right_partner_sec,
  .banner_btns,
  .footer_address_wic,
  .ftr-social-media {
    flex-wrap: wrap;
  }

  #grocery-banner .gro-form .request-form,
  .gro-form,
  .request-form,
  .too-form {
    width: 100% !important;
    max-width: 100%;
  }

  .section-img img,
  .section-img_new img,
  .blog_sec img,
  .blog-sec img,
  .page_portfolio_itm_img img,
  .testimonials-item-img img,
  .port-secs img {
    width: 100%;
    height: auto;
  }

  .map_footer_in {
    height: auto;
    min-height: 260px;
  }

  .map_footer_con {
    width: 100% !important;
    max-width: 100%;
    height: auto;
    padding: 28px 20px !important;
    border-radius: 16px;
  }

  .cta_Simg_con,
  .ai_videos_cls::before {
    width: 100%;
    max-width: 100%;
  }

  .accrodn-section-faq .btn-header-link {
    padding: 16px 46px 16px 16px;
    font-size: 16px;
    white-space: normal;
    height: auto;
  }

  .ftr-section .row > [class*="col-"],
  .footer_row > [class*="col-"] {
    max-width: 100%;
  }
}

@media (max-width: 991.98px) {
  html {
    font-size: 15px;
  }

  .header_contact_itm::after,
  .location_header_itm::after {
    margin: 0 8px;
  }

  .header_contact_itm a {
    font-size: 13px;
  }

  .slider-heading,
  .homepage_contentSld,
  .slider-heading-con {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .home-page-trust {
    flex: 1 1 100%;
    max-width: 520px;
  }

  .dev_service_list .dev_service_item {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .casestdy_name_tabs,
  .casestdy_filter_list,
  .listing_right_filter,
  .portfolio-category-menu,
  .tech-icons,
  .sta_process_itms,
  .ourbrandsslider {
    flex-wrap: wrap;
    height: auto;
    max-width: 100%;
  }

  .casestdy_name {
    white-space: normal;
    max-width: 100%;
    height: auto;
  }

  .header_menu_itms .row > [class*="col-"],
  .about_mn .row > [class*="col-"],
  .services_menu .row > [class*="col-"],
  .industry_mn .row > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

@media (max-width: 767.98px) {
  html {
    font-size: 16px;
  }

  .home_page {
    padding: 2.5rem 0 2.25rem;
  }

  .home_page .slider-heading h1,
  .slider-heading h1,
  #grocery-banner h1,
  .heading_h1,
  .heading_h2,
  .solution-bnr h1 {
    font-size: clamp(24px, 7.2vw, 34px) !important;
    line-height: 1.22;
  }

  .slider-heading,
  .gro-text,
  #grocery-banner .gro-text {
    text-align: center;
  }

  .home_page .slider-heading h1 {
    text-align: center;
  }

  .banner_btns {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .banner_btns .btn,
  .banner_btns a,
  .banner_btns button,
  .clutch-wrld-btn,
  .btn_full_in .btn,
  .frm-btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    white-space: normal;
  }

  .home_banner_client_itms {
    justify-content: center;
    gap: 14px 18px;
  }

  .home_banner_client_itm {
    flex: 0 1 auto;
  }

  .home_banner_client_itm img {
    max-width: 92px;
    max-height: 34px;
    width: auto;
    height: auto;
  }

  .right_partner_sec {
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
  }

  .partner_secitm {
    flex: 0 1 calc(50% - 12px);
    max-width: calc(50% - 12px);
  }

  .partner_secitm img {
    width: 100%;
    height: auto;
  }

  .dev_service_list {
    justify-content: center;
  }

  .modal {
    overflow-y: auto !important;
    padding: 10px 0 !important;
  }

  .modal-dialog,
  .modal-dialog.modal-dialog-centered {
    width: calc(100% - 1.25rem);
    max-width: calc(100% - 1.25rem);
    min-height: 0;
    height: auto;
    margin: 10px auto;
    align-items: flex-start;
    display: flex;
  }

  .modal-dialog-centered::before {
    display: none !important;
    height: 0 !important;
    content: none !important;
  }

  .modal-content,
  .modal-body {
    max-height: none;
    overflow: visible;
    width: 100%;
  }

  #modal_static2 .testimonial,
  #modal_static2 .col-lg-6:first-child {
    display: none;
  }

  #modal_static2 .col-lg-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .modal-body .form-control,
  .modal-body textarea,
  .modal-body select,
  .ftr-form .form-control,
  .ftr-form textarea,
  .ftr-form select,
  #grocery-banner .form-control,
  #grocery-banner textarea,
  #grocery-banner select {
    width: 100% !important;
    max-width: 100%;
  }

  #grocery-banner .gro-form .bodysec .addfile,
  .ftr-section .addfile,
  .form-control-file {
    width: 100% !important;
    max-width: 100%;
  }

  .header_menu_itms .row > [class*="col-"],
  .about_mn .row > [class*="col-"],
  .services_menu .row > [class*="col-"],
  .industry_mn .row > [class*="col-"],
  .dropdown_contact .row > [class*="col-"],
  .dropdown_contact ul[class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  table {
    display: block;
    width: 100% !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .slick-slider,
  .slick-list {
    max-width: 100%;
  }

  .slick-list {
    overflow: hidden;
  }

  .fiiter_contry_in,
  .fiiter_contry_in p,
  .fiiter_contry_in h2 {
    text-align: center;
  }

  .footer_address_wic {
    align-items: flex-start;
  }

  .cnt-ad,
  .cnt-phn,
  .cnt-name {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 575.98px) {
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .header_new_contact .container > .row {
    margin-left: 0;
    margin-right: 0;
    align-items: center;
  }

  .header_new_contact .col-md-6,
  .header_new_contact .col-sm-6 {
    flex: 1 1 0;
    max-width: none;
    width: auto;
    padding-left: 4px;
    padding-right: 4px;
  }

  .header_contact_itms {
    gap: 0;
    min-width: 0;
  }

  .header_contact_itm a span {
    font-size: 12px;
  }

  .header_contact_itm::after {
    margin: 0 6px;
  }

  .header_new_contact .header_contact_itm img {
    width: 22px !important;
    height: 22px !important;
  }

  .navbar {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .dev_service_list .dev_service_item,
  .home_abt_row > .col-6,
  .home_abt_row > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .home_abt_row > .col-xl-4:first-child {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .partner_secitm {
    flex: 0 1 100%;
    max-width: 100%;
  }

  .mobl-bn-hro {
    display: none;
  }

  .btn,
  .btn-primary {
    white-space: normal;
  }
}

@media (max-width: 360px) {
  .header_contact_itm a span {
    font-size: 11px;
  }

  .navbar-brand img {
    height: 42px !important;
  }

  .home_page .slider-heading h1,
  #grocery-banner h1 {
    font-size: 22px !important;
  }
}

/* Keep the chat bubble inside the screen on small phones. */
@media (max-width: 767.98px) {
  iframe[src*="tawk.to"] {
    max-width: calc(100vw - 16px) !important;
  }

  /* AOS fade-left/right causes off-canvas columns on phones */
  [data-aos="fade-left"],
  [data-aos="fade-right"],
  [data-aos="fade-up-left"],
  [data-aos="fade-up-right"],
  [data-aos="fade-down-left"],
  [data-aos="fade-down-right"],
  .aos-init[data-aos*="left"],
  .aos-init[data-aos*="right"] {
    transform: none !important;
    opacity: 1 !important;
  }

  .home_page_about,
  .home_page_about .row,
  .home_page_about .we-re-jp,
  section.ai_sec,
  section.dev_industries_sec,
  section.funded_sec,
  section.rvw_sec,
  footer.adv-footer {
    overflow-x: clip;
    max-width: 100%;
  }

  .slick-list,
  .slick-slider,
  .funding-track,
  .dev_industries_sec .slick-list,
  .rvw_sec .slick-list {
    overflow: hidden !important;
    max-width: 100%;
  }

  body.softalyn-home .ai_sec_tabs .nav-tabs {
    justify-content: flex-start;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  body.softalyn-home .ai_sec_tabs .nav-tabs::-webkit-scrollbar {
    display: none;
  }

  body.softalyn-home .ai_sec_tabs .nav-tabs .nav-item {
    flex: 0 0 auto !important;
  }

  footer.adv-footer .ftr-clth-btn,
  footer.adv-footer .footer_lgs,
  footer.adv-footer .footer_tech,
  footer.adv-footer .container,
  footer.adv-footer .row > [class*="col-"],
  footer.adv-footer .col-lg-6,
  footer.adv-footer .col-lg-8,
  footer.adv-footer .col-md-12,
  .map_footer .container,
  .map_footer .row > [class*="col-"],
  .ovr-rting,
  .clth-rating,
  .ovr-rting-con,
  .container,
  .row > [class*="col-"],
  .col-lg-6,
  .col-md-6,
  .col-sm-6 {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  footer.adv-footer .row > [class*="col-"],
  footer.adv-footer .col-lg-6,
  footer.adv-footer .col-lg-8 {
    flex: 1 1 100% !important;
  }

  .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  footer.adv-footer .row,
  .map_footer .row,
  .home_page_about .row {
    margin-left: 0;
    margin-right: 0;
  }

  footer.adv-footer .ftr-clth-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-wrap: wrap !important;
    justify-content: flex-start;
    box-sizing: border-box;
    white-space: normal !important;
  }

  footer.adv-footer .ftr-clth-btn span {
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* Space for floating chat over stacked trust cards */
  section.home_page.adv-banner .home-page-trust {
    padding-bottom: 72px;
  }

  .home-page-trust-itm:last-child {
    margin-bottom: 8px;
  }

  .sg-price-promo,
  .sg-price-promo-in,
  .map_footer_in,
  .map_footer_con {
    max-width: 100%;
    overflow-x: clip;
  }

  .navbar-collapse {
    max-width: 100%;
    overflow-x: hidden;
  }
}

/* Timeline process cards: never stay invisible if AOS JS fails to load */
.timeline .timeline-step[data-aos],
.timeline .timeline-step.aos-init:not(.aos-animate) {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

@media (max-width: 390px) {
  .adv-nav-wrap {
    padding-left: 12px;
    padding-right: 12px;
  }

  section.home_page.adv-banner .banner_btns .btn,
  section.home_page.adv-banner .clutch-wrld-btn {
    width: 100%;
  }
}
