/* Small fit-and-finish corrections; preserve the approved layout and theme. */
main > section .section-heading .eyebrow {
  display: block;
  margin-bottom: 12px;
}
main > section .section-heading h2 {
  display: block;
  max-width: 100%;
  margin-inline: auto;
  text-wrap: balance;
}
main > section .section-heading p:not(.eyebrow) {
  max-width: 680px;
  line-height: 1.65;
}

/* Keep all three booking actions on a common baseline. */
#packages .package-card { display: flex; flex-direction: column; }
#packages .package-slideshow { flex: none; }
#packages .package-body { display: flex; flex-direction: column; flex: 1; }
#packages .package-body .package-foot {
  margin-top: auto !important;
  padding-top: 10px;
}

/* Give the wide resort photograph a little more room, with no distortion. */
#about.nadi-why .why-hero-card { grid-template-rows: auto 1fr; }
#about.nadi-why .why-hero-media {
  height: clamp(260px, 25vw, 350px);
  min-height: 0;
}
#about.nadi-why .why-hero-media img { object-fit: cover; object-position: center; }
#about.nadi-why .why-hero-media .why-slide { min-height: 0; }
.activity-slide img { display: block; object-fit: cover; }
.activity-overlay h3 { font-size: clamp(20px, 1.8vw, 27px); line-height: 1.2; }

/* Consistent caption baselines and aligned route-card actions. */
.photo-gallery .gallery-item { display: flex; flex-direction: column; }
.photo-gallery .gallery-item img { flex: none; }
.photo-gallery .gallery-item figcaption { flex: 1; display: grid; place-items: center; }
.photo-gallery .gallery-item:first-child { grid-column: 1 / -1; overflow: hidden; }
.photo-gallery .gallery-item:first-child img { height: clamp(300px, 33vw, 440px); aspect-ratio: auto; }
.photo-gallery .gallery-item:first-child figcaption {
  position: absolute;
  inset: auto 0 0;
  display: block;
  padding: 56px 24px 20px;
  background: linear-gradient(transparent, rgba(7, 21, 16, .75));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}
#reach .reach-card { display: flex; flex-direction: column; }
#reach .reach-content { display: flex; flex-direction: column; flex: 1; }
#reach .reach-content .btn { margin-top: auto; }

@media (min-width: 901px) and (max-width: 1199px) {
  .top-nav .nav-links { gap: 3px; }
  .top-nav .nav-links a { padding-inline: 6px !important; font-size: 12px !important; }
}

@media (max-width: 640px) {
  /* Retain the same panels, with an even 12px mobile gutter. */
  .site-header .top-nav,
  .site-header .hero,
  .site-header .moving-notice,
  main > section.wrap,
  .site-footer.wrap { width: calc(100% - 24px) !important; margin-inline: auto; }
  main > section .section-heading h2 { max-width: 100% !important; }
  main > section .section-heading { padding-inline: 14px; }
  #about.nadi-why .why-hero-media { height: auto; aspect-ratio: 3 / 2; }
  #packages .package-points { gap: 6px; }
  #reach .reach-content .btn { width: 100%; }
  .photo-gallery .gallery-item:first-child img { height: 260px; }
  .photo-gallery .gallery-item:first-child figcaption { padding: 45px 16px 14px; font-size: 15px; text-align: left; }
  .photo-showcase .photo-feature img[width="1920"][height="1080"],
  .photo-gallery .gallery-item img[width="1920"][height="1080"] {
    animation: widePhotoPhonePan 18s ease-in-out alternate infinite;
  }
  .footer-info a,
  .footer-icon-link span { overflow-wrap: anywhere; }
}
@keyframes widePhotoPhonePan {
  from { object-position: left center; }
  to { object-position: right center; }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .photo-showcase .photo-feature img[width="1920"][height="1080"],
  .photo-gallery .gallery-item img[width="1920"][height="1080"] { animation: none; }
}
@media (max-width: 380px) {
  .photo-gallery .gallery-item:first-child { grid-column: 1; }
}
