/* D2 Home Mobile Responsive Patch */
@media (max-width: 900px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

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

  .container,
  main.container,
  section .container,
  header .container,
  footer .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

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

  img {
    height: auto !important;
  }

  table {
    max-width: 100% !important;
  }

  .table-wrap,
  .table-responsive,
  .card table,
  .form-card table {
    display: block !important;
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .site-header,
  header {
    position: relative !important;
    z-index: 20;
  }

  .public-top-menu,
  .menu,
  nav.menu {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    padding: 6px 2px 10px !important;
    max-width: 100% !important;
    scrollbar-width: thin;
  }

  .public-top-menu a,
  .menu a,
  nav.menu a,
  .public-top-menu button,
  .menu button {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    font-size: 13px !important;
    padding: 9px 12px !important;
    line-height: 1.2 !important;
  }

  .hero {
    min-height: auto !important;
    padding: 22px 0 !important;
    overflow: hidden !important;
  }

  .hero h1,
  .hero-title,
  .home-hero-title {
    font-size: clamp(24px, 7vw, 34px) !important;
    line-height: 1.15 !important;
    margin-bottom: 8px !important;
    word-break: break-word !important;
  }

  .hero p,
  .hero-subtitle,
  .home-hero-subtitle {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .hero img,
  .home-hero img {
    max-height: 280px !important;
    object-fit: contain !important;
  }

  .grid,
  .home-grid,
  .smartweb-grid,
  .public-service-grid,
  .widget-grid,
  .quick-grid,
  .quick-card-grid,
  .layout-grid,
  .content-grid,
  .banner-grid,
  .d2-home-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .card,
  .form-card,
  .public-service-card,
  .quick-card,
  .quick-block,
  .widget-card,
  .home-card,
  .service-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 16px !important;
    padding: 14px !important;
    overflow: hidden !important;
  }

  .public-service-card h3,
  .quick-card h3,
  .widget-card h3,
  .card h2,
  .card h3 {
    font-size: 17px !important;
    line-height: 1.3 !important;
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }

  .public-service-card p,
  .quick-card p,
  .widget-card p,
  .card p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .btn,
  .btn-primary,
  button,
  input,
  select,
  textarea {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .btn,
  .btn-primary {
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
  }

  .quick-block-marquee,
  .marquee,
  .news-marquee {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    font-size: 14px !important;
    border-radius: 14px !important;
  }

  .banner,
  .banner-slider,
  .home-banner,
  .swiper,
  .carousel {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    border-radius: 16px !important;
  }

  .banner img,
  .banner-slider img,
  .home-banner img,
  .carousel img {
    width: 100% !important;
    height: auto !important;
    max-height: 320px !important;
    object-fit: contain !important;
  }

  .home-section,
  .section,
  section {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }

  .chatbot {
    right: 10px !important;
    bottom: 10px !important;
    max-width: calc(100vw - 20px) !important;
  }

  .chatbot-panel {
    width: calc(100vw - 20px) !important;
    max-width: 360px !important;
    right: 0 !important;
  }
}

@media (max-width: 520px) {
  .container,
  main.container,
  section .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .hero {
    padding: 18px 0 !important;
  }

  .card,
  .form-card,
  .public-service-card,
  .quick-card,
  .quick-block,
  .widget-card {
    padding: 12px !important;
    border-radius: 14px !important;
  }

  .public-top-menu a,
  .menu a,
  nav.menu a {
    font-size: 12px !important;
    padding: 8px 10px !important;
  }

  .btn,
  .btn-primary {
    width: auto !important;
    max-width: 100% !important;
    font-size: 13px !important;
  }

  .hero h1,
  .hero-title,
  .home-hero-title {
    font-size: clamp(22px, 8vw, 30px) !important;
  }

  .banner img,
  .banner-slider img,
  .home-banner img,
  .carousel img {
    max-height: 240px !important;
  }
}
