:root {
  --ink: #101942;
  --muted: #66708e;
  --violet: #5438e7;
  --purple: #7657f3;
  --pale: #f2f0ff;
  --line: #e4e7f1;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-height: 100svh; margin: 0; overflow-x: hidden; color: var(--ink); background: #fbfcff; font-family: Inter, Arial, sans-serif; }
main { min-height: 100svh; overflow: hidden; }
a { color: inherit; text-decoration: none; }

.site-header {
  width: 100%;
  height: 84px;
  margin: 0 auto;
  padding-inline: max(22px, calc((100vw - 1180px) / 2));
  display: flex;
  align-items: center;
  gap: 34px;
  position: relative;
  z-index: 20;
}
.brand { display: flex; align-items: center; gap: 11px; margin-right: auto; font-size: 18px; font-weight: 800; letter-spacing: -.03em; }
.brand strong { color: var(--violet); }
.brand-mark { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(145deg, var(--violet), #8468ff); color: white; box-shadow: 0 8px 20px rgba(84,56,231,.24); }
.brand-logo { width: 43px; height: 43px; flex: 0 0 auto; display: block; overflow: hidden; border-radius: 13px; background: #f7f8fc; box-shadow: 0 8px 20px rgba(35,42,88,.16); }
.brand-logo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.brand-logo-dark { display: none !important; }
.main-nav { display: flex; gap: 28px; color: #56617f; font-size: 13px; font-weight: 650; }
.main-nav a:hover { color: var(--violet); }
.theme-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid #dfe2ed; border-radius: 999px; color: #56617f; background: rgba(255,255,255,.72); font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.theme-toggle > span:first-child { color: var(--violet); font-size: 17px; line-height: 1; }
.theme-toggle:hover { border-color: var(--violet); color: var(--violet); }
.admin-login { display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; border: 1px solid #dfe2ed; border-radius: 999px; color: var(--violet); background: rgba(255,255,255,.72); font-size: 12px; font-weight: 800; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.admin-login:hover { border-color: var(--violet); background: #f2f0ff; transform: translateY(-1px); }
.header-cta, .primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 999px; background: linear-gradient(120deg, #4630dd, #7151f1); color: white; font-weight: 750; box-shadow: 0 12px 28px rgba(84,56,231,.22); }
.header-cta { padding: 12px 19px; font-size: 13px; }

.hero {
  width: 100%;
  min-height: calc(100svh - 84px);
  margin: 0 auto;
  padding: clamp(36px, 5vh, 64px) max(30px, calc((100vw - 1180px) / 2)) 48px;
  display: grid;
  grid-template-columns: 1.04fr .96fr;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.hero::before { display: none; }
.hero::after { content: ''; position: absolute; width: 150px; height: 150px; right: 36%; top: 70px; border-radius: 50%; background: rgba(118,87,243,.07); }
.hero-copy { max-width: 650px; position: relative; z-index: 3; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: var(--violet); text-transform: uppercase; letter-spacing: .13em; font-size: 11px; font-weight: 800; }
.eyebrow span { width: 30px; height: 2px; background: var(--violet); }
.hero h1 { max-width: 620px; margin: 20px 0 22px; font-size: clamp(55px, 6vw, 86px); line-height: .97; letter-spacing: -.065em; font-weight: 800; }
.hero h1 em { color: var(--violet); font-family: Georgia, serif; font-weight: 500; }
.hero-copy > p { max-width: 580px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.72; }
.hero-actions { display: flex; align-items: center; gap: 13px; margin-top: 31px; }
.primary-button, .secondary-button { min-height: 54px; padding: 0 23px; font-size: 14px; transition: transform .2s ease; }
.primary-button:hover, .secondary-button:hover { transform: translateY(-2px); }
.primary-button span { font-size: 20px; }
.secondary-button { display: inline-flex; align-items: center; gap: 10px; border: 1px solid #d8dcec; border-radius: 999px; background: white; font-weight: 750; box-shadow: 0 10px 25px rgba(16,25,66,.06); }
.secondary-button span { color: var(--violet); }
.trust-row { display: flex; align-items: center; gap: 18px; margin-top: 39px; }
.trust-row div { display: flex; flex-direction: column; }
.trust-row strong { font-size: 12px; }
.trust-row span { margin-top: 3px; color: #7b849e; font-size: 10px; }
.trust-row i { width: 1px; height: 31px; background: #dfe2ec; }

.hero-visual { width: 100%; max-width: 570px; min-height: 540px; margin-inline: auto; display: grid; place-items: center; position: relative; z-index: 3; isolation: isolate; }
.hero-visual::before { content: ''; position: absolute; width: 620px; height: 620px; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle at 38% 35%, #f8f7ff 0 15%, #ebe8ff 40%, #ddd7ff 72%, #d1c9ff 100%); box-shadow: 0 32px 75px rgba(27, 23, 73, .16), inset 0 -18px 42px rgba(109, 91, 205, .08); z-index: -1; }
.phone-frame { width: 286px; height: 535px; padding: 9px; border: 2px solid #1c2144; border-radius: 42px; background: #11162e; box-shadow: 0 38px 70px rgba(27,23,73,.28); overflow: hidden; transform: rotate(3deg); position: relative; z-index: 3; }
.phone-frame img { width: 100%; height: auto; border-radius: 31px; display: block; }
.phone-camera { position: absolute; width: 80px; height: 21px; top: 16px; left: 50%; z-index: 2; transform: translateX(-50%); border-radius: 20px; background: #0e132a; }
.route-line { position: absolute; top: 52px; left: -12px; z-index: 4; display: flex; align-items: center; gap: 9px; padding: 12px 14px; border: 1px solid rgba(84,56,231,.13); border-radius: 14px; background: rgba(255,255,255,.93); box-shadow: 0 16px 35px rgba(30,27,74,.13); backdrop-filter: blur(10px); font-size: 10px; }
.route-line span, .route-line b { font-weight: 750; }
.route-line i { width: 33px; height: 1px; background: var(--purple); position: relative; }
.route-line i::after { content: '›'; position: absolute; right: -2px; top: -10px; color: var(--violet); font-style: normal; font-size: 17px; }
.floating-card { position: absolute; z-index: 5; border: 1px solid rgba(84,56,231,.11); background: rgba(255,255,255,.94); box-shadow: 0 18px 40px rgba(31,25,87,.16); backdrop-filter: blur(12px); }
.ride-card { width: 248px; right: -18px; bottom: 72px; display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; padding: 12px; border-radius: 16px; }
.car-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: var(--pale); }
.ride-card small, .ride-card strong { display: block; }
.ride-card small { color: #7b849e; font-size: 9px; }
.ride-card strong { margin-top: 3px; font-size: 10px; }
.ride-card b { color: var(--violet); font-size: 13px; }
.verified-card { left: 26px; bottom: 20px; display: flex; align-items: center; gap: 7px; padding: 10px 13px; border-radius: 999px; color: #287a4c; font-size: 10px; font-weight: 750; }
.verified-card span { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: #e3f7ea; }

.download-band {
  width: min(1180px, calc(100% - 44px));
  min-height: 150px;
  margin: -150px auto 32px;
  padding: 25px 28px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  border: 1px solid #e0e2ed;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 22px 55px rgba(27,35,75,.10);
  position: relative;
  z-index: 10;
}
.download-icon { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 19px; background: linear-gradient(145deg, #4a32df, #8164fa); color: white; font-size: 17px; font-weight: 850; letter-spacing: -.04em; box-shadow: 0 14px 28px rgba(84,56,231,.22); }
.download-copy span { color: var(--violet); text-transform: uppercase; letter-spacing: .13em; font-size: 9px; font-weight: 800; }
.download-copy h2 { max-width: 620px; margin: 6px 0 5px; font-size: clamp(18px, 2.1vw, 27px); line-height: 1.15; letter-spacing: -.035em; }
.download-copy p { margin: 0; color: #778098; font-size: 11px; }
.store-links { display: flex; gap: 9px; }
.store-links a { min-width: 152px; min-height: 55px; padding: 9px 13px; display: flex; align-items: center; gap: 10px; border-radius: 14px; background: var(--ink); color: white; box-shadow: 0 12px 25px rgba(16,25,66,.14); transition: transform .2s ease, background .2s ease; }
.store-links a:hover { transform: translateY(-2px); background: var(--violet); }
.store-links i { width: 24px; color: #cfc7ff; font-size: 18px; font-style: normal; text-align: center; }
.store-links span, .store-links small, .store-links strong { display: block; }
.store-links small { color: #bac0d3; font-size: 7px; letter-spacing: .08em; }
.store-links strong { margin-top: 2px; font-size: 13px; }

@media (max-width: 960px) {
  .main-nav { display: none; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding: 44px 22px 72px; text-align: center; }
  .hero-copy { margin: 0 auto; }
  .eyebrow, .hero-actions, .trust-row { justify-content: center; }
  .hero-visual { max-width: 600px; min-height: 540px; }
  .hero-visual::before { width: 620px; height: 620px; }
  .hero-visual { margin-top: 24px; }
  .download-band { grid-template-columns: auto 1fr; margin-top: 0; }
  .store-links { grid-column: 1 / -1; justify-content: center; }
}

@media (max-width: 600px) {
  .site-header { height: 72px; gap: 12px; padding-inline: 14px; }
  .brand { font-size: 16px; }
  .brand-mark { width: 32px; height: 32px; border-radius: 10px; }
  .admin-login { padding: 9px 11px; font-size: 11px; }
  .header-cta { padding: 10px 13px; font-size: 12px; }
  .hero { width: 100%; padding: 32px 14px 54px; }
  .hero h1 { font-size: clamp(43px, 14vw, 62px); }
  .hero-copy > p { font-size: 16px; }
  .hero-actions { flex-direction: column; }
  .primary-button, .secondary-button { width: min(100%, 290px); }
  .trust-row { flex-wrap: wrap; gap: 10px; }
  .hero-visual { min-height: 540px; }
  .hero-visual::before { width: 620px; height: 620px; }
  .phone-frame { width: 286px; height: 535px; aspect-ratio: auto; }
  .route-line { left: 0; }
  .ride-card { width: min(248px, calc(100% - 12px)); right: 0; }
  .verified-card { left: 0; }
  .download-band { width: calc(100% - 28px); grid-template-columns: 1fr; padding: 24px 20px; text-align: center; }
  .download-icon { margin: 0 auto; }
  .store-links { grid-column: auto; flex-direction: column; }
  .store-links a { width: 100%; justify-content: center; }
}

/* How it works, ride modes and audience journeys */
.how-section { width: min(1180px, calc(100% - 44px)); margin: 0 auto; padding: 64px 0 64px; }
.section-heading { max-width: 680px; }
.section-heading h2 { margin: 17px 0 13px; max-width: 640px; font-size: clamp(37px, 5vw, 64px); line-height: 1; letter-spacing: -.06em; }
.section-heading > p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 43px; }
.step-card { min-height: 292px; padding: 25px 24px 22px; border: 1px solid #e3e5ef; border-radius: 23px; background: white; box-shadow: 0 17px 38px rgba(20,28,75,.06); position: relative; overflow: hidden; }
.step-card-featured { color: white; border-color: transparent; background: linear-gradient(145deg, #1a2452, #101737); box-shadow: 0 18px 38px rgba(16,25,66,.16); }
.step-card-featured::after { content: ''; width: 180px; height: 180px; position: absolute; right: -75px; bottom: -82px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 20px rgba(255,255,255,.03), 0 0 0 40px rgba(255,255,255,.025); }
.step-number { color: #a8b1cf; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.step-card-featured .step-number { color: #b4aaff; }
.step-icon { width: 43px; height: 43px; margin: 32px 0 20px; display: grid; place-items: center; border-radius: 14px; color: var(--violet); background: var(--pale); font-size: 22px; font-weight: 700; }
.step-card-featured .step-icon { color: white; background: rgba(118,87,243,.86); }
.step-card h3 { margin: 0 0 9px; font-size: 22px; letter-spacing: -.04em; }
.step-card p { max-width: 280px; margin: 0; color: #7a839e; font-size: 14px; line-height: 1.55; }
.step-card-featured p { color: #cad0e4; }
.route-pair { display: flex; align-items: center; gap: 8px; margin-top: 22px; color: #c3bbff; font-size: 11px; }
.route-pair span { color: #a99bff; font-size: 16px; }
.ride-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.ride-tags span { padding: 6px 9px; border: 1px solid #e1e3ef; border-radius: 999px; color: #5a6584; font-size: 10px; font-weight: 750; }
.verified-note { display: flex; align-items: center; gap: 7px; margin-top: 21px; color: #317d53; font-size: 11px; font-weight: 750; }
.verified-note span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: #e7f8ed; }
.ride-modes { display: grid; grid-template-columns: 1.05fr repeat(3, 1fr); gap: 12px; align-items: stretch; margin-top: 76px; }
.mode-intro { padding: 7px 22px 0 0; }
.mode-kicker, .section-label { color: var(--violet); text-transform: uppercase; letter-spacing: .15em; font-size: 10px; font-weight: 850; }
.mode-intro h3 { margin: 13px 0 9px; font-size: 26px; line-height: 1.05; letter-spacing: -.05em; }
.mode-intro p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.mode-card { min-height: 194px; padding: 18px 17px; border-radius: 18px; position: relative; overflow: hidden; }
.mode-card::after { content: ''; position: absolute; width: 105px; height: 105px; right: -34px; bottom: -39px; border-radius: 50%; border: 1px solid rgba(255,255,255,.26); box-shadow: 0 0 0 14px rgba(255,255,255,.08); }
.mode-pool { background: #e9f6ef; color: #153f2d; }
.mode-transport { background: #f1efff; color: #261d68; }
.mode-premium { background: #fff1db; color: #5d3714; }
.mode-top { display: flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.mode-symbol { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: white; background: rgba(16,25,66,.76); font-size: 15px; }
.mode-card h4 { max-width: 180px; margin: 22px 0 8px; font-size: 18px; line-height: 1.08; letter-spacing: -.035em; }
.mode-card p { max-width: 190px; margin: 0; color: rgba(16,25,66,.65); font-size: 12px; line-height: 1.45; }
.future-strip { margin-top: 50px; padding: 18px 22px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; border: 1px solid #e0e3ee; border-radius: 18px; background: #fff; }
.future-mark { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 12px; color: white; background: linear-gradient(145deg, #4a32df, #8164fa); box-shadow: 0 8px 18px rgba(84,56,231,.2); }
.future-strip span, .future-strip strong { display: block; }
.future-strip span { color: var(--violet); text-transform: uppercase; letter-spacing: .12em; font-size: 9px; font-weight: 850; }
.future-strip strong { margin-top: 4px; font-size: 14px; }
.future-strip a { padding: 10px 14px; border-radius: 999px; color: var(--violet); background: var(--pale); font-size: 11px; font-weight: 800; white-space: nowrap; }
.future-strip a span { display: inline; margin-left: 4px; color: inherit; font-size: 15px; }
.audience-section { width: min(1080px, calc(100% - 44px)); margin: 0 auto; padding: 92px 0; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(45px, 8vw, 120px); }
.riders-section { padding-top: 56px; }
.audience-copy h2 { max-width: 490px; margin: 16px 0 16px; font-size: clamp(36px, 4.8vw, 59px); line-height: .99; letter-spacing: -.06em; }
.audience-copy > p { max-width: 470px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.audience-list { margin: 28px 0 0; padding: 0; list-style: none; display: grid; gap: 16px; }
.audience-list li { display: grid; grid-template-columns: 29px 1fr; gap: 12px; align-items: start; }
.audience-list li > span { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #dddff0; border-radius: 50%; color: var(--violet); font-size: 11px; font-weight: 800; }
.audience-list strong, .audience-list small { display: block; }
.audience-list strong { font-size: 14px; }
.audience-list small { margin-top: 3px; color: #7a839e; font-size: 12px; line-height: 1.45; }
.text-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 30px; color: var(--violet); font-size: 13px; font-weight: 800; }
.text-link span { font-size: 18px; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(3px); }
.audience-panel { min-height: 430px; padding: 28px; border-radius: 28px; background: #101839; color: white; box-shadow: 0 24px 55px rgba(16,25,66,.2); position: relative; overflow: hidden; }
.driver-panel { background: linear-gradient(150deg, #202966, #101839); }
.rider-panel { background: linear-gradient(150deg, #4931ca, #201463); }
.panel-glow { width: 260px; height: 260px; position: absolute; right: -100px; top: -90px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 22px rgba(255,255,255,.035), 0 0 0 46px rgba(255,255,255,.025); }
.panel-header { display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 1; color: #b9c1de; font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.panel-header b { padding: 6px 9px; border-radius: 999px; color: #9af0bd; background: rgba(73,202,122,.15); font-size: 9px; letter-spacing: 0; }
.rider-panel .panel-header b { color: #ffe1a9; background: rgba(255,193,89,.18); }
.trip-route { margin-top: 70px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; font-size: 18px; letter-spacing: -.04em; position: relative; z-index: 1; }
.trip-route strong:last-child { text-align: right; }
.trip-line { height: 1px; background: linear-gradient(90deg, #aa9bff, #fff); position: relative; }
.trip-line::after { content: '›'; position: absolute; right: -3px; top: -11px; color: white; font-size: 17px; }
.trip-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; color: #aeb8d4; font-size: 10px; }
.passenger-stack { margin-top: 70px; padding: 15px; display: flex; align-items: center; gap: 14px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.08); position: relative; z-index: 1; }
.passenger-stack > div { display: flex; }
.passenger-stack > div span { width: 28px; height: 28px; margin-right: -6px; display: grid; place-items: center; border: 2px solid #202966; border-radius: 50%; color: #191f4a; background: #e9efff; font-size: 8px; font-weight: 800; }
.passenger-stack > div span:nth-child(2) { background: #ffe4bf; }
.passenger-stack > div span:nth-child(3) { color: white; background: #8272ed; }
.passenger-stack strong { font-size: 11px; }
.panel-footer { margin-top: 24px; padding-top: 16px; display: flex; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.13); color: #aeb8d4; font-size: 11px; position: relative; z-index: 1; }
.panel-footer strong { color: white; font-size: 16px; }
.panel-footer small { color: #aeb8d4; font-size: 9px; font-weight: 500; }
.booking-card { margin-top: 70px; padding: 15px; display: grid; grid-template-columns: 39px 1fr auto; align-items: center; gap: 11px; border-radius: 16px; color: var(--ink); background: white; position: relative; z-index: 1; }
.booking-icon { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; background: #f1edff; font-size: 18px; }
.booking-card small, .booking-card strong, .booking-card span { display: block; }
.booking-card small { color: var(--violet); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.booking-card strong { margin-top: 4px; font-size: 12px; }
.booking-card div > span { margin-top: 4px; color: #7c849d; font-size: 10px; }
.booking-card > b { color: var(--violet); font-size: 14px; }
.check-row { margin-top: 16px; padding: 14px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 14px; background: rgba(255,255,255,.1); position: relative; z-index: 1; }
.check-row > span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: #5f4217; background: #ffe1a9; font-weight: 800; }
.check-row strong, .check-row small { display: block; }
.check-row strong { font-size: 11px; }
.check-row small { margin-top: 3px; color: #d9d4f0; font-size: 10px; }

main.theme-dark { --ink: #f5f6ff; --muted: #aab4d1; --violet: #9b89ff; --purple: #b0a4ff; --pale: #241c52; --line: #2b345b; color: #f5f6ff; background: #0b1027; }
main.theme-dark .site-header { background: rgba(11,16,39,.78); }
main.theme-dark .brand-logo { background: #03050d; box-shadow: 0 8px 20px rgba(0,0,0,.32); }
main.theme-dark .brand-logo-light { display: none !important; }
main.theme-dark .brand-logo-dark { display: block !important; }
main.theme-dark .main-nav { color: #bcc5df; }
main.theme-dark .brand, main.theme-dark .trust-row strong, main.theme-dark .hero h1 { color: #f5f6ff; }
main.theme-dark .theme-toggle { border-color: #30385e; color: #c4cbe0; background: rgba(21,28,61,.84); }
main.theme-dark .theme-toggle:hover { border-color: var(--violet); color: var(--violet); }
main.theme-dark .hero::before { background: radial-gradient(circle at 38% 35%, #202653 0 15%, #1b2148 40%, #171d40 72%, #111633 100%); }
main.theme-dark .hero-visual::before { background: radial-gradient(circle at 38% 35%, #202653 0 15%, #1b2148 40%, #171d40 72%, #111633 100%); box-shadow: 0 32px 75px rgba(0,0,0,.3), inset 0 -18px 42px rgba(8,10,29,.2); }
main.theme-dark .hero::after { background: rgba(153,137,255,.11); }
main.theme-dark .hero-copy > p, main.theme-dark .section-heading > p, main.theme-dark .audience-copy > p, main.theme-dark .mode-intro p { color: var(--muted); }
main.theme-dark .secondary-button { border-color: #343c62; background: #151c3d; color: #f3f4ff; box-shadow: 0 10px 25px rgba(0,0,0,.18); }
main.theme-dark .trust-row i { background: #323a5d; }
main.theme-dark .trust-row span, main.theme-dark .audience-list small { color: #9da8c6; }
main.theme-dark .route-line, main.theme-dark .floating-card { border-color: rgba(155,137,255,.22); background: rgba(24,29,64,.95); color: #f5f6ff; }
main.theme-dark .ride-card small { color: #aab4d1; }
main.theme-dark .car-icon, main.theme-dark .booking-icon { background: #29215b; }
main.theme-dark .download-band { border-color: #2d365c; background: rgba(18,25,57,.98); box-shadow: 0 22px 55px rgba(0,0,0,.22); }
main.theme-dark .download-copy p { color: #9da8c6; }
main.theme-dark .store-links a { background: #252d57; }
main.theme-dark .store-links a:hover { background: var(--violet); }
main.theme-dark .step-card { border-color: #2e375d; background: #141c3f; box-shadow: 0 17px 38px rgba(0,0,0,.16); }
main.theme-dark .step-card p { color: #aab4d1; }
main.theme-dark .step-card-featured { border-color: transparent; background: linear-gradient(145deg, #222b65, #11183a); }
main.theme-dark .ride-tags span { border-color: #3b446c; color: #c1c9e1; }
main.theme-dark .audience-list li > span { border-color: #3a4268; }
main.theme-dark .mode-pool { background: #17372f; color: #dcf8e8; }
main.theme-dark .mode-transport { background: #26215a; color: #e7e2ff; }
main.theme-dark .mode-premium { background: #4b311b; color: #ffebc9; }
main.theme-dark .mode-card p { color: rgba(239,241,255,.72); }
main.theme-dark .future-strip { border-color: #2e375d; background: #141c3f; }
main.theme-dark .future-strip strong { color: #f2f4ff; }
main.theme-dark .future-strip a { background: #29215b; }
main.theme-dark .audience-panel { box-shadow: 0 24px 55px rgba(0,0,0,.3); }
main.theme-dark .panel-footer { color: #aeb8d4; }
main.theme-dark .text-link { color: #a99aff; }
main.theme-dark .section-heading h2, main.theme-dark .audience-copy h2, main.theme-dark .download-copy h2 { color: #f5f6ff; }
main.theme-dark .step-card h3, main.theme-dark .audience-list strong { color: #f5f6ff; }
main.theme-dark .booking-card { color: #101942; }
main.theme-dark .booking-card strong { color: #101942; }
main.theme-dark .booking-card div > span { color: #69728f; }

@media (max-width: 960px) {
  .how-section { padding-top: 82px; }
  .step-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .step-card { padding-inline: 18px; }
  .ride-modes { grid-template-columns: repeat(3, 1fr); }
  .mode-intro { grid-column: 1 / -1; padding: 0; }
  .audience-section { gap: 40px; }
  .audience-panel { padding: 23px; }
}
@media (max-width: 600px) {
  .theme-toggle { padding: 7px 9px; }
  .theme-toggle-label { display: none; }
  .how-section { width: calc(100% - 28px); padding: 72px 0 34px; }
  .section-heading h2 { font-size: clamp(38px, 12vw, 52px); }
  .section-heading > p { font-size: 16px; }
  .step-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 30px; }
  .step-card { min-height: 245px; padding: 22px; }
  .step-icon { margin: 24px 0 15px; }
  .ride-modes { grid-template-columns: 1fr; margin-top: 56px; gap: 10px; }
  .mode-card { min-height: 166px; }
  .future-strip { grid-template-columns: auto 1fr; margin-top: 34px; padding: 16px; }
  .future-strip a { grid-column: 1 / -1; justify-self: start; margin-left: 52px; }
  .audience-section { width: calc(100% - 28px); padding: 58px 0; grid-template-columns: 1fr; gap: 38px; }
  .riders-section { display: flex; flex-direction: column-reverse; padding-top: 25px; }
  .audience-copy h2 { font-size: clamp(39px, 12vw, 54px); }
  .audience-copy > p { font-size: 16px; }
  .audience-panel { width: 100%; min-height: 370px; padding: 22px; border-radius: 23px; }
  .trip-route { margin-top: 54px; font-size: 16px; }
  .passenger-stack { margin-top: 52px; }
  .booking-card { margin-top: 52px; }
}

.site-footer { width: min(1180px, calc(100% - 44px)); margin: 58px auto 0; padding-top: 48px; border-top: 1px solid #e1e4ee; }
.footer-main { display: grid; grid-template-columns: 1.2fr 1.35fr 1.25fr .9fr; gap: 28px; }
.footer-brand { display: inline-flex; align-items: center; gap: 10px; font-size: 17px; font-weight: 850; letter-spacing: -.035em; }
.footer-brand .brand-logo { width: 45px; height: 45px; }
.footer-brand p { margin: 16px 0 0; color: var(--violet); text-transform: uppercase; letter-spacing: .14em; font-size: 10px; font-weight: 800; }
.footer-brand p span { margin: 0 4px; color: #9ea7c3; }
.footer-brand-block > small { display: block; max-width: 210px; margin-top: 14px; color: #7d879f; font-size: 12px; line-height: 1.5; }
.footer-column h3 { margin: 5px 0 13px; font-size: 14px; letter-spacing: -.02em; }
.footer-column > p { max-width: 225px; margin: 0; color: #7d879f; font-size: 12px; line-height: 1.5; }
.footer-stores { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.footer-stores a { min-width: 142px; padding: 9px 11px; display: flex; align-items: center; gap: 9px; border-radius: 12px; color: white; background: var(--ink); box-shadow: 0 10px 20px rgba(16,25,66,.12); }
.footer-stores a:hover { background: var(--violet); }
.footer-stores i { width: 20px; color: #cfc7ff; font-size: 15px; font-style: normal; text-align: center; }
.footer-stores span, .footer-stores small, .footer-stores strong { display: block; }
.footer-stores small { color: #b9c0d5; font-size: 6px; letter-spacing: .08em; }
.footer-stores strong { margin-top: 2px; font-size: 11px; }
.footer-contact a, .footer-legal a { display: block; width: fit-content; margin-bottom: 9px; color: #65708d; font-size: 12px; }
.footer-contact a:hover, .footer-legal a:hover { color: var(--violet); }
.footer-contact address { max-width: 230px; margin-top: 15px; color: #7d879f; font-size: 11px; font-style: normal; line-height: 1.5; }
.footer-legal .delete-account-link { color: #b55a6a; }
.footer-legal .delete-account-link span { margin-left: 3px; font-size: 15px; }
.footer-bottom { margin-top: 39px; padding: 17px 0 21px; display: flex; justify-content: space-between; gap: 14px; border-top: 1px solid #e1e4ee; color: #8a93aa; font-size: 10px; }
.policy-notes { width: min(1180px, calc(100% - 44px)); margin: 0 auto 45px; padding: 22px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.policy-notes article { padding: 17px 18px; border: 1px solid #e2e5ef; border-radius: 15px; background: #fff; scroll-margin-top: 24px; }
.policy-notes h2 { margin: 0 0 8px; font-size: 14px; }
.policy-notes p { margin: 0; color: #7d879f; font-size: 11px; line-height: 1.55; }
main.theme-dark .site-footer { border-color: #2d365c; }
main.theme-dark .footer-brand-block > small, main.theme-dark .footer-column > p, main.theme-dark .footer-contact address { color: #9da8c6; }
main.theme-dark .footer-contact a, main.theme-dark .footer-legal a { color: #b0bad4; }
main.theme-dark .footer-stores a { color: #f5f6ff; background: #252d57; }
main.theme-dark .footer-stores a:hover { background: var(--violet); }
main.theme-dark .footer-bottom { border-color: #2d365c; color: #919bb7; }
main.theme-dark .policy-notes article { border-color: #2e375d; background: #141c3f; }
main.theme-dark .policy-notes p { color: #aab4d1; }
@media (min-width: 1440px) {
  .site-header { padding-inline: max(22px, calc((100vw - 1380px) / 2)); }
  .hero { padding-inline: max(30px, calc((100vw - 1380px) / 2)); }
  .how-section, .download-band, .site-footer, .policy-notes { width: min(1380px, calc(100% - 80px)); }
  .audience-section { width: min(1240px, calc(100% - 80px)); }
}
@media (max-width: 960px) {
  .footer-main { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
  .footer-brand-block { grid-row: span 2; }
}
@media (max-width: 600px) {
  .footer-main { grid-template-columns: 1fr; row-gap: 32px; }
  .footer-brand-block { grid-row: auto; }
  .footer-stores { flex-direction: column; align-items: stretch; }
  .footer-stores a { justify-content: center; }
  .footer-bottom { flex-direction: column; line-height: 1.45; }
  .policy-notes { width: calc(100% - 28px); grid-template-columns: 1fr; }
}
