/* ==========================================================================
   /dispensary-near-me — page-only styles (28 Sep 2026).
   Kept out of site.css on purpose: site.css is cached for a week, so a new
   page's rules there would reach returning visitors late.
   ========================================================================== */

/* ---------- the route map ---------- */
.nmap__stage{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.62fr);gap:clamp(1.4rem,3.5vw,3.2rem);align-items:start;margin-top:clamp(1.6rem,3vw,2.6rem)}
.nmap__fig{margin:0;perspective:1600px;border:2px solid rgba(245,245,241,.28);background:var(--ink-2);box-shadow:10px 10px 0 rgba(22,198,79,.18)}
.nmap__svg{width:100%;height:auto;color:var(--paper);transform-origin:50% 70%;will-change:transform}
.nmap__ghost{fill:none;stroke:var(--paper);stroke-opacity:.14;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.nmap__run{fill:none;stroke:var(--grn);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s,stroke-width .2s,opacity .2s}
.nmap__dot{fill:var(--paper);stroke:var(--ink);stroke-width:3}
.nmap__name{font-family:var(--f-body);font-weight:700;font-size:25px;fill:var(--paper);paint-order:stroke;stroke:var(--ink-2);stroke-width:6px;stroke-linejoin:round}
.nmap__min{font-family:var(--f-mono);font-size:18px;fill:var(--grn);paint-order:stroke;stroke:var(--ink-2);stroke-width:6px;stroke-linejoin:round}
.nmap__ave{font-family:var(--f-mono);font-size:16px;letter-spacing:.32em;fill:var(--paper);opacity:.42}
.nmap__pin{fill:var(--grn);stroke:var(--ink);stroke-width:4}
.nmap__ring{fill:none;stroke:var(--grn);stroke-width:3;transform-box:fill-box;transform-origin:center;animation:nmapPulse 2.4s var(--ease) infinite}
.nmap__plate{fill:var(--paper);stroke:var(--ink);stroke-width:3}
.nmap__plate-t{font-family:var(--f-dis);font-size:22px;fill:var(--ink);letter-spacing:.01em}
.nmap__plate-t--s{font-size:48px;letter-spacing:-.02em}
.nmap__plate-s{display:none}
@keyframes nmapPulse{0%{transform:scale(.7);opacity:.9}100%{transform:scale(2.1);opacity:0}}

/* hover a neighborhood in the list: its route lights up, the rest dim */
.nmap__fig.is-focus .nmap__run{opacity:.18}
.nmap__fig.is-focus .nmap__run.is-on{opacity:1;stroke:var(--grn-bright);stroke-width:8}
.nmap__fig.is-focus .nmap__lab{opacity:.3}
.nmap__fig.is-focus .nmap__lab.is-on{opacity:1}

.nmap__list{list-style:none;margin:0;padding:0;counter-reset:nm;border-top:2px solid rgba(245,245,241,.28)}
.nmap__list li{border-bottom:1px solid rgba(245,245,241,.16)}
.nmap__list a{display:grid;grid-template-columns:1fr auto auto;gap:.9rem;align-items:baseline;padding:.78rem .2rem;color:var(--paper);text-decoration:none;transition:background .2s,padding .2s}
.nmap__list a:hover,.nmap__list a:focus-visible{background:rgba(22,198,79,.12);padding-left:.7rem}
.nmap__list b{font-weight:700;font-size:1rem;line-height:1.25}
.nmap__list span{font-family:var(--f-dis);font-size:1.05rem;color:var(--grn);white-space:nowrap}
.nmap__list i{font-style:normal;font-family:var(--f-mono);font-size:.8rem;opacity:.62;white-space:nowrap;min-width:4.2ch;text-align:right}

@media (max-width:1100px){.nmap__stage{grid-template-columns:1fr}}
@media (max-width:620px){
  .nmap__lab{display:none}
  .nmap__plate-l{display:none}
  .nmap__plate-s{display:inline}
  .nmap__ave{display:none}
}

/* ---------- turn-by-turn card ---------- */
.turns{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1rem,2.4vw,2rem);align-items:start;margin-top:1.7rem;border:2px solid var(--ink);background:var(--paper);box-shadow:var(--sh);padding:clamp(1rem,2vw,1.5rem)}
.turns__big{display:flex;flex-direction:column;align-items:flex-start;padding-right:clamp(.8rem,2vw,1.6rem);border-right:2px dashed currentColor;min-width:5.5rem}
.turns__big b{font-family:var(--f-dis);font-size:clamp(3.4rem,6vw,4.8rem);line-height:.82;color:var(--grn-deep);letter-spacing:-.04em}
.turns__big span{font-family:var(--f-dis);font-size:1.05rem;text-transform:uppercase;margin-top:.2rem}
.turns__big i{font-style:normal;font-family:var(--f-mono);font-size:.82rem;opacity:.7;margin-top:.6rem}
.turns__list{list-style:none;margin:0;padding:0;counter-reset:t}
.turns__list li{counter-increment:t;display:grid;grid-template-columns:1.9rem minmax(0,1fr) auto;gap:.6rem;align-items:baseline;padding:.55rem 0;border-bottom:1px dashed rgba(10,11,10,.25)}
.turns__list li:last-child{border-bottom:0}
.turns__list li::before{content:counter(t);font-family:var(--f-dis);font-size:.85rem;width:1.55rem;height:1.55rem;display:grid;place-items:center;border:2px solid currentColor;border-radius:50%;line-height:1;transform:translateY(.1rem)}
.turns__list b{font-weight:600;font-size:.98rem;line-height:1.35}
.turns__list span{font-family:var(--f-mono);font-size:.8rem;opacity:.7;white-space:nowrap}
.turns__list li.is-end::before{content:"";background:var(--grn);border-color:var(--ink)}
.turns__list li.is-end b{color:var(--grn-deep);font-weight:800}
.turns--dark{background:var(--ink-2);color:var(--paper);border-color:rgba(245,245,241,.4);box-shadow:6px 6px 0 rgba(22,198,79,.35)}
.turns--dark .turns__big b,.turns--dark .turns__list li.is-end b{color:var(--grn)}
.turns--dark .turns__list li{border-bottom-color:rgba(245,245,241,.2)}
@media (max-width:520px){.turns{grid-template-columns:1fr}.turns__big{flex-direction:row;align-items:baseline;gap:.6rem;border-right:0;border-bottom:2px dashed currentColor;padding:0 0 .8rem}.turns__big i{margin:0 0 0 auto}}

