/* VRA airport-poster visual refresh — based on the supplied brand reference. */
:root {
  --navy: #07375a;
  --blue: #0878b9;
  --cyan: #55bdea;
  --pale: #eaf7fd;
  --gold: #f0bd44;
  --ink: #092f4e;
  --muted: #496b80;
  --line: #b9dcec;
  --white: #ffffff;
  --poster-shadow: 0 18px 44px rgba(2, 42, 70, 0.14);
}

html { background: #07375a; }
body {
  background: #f7fbfd;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}
body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  height: 4px;
  z-index: 60;
  background: linear-gradient(90deg, #59c8f2 0 34%, #0786c7 34% 67%, #07375a 67%);
}

h1, h2, h3, .link-button, .site-header nav a {
  font-family: Arial, Helvetica, sans-serif;
}
h1, h2, h3 { font-weight: 900; }

.skip-link:focus { background: #fff; color: var(--navy); }
.utility {
  background: #062f50;
  color: #e6f7ff;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.brand-masthead {
  background: #fff;
  border-bottom: 0;
}
.brand-masthead .logo img {
  filter: saturate(1.06) contrast(1.03);
}
.masthead-message span { color: #248dbd; }
.masthead-message strong { color: #07375a; }
.navigation-bar {
  background: #07375a;
  border-bottom: 7px solid #55bdea;
  box-shadow: 0 7px 0 rgba(85,189,234,.14);
}
.navigation-bar nav a {
  color: #fff;
  letter-spacing: .025em;
}
.navigation-bar nav a:hover,
.navigation-bar nav a:focus-visible {
  color: #aee7ff;
  border-color: #55bdea;
}
.navigation-bar .link-button.secondary {
  color: #fff;
  background: transparent;
  border-color: #80d0f2;
}
.navigation-bar .link-button.secondary:hover { background: rgba(255,255,255,.12); }

.link-button {
  color: #fff;
  background: #0878b9;
  border: 2px solid #0878b9;
  border-radius: 13px;
  box-shadow: 0 7px 0 #05507d;
  font-weight: 900;
}
.link-button:hover,
.link-button:focus-visible {
  background: #0b8dce;
  border-color: #0b8dce;
  box-shadow: 0 4px 0 #05507d;
  transform: translateY(3px);
}
.link-button.light-button {
  color: #07375a;
  background: #fff;
  border-color: #fff;
  box-shadow: 0 7px 0 #8bcfe9;
}
.text-action, .inline-link { color: #0878b9; }
.overline {
  color: #0b82bd;
  letter-spacing: .12em;
  font-weight: 900;
}

/* The first screen is composed like the supplied airport campaign poster. */
.home-hero {
  position: relative;
  isolation: isolate;
  min-height: 585px;
  padding: 38px max(7vw, 40px) 96px;
  color: #fff;
  background: #07375a;
  gap: clamp(38px, 6vw, 88px);
}
.home-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    radial-gradient(circle at 7% 10%, rgba(85,189,234,.18), transparent 27%),
    linear-gradient(128deg, rgba(0,0,0,.08), transparent 45%);
}
.home-hero::after {
  content: "";
  position: absolute;
  left: -5%;
  right: -5%;
  bottom: -2px;
  height: 74px;
  background: #54bfea;
  clip-path: polygon(0 67%, 16% 49%, 35% 63%, 56% 42%, 75% 59%, 100% 34%, 100% 100%, 0 100%);
  z-index: -1;
}
.home-hero .hero-content { position: relative; z-index: 2; }
.home-hero .overline { color: #9ee0fa; }
.home-hero .hero-content h1 {
  color: #fff;
  max-width: 760px;
  font-size: clamp(42px, 4vw, 58px);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
  text-shadow: 0 3px 0 rgba(0,0,0,.12);
}
.home-hero .hero-content h1::after {
  content: "";
  display: block;
  width: min(72%, 390px);
  height: 9px;
  margin-top: 14px;
  border-radius: 999px;
  background: #59c5ee;
}
.home-hero .lead { color: #dff4fc; max-width: 650px; margin: 18px 0; font-size: 18px; }
.home-hero .microcopy {
  color: #d5edf7;
  max-width: 680px;
  padding: 16px 18px;
  border-left: 5px solid #58c3ed;
  border-radius: 0 12px 12px 0;
  background: rgba(255,255,255,.08);
}
.home-hero .text-action { color: #b8ebff; }
.hero-media {
  position: relative;
  min-height: 455px;
  border: 9px solid #fff;
  border-radius: 26px 26px 92px 26px;
  box-shadow: 19px 22px 0 #0b83be, 0 30px 70px rgba(0,0,0,.25);
  overflow: hidden;
  transform: rotate(1deg);
}
.hero-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 48%;
  background: linear-gradient(transparent, rgba(3,43,70,.72));
  pointer-events: none;
}
.hero-media > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: right center;
}
.hero-media .image-number {
  color: #fff;
  background: #07375a;
  border-radius: 10px;
  border: 2px solid #93dcf7;
}
.hero-media .map-card {
  z-index: 2;
  left: 24px;
  right: 24px;
  bottom: 24px;
  border: 3px solid #d8f3fd;
  border-radius: 17px;
  box-shadow: var(--poster-shadow);
}

.rule-bar {
  position: relative;
  z-index: 4;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
  margin: -39px max(5vw, 26px) 0;
  padding: 0;
  border: 0;
}
.rule-bar div {
  min-height: 104px;
  padding: 20px;
  border: 3px solid #d9f1fa;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--poster-shadow);
}
.rule-bar div:last-child { border: 3px solid #d9f1fa; }
.rule-bar b {
  flex: 0 0 auto;
  color: #fff;
  background: #0878b9;
  min-width: 69px;
  min-height: 52px;
  padding: 10px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: 15px;
  line-height: 1.05;
}
.rule-bar span { color: #153f5c; font-size: 13px; font-weight: 800; }

.content-section { padding-top: 94px; padding-bottom: 94px; }
.section-intro h2, .content-section h2 {
  color: #07375a;
  font-weight: 900;
  letter-spacing: -.035em;
}
.confidence-journey {
  background: linear-gradient(180deg, #edf9fe, #dff3fb);
  border-top: 1px solid #c0e1ef;
}
.confidence-note,
.submission-encouragement,
.timeline-warning,
.calculator-notice {
  border-radius: 15px;
  border-left-color: #0c83bd;
}
.motivation-track article,
.task-card,
.responsibility-grid article,
.country-guide-grid article,
.route-grid article,
.help-grid article,
.definition-grid > div,
.method-grid > div,
.payment-steps article,
.status-cards article,
.claim-route-card {
  border: 3px solid #c9e8f4;
  border-radius: 18px;
  box-shadow: 10px 11px 0 #d9eef7;
  overflow: hidden;
}
.task-card { padding: 0; background: #fff; }
.task-card > img { width: 100%; height: 160px; object-fit: cover; }
.task-card .task-copy { padding: 25px 25px 28px; display: flex; flex: 1; flex-direction: column; }
.task-card h3 { margin: 0 0 11px; font-size: 24px; }
.task-card strong { margin-top: auto; }
.task-card:hover { border-color: #66bee3; box-shadow: 7px 8px 0 #9ed9ef; }

.process-section,
.editorial-gallery,
.safety-panel,
.fee-card,
.scam-card,
.verification-banner,
.document-example {
  background: #07375a;
}
.process-section { position: relative; overflow: hidden; }
.process-section::after {
  content: "";
  position: absolute;
  inset: auto -4% 0;
  height: 42px;
  background: #56c0e9;
  clip-path: polygon(0 62%, 22% 28%, 43% 58%, 66% 22%, 83% 49%, 100% 20%, 100% 100%, 0 100%);
}
.process-track article {
  margin: 0 7px;
  padding: 25px 20px;
  text-align: left;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
}
.process-track h3 { color: #fff; }
.process-track p { color: #d6edf7; }

.responsibility-section { background: #e7f6fc; }
.responsibility-grid article { box-shadow: 10px 11px 0 #cfe9f4; }
.responsibility-grid span,
.country-guide-grid span,
.route-grid article > span,
.method-grid b { color: #0878b9; }

.editorial-gallery { border-top: 10px solid #57c2eb; }
.editorial-gallery article { border-radius: 20px; border-color: #fff; }
.gallery-large { box-shadow: 14px 16px 0 #0a7bb4; }

.status-panel,
.help-cta,
.payment-split > div:first-child,
.two-column-copy > div,
.two-column-copy > ul,
.complaint-card,
.example-warning {
  background: #e6f6fc;
}
.status-panel li { border-bottom-color: #b9dfef; }
.portal-note { border-radius: 0 14px 14px 0; border-left-color: #0a82bd; }

/* Interior pages use the same poster headline and sky-wave language. */
.page-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 88% 20%, rgba(90,198,239,.22), transparent 24%),
    linear-gradient(125deg, #07375a, #07507e);
  border-bottom: 0;
  padding-top: 70px;
  padding-bottom: 105px;
}
.page-hero::after {
  content: "";
  position: absolute;
  left: -3%; right: -3%; bottom: -1px;
  height: 58px;
  background: #58c4ec;
  clip-path: polygon(0 56%, 18% 30%, 36% 61%, 58% 32%, 78% 58%, 100% 26%, 100% 100%, 0 100%);
}
.page-hero h1 {
  color: #fff;
  max-width: 900px;
  text-shadow: 0 3px 0 rgba(0,0,0,.12);
}
.page-hero > p:last-of-type { color: #d9f0f9; }
.breadcrumb, .breadcrumb a { color: #b9e9fb; }
.page-hero > .link-button { color: #07375a; background: #fff; border-color: #fff; }

.guide-layout aside {
  border: 0;
  border-radius: 17px;
  padding: 24px;
  background: #e7f6fc;
  box-shadow: inset 0 0 0 2px #bee1ef;
}
.guide-layout aside a { border-radius: 10px; padding: 11px 12px; }
.guide-layout aside a:hover { color: #fff; background: #0878b9; }
.interactive-checklist label,
.jump-grid a,
.link-directory a,
.contact-strip,
.amount-field > div {
  border-radius: 13px;
  border-color: #add9ea;
}
.interactive-checklist label:hover,
.jump-grid a:hover,
.link-directory a:hover {
  border-color: #55bce5;
  box-shadow: 0 7px 0 #d9eef7;
}
.step-label,
.payment-steps b,
.route-grid article > span {
  background: #0878b9;
  color: #fff;
  border-color: #8fd9f5;
  border-radius: 50%;
}
.airport-video-guide,
.calculator-card,
.document-example {
  border-radius: 20px;
  outline-color: #5bbfe7;
  box-shadow: 12px 14px 0 #d7eef7;
}
.status-cards article > div { background: linear-gradient(145deg, #07375a, #06466f); }
.status-cards article > div h2 { color: #fff; }
.route-status { border-radius: 999px; }
.claim-route-card.featured { background: #07375a; border-color: #07375a; box-shadow: 10px 11px 0 #89d1ed; }
.already-claimed { border-radius: 20px; border-bottom-color: #57c2ea; }
.sample-paper { border-radius: 6px; }
.document-example-tab { background: #0878b9; border-radius: 12px 0 0 12px; }

.site-footer {
  background: #052d4b;
  border-top: 11px solid #58c4ec;
}
.footer-main { border-top: 0; }
.footer-main img { border-radius: 12px; }

@media (max-width: 1100px) {
  .rule-bar { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 24px; }
  .home-hero { padding-bottom: 82px; }
}

@media (max-width: 900px) {
  .home-hero { grid-template-columns: 1fr; padding-top: 58px; }
  .home-hero .hero-content h1 { max-width: 760px; }
  .hero-media { min-height: 430px; transform: none; }
  .hero-media > img { min-height: 0; }
  .process-track article { margin: 7px 0; }
}

@media (max-width: 700px) {
  body::before { height: 3px; }
  .navigation-bar { border-bottom-width: 5px; }
  .home-hero { padding: 46px 20px 78px; }
  .home-hero .hero-content h1 { font-size: clamp(40px, 12vw, 58px); }
  .home-hero .lead { font-size: 17px; }
  .home-hero .button-row { align-items: flex-start; flex-direction: column; }
  .hero-media { min-height: 365px; border-width: 6px; border-radius: 20px 20px 52px 20px; box-shadow: 10px 12px 0 #0b83be; }
  .hero-media > img { min-height: 0; }
  .hero-media .map-card { grid-template-columns: 1fr; gap: 7px; left: 15px; right: 15px; bottom: 15px; padding: 17px; }
  .rule-bar { grid-template-columns: 1fr; margin: 18px 16px 0; }
  .rule-bar div { min-height: 88px; }
  .rule-bar b { min-width: 60px; min-height: 48px; }
  .content-section { padding-top: 70px; padding-bottom: 70px; }
  .section-intro h2, .content-section h2 { font-size: 34px; }
  .task-card > img { height: 190px; }
  .page-hero { padding: 42px 20px 82px; }
  .page-hero h1 { font-size: clamp(39px, 11vw, 57px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Contrast corrections for small text, status badges and keyboard focus. */
.masthead-message span { color: #075c95; }
.overline { color: #075c95; }
.page-hero .overline { color: #aee7ff; }
.task-card > span,
.route-number { color: #075c95; }
.link-button:hover,
.link-button:focus-visible { background: #075c95; border-color: #075c95; }
.route-status.support { background: #8b6618; }
.route-status.unavailable { background: #65717a; }
a:focus-visible,
button:focus-visible,
summary:focus-visible { outline-color: #0878b9; }

.disabled-button { color: #52606a; border-color: #65717a; }


/* Keep brand-blue overlines readable when their panel uses a dark surface. */
.safety-panel .overline,
.fee-card .overline,
.scam-card .overline,
.verification-banner .overline,
.process-section .overline,
.claim-readiness .overline { color: #aee7ff; }
.claim-route-card.featured .route-number { color: #aee7ff; }

/* Use a light keyboard focus outline on navy and other dark brand panels. */
:is(.utility, .navigation-bar, .home-hero, .page-hero, .process-section, .editorial-gallery, .safety-panel, .fee-card, .scam-card, .verification-banner, .document-example, .site-footer, .claim-readiness, .already-claimed, .airport-video-guide, .calculator-results, .status-cards article > div, .claim-route-card.featured) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline-color: #aee7ff;
}

.document-example .overline, .airport-video-guide .overline { color: #aee7ff; }

