
/* v430G — Public per-page visual balance pass 2.
   This builds on v429G. Goal: remove the visible "wide section then shifted/narrow section"
   feeling on key public pages by aligning each page's special blocks to the same visual rail. */

:root{
  --vge-page-rail: 1480px;
  --vge-page-gutter: clamp(28px, 3.2vw, 64px);
  --vge-card-gap: clamp(22px, 2.4vw, 36px);
}

/* General: section headings and large panels should start on the same line as the page rail. */
body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) main.section,
body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) main > .section{
  padding-left:0 !important;
  padding-right:0 !important;
}

body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) .section > .container > h2,
body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) .section > .container > .eyebrow,
body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) .section > .container > .section-lead{
  margin-left:0 !important;
  margin-right:auto !important;
}

/* FAQ page: hero card and FAQ search/content panel use the same rail and width. */
.faq-compact-hero-v290G > .container,
.faq-expanded-page{
  width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  max-width:var(--vge-page-rail) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.faq-compact-hero-v290G{
  padding-left:0 !important;
  padding-right:0 !important;
}

.faq-hero-visual-card-v290G{
  width:100% !important;
}

.faq-expanded-page{
  padding-left:0 !important;
  padding-right:0 !important;
}

.faq-expanded-page .faq-category-nav,
.faq-expanded-page .faq-category,
.faq-expanded-page .faq-category-grid{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.faq-expanded-page .faq-category-nav{
  border-radius:28px !important;
}

/* Long FAQ filter pills should not make the whole panel visually run off to the right. */
.faq-expanded-page .faq-category-nav,
.faq-expanded-page .faq-category-page-switcher,
.faq-expanded-page .faq-category-grid{
  box-sizing:border-box !important;
}

/* Tracking page: the title area and the two status cards sit on one centered rail.
   The two card widths are balanced so the right card does not look like it is drifting. */
body:has(#trackingForm) main.section{
  padding-top:clamp(66px, 7vw, 118px) !important;
}

body:has(#trackingForm) .form-shell{
  width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  max-width:var(--vge-page-rail) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body:has(#trackingForm) .form-shell > h1,
body:has(#trackingForm) .form-shell > .muted{
  max-width:1180px !important;
}

body:has(#trackingForm) .status-help-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 1.08fr) minmax(380px, .92fr) !important;
  gap:var(--vge-card-gap) !important;
  align-items:stretch !important;
  width:100% !important;
  margin-top:28px !important;
}

body:has(#trackingForm) .status-card{
  width:100% !important;
  max-width:none !important;
  min-height:0 !important;
}

/* Add-on page: align intro cards, add-on list, request area, and reassurance grids. */
body.addon-page .addon-hero > .container,
body.addon-page .section > .container{
  width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  max-width:var(--vge-page-rail) !important;
}

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{
  gap:var(--vge-card-gap) !important;
  justify-content:center !important;
}

body.addon-page .addon-service-list{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:grid !important;
  gap:clamp(26px, 3vw, 44px) !important;
}

body.addon-page .addon-service-card{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  grid-template-columns:minmax(420px, .86fr) minmax(0, 1.14fr) !important;
  gap:clamp(28px, 3.4vw, 56px) !important;
  align-items:center !important;
}

body.addon-page .addon-service-card:nth-child(even){
  grid-template-columns:minmax(0, 1.14fr) minmax(420px, .86fr) !important;
}

body.addon-page .addon-request-section > .container,
body.addon-page .section > .container.grid.two{
  align-items:center !important;
  gap:var(--vge-card-gap) !important;
}

/* Urgent page: align info layout, pricing table, process list, trust grids, FAQ preview. */
body.service-polish-v256 .urgent-hero > .container,
body.service-polish-v256 .urgent-intro-section > .container,
body.service-polish-v256 .urgent-before-pay-section > .container,
body.service-polish-v256 .urgent-process-section > .container,
body.service-polish-v256 .urgent-why-section > .container,
body.service-polish-v256 .urgent-trust-section > .container,
body.service-polish-v256 .urgent-faq-section > .container,
body.service-polish-v256 .urgent-fee-checker-section > .container{
  width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  max-width:var(--vge-page-rail) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.service-polish-v256 .info-layout{
  display:grid !important;
  grid-template-columns:minmax(0, 1.25fr) minmax(390px, .75fr) !important;
  gap:var(--vge-card-gap) !important;
  align-items:stretch !important;
}

body.service-polish-v256 .info-layout > div,
body.service-polish-v256 .info-side{
  min-width:0 !important;
  max-width:none !important;
}

body.service-polish-v256 .urgent-table-wrap,
body.fees-page .urgent-table-wrap{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.service-polish-v256 .trust-grid,
body.service-polish-v256 .faq-preview-grid,
body.service-polish-v256 .grid.three{
  gap:var(--vge-card-gap) !important;
  justify-content:center !important;
}

/* Fees page: make fee checker, tables, trust grid, examples, and CTA all share the same width. */
body.fees-page .fees-hero > .container,
body.fees-page .section > .container{
  width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  max-width:var(--vge-page-rail) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.fees-page .fees-check-section .grid.two{
  grid-template-columns:minmax(0, .9fr) minmax(440px, 1.1fr) !important;
  gap:var(--vge-card-gap) !important;
  align-items:center !important;
}

body.fees-page .fee-card{
  max-width:none !important;
}

body.fees-page .fees-trust-section .trust-grid{
  width:100% !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:var(--vge-card-gap) !important;
}

body.fees-page .fees-example-grid{
  width:100% !important;
  gap:var(--vge-card-gap) !important;
  align-items:stretch !important;
}

/* Prevent the floating Need help pill from making lower-right layouts feel visually crowded. */
@media (min-width: 1100px){
  body:not(.vge-admin-page):not(.admin-body):not([class*="admin"]) main{
    padding-bottom:clamp(42px, 5vw, 76px);
  }
}

/* Tablet and mobile fallback: keep the same rail but stop two-column forcing. */
@media (max-width: 1080px){
  body:has(#trackingForm) .status-help-grid,
  body.service-polish-v256 .info-layout,
  body.fees-page .fees-check-section .grid.two{
    grid-template-columns:1fr !important;
  }

  body.addon-page .addon-service-card,
  body.addon-page .addon-service-card:nth-child(even){
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 900px){
  :root{
    --vge-page-gutter: clamp(18px, 5vw, 28px);
  }

  .faq-compact-hero-v290G > .container,
  .faq-expanded-page,
  body:has(#trackingForm) .form-shell,
  body.addon-page .addon-hero > .container,
  body.addon-page .section > .container,
  body.service-polish-v256 .urgent-hero > .container,
  body.service-polish-v256 .urgent-intro-section > .container,
  body.service-polish-v256 .urgent-before-pay-section > .container,
  body.service-polish-v256 .urgent-process-section > .container,
  body.service-polish-v256 .urgent-why-section > .container,
  body.service-polish-v256 .urgent-trust-section > .container,
  body.service-polish-v256 .urgent-faq-section > .container,
  body.service-polish-v256 .urgent-fee-checker-section > .container,
  body.fees-page .fees-hero > .container,
  body.fees-page .section > .container{
    width:min(calc(100% - (var(--vge-page-gutter) * 2)), var(--vge-page-rail)) !important;
  }

  body.fees-page .fees-trust-section .trust-grid{
    grid-template-columns:1fr !important;
  }
}
