/* ==========================================================================
   SMOKEY MAP — komponenta (Figma 479:18940, 1761 × 1250; dev guide 571:8242)
   Desktop (>= 1280): presne rozlozeni ramce, rozmery v design px pres --u.
   Mapova plocha (.smap__stage) = 1250 × 1250 jednotek kresby; --m = velikost
   jedne jednotky (nastavuje JS podle zoomu, bez JS = 1 design px).
   Viditelnost: [data-l] = seznam vrstev (S W FS FW); prvek je videt, kdyz je
   aspon jedna z nich v data-on korene. [data-cat] skryva data-off.
   ========================================================================== */

.smap {
  --mb: #1d2f80;                       /* brand/primary mapy (guide 06) */
  --stage: calc(1250 * var(--u));
  --m: calc(var(--stage) / 1250);
  position: relative; width: calc(1761 * var(--u)); height: calc(1250 * var(--u)); max-width: 100%;
  background: #f7f9fc; color: var(--c-navy); overflow: hidden; isolation: isolate;
  letter-spacing: 0; line-height: 1.22;
}
.smap p, .smap h2, .smap h3 { margin: 0; }

/* ------------------------------------------------------------ viditelnost vrstev */
.smap [data-l] { display: none !important; }
.smap[data-on~="S"] [data-l~="S"], .smap[data-on~="W"] [data-l~="W"],
.smap[data-on~="FS"] [data-l~="FS"], .smap[data-on~="FW"] [data-l~="FW"] { display: var(--d, block) !important; }
.smap[data-off~="essential"] [data-cat="essential"], .smap[data-off~="allyear"] [data-cat="allyear"],
.smap[data-off~="skilines"] [data-cat="skilines"], .smap[data-off~="runnumbers"] [data-cat="runnumbers"],
.smap[data-off~="winter"] [data-cat="winter"], .smap[data-off~="hiking"] [data-cat="hiking"],
.smap[data-off~="summer"] [data-cat="summer"], .smap[data-off~="snowmobile"] [data-cat="snowmobile"] { display: none !important; }

/* ------------------------------------------------------------ mapova plocha */
.smap__view { position: absolute; left: calc(244 * var(--u)); top: 0; width: calc(1517 * var(--u)); height: 100%; overflow: hidden; touch-action: none; cursor: grab; outline: none; }
.smap__view.is-drag { cursor: grabbing; }
.smap__view:focus-visible { box-shadow: inset 0 0 0 3px var(--c-gold-2); }
.smap__stage { position: absolute; left: 0; top: 0; width: calc(1250 * var(--m)); height: calc(1250 * var(--m)); transform-origin: 0 0; will-change: transform; }
.smap__layer { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.smap__labels, .smap__pois { position: absolute; inset: 0; pointer-events: none; }

/* popisky z Figmy (souradnice/velikosti v jednotkach kresby) */
.smap__lb {
  --d: flex; position: absolute; left: calc(var(--x) * var(--m)); top: calc(var(--y) * var(--m));
  width: calc(var(--w) * var(--m) + 1px); height: calc(var(--h) * var(--m));
  align-items: center; justify-content: center; white-space: nowrap;
  font-weight: 700; font-size: calc(var(--fs) * var(--m)); line-height: calc(var(--lh) * var(--m));
  letter-spacing: calc(var(--ls, 0) * var(--m)); border-radius: calc(var(--r, 0) * var(--m));
}
.smap__lb--up { text-transform: uppercase; }
.smap__lb:not(.smap__lb--box) { justify-content: flex-start; }
.smap__badge {
  --d: flex; position: absolute; left: calc((var(--x) - 4.83) * var(--m)); top: calc((var(--y) - 4.83) * var(--m));
  width: calc(9.66 * var(--m)); height: calc(9.66 * var(--m)); align-items: center; justify-content: center;
  border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 max(.5px, calc(.355 * var(--m))) var(--c-navy);
  font-weight: 700; font-size: calc(5.68 * var(--m)); line-height: 1; color: var(--c-navy);
}

/* body zajmu — modry kruh, bily glyph (guide 06: 64 src px ≈ 9 jednotek) */
.smap__poi {
  --d: grid; --s: max(calc(9.1 * var(--m)), 16px);
  position: absolute; left: calc(var(--x) * var(--m)); top: calc(var(--y) * var(--m));
  width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  place-items: center; border-radius: 50%; background: var(--mb); color: #fff; pointer-events: auto; cursor: pointer;
  transition: transform .15s var(--ease);
}
.smap__poi::before { content: ""; position: absolute; inset: -5px; border-radius: 50%; } /* vetsi cil dotyku */
.smap__poi-ico { width: 68%; height: 68%; fill: currentColor; pointer-events: none; }
.smap__poi:hover, .smap__poi.is-active { transform: scale(1.18); z-index: 2; }
.smap__poi:focus-visible { outline: 2px solid var(--c-gold-2); outline-offset: 2px; z-index: 2; }
.smap[data-invest="1"] .smap__poi[data-id="cormorant-rock"], .smap[data-invest="1"] .smap__poi[data-id="future-moose"] { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--c-gold-3); }

