.home-destinations {
  --destination-ink: #273129;
  --destination-green: #b8cf4b;
  --destination-cream: #f2eed8;
  background: var(--destination-cream);
  color: var(--destination-ink);
  padding: clamp(72px, 8vw, 132px) 0;
}

.home-destinations * { box-sizing: border-box; }

.home-destinations__inner {
  width: min(1440px, calc(100% - 80px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(360px, 0.9fr) minmax(560px, 1.15fr);
  gap: clamp(56px, 7vw, 118px);
  align-items: center;
}

.home-destinations__left { min-width: 0; }
.home-destinations__copy { position: relative; z-index: 2; max-width: 520px; }
.home-destinations__eyebrow {
  margin: 0 0 12px;
  color: #667329;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
}
.home-destinations h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4.1vw, 68px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.035em;
}
.home-destinations__copy > p:not(.home-destinations__eyebrow) {
  max-width: 480px;
  margin: 22px 0 0;
  font-size: 16px;
  line-height: 1.8;
}
.home-destinations__all {
  width: fit-content;
  margin-top: 30px;
  padding: 15px 20px;
  display: inline-flex;
  align-items: center;
  gap: 28px;
  background: var(--destination-green);
  color: #202a20;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease;
}
.home-destinations__all:hover,
.home-destinations__all:focus-visible { background: #273129; color: #fff; }

.japan-map {
  position: relative;
  width: min(100%, 470px);
  aspect-ratio: 1940 / 2200;
  margin: -36px auto 0;
  isolation: isolate;
}
.japan-map > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(78%) sepia(45%) saturate(654%) hue-rotate(28deg) brightness(92%) contrast(86%);
  opacity: .9;
}
.japan-map__markers { position: absolute; inset: 0; z-index: 2; }
.japan-map__marker {
  position: absolute;
  left: var(--marker-left);
  top: var(--marker-top);
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  text-decoration: none;
}
.japan-map__marker span {
  width: 9px;
  height: 9px;
  display: block;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #38402b;
  box-shadow: 0 0 0 3px rgba(56, 64, 43, .24);
  transition: transform .2s ease, background-color .2s ease;
}
.japan-map__marker:hover span,
.japan-map__marker:focus-visible span,
.japan-map__marker.is-active span { transform: scale(1.65); background: #111; }
.japan-map__marker:focus-visible { outline: 2px solid #273129; outline-offset: 3px; }

.home-destinations__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: #fff;
}
.destination-card { color: var(--destination-ink); text-decoration: none; min-width: 0; }
.destination-card figure { margin: 0; overflow: hidden; background: #fff; }
.destination-card img {
  width: 100%;
  aspect-ratio: 1.56 / 1;
  display: block;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.2,.65,.3,1), opacity .25s ease;
}
.destination-card figcaption {
  min-height: 45px;
  padding: 0 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-right: 1px solid #ecebdd;
  border-bottom: 1px solid #ecebdd;
  background: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(14px, 1.2vw, 18px);
  line-height: 1.2;
}
.destination-card__arrow { color: #788532; font-family: Arial, sans-serif; }
.destination-card:hover img,
.destination-card:focus-visible img,
.destination-card.is-active img { transform: scale(1.055); opacity: .87; }
.destination-card:hover figcaption,
.destination-card:focus-visible figcaption,
.destination-card.is-active figcaption { background: var(--destination-green); }
.destination-card:focus-visible { outline: 3px solid #273129; outline-offset: -3px; }

@media (max-width: 1100px) {
  .home-destinations__inner { grid-template-columns: 1fr; gap: 52px; }
  .home-destinations__left { display: grid; grid-template-columns: 1fr minmax(300px, 430px); align-items: center; gap: 40px; }
  .japan-map { margin: 0 auto; }
}

@media (max-width: 700px) {
  .home-destinations { padding: 64px 0; }
  .home-destinations__inner { width: min(100% - 32px, 560px); gap: 42px; }
  .home-destinations__left { display: block; }
  .japan-map { width: min(92%, 390px); margin-top: 28px; }
  .home-destinations__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .destination-card figcaption { min-height: 42px; padding: 0 10px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-destinations__all,
  .japan-map__marker span,
  .destination-card img { transition: none; }
}
