
/* v435G — Urgent eVisa page manual layout cleanup.
   Scope: urgent-evisa-support.html only. Page-by-page pass after Fees, FAQ, Tracking, Add-on Services. */

body:has(.urgent-hero){
  --urgent-rail: 1368px;
  --urgent-gutter: clamp(36px, 4.2vw, 72px);
  --urgent-gap: clamp(28px, 3vw, 48px);
}

/* One consistent rail across the Urgent eVisa page. */
body:has(.urgent-hero) .urgent-hero > .container,
body:has(.urgent-hero) main > .section > .container,
body:has(.urgent-hero) footer > .container,
body:has(.urgent-hero) .footer-grid{
  width:min(calc(100% - (var(--urgent-gutter) * 2)), var(--urgent-rail)) !important;
  max-width:var(--urgent-rail) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* Hero: keep copy and image on the same visual system as the rest of the page. */
body:has(.urgent-hero) .urgent-hero{
  padding-left:0 !important;
  padding-right:0 !important;
}

body:has(.urgent-hero) .urgent-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0, .96fr) minmax(460px, 1.04fr) !important;
  gap:var(--urgent-gap) !important;
  align-items:center !important;
}

body:has(.urgent-hero) .urgent-hero h1{
  max-width:780px !important;
}

body:has(.urgent-hero) .urgent-hero p,
body:has(.urgent-hero) .urgent-hero .muted{
  max-width:720px !important;
}

body:has(.urgent-hero) .urgent-hero .urgent-visual-card{
  width:100% !important;
  max-width:640px !important;
  margin-left:auto !important;
  margin-right:0 !important;
}

/* Section rhythm: each section starts from the same left rail. */
body:has(.urgent-hero) main > .section{
  padding-top:clamp(62px, 5.6vw, 96px) !important;
  padding-bottom:clamp(62px, 5.6vw, 96px) !important;
}

body:has(.urgent-hero) main > .section > .container > .eyebrow,
body:has(.urgent-hero) main > .section > .container > h2,
body:has(.urgent-hero) main > .section > .container > p.muted,
body:has(.urgent-hero) main > .section > .container > .section-lead{
  margin-left:0 !important;
  margin-right:auto !important;
  text-align:left !important;
}

body:has(.urgent-hero) main > .section > .container > h2{
  max-width:1120px !important;
}

body:has(.urgent-hero) main > .section > .container > p.muted,
body:has(.urgent-hero) main > .section > .container > .section-lead{
  max-width:980px !important;
}

/* Top reassurance strip: equal cards, same rail. */
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{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  gap:var(--urgent-gap) !important;
  justify-content:center !important;
  align-items:stretch !important;
}

body:has(.urgent-hero) .urgent-reassurance-strip .grid.three,
body:has(.urgent-hero) .urgent-why-section .grid.three{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}

body:has(.urgent-hero) .urgent-trust-section .trust-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
}

body:has(.urgent-hero) .urgent-faq-section .faq-preview-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
}

body:has(.urgent-hero) .trust-card,
body:has(.urgent-hero) .faq-preview-item,
body:has(.urgent-hero) .card{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Intro section: left content and right "Before you start" card become one centered composition. */
body:has(.urgent-hero) .urgent-intro-section .info-layout{
  width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0, 1.12fr) minmax(430px, .88fr) !important;
  gap:var(--urgent-gap) !important;
  align-items:stretch !important;
}

body:has(.urgent-hero) .urgent-intro-section .info-layout > div,
body:has(.urgent-hero) .urgent-intro-section .info-side{
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
}

body:has(.urgent-hero) .urgent-intro-section .info-block,
body:has(.urgent-hero) .urgent-intro-section .urgent-side-card{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}

/* Tables and pricing blocks: no separate width island. */
body:has(.urgent-hero) .urgent-table-wrap,
body:has(.urgent-hero) .urgent-table{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* Before-pay / split-card area. */
body:has(.urgent-hero) .urgent-before-pay-section .trust-split-card{
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}

/* Process section: align step card and buttons to the same rail. */
body:has(.urgent-hero) .urgent-process-section .step-list-card.urgent-step-list{
  width:100% !important;
  max-width:100% !important;
  margin:clamp(24px, 2.6vw, 38px) auto 0 !important;
  box-sizing:border-box !important;
}

body:has(.urgent-hero) .urgent-process-section .hero-actions{
  justify-content:flex-start !important;
  margin-top:clamp(22px, 2.4vw, 34px) !important;
}

/* Fee checker lower area: same alignment style as Fees page but scoped to urgent. */
body:has(.urgent-hero) .urgent-fee-checker-section .container.grid.two{
  display:grid !important;
  grid-template-columns:minmax(0, .95fr) minmax(500px, 1.05fr) !important;
  gap:var(--urgent-gap) !important;
  align-items:center !important;
}

body:has(.urgent-hero) .urgent-fee-checker-section .fee-card{
  width:100% !important;
  max-width:640px !important;
  margin-left:auto !important;
  margin-right:0 !important;
}

/* Trust boundary bottom section. */
body:has(.urgent-hero) .trust-boundary-section .trust-boundary-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:var(--urgent-gap) !important;
  align-items:stretch !important;
}

/* Decorative layers should not visually define a different page rail. */
body:has(.urgent-hero) .section::before,
body:has(.urgent-hero) .section::after{
  pointer-events:none !important;
}

/* Floating Need Help spacing on this dense page. */
@media (min-width:1100px){
  body:has(.urgent-hero) .vge-chatbot-root:not(.is-open){
    right:18px !important;
  }
}

/* Responsive: clean stacking without losing the common rail. */
@media (max-width:1180px){
  body:has(.urgent-hero){
    --urgent-gutter:clamp(24px, 5vw, 42px);
  }

  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;
  }

  body:has(.urgent-hero) .urgent-hero .urgent-visual-card,
  body:has(.urgent-hero) .urgent-fee-checker-section .fee-card{
    max-width:760px !important;
    margin-left:0 !important;
    margin-right:auto !important;
  }

  body:has(.urgent-hero) .urgent-trust-section .trust-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }

  body:has(.urgent-hero) .urgent-reassurance-strip .grid.three,
  body:has(.urgent-hero) .urgent-why-section .grid.three,
  body:has(.urgent-hero) .urgent-faq-section .faq-preview-grid,
  body:has(.urgent-hero) .trust-boundary-section .trust-boundary-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width:700px){
  body:has(.urgent-hero){
    --urgent-gutter:18px;
  }

  body:has(.urgent-hero) main > .section{
    padding-top:44px !important;
    padding-bottom:44px !important;
  }

  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{
    grid-template-columns:1fr !important;
  }

  body:has(.urgent-hero) .urgent-process-section .step-list-card.urgent-step-list{
    margin-top:18px !important;
  }
}