/* jmeno aktivniho bodu — nad bodem, bez boxu a vodici cary (guide 03) */
.smap__name {
  position: absolute; left: calc(var(--x) * var(--m)); top: calc(var(--y) * var(--m));
  transform: translate(-50%, calc(-100% - max(calc(4.55 * var(--m)), 8px) - 7px));
  white-space: nowrap; pointer-events: none; z-index: 3;
  font-weight: 700; font-size: max(calc(3.7 * var(--m)), 13px); line-height: 1.2; color: var(--mb);
  text-shadow: 0 0 2px #fff, 0 0 3px #fff, 0 0 4px #fff, 0 0 6px #fff;
}

/* zoom */
.smap__zoom { position: absolute; right: calc(299 * var(--u)); bottom: calc(52 * var(--u)); display: flex; flex-direction: column; gap: 4px; z-index: 4; }
.smap__zoom button { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: rgba(247, 244, 236, .96); color: var(--c-navy); box-shadow: 0 2px 10px rgba(0, 11, 59, .15); }
.smap__zoom button:hover { background: #fff; }
.smap__zoom .cs-ico { width: 20px; height: 20px; }

/* detail bodu (Figma 571:7519 — bila karta, navy text, tlacitko CLOSE) */
.smap__card {
  position: absolute; left: calc(34 * var(--u)); top: calc(142 * var(--u)); z-index: 5;
  width: max(270px, calc(330 * var(--u))); max-height: calc(100% - 160 * var(--u)); overflow: auto;
  padding: 20px 22px; border-radius: 14px; background: #fff; color: var(--mb); box-shadow: 0 10px 40px rgba(0, 11, 59, .18); cursor: auto;
}
.smap__card-eb { font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.smap__card-h { margin-top: 8px !important; font-weight: 700; font-size: 22px; line-height: 1.2; }
.smap__card-body { margin-top: 10px; font-size: 14px; line-height: 1.4; }
.smap__card-body > * + * { margin-top: 10px; }
.smap__card-sec h4 { margin: 0; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.smap__card-sec p { margin: 4px 0 0; }
.smap__card-status { font-weight: 700; }
.smap__card-status::before { content: "?"; display: inline-grid; place-items: center; width: 1.25em; height: 1.25em; margin-right: .4em; border-radius: 50%; background: var(--mb); color: #fff; font-size: .8em; }
.smap__card-status--planned::before { content: "◇"; background: #7b858a; }
.smap__card-status--open::before { content: "✓"; background: var(--c-green); }
.smap__card-body a { text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.smap__card-inv { padding: 10px 12px; border-radius: 8px; background: rgba(197, 156, 88, .15); border: 1px solid rgba(197, 156, 88, .6); }
.smap__card-close { margin-top: 16px; padding: 10px 22px; border-radius: 8px; background: var(--mb); color: #fff; font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }

/* ------------------------------------------------------------ horni lista 04 / Map Toolbar */
.smap__bar {
  position: absolute; left: calc(278 * var(--u)); top: calc(22 * var(--u)); width: calc(1111 * var(--u)); height: calc(98 * var(--u)); z-index: 4;
  display: flex; padding: calc(19 * var(--u)) 0 0 calc(33 * var(--u));
  background: rgba(247, 244, 236, .96); border-radius: calc(8.18 * var(--u)); box-shadow: 0 0 calc(32.7 * var(--u)) rgba(0, 11, 59, .12);
}
.smap__title { width: calc(285 * var(--u)); flex: none; }
.smap__h { font-weight: 700; font-size: max(18px, calc(27.26 * var(--u))); line-height: calc(33.2 / 27.26); color: var(--c-navy); white-space: nowrap; }
.smap__geo { margin-top: calc(5 * var(--u)) !important; font-weight: 700; font-size: max(9px, calc(13.63 * var(--u))); line-height: 1.22; letter-spacing: calc(1.09 * var(--u)); color: #5c6475; white-space: pre; }
.smap__filters { position: relative; display: flex; gap: calc(11.5 * var(--u)); padding-top: calc(5 * var(--u)); }
.smap__f {
  display: flex; align-items: center; justify-content: center; gap: calc(6.82 * var(--u));
  width: calc(122 * var(--u)); height: calc(49 * var(--u)); border-radius: calc(9.54 * var(--u));
  background: #00177a; color: #fff; border: 1px solid #00177a;
  font-weight: 700; font-size: max(8px, calc(10.22 * var(--u))); line-height: 1.22; white-space: nowrap;
}
.smap__f--fs, .smap__f--fw { width: calc(193 * var(--u)); }
.smap__f--fw { margin-left: calc(0 * var(--u)); }
.smap__chk { position: relative; width: calc(11 * var(--u)); height: calc(11 * var(--u)); min-width: 9px; min-height: 9px; border: max(1px, calc(.85 * var(--u))) solid rgba(255, 255, 255, .85); border-radius: calc(1.7 * var(--u)); }
.smap__f[aria-checked="true"] .smap__chk::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; font-size: max(8px, calc(7.95 * var(--u))); line-height: 1; }
.smap__f[aria-checked="false"] { background: transparent; color: #00177a; }
.smap__f[aria-checked="false"] .smap__chk { border-color: #00177a; }
.smap__f:hover { filter: brightness(1.15); }
.smap__all {
  align-self: flex-start; margin: calc(6 * var(--u)) 0 0 calc(5 * var(--u)); width: calc(91 * var(--u)); height: calc(35 * var(--u));
  border: max(1px, calc(.85 * var(--u))) solid #00177a; border-radius: calc(5.68 * var(--u));
  font-weight: 700; font-size: max(8px, calc(8.52 * var(--u))); line-height: 1.22; color: #00177a;
}
.smap__all:hover { background: #00177a; color: #fff; }
.smap__hint { position: absolute; left: 0; top: calc(60 * var(--u)); font-weight: 700; font-size: max(7px, calc(7.95 * var(--u))); line-height: 1.22; white-space: nowrap; }

/* ------------------------------------------------------------ levy panel 01 / Layer Panel */
.smap__fold > .smap__sum { display: none; }
.smap__side { position: absolute; left: 0; top: 0; width: calc(244 * var(--u)); height: 100%; background: var(--c-navy); color: #fff; z-index: 4; }
.smap__side .smap__panel { position: relative; padding: calc(20 * var(--u)) calc(23 * var(--u)) 0 calc(20 * var(--u)); }
.smap__eb { font-weight: 700; font-size: max(7px, calc(6.13 * var(--u))); line-height: 1.22; letter-spacing: calc(.61 * var(--u)); color: var(--c-gold-3); }
.smap__side-h { margin-top: calc(10 * var(--u)) !important; font-weight: 800; font-size: max(14px, calc(21.47 * var(--u))); line-height: calc(25.8 / 21.47); text-transform: uppercase; }
.smap__mark { margin-top: calc(9 * var(--u)); width: calc(24 * var(--u)); height: auto; fill: #fff; color: #fff; }
.smap__div { width: calc(201 * var(--u)); margin: calc(14 * var(--u)) 0 0; border: 0; border-top: 1px solid rgba(197, 156, 88, .55); }
.smap__cap { margin-top: calc(13 * var(--u)) !important; font-weight: 700; font-size: max(7px, calc(6.13 * var(--u))); line-height: 1.22; letter-spacing: calc(.74 * var(--u)); }
.smap__cap--diff { margin-top: calc(16 * var(--u)) !important; letter-spacing: calc(.61 * var(--u)); }
.smap__cats { margin-top: calc(12 * var(--u)); width: calc(201 * var(--u)); display: grid; gap: calc(3.9 * var(--u)); }
.smap__cat {
  position: relative; display: flex; align-items: center; width: 100%; height: calc(28 * var(--u)); min-height: 18px;
  background: rgba(255, 255, 255, .05); color: #fff; text-align: left;
  font-weight: 700; font-size: max(7px, calc(6.75 * var(--u))); line-height: 1.22; letter-spacing: calc(.4 * var(--u));
}
.smap__cat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: calc(2 * var(--u)); min-width: 2px; background: var(--bar); }
.smap__cat-m { width: calc(6 * var(--u)); height: calc(6 * var(--u)); min-width: 5px; min-height: 5px; margin: 0 calc(8 * var(--u)) 0 calc(11 * var(--u)); border-radius: 50%; background: var(--c); flex: none; }
.smap__cat-t { flex: 1; white-space: nowrap; }
.smap__cat-n { width: calc(24 * var(--u)); font-size: max(7px, calc(6.13 * var(--u))); letter-spacing: 0; color: #aeb7cd; }
.smap__cat-v { position: absolute; right: calc(-4 * var(--u)); top: calc(10 * var(--u)); width: calc(9 * var(--u)); height: calc(9 * var(--u)); min-width: 8px; min-height: 8px; background: var(--c); border: max(.5px, calc(.61 * var(--u))) solid rgba(255, 255, 255, .25); }
.smap__cat[aria-checked="false"] { color: rgba(255, 255, 255, .55); }
.smap__cat[aria-checked="false"] .smap__cat-v { background: transparent; border-color: var(--c); }
.smap__cat[aria-checked="false"] .smap__cat-m { opacity: .45; }
.smap__cat:hover { background: rgba(255, 255, 255, .1); }
.smap__cat.is-na { opacity: .45; }
.smap__diff { margin-top: calc(12 * var(--u)); display: grid; gap: calc(9.4 * var(--u)); }
.smap__diff li { display: flex; align-items: center; gap: calc(8 * var(--u)); font-weight: 700; font-size: max(7px, calc(6.13 * var(--u))); line-height: 1.22; letter-spacing: calc(.43 * var(--u)); color: #d8ddea; }
.smap__diff li::before { content: ""; width: calc(20 * var(--u)); height: calc(2 * var(--u)); min-height: 2px; background: var(--c); flex: none; }
.smap__links { margin-top: calc(24 * var(--u)); display: grid; gap: calc(12.5 * var(--u)); }
.smap__gold {
  display: flex; align-items: center; width: calc(196 * var(--u)); min-height: max(18px, calc(26 * var(--u))); padding: 2px calc(11 * var(--u));
  background: rgba(197, 156, 88, .15); border: max(.5px, calc(.61 * var(--u))) solid rgba(197, 156, 88, .61); border-radius: calc(4.9 * var(--u));
  font-weight: 700; font-size: max(7px, calc(5.52 * var(--u))); line-height: 1.22; letter-spacing: calc(.55 * var(--u)); color: var(--c-gold-3); text-align: left;
}
.smap__gold:hover { background: rgba(197, 156, 88, .28); }
.smap__invest[aria-checked="true"] { background: var(--c-gold-3); color: var(--c-navy); }
.smap__invest::after { content: ""; margin-left: auto; width: calc(14 * var(--u)); min-width: 12px; height: calc(8 * var(--u)); min-height: 7px; border-radius: 99px; background: rgba(197, 156, 88, .4); box-shadow: inset calc(-6 * var(--u)) 0 0 0 transparent; }
.smap__invest[aria-checked="true"]::after { background: var(--c-navy); }

/* 06 / Future of Smokey */
.smap__future { position: absolute; left: calc(14 * var(--u)); top: calc(699 * var(--u)); width: calc(216 * var(--u)); z-index: 4; display: grid; gap: calc(11.36 * var(--u)); padding: calc(6.82 * var(--u)); color: #fff; }
.smap__fut-h { font-weight: 700; font-size: max(10px, calc(12.5 * var(--u))); line-height: 1.22; color: var(--c-gold-3); }
.smap__future p { font-size: max(9px, calc(11.36 * var(--u))); line-height: calc(13.8 / 11.36); }
.smap__future .smap__fut-b { font-weight: 700; }

/* ------------------------------------------------------------ pravy panel 05 / Ski Run Index */
.smap__right { position: absolute; left: calc(1528 * var(--u)); top: calc(142 * var(--u)); width: calc(219 * var(--u)); z-index: 4; display: flex; flex-direction: column; }
.smap__runs {
  position: relative; width: calc(218 * var(--u)); min-height: calc(518 * var(--u)); z-index: 4; padding-bottom: calc(10 * var(--u));
  background: rgba(247, 244, 236, .96); border: max(.5px, calc(.8 * var(--u))) solid rgba(0, 23, 122, .22); border-radius: calc(7.95 * var(--u));
  box-shadow: 0 0 calc(19 * var(--u)) rgba(0, 11, 59, .13);
}
.smap__runs .smap__panel { padding: calc(13 * var(--u)) calc(14 * var(--u)) 0; }
.smap__runs-eb { font-weight: 700; font-size: max(7px, calc(7.16 * var(--u))); line-height: 1.22; letter-spacing: calc(.64 * var(--u)); color: var(--c-gold-3); }
.smap__runs-h { margin-top: calc(5 * var(--u)) !important; font-weight: 800; font-size: max(14px, calc(21.47 * var(--u))); line-height: calc(26.2 / 21.47); }
.smap__runs-sub { font-size: max(7px, calc(7.16 * var(--u))); line-height: 1.22; color: #5c6475; }
.smap__runlist { margin-top: calc(10 * var(--u)); padding-top: calc(9 * var(--u)); border-top: 1px solid rgba(197, 156, 88, .55); }
.smap__runlist li { position: relative; display: flex; min-height: calc(25.4 * var(--u)); padding: calc(3 * var(--u)) 0 0 calc(10 * var(--u)); }
.smap__runlist li::before { content: ""; position: absolute; left: 0; top: calc(3.5 * var(--u)); width: calc(3 * var(--u)); min-width: 2px; height: calc(16 * var(--u)); background: var(--c); }
.smap__run-n { width: calc(21 * var(--u)); flex: none; font-weight: 700; font-size: max(7px, calc(7.16 * var(--u))); line-height: 1.22; color: #5c6475; }
.smap__run-t { display: flex; flex-direction: column; font-weight: 700; font-size: max(8px, calc(7.95 * var(--u))); line-height: 1.22; color: var(--c-navy); white-space: nowrap; }
.smap__run-t small { font-size: max(6px, calc(5.96 * var(--u))); letter-spacing: calc(.3 * var(--u)); color: #7a8190; }
.smap__runs-note { margin-top: calc(5 * var(--u)) !important; font-weight: 700; font-size: max(6px, calc(5.96 * var(--u))); line-height: 1.22; letter-spacing: calc(.24 * var(--u)); color: #5c6475; }

/* 07 / Map legend */
.smap__legend { position: relative; margin-top: calc(39 * var(--u)); width: calc(219 * var(--u)); min-height: calc(352 * var(--u)); z-index: 4; background: #fff; }
.smap__legend .smap__panel { display: grid; gap: calc(11.36 * var(--u)); padding: calc(13.6 * var(--u)); }
.smap__lg-h { font-weight: 700; font-size: max(11px, calc(14.77 * var(--u))); line-height: 1.22; }
.smap__lg-p { font-size: max(9px, calc(11.36 * var(--u))); line-height: calc(13.8 / 11.36); color: #00177a; }
.smap__lg-p--easy { color: #448d68; font-weight: 700; }
.smap__lg-p--med { color: #387bb8; }
.smap__lg-p--hard { color: #20242a; }
.smap__lg-p--lift { color: #34465f; }
.smap__lg-note { font-size: max(8px, calc(10.22 * var(--u))); line-height: calc(12.5 / 10.22); color: #58657a; }
.smap__routes { display: grid; gap: calc(4.54 * var(--u)); }
.smap__routes li { --d: flex; display: flex; align-items: center; gap: calc(5.68 * var(--u)); font-size: max(8px, calc(9.09 * var(--u))); line-height: 1.25; color: var(--c); }
.smap__routes li::before { content: ""; width: calc(15 * var(--u)); height: calc(2 * var(--u)); min-height: 2px; background: var(--c); flex: none; }

/* TRAIL TYPES */
.smap__types { position: relative; margin-top: calc(11 * var(--u)); width: calc(219 * var(--u)); z-index: 4; display: grid; gap: calc(6.82 * var(--u)); padding: calc(12.5 * var(--u)) calc(13.6 * var(--u)); background: #fff; }
.smap__types-h { font-weight: 700; font-size: max(8px, calc(9.66 * var(--u))); line-height: 1.22; }
.smap__types p { font-size: max(7px, calc(7.95 * var(--u))); line-height: 1.22; color: #00177a; }

.smap__foot { position: absolute; left: calc(284 * var(--u)); top: calc(1216 * var(--u)); z-index: 4; font-size: max(7px, calc(10.22 * var(--u))); line-height: 1.22; color: #58657a; white-space: nowrap; pointer-events: none; }

/* ------------------------------------------------------------ < 1280: mapa nahore, panely sbalene */
@media (max-width: 1279px) {
  .smap { --stage: min(calc(100vw - 24px), 900px); width: 100%; height: auto; display: flex; flex-direction: column; border-radius: 10px; }
  .smap__right { display: contents; }
  .smap__bar, .smap__side, .smap__runs, .smap__legend, .smap__types, .smap__future, .smap__foot, .smap__view, .smap__card { position: relative; left: auto; top: auto; right: auto; width: auto; height: auto; }
  .smap__bar { order: 1; flex-direction: column; gap: 10px; padding: 16px; border-radius: 0; box-shadow: none; }
  .smap__title { width: auto; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
  .smap__h { font-size: 22px; }
  .smap__geo { font-size: 11px; letter-spacing: .08em; }
  .smap__filters { flex-wrap: wrap; gap: 6px; padding: 0; }
  .smap__f, .smap__f--fs, .smap__f--fw { width: auto; height: 40px; padding: 0 12px; gap: 7px; border-radius: 8px; font-size: 11px; }
  .smap__chk { width: 11px; height: 11px; border-radius: 2px; }
  .smap__f[aria-checked="true"] .smap__chk::after { font-size: 9px; }
  .smap__all { width: auto; height: 40px; margin: 0; padding: 0 14px; border-radius: 8px; font-size: 11px; }
  .smap__hint { position: static; width: 100%; font-size: 10px; white-space: normal; }
  .smap__view { order: 2; width: 100%; height: min(calc(var(--stage) * .84), 75vh); }
  .smap__poi { --s: max(calc(9.1 * var(--m)), 12px); }
  .smap__stage { left: 0; }
  .smap__zoom { right: 10px; bottom: 10px; }
  .smap__card { position: absolute; left: 8px; right: 8px; top: auto; bottom: 8px; width: auto; max-height: 70%; }
  .smap__foot { order: 3; padding: 8px 16px 0; white-space: normal; font-size: 10px; }
  .smap__side { order: 4; }
  .smap__runs { order: 5; }
  .smap__legend { order: 6; min-height: 0; }
  .smap__types { order: 7; padding: 12px 16px; }
  .smap__future { order: 8; padding: 16px; gap: 10px; background: var(--c-navy); }
  .smap__fold { margin: 8px 8px 0; border-radius: 8px; border: 0; box-shadow: none; }
  .smap__fold > .smap__sum { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; font-weight: 800; font-size: 14px; text-transform: uppercase; cursor: pointer; list-style: none; }
  .smap__fold > .smap__sum::-webkit-details-marker { display: none; }
  .smap__fold > .smap__sum::after { content: "+"; font-size: 20px; line-height: 1; }
  .smap__fold[open] > .smap__sum::after { content: "–"; }
  .smap__side .smap__panel { height: auto; padding: 0 16px 16px; display: flex; flex-direction: column; gap: 10px; }
  .smap__side-h, .smap__mark, .smap__div { display: none; }
  .smap__eb { font-size: 10px; }
  .smap__cap, .smap__cats, .smap__diff, .smap__links { position: static; width: auto; margin-top: 0 !important; }
  .smap__cap { font-size: 10px; letter-spacing: .08em; margin-top: 6px; }
  .smap__cats { gap: 4px; }
  .smap__cat { height: 40px; font-size: 12px; letter-spacing: .03em; padding-right: 14px; }
  .smap__cat-m { width: 8px; height: 8px; margin: 0 10px 0 12px; }
  .smap__cat-n { width: 30px; font-size: 11px; }
  .smap__cat-v { position: static; width: 12px; height: 12px; }
  .smap__diff { gap: 8px; }
  .smap__diff li { font-size: 11px; gap: 10px; letter-spacing: .05em; }
  .smap__diff li::before { width: 22px; height: 3px; }
  .smap__links { gap: 8px; }
  .smap__gold { width: 100%; height: 42px; padding: 0 14px; font-size: 11px; letter-spacing: .06em; border-radius: 6px; }
  .smap__invest::after { width: 22px; height: 12px; }
  .smap__runs .smap__panel { padding: 0 16px 16px; }
  .smap__runs-eb, .smap__runs-h { display: none; }
  .smap__runs-sub { font-size: 12px; }
  .smap__runlist li { height: auto; padding: 6px 0 6px 12px; }
  .smap__runlist li::before { top: 7px; width: 3px; height: 26px; }
  .smap__run-n { width: 30px; font-size: 12px; }
  .smap__run-t { font-size: 14px; }
  .smap__run-t small { font-size: 10px; letter-spacing: .05em; }
  .smap__runs-note { font-size: 10px; letter-spacing: .05em; }
  .smap__legend .smap__panel { padding: 0 16px 16px; gap: 10px; }
  .smap__lg-h { display: none; }
  .smap__lg-p { font-size: 14px; }
  .smap__lg-note { font-size: 12px; }
  .smap__routes li { font-size: 13px; gap: 8px; }
  .smap__routes li::before { width: 18px; height: 3px; }
  .smap__types { margin: 8px 8px 0; border-radius: 8px; gap: 6px; }
  .smap__types-h { font-size: 13px; }
  .smap__types p { font-size: 12px; }
  .smap__future { margin: 8px; border-radius: 8px; }
  .smap__fut-h { font-size: 15px; }
  .smap__future p { font-size: 13px; }
  .smap__runs { background: rgba(247, 244, 236, .96); min-height: 0; padding-bottom: 0; }
  .smap__legend { background: #fff; }
}
@media (prefers-reduced-motion: reduce) { .smap__poi { transition: none; } }
@media (forced-colors: active) { .smap__poi { border: 1px solid CanvasText; } .smap__f[aria-checked="true"] { outline: 2px solid Highlight; } }
.smap__sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.smap:not(.is-js) .smap__zoom { display: none; }
