/* Direction B · Map. The map is the page; results are places in a floating panel. */
body.lp.os.dx-app{height:100dvh;overflow:hidden}
.dx-stage{position:relative;height:calc(100dvh - var(--nav-h) - var(--dx-bar))}
.dx-full.os-map{position:absolute;inset:0;height:auto;border-radius:0;border:0;box-shadow:none}
.dx-full .os-cv{margin-left:calc(-850px + 240px)}
.dx-full .os-mc.tl{left:auto;right:14px}
.dx-full .dx-attr{left:492px}
.dx-pin em{font-style:normal;color:var(--g-ink);font-weight:700}
.dx-pin.is-on em{color:#a8e3c7}
.dx-callout{position:absolute;z-index:7;width:310px;display:grid;gap:10px;padding:16px;border-radius:18px;background:#fff;box-shadow:var(--elev-3)}
.dx-callout::after{content:"";position:absolute;width:14px;height:14px;background:#fff;transform:rotate(45deg);box-shadow:var(--elev-3);clip-path:polygon(100% 0,100% 100%,0 100%)}
.dx-callout[data-side=top]::after{left:calc(var(--tail) - 7px);bottom:-7px}
.dx-callout[data-side=bottom]::after{left:calc(var(--tail) - 7px);top:-7px;transform:rotate(225deg)}
.dx-callout[data-side=right]::after{top:calc(var(--tail) - 7px);left:-7px;transform:rotate(135deg)}
.dx-callout[data-side=left]::after{top:calc(var(--tail) - 7px);right:-7px;transform:rotate(-45deg)}
.dx-callout .dx-ph1 .dx-nm>b{font-size:15px}
.dx-callacts{display:flex;gap:8px;align-items:center;margin-top:4px}
.dx-callacts .os-btn{height:34px}
body.lp.os.dx-b .os-btn.pri{background:linear-gradient(180deg,#1b9467,#16835b);color:#fff;border-color:transparent;box-shadow:var(--elev-primary)}
body.lp.os.dx-b .os-btn.pri svg{color:#fff}
@media(hover:hover) and (pointer:fine){body.lp.os.dx-b .os-btn.pri:hover{box-shadow:var(--elev-primary-hover)}}
.dx-ph1 .dx-cmp{height:30px}

.dx-panel{position:absolute;left:16px;top:16px;bottom:16px;z-index:10;width:452px;display:flex;flex-direction:column;border-radius:22px;background:#fff;box-shadow:var(--elev-3);overflow:hidden}
.dx-panel .dx-lh{display:block;padding:20px 22px 12px}
.dx-panel .dx-lh h1{font-size:22px;line-height:1.2;font-weight:600;letter-spacing:-.03em}
.dx-panel .dx-lh p{margin-top:4px;color:var(--dim);font-size:13px}
.dx-places{flex:1;overflow-y:auto;padding:2px 10px 10px;overscroll-behavior:contain}
.dx-place{display:grid;gap:8px;padding:14px 12px;border-radius:16px;cursor:pointer;transition:background .15s}
.dx-place:hover,.dx-place.is-on{background:var(--quiet)}
.dx-place.is-sel{background:var(--g-bg2)}
.dx-ph1{display:flex;align-items:center;gap:12px}
.dx-ph1 .dx-av{width:42px;height:42px}
.dx-ph1 .dx-nm{flex:1;display:grid;gap:2px;min-width:0}
.dx-ph1 h2,.dx-ph1 .dx-nm>b{font-size:15px;font-weight:600;letter-spacing:-.01em}
.dx-ph1 h2 a:hover{color:var(--g-ink)}
.dx-ph1 small{color:var(--faint);font-size:12.5px}
.dx-place.is-sel .dx-k{background:var(--ink);color:#fff}
.dx-res1{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.5;color:var(--ink2)}
.dx-res1 b{font-weight:650;color:var(--ink)}
.dx-sub1{padding-left:28px;color:var(--faint);font-size:12.5px;line-height:1.45}
.dx-panel .dx-tray{position:static;margin:6px 12px 12px;box-shadow:var(--elev-2)}
.dx-grab{display:none}

/* profile: a place page */
body.dx-b .dx-b-page{padding:0}
.dx-band{height:240px;padding:12px clamp(12px,1.6vw,24px) 0}
.dx-band .dx-mini{height:100%;border-radius:22px}
.dx-b-wrap{padding:0 clamp(20px,4vw,64px)}
.dx-place-h{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 24px;align-items:end;margin-top:-46px;position:relative;z-index:2}
.dx-place-h .dx-big{width:104px;height:104px;box-shadow:0 0 0 5px #fbfbfc,var(--elev-2)}
.dx-place-id{padding-bottom:6px}
.dx-place-id h1{font-size:34px;line-height:1.1;font-weight:600;letter-spacing:-.035em}
.dx-place-id p{margin-top:6px;color:var(--dim);font-size:15px}
.dx-actrow{grid-column:1/-1;display:flex;gap:26px;padding:22px 0 8px}
.dx-actrow>*{display:grid;justify-items:center;gap:7px;border:0;background:none;padding:0;font:500 12.5px/1.2 Inter;color:var(--ink2);cursor:pointer}
.dx-actrow span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--raise-grad);box-shadow:var(--elev-1);color:var(--g-ink);transition:var(--elev-t)}
.dx-actrow svg{width:20px;height:20px}
.dx-actrow .is-pri span{background:var(--g);color:#fff;box-shadow:var(--elev-primary)}
.dx-actrow [aria-pressed=true] span{background:var(--g-bg);box-shadow:inset 0 0 0 1px rgb(22 131 91/.3)}
@media(hover:hover) and (pointer:fine){.dx-actrow>*:hover span{transform:translateY(-1px);box-shadow:var(--elev-1-hover)}.dx-actrow .is-pri:hover span{box-shadow:var(--elev-primary-hover)}}
/* the tab strip sits in the page flow and scrolls away with it */
.dx-tabs{display:flex;gap:4px;padding:10px 0;margin-top:10px}
.dx-tabs a{padding:8px 14px;border-radius:999px;color:var(--dim);font-size:13.5px;font-weight:500;transition:background .15s,color .15s}
.dx-tabs a.is-on{background:var(--ink);color:#fff}
.dx-b-cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:start;margin-top:12px}
.dx-b-main>section{padding:26px 0;scroll-margin-top:0}
.dx-b-main h2{font-size:18px;font-weight:600;letter-spacing:-.015em;margin-bottom:14px}
.dx-lead{display:flex;gap:12px;align-items:flex-start;font-size:21px;line-height:1.45;font-weight:450;letter-spacing:-.01em;color:var(--ink2)}
.dx-lead b{color:var(--ink);font-weight:700}
.dx-lead .dx-st{width:28px;height:30px}.dx-lead .dx-sti{width:24px;height:24px}
.dx-b-main .dx-meta{margin-top:8px}
.dx-lead+.dx-meta{padding-left:40px}
.dx-older{display:flex;align-items:center;gap:8px;margin-top:14px;padding-left:40px;color:var(--dim);font-size:13.5px}
.dx-older svg{width:16px;height:16px;color:var(--faint)}
.dx-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.dx-tiles li{display:grid;gap:4px;padding:16px 18px;border-radius:16px;background:#fff;box-shadow:var(--elev-2)}
.dx-tiles b{font-size:20px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dx-tiles span{color:var(--dim);font-size:13px}
.dx-b-rail{position:sticky;top:-6px;padding-top:26px}
.dx-b-rail .dx-office{grid-template-columns:auto minmax(0,1fr);row-gap:10px}
.dx-b-rail .dx-office .os-btn{grid-column:2;justify-self:start;height:34px}

/* compare: centred columns */
.dx-ph.is-center{grid-template-columns:1fr;text-align:center;justify-items:center}
.dx-ph.is-center .dx-addlink{margin-top:16px;height:36px}
.dx-addlink svg{width:15px;height:15px;color:var(--g-ink)}
.dx-cols{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0 20px;margin-top:8px}
.dx-colhead{position:relative;display:grid;justify-items:center;gap:6px;padding:24px 16px 20px;text-align:center;border-radius:var(--r-card);background:#fff;box-shadow:var(--elev-2)}
.dx-colhead .dx-big{width:72px;height:72px;margin-bottom:6px}
.dx-colhead a{font-size:16px;font-weight:600}
.dx-colhead small{color:var(--faint);font-size:12.5px}
.dx-colhead .dx-x{position:absolute;top:10px;right:10px}
body.dx-b .dx-cols .dx-span{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;margin:36px 0 2px;font-size:15px;font-weight:600;text-align:center}
body.dx-b .dx-cols .dx-colhead+.dx-span{margin-top:40px}
.dx-span svg{width:18px;height:18px;color:var(--g)}
.dx-span.is-ctx svg{color:var(--faint)}
.dx-span small{flex-basis:100%;color:var(--faint);font-size:12.5px;font-weight:400}
.dx-v{display:grid;justify-items:center;align-content:start;gap:4px;padding:12px 10px 0;text-align:center}
.dx-v b{font-size:24px;font-weight:650;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.dx-v small{color:var(--faint);font-size:12.5px;line-height:1.45}
.dx-v .dx-na{font-size:13.5px;line-height:1.5;padding-top:6px}
.dx-span.is-ctx~.dx-v b{font-size:18px;color:var(--ink2)}

@media(max-width:1100px){.dx-b-cols{grid-template-columns:1fr;gap:12px}.dx-b-rail{position:static}}
@media(max-width:860px){
  .dx-full .os-cv{margin-left:-850px;margin-top:-760px}
  .dx-full .dx-attr{left:14px;bottom:auto;top:14px}
  .dx-full .os-mc.tl,.dx-full .os-mc.br{display:none}
  .dx-callout{display:none}
  .dx-panel{left:0;right:0;top:auto;bottom:0;width:auto;height:54%;border-radius:22px 22px 0 0;transition:height .3s cubic-bezier(.2,.8,.2,1)}
  .dx-panel.is-expanded{height:calc(100% - 12px)}
  .dx-stage:has(.dx-panel.is-expanded) .dx-attr{opacity:0}
  .dx-ph1 .dx-cmp{width:32px;padding:0;justify-content:center}
  .dx-ph1 .dx-cmp span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .dx-grab{display:grid;place-items:center;width:100%;height:26px;padding-top:6px;border:0;background:none;color:#b5bac2;cursor:pointer}
  .dx-grab svg{width:22px;height:22px}
  .dx-panel .dx-lh{padding:2px 18px 4px}
  .dx-panel .dx-lh h1{font-size:19px}
  .dx-panel .dx-tray{margin:4px 10px 10px}
  .dx-band{height:112px;padding:8px 8px 0}
  .dx-band .dx-mini{border-radius:16px}
  .dx-band .dx-mini .os-cv{transform:translate(60px,-6px)}
  .dx-place-h{margin-top:-34px;gap:12px 16px;grid-template-columns:1fr;align-items:start}
  .dx-place-id{padding-bottom:0}
  .dx-place-h .dx-big{width:76px;height:76px}
  .dx-place-id h1{font-size:25px}
  .dx-place-id p{font-size:13.5px}
  .dx-actrow{gap:0;justify-content:space-between}
  .dx-tabs{overflow-x:auto}
  .dx-tabs a{white-space:nowrap}
  .dx-lead{font-size:18px}
  .dx-tiles{grid-template-columns:1fr}
  .dx-cols{grid-template-columns:repeat(var(--n),68vw);gap:0 12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin-inline:-16px;padding:2px 16px 12px;scrollbar-width:none}
  .dx-cols::-webkit-scrollbar{display:none}
  .dx-colhead,.dx-v{scroll-snap-align:start}
  .dx-colhead{padding:20px 14px 16px}
  body.dx-b .dx-cols .dx-span{position:sticky;left:16px;width:calc(100vw - 32px);justify-content:flex-start;text-align:left;margin-top:32px}
  body.dx-b .dx-cols .dx-colhead+.dx-span{margin-top:28px}
  .dx-v{padding:10px 4px 0}
}
@media(prefers-reduced-motion:reduce){.dx-panel{transition:none}}
/* Align the map-panel heading with the outer edge of the result row boxes. */
.dx-panel .dx-lh{padding-inline:10px}
