/* Valley map — markup in app/views/partials/valley_map.php, behaviour in assets/js/valleymap.js.
Loaded only on pages that show the map. Uses the site tokens with fallbacks. */
.vmap{scroll-margin-top:80px;--vm-k:1;--vm-night:var(--night,#121029);--vm-navy:var(--navy,#1f1b4d);--vm-gold:var(--gold,#d6a24a);--vm-gold-soft:var(--gold-soft,#f0d49a);--vm-ink:var(--ink,#1d1a3d);--vm-muted:var(--muted,#6b6785);--vm-line:var(--line,rgba(29,26,61,.12));--vm-paper:var(--m-paper,#efe9dc);--vm-halo:rgba(248,244,235,.94);--vm-pin:var(--pin,#e2463b);--vm-wa:var(--wa,#25d366);--vm-serif:var(--serif,"Instrument Serif",Georgia,serif);--vm-sans:var(--sans,"Outfit",system-ui,sans-serif);font-family:var(--vm-sans);color:var(--vm-ink)}
.vmap *,.vmap *::before,.vmap *::after{box-sizing:border-box}

/* ---------- hero layout: chips, map, panel ---------- */
.vmap--hero{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"chips" "map" "panel";gap:12px}
.vm-chips{grid-area:chips;display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 0 4px}
.vm-chips::-webkit-scrollbar{display:none}
.vm-chip{flex:none;scroll-snap-align:start;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 16px 4px 5px;border-radius:999px;background:#fff;border:1px solid var(--vm-line);color:var(--vm-ink);font:500 .95rem/1 var(--vm-sans);text-decoration:none;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s}
.vm-chip img{width:34px;height:34px;border-radius:50%;object-fit:cover;display:block}
.vm-chip:hover{border-color:var(--vm-navy)}
.vm-chip.is-on{background:var(--vm-navy);border-color:var(--vm-navy);color:#fff}
.vm-chip--office{padding-left:12px}
.vm-chip-dot{width:12px;height:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--vm-pin);box-shadow:0 0 0 3px rgba(226,70,59,.18)}
.vm-map{grid-area:map;position:relative;margin:0;aspect-ratio:1.12;border-radius:22px;overflow:hidden;background:var(--vm-paper);box-shadow:0 1px 0 rgba(29,26,61,.06),0 24px 60px -30px rgba(18,16,41,.45);isolation:isolate}
.vm-svg{display:block;width:100%;height:100%;font-family:var(--vm-sans);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.vm-panel{grid-area:panel;position:relative;background:var(--vm-night);color:#e9e5f2;border-radius:22px;padding:22px 20px 24px;scroll-margin-top:84px;outline:none}
@media (max-width:639px){
.vmap--hero .vm-chips{margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%);scroll-padding-inline:var(--gut,20px)}
.vmap--hero .vm-map{margin-inline:calc(50% - 50vw);border-radius:0;aspect-ratio:.95}
.vmap--hero .vm-panel{margin-inline:-4px}
}
@media (min-width:640px) and (max-width:1023px){.vmap--hero .vm-map{aspect-ratio:1.26}}
@media (min-width:1024px){
.vmap--hero{grid-template-columns:minmax(0,1.62fr) minmax(340px,1fr);grid-template-areas:"map panel";column-gap:24px;align-items:start}
.vmap--hero .vm-map{aspect-ratio:1.26}
.vmap--hero .vm-chips{display:none}
.vmap--hero .vm-panel{align-self:stretch;max-height:720px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(240,212,154,.35) transparent;padding:24px 24px 0}
@supports (contain:size){.vmap--hero .vm-panel{contain:size;max-height:none}}
/* the price, the stepper and the WhatsApp button stay pinned to the foot of the panel; only the stops scroll */
.vmap--hero .vm-foot{position:sticky;bottom:0;z-index:2;margin:0 -24px;padding:26px 24px 20px;background:linear-gradient(rgba(18,16,41,0),var(--vm-night) 24px)}
.vmap--hero .vm-view--pkg{gap:14px}
.vmap--hero .vm-view--pkg .vm-tl li{min-height:34px;font-size:.96rem}
.vmap--hero .vm-view--pkg .vm-tl li::before{top:-8px;bottom:-8px}
.vmap--hero .vm-view--pkg .vm-pk-img{width:68px;height:68px;border-radius:14px}
.vmap--hero .vm-view--pkg .vm-h{font-size:1.8rem}
.vmap--hero .vm-view:not(.vm-view--pkg){padding-bottom:26px}
.vmap--hero .vm-foot .vm-price{padding:12px 14px;gap:10px}
.vmap--hero .vm-foot .vm-calc{padding-top:10px}
.vmap--hero .vm-foot .vm-cta{margin-top:10px}
}

/* ---------- the drawing ---------- */
.vm-terrain{pointer-events:none}
.vm-ctx path{fill:none;stroke:#fffaf0;stroke-width:2.4;stroke-dasharray:.5 6.5;stroke-linecap:round}
.vm-rd-c,.vm-rd{fill:none;stroke-linecap:round;stroke-linejoin:round}
.vm-rd-c{stroke:#8f8468;stroke-opacity:.42;stroke-width:7.6}
.vm-rd{stroke:var(--m-road,#fffaf0);stroke-width:4.6}
.vm-rd-c.vm-rd-min{stroke-width:5.6}
.vm-rd.vm-rd-min{stroke-width:3}
.vm-river,.vm-lake,.vm-peak-l{font-family:var(--vm-serif);font-style:italic;fill:#2c6a90;paint-order:stroke;stroke:rgba(244,239,227,.75);stroke-width:3px;stroke-linejoin:round}
.vm-river{font-size:calc(16px*var(--vm-k));letter-spacing:.08em}
.vm-lake{font-size:calc(15px*var(--vm-k));stroke:none}
.vm-range{font:600 calc(11.5px*var(--vm-k)) var(--vm-sans);letter-spacing:.5em;fill:#4d5a67;opacity:.7}
.vm-peak{fill:#4d5a67}
.vm-peak-l{font-size:calc(15px*var(--vm-k));fill:#36414c;stroke:rgba(244,246,248,.85)}
.vm-town{fill:#fffaf0;stroke:#4d5a67;stroke-width:1.8}
.vm-town-l{font:500 calc(13.5px*var(--vm-k)) var(--vm-sans);fill:#3b4652;paint-order:stroke;stroke:var(--vm-halo);stroke-width:calc(3.5px*var(--vm-k));stroke-linejoin:round}
.vm-ctx-l{font:italic 400 calc(12.5px*var(--vm-k)) var(--vm-sans);fill:#4d5a67;paint-order:stroke;stroke:var(--vm-halo);stroke-width:3px}
.vm-air circle{fill:#fff;stroke:var(--vm-navy);stroke-width:1.6}
.vm-air path{fill:var(--vm-navy)}
.vm-garden{fill:#fffaf0;stroke:#2f5d46;stroke-width:2.6}

/* pins */
.vm-pin{cursor:pointer;outline:none;transition:opacity .35s}
.vm-hit{fill:transparent}
.vm-pin-b{transform-box:fill-box;transform-origin:center;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
.vm-pin-sh{fill:rgba(18,16,41,.3)}
.vm-pin-node{fill:#fff;stroke:var(--vm-navy);stroke-width:2.4}
.vm-pin.is-on .vm-pin-node{fill:var(--vm-gold-soft)}
.vm-pin-ring{fill:#fff}
.vm-pin-dot{fill:var(--vm-navy)}
.vm-pin-sel{fill:none;stroke:var(--vm-gold);stroke-width:4;opacity:0;transition:opacity .2s}
.vm-lab{font-family:var(--vm-serif);font-size:calc(27px*var(--vm-k));fill:var(--vm-ink);paint-order:stroke;stroke:var(--vm-halo);stroke-width:calc(6px*var(--vm-k));stroke-linejoin:round;transition:fill .2s}
.vm-pin:hover .vm-pin-b{transform:scale(1.08)}
.vm-pin:focus-visible .vm-pin-sel{opacity:1;stroke:var(--vm-navy);stroke-dasharray:6 4}
.vm-pin:focus-visible .vm-lab{text-decoration:underline}
.vm-pin.is-on .vm-pin-ring{fill:var(--vm-gold-soft)}
.vm-pin.is-sel .vm-pin-sel{opacity:1}
.vm-pin.is-sel .vm-pin-b{transform:scale(1.14)}
.vm-svg.has-route .vm-pin:not(.is-on):not(.is-sel):not(.vm-office){opacity:.66}
.vm-office .vm-pin-b{transform-origin:50% 100%}
.vm-office-pin{fill:var(--vm-pin);stroke:#fff;stroke-width:2.2}
.vm-office .vm-pin-sel{stroke-width:3.5}
.vm-lab-office{font-size:calc(23px*var(--vm-k))}
.vm-note{font:italic 400 calc(16px*var(--vm-k)) var(--vm-sans);fill:#a3302a;paint-order:stroke;stroke:var(--vm-halo);stroke-width:calc(4px*var(--vm-k));stroke-linejoin:round}
.vm-office-pulse{fill:rgba(226,70,59,.4);transform-box:fill-box;transform-origin:center}

/* route */
.vm-leg-c,.vm-leg-l{fill:none;stroke-linecap:round;stroke-linejoin:round}
.vm-leg-c{stroke:#fff;stroke-width:calc(11px*var(--vm-k));stroke-opacity:.97}
.vm-leg-l{stroke:#d39a3c;stroke-width:calc(5.4px*var(--vm-k))}
.vm-route{filter:drop-shadow(0 1px 1.2px rgba(18,16,41,.35))}
.vm-route--soft .vm-leg-l{stroke:var(--vm-navy);stroke-dasharray:calc(1px*var(--vm-k)) calc(9px*var(--vm-k));stroke-width:calc(5.5px*var(--vm-k))}
.vm-route--soft .vm-leg-c{stroke-opacity:.7}
.vm-stop circle,.vm-mstop circle{fill:var(--vm-navy);stroke:var(--vm-gold-soft);stroke-width:calc(2.4px*var(--vm-k))}
.vm-num{fill:#fff;font:600 calc(14.5px*var(--vm-k)) var(--vm-sans);text-anchor:middle}
.vm-mstop .vm-lab{fill:var(--vm-ink);font-weight:400;font-family:var(--vm-serif);font-size:calc(27px*var(--vm-k))}
.vm-mstop--start circle{fill:#fff;stroke:var(--vm-navy);stroke-width:calc(3px*var(--vm-k))}
.vm-stop{transition:opacity .3s}
.vm-stop-b{transform-box:fill-box;transform-origin:center}
.vm-stop.is-pre{opacity:0}
.vm-car{fill:var(--vm-navy);stroke:#fff;stroke-width:3}
.vm-leg.is-pre{opacity:0}

/* overlays */
.vm-legend{position:absolute;left:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;background:#fbf8f2;color:var(--vm-ink);font:500 12px/1.1 var(--vm-sans);box-shadow:0 1px 0 rgba(29,26,61,.08),0 6px 18px -8px rgba(18,16,41,.4);transition:opacity .25s}
.vm-compass{width:26px;height:26px;flex:none}
.vm-compass circle{fill:#fff;stroke:var(--vm-ink);stroke-width:1.2}
.vm-compass path{fill:var(--vm-ink)}
.vm-compass .vm-cn{fill:var(--vm-pin)}
.vm-hint{display:none;position:absolute;left:12px;top:12px;z-index:2;margin:0;padding:8px 14px;border-radius:999px;background:var(--vm-navy);color:#fff;font:500 13px/1.2 var(--vm-sans);box-shadow:0 8px 22px -10px rgba(18,16,41,.6);transition:opacity .3s,transform .3s;pointer-events:none}
.vmap.is-js .vm-hint{display:block}
.vmap.is-touched .vm-hint{opacity:0;transform:translateY(-6px)}
.vm-peek{position:absolute;left:10px;right:10px;top:10px;max-width:440px;z-index:3;display:flex;align-items:center;gap:10px;padding:6px 6px 6px 6px;border-radius:16px;background:var(--vm-night);color:#fff;box-shadow:0 14px 34px -14px rgba(18,16,41,.75);animation:vmIn .3s ease both}
.vm-peek[hidden]{display:none}
.vm-peek img{width:42px;height:42px;border-radius:11px;object-fit:cover;flex:none}
.vm-peek span{flex:1;min-width:0;display:grid;gap:2px}
.vm-peek b{font:400 1.15rem/1.1 var(--vm-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vm-peek small{font-size:.8rem;color:#c9c3dc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vm-peek button{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--vm-gold);color:#1c1306;font:600 .9rem/1 var(--vm-sans);cursor:pointer}
@media (min-width:1024px){.vm-peek{display:none!important}}
/* phones and tablets: the summary strip and the hint sit at the foot of the map (pins near the top, like
   Sonamarg, stay visible) and the scale note moves to the top corner */
@media (max-width:1023px){
.vmap--hero .vm-peek{top:auto;bottom:10px}
.vmap--hero .vm-hint{top:auto;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap}
.vmap--hero.is-touched .vm-hint{transform:translate(-50%,6px)}
.vmap--hero .vm-legend{bottom:auto;top:12px}
}

/* ---------- panel ---------- */
.vm-panel a:not(.vm-btn){color:inherit}
.vm-view{display:grid;gap:16px;animation:vmIn .35s ease both}
.vm-view + .vm-view{margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1)}
.vmap.is-js .vm-view + .vm-view{margin-top:0;padding-top:0;border:0}
.vm-back{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-8px 0 -6px -8px;padding:0 12px 0 8px;border:0;border-radius:999px;background:transparent;color:var(--vm-gold-soft);font:500 .9rem/1 var(--vm-sans);cursor:pointer}
.vm-back:hover{background:rgba(255,255,255,.07)}
.vm-back svg{width:16px;height:16px}
.vm-kicker{margin:0;display:flex;align-items:center;gap:8px;font:600 .72rem/1.2 var(--vm-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--vm-gold)}
.vm-live{width:8px;height:8px;border-radius:50%;background:var(--vm-gold);box-shadow:0 0 0 4px rgba(214,162,74,.22)}
.vm-h{margin:4px 0 0;font:400 clamp(1.7rem,4.6vw,2.1rem)/1.05 var(--vm-serif);color:#fbf6ea;outline:none;text-wrap:balance}
.vm-h--sm{font-size:1.45rem}
.vm-meta{margin:4px 0 0;color:#bdb6d2;font-size:.92rem}
.vm-pk-head{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.vm-pk-img{width:84px;height:84px;border-radius:16px;object-fit:cover;display:block}
.vm-tl{list-style:none;margin:0;padding:0;display:grid;gap:0}
.vm-tl li{position:relative;display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:center;min-height:38px;font-size:1rem;color:#f2eefb}
.vm-tl li::before{content:"";position:absolute;left:14px;top:-10px;bottom:-10px;width:2px;background:rgba(240,212,154,.22);z-index:0}
.vm-tl li:first-child::before{top:50%}
.vm-tl li:last-child::before{bottom:50%}
.vm-tl b{position:relative;z-index:1;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--vm-navy);border:2px solid var(--vm-gold-soft);color:#fff;font:600 .85rem/1 var(--vm-sans)}
.vm-tl small{display:block;color:#a9a2c2;font-size:.8rem;margin-top:1px}
.vm-tl-office b{width:18px;height:18px;margin-left:6px;border:0;background:var(--vm-pin);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 4px rgba(226,70,59,.22)}
.vm-tl-office span{color:#ffd9d4}
.vm-tl-end b{width:22px;height:22px;margin-left:4px;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f0d49a'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5z'/%3E%3C/svg%3E") center/18px no-repeat}
.vm-tl-end span{color:#bdb6d2;font-size:.92rem}
.vm-also{margin:0;font-size:.85rem;color:#bdb6d2}
.vm-foot{display:grid;gap:12px}
.vm-price{display:grid;gap:12px;padding:16px;border-radius:18px;background:#1b1840;border:1px solid rgba(255,255,255,.09)}
.vm-calc{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.16)}
.vm-meta-a{display:inline-flex;align-items:center;gap:4px;color:var(--vm-gold-soft)!important;font-weight:600;text-decoration:none;white-space:nowrap}
.vm-meta-a svg{width:15px;height:15px}
.vm-meta-a:hover{text-decoration:underline}
.vm-from{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;color:#c9c3dc}
.vm-from small{font-size:.85rem}
.vm-from strong{font:400 2.1rem/1 var(--vm-serif);color:#fff}
.vm-from span{font-size:.85rem}
.vm-step{display:flex;align-items:center;gap:6px}
.vm-step button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font:500 1.3rem/1 var(--vm-sans);cursor:pointer}
.vm-step button:hover{background:rgba(255,255,255,.13)}
.vm-step button:disabled{opacity:.35;cursor:default}
.vm-step output{min-width:2ch;text-align:center;font:600 1.15rem/1 var(--vm-sans);color:#fff}
.vm-step span{margin-left:4px;color:#c9c3dc;font-size:.9rem}
.vm-est{margin:0;color:#c9c3dc;font-size:.82rem;line-height:1.3;text-align:right}
.vm-price>.vm-est{text-align:left;padding-top:12px;border-top:1px dashed rgba(255,255,255,.16)}
.vm-est span{display:block}
.vm-calc .vm-est{margin-left:auto;min-width:0}
.vm-calc{flex-wrap:nowrap}
.vm-est b{display:block;margin-top:2px;font:400 1.75rem/1.05 var(--vm-serif);color:var(--vm-gold-soft)}
.vm-cta{display:grid;gap:10px}
.vm-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 20px;border-radius:999px;font:600 .98rem/1.1 var(--vm-sans);text-decoration:none;text-align:center;border:1px solid transparent;transition:transform .2s,background-color .2s,border-color .2s}
.vm-btn:active{transform:scale(.98)}
.vm-btn svg{width:20px;height:20px;flex:none}
.vm-btn--wa{background:var(--vm-wa);color:#05230f;box-shadow:0 12px 30px -14px rgba(37,211,102,.7)}
.vm-btn--line{border-color:rgba(255,255,255,.22);color:#fff}
.vm-btn--line:hover{border-color:var(--vm-gold-soft)}
.vm-btn--gold{background:var(--vm-gold);color:#1c1306}
.vm-fine{margin:0;font-size:.8rem;line-height:1.5;color:#a9a2c2}
.vm-ph{position:relative;margin:0;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:#2a2650}
.vm-ph img{width:100%;height:100%;object-fit:cover;display:block}
.vm-ph figcaption{position:absolute;inset:auto 0 0;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(10,9,24,.86))}
.vm-ph .vm-h{margin:0}
.vm-ph p{margin:4px 0 0;font-size:.88rem;color:#e3def0}
.vm-count{margin:0;color:#c9c3dc;font-size:.95rem}
.vm-count b{color:#fff;font-weight:600}
.vm-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.vm-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:64px;padding:8px 12px 8px 8px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#fff;font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s}
.vm-row:hover,.vm-row:focus-visible{background:rgba(255,255,255,.09);border-color:rgba(240,212,154,.45)}
.vm-row img{width:48px;height:48px;border-radius:12px;object-fit:cover;display:block}
.vm-row span{display:grid;gap:2px;min-width:0}
.vm-row b{font-weight:600;font-size:.98rem}
.vm-row small{color:#bdb6d2;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vm-row strong{font:400 1.25rem/1 var(--vm-serif);color:var(--vm-gold-soft);text-align:right}
.vm-row strong small{display:block;font:500 .66rem/1.2 var(--vm-sans);color:#a9a2c2;letter-spacing:.06em;text-transform:uppercase}
.vm-row-pin{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:rgba(226,70,59,.16)}
.vm-row-pin::before{content:"";width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--vm-pin)}
.vm-link{justify-self:start;display:inline-flex;align-items:center;gap:8px;color:var(--vm-gold-soft);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(240,212,154,.35);padding-bottom:2px}
.vm-link svg{width:16px;height:16px}
.vm-dl{margin:0;display:grid;gap:8px;font-size:.92rem;color:#e3def0}
.vm-dl div{display:grid;grid-template-columns:76px 1fr;gap:10px}
.vm-dl dt{color:#a9a2c2}
.vm-dl dd{margin:0}
/* the no-JS list of places */
.vm-dt{border-top:1px solid rgba(255,255,255,.1)}
.vm-dt summary{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;min-height:60px;padding:8px 0;cursor:pointer;list-style:none}
.vm-dt summary::-webkit-details-marker{display:none}
.vm-dt summary img,.vm-dt-pin{width:44px;height:44px;border-radius:12px;object-fit:cover}
.vm-dt-pin{display:grid;place-items:center;background:rgba(226,70,59,.18)}
.vm-dt-pin::before{content:"";width:15px;height:15px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--vm-pin)}
.vm-dt summary span{display:grid;gap:2px}
.vm-dt summary small{color:#bdb6d2;font-size:.8rem}
.vm-dt ul{list-style:none;margin:0 0 12px 56px;padding:0;display:grid;gap:8px;font-size:.92rem}
.vm-dt a{color:#fff;text-decoration:underline;text-decoration-color:rgba(240,212,154,.4);text-underline-offset:3px}
.vm-dt a span{display:block;color:#bdb6d2;font-size:.8rem;text-decoration:none}
:where(.vm-panel) :focus-visible{outline:2px solid var(--vm-gold);outline-offset:3px}

/* ---------- mini ---------- */
.vmap--mini{margin:0}
.vmap--mini .vm-map{aspect-ratio:1.6;border-radius:18px;box-shadow:0 1px 0 rgba(29,26,61,.06),0 16px 40px -26px rgba(18,16,41,.45)}
.vmap--mini .vm-legend{left:10px;top:10px;bottom:auto;font-size:11px}
.vmap--mini .vm-compass{width:22px;height:22px}
.vmap--mini .vm-office-pulse,.vmap--mini .vm-range{display:none}
.vm-cap{display:grid;gap:2px;padding:12px 2px 0;color:var(--vm-muted);font-size:.92rem;line-height:1.45}
.vm-cap b{font:400 1.3rem/1.15 var(--vm-serif);color:var(--vm-ink)}
.vm-cap .vm-also{color:var(--vm-muted)}

/* ---------- motion ---------- */
@keyframes vmIn{from{opacity:0;transform:translateY(6px)}}
@keyframes vmDrop{from{opacity:0;transform:translateY(-22px) scale(.7)}}
@keyframes vmPulse{from{transform:scale(.5);opacity:.9}to{transform:scale(2.3);opacity:0}}
@keyframes vmWave{30%{transform:rotate(-12deg) scale(1.15)}60%{transform:rotate(9deg) scale(1.1)}}
.vmap.is-pre .vm-pin-b,.vmap.is-pre .vm-lab{opacity:0}
.vmap.is-in .vm-pin-b{animation:vmDrop .7s cubic-bezier(.3,1.5,.5,1) backwards;animation-delay:calc(var(--i,0) * 80ms)}
.vmap.is-in .vm-lab{animation:vmIn .5s ease backwards;animation-delay:calc(var(--i,0) * 80ms + 250ms)}
.vmap--hero .vm-office-pulse{animation:vmPulse 2.4s ease-out infinite}
.vm-office.is-wave .vm-pin-b{animation:vmWave .8s ease}
@media (prefers-reduced-motion:reduce){
.vmap *,.vmap *::before,.vmap *::after{animation:none!important;transition:none!important}
.vmap.is-pre .vm-pin-b,.vmap.is-pre .vm-lab{opacity:1}
}

/* phones: bigger labels and pins on the smaller map; the stops read as one line of the route */
@media (max-width:639px){
.vmap--hero .vm-view--pkg .vm-tl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px}
.vmap--hero .vm-view--pkg .vm-tl li{display:inline-flex;gap:7px;min-height:32px;padding:0 10px 0 3px;border-radius:999px;background:rgba(255,255,255,.06);font-size:.92rem}
.vmap--hero .vm-view--pkg .vm-tl li::before{display:none}
.vmap--hero .vm-view--pkg .vm-tl li + li::after{content:"";order:-1;width:0;height:0;margin:0 3px 0 -2px;border:4px solid transparent;border-left:5px solid var(--vm-gold);border-right:0}
.vmap--hero .vm-view--pkg .vm-tl b{width:26px;height:26px;font-size:.78rem;border-width:1.5px}
.vmap--hero .vm-view--pkg .vm-tl small{display:none}
.vmap--hero .vm-view--pkg .vm-tl-office{background:rgba(226,70,59,.16)!important}
.vmap--hero .vm-view--pkg .vm-tl-office b{width:13px;height:13px;margin:0 2px 0 8px}
.vmap--hero .vm-view--pkg .vm-tl-end b{width:18px;height:18px;margin-left:6px;background-size:15px}
.vmap--hero .vm-view--pkg .vm-tl-end span{font-size:.84rem}
.vmap--hero .vm-lab{font-size:33px;stroke-width:7px}
.vmap--hero .vm-lab-office{font-size:28px}
.vmap--hero .vm-note{font-size:21px;stroke-width:5px}
.vmap--hero .vm-pin-b{scale:1.12}
.vmap--hero .vm-office .vm-pin-b{scale:1.2}
.vmap--hero .vm-lab--b{transform:translateY(5px)}
.vmap--hero .vm-lab--tr{transform:translateY(-3px)}
.vmap--hero .vm-hit{transform-box:fill-box;transform-origin:center;scale:1.14}
.vmap--hero .vm-office .vm-hit{scale:1.3}
.vmap--hero .vm-town-l{font-size:17px;stroke-width:4.5px}
.vmap--hero .vm-river{font-size:19px}
.vmap--hero .vm-lake{font-size:18px}
.vmap--hero .vm-range,.vmap--hero .vm-peak-l,.vmap--hero .vm-peak,.vmap--hero .vm-ctx-l,.vmap--hero .vm-town-l:not(.vm-keep){display:none}
.vmap--hero .vm-stop-b{scale:1.25}
.vmap--hero .vm-stop circle{stroke-width:2.6px}
.vmap--mini .vm-legend{left:8px;top:8px;padding:3px 9px 3px 3px;gap:5px;font-size:10px}
.vmap--mini .vm-compass{width:18px;height:18px}
/* small maps on phones: only the places on the route, in type that reads at arm's length */
.vmap--mini .vm-town-l:not(.vm-keep),.vmap--mini .vm-ctx-l,.vmap--mini .vm-garden,.vmap--mini .vm-range,.vmap--mini .vm-peak,.vmap--mini .vm-peak-l,.vmap--mini .vm-air+.vm-town-l{display:none}
.vmap--mini .vm-svg{--vm-m:1.5}
.vmap--mini .vm-town-l{font-size:calc(13.5px*var(--vm-k)*var(--vm-m))}
.vmap--mini .vm-num{font-size:calc(14.5px*var(--vm-k)*1.4)}
.vmap--mini .vm-mstop:not(.vm-mstop--start)>circle{r:calc(12.5px*var(--vm-k)*1.35)}
.vmap--mini .vm-note{font-size:calc(16px*var(--vm-k)*1.3)}
.vmap--mini .vm-lab{font-size:calc(27px*var(--vm-k)*1.12)}
.vmap--mini .vm-lab-office{font-size:calc(23px*var(--vm-k)*1.12)}
.vmap--mini .vm-river,.vmap--mini .vm-lake{font-size:calc(16px*var(--vm-k)*1.25)}
}
