
/* v441G — All customer-facing subpages viewport-centered rail.
   This applies the proven Fees/v440 method to every remaining customer-facing
   subpage, while leaving the homepage and admin/internal pages untouched. */

html:has(body .vge-subpage-viewport-rail-v441G),
body:has(.vge-subpage-viewport-rail-v441G){
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  overflow-x:clip !important;
}

@supports not (overflow: clip){
  html:has(body .vge-subpage-viewport-rail-v441G),
  body:has(.vge-subpage-viewport-rail-v441G){
    overflow-x:hidden !important;
  }
}

body:has(.vge-subpage-viewport-rail-v441G){
  --sub-vp-rail:1280px;
  --sub-vp-gutter:clamp(24px, 4vw, 56px);
  --sub-vp-gap:clamp(24px, 3vw, 42px);
  background:#fff !important;
}

/* Full-width bands must be anchored to the visible viewport, not to an old page canvas. */
body:has(.vge-subpage-viewport-rail-v441G) .topbar,
body:has(.vge-subpage-viewport-rail-v441G) header.page-hero,
body:has(.vge-subpage-viewport-rail-v441G) header.faq-compact-hero-v290G,
body:has(.vge-subpage-viewport-rail-v441G) main,
body:has(.vge-subpage-viewport-rail-v441G) footer{
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  overflow-x:clip !important;
  box-sizing:border-box !important;
}

@supports not (overflow: clip){
  body:has(.vge-subpage-viewport-rail-v441G) .topbar,
  body:has(.vge-subpage-viewport-rail-v441G) header.page-hero,
  body:has(.vge-subpage-viewport-rail-v441G) header.faq-compact-hero-v290G,
  body:has(.vge-subpage-viewport-rail-v441G) main,
  body:has(.vge-subpage-viewport-rail-v441G) footer{
    overflow-x:hidden !important;
  }
}

/* Real viewport rail for subpage hero/main/footer. */
body:has(.vge-subpage-viewport-rail-v441G) header.page-hero > .container,
body:has(.vge-subpage-viewport-rail-v441G) header.faq-compact-hero-v290G > .container,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G,
body:has(.vge-subpage-viewport-rail-v441G) footer > .container,
body:has(.vge-subpage-viewport-rail-v441G) .footer-grid{
  width:min(calc(100vw - (var(--sub-vp-gutter) * 2)), var(--sub-vp-rail)) !important;
  max-width:var(--sub-vp-rail) !important;
  margin-left:max(var(--sub-vp-gutter), calc((100vw - var(--sub-vp-rail)) / 2)) !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
  transform:none !important;
  left:auto !important;
  right:auto !important;
}

