:root {
  --navy: #061b3a;
  --petrol: #0b2d57;
  --teal: #10c6b7;
  --teal-dark: #0aa89d;
  --white: #ffffff;
  --soft: #f7fafc;
  --text: #17304f;
  --muted: #64748b;
  --border: #e2e8f0;
  --amber: #f6b73c;
  --shadow: 0 28px 80px rgba(6, 27, 58, 0.15);
  --shadow-deep: 0 36px 100px rgba(0, 10, 28, 0.34);
  --radius: 8px;
  --section: 112px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--text);
  background: var(--white);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  line-height: 1.6;
}
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p, blockquote { margin-top: 0; }
ul { margin: 0; padding: 0; list-style: none; }

.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.section { position: relative; padding: var(--section) 0; }
.section-anchor { scroll-margin-top: 94px; }
.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 200;
  padding: 10px 14px;
  border-radius: 6px;
  color: var(--navy);
  background: var(--teal);
  font-weight: 850;
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
.scroll-progress {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 220;
  height: 3px;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}
.scroll-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--teal-dark), var(--teal));
  box-shadow: 0 0 14px rgba(16,198,183,.45);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.site-header {
  position: fixed;
  top: 14px;
  left: 50%;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1180px, calc(100% - 28px));
  min-height: 66px;
  padding: 8px 10px 8px 18px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: var(--radius);
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 50px rgba(6,27,58,.12);
  backdrop-filter: blur(20px);
  transform: translateX(-50%);
}
.site-header.is-scrolled { background: rgba(255,255,255,.97); }
.brand img, .footer-logo img { width: 118px; height: 44px; object-fit: contain; }
.brand img { transition: transform .25s ease, filter .25s ease; }
.brand:hover img, .brand:focus-visible img { transform: scale(1.025); filter: drop-shadow(0 7px 12px rgba(16,198,183,.2)); }
.main-nav { display: flex; align-items: center; gap: 2px; color: #53687d; font-size: .88rem; font-weight: 750; }
.main-nav a { padding: 11px 13px; border-radius: 6px; transition: .18s ease; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--navy); background: rgba(16,198,183,.1); outline: 0; }
.main-nav a.is-active { color: var(--navy); background: rgba(16,198,183,.12); }
.main-nav .nav-cta { margin-left: 8px; padding-inline: 18px; color: var(--white); background: var(--navy); }
.main-nav .nav-cta:hover { color: var(--navy); background: var(--teal); }
.nav-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--border); border-radius: 6px; background: var(--white); }
.nav-toggle span { display: block; width: 19px; height: 2px; margin: 4px auto; background: var(--navy); transition: .18s ease; }

