:root{
  --navy:#15295E; --navy-deep:#0F1F4A; --ink:#18264A; --muted:#5D6880;
  --gold:#F2A33A; --gold-ink:#8A5A0B; --paper:#F5F6FA; --white:#fff;
  --green:#287D6C; --line:#E3E7F0;
  --wrap:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{font-family:Rubik,system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.6;font-size:17px}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:24px}

/* header */
.top{background:var(--navy);color:#fff}
.top .wrap{display:flex;align-items:center;gap:20px;height:76px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:20px}
.brand img{width:46px;height:46px;object-fit:cover;transform:scale(1.55)}
.brand .mark{width:46px;height:46px;overflow:hidden;border-radius:12px;display:grid;place-items:center}
.top nav{margin-inline-start:auto;display:flex;align-items:center;gap:22px;font-size:15px}
.top nav a{text-decoration:none;opacity:.85}
.top nav a:hover{opacity:1}
.lang{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;font:inherit;font-size:14px;padding:6px 12px;border-radius:999px;cursor:pointer}
.btn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:600;text-decoration:none;border-radius:14px;padding:14px 22px;border:0;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--navy-deep)}
.btn-gold:hover{background:#F6B353}
.btn-sm{padding:9px 16px;font-size:15px;border-radius:11px}

/* hero */
.hero{background:var(--navy);color:#fff;overflow:hidden;position:relative}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding-block:56px 88px}
.hero h1{font-weight:800;font-size:clamp(46px,6.4vw,92px);line-height:1.05;letter-spacing:-.01em}
html[lang=en] .hero h1{letter-spacing:-.03em;line-height:1}
.hero h1 span{display:block}
.hero p.lead{font-size:20px;max-width:30ch;color:#D5DCEE;margin-top:22px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;align-items:center}
.store{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.28);border-radius:14px;padding:9px 16px;color:#fff;text-decoration:none;font-size:14px;line-height:1.25}
.store svg{width:22px;height:22px;flex:none}
.store b{display:block;font-size:16px;font-weight:600}
.store small{opacity:.75}
.same{margin-top:22px;font-size:15px;color:#AFC0E6;max-width:44ch}

/* route illustration */
.route{position:relative;aspect-ratio:1/1;max-width:540px;width:100%;justify-self:center}
.route svg.road{position:absolute;inset:0;width:100%;height:100%}
.route{direction:ltr}
html[dir=rtl] .ticket,html[dir=rtl] .pin span{direction:rtl}
.pin{position:absolute;display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;white-space:nowrap}
.pin i{width:38px;height:38px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);display:grid;place-items:center;flex:none}
.pin i svg{transform:rotate(45deg);width:18px;height:18px}
.pin.from{bottom:-3%;left:5%;flex-direction:column;align-items:flex-start;gap:4px}
.pin.from i{background:#fff}
.pin.to{top:2%;right:4%}
.pin.to i{background:var(--gold)}
.ticket{position:absolute;background:#fff;color:var(--ink);border-radius:16px;padding:12px 16px;display:grid;grid-template-columns:auto 1fr;column-gap:14px;width:270px;box-shadow:0 18px 40px rgba(5,14,40,.35)}
.ticket .time{grid-row:span 3;font-weight:800;font-size:26px;align-self:center;color:var(--navy)}
.ticket .who{font-weight:600;font-size:15px;display:flex;gap:6px;align-items:center}
.ticket .who em{font-style:normal;font-size:12px;color:var(--green);background:#E9F5EF;border-radius:6px;padding:1px 6px;font-weight:500}
.ticket .meta{font-size:13px;color:var(--muted)}
.ticket .seats{font-size:13px;font-weight:600;color:var(--gold-ink);display:flex;justify-content:space-between;gap:10px;white-space:nowrap}
.ticket .meta{white-space:nowrap}
.ticket .seats span:last-child{color:var(--ink)}
.t1{top:44%;left:34%}
.t2{top:16%;left:4%}
@media (prefers-reduced-motion:no-preference){
  .road .dash{stroke-dasharray:14 14;animation:drive 1.6s linear infinite}
  @keyframes drive{to{stroke-dashoffset:-28}}
  html[dir=rtl] .road .dash{animation-direction:reverse}
}

/* coverage strip */
.cover{background:#fff;border-bottom:1px solid var(--line)}
.cover .wrap{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:baseline;padding-block:22px}
.cover strong{font-weight:600}
.cover .soon{margin-inline-start:auto;font-size:14px;font-weight:600;color:var(--navy);background:#E8EDF8;border-radius:999px;padding:4px 12px}
.cover ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--muted);font-size:15px}

/* sections */
section.block{padding-block:88px}
h2{font-size:clamp(30px,3.4vw,44px);font-weight:700;line-height:1.15;max-width:22ch}
.sub{color:var(--muted);margin-top:10px;max-width:56ch}

/* how it works: a road with stops */
.how{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:48px}
.how h3{font-size:22px;font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:24px}
.how h3 .tag{font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--navy);color:#fff}
.how h3 .tag.d{background:var(--gold);color:var(--navy-deep)}
.stops{list-style:none;position:relative;padding-inline-start:56px}
.stops::before{content:"";position:absolute;inset-inline-start:17px;top:12px;bottom:12px;border-inline-start:4px dashed #C5CDE0}
.stops li{position:relative;padding-bottom:30px}
.stops li:last-child{padding-bottom:0}
.stops li::before{counter-increment:s;content:counter(s);position:absolute;inset-inline-start:-56px;top:0;width:38px;height:38px;border-radius:50%;background:#fff;border:3px solid var(--navy);display:grid;place-items:center;font-weight:700;color:var(--navy);font-size:16px}
.stops{counter-reset:s}
.stops b{display:block;font-size:18px;font-weight:600}
.stops p{color:var(--muted);font-size:16px;max-width:42ch}
.stops li:last-child::before{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}

/* safety */
.safe{background:#fff}
.safe-list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:44px}
.safe-list div{border-top:3px solid var(--navy);padding-top:18px}
.safe-list b{display:block;font-size:19px;font-weight:600;margin-bottom:6px}
.safe-list p{color:var(--muted);font-size:16px}

/* app coming */
.app{background:var(--navy-deep);color:#fff}
.app .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.app h2{color:#fff}
.app .sub{color:#B9C5E4}
.app .stores{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.acct{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:26px}
.acct b{font-size:19px;font-weight:600;display:block;margin-bottom:8px}
.acct p{color:#C9D3EC;font-size:16px}
.acct .flow{display:flex;align-items:center;gap:12px;margin-top:18px;font-size:14px;color:#fff;flex-wrap:wrap}
.acct .flow span{background:rgba(255,255,255,.1);border-radius:10px;padding:7px 12px}
.acct .flow svg{width:22px;height:22px;opacity:.7}
html[dir=rtl] .acct .flow svg{transform:scaleX(-1)}

/* faq */
.faq{max-width:780px;margin-top:36px}
.faq details{border-bottom:1px solid var(--line);padding-block:18px}
.faq summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:24px;line-height:1;color:var(--navy)}
.faq details[open] summary::after{content:"–"}
.faq p{color:var(--muted);margin-top:8px;max-width:64ch}

footer{background:#fff;border-top:1px solid var(--line);padding-block:34px;font-size:15px;color:var(--muted)}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
footer .brand{color:var(--ink);font-size:17px}
footer .brand .mark{width:34px;height:34px;background:var(--navy);border-radius:9px}footer .brand img{width:34px;height:34px}
footer nav{display:flex;gap:22px;margin-inline-start:auto}

/* responsive */
@media (max-width:900px){
  .top nav a.hide-sm{display:none}
  .hero .wrap{grid-template-columns:1fr;padding-block:36px 56px}
  .route{max-width:420px}
  .ticket{width:220px;padding:10px 12px}
  .ticket .time{font-size:22px}
  .how,.safe-list,.app .wrap{grid-template-columns:1fr}
  section.block{padding-block:64px}
}
@media (max-width:420px){
  .wrap{padding-inline:16px}
  .top nav{gap:12px}
  .brand span{display:none}
  .t2{display:none}
  .t1{left:16%;top:40%}
  .ticket .meta,.ticket .seats{white-space:nowrap}
  .ticket{width:236px}
}
.stores-row{margin-top:16px}
