/* =========================================================
   Where we operate – interactive map
   ========================================================= */

:root {
  --wwo-page-bg:      #e7e7e7;
  --wwo-sea:          #ffffff;
  --wwo-land:         #efefef;
  --wwo-border:       #ffffff;
  --wwo-active:       #027475;
  --wwo-active-hover: #01595a;
  --wwo-muted:        #9ac8c8;   /* non-operational (UK) */
  --wwo-muted-hover:  #7db6b6;
  --wwo-text:         #1e5859;
  --wwo-line:         #4f9c9c;
  --wwo-gold:         #bda554;
  --wwo-sans:  "Fira Sans", "Segoe UI", Arial, sans-serif;
  --wwo-serif: "Merriweather", Georgia, "Times New Roman", serif;
}

body {
  margin: 0;
  background: var(--wwo-page-bg);
}

.wwo {
  /*padding: 0 16px;*/
  font-family: var(--wwo-sans);
}

.wwo__card {
  position: relative;
  /*max-width: 992px;*/
  margin: 0 auto;
  background: var(--wwo-sea);
  /*border: 1px solid #d6d6d6;*/
  box-sizing: border-box;
  overflow: hidden;
  container-type: inline-size;
}

.wwo__map svg {
  display: block;
  width: 100%;
  height: auto;
}

/* ---------- Title ---------- */
.wwo__title {
  position: absolute;
  top: 7.4%;
  right: 5.7%;
  margin: 0;
  padding-bottom: 0.35em;
  font-family: var(--wwo-serif);
  font-weight: 700;
  font-size: 22px;
  font-size: clamp(14px, 2.35cqw, 24px);
  line-height: 1.1;
  color: var(--wwo-active);
  border-bottom: 1px solid var(--wwo-gold);
  pointer-events: none;
}

/* ---------- Countries ---------- */
.wwo-country {
  fill: var(--wwo-land);
  stroke: var(--wwo-border);
  stroke-width: 0.6;
  stroke-linejoin: round;
}

.wwo-country.is-active {
  fill: var(--wwo-active);
  cursor: pointer;
  transition: fill .2s ease;
}

.wwo-country.is-muted {
  cursor: pointer;
  transition: fill .2s ease;
  fill: var(--wwo-muted);
}

.wwo-country.is-active.is-hover,
.wwo-country.is-active.is-selected {
  fill: var(--wwo-active-hover);
}

.wwo-country.is-muted.is-hover,
.wwo-country.is-muted.is-selected {
  fill: var(--wwo-muted-hover);
}

/* ---------- Callouts (label, leader line, dot) ---------- */
.wwo-callout {
  cursor: pointer;
  outline: none;
}

.wwo-callout__line {
  stroke: var(--wwo-line);
  stroke-width: 0.6;
  fill: none;
  transition: stroke-width .2s ease;
}

.wwo-callout__dot {
  fill: #d9eeee;
  stroke: var(--wwo-line);
  stroke-width: 0.5;
  transition: r .2s ease;
}

.wwo-callout__pulse {
  fill: none;
  stroke: #ffffff;
  stroke-width: 1;
  opacity: 0;
}

.wwo-callout__label {
  font-family: var(--wwo-sans);
  font-size: 7.6px;
  fill: var(--wwo-text);
  transition: font-weight .2s ease;
}

.wwo-callout__label tspan.wwo-callout__note {
  font-style: italic;
}

.wwo-callout__hit {
  fill: transparent;
}

.wwo-callout.is-hover .wwo-callout__line,
.wwo-callout.is-selected .wwo-callout__line,
.wwo-callout:focus-visible .wwo-callout__line {
  stroke-width: 1.1;
  stroke: var(--wwo-active);
}

.wwo-callout.is-hover .wwo-callout__label,
.wwo-callout.is-selected .wwo-callout__label,
.wwo-callout:focus-visible .wwo-callout__label {
  font-weight: 500;
  fill: var(--wwo-active);
}

.wwo-callout.is-hover .wwo-callout__dot,
.wwo-callout.is-selected .wwo-callout__dot {
  r: 2.6;
  fill: #ffffff;
}

.wwo-callout.is-hover .wwo-callout__pulse,
.wwo-callout.is-selected .wwo-callout__pulse {
  animation: wwo-pulse 1.4s ease-out infinite;
}

@keyframes wwo-pulse {
  0%   { r: 2;  opacity: .9; }
  100% { r: 10; opacity: 0;  }
}

/* ---------- Tooltip ---------- */
.wwo__tooltip {
  position: absolute;
  z-index: 3;
  padding: 6px 10px;
  background: #ffffff;
  border-left: 3px solid var(--wwo-active);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .14);
  font-size: 13px;
  line-height: 1.3;
  color: var(--wwo-text);
  white-space: nowrap;
  pointer-events: none;
  transform: translate(-50%, calc(-100% - 12px));
}

.wwo__tooltip strong {
  display: block;
  font-weight: 500;
  color: var(--wwo-active);
}

.wwo__tooltip span {
  font-size: 11px;
  opacity: .8;
}

/* ---------- Info panel (on click) ---------- */
.wwo__panel {
  position: absolute;
  z-index: 4;
  right: 3%;
  bottom: 5%;
  width: 250px;
  max-width: calc(100% - 32px);
  box-sizing: border-box;
  padding: 16px 18px 14px;
  background: #ffffff;
  border-top: 3px solid var(--wwo-active);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .16);
  color: var(--wwo-text);
  animation: wwo-panel-in .25s ease;
}

.wwo__panel[hidden],
.wwo__tooltip[hidden] { display: none; }

@keyframes wwo-panel-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

.wwo__panel-close {
  position: absolute;
  top: 6px;
  right: 8px;
  border: 0;
  background: none;
  font-size: 20px;
  line-height: 1;
  color: #6b8f8f;
  cursor: pointer;
}

.wwo__panel-close:hover { color: var(--wwo-active); }

.wwo__panel-status {
  margin: 0 0 4px;
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--wwo-gold);
}

.wwo__panel-name {
  margin: 0 0 6px;
  font-family: var(--wwo-serif);
  font-size: 18px;
  color: var(--wwo-active);
}

.wwo__panel-text {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
}

/* ---------- Small screens ---------- */
@media (max-width: 600px) {
  .wwo { padding: 0; }
  .wwo__panel { right: 16px; bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .wwo-callout.is-hover .wwo-callout__pulse,
  .wwo-callout.is-selected .wwo-callout__pulse { animation: none; }
}
