/* Shri Data Entry Services - mobile responsive add-on v2 */

*,
*::before,
*::after {
  box-sizing: border-box;
}

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

body {
  margin: 0;
  overflow-x: hidden;
}

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

img {
  height: auto;
}

table {
  max-width: 100%;
}

.sdes-table-scroll {
  width: 100%;
  overflow-x: auto;
}

@media (max-width: 991px) {
  body {
    min-width: 0 !important;
  }

  .container,
  .wrapper,
  .main,
  .content,
  .inner,
  .row,
  .site-wrap,
  .page-wrap,
  .header,
  .footer,
  [class*="container"] {
    max-width: 100% !important;
    width: 100% !important;
  }

  .container,
  .wrapper,
  .content,
  .inner,
  .main,
  .footer,
  section,
  article {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .row,
  .columns,
  .service-row,
  .about-row,
  .hero-row,
  .footer-row,
  .grid,
  [class*="row"] {
    display: block !important;
  }

  [class*="col-"],
  [class*="span"],
  .left,
  .right,
  .sidebar,
  .main-content,
  .content-left,
  .content-right,
  .image-box,
  .text-box,
  .service-box,
  .feature-box,
  .footer-col {
    float: none !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  h3 {
    font-size: 21px !important;
    line-height: 1.3 !important;
  }

  p,
  li {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  .top-header,
  .topbar,
  .header-top,
  .contact-top,
  .top-contact {
    text-align: center !important;
  }

  .top-header ul,
  .topbar ul,
  .header-top ul,
  .contact-top ul,
  .top-contact ul {
    display: block !important;
    padding-left: 0 !important;
  }

  .top-header li,
  .topbar li,
  .header-top li,
  .contact-top li,
  .top-contact li {
    display: block !important;
    margin: 4px 0 !important;
  }

  .logo,
  .site-logo,
  .navbar-brand,
  header .brand,
  header [class*="logo"] {
    display: block !important;
    text-align: center !important;
    margin: 10px auto !important;
  }

  .logo img,
  .site-logo img,
  .navbar-brand img,
  header [class*="logo"] img {
    max-height: 72px !important;
    max-width: 260px !important;
    width: auto !important;
  }

  header,
  .site-header,
  .main-header,
  .header-area,
  .header-main,
  .nav-header {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    position: relative !important;
  }

  header > *,
  .site-header > *,
  .main-header > *,
  .header-area > *,
  .header-main > *,
  .nav-header > * {
    max-width: 100% !important;
  }

  .sdes-mobile-toggle {
    display: block;
    width: calc(100% - 32px);
    margin: 10px 16px;
    border: 0;
    border-radius: 6px;
    background: #0b4f85;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    padding: 14px 16px;
    text-align: left;
  }

  .sdes-mobile-toggle::after {
    content: "+";
    float: right;
    font-size: 22px;
    line-height: 14px;
  }

  body.sdes-menu-open .sdes-mobile-toggle::after {
    content: "-";
  }

  body.sdes-mobile-ready .sdes-mobile-nav {
    background: #fff;
    border-top: 1px solid #e5e7eb;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
    display: none !important;
    float: none !important;
    height: auto !important;
    left: auto !important;
    margin: 0 16px 16px !important;
    max-height: calc(100vh - 120px);
    max-width: none !important;
    overflow-y: auto;
    padding: 0 !important;
    position: static !important;
    right: auto !important;
    top: auto !important;
    width: calc(100% - 32px) !important;
    z-index: 9999;
  }

  body.sdes-menu-open .sdes-mobile-nav {
    display: block !important;
  }

  body.sdes-mobile-ready.sdes-menu-open .sdes-mobile-nav {
    display: block !important;
  }

  body.sdes-mobile-ready .sdes-mobile-nav ul,
  body.sdes-mobile-ready .sdes-mobile-nav li {
    display: block !important;
    float: none !important;
    height: auto !important;
    list-style: none !important;
    margin: 0 !important;
    opacity: 1 !important;
    padding: 0 !important;
    position: static !important;
    visibility: visible !important;
    width: 100% !important;
  }

  body.sdes-mobile-ready .sdes-mobile-nav a {
    border-bottom: 1px solid #edf1f5;
    color: #102033 !important;
    display: block !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
    padding: 12px 14px !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  body.sdes-mobile-ready .sdes-mobile-nav ul ul a {
    background: #f8fafc !important;
    padding-left: 28px !important;
  }

  body.sdes-mobile-ready .sdes-mobile-nav ul ul ul a {
    padding-left: 42px !important;
  }

  /* Fallback: when JS is not loaded, make desktop menus wrap instead of splitting the header. */
  header nav,
  .site-header nav,
  .main-header nav,
  .header-area nav,
  .header-main nav,
  .nav-header nav,
  header .menu,
  header .navigation,
  header .navbar,
  header .main-menu {
    float: none !important;
    max-width: 100% !important;
    position: static !important;
    width: 100% !important;
  }

  header nav ul,
  .site-header nav ul,
  .main-header nav ul,
  .header-area nav ul,
  .header-main nav ul,
  .nav-header nav ul,
  header .menu ul,
  header .navigation ul,
  header .navbar ul,
  header .main-menu ul {
    flex-wrap: wrap !important;
    justify-content: center !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    width: 100% !important;
  }

  /* Service category strip should scroll horizontally instead of forcing the page wider. */
  .services-bar,
  .service-bar,
  .service-tabs,
  .service-categories,
  .category-tabs,
  .sp-services-bar,
  .sp-service-tabs,
  .sp-category-nav,
  .quick-services,
  .sdes-service-nav {
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 18px !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 12px 16px !important;
    white-space: nowrap !important;
    width: 100% !important;
  }

  .services-bar *,
  .service-bar *,
  .service-tabs *,
  .service-categories *,
  .category-tabs *,
  .sp-services-bar *,
  .sp-service-tabs *,
  .sp-category-nav *,
  .quick-services *,
  .sdes-service-nav * {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  /* Images directly under content should not crop or push the layout wider. */
  .home-banner,
  .banner-image,
  .hero-banner,
  .sp-banner,
  .page-visual,
  .why-image {
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .banner,
  .hero,
  .page-banner,
  .inner-banner,
  .service-hero,
  .sp-hero {
    min-height: 0 !important;
    padding-top: 28px !important;
    padding-bottom: 28px !important;
  }

  .banner img,
  .hero img,
  .page-banner img,
  .inner-banner img,
  .service-hero img,
  .sp-hero img {
    display: block !important;
    margin: 16px auto !important;
    max-height: none !important;
    object-fit: contain !important;
    width: 100% !important;
  }

  .card,
  .box,
  .service-card,
  .feature-card,
  .why-card,
  .testimonial,
  .portfolio-item {
    height: auto !important;
    margin-bottom: 16px !important;
  }
}

@media (max-width: 575px) {
  .container,
  .wrapper,
  .content,
  .inner,
  .main,
  .footer,
  section,
  article {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .sdes-mobile-toggle,
  .sdes-mobile-nav {
    margin-left: 12px !important;
    margin-right: 12px !important;
    width: calc(100% - 24px) !important;
  }
}

/* Global mobile page safeguards. Keep h1/h2 sizing in heading-normalize.css. */
@media (max-width: 700px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .container,
  [class*="container"] {
    width: min(100% - 28px, var(--container, 1180px)) !important;
    max-width: calc(100% - 28px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  section,
  .section,
  .sp-section,
  .sdes-section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }

  .card-grid,
  .workflow-grid,
  .case-grid,
  .price-grid,
  .portfolio-grid,
  .faq-hover-list,
  .static-service-grid,
  .compact-mega-grid,
  .featured-grid,
  .directory-grid,
  .proof-strip-grid,
  .services-mini-grid,
  .services-hero-panel,
  .sp-service-grid,
  .sp-process-grid,
  .sp-testi-grid,
  .sp-quality-grid,
  .sp-io-grid,
  .sp-related-grid,
  .home-value-grid,
  .home-pilot-grid,
  .home-industry-grid,
  .home-feedback-grid,
  .sdes-service-grid,
  .sdes-flow-grid,
  .sdes-task-grid,
  .sdes-faq-grid,
  .sdes-check-grid,
  .sdes-use-grid,
  .sdes-quick-strip-grid,
  .port-grid,
  .cs-cols,
  .footer-two-column,
  .footer-right-links {
    grid-template-columns: 1fr !important;
  }

  .stats-grid,
  .sp-stats-grid,
  .trust-stats-grid,
  .project-stats-grid,
  .stats-row,
  .sdes-achievements .sdes-hero-panel,
  .sdes-achievement-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .footer-cta-inner,
  .hero-actions,
  .sp-hero-actions,
  .sdes-hero-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .btn,
  .sp-btn-primary,
  .sp-btn-secondary,
  .sdes-btn,
  .header-cta {
    max-width: 100% !important;
    white-space: normal !important;
  }

  p,
  li {
    text-align: left !important;
    text-align-last: left !important;
  }

  body {
    padding-bottom: 86px;
  }

  .site-footer .footer-cta {
    padding: 18px 0 !important;
  }

  .site-footer .footer-cta-inner {
    gap: 10px !important;
  }

  .site-footer .footer-cta .eyebrow {
    font-size: 10px !important;
    letter-spacing: .12em !important;
  }

  .site-footer .footer-cta h2 {
    font-size: 19px !important;
    line-height: 1.2 !important;
    margin: 4px 0 0 !important;
  }

  .site-footer .footer-cta p {
    display: none !important;
  }

  .site-footer .footer-cta .btn {
    min-height: 44px !important;
    padding: 11px 14px !important;
    border-radius: 12px !important;
    font-size: 15px !important;
  }

  .footer-two-column {
    padding-top: 18px !important;
    padding-bottom: 12px !important;
    gap: 14px !important;
  }

  .footer-logo-img {
    max-width: 190px !important;
    margin: 0 auto !important;
  }

  .footer-company-text {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
    margin: 8px 0 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
  }

  .footer-contact-card,
  .footer-contact-social-row,
  .footer-product-follow {
    margin-top: 8px !important;
  }

  .footer-product-follow h3 {
    margin: 0 0 7px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
  }

  .footer-product-social-icons {
    gap: 6px !important;
  }

  .footer-product-social-icons a {
    width: 30px !important;
    height: 30px !important;
    font-size: 12px !important;
  }

  .footer-right-links {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .footer-stacked-section {
    border: 1px solid var(--bdr, #e2e8f0) !important;
    border-radius: 10px !important;
    background: var(--surf2, #f8fafc) !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .footer-stacked-section h3 {
    display: none !important;
  }

  .footer-section-toggle {
    display: flex !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--t1, #0f172a) !important;
    font-family: inherit !important;
    font-size: 12.5px !important;
    font-weight: 900 !important;
    letter-spacing: .04em !important;
    text-align: left !important;
    text-transform: uppercase !important;
  }

  .footer-section-toggle::after {
    content: "";
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease;
  }

  .footer-stacked-section.footer-section-open .footer-section-toggle::after {
    transform: rotate(-135deg);
  }

  .footer-stacked-section ul {
    display: none !important;
  }

  .footer-stacked-section.footer-section-open ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4px 10px !important;
    padding: 0 12px 10px !important;
    margin: 0 !important;
  }

  .footer-stacked-section li {
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
  }

  .footer-stacked-section a {
    display: block !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    padding: 2px 0 !important;
  }

  .footer-bottom {
    padding: 10px 0 !important;
  }

  .footer-bottom-inner {
    gap: 4px !important;
    text-align: center !important;
  }

  .footer-bottom p,
  .footer-bottom a {
    font-size: 11.5px !important;
    line-height: 1.35 !important;
  }

  .footer-bottom a {
    margin: 4px 7px 0 !important;
  }

  .sp-hero-text {
    padding-top: 28px !important;
    padding-bottom: 34px !important;
  }

  .sp-hero-badges,
  .sp-trust-badges {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .sp-hero-badges span,
  .sp-trust-badge {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
    padding: 8px 9px !important;
    border-radius: 10px !important;
    font-size: 12px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  .sp-trust-inner {
    align-items: flex-start !important;
    gap: 10px !important;
  }

  .sp-stats-strip {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .sp-stat-card {
    padding: 14px 10px !important;
    border-radius: 14px !important;
  }

  .sp-stat-card strong {
    font-size: 24px !important;
    line-height: 1.05 !important;
  }

  .sp-stat-card span {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .sp-sticky-cta {
    display: block !important;
    padding: 10px 12px !important;
  }

  .sp-sticky-cta a {
    min-height: 48px !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    font-size: 16px !important;
  }

  .sp-wa-float {
    right: 14px !important;
    bottom: 88px !important;
    width: 50px !important;
    height: 50px !important;
    z-index: 240 !important;
  }

  .mobile-scroll-control-wrap {
    position: fixed;
    right: 12px;
    bottom: 154px;
    z-index: 260;
    display: block !important;
    pointer-events: none;
  }

  .mobile-scroll-toggle {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 12px;
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .22);
    pointer-events: auto;
    cursor: pointer;
  }

  .mobile-scroll-toggle.show {
    display: flex !important;
  }

  .mobile-scroll-toggle[data-direction="down"] {
    background: #e45f00;
  }

  .mobile-scroll-toggle[data-direction="up"] {
    background: #2454d6;
  }
}

@media (max-width: 380px) {
  .sp-hero-badges,
  .sp-trust-badges {
    grid-template-columns: 1fr !important;
  }

  .mobile-scroll-control-wrap {
    right: 10px;
    bottom: 150px;
  }

  .mobile-scroll-toggle {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 18px;
  }
}

/* Mobile menu and homepage industries final alignment */
@media (max-width: 700px) {
  .sdes-main-menu,
  .sdes2-bar-inner {
    width: min(100% - 28px, var(--container, 1180px)) !important;
    max-width: calc(100% - 28px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .sdes-main-menu .sdes-mobile-toggle,
  .sdes2-bar .sdes2-mobile-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 11px 2px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #1e293b !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: left !important;
  }

  .sdes-main-menu .sdes-mobile-toggle::after,
  .sdes2-bar .sdes2-mobile-toggle::after {
    content: "" !important;
    float: none !important;
    width: 9px !important;
    height: 9px !important;
    flex-shrink: 0 !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
  }

  .sdes-main-menu.sdes-pages-open .sdes-mobile-toggle::after,
  .sdes2-bar.sdes2-bar-open .sdes2-mobile-toggle::after {
    transform: rotate(-135deg) !important;
  }

  html[data-theme="dark"] .sdes-main-menu .sdes-mobile-toggle,
  body[data-theme="dark"] .sdes-main-menu .sdes-mobile-toggle,
  html[data-theme="dark"] .sdes2-bar .sdes2-mobile-toggle,
  body[data-theme="dark"] .sdes2-bar .sdes2-mobile-toggle,
  body.dark-mode .sdes-main-menu .sdes-mobile-toggle,
  body.dark-mode .sdes2-bar .sdes2-mobile-toggle {
    color: #f8fbff !important;
  }

  html[data-theme="dark"] .sdes2-bar,
  body[data-theme="dark"] .sdes2-bar,
  body.dark-mode .sdes2-bar {
    background: #0f1c33 !important;
    border-color: rgba(255,255,255,.14) !important;
  }

  .home-industry-grid,
  .sp-industry-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  .home-ind-card,
  .sp-ind-card {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    display: block !important;
  }

  .home-ind-card span,
  .sp-ind-card p {
    text-align: left !important;
    text-align-last: left !important;
    word-spacing: normal !important;
  }

  .sp-ind-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    column-gap: 0 !important;
    row-gap: 10px !important;
    align-items: start !important;
  }

  .sp-ind-card .sp-ind-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
  }

  .sp-ind-card h3 {
    grid-column: 1 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    align-self: start !important;
  }

  .sp-ind-card p {
    grid-column: 1 !important;
    grid-row: 3 !important;
    margin: 0 !important;
  }
}
