/* Секция «Маршрут тура» для версии A */
.tour{position:relative;overflow:hidden;padding-block:clamp(64px,8vw,110px);background:radial-gradient(70% 60% at 50% 0%,rgba(102,67,147,.35),transparent 70%),var(--bg);scroll-margin-top:70px}
.tour .sec-h{margin-bottom:22px}
.rsw{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:28px;padding:8px 10px;border:1px dashed rgba(155,114,208,.5);border-radius:14px;width:fit-content;max-width:100%}
.rsw small{color:var(--accent-hi);font-size:12px;letter-spacing:1px;text-transform:uppercase;margin-right:6px}
.rsw button{background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--muted)}
.rsw button[aria-selected="true"]{background:#fff;color:#000;border-color:#fff}
.rv[hidden]{display:none}
.left{color:var(--muted);font-size:13px}
.stop-x.on .left{color:#fff}

/* 1 — Большая плашка */
.r1{background:var(--glass);border:1px solid var(--glass-b);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:28px;padding:clamp(20px,3vw,36px);overflow-x:auto}
.r1 .tr{position:relative;display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));min-width:900px}
.r1 .tr::before{content:"";position:absolute;left:8.3%;right:8.3%;top:27px;height:3px;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.25) 0 16.6%,var(--accent) 16.6%,var(--accent-hi))}
.r1 .st{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;background:none;border:0;padding:0 8px;cursor:pointer}
.r1 .st i{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--display);font-size:18px;background:#14141b;border:2px solid rgba(255,255,255,.45);transition:all .25s;margin-bottom:10px}
.r1 .st b{font-family:var(--display);font-weight:400;font-size:clamp(17px,1.5vw,22px);line-height:1.1}
.r1 .st .d{font-size:15px}
.r1 .st .go{margin-top:10px;font-size:13px;font-weight:700;border:1px solid var(--glass-b);border-radius:999px;padding:6px 12px;opacity:0;transition:opacity .2s}
.r1 .st:hover .go,.r1 .st.on .go{opacity:1}
.r1 .st.on i{background:var(--accent);border-color:var(--accent-hi);box-shadow:0 0 0 6px rgba(155,114,208,.3),0 0 22px var(--accent-hi)}
.r1 .st.on .go{background:#fff;color:#000;border-color:#fff}
.r1 .st.past{opacity:.5;cursor:default}
.r1 .st.past i{font-size:20px}

/* 2 — Карта */
.r2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:20px;align-items:stretch}
@media (max-width:900px){.r2{grid-template-columns:1fr}}
.map{position:relative;border-radius:28px;border:1px solid var(--line);background:radial-gradient(circle,rgba(255,255,255,.13) 1px,transparent 1.5px) 0 0/22px 22px,radial-gradient(80% 80% at 60% 40%,rgba(102,67,147,.35),transparent 70%),#0c0c12;overflow:hidden}
.map svg{display:block;width:100%;height:auto}
.map .path{fill:none;stroke:url(#rg);stroke-width:3;stroke-dasharray:10 10;animation:dash 30s linear infinite}
.map .path0{fill:none;stroke:rgba(255,255,255,.3);stroke-width:2;stroke-dasharray:4 8}
@keyframes dash{to{stroke-dashoffset:-600}}
.map .pt{cursor:pointer}
.map .pt circle.c{fill:#14141b;stroke:rgba(255,255,255,.6);stroke-width:2;transition:all .2s}
.map .pt circle.h{fill:var(--accent-hi);opacity:0}
.map .pt text{fill:#fff;font-family:var(--display);font-size:20px}
.map .pt text.s{font-family:var(--body);font-size:14px;fill:rgba(255,255,255,.7)}
.map .pt.on circle.c{fill:var(--accent);stroke:#fff}
.map .pt.on circle.h{opacity:.35;animation:pulse 1.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{from{transform:scale(1);opacity:.5}to{transform:scale(2.4);opacity:0}}
.map .pt.past circle.c{fill:#333;stroke:#666}
.map .pt.past text{fill:rgba(255,255,255,.5)}
.map .cap{position:absolute;left:18px;bottom:14px;font-size:12px;color:var(--faint)}
.rlist{display:grid;gap:8px;align-content:start}
.rlist button{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;transition:border-color .2s,background .2s}
.rlist button i{font-style:normal;font-family:var(--display);font-size:22px;line-height:1;text-align:center}
.rlist button i small{display:block;font-family:var(--body);font-size:11px;color:var(--muted)}
.rlist button b{font-family:var(--display);font-weight:400;font-size:17px}
.rlist button.on{border-color:var(--accent-hi);background:radial-gradient(90% 120% at 100% 0%,rgba(155,114,208,.4),transparent 60%),var(--panel)}
.rlist button.past{opacity:.5}

/* 3 — Вертикальная линия */
.r3{position:relative;max-width:980px;margin:0 auto}
.r3::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;margin-left:-1.5px;border-radius:3px;background:linear-gradient(var(--accent-hi),var(--accent) 80%,transparent)}
.r3 .it{position:relative;display:grid;grid-template-columns:1fr 64px 1fr;align-items:center;margin-bottom:22px}
.r3 .dot{grid-column:2;width:22px;height:22px;border-radius:50%;margin:auto;background:#14141b;border:3px solid var(--accent-hi);transition:all .2s}
.r3 .card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:20px 22px;display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:center;text-align:left;cursor:pointer;transition:border-color .2s,background .2s}
.r3 .card .n{grid-row:span 3;font-family:var(--display);font-size:52px;line-height:.9;text-align:center}
.r3 .card .n small{display:block;font-family:var(--body);font-size:14px;color:var(--muted);margin-top:6px}
.r3 .card b{font-family:var(--display);font-weight:400;font-size:22px}
.r3 .card .btn{justify-self:start;margin-top:8px}
.r3 .it:nth-child(odd) .card{grid-column:1;grid-row:1}
.r3 .it:nth-child(even) .card{grid-column:3;grid-row:1}
.r3 .it .dot{grid-row:1}
.r3 .it.on .card{border-color:var(--accent-hi);background:radial-gradient(90% 120% at 100% 0%,rgba(155,114,208,.45),transparent 60%),var(--panel)}
.r3 .it.on .dot{background:var(--accent);box-shadow:0 0 0 6px rgba(155,114,208,.3),0 0 18px var(--accent-hi)}
.r3 .it.past .card{opacity:.55}
@media (max-width:700px){.r3::before{left:11px}.r3 .it{grid-template-columns:24px 1fr;gap:14px}.r3 .dot{grid-column:1}.r3 .it:nth-child(n) .card{grid-column:2}}

/* 4 — Билеты */
.r4{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.r4::before{content:"";position:absolute;left:4%;right:4%;top:50%;border-top:2px dashed rgba(155,114,208,.6);z-index:0}
@media (max-width:1100px){.r4{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}.r4>*{scroll-snap-align:start}}
.tk{position:relative;z-index:1;display:flex;flex-direction:column;border-radius:20px;background:#16161d;border:1px solid var(--line);text-align:left;padding:0;cursor:pointer;color:#fff;
  -webkit-mask:radial-gradient(circle 12px at 0 62%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 62%,transparent 98%,#000) right/51% 100% no-repeat;
  mask:radial-gradient(circle 12px at 0 62%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 62%,transparent 98%,#000) right/51% 100% no-repeat;transition:background .2s,transform .2s}
.tk:hover{transform:translateY(-4px)}
.tk .top{padding:18px 18px 16px;flex:1;display:grid;gap:6px;align-content:start}
.tk .top small{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
.tk .top b{font-family:var(--display);font-weight:400;font-size:20px;line-height:1.1;min-height:2.2em}
.tk .num{font-family:var(--display);font-size:46px;line-height:.9}
.tk .num small{font-family:var(--body);font-size:14px;color:var(--muted);margin-left:4px}
.tk .bot{border-top:2px dashed rgba(255,255,255,.18);padding:12px 18px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}
.tk .bot span:last-child{font-weight:700}
.tk.on{background:linear-gradient(160deg,var(--accent-hi),var(--accent) 60%)}
.tk.on .top small,.tk.on .num small,.tk.on .left{color:rgba(255,255,255,.85)}
.tk.past{opacity:.55;cursor:default}
.tk.past:hover{transform:none}
.map .pt{outline:none}
.map .pt:focus-visible circle.c{stroke:#fff;stroke-width:4}
@media (max-width:600px){.map .pt text{font-size:28px}.map .pt text.s{display:none}}
