/* All globe styles are scoped; this file loads only on Photography. */
.destination-globe {
  --globe-pin: #dac995;
  --globe-label: #e8e6dd;
  --globe-height: 610px;
  position: relative;
  margin: -25px auto 10px;
  max-width: 1050px;
}
.destination-globe__stage {
  position: relative;
  height: var(--globe-height);
  isolation: isolate;
  touch-action: pan-y;
  border-radius: 24px;
  background: radial-gradient(ellipse at center, #20333c23, transparent 64%);
}
.destination-globe__canvas { width: 100%; height: 100%; display: block; cursor: grab; touch-action: pan-y; }
.destination-globe__canvas:active { cursor: grabbing; }
.destination-globe__fallback { position: absolute; width: min(82%, 480px); height: auto; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.destination-globe__markers { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.destination-globe__dot, .destination-globe__leader, .destination-globe__pin { position: absolute; top: 0; left: 0; }
/* Geographic dots are fixed; named targets may be offset with leader lines. */
.destination-globe__dot {
  z-index: 1; width: 12px; height: 12px; margin: -6px; border: 1px solid #fffbd8;
  background: var(--globe-pin); border-radius: 50%; cursor: pointer; pointer-events: auto;
  box-shadow: 0 0 0 4px #dac9951c, 0 0 16px #e4c78070;
  transition: box-shadow .25s, background .25s;
}
.destination-globe__dot.is-highlighted { background: #fff3c4; box-shadow: 0 0 0 6px #dac99535, 0 0 23px #e4c780aa; }
.destination-globe__leader { height: 1px; background: #dac99570; transform-origin: left center; }
.destination-globe__pin {
  z-index: 2; width: max-content; min-height: 44px; max-width: calc(50% - 12px);
  padding: 7px 11px; gap: 8px; display: flex; align-items: center;
  pointer-events: auto; cursor: pointer; touch-action: pan-y; text-decoration: none;
  color: var(--globe-label); border: 1px solid #dac99540; border-radius: 6px;
  background: #0b121be8; box-shadow: 0 3px 15px #0003;
  transition: border-color .2s, background .2s, box-shadow .2s;
}
.destination-globe__pin[data-side="left"] { flex-direction: row-reverse; }
.destination-globe__pin::before {
  content: ''; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%;
  background: var(--globe-pin); box-shadow: 0 0 7px #dac99560;
}
.destination-globe__pin:hover, .destination-globe__pin.is-selected, .destination-globe__pin.is-highlighted {
  z-index: 3; border-color: #dac995aa; background: #17222bf2; box-shadow: 0 0 18px #dac99520;
}
.destination-globe__label { display: block; white-space: nowrap; font: 12px/1.5 var(--font-body); letter-spacing: .025em; }
.destination-globe__selection { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); z-index: 4; width: max-content; max-width: calc(100% - 24px); padding: 12px 38px 12px 18px; border: 1px solid #dac99555; border-radius: 8px; background: #0c141aef; text-align: center; box-shadow: 0 12px 40px #0007; }
.destination-globe__selection span { display: block; font-size: 14px; }
.destination-globe__selection a { display: inline-block; padding: 8px 10px; color: var(--globe-pin); font-size: 13px; }
.destination-globe__selection button { position: absolute; top: 3px; right: 3px; min-width: 32px; min-height: 32px; border: 0; background: transparent; }
.destination-globe__controls { display: flex; justify-content: center; align-items: center; gap: 12px; color: #b3b8b9; font-size: 11px; letter-spacing: .04em; margin: 0 0 20px; }
.destination-globe__controls button { min-width: 36px; min-height: 36px; border: 1px solid #78838838; border-radius: 20px; background: #0e1518; padding: 6px 12px; font-size: 11px; }
.destination-globe__controls button:hover { color: #fff; border-color: #dac99577; }
.destination-globe__links {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px;
  padding: 20px 0 8px; margin-top: 15px;
}
.destination-globe__links a {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 0; gap: 12px; padding: 25px 14px 20px; text-align: center;
  text-decoration: none; color: var(--globe-label); border: 1px solid #dac99530;
  border-radius: 10px; background: linear-gradient(155deg, #141c21, #080b0e);
  transition: border-color .25s, box-shadow .25s, background .25s;
}
.destination-globe__flag { width: 74px; height: 74px; object-fit: contain; border-radius: 6px; box-shadow: 0 5px 20px #0005; }
.destination-globe__card-name { font: 600 12px/1.6 var(--font-display); letter-spacing: .025em; }
.destination-globe__card-action { color: #bfb18a; font: 11px/1.6 var(--font-body); letter-spacing: .06em; }
.destination-globe__card-action span { display: inline-block; margin-left: 5px; }
.destination-globe__links a:hover, .destination-globe__links a.is-highlighted, .destination-globe__links a:focus-visible {
  border-color: #dac99599; background: linear-gradient(155deg, #202a2e, #101519); box-shadow: 0 0 22px #dac99510;
}
@media (max-width: 700px) {
  .destination-globe__links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 600px) {
  .destination-globe { --globe-height: 430px; margin-top: -18px; }
  .destination-globe__controls { gap: 8px; flex-wrap: wrap; }
  .destination-globe__pin { padding: 6px 7px; gap: 5px; border-radius: 5px; }
  .destination-globe__label { font-size: 11px; letter-spacing: 0; }
  .destination-globe__links a { padding: 20px 9px 16px; gap: 10px; }
  .destination-globe__flag { width: 64px; height: 64px; }
  .destination-globe__card-name { font: 600 13px/1.5 var(--font-body); }
}
@media (prefers-reduced-motion: reduce) {
  .destination-globe *, .destination-globe *::before { transition: none; }
}

.destination-globe.has-selection .destination-globe__stage { margin-bottom: 112px; }