.hero {
  position: relative;
  min-height: 100vh;
  padding: 148px 0 38px;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 73% 42%, rgba(16,198,183,.22), transparent 25%),
    radial-gradient(circle at 8% 20%, rgba(70,140,190,.18), transparent 30%),
    linear-gradient(120deg, #04152e 0%, var(--navy) 48%, #0d3b58 100%);
}
.map-texture, .dark-map, .institution-map, .roadmap-map, .contact-map, .opportunity-map {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(28deg, transparent 48%, rgba(255,255,255,.035) 49%, rgba(255,255,255,.035) 51%, transparent 52%),
    linear-gradient(118deg, transparent 47%, rgba(255,255,255,.025) 48%, rgba(255,255,255,.025) 50%, transparent 51%);
  background-size: 150px 110px, 190px 150px;
}
.map-texture::before, .map-texture::after {
  content: ""; position: absolute; border: 1px solid rgba(16,198,183,.15); border-radius: 50%;
}
.map-texture::before { top: 10%; right: 4%; width: 620px; height: 620px; }
.map-texture::after { right: 25%; bottom: -18%; width: 330px; height: 330px; }
.hero-route { position: absolute; z-index: 1; border-top: 3px solid rgba(16,198,183,.34); border-right: 3px solid rgba(16,198,183,.34); border-radius: 0 80px 0 0; }
.hero-route i { position: absolute; width: 14px; height: 14px; border: 4px solid var(--teal); border-radius: 50%; background: var(--navy); box-shadow: 0 0 0 8px rgba(16,198,183,.1); }
.route-a { top: 18%; right: -2%; width: 25vw; height: 150px; transform: rotate(-10deg); }
.route-a i:first-child { left: 10%; top: -9px; }
.route-a i:last-child { right: -9px; bottom: -9px; }
.route-b { bottom: 12%; left: -5%; width: 20vw; height: 130px; transform: rotate(15deg); }
.route-b i { right: -9px; top: -9px; }
.hero-grid { position: relative; z-index: 3; display: grid; grid-template-columns: .88fr 1.12fr; align-items: center; gap: 54px; }
.hero-badges, .hero-actions, .hero-proof { display: flex; flex-wrap: wrap; align-items: center; }
.hero-badges { gap: 8px; margin-bottom: 22px; }
.hero-badges span { padding: 7px 11px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.78); background: rgba(255,255,255,.07); backdrop-filter: blur(12px); font-size: .75rem; font-weight: 750; }
.hero-badges i, .form-status i { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 5px rgba(16,198,183,.12); }
.eyebrow { margin-bottom: 12px; color: var(--teal-dark); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.eyebrow.light { color: #5de1d6; }
.hero h1 { max-width: 690px; margin-bottom: 24px; color: var(--white); font-size: clamp(3.8rem, 7vw, 6.65rem); font-weight: 850; line-height: .91; letter-spacing: 0; }
.hero h1 em { color: var(--teal); font-style: normal; }
.hero-lead { max-width: 600px; color: rgba(255,255,255,.7); font-size: 1.12rem; }
.hero-actions { gap: 12px; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 14px 21px; border: 1px solid transparent; border-radius: 6px; font-weight: 820; line-height: 1.1; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); outline: 0; }
.button:active { transform: translateY(0) scale(.985); }
.button:focus-visible,
.nav-toggle:focus-visible,
.main-nav a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(16,198,183,.38);
  outline-offset: 3px;
}
.button-primary { color: var(--navy); background: var(--teal); box-shadow: 0 16px 35px rgba(16,198,183,.24); }
.button-primary:hover { background: #2ad7ca; box-shadow: 0 20px 40px rgba(16,198,183,.32); }
.button-glass { color: var(--white); border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.08); backdrop-filter: blur(14px); }
.button-navy { color: var(--white); background: var(--navy); box-shadow: 0 15px 32px rgba(6,27,58,.2); }
.hero-proof { gap: 18px; margin-top: 30px; color: rgba(255,255,255,.67); font-size: .78rem; font-weight: 700; }
.hero-proof b { margin-right: 5px; color: var(--teal); }
.hero-product { position: relative; min-height: 650px; isolation: isolate; }
.product-glow { position: absolute; top: 14%; left: 18%; width: 68%; height: 68%; border-radius: 50%; background: rgba(16,198,183,.18); filter: blur(50px); }
.product-frame {
  position: absolute;
  inset: 4% 0 3% 2%;
  z-index: 2;
  display: grid;
  grid-template-rows: 48px minmax(0,1fr) 44px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px;
  background: rgba(240,250,251,.96);
  box-shadow: 0 48px 100px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.7);
  transform: perspective(1200px) rotateY(-3deg) rotateX(1deg);
}
.product-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(16,198,183,.08);
  pointer-events: none;
}
.product-frame-bar,
.product-frame-footer {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  color: var(--navy);
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(14px);
}
.product-frame-bar { border-bottom: 1px solid rgba(6,27,58,.08); font-size: .74rem; }
.product-frame-footer { border-top: 1px solid rgba(6,27,58,.08); color: #53687d; font-size: .7rem; font-weight: 750; }
.product-frame-footer span { display: flex; align-items: center; gap: 7px; }
.frame-dots { display: flex; gap: 5px; }
.frame-dots i { width: 7px; height: 7px; border-radius: 50%; background: #bfd1d7; }
.frame-dots i:first-child { background: var(--teal); }
.frame-live { display: flex; align-items: center; gap: 6px; color: var(--teal-dark); font-weight: 850; }
.frame-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 5px rgba(16,198,183,.12); }
.mini-route-icon { width: 15px; height: 9px; border-right: 2px solid var(--teal-dark); border-bottom: 2px solid var(--teal-dark); border-radius: 0 0 5px; }
.hero-phone {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: contrast(1.04) saturate(.96);
}
.float-card, .security-float {
  position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius); color: var(--white);
  background: rgba(5,25,48,.65); box-shadow: 0 22px 56px rgba(0,0,0,.25); backdrop-filter: blur(18px);
}
.float-card small, .security-float small { display: block; color: rgba(255,255,255,.53); font-size: .65rem; text-transform: uppercase; }
.float-card strong, .security-float strong { display: block; font-size: .87rem; }
.card-symbol { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; color: var(--teal); background: rgba(16,198,183,.15); }
.check-symbol::before { content: ""; width: 14px; height: 8px; border-left: 3px solid var(--teal); border-bottom: 3px solid var(--teal); transform: rotate(-45deg) translate(1px,-2px); }
.pin-symbol::before, .mini-pin { content: ""; width: 11px; height: 11px; border: 3px solid var(--teal); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.money-symbol { font-weight: 900; }
.pulse-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 7px rgba(16,198,183,.13); }
.verified-card { top: 11%; left: -4%; }
.trip-card { top: 27%; right: -2%; }
.trip-card > b { margin-left: 8px; color: var(--teal); font-size: .78rem; }
.track-card { left: -1%; bottom: 22%; }
.fare-card { right: 2%; bottom: 9%; }
.project-card { top: 52%; left: -3%; }
.hero-product .float-card { animation: card-drift 6s ease-in-out infinite; }
.hero-product .trip-card { animation-delay: -1.5s; }
.hero-product .track-card { animation-delay: -3s; }
.hero-product .fare-card { animation-delay: -4.5s; }
.hero-product .project-card { animation-delay: -2.2s; }
@keyframes card-drift {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -5px; }
}
.hero-note { position: relative; z-index: 3; display: flex; justify-content: center; gap: 8px; margin-top: 18px; padding-top: 23px; border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.52); text-align: center; }
.hero-note strong { color: var(--white); }

