/* «Приехать в офис» — кнопка у адреса и шторка: маршрут / на месте / пропуск (assets/visit.js) */
.visit-btn{display:inline-flex;align-items:center;gap:.55em;min-height:44px;padding:0 18px;border:1px solid var(--accent);border-radius:999px;
  background:transparent;color:var(--accent-strong);font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;text-decoration:none;
  transition:background var(--dur-hover) var(--ease-soft),color var(--dur-hover) var(--ease-soft),transform .12s ease-out}
.visit-btn svg{width:16px;height:16px;flex:none}
.visit-btn:hover{background:var(--accent);color:var(--on-accent,#fff)}
.visit-btn:active{transform:scale(.98)}
.foot .visit-link{display:inline-flex;align-items:center;gap:.4em;margin-top:8px;font-size:var(--fs-sm);color:var(--text-muted);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}
.foot .visit-link:hover{color:var(--accent-strong);text-decoration-color:var(--accent)}
body.vs-lock{overflow:hidden}
.vs-ov{position:fixed;inset:0;z-index:calc(var(--z-menu,90) + 5);background:rgba(20,18,14,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .22s var(--ease-soft)}
.vs-ov.on{opacity:1}
.vs-sheet{position:relative;width:100%;max-width:560px;max-height:min(92vh,92dvh);overflow:auto;background:var(--surface);color:var(--text);
  border-radius:22px 22px 0 0;padding:22px 22px calc(22px + env(safe-area-inset-bottom,0px));box-shadow:0 -20px 60px -20px rgba(0,0,0,.45);
  transform:translateY(24px);transition:transform .26s var(--ease-soft);-webkit-overflow-scrolling:touch}
.vs-ov.on .vs-sheet{transform:none}
@media (min-width:700px){ .vs-ov{align-items:center;padding:24px} .vs-sheet{border-radius:22px;padding:28px 30px 30px;transform:translateY(12px) scale(.985)} }
.vs-x{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface-alt);color:var(--text-muted);display:grid;place-items:center;cursor:pointer}
.vs-x:hover{color:var(--text-strong)}
.vs-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,4.5vw,2.1rem);line-height:1.05;margin:6px 0 6px;color:var(--text-strong)}
.vs-head .eyebrow{font-size:var(--fs-xs)}
.vs-addr{margin:0;color:var(--text-muted);font-size:var(--fs-sm)}
.vs-sec{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.vs-sec h3{font-family:var(--sans);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-weight:600;margin:0 0 8px}
.vs-hint{margin:0 0 12px;font-size:var(--fs-xs);color:var(--text-faint);line-height:1.5}
.vs-routes{display:grid;gap:8px}
.vs-route{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:14px;
  background:var(--surface-alt);color:var(--text-strong);text-decoration:none;font-size:var(--fs-sm);font-weight:500;transition:border-color var(--dur-hover),background var(--dur-hover)}
.vs-route i{font-style:normal;color:var(--accent);transition:transform .15s ease-out}
.vs-route:hover{border-color:var(--accent)} .vs-route:hover i{transform:translateX(3px)}
.vs-go{display:grid;grid-template-columns:1.4fr 1fr;gap:8px}
button.vs-route{width:100%;font:inherit;cursor:pointer;text-align:left}
.vs-route.main{background:var(--accent);color:var(--on-accent,#fff);border-color:var(--accent);min-height:52px}
.vs-route.main i{color:inherit}
.vs-route.main:hover{background:var(--accent-strong,var(--accent))}
.vs-route.main small{display:block;font-size:11px;font-weight:400;opacity:.85;margin-top:1px}
.vs-route.taxi{background:var(--surface-alt);color:var(--text-strong);border-color:var(--line)}
.vs-route.taxi i{color:var(--accent)}
.vs-pick{margin-top:4px;padding:12px 14px 10px;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}
.vs-pick .vs-hint{margin-bottom:8px}
.vs-pick-l{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vs-app{display:flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-alt);color:var(--text-strong);text-decoration:none;font-size:var(--fs-sm);font-weight:500;transition:border-color var(--dur-hover)}
.vs-app:hover{border-color:var(--accent)}
.vs-alt{margin:2px 0 0} .vs-alt a{color:var(--text-muted);text-decoration:underline;text-underline-offset:3px} .vs-alt a:hover{color:var(--accent-strong)}
.vs-facts{display:grid;gap:6px;margin-bottom:10px}
.vs-fact{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:var(--fs-sm)} .vs-fact span{color:var(--text-faint)} .vs-fact b{font-weight:500;color:var(--text-strong)}
.vs-pass{margin:0;padding:12px 14px;border-radius:12px;background:var(--surface-alt);font-size:var(--fs-sm);line-height:1.5;color:var(--text)}
.vs-form{display:grid;gap:12px}
.vs-f{display:grid;gap:5px} .vs-f>span{font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase} .vs-f em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--text-faint)}
.vs-f input{min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text-strong);font:inherit;font-size:16px;outline:none;transition:border-color var(--dur-hover)}
.vs-f input:focus{border-color:var(--accent)}
.vs-when{display:grid;gap:8px} .vs-lbl{font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase}
.vs-chips{display:flex;gap:8px} .vs-chip{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface-alt);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer}
.vs-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff)}
.vs-dt{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vs-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.vs-send{min-height:50px;border:0;border-radius:14px;background:var(--accent);color:var(--on-accent,#fff);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;margin-top:4px;transition:transform .12s ease-out,opacity .15s}
.vs-send:active{transform:scale(.99)} .vs-send.busy{opacity:.6;pointer-events:none}
.vs-err{margin:0;font-size:var(--fs-sm);color:#b04a2f}
.vs-cns{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:4px 0;cursor:pointer;font-size:var(--fs-xs);line-height:1.45;color:var(--text-muted)}
.vs-cns input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--text-strong);cursor:pointer}
.vs-cns a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.vs-done{padding:6px 0 0;outline:none} .vs-done b{display:block;font-family:var(--serif);font-weight:400;font-size:1.35rem;color:var(--text-strong);margin-bottom:6px} .vs-done p{margin:0 0 14px;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.55}
.vs-tg{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--accent);color:var(--on-accent,#fff);text-decoration:none;font-size:var(--fs-sm);font-weight:600}
@media (max-width:420px){ .vs-go,.vs-pick-l{grid-template-columns:1fr} .vs-fact{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){ .vs-ov,.vs-sheet,.vs-route i{transition:none} }
