[data-outremer-panel][hidden] { display: none; }
.overseas-overview { padding-bottom: var(--space-4); }
.overseas-basins { margin-bottom: var(--space-6); display: flex; flex-wrap: wrap; gap: var(--space-2); }
.overseas-grid--selectable { margin-top: var(--space-4); }
.overseas-card--button {
  position: relative;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: default;
}
.overseas-card__select {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.overseas-card--button:has(.overseas-card__select:hover),
.overseas-card--button:has(.overseas-card__select:focus-visible) { border-color: var(--ink); background: var(--blue-light); }
.overseas-card__select:focus-visible { outline-offset: -4px; }
.overseas-card--button.is-active { border-color: var(--ink); box-shadow: inset 4px 0 0 var(--ink); }
.overseas-card[data-place-id="polynesie"] .overseas-card__territory,
.overseas-card[data-place-id="saint-pierre-miquelon"] .overseas-card__territory {
  font-size: clamp(.62rem, 2vw, .76rem);
  letter-spacing: .02em;
  white-space: nowrap;
}
.overseas-card__local-time { color: var(--ink-soft); font-size: .78rem; font-weight: 650; }
.territory-map {
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(7rem, 1fr) auto;
  align-items: center;
  gap: var(--space-2);
}
.territory-map__world {
  position: relative;
  min-width: 0;
  grid-column: 1 / -1;
  display: block;
  overflow: hidden;
  border: 1px solid #bfd2d5;
  border-radius: var(--radius-sm);
  background: #edf3f4;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 55%);
}
.territory-map__world img { display: block; width: 100%; height: auto; }
.territory-map__world.is-interactive { height: clamp(10rem, 17vw, 12rem); }
.territory-map__canvas.maplibregl-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.territory-map__loading,
.territory-map__error {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: var(--space-3);
  display: grid;
  place-items: center;
  color: var(--ink-soft);
  background: #edf3f4;
  font-size: .75rem;
  text-align: center;
}
.territory-map__dynamic-marker {
  display: block;
  width: 15px;
  height: 15px;
  border: 3px solid white;
  border-radius: 50%;
  background: var(--page-accent);
  box-shadow: 0 1px 5px rgb(11 42 74 / 55%);
}
.territory-map__world .maplibregl-ctrl-attrib { font-size: .55rem; }
.territory-map__region {
  max-width: 8rem;
  color: var(--ink-soft);
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.25;
}
.territory-map__explore {
  min-height: 36px;
  padding: .35rem .6rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: white;
  font-size: .72rem;
  font-weight: 750;
  cursor: pointer;
}
.territory-map__explore:hover,
.territory-map__explore:focus-visible { border-color: var(--ink); background: var(--blue-light); }
.overseas-detail { padding-top: var(--space-6); }
.overseas-current {
  padding: clamp(1.25rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5, 1.25rem);
  background: var(--surface-soft);
}
.overseas-current h2 { margin-bottom: var(--space-1); }
.overseas-current p { margin-bottom: 0; }
.overseas-current__reading { display: flex; align-items: center; gap: var(--space-4); }
.overseas-current__reading .weather-symbol { flex: 0 0 auto; width: 4.5rem; height: 4.5rem; }
.overseas-current__reading p { display: grid; }
.overseas-current__reading strong { font-size: clamp(2.8rem, 8vw, 4.5rem); font-weight: 400; line-height: .9; }
.overseas-current__reading span:last-child { margin-top: var(--space-2); font-weight: 750; }
.overseas-current__details {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}
.overseas-current__details div { min-width: 0; }
.overseas-current__details dt { color: var(--ink-soft); font-size: .72rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.overseas-current__details dd { margin: var(--space-1) 0 0; font-weight: 800; }
.overseas-radar-link { align-self: end; }
.overseas-radar-link a { display: inline-flex; min-height: 40px; padding: .45rem .85rem; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); text-decoration: none; }
.overseas-forecast-heading { margin-top: var(--space-8); }
.overseas-hourly .weather-icon { width: 2.15rem; height: 2.15rem; }
.overseas-hourly td { min-width: 76px; }
.overseas-hourly .wind-arrow { margin-inline: auto; }

@media (min-width: 48rem) {
  .overseas-current { grid-template-columns: minmax(12rem, 1.1fr) minmax(12rem, .8fr); }
  .overseas-current__details { grid-column: 1 / -1; grid-template-columns: repeat(4, 1fr); }
  .overseas-radar-link { grid-column: 1 / -1; }
}

@media (max-width: 40rem) {
  .overseas-grid,
  .overseas-card--button { max-width: calc(100vw - (2 * var(--gutter))); }
  .overseas-grid { grid-template-columns: minmax(0, 1fr); }
  .territory-map { grid-template-columns: minmax(0, 1fr); }
  .territory-map__region { max-width: none; }
}

@media (min-width: 64rem) {
  .overseas-current { grid-template-columns: 1fr .8fr 1.15fr; align-items: center; }
  .overseas-current__details { grid-column: auto; }
  .overseas-radar-link { grid-column: 1 / -1; }
}
