.world-map-wrap {
  background: radial-gradient(circle at 48% 48%, rgba(212, 175, 55, .18), transparent 55%), linear-gradient(145deg, rgba(43, 35, 25, .98), rgba(8, 8, 7, .98));
}

.world-map-wrap img {
  opacity: .92;
  filter: saturate(.78) brightness(.82) contrast(1.12) drop-shadow(0 2px 14px rgba(0, 0, 0, .62));
}

.map-canvas { position: relative; width: 100%; aspect-ratio: 2048 / 1038.75; transform-origin: center; transition: transform .22s ease; will-change: transform; }
.map-canvas::after { content:"© by Mountain-Smoke.ch"; position:absolute; z-index:3; right:1.4%; top:1.5%; padding:.3rem .48rem; border-radius:2px; background:rgba(43,28,15,.68); color:#f0dbaf; font:700 .52rem/1.1 "Courier New",monospace; letter-spacing:.04em; pointer-events:none; }
.map-canvas > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.map-canvas.is-zoomed { cursor: grab; touch-action: none; }
.map-canvas.is-dragging { cursor: grabbing; transition: none; }
.world-map-wrap.is-zoomed { cursor: grab; touch-action: none; user-select: none; }
.world-map-wrap.is-zoomed img { pointer-events: none; -webkit-user-drag: none; }
.world-map-wrap.is-zoomed:has(.map-canvas.is-dragging) { cursor: grabbing; }

.map-zoom-controls { position: absolute; z-index: 5; left: 1.5rem; bottom: 1.15rem; display: flex; overflow: hidden; border: 1px solid rgba(212,175,55,.35); border-radius: 12px; background: rgba(8,8,7,.88); box-shadow: 0 8px 24px rgba(0,0,0,.38); backdrop-filter: blur(8px); }
.map-zoom-controls button { min-width: 38px; height: 36px; padding: 0 .65rem; border: 0; border-right: 1px solid rgba(212,175,55,.22); background: transparent; color: var(--gold); cursor: pointer; font: 800 .78rem/1 inherit; }
.map-zoom-controls button:last-child { border-right: 0; }
.map-zoom-controls button:hover,.map-zoom-controls button:focus-visible { background: rgba(212,175,55,.16); color: var(--text); outline: 0; }
.map-zoom-controls button:disabled { opacity: .36; cursor: default; }

.country-detail-head > div {
  min-width: 0;
}

.country-select-wrap { display:grid; gap:.4rem; margin:0 0 1.2rem; }
.country-select-wrap > span { color:var(--gold); font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.country-select-wrap select { width:100%; padding:.82rem 2.7rem .82rem .95rem; border:1px solid rgba(212,175,55,.4); border-radius:12px; background:#17120d; color:var(--text); font:700 .84rem Inter,Arial,sans-serif; cursor:pointer; outline:none; }
.country-select-wrap select:hover,.country-select-wrap select:focus-visible { border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.11); }

.country-detail h2 {
  max-width: 100%;
  font-size: clamp(1.65rem, 2.2vw, 2.25rem);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.country-industry {
  display: grid;
  gap: .75rem;
  margin-top: 1.35rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(212, 175, 55, .2);
}

.country-industry > div {
  padding: .85rem 1rem;
  border: 1px solid rgba(212, 175, 55, .16);
  border-radius: 12px;
  background: rgba(255, 255, 255, .025);
}

.country-industry h3 {
  margin: 0 0 .5rem;
  color: var(--gold);
  font-family: Cinzel, Georgia, serif;
  font-size: .76rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.country-industry ul {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.country-industry li {
  padding: .35rem .55rem;
  border-radius: 8px;
  background: rgba(212, 175, 55, .09);
  color: var(--text);
  font-size: .72rem;
  line-height: 1.35;
}
.country-industry li a { color:inherit; text-decoration:none; border-bottom:1px solid rgba(91,53,23,.48); transition:color .18s ease,border-color .18s ease; }
.country-industry li a::after { content:" ↗"; font-size:.82em; }
.country-industry li a:hover,.country-industry li a:focus-visible { color:#5b3517; border-color:#5b3517; outline:0; }

.map-canvas .map-marker { width: 18px; height: 18px; font-size: .36rem; transform: translate(-50%,-50%) scale(var(--marker-counter-scale,1)); box-shadow:0 0 0 4px rgba(212,175,55,.1),0 5px 12px rgba(0,0,0,.45); }
.map-canvas .map-marker:hover,.map-canvas .map-marker:focus-visible,.map-canvas .map-marker.active { transform: translate(-50%,-50%) scale(var(--marker-counter-scale,1)); }
.map-marker.cuba { left: 25.34%; top: 36.66%; }
.map-marker.dominican { left: 27.81%; top: 38.38%; }
.map-marker.honduras { left: 23.25%; top: 41.01%; }
.map-marker.nicaragua { left: 23.45%; top: 42.02%; }
.map-marker.ecuador { left: 25.26%; top: 51.11%; }
.map-marker.brazil { left: 31.89%; top: 58.84%; }
.map-marker.mexico { left: 19.75%; top: 35.35%; }
.map-marker.cameroon { left: 50.35%; top: 45.48%; }
.map-marker.indonesia { left: 79.74%; top: 51.51%; }
.map-marker.connecticut { left: 27.3%; top: 24.5%; }
.map-marker.switzerland { left: 49.32%; top: 21.05%; }
.map-marker.costarica { left: 23.67%; top: 43.97%; }
.map-marker.panama { left: 24.77%; top: 44.78%; }
.map-marker.peru { left: 26.21%; top: 55.71%; }
.map-marker.africa { left: 54.95%; top: 61.71%; }

@media (max-width: 620px) {
  .map-zoom-controls { left: .75rem; bottom: .65rem; }
  .map-zoom-controls button { min-width: 34px; height: 32px; padding: 0 .5rem; font-size: .68rem; }
  .country-detail-head { align-items: flex-start; gap: .8rem; }
  .country-code { flex-basis: 52px; width: 52px; height: 52px; }
  .country-detail h2 { font-size: clamp(1.45rem, 7vw, 2rem); }
  .map-canvas .map-marker { width: 17px; height: 17px; font-size: .34rem; }
}