/* Containers inside the rail should not create a second alignment system. */
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .container,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .section > .container,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .container,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .form-shell,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .policy-content,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .order-shell{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Remove decorative pseudo layers that visually pull subpage sections off-axis. */
body:has(.vge-subpage-viewport-rail-v441G) main .section::before,
body:has(.vge-subpage-viewport-rail-v441G) main .section::after{
  content:none !important;
  display:none !important;
  background:none !important;
  opacity:0 !important;
}

body:has(.vge-subpage-viewport-rail-v441G) main .section{
  overflow:visible !important;
  isolation:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Common section rhythm. */
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .section,
body:has(.vge-subpage-viewport-rail-v441G) main.section .vge-subpage-viewport-rail-v441G,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .container{
  padding-top:clamp(46px, 4.8vw, 74px) !important;
  padding-bottom:clamp(46px, 4.8vw, 74px) !important;
}

/* Keep headings and lead text aligned to the true rail. */
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G h1,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G h2,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .eyebrow,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G .section-lead,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G p.muted{
  margin-left:0 !important;
  margin-right:auto !important;
}

body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .section > .container > p.muted,
body:has(.vge-subpage-viewport-rail-v441G) .vge-subpage-viewport-rail-v441G > .section > .container > .section-lead{
  max-width:980px !important;
}

/* Common grids/cards/tables fill the rail consistently. */
body:has(.vge-subpage-viewport-rail-v441G) .grid,
body:has(.vge-subpage-viewport-rail-v441G) .trust-grid,
body:has(.vge-subpage-viewport-rail-v441G) .trust-feature-grid,
body:has(.vge-subpage-viewport-rail-v441G) .trust-boundary-grid,
body:has(.vge-subpage-viewport-rail-v441G) .ads-trust-strip,
body:has(.vge-subpage-viewport-rail-v441G) .urgent-table-wrap,
body:has(.vge-subpage-viewport-rail-v441G) .table-wrap,
body:has(.vge-subpage-viewport-rail-v441G) .addon-service-list,
body:has(.vge-subpage-viewport-rail-v441G) .faq-category-grid,
body:has(.vge-subpage-viewport-rail-v441G) .faq-tools-card{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Two-column structures. */
body:has(.vge-subpage-viewport-rail-v441G) .grid.two,
body:has(.vge-subpage-viewport-rail-v441G) .landing-grid.grid.two,
body:has(.vge-subpage-viewport-rail-v441G) .hero-grid,
body:has(.vge-subpage-viewport-rail-v441G) .info-layout,
body:has(.vge-subpage-viewport-rail-v441G) .status-help-grid,
body:has(.vge-subpage-viewport-rail-v441G) .order-layout,
body:has(.vge-subpage-viewport-rail-v441G) .trust-boundary-grid,
body:has(.vge-subpage-viewport-rail-v441G) .visa-info-hero-grid,
body:has(.vge-subpage-viewport-rail-v441G) .visa-checker-hero-grid,
body:has(.vge-subpage-viewport-rail-v441G) .trust-center-hero-grid,
body:has(.vge-subpage-viewport-rail-v441G) .addon-hero-grid,
body:has(.vge-subpage-viewport-rail-v441G) .urgent-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:var(--sub-vp-gap) !important;
  align-items:center !important;
}

/* Three/four-card structures. */
body:has(.vge-subpage-viewport-rail-v441G) .grid.three{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:var(--sub-vp-gap) !important;
}
body:has(.vge-subpage-viewport-rail-v441G) .grid.four,
body:has(.vge-subpage-viewport-rail-v441G) .ads-trust-strip{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:22px !important;
}

/* FAQ. */
body:has(.faq-expanded-page) .faq-category-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:var(--sub-vp-gap) !important;
}

/* Add-on cards. */
body.addon-page .addon-service-card{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(420px, .92fr) minmax(0, 1.08fr) !important;
  gap:var(--sub-vp-gap) !important;
  align-items:center !important;
  box-sizing:border-box !important;
}

/* Tables. */
body:has(.vge-subpage-viewport-rail-v441G) table{
  width:100% !important;
}

/* Responsive. */
@media (max-width:1100px){
  body:has(.vge-subpage-viewport-rail-v441G){
    --sub-vp-gutter:clamp(22px, 5vw, 42px);
  }

  body:has(.vge-subpage-viewport-rail-v441G) .grid.two,
  body:has(.vge-subpage-viewport-rail-v441G) .landing-grid.grid.two,
  body:has(.vge-subpage-viewport-rail-v441G) .hero-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .info-layout,
  body:has(.vge-subpage-viewport-rail-v441G) .status-help-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .order-layout,
  body:has(.vge-subpage-viewport-rail-v441G) .trust-boundary-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .visa-info-hero-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .visa-checker-hero-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .trust-center-hero-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .addon-hero-grid,
  body:has(.vge-subpage-viewport-rail-v441G) .urgent-hero-grid,
  body.addon-page .addon-service-card,
  body:has(.faq-expanded-page) .faq-category-grid{
    grid-template-columns:1fr !important;
  }

  body:has(.vge-subpage-viewport-rail-v441G) .grid.three,
  body:has(.vge-subpage-viewport-rail-v441G) .grid.four,
  body:has(.vge-subpage-viewport-rail-v441G) .ads-trust-strip{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width:720px){
  body:has(.vge-subpage-viewport-rail-v441G){
    --sub-vp-gutter:18px;
  }

  body:has(.vge-subpage-viewport-rail-v441G) .grid.three,
  body:has(.vge-subpage-viewport-rail-v441G) .grid.four,
  body:has(.vge-subpage-viewport-rail-v441G) .ads-trust-strip{
    grid-template-columns:1fr !important;
  }
}
