/* Canonical V40 visual contract: PL, US and UK. */
:root {
  --v40-ink: #10213b;
  --v40-muted: #687892;
  --v40-line: #dce5f2;
  --v40-panel: #ffffff;
  --v40-soft: #f3f7fc;
  --v40-blue: #3157f5;
  --v40-teal: #39c9ad;
  --v40-navy: #07172f;
  --v40-shadow: 0 22px 64px rgba(21, 46, 88, .12);
}

/* Homepage rails always use the same card geometry and visible rhythm. */
.approved-service-rail,
.approved-capability-grid {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 12px !important;
  overflow-x: auto !important;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 5px 2px 12px !important;
}
.approved-service-rail::-webkit-scrollbar,
.approved-capability-grid::-webkit-scrollbar { display: none; }
.approved-service-rail .approved-service-tile {
  flex: 0 0 min(290px, calc((100% - 24px) / 3));
  min-height: 132px;
  scroll-snap-align: start;
}
.approved-capability-grid .approved-capability {
  flex: 0 0 min(310px, calc((100% - 36px) / 4));
  min-height: 150px;
  scroll-snap-align: start;
}
.approved-service-tile,
.approved-capability {
  border-radius: 20px !important;
  border-color: var(--v40-line) !important;
  box-shadow: 0 10px 28px rgba(24, 47, 87, .07);
}
.approved-service-tile:has(input:checked) {
  border-color: var(--v40-blue) !important;
  box-shadow: 0 14px 34px rgba(49, 87, 245, .18);
  transform: translateY(-2px);
}
.approved-dropzone-premium {
  border-radius: 22px !important;
  border-style: dashed !important;
  background: linear-gradient(145deg, #f7faff, #eef4ff) !important;
}
.approved-selected-files {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.approved-selected-files > span,
.approved-selected-files .v40-file-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid #dce5f2;
  border-radius: 999px;
  background: #fff;
  color: #42536d;
  font-size: 11px;
  font-weight: 800;
}
.approved-selected-files .v40-file-chip button {
  border: 0;
  background: transparent;
  color: #8a98ab;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}
.approved-upload-error {
  margin-top: 9px;
  padding: 10px 12px;
  border: 1px solid #f2b4c2;
  border-radius: 12px;
  background: #fff3f6;
  color: #9d2847;
  font-size: 11px;
  font-weight: 700;
}

/* Shared public subpage composition. */
.v40-public-page {
  width: min(1040px, 100%);
  margin: 0 auto;
}
.v40-public-page .public-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(30px, 6vw, 68px);
  border: 1px solid var(--v40-line);
  border-radius: 30px;
  background:
    radial-gradient(circle at 88% 4%, rgba(68, 103, 246, .20), transparent 34%),
    linear-gradient(145deg, #fff, #f3f7ff);
  box-shadow: var(--v40-shadow);
}
.v40-public-page .public-hero h1 {
  max-width: 780px;
  margin: 17px 0 12px;
  font-size: clamp(34px, 5.5vw, 60px);
  line-height: 1.02;
  letter-spacing: -.045em;
}
.v40-public-page .public-content {
  margin-top: 18px;
  padding: clamp(24px, 5vw, 52px);
  border: 1px solid var(--v40-line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 16px 44px rgba(21, 46, 88, .08);
}
.v40-public-page .public-content h2,
.v40-public-page .public-content h3 {
  color: var(--v40-ink);
  letter-spacing: -.025em;
}
.v40-public-page .public-content p,
.v40-public-page .public-content li {
  color: #52627a;
  line-height: 1.78;
}
.v40-related-section {
  margin-top: 18px;
  padding: clamp(24px, 5vw, 42px);
  border-radius: 26px;
  background: linear-gradient(145deg, #07172f, #123e75);
  color: #fff;
}
.v40-related-section > div:first-child > span {
  color: #70dfca;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.v40-related-section h2 { margin: 8px 0 6px; font-size: 28px; }
.v40-related-section p { margin: 0; color: #c4d2e8; line-height: 1.6; }
.v40-related-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}
.v40-related-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 174px;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .07);
  color: #fff;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.v40-related-card:hover {
  transform: translateY(-3px);
  border-color: rgba(110, 231, 208, .52);
  background: rgba(255, 255, 255, .11);
}
.v40-related-card > span { color: #70dfca; font-size: 20px; font-weight: 900; }
.v40-related-card strong { font-size: 15px; line-height: 1.25; }
.v40-related-card small { color: #bdcbe0; font-size: 11px; line-height: 1.55; }
.v40-related-card i { position: absolute; right: 16px; bottom: 14px; font-style: normal; color: #70dfca; }

/* One modern order tracker and card for every market. */
.v40-order-shell {
  width: min(980px, 100%);
  margin: 0 auto;
}
.v40-order-reference {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 4px 10px;
  color: #78879c;
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.v40-order-reference span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #e9efff;
  color: var(--v40-blue);
  font-weight: 900;
}
.v40-stage-track {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}
.v40-stage-track li {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 10px 5px;
  border: 1px solid var(--v40-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
  color: #8390a3;
}
.v40-stage-track li span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: #e8eef7;
  font-size: 11px;
  font-weight: 900;
}
.v40-stage-track li small {
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.v40-stage-track li.done,
.v40-stage-track li.active { color: var(--v40-ink); }
.v40-stage-track li.done span {
  background: #dff8ef;
  color: #148263;
}
.v40-stage-track li.active {
  border-color: rgba(49, 87, 245, .4);
  background: #f1f4ff;
  box-shadow: 0 9px 24px rgba(49, 87, 245, .12);
}
.v40-stage-track li.active span {
  background: linear-gradient(135deg, var(--v40-blue), #7357ee);
  color: #fff;
}
.v40-order-card {
  overflow: hidden;
  border-radius: 28px !important;
  box-shadow: var(--v40-shadow) !important;
}
.v40-order-card > header {
  margin: -48px -48px 30px;
  padding: 35px 48px 30px;
  background:
    radial-gradient(circle at 94% 0, rgba(70, 105, 245, .16), transparent 38%),
    linear-gradient(145deg, #f9fbff, #eef4ff);
  border-bottom: 1px solid var(--v40-line);
}
.v40-order-card > header > span {
  color: var(--v40-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.v40-order-card > header h1 {
  margin: 8px 0 8px;
  font-size: clamp(30px, 4.8vw, 47px);
  line-height: 1.02;
}
.v40-order-card > header p { margin: 0; color: var(--v40-muted); line-height: 1.65; }
.v40-processing-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 30px;
  align-items: center;
  padding: 26px;
  border: 1px solid var(--v40-line);
  border-radius: 24px;
  background: linear-gradient(145deg, #fff, #f5f8fd);
}
.v40-processing-visual {
  position: relative;
  display: grid;
  place-items: center;
  width: 150px;
  height: 150px;
  margin: auto;
}
.v40-processing-visual i {
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(49, 87, 245, .25);
  border-radius: 50%;
  animation: v40Orbit 4s linear infinite;
}
.v40-processing-visual i:nth-child(2) {
  inset: 24px;
  border-style: dashed;
  animation-direction: reverse;
  animation-duration: 3s;
}
.v40-processing-visual span {
  display: grid;
  place-items: center;
  width: 74px;
  height: 74px;
  border-radius: 24px;
  background: linear-gradient(145deg, var(--v40-blue), #7357ee);
  color: #fff;
  font-size: 22px;
  font-weight: 900;
  box-shadow: 0 18px 36px rgba(49, 87, 245, .25);
}
.v40-processing-card h2 { margin: 0 0 8px; font-size: 27px; }
.v40-processing-card > div > p { margin: 0; color: var(--v40-muted); line-height: 1.65; }
.v40-processing-rows { display: grid; gap: 8px; margin-top: 18px; }
.v40-processing-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  border: 1px solid var(--v40-line);
  border-radius: 13px;
  background: #fff;
}
.v40-processing-row span {
  display: grid;
  place-items: center;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #edf1f7;
  color: #687892;
  font-size: 10px;
  font-weight: 900;
}
.v40-processing-row.active span { background: #dff8ef; color: #148263; }
.v40-processing-row p { margin: 0; color: #53627a; font-size: 12px; line-height: 1.5; }
@keyframes v40Orbit { to { transform: rotate(360deg); } }

/* Refined concise footer. */
.approved-footer-restored {
  position: relative;
  margin-top: 38px;
  overflow: hidden;
  border-radius: 32px 32px 0 0;
  background:
    radial-gradient(circle at 10% 0, rgba(64, 100, 245, .24), transparent 35%),
    linear-gradient(145deg, #061329, #0d2c55);
  color: #fff;
}
.approved-footer-glow {
  position: absolute;
  top: -120px;
  right: -80px;
  width: 360px;
  height: 280px;
  border-radius: 50%;
  background: rgba(60, 205, 177, .10);
  filter: blur(30px);
  pointer-events: none;
}
.approved-footer-restored .approved-footer-main {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px, 1.05fr) minmax(420px, 1.35fr);
  gap: 52px;
  padding: 48px clamp(24px, 5vw, 72px) 34px;
}
.approved-footer-restored .approved-footer-brand { display: grid; gap: 13px; }
.approved-footer-restored-logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  color: #fff;
  text-decoration: none;
}
.approved-footer-restored-logo > span {
  display: grid;
  place-items: center;
  width: 48px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 15px;
  background: rgba(255, 255, 255, .10);
}
.approved-footer-restored-logo img { filter: brightness(0) invert(1); }
.approved-footer-restored-logo b { font-size: 24px; letter-spacing: -.04em; }
.approved-footer-restored .approved-footer-brand p {
  max-width: 440px;
  margin: 0;
  color: #c6d3e6;
  font-size: 13px;
  line-height: 1.7;
}
.approved-footer-restored .approved-footer-brand em {
  color: #78dfcb;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.approved-footer-trust { display: flex; flex-wrap: wrap; gap: 7px; }
.approved-footer-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 9px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: #e8eef8;
  font-size: 9px;
  font-weight: 800;
}
.approved-footer-trust i { color: #78dfcb; font-style: normal; }
.approved-footer-restored .approved-footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
}
.approved-footer-restored .approved-footer-links > div { display: grid; align-content: start; gap: 9px; }
.approved-footer-restored .approved-footer-links strong,
.approved-footer-network-modern > strong {
  margin-bottom: 4px;
  color: #8fb3ef;
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.approved-footer-restored .approved-footer-links a {
  color: #e7edf7;
  text-decoration: none;
  font-size: 12px;
  line-height: 1.45;
}
.approved-footer-restored .approved-footer-links a:hover { color: #78dfcb; }
.approved-footer-network-modern {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 17px clamp(24px, 5vw, 72px);
  border-top: 1px solid rgba(255, 255, 255, .09);
  border-bottom: 1px solid rgba(255, 255, 255, .09);
}
.approved-footer-network-modern nav { display: flex; flex-wrap: wrap; gap: 8px; }
.approved-footer-network-modern a {
  padding: 7px 10px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  color: #cdd8e8;
  text-decoration: none;
  font-size: 9px;
  font-weight: 800;
}
.approved-footer-network-modern a[aria-current='page'] {
  border-color: rgba(120, 223, 203, .42);
  background: rgba(120, 223, 203, .10);
  color: #8eebd8;
}
.approved-footer-restored .approved-footer-bottom {
  display: grid;
  gap: 7px;
  padding: 20px clamp(24px, 5vw, 72px) 28px;
  color: #98aac3;
}
.approved-footer-restored .approved-footer-bottom p { margin: 0; font-size: 10px; line-height: 1.55; }
.approved-footer-restored .approved-footer-bottom a { color: inherit; }
.approved-footer-restored .approved-market-jurisdiction {
  padding: 0 clamp(24px, 5vw, 72px) 22px;
  color: #71849e;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .approved-service-rail .approved-service-tile { flex-basis: min(310px, 70vw); }
  .approved-capability-grid .approved-capability { flex-basis: min(320px, 76vw); }
  .v40-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v40-stage-track { gap: 5px; }
  .v40-stage-track li small { font-size: 8px; }
  .approved-footer-restored .approved-footer-main { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 620px) {
  .approved-service-rail .approved-service-tile,
  .approved-capability-grid .approved-capability { flex-basis: 84vw; }
  .v40-related-grid { grid-template-columns: 1fr; }
  .v40-stage-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 5px;
  }
  .v40-stage-track li { flex: 0 0 104px; scroll-snap-align: start; }
  .v40-order-card { padding: 24px !important; }
  .v40-order-card > header { margin: -24px -24px 24px; padding: 28px 24px 24px; }
  .v40-processing-card { grid-template-columns: 1fr; text-align: left; }
  .v40-processing-visual { width: 120px; height: 120px; }
  .approved-footer-restored .approved-footer-main { padding-top: 36px; }
  .approved-footer-restored .approved-footer-links { grid-template-columns: 1fr; gap: 24px; }
  .approved-footer-network-modern { align-items: flex-start; flex-direction: column; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .v40-processing-visual i { animation: none; }
  .v40-related-card,
  .approved-service-tile { transition: none; }
}
