/* The graphic is an abstract connection diagram, not a geographic map. */
.si-locations {
  --si-locations-bg: var(--si-negative, #050607);
  --si-locations-card: var(--si-ink, #101316);
  --si-locations-text: var(--si-white, #fff);
  --si-locations-muted: #b8bdbe;
  --si-locations-lime: var(--si-primary, #cff106);
  --si-locations-amber: var(--si-secondary, #f9b007);
  box-sizing: border-box;
  width: 100%; max-width: none; margin-block: 0;
  padding: clamp(40px, 6vw, 88px) var(--si-page-pad, 24px);
  background: var(--si-locations-bg); color: var(--si-locations-text);
  font-family: var(--si-font, Inter, ui-sans-serif, system-ui, sans-serif);
}
.si-locations *, .si-locations *::before, .si-locations *::after { box-sizing: border-box; }
.entry-content > .si-locations,
.services-content > .si-locations,
.single-insight__content > .si-locations { width: 100%; max-width: none; margin-block: 0; }
.entry-content > .si-locations.alignfull:not(.si-locations--editor),
.services-content > .si-locations.alignfull:not(.si-locations--editor),
.single-insight__content > .si-locations.alignfull:not(.si-locations--editor) {
  width: 100vw; max-width: none; margin-inline: calc(50% - 50vw);
}
.si-locations__inner {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 96px); align-items: center;
  max-width: var(--si-content, 1180px); margin-inline: auto;
  container: si-locations / inline-size;
}
.si-locations__copy, .si-locations__card, .si-locations__details { min-width: 0; }
.si-locations .si-locations__eyebrow {
  display: flex; align-items: center; gap: 12px;
  margin: 0 0 18px; color: var(--si-locations-amber);
  font-size: 12px; font-weight: 800; line-height: 1.4;
  letter-spacing: .1em; text-transform: uppercase; overflow-wrap: anywhere;
}
.si-locations__eyebrow::before { content: ""; width: 28px; height: 3px; background: currentColor; flex: 0 0 auto; }
.si-locations .si-locations__title {
  max-width: 16ch; margin: 0 0 26px; color: var(--si-locations-text);
  font-size: clamp(34px, 4.5vw, 64px); font-weight: 800;
  line-height: 1.04; letter-spacing: -.045em;
  word-break: normal; overflow-wrap: break-word; hyphens: none;
}
.si-locations .si-locations__text { max-width: 48ch; color: var(--si-locations-muted); font-size: clamp(16px, 1.45vw, 19px); line-height: 1.7; overflow-wrap: break-word; }
.si-locations .si-locations__text p { margin: 0 0 1em; }
.si-locations .si-locations__text p:last-child { margin-bottom: 0; }
.si-locations__card { border: 1px solid #3d4549; background: var(--si-locations-card); }
.si-locations__art { position: relative; overflow: hidden; aspect-ratio: 64 / 25; border-bottom: 1px solid #3d4549; background: #181e21; }
.si-locations__art svg { display: block; width: 100%; height: 100%; }
.si-locations__routes { color: #465056; }
.si-locations__signal { color: var(--si-locations-lime); }
.si-locations__pin-ring { color: var(--si-locations-lime); }
.si-locations__pin { color: var(--si-locations-lime); }
.si-locations__accent { color: var(--si-locations-amber); }
.si-locations__details { padding: clamp(24px, 3vw, 40px); }
.si-locations .si-locations__city {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 20px;
  margin: 0 0 18px; color: var(--si-locations-text);
  font-size: clamp(32px, 3.3vw, 48px); font-weight: 800;
  line-height: 1.1; letter-spacing: -.045em; overflow-wrap: break-word;
}
.si-locations__city > [aria-hidden="true"] { flex: 0 0 auto; color: var(--si-locations-lime); font-size: .8em; font-weight: 400; }
.si-locations .si-locations__address { margin: 0; color: var(--si-locations-muted); font-style: normal; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.si-locations .si-locations__link {
  display: inline-flex; align-items: center; gap: 20px; max-width: 100%; min-height: 44px;
  margin-top: 24px; padding: 7px 0; border-bottom: 2px solid var(--si-locations-lime);
  color: var(--si-locations-text); font-size: 14px; font-weight: 750; line-height: 1.4;
  text-decoration: none; overflow-wrap: anywhere;
}
.si-locations .si-locations__link:hover { color: var(--si-locations-lime); }
.si-locations .si-locations__link:focus-visible { outline: 2px solid var(--si-locations-lime); outline-offset: 6px; }
.si-locations__link-arrow { color: var(--si-locations-lime); font-size: 23px; line-height: 1; flex: 0 0 auto; }
.si-locations__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Scoped editor preview: real proportions, no live third-party embed or navigation. */
.si-locations.si-locations--editor { width: 100%; max-width: none; margin-inline: 0; padding: 32px; }
.si-locations--editor .si-locations__inner { gap: 28px; }
.si-locations--editor .si-locations__title { font-size: 38px; }
.si-locations--editor .si-locations__city { font-size: 32px; }
.si-locations--editor .si-locations__text { font-size: 16px; }
.si-locations--editor .si-locations__details { padding: 24px; }
.si-locations--editor .si-locations__city-text { min-width: 0; flex: 1 1 auto; }
.si-locations--editor .block-editor-plain-text {
  display: block; width: 100%; min-height: 0; padding: 0; margin: 0;
  border: 0; background: transparent; color: inherit; font: inherit;
  line-height: inherit; letter-spacing: inherit; resize: none; box-shadow: none;
}
.si-locations--editor .block-editor-plain-text::placeholder { color: inherit; opacity: 1; }
.si-locations--editor .block-editor-plain-text:focus { outline: 1px dashed var(--si-locations-lime); outline-offset: 5px; }
.si-locations--editor .si-locations__editor-note { grid-column: 1 / -1; margin: 0; color: var(--si-locations-muted); font-size: 12px; line-height: 1.6; }
.si-locations--editor .si-locations__editor-warning { color: var(--si-locations-amber); }

@container si-locations (max-width: 680px) {
  .si-locations__copy, .si-locations__card { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .si-locations { padding: 40px 20px; }
  .si-locations__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .si-locations .si-locations__title { margin-bottom: 20px; font-size: clamp(32px, 9vw, 44px); }
  .si-locations .si-locations__eyebrow { margin-bottom: 14px; }
  .si-locations .si-locations__text { font-size: 16px; line-height: 1.65; }
  .si-locations__details { padding: 24px; }
  .si-locations.si-locations--editor { padding: 24px; }
}
@media (forced-colors: active) {
  .si-locations__card, .si-locations__art { border-color: CanvasText; }
  .si-locations .si-locations__link { border-color: LinkText; }
}