.intro-strip { color: var(--white); background: var(--navy); box-shadow: 0 24px 70px rgba(6,27,58,.24); }
.intro-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.intro-grid article { position: relative; min-height: 130px; padding: 28px; border-right: 1px solid rgba(255,255,255,.1); background: linear-gradient(180deg, rgba(255,255,255,.035), transparent); }
.intro-grid article:last-child { border-right: 0; }
.intro-grid span { color: var(--teal); font-size: .72rem; font-weight: 850; }
.intro-grid strong { display: block; margin: 8px 0 2px; font-size: 1.05rem; }
.intro-grid p { margin: 0; color: rgba(255,255,255,.56); font-size: .84rem; }
.decision-band {
  position: relative;
  z-index: 2;
  padding: 24px 0;
  border-bottom: 1px solid rgba(6,27,58,.08);
  background:
    radial-gradient(circle at 85% 50%, rgba(16,198,183,.12), transparent 28%),
    #eef7f8;
}
.decision-layout,
.decision-metrics { display: flex; align-items: center; }
.decision-layout { justify-content: space-between; gap: 30px; }
.decision-layout small,
.decision-layout strong { display: block; }
.decision-layout small { color: var(--teal-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.decision-layout strong { color: var(--navy); font-size: 1.08rem; }
.decision-metrics { gap: 10px; }
.decision-metrics span { padding: 9px 12px; border: 1px solid rgba(6,27,58,.08); border-radius: 999px; color: #52677d; background: rgba(255,255,255,.76); font-size: .72rem; font-weight: 750; }
.decision-metrics b { margin-right: 4px; color: var(--teal-dark); }

h2 { margin-bottom: 18px; color: var(--navy); font-size: clamp(2.5rem, 5vw, 4.65rem); font-weight: 830; line-height: 1.02; letter-spacing: 0; }
h3 { color: var(--navy); }
.section-copy > p:last-of-type, .section-heading > p:last-child, .institution-copy > p { color: var(--muted); font-size: 1.04rem; }
.section-heading { max-width: 760px; margin: 0 auto 50px; text-align: center; }
.section-heading.align-left { margin-left: 0; text-align: left; }

.platform-section { overflow: hidden; background: linear-gradient(115deg, #fff 0%, #fff 46%, #eef9fa 100%); }
.platform-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 70px; align-items: center; }
.platform-list { display: grid; gap: 12px; margin-top: 30px; }
.platform-list article { display: flex; align-items: center; gap: 14px; padding: 15px; border: 1px solid rgba(226,232,240,.9); border-radius: var(--radius); background: rgba(255,255,255,.72); box-shadow: 0 16px 38px rgba(6,27,58,.06); backdrop-filter: blur(14px); }
.platform-list article,
.process-card,
.benefit-panel,
.security-card,
.roadmap-item,
.status-list article {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.platform-list article:hover {
  transform: translateX(4px);
  border-color: rgba(16,198,183,.34);
  box-shadow: 0 20px 44px rgba(6,27,58,.1);
}
.platform-list article:hover .line-icon,
.benefit-panel:hover .line-icon,
.process-card:hover .process-icon { transform: translateY(-3px); }
.line-icon, .process-icon { transition: transform .25s ease, background .25s ease; }
.platform-list small { display: block; color: var(--muted); }
.line-icon, .process-icon { position: relative; display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border: 1px solid rgba(16,198,183,.25); border-radius: 8px; background: rgba(16,198,183,.1); }
.line-icon::before, .process-icon::before { content: ""; width: 18px; height: 18px; border: 2px solid var(--teal-dark); border-radius: 5px; }
.user-icon::before { border-radius: 50%; box-shadow: 0 12px 0 -6px var(--teal-dark); }
.car-icon::before { border-radius: 5px; border-top-width: 6px; }
.panel-icon::before { border-radius: 2px; box-shadow: 7px 7px 0 -4px var(--teal-dark); }
.shield-icon::before { border-radius: 8px 8px 10px 10px; }
.route-icon::before { border: 0; border-right: 3px solid var(--teal-dark); border-bottom: 3px solid var(--teal-dark); border-radius: 0 0 8px; }
.support-icon::before { border-radius: 50%; border-bottom-color: transparent; }
.history-icon::before { border-radius: 50%; border-right-color: transparent; }
.building-icon::before { border-radius: 1px; box-shadow: inset 5px 0 0 transparent; }
.mail-icon::before { border-radius: 2px; transform: rotate(0); }
.people-icon::before { border-radius: 50%; box-shadow: 10px 3px 0 -4px var(--teal-dark); }
.pin-icon::before { width: 13px; height: 13px; border: 3px solid var(--teal-dark); border-radius: 50% 50% 50% 0; background: transparent; transform: rotate(-45deg); }
.document-icon::before { border-radius: 2px; border-top-width: 5px; }
.check-icon::before { width: 15px; height: 8px; border: 0; border-left: 3px solid var(--teal-dark); border-bottom: 3px solid var(--teal-dark); border-radius: 0; transform: rotate(-45deg); }
.ecosystem-visual { position: relative; min-height: 590px; overflow: hidden; border: 1px solid rgba(255,255,255,.86); border-radius: var(--radius); background: rgba(255,255,255,.64); box-shadow: var(--shadow); backdrop-filter: blur(18px); }
.ecosystem-visual img { width: 100%; height: 590px; object-fit: contain; position: relative; z-index: 2; }
.visual-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(11,45,87,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(11,45,87,.045) 1px, transparent 1px); background-size: 48px 48px; }
.ecosystem-label { position: absolute; z-index: 3; padding: 8px 12px; border: 1px solid rgba(255,255,255,.8); border-radius: 999px; color: var(--navy); background: rgba(255,255,255,.75); box-shadow: 0 12px 32px rgba(6,27,58,.12); backdrop-filter: blur(12px); font-size: .74rem; font-weight: 800; }
.label-app { top: 11%; right: 10%; }.label-control { bottom: 15%; right: 8%; }.label-city { bottom: 10%; left: 8%; }

.opportunity-section { overflow: hidden; color: var(--white); background: linear-gradient(135deg, #06182f, var(--petrol)); }
.opportunity-map { opacity: .65; }
.opportunity-layout { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 72px; }
.opportunity-section h2 { color: var(--white); }
.opportunity-section .section-copy > p:last-of-type { color: rgba(255,255,255,.65); }
.opportunity-visual { position: relative; min-height: 570px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); background: radial-gradient(circle at center, rgba(16,198,183,.13), transparent 55%), rgba(255,255,255,.035); box-shadow: var(--shadow-deep); backdrop-filter: blur(12px); }
.city-pulse { position: absolute; border: 1px solid rgba(16,198,183,.17); border-radius: 50%; }
.pulse-one { inset: 14%; }.pulse-two { inset: 26%; }
.map-route { position: absolute; top: 22%; left: 12%; width: 76%; height: 54%; border: 3px dashed rgba(16,198,183,.38); border-top-color: transparent; border-radius: 48%; transform: rotate(-9deg); }
.map-route i { position: absolute; width: 14px; height: 14px; border: 4px solid var(--teal); border-radius: 50%; background: var(--navy); }
.map-route i:nth-child(1) { top: 10%; left: -4px; }.map-route i:nth-child(2) { left: 52%; bottom: -4px; }.map-route i:nth-child(3) { top: 18%; right: -4px; }
.map-center { position: absolute; top: 50%; left: 50%; display: grid; place-items: center; transform: translate(-50%,-50%); text-align: center; }
.map-center strong, .map-center small { display: block; }.map-center small { color: rgba(255,255,255,.54); }
.large-pin { width: 42px; height: 42px; margin-bottom: 15px; border: 9px solid var(--teal); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 0 0 14px rgba(16,198,183,.1); }
.map-stat { position: absolute; padding: 12px 15px; border: 1px solid rgba(255,255,255,.15); border-radius: var(--radius); background: rgba(6,27,58,.62); box-shadow: 0 16px 40px rgba(0,0,0,.2); backdrop-filter: blur(15px); }
.map-stat b, .map-stat span { display: block; }.map-stat b { color: var(--teal); }.map-stat span { color: rgba(255,255,255,.55); font-size: .75rem; }
.stat-one { top: 10%; left: 7%; }.stat-two { top: 17%; right: 6%; }.stat-three { right: 9%; bottom: 10%; }
.opportunity-points { display: grid; gap: 0; margin-top: 30px; border-top: 1px solid rgba(255,255,255,.13); }
.opportunity-points li { display: flex; gap: 14px; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.78); }
.opportunity-points span { color: var(--teal); font-size: .75rem; font-weight: 850; }

.flow-section { background: var(--soft); }
.flow-stage { position: relative; padding: 30px; overflow: hidden; border: 1px solid rgba(255,255,255,.9); border-radius: var(--radius); background: radial-gradient(circle at 50% 100%, rgba(16,198,183,.12), transparent 43%), linear-gradient(145deg,#fff,#ebf6f8); box-shadow: var(--shadow); }
.flow-stage img { position: relative; z-index: 2; width: 100%; max-height: 610px; object-fit: contain; filter: drop-shadow(0 26px 24px rgba(6,27,58,.14)); }
.flow-route { position: absolute; top: 25%; left: 8%; width: 84%; height: 52%; border: 3px dashed rgba(16,198,183,.2); border-top-color: transparent; border-radius: 46%; transform: rotate(-4deg); }
.flow-route i { position: absolute; width: 12px; height: 12px; border: 3px solid var(--teal); border-radius: 50%; background: var(--white); }
.flow-route i:nth-child(1) { top: 14%; left: 0; }.flow-route i:nth-child(2) { left: 34%; bottom: 0; }.flow-route i:nth-child(3) { left: 65%; top: 4%; }.flow-route i:nth-child(4) { right: 0; bottom: 15%; }
.flow-badge { position: absolute; z-index: 3; display: flex; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.9); border-radius: var(--radius); color: var(--navy); background: rgba(255,255,255,.78); box-shadow: 0 16px 38px rgba(6,27,58,.12); backdrop-filter: blur(14px); font-size: .78rem; font-weight: 800; }
.origin-badge { top: 6%; left: 3%; }.destination-badge { right: 3%; bottom: 6%; }
.flow-steps { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 28px; border-top: 1px solid var(--border); }
.flow-steps article { padding: 26px 24px 0; border-left: 1px solid var(--border); }.flow-steps article:first-child { padding-left: 0; border-left: 0; }
.flow-steps b { color: var(--teal-dark); font-size: .75rem; }.flow-steps h3 { margin: 12px 0 5px; }.flow-steps p { margin: 0; color: var(--muted); }

.security-section { overflow: hidden; color: var(--white); background: radial-gradient(circle at 35% 50%, rgba(16,198,183,.13), transparent 28%), linear-gradient(135deg,#04152d,#0b2d57); }
.dark-map { opacity: .55; }
.security-path { position: absolute; right: -5%; bottom: 12%; width: 48%; height: 180px; border-top: 3px solid rgba(16,198,183,.24); border-right: 3px solid rgba(16,198,183,.24); border-radius: 0 90px 0 0; transform: rotate(-8deg); }
.security-header { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr .7fr; align-items: end; gap: 80px; margin-bottom: 50px; }
.security-header h2 { margin: 0; color: var(--white); }.security-header > p { margin: 0; color: rgba(255,255,255,.62); }
.security-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .9fr 1.1fr; gap: 44px; align-items: center; }
.security-mockup { position: relative; min-height: 620px; }
.mockup-halo { position: absolute; inset: 15%; border-radius: 50%; background: rgba(16,198,183,.16); filter: blur(42px); }
.security-mockup > img { position: relative; z-index: 2; width: 100%; height: 620px; object-fit: contain; mix-blend-mode: screen; opacity: .86; filter: drop-shadow(0 38px 40px rgba(0,0,0,.35)); }
.security-driver { top: 15%; left: 0; }.security-live { right: 0; bottom: 18%; }
.avatar-symbol { width: 38px; height: 38px; border: 3px solid var(--teal); border-radius: 50%; box-shadow: inset 0 -10px 0 -4px rgba(16,198,183,.5); }
.security-cards { display: grid; gap: 13px; }
.security-card { display: flex; align-items: center; gap: 16px; min-height: 102px; padding: 18px; border: 1px solid rgba(255,255,255,.13); border-radius: var(--radius); background: rgba(255,255,255,.065); box-shadow: 0 20px 50px rgba(0,0,0,.13); backdrop-filter: blur(17px); transition: transform .18s ease, background .18s ease; }
.security-card:hover { transform: translateX(-4px); background: rgba(255,255,255,.1); }
.security-card .line-icon { border-color: rgba(16,198,183,.35); background: rgba(16,198,183,.12); }
.security-card h3 { margin: 0 0 3px; color: var(--white); }.security-card p { margin: 0; color: rgba(255,255,255,.56); font-size: .86rem; }
.legal-banner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 42px; padding: 18px 22px; border: 1px solid rgba(246,183,60,.3); border-radius: var(--radius); color: #fff4da; background: rgba(246,183,60,.09); text-align: center; }
.legal-banner p { margin: 0; }.legal-shield { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(246,183,60,.4); border-radius: 50%; color: var(--amber); }

.benefits-section { background: linear-gradient(115deg,#fff,#f2f9fa); }
.benefits-layout { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.benefit-panel { position: relative; min-height: 390px; padding: 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.9); border-radius: var(--radius); background: rgba(255,255,255,.76); box-shadow: var(--shadow); backdrop-filter: blur(16px); transition: transform .2s ease; }
.benefit-panel::before,
.process-card::after {
  content: "";
  position: absolute;
  top: 0;
  right: 22px;
  left: 22px;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(16,198,183,.72), transparent);
  opacity: .6;
}
.benefit-panel:hover { transform: translateY(-5px); }
.benefit-panel::after { content: ""; position: absolute; right: -80px; bottom: -90px; width: 210px; height: 210px; border: 1px solid rgba(16,198,183,.15); border-radius: 50%; }
.benefit-number { position: absolute; top: 26px; right: 28px; color: var(--teal-dark); font-size: .72rem; font-weight: 850; }
.benefit-panel .line-icon { width: 54px; height: 54px; margin-bottom: 54px; }
.benefit-panel h3 { font-size: 1.45rem; }.benefit-panel p { color: var(--muted); }.benefit-panel ul { display: grid; gap: 9px; margin-top: 22px; color: #52677d; }
.benefit-panel li::before { content: "✓"; margin-right: 8px; color: var(--teal-dark); font-weight: 900; }
.driver-panel { background: linear-gradient(145deg,rgba(255,255,255,.92),rgba(16,198,183,.08)); }
.city-panel { color: var(--white); border-color: rgba(6,27,58,.1); background: linear-gradient(145deg,var(--navy),var(--petrol)); }
.city-panel h3 { color: var(--white); }.city-panel p, .city-panel ul { color: rgba(255,255,255,.68); }
.mid-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 28px;
  padding: 25px 28px;
  overflow: hidden;
  border: 1px solid rgba(16,198,183,.22);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 10% 50%, rgba(16,198,183,.12), transparent 32%),
    rgba(255,255,255,.76);
  box-shadow: 0 22px 58px rgba(6,27,58,.1);
  backdrop-filter: blur(16px);
}
.mid-cta small, .mid-cta strong { display: block; }
.mid-cta small { margin-bottom: 3px; color: var(--teal-dark); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.mid-cta strong { color: var(--navy); font-size: 1.12rem; }

.institution-section { overflow: hidden; background: linear-gradient(120deg,#fff 0%,#fff 43%,#edf8fa 100%); }
.institution-map { opacity: .14; filter: invert(1); }
.institution-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .75fr 1.25fr; gap: 68px; align-items: center; }
.institution-copy .button { margin-top: 20px; }
.institution-process { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.process-card { position: relative; min-height: 205px; padding: 25px; border: 1px solid rgba(226,232,240,.9); border-radius: var(--radius); background: rgba(255,255,255,.73); box-shadow: 0 18px 48px rgba(6,27,58,.08); backdrop-filter: blur(15px); transition: transform .18s ease; }
.process-card:hover { transform: translateY(-4px); }
.process-card:hover { border-color: rgba(16,198,183,.34); box-shadow: 0 25px 56px rgba(6,27,58,.13); }
.process-card b { position: absolute; top: 22px; right: 24px; color: var(--teal-dark); font-size: .7rem; }.process-card h3 { margin: 26px 0 6px; }.process-card p { margin: 0; color: var(--muted); font-size: .86rem; }

.status-section { background: var(--white); }
.status-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 72px; align-items: center; }
.status-dashboard { position: relative; min-height: 560px; padding: 22px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(145deg,#eef7f8,#fff); box-shadow: var(--shadow); }
.status-dashboard img { width: 100%; height: 516px; object-fit: contain; filter: drop-shadow(0 24px 30px rgba(6,27,58,.13)); }
.dashboard-label { position: absolute; top: 42px; left: 42px; display: flex; align-items: center; gap: 11px; padding: 12px 15px; border: 1px solid rgba(255,255,255,.82); border-radius: var(--radius); color: var(--navy); background: rgba(255,255,255,.75); box-shadow: 0 16px 40px rgba(6,27,58,.12); backdrop-filter: blur(15px); }
.dashboard-label small { display: block; color: var(--muted); font-size: .65rem; text-transform: uppercase; }
.status-list { display: grid; margin-top: 28px; border-top: 1px solid var(--border); }
.status-list article { display: flex; gap: 13px; padding: 15px 0; border-bottom: 1px solid var(--border); }
.status-list article:hover { padding-left: 8px; color: var(--navy); }
.status-list article > span { display: grid; place-items: center; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; color: var(--navy); background: rgba(16,198,183,.18); font-weight: 900; }
.status-list small { display: block; color: var(--muted); }

.roadmap-section { overflow: hidden; color: var(--white); background: linear-gradient(135deg,#06182f,var(--petrol)); }
.roadmap-map { opacity: .5; }
.roadmap-section .section-heading { position: relative; z-index: 2; }.roadmap-section h2 { color: var(--white); }
.roadmap { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; }
.roadmap-line { position: absolute; top: 31px; left: 7%; right: 7%; height: 2px; background: rgba(16,198,183,.34); }
.roadmap-item { position: relative; min-height: 220px; padding: 78px 20px 22px; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); background: rgba(255,255,255,.06); backdrop-filter: blur(15px); }
.roadmap-item > span { position: absolute; top: 0; left: 20px; z-index: 2; display: grid; place-items: center; width: 62px; height: 62px; border: 7px solid var(--petrol); border-radius: 50%; color: var(--navy); background: var(--teal); font-weight: 900; }
.roadmap-item h3 { color: var(--white); }.roadmap-item p { color: rgba(255,255,255,.58); }
.roadmap-item:hover { transform: translateY(-4px); border-color: rgba(16,198,183,.32); background: rgba(255,255,255,.09); }

.contact-section { overflow: hidden; color: var(--white); background: radial-gradient(circle at 18% 52%,rgba(16,198,183,.18),transparent 30%),linear-gradient(135deg,#04152d,#0b2d57); }
.contact-map { opacity: .55; }.contact-route { position: absolute; left: -6%; top: 18%; width: 44%; height: 180px; border-top: 3px solid rgba(16,198,183,.25); border-right: 3px solid rgba(16,198,183,.25); border-radius: 0 90px 0 0; transform: rotate(-8deg); }
.contact-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .88fr .78fr; gap: 82px; align-items: start; }
.contact-copy { padding-top: 42px; }.contact-copy h2 { color: var(--white); }.contact-copy > p { max-width: 580px; color: rgba(255,255,255,.65); font-size: 1.05rem; }
.contact-options { display: grid; gap: 12px; margin-top: 30px; }
.contact-options article { display: flex; align-items: center; gap: 13px; }.contact-options .line-icon { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); }.contact-options small { display: block; color: rgba(255,255,255,.48); }
.contact-form { position: relative; padding: 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.64); border-radius: 24px; color: var(--text); background: linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,250,252,.93)); box-shadow: 0 30px 80px rgba(2,16,31,.28); backdrop-filter: blur(20px); }
.contact-form::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg,var(--teal),rgba(16,198,183,.15)); }
.form-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 23px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.form-head small { display: block; color: var(--muted); font-size: .7rem; text-transform: uppercase; }.form-head strong { color: var(--navy); font-size: 1.18rem; }
.form-status { padding: 6px 9px; border-radius: 999px; color: var(--navy); background: rgba(16,198,183,.12); font-size: .7rem; font-weight: 800; }.form-status i { margin-right: 4px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-row { margin-bottom: 15px; }
label { display: block; margin-bottom: 6px; color: var(--navy); font-size: .8rem; font-weight: 800; }
input, select, textarea { width: 100%; min-height: 50px; padding: 13px 14px; border: 1px solid var(--border); border-radius: 12px; color: var(--text); background: var(--white); outline: 0; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
select { appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--teal-dark) 50%),linear-gradient(135deg,var(--teal-dark) 50%,transparent 50%); background-position: calc(100% - 18px) 21px, calc(100% - 12px) 21px; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(16,198,183,.13); }
.form-row.has-error input, .form-row.has-error select, .form-row.has-error textarea { border-color: #c84c4c; }
.error-message { display: block; min-height: 17px; margin-top: 3px; color: #b42318; font-size: .73rem; }
.form-submit { width: 100%; border: 0; }
.primary-button:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.privacy-note { margin: 11px 0 0; color: var(--muted); text-align: center; font-size: .73rem; }
.form-message { min-height: 0; margin: 14px 0 0; color: var(--teal-dark); text-align: center; font-size: .86rem; font-weight: 800; }
.form-message.success { padding: 12px 14px; border: 1px solid rgba(16,198,183,.3); border-radius: 12px; color: var(--teal-dark); background: rgba(16,198,183,.12); }
.form-message.error { padding: 12px 14px; border: 1px solid rgba(239,68,68,.3); border-radius: 12px; color: #b91c1c; background: rgba(239,68,68,.12); }

.site-footer { padding: 42px 0; color: rgba(255,255,255,.62); background: #02101f; }
.footer-layout { display: grid; grid-template-columns: 1fr auto 1fr; gap: 38px; align-items: start; }
.footer-logo { display: inline-block; padding: 4px 8px; border-radius: 5px; background: var(--white); }.footer-layout p { margin: 8px 0 2px; }.footer-layout nav { display: grid; gap: 7px; }.footer-layout nav a:hover { color: var(--white); }.footer-legal { margin: 0; text-align: right; font-size: .82rem; }
.mobile-cta { display: none; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .62s ease var(--reveal-delay, 0ms), transform .62s ease var(--reveal-delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
  .hero-product .float-card { animation: none; }
}

@media (max-width: 980px) {
  :root { --section: 86px; }
  .nav-toggle { display: block; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .main-nav { position: fixed; top: 86px; right: 14px; left: 14px; display: grid; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); opacity: 0; transform: translateY(-10px); pointer-events: none; }
  .main-nav.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .main-nav .nav-cta { margin-left: 0; text-align: center; }
  .hero { min-height: auto; }
  .hero-grid, .platform-layout, .opportunity-layout, .security-layout, .institution-layout, .status-layout, .contact-layout { grid-template-columns: 1fr; }
  .hero-product { min-height: 590px; }.hero-phone { height: 590px; }
  .product-frame { inset: 4% 2% 3%; }
  .intro-grid { grid-template-columns: repeat(2,1fr); }.intro-grid article:nth-child(2) { border-right: 0; }.intro-grid article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.1); }
  .ecosystem-visual { min-height: 560px; }.ecosystem-visual img { height: 560px; }
  .opportunity-layout { gap: 50px; }.opportunity-visual { order: 2; }
  .security-header { grid-template-columns: 1fr; gap: 20px; }
  .benefits-layout { grid-template-columns: 1fr; }.benefit-panel { min-height: 320px; }
  .institution-process { grid-template-columns: repeat(3,1fr); }
  .roadmap { grid-template-columns: 1fr; }.roadmap-line { top: 0; bottom: 0; left: 31px; right: auto; width: 2px; height: auto; }.roadmap-item { min-height: 130px; padding: 24px 20px 22px 90px; }.roadmap-item > span { left: 0; }
  .footer-layout { grid-template-columns: 1fr 1fr; }.footer-legal { grid-column: 1/-1; text-align: left; }
}

@media (max-width: 640px) {
  .container { width: min(100% - 28px,1180px); }
  .site-header { top: 8px; width: calc(100% - 16px); }
  .section { padding: 72px 0; }
  .hero { padding: 108px 0 26px; }
  .hero-grid { gap: 18px; }
  .hero h1 { margin-bottom: 18px; font-size: clamp(3rem,15vw,4.4rem); }
  .hero-lead { font-size: 1rem; }
  .hero-actions { align-items: stretch; flex-direction: column; margin-top: 22px; }
  .button { width: 100%; min-height: 50px; }
  .hero-proof { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 20px; }
  .hero-proof span { padding-right: 5px; font-size: .66rem; line-height: 1.35; }
  .hero-proof b { display: block; margin-bottom: 3px; }
  .hero-product { min-height: 390px; margin-top: -8px; }
  .product-frame {
    inset: 3% 0 2%;
    grid-template-rows: 38px minmax(0,1fr) 36px;
    border-radius: 18px;
    transform: none;
  }
  .product-frame-bar,
  .product-frame-footer { padding: 0 12px; }
  .product-frame-bar strong { font-size: .66rem; }
  .hero-phone { height: 100%; }
  .float-card { padding: 10px 11px; }.float-card strong { font-size: .72rem; }.float-card small { font-size: .57rem; }
  .verified-card { top: 7%; left: -3px; }
  .trip-card { top: 32%; right: -3px; }
  .track-card { display: none; }
  .fare-card, .project-card { display: none; }
  .hero-note { display: block; margin-top: 5px; font-size: .8rem; }
  .intro-grid { grid-template-columns: repeat(2,1fr); }
  .intro-grid article { min-height: 120px; padding: 20px 16px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .intro-grid article:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
  .intro-grid p { font-size: .75rem; }
  .decision-band { padding: 20px 0; }
  .decision-layout { align-items: flex-start; flex-direction: column; gap: 14px; }
  .decision-metrics {
    width: calc(100% + 14px);
    margin-right: -14px;
    padding-right: 14px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .decision-metrics::-webkit-scrollbar { display: none; }
  .decision-metrics span { flex: 0 0 auto; }
  h2 { font-size: clamp(2.15rem,11vw,3.3rem); }
  .section-heading { margin-bottom: 34px; }
  .platform-layout, .opportunity-layout, .security-layout, .institution-layout, .status-layout, .contact-layout { gap: 38px; }
  .platform-list { gap: 9px; margin-top: 22px; }
  .platform-list article { padding: 12px; }
  .ecosystem-visual { min-height: 350px; }
  .ecosystem-visual img { height: 350px; }
  .ecosystem-label { display: none; }
  .opportunity-visual { min-height: 420px; }
  .map-stat { padding: 8px 10px; font-size: .75rem; }
  .stat-one { top: 5%; left: 4%; }
  .stat-two { top: 13%; right: 3%; }
  .stat-three { right: 5%; bottom: 5%; }
  .opportunity-points { margin-top: 22px; }
  .opportunity-points li { padding: 12px 0; font-size: .9rem; }
  .flow-stage { padding: 12px 8px; }.flow-stage img { min-height: 310px; }.flow-badge { display: none; }
  .flow-steps { grid-template-columns: 1fr; }.flow-steps article, .flow-steps article:first-child { padding: 20px 0; border-top: 1px solid var(--border); border-left: 0; }
  .security-header { margin-bottom: 32px; }
  .security-mockup { min-height: 440px; }
  .security-mockup > img { height: 420px; }
  .security-float { padding: 9px 10px; }
  .security-driver { top: 5%; }
  .security-live { bottom: 8%; }
  .security-cards {
    display: flex;
    gap: 12px;
    width: calc(100% + 14px);
    margin-right: -14px;
    padding: 4px 14px 16px 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .security-cards::-webkit-scrollbar { display: none; }
  .security-card {
    flex: 0 0 82vw;
    min-height: 150px;
    align-items: flex-start;
    scroll-snap-align: start;
  }
  .legal-banner { align-items: flex-start; text-align: left; }
  .benefits-layout {
    display: flex;
    gap: 12px;
    width: calc(100% + 14px);
    margin-right: -14px;
    padding: 4px 14px 18px 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .benefits-layout::-webkit-scrollbar { display: none; }
  .benefit-panel { flex: 0 0 82vw; min-height: 350px; padding: 26px; scroll-snap-align: start; }
  .benefit-panel .line-icon { margin-bottom: 38px; }
  .mid-cta { align-items: stretch; flex-direction: column; padding: 22px; }
  .institution-process {
    display: flex;
    gap: 12px;
    width: calc(100% + 14px);
    margin-right: -14px;
    padding: 4px 14px 18px 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .institution-process::-webkit-scrollbar { display: none; }
  .process-card { flex: 0 0 78vw; min-height: 190px; scroll-snap-align: start; }
  .status-dashboard { min-height: 350px; padding: 8px; }
  .status-dashboard img { height: 330px; }
  .dashboard-label { top: 18px; left: 18px; }
  .status-list article { padding: 12px 0; }
  .roadmap-item { min-height: 116px; padding-top: 20px; padding-bottom: 18px; }
  .contact-copy { padding-top: 0; }.contact-layout { gap: 42px; }
  .contact-form { padding: 22px 18px; }.form-grid { grid-template-columns: 1fr; }.form-head { align-items: flex-start; flex-direction: column; }
  .footer-layout { grid-template-columns: 1fr; }.footer-legal { grid-column: auto; }
  .site-footer { padding-bottom: 92px; }
  .mobile-cta {
    position: fixed;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    border-radius: 7px;
    color: var(--navy);
    background: var(--teal);
    box-shadow: 0 16px 40px rgba(0,0,0,.3);
    font-weight: 850;
    opacity: 0;
    transform: translateY(140%);
    pointer-events: none;
    transition: opacity .24s ease, transform .24s ease;
  }
  .mobile-cta.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
}
