
/* v440G — Viewport-centered rail for major subpages.
   Applies the same working method as v439G Fees:
   content is centered against the visible viewport, not an old document canvas.
   Scope: FAQ, Check Status, Add-on Services, Urgent eVisa. */

body:has(.vge-subpage-viewport-rail-v440G){
  --subpage-vp-rail: 1280px;
  --subpage-vp-gutter: clamp(24px, 4vw, 56px);
  --subpage-vp-gap: clamp(24px, 3vw, 42px);
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  overflow-x:clip !important;
  background:#fff !important;
}

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

/* Page bands: force them to use the visible viewport, so zoom-out does not leave content stuck left. */
body:has(.vge-subpage-viewport-rail-v440G) .topbar,
body:has(.vge-subpage-viewport-rail-v440G) header.page-hero,
body:has(.vge-subpage-viewport-rail-v440G) header.faq-compact-hero-v290G,
body:has(.vge-subpage-viewport-rail-v440G) main,
body:has(.vge-subpage-viewport-rail-v440G) 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-v440G) .topbar,
  body:has(.vge-subpage-viewport-rail-v440G) header.page-hero,
  body:has(.vge-subpage-viewport-rail-v440G) header.faq-compact-hero-v290G,
  body:has(.vge-subpage-viewport-rail-v440G) main,
  body:has(.vge-subpage-viewport-rail-v440G) footer{
    overflow-x:hidden !important;
  }
}

/* The true viewport rail. */
body:has(.vge-subpage-viewport-rail-v440G) header.page-hero > .container,
body:has(.vge-subpage-viewport-rail-v440G) header.faq-compact-hero-v290G > .container,
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G,
body:has(.vge-subpage-viewport-rail-v440G) footer > .container,
body:has(.vge-subpage-viewport-rail-v440G) .footer-grid{
  width:min(calc(100vw - (var(--subpage-vp-gutter) * 2)), var(--subpage-vp-rail)) !important;
  max-width:var(--subpage-vp-rail) !important;
  margin-left:max(var(--subpage-vp-gutter), calc((100vw - var(--subpage-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 no longer create their own separate canvas. */
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G > .container,
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G > .section > .container,
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G .container,
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G .form-shell{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* Remove old decorative layers on these subpage bodies; they visually pulled sections off-axis. */
body:has(.vge-subpage-viewport-rail-v440G) main .section::before,
body:has(.vge-subpage-viewport-rail-v440G) main .section::after{
  content:none !important;
  display:none !important;
  background:none !important;
  opacity:0 !important;
}

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

/* General section rhythm inside the centered rail. */
body:has(.vge-subpage-viewport-rail-v440G) .vge-subpage-viewport-rail-v440G > .section,
body:has(.vge-subpage-viewport-rail-v440G) main.section .vge-subpage-viewport-rail-v440G{
  padding-top:clamp(50px, 5vw, 76px) !important;
  padding-bottom:clamp(50px, 5vw, 76px) !important;
}

/* FAQ specific. */
body:has(.faq-expanded-page) .faq-expanded-page{
  width:100% !important;
  max-width:100% !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

body:has(.faq-expanded-page) .faq-tools-card,
body:has(.faq-expanded-page) .faq-category,
body:has(.faq-expanded-page) .faq-category-grid,
body:has(.faq-expanded-page) .faq-pager-card{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

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

/* Tracking specific. */
body:has(#trackingForm) main.section{
  padding-left:0 !important;
  padding-right:0 !important;
}

body:has(#trackingForm) .form-shell{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

body:has(#trackingForm) .status-help-grid{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0, 1.04fr) minmax(420px, .96fr) !important;
  gap:var(--subpage-vp-gap) !important;
  align-items:stretch !important;
}

body:has(#trackingForm) .status-card{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Add-on Services specific. */
body.addon-page .addon-hero-grid,
body.addon-page .addon-request-section > .container,
body.addon-page .section > .container.grid.two{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:var(--subpage-vp-gap) !important;
  align-items:center !important;
}

body.addon-page .addon-service-list,
body.addon-page .addon-service-card,
body.addon-page .addon-intro-section .grid.three,
body.addon-page .airport-experience-section .grid.four,
body.addon-page .addon-reassurance-section .grid.three,
body.addon-page .trust-boundary-section .grid.two{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

body.addon-page .addon-service-list{
  display:grid !important;
  gap:clamp(34px, 3.6vw, 56px) !important;
}

body.addon-page .addon-service-card{
  display:grid !important;
  grid-template-columns:minmax(420px, .92fr) minmax(0, 1.08fr) !important;
  gap:var(--subpage-vp-gap) !important;
  align-items:center !important;
}

/* Urgent eVisa specific. */
body:has(.urgent-hero) .urgent-hero-grid,
body:has(.urgent-hero) .urgent-intro-section .info-layout,
body:has(.urgent-hero) .urgent-fee-checker-section .container.grid.two{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:var(--subpage-vp-gap) !important;
  align-items:center !important;
}

body:has(.urgent-hero) .urgent-table-wrap,
body:has(.urgent-hero) .urgent-reassurance-strip .grid.three,
body:has(.urgent-hero) .urgent-why-section .grid.three,
body:has(.urgent-hero) .urgent-trust-section .trust-grid,
body:has(.urgent-hero) .urgent-faq-section .faq-preview-grid,
body:has(.urgent-hero) .trust-boundary-section .trust-boundary-grid{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

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

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

  body:has(.faq-expanded-page) .faq-category-grid,
  body:has(#trackingForm) .status-help-grid,
  body.addon-page .addon-hero-grid,
  body.addon-page .addon-request-section > .container,
  body.addon-page .section > .container.grid.two,
  body.addon-page .addon-service-card,
  body:has(.urgent-hero) .urgent-hero-grid,
  body:has(.urgent-hero) .urgent-intro-section .info-layout,
  body:has(.urgent-hero) .urgent-fee-checker-section .container.grid.two{
    grid-template-columns:1fr !important;
  }
}

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