.map-interactive {
  --mi-unit: 1px; --mi-base: var(--p3); --mi-card: var(--p3); --mi-ink: var(--p1); --mi-blue: var(--s1); --mi-orange: var(--p2);
  --mi-land: var(--bgg); --mi-shadow: 0 3px 9px color-mix(in srgb, var(--mi-blue) 12%, transparent), 0 14px 26px color-mix(in srgb, var(--p5) 8%, transparent);
  position: relative; isolation: isolate; padding: clamp(36px, 4vw, 64px) 0; background: var(--mi-base); color: var(--mi-ink); font: 400 16px/1.6 "roc-grotesk", sans-serif;
}
[data-lisam-theme="dark"] .map-interactive { --mi-base: var(--p5); --mi-card: var(--p1); --mi-ink: var(--p3); --mi-blue: var(--lisam-dark-blue, var(--s1)); --mi-orange: var(--lisam-dark-orange, var(--p2)); --mi-land: color-mix(in srgb, var(--mi-blue) 13%, var(--p5)); --mi-shadow: 0 6px 18px color-mix(in srgb, var(--p5) 85%, transparent), 0 10px 20px color-mix(in srgb, var(--mi-blue) 5%, transparent); }
.map-interactive *, .map-interactive *::before, .map-interactive *::after { box-sizing: border-box; }
.map-interactive [hidden] { display: none !important; }
.map-interactive p { padding: 0; margin: 0; color: var(--mi-ink); }
.mi__intro { width: 88%; max-width: calc(1100 * var(--mi-unit)); margin: 0 auto calc(32 * var(--mi-unit)); text-align: center; }
.map-interactive .mi__eyebrow { font-size: calc(14 * var(--mi-unit)); letter-spacing: .04em; margin-bottom: calc(20 * var(--mi-unit)); }
.map-interactive .mi__heading { font-size: clamp(28px, 2.35vw, 42px) !important; font-weight: 500; line-height: 1.24; color: var(--mi-ink); margin: 0; overflow-wrap: anywhere; }
.map-interactive b { color: var(--mi-orange); font-weight: inherit; }
.map-interactive .mi__paragraph { max-width: calc(820 * var(--mi-unit)); margin: calc(24 * var(--mi-unit)) auto 0; font-size: calc(18 * var(--mi-unit)); line-height: 1.65; }
.mi__frame { width: 88%; max-width: calc(1440 * var(--mi-unit)); margin: 0 auto; }
.mi__stage { position: relative; padding-top: calc(160 * var(--mi-unit)); }
.mi__viewport { position: relative; aspect-ratio: 1200 / 560; overflow: hidden; border-radius: 3px; }
.mi__scene { position: absolute; inset: 0; transform-origin: 0 0; transition: transform .75s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.map-interactive .mi__land { display: block; width: 100%; height: 100%; max-width: none; fill: var(--mi-land); }
.mi__pins { position: absolute; inset: 0; }
.map-interactive .mi__pin { position: absolute; display: grid; place-items: center; width: calc(40 * var(--mi-unit)); height: calc(44 * var(--mi-unit)); padding: 0; margin: 0; border: 0; background: transparent; color: var(--mi-blue); cursor: pointer; transform: translate(-50%, -75%); transition: left .75s cubic-bezier(.16,1,.3,1), top .75s cubic-bezier(.16,1,.3,1); z-index: 1; }
.mi__pin > svg { display: block; width: calc(27 * var(--mi-unit)); height: calc(34 * var(--mi-unit)); max-width: none; aspect-ratio: 27 / 34; overflow: visible; filter: drop-shadow(0 2px 3px color-mix(in srgb, var(--p5) 15%, transparent)); transition: transform .35s cubic-bezier(.2,1.7,.4,1), color .25s; }
.mi__pin .mi__pin-edge { stroke: var(--mi-base); stroke-width: 2; }
.mi__pin .mi__pin-core { fill: var(--p3); }
.mi__pin.is-selected, .mi__pin:hover { color: var(--mi-orange); z-index: 2; }
.mi__pin.is-selected > svg, .mi__pin:hover > svg { transform: scale(1.13); }
.mi__cluster > span { display: grid; place-items: center; width: calc(36 * var(--mi-unit)); height: calc(36 * var(--mi-unit)); border: calc(3 * var(--mi-unit)) solid var(--mi-base); border-radius: 50%; background: var(--mi-blue); color: var(--p3); box-shadow: 0 3px 9px color-mix(in srgb, var(--p5) 15%, transparent); font: 500 calc(13 * var(--mi-unit))/1 "roc-grotesk", sans-serif; transition: background .25s, transform .35s; }
.mi__cluster.is-selected > span, .mi__cluster:hover > span { background: var(--mi-orange); transform: scale(1.08); }
.map-interactive button:focus-visible, .map-interactive a:focus-visible, .map-interactive select:focus-visible, .map-interactive summary:focus-visible { outline: 2px solid var(--mi-orange); outline-offset: 4px; }
.mi__zoom { position: absolute; top: calc(160 * var(--mi-unit)); right: 0; display: flex; gap: calc(6 * var(--mi-unit)); z-index: 4; }
.map-interactive .mi__zoom button, .map-interactive .mi__close { display: inline-flex; align-items: center; justify-content: center; min-width: calc(40 * var(--mi-unit)); min-height: calc(40 * var(--mi-unit)); padding: calc(8 * var(--mi-unit)); border: 1px solid color-mix(in srgb, var(--mi-blue) 35%, transparent); border-radius: 3px; background: var(--mi-card); color: var(--mi-ink); font: 500 calc(20 * var(--mi-unit))/1 "roc-grotesk", sans-serif; cursor: pointer; }
.map-interactive .mi__zoom [data-mi-reset] { font-size: calc(13 * var(--mi-unit)); padding-inline: calc(14 * var(--mi-unit)); }
.map-interactive .mi__zoom button:hover { background: var(--mi-blue); color: var(--mi-ink); }
.mi__zoom button:disabled { opacity: .35; cursor: default; }
.mi__popup { position: absolute; z-index: 5; width: calc(365 * var(--mi-unit)); max-width: 100%; max-height: min(calc(520 * var(--mi-unit)), calc(100svh - 180px)); overflow: auto; padding: calc(22 * var(--mi-unit)) calc(24 * var(--mi-unit)); border: 1px solid color-mix(in srgb, var(--mi-blue) 14%, transparent); border-radius: 3px; background: var(--mi-card); box-shadow: var(--mi-shadow); }
.map-interactive .mi__close { position: absolute; top: calc(6 * var(--mi-unit)); right: calc(6 * var(--mi-unit)); border: 0; min-width: calc(28 * var(--mi-unit)); min-height: calc(28 * var(--mi-unit)); padding: 0; background: transparent; font-size: calc(22 * var(--mi-unit)); }
.map-interactive .mi__country { margin: 0 calc(20 * var(--mi-unit)) calc(4 * var(--mi-unit)) 0; font-size: calc(19 * var(--mi-unit)) !important; line-height: 1.35; font-weight: 500; color: var(--mi-ink); }
.map-interactive .mi__kind { color: var(--mi-orange); font-size: calc(16 * var(--mi-unit)); line-height: 1.4; margin-bottom: calc(12 * var(--mi-unit)); }
.mi__kind span { color: var(--mi-ink); font-size: calc(13 * var(--mi-unit)); }
.map-interactive .mi__company { padding-top: calc(12 * var(--mi-unit)); border-top: 1px solid var(--mi-blue); font-size: calc(13 * var(--mi-unit)); line-height: 1.5; margin-bottom: calc(6 * var(--mi-unit)); font-weight: 500; }
.mi__address { font-size: calc(14 * var(--mi-unit)); line-height: 1.65; font-style: normal; color: var(--mi-ink); overflow-wrap: anywhere; }
.mi__contacts { margin-top: calc(14 * var(--mi-unit)); font-size: calc(13 * var(--mi-unit)); line-height: 1.6; }
.mi__contacts summary { cursor: pointer; width: fit-content; font-weight: 500; }
.mi__contacts p { margin-top: calc(8 * var(--mi-unit)); overflow-wrap: anywhere; }
.mi__contacts p > span { font-weight: 500; margin-right: .4em; }
.mi__contacts a { color: var(--mi-ink); text-underline-offset: .2em; }
.mi__contacts a:hover { color: var(--mi-orange); }
.map-interactive .mi__link { display: inline-flex; align-items: center; gap: calc(18 * var(--mi-unit)); margin-top: calc(18 * var(--mi-unit)); padding: calc(11 * var(--mi-unit)) calc(20 * var(--mi-unit)); min-height: calc(46 * var(--mi-unit)); background: var(--p1); color: var(--p3); border-radius: 3px; font: 500 calc(15 * var(--mi-unit))/1.4 "roc-grotesk", sans-serif; text-decoration: none; }
.mi__link svg { width: calc(16 * var(--mi-unit)); height: calc(11 * var(--mi-unit)); flex: 0 0 calc(16 * var(--mi-unit)); max-width: none; }
.map-interactive .mi__link:hover { background: var(--mi-blue); color: var(--p1); }
[data-lisam-theme="dark"] .map-interactive .mi__link { background: var(--p3); color: var(--p1); }
[data-lisam-theme="dark"] .map-interactive .mi__link:hover { background: var(--mi-blue); color: var(--p3); }
.mi__toolbar { display: flex; align-items: center; justify-content: center; gap: calc(20 * var(--mi-unit)); margin-top: calc(20 * var(--mi-unit)); }
.mi__toolbar label { font-size: calc(14 * var(--mi-unit)); font-weight: 500; white-space: nowrap; }
.map-interactive .mi__show { display: inline-grid; place-items: center; flex: 0 0 calc(44 * var(--mi-unit)); width: calc(44 * var(--mi-unit)); height: calc(44 * var(--mi-unit)); padding: 0; border: 0; border-radius: 3px; background: var(--p1); color: var(--p3); cursor: pointer; }
.mi__show svg { display: block; width: calc(16 * var(--mi-unit)); height: calc(11 * var(--mi-unit)); max-width: none; }
.map-interactive .mi__show:hover { background: var(--mi-blue); color: var(--p1); }
[data-lisam-theme="dark"] .map-interactive .mi__show { background: var(--p3); color: var(--p1); }
[data-lisam-theme="dark"] .map-interactive .mi__show:hover { background: var(--mi-blue); color: var(--p3); }
.map-interactive .mi__select { width: auto; max-width: 100%; min-height: calc(44 * var(--mi-unit)); padding: calc(10 * var(--mi-unit)) calc(36 * var(--mi-unit)) calc(10 * var(--mi-unit)) calc(14 * var(--mi-unit)); border: 1px solid color-mix(in srgb, var(--mi-blue) 35%, transparent); border-radius: 3px; background: var(--mi-card); color: var(--mi-ink); font: 400 calc(14 * var(--mi-unit))/1.5 "roc-grotesk", sans-serif; }
.mi__directory { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: calc(24 * var(--mi-unit)); margin-top: calc(32 * var(--mi-unit)); }
.mi__directory .mi__office { min-width: 0; padding: calc(24 * var(--mi-unit)); background: var(--mi-card); border: 1px solid color-mix(in srgb, var(--mi-blue) 25%, transparent); border-radius: 3px; }
.mi__group { display: grid; gap: calc(8 * var(--mi-unit)); margin-top: calc(16 * var(--mi-unit)); }
.map-interactive .mi__group button { text-align: left; padding: calc(10 * var(--mi-unit)); border: 1px solid color-mix(in srgb, var(--mi-blue) 30%, transparent); border-radius: 3px; background: transparent; color: var(--mi-ink); font: 400 calc(14 * var(--mi-unit))/1.5 "roc-grotesk", sans-serif; cursor: pointer; }
.mi__group button:hover { background: color-mix(in srgb, var(--mi-blue) 15%, transparent); }
.mi--zoomed .mi__viewport { cursor: grab; }
.mi--dragging .mi__viewport { cursor: grabbing; }
.mi--dragging .mi__scene, .mi--dragging .mi__pin { transition: none; }
.mi--motion [data-mi-reveal] { opacity: 0; filter: blur(8px); transform: translateY(32px) scale(.97); transition: opacity .85s ease, filter .9s ease, transform 1.1s cubic-bezier(.16,1,.3,1); }
.mi--motion [data-mi-reveal].is-revealed { opacity: 1; filter: none; transform: none; }
.mi--motion .mi__pin > svg, .mi--motion .mi__cluster > span { animation: mi-pin-in .7s cubic-bezier(.2,1.5,.4,1) both; animation-delay: var(--mi-delay,0ms); }
@keyframes mi-pin-in { from { opacity: 0; transform: translateY(-12px) scale(.45); filter: blur(3px); } to { opacity: 1; } }
.mi--editor .mi__stage { padding: 0; }
.mi--editor .mi__directory { grid-template-columns: minmax(0,1fr); }
.mi--editor .mi__directory .mi__office:not(:first-child) { display: none; }
@media (min-width:1921px) {
  .map-interactive { --mi-unit: clamp(1px, min(calc(100vw / 1920), calc(100svh / 1080)), 2px); padding-block: calc(64 * var(--mi-unit)); font-size: calc(16 * var(--mi-unit)); }
  .map-interactive .mi__heading { font-size: calc(42 * var(--mi-unit)) !important; }
}
@media (max-width:760px) {
  .map-interactive .mi__pin { width: 44px; }
  .map-interactive .mi__close { min-width: 44px; min-height: 44px; }
  .mi__stage { padding: 0; }
  .mi__intro { margin-bottom: 36px; }
  .mi__zoom { position: static; justify-content: flex-end; margin-top: 12px; }
  .map-interactive .mi__zoom button { min-width: 44px; min-height: 44px; }
  .mi__popup { position: relative; left: auto !important; top: auto !important; width: 100%; max-height: none; margin-top: 20px; padding: 24px; }
  .mi__toolbar { display: grid; grid-template-columns: minmax(0,1fr) 44px; align-items: stretch; gap: 8px; margin-top: 24px; }
  .mi__toolbar label { grid-column: 1 / -1; }
  .map-interactive .mi__select { width: 100%; font-size: 16px; }
  .mi__directory { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  .map-interactive [data-mi-reveal] { opacity: 1; filter: none; transform: none; transition: none; }
  .map-interactive .mi__scene, .map-interactive .mi__pin, .map-interactive .mi__pin > svg, .map-interactive .mi__cluster > span { animation: none; transition: none; }
}
