/* Independent, responsive market map; original Robinson geometry. Colours follow the light palette of the logo:
   navy for the African markets, orange for the sourcing origins (China, Dubai), mist for other territories. */
.ba-markets-map { --ba-map-market: #042A5D; --ba-map-origin: #FF6600; margin: 0; border: 0; overflow: hidden; background: #F2F6FA; color: #1F304C; }
.ba-editorial .ba-markets-map { margin-bottom: 0; }
.ba-map-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; padding: clamp(28px, 3.4vw, 52px) clamp(20px, 3.4vw, 52px) 0; }
.ba-map-heading > div:first-child { display: flex; flex-direction: column; gap: 14px; max-width: 760px; min-width: 0; }
.ba-markets-map .ba-map-kicker { display: none; }
.ba-markets-map .ba-map-heading h2 { margin: 0; font-family: 'Jost', 'Futura', 'Century Gothic', 'Segoe UI', sans-serif; font-size: clamp(30px, 3vw, 44px); font-weight: 300; letter-spacing: -0.02em; line-height: 1.08; color: #042A5D; }
.ba-markets-map .ba-map-intro { margin: 0; max-width: 620px; font-size: 16px; line-height: 1.7; color: #3A4B66; }
.ba-map-controls { display: flex; flex-shrink: 0; gap: 4px; padding: 4px; border: 1px solid #C5D1DF; border-radius: 999px; background: #FFFFFF; }
.ba-map-controls[hidden] { display: none; }
.ba-map-controls button { min-height: 40px; padding: 8px 18px; border: 0; border-radius: 999px; background: transparent; color: #3A4B66; font: 500 14px/1.3 'Jost', 'Futura', 'Segoe UI', sans-serif; cursor: pointer; }
.ba-map-controls button[aria-pressed="true"] { background: #042A5D; color: #FFFFFF; }
.ba-map-controls button:hover { color: #042A5D; }
.ba-map-controls button[aria-pressed="true"]:hover { background: #0B3C7C; color: #FFFFFF; }
.ba-map-controls button:focus-visible { outline: 2px solid #042A5D; outline-offset: 3px; }
.ba-map-canvas { padding: 16px 16px 0; overflow: hidden; }
.ba-map-world { display: block; width: 100%; height: auto; aspect-ratio: 1080 / 500; max-height: 580px; overflow: hidden; }
.ba-map-country { fill: #DCE4EE; stroke: #F2F6FA; stroke-width: 0.65; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.ba-map-area { cursor: pointer; }
.ba-map-area--africa .ba-map-country { fill: var(--ba-map-market); stroke: #2A4C7E; }
.ba-map-area--china .ba-map-country, .ba-map-origin-country .ba-map-country { fill: var(--ba-map-origin); stroke: #FF8A3D; }
.ba-map-area.is-highlighted .ba-map-country { fill: #0B3C7C; stroke: #0B3C7C; stroke-width: 1.1; }
.ba-map-area--china.is-highlighted .ba-map-country { fill: #D95600; stroke: #D95600; }
.ba-map-area:focus { outline: none; }
.ba-map-area:focus-visible .ba-map-country { stroke: #042A5D; stroke-width: 2; }
.ba-map-connections { pointer-events: none; }
.ba-map-connections > path { fill: none; stroke: #042A5D; stroke-width: 1.6; stroke-dasharray: 5 5; opacity: 0.8; vector-effect: non-scaling-stroke; }
.ba-map-pin-target { fill: transparent; stroke: none; }
.ba-map-pin-halo { fill: #FFFFFF; stroke: #FF6600; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ba-map-pin { fill: #FF6600; stroke: #FFFFFF; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ba-map-area--dubai.is-highlighted .ba-map-pin-halo, .ba-map-area--dubai:focus-visible .ba-map-pin-halo { stroke: #042A5D; stroke-width: 2.5; }
.ba-map-area--dubai.is-highlighted .ba-map-pin { fill: #D95600; }
.ba-map-labels { pointer-events: none; }
.ba-map-labels text { fill: #042A5D; font: 500 15px/1.4 'Jost', 'Futura', 'Segoe UI', sans-serif; paint-order: stroke; stroke: #F2F6FA; stroke-width: 3.5; stroke-linejoin: round; }
.ba-map-labels .ba-map-label--africa { fill: #FFFFFF; stroke: #042A5D; font-size: 17px; }
.ba-map-labels > path { fill: none; stroke: #042A5D; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ba-map-caption { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 22px clamp(20px, 3.4vw, 52px); border-top: 1px solid #DCE4EE; background: #FFFFFF; }
.ba-markets-map .ba-map-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; margin: 0; padding: 0; list-style: none; }
.ba-map-legend li { display: flex; align-items: center; gap: 10px; font-size: 14px; line-height: 1.6; color: #3A4B66; }
.ba-map-legend i { display: inline-block; flex-shrink: 0; width: 12px; height: 12px; border-radius: 50%; background: #DCE4EE; }
.ba-map-legend i.ba-map-swatch--origin { background: var(--ba-map-origin); }
.ba-map-legend i.ba-map-swatch--market { background: var(--ba-map-market); }
.ba-markets-map .ba-map-status { max-width: 340px; min-height: 3.2em; margin: 0; font-size: 14px; line-height: 1.6; color: #5E6E86; text-align: right; }
.ba-map-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding: 26px clamp(20px, 3.4vw, 52px); border-top: 1px solid #DCE4EE; background: #FFFFFF; }
.ba-markets-map .ba-map-summary p { margin: 0; font-size: 15px; line-height: 1.6; color: #3A4B66; }
.ba-map-summary strong, .ba-map-summary span { display: block; }
.ba-map-summary strong { margin-bottom: 6px; font-family: 'Jost', 'Futura', 'Segoe UI', sans-serif; font-size: 23px; font-weight: 400; letter-spacing: -0.01em; line-height: 1.2; color: #042A5D; }
.ba-markets-map .ba-map-note { margin: 0; padding: 18px clamp(20px, 3.4vw, 52px); border-top: 1px solid #DCE4EE; background: #FFFFFF; font-size: 13px; line-height: 1.7; color: #5E6E86; }
.ba-markets-map.is-africa-view .ba-map-world { aspect-ratio: 350 / 330; max-height: 620px; }
@media (max-width: 900px) {
  .ba-map-heading { display: block; }
  .ba-map-controls { width: fit-content; margin-top: 22px; }
  .ba-map-caption { display: block; }
  .ba-markets-map .ba-map-status { max-width: none; min-height: 1.6em; margin-top: 14px; text-align: left; }
  .ba-map-summary { gap: 22px; }
}
@media (max-width: 620px) {
  .ba-map-canvas { padding: 18px 0 8px; }
  .ba-map-world { min-height: 200px; }
  .ba-map-summary { grid-template-columns: 1fr; gap: 16px; }
  .ba-map-summary p + p { padding-top: 16px; border-top: 1px solid #DCE4EE; }
  .ba-map-legend { gap: 10px 16px; }
  .ba-markets-map.is-africa-view .ba-map-world { min-height: 315px; max-height: 460px; }
}
