/* v505G — second-pass mobile-only safety guard.
   IMPORTANT: every rule is inside mobile media queries so desktop/web layout is not touched. */

@media (max-width: 980px){
  html,
  body:not([class*="admin"]){
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  body:not([class*="admin"]) *,
  body:not([class*="admin"]) *::before,
  body:not([class*="admin"]) *::after{
    box-sizing:border-box !important;
  }

  body:not([class*="admin"]) .container,
  body:not([class*="admin"]) .vge-subpage-viewport-rail-v440G,
  body:not([class*="admin"]) .vge-subpage-viewport-rail-v441G,
  body:not([class*="admin"]) .order-shell,
  body:not([class*="admin"]) .form-shell{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body:not([class*="admin"]) .grid.two,
  body:not([class*="admin"]) .grid.three,
  body:not([class*="admin"]) .grid.four,
  body:not([class*="admin"]) .hero-grid,
  body:not([class*="admin"]) .fees-hero-grid,
  body:not([class*="admin"]) .urgent-hero-grid,
  body:not([class*="admin"]) .addon-hero-grid,
  body:not([class*="admin"]) .info-layout,
  body:not([class*="admin"]) .trust-boundary-grid,
  body:not([class*="admin"]) .addon-detail-grid,
  body:not([class*="admin"]) .airport-service-grid,
  body:not([class*="admin"]) .fee-checker-shell,
  body:not([class*="admin"]) .fee-checker-grid{
    grid-template-columns:1fr !important;
    max-width:100% !important;
  }

  body:not([class*="admin"]) .page-hero,
  body:not([class*="admin"]) .hero,
  body:not([class*="admin"]) section,
  body:not([class*="admin"]) main,
  body:not([class*="admin"]) .card,
  body:not([class*="admin"]) .step,
  body:not([class*="admin"]) .trust-card,
  body:not([class*="admin"]) .addon-service-card,
  body:not([class*="admin"]) .faq-preview-item{
    max-width:100% !important;
    overflow-wrap:break-word !important;
  }

  body:not([class*="admin"]) .urgent-table-wrap,
  body:not([class*="admin"]) .table-wrap,
  body:not([class*="admin"]) .fee-table-wrap,
  body:not([class*="admin"]) .pricing-table-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  body:not([class*="admin"]) input,
  body:not([class*="admin"]) select,
  body:not([class*="admin"]) textarea,
  body:not([class*="admin"]) button,
  body:not([class*="admin"]) .btn{
    max-width:100% !important;
  }

  body:not([class*="admin"]) .hero-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  body:not([class*="admin"]) .hero-actions .btn{
    width:100% !important;
    white-space:normal !important;
    line-height:1.25 !important;
  }

  body:not([class*="admin"]) .urgent-visual-card,
  body:not([class*="admin"]) .home-image-panel,
  body:not([class*="admin"]) .media-card,
  body:not([class*="admin"]) .addon-service-media{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  body:not([class*="admin"]) .urgent-visual-card img,
  body:not([class*="admin"]) .home-image-panel img,
  body:not([class*="admin"]) .media-card img,
  body:not([class*="admin"]) .addon-service-media img{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:0 !important;
  }

  /* Keep public floating contact labels from covering mobile form/table edges. */
  body:not([class*="admin"]) .whatsapp-float,
  body:not([class*="admin"]) .messenger-float,
  body:not([class*="admin"]) .telegram-float{
    max-width:92px !important;
  }
}

@media (max-width: 640px){
  body:not([class*="admin"]) .container{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  body:not([class*="admin"]) .page-hero h1,
  body:not([class*="admin"]) .hero h1,
  body:not([class*="admin"]) .section h2,
  body:not([class*="admin"]) .form-step h2{
    max-width:100% !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;
  }

  body:not([class*="admin"]) .summary-row,
  body:not([class*="admin"]) .total,
  body:not([class*="admin"]) .mini-section,
  body:not([class*="admin"]) .apply-card,
  body:not([class*="admin"]) .upload-card{
    max-width:100% !important;
  }

  body:not([class*="admin"]) .date-parts{
    grid-template-columns:1fr !important;
  }

  body:not([class*="admin"]) .footer-grid,
  body:not([class*="admin"]) .footer-grid-3{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 420px){
  body:not([class*="admin"]) .passport-guide-grid-v489G{
    grid-template-columns:1fr !important;
  }

  body:not([class*="admin"]) .portrait-guide-grid-v496G{
    grid-template-columns:1fr !important;
  }
}
