/* Country hub hero map (UPDATE-10, V2-Australia-Hub-B) */
.fx-hero.is-map .fx-hero__grid { grid-template-columns: minmax(0, 1fr) 540px; gap: 56px; }
.fx-hero.is-map .fx-h1 { font-size: 48px; max-width: 700px; }
.fx-hero.is-map .fx-hero__visual { justify-self: stretch; min-width: 0; }
.fx-cmap { display: flex; flex-direction: column; gap: 10px; }
.fx-cmap__box { position: relative; height: 560px; overflow: hidden; border-radius: 30px; background: linear-gradient(160deg, #F7F6FF, #EEEBFE); border: 1px solid var(--line); box-shadow: 0 50px 80px -60px rgba(23, 17, 46, .5); }
.fx-cmap__bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
.fx-cmap__pin { position: absolute; z-index: 1; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--ink); text-decoration: none; transform: translate(-50%, -50%); transition: transform 200ms var(--ease); }
.fx-cmap__pin:hover, .fx-cmap__pin:focus-visible { color: var(--ink); transform: translate(-50%, -50%) scale(1.06); }
.fx-cmap__pin:focus-visible { outline: none; }
.fx-cmap__pin:focus-visible .fx-cmap__name { outline: 3px solid var(--violet); outline-offset: 2px; }
.fx-cmap__ph { position: relative; width: 72px; height: 72px; overflow: hidden; border-radius: 50%; border: 4px solid #fff; background: #EEEBF5; box-shadow: 0 18px 30px -16px rgba(23, 17, 46, .6); }
.fx-cmap__pin.is-primary { z-index: 2; }
.fx-cmap__pin.is-primary .fx-cmap__ph { width: 92px; height: 92px; outline: 3px solid var(--violet); outline-offset: 3px; }
.fx-cmap__ph .fx-place-photo, .fx-cmap__ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fx-cmap__name { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #fff; font-size: 13px; font-weight: 700; white-space: nowrap; box-shadow: 0 8px 18px -12px rgba(23, 17, 46, .6); }
.fx-cmap__name i { width: 7px; height: 7px; border-radius: 2px; background: #EE5A3A; }
.fx-cmap__label { position: absolute; left: 18px; top: 16px; right: 18px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--violet); }
.fx-cmap__scale { position: absolute; right: 16px; bottom: 14px; font-family: var(--font-mono); font-size: 10.5px; color: #7A7395; }
.fx-cmap__office { position: absolute; left: 18px; bottom: 16px; display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: var(--ink); color: #fff; font-size: 12.5px; }
.fx-cmap__office i { width: 8px; height: 8px; border-radius: 2px; background: #EE5A3A; }
.fx-cmap__credit { margin: 0; text-align: right; font-size: 12.5px; color: var(--muted); }
.fx-cmap__credit a { color: var(--muted); text-decoration: underline; text-underline-offset: 2px; }
.fx-cmap__credit a:hover { color: var(--violet); }
@media (max-width: 1180px) {
	.fx-hero.is-map .fx-hero__grid { grid-template-columns: minmax(0, 1fr) 460px; gap: 40px; }
	.fx-hero.is-map .fx-h1 { font-size: 44px; }
}
@media (max-width: 960px) {
	.fx-hero.is-map .fx-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
	.fx-cmap__box { height: 420px; border-radius: 24px; }
	/* Shorter box: pull the pins up a little so the lowest label clears the office pill. */
	.fx-cmap__pin { scale: .8; top: calc(var(--y) * .84% + 4%); }
	.fx-cmap__credit { text-align: left; }
}
@media (max-width: 600px) {
	.fx-hero.is-map .fx-h1 { font-size: 36px; line-height: 1.04; }
	.fx-cmap__label { font-size: 10px; }
	.fx-cmap__office { font-size: 11.5px; padding: 7px 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.fx-cmap__pin { transition: none; }
	.fx-cmap__pin:hover, .fx-cmap__pin:focus-visible { transform: translate(-50%, -50%); }
}