/* ---------- photos ---------- */
.nphoto{margin:0;border:2px solid var(--ink);box-shadow:var(--sh-lg);overflow:hidden;background:var(--paper-3);align-self:center;transition:transform .35s var(--ease)}
.nphoto img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.nphoto--short img{aspect-ratio:1/1}
.nphoto--dark{border-color:rgba(245,245,241,.5);box-shadow:10px 10px 0 rgba(22,198,79,.3)}
@media (max-width:1100px){.nphoto{max-width:560px}}

/* ---------- what to bring ---------- */
.bring{list-style:none;margin:1.6rem 0 0;padding:0;counter-reset:b;display:grid;gap:.9rem}
.bring li{counter-increment:b;display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:.2rem 1rem;align-items:start;border:2px solid var(--ink);background:var(--paper);box-shadow:var(--sh);padding:1rem 1.1rem}
.bring li::before{content:counter(b);grid-row:span 2;font-family:var(--f-dis);font-size:2.3rem;line-height:.9;color:var(--grn-deep)}
.bring b{font-weight:700;font-size:1.05rem;line-height:1.3}
.bring span{font-size:.95rem;line-height:1.55;opacity:.8}

/* ---------- hours ---------- */
.nhours__now{display:block}
.nhours__now .nowplate__dot{display:inline-block;vertical-align:middle;margin-right:.55rem}

/* ---------- also-close tiles: minutes read as the headline number ---------- */
.ntiles .tile__n{color:var(--grn-deep);font-weight:600}

@media (prefers-reduced-motion:reduce){.nmap__ring{animation:none}}
