/* Safari Packages + Day Tours: listing refinements to match the Lodges & Camps pages.
   Loaded only on those two pages (fd-listing-pages.php). Every rule is scoped to the
   intro (.fdTermIntro), feature boxes (.fdFeatGrid) and tour list (.bt_bb_tour_list);
   the CTA section (.fdTermCta) and the footer are not targeted. */

.fdListing {
  --fdl-ac: #1bbed1;
  --fdl-ac2: #119fb0;
  --fdl-navy: #0f2a3a;
  --fdl-ink: #181818;
  --fdl-mut: #5f6b73;
  --fdl-line: #e8edf0;
  --fdl-soft: #f4f8f9;
}

/* ---------- Intro ---------- */
.fdListing .fdTermIntro .bt_bb_headline_tag { line-height: 1.15; }
.fdListing .fdTermIntro .bt_bb_headline_superheadline { letter-spacing: .14em; margin-bottom: .6em; }
.fdListing .fdTermIntro .bt_bb_headline_subheadline { max-width: 62ch; margin: 1em auto 0; line-height: 1.65; color: var(--fdl-mut); }

/* ---------- Feature boxes ---------- */
.fdListing .fdFeatGrid .bt_bb_row_holder { gap: 20px; align-items: stretch; }
.fdListing .fdFeat > .bt_bb_column_content {
  height: 100%;
  padding: 24px 22px 20px !important;
  background: #fff;
  border: 1px solid var(--fdl-line);
  border-radius: 18px;
  transition: transform .25s, box-shadow .25s;
}
.fdListing .fdFeat > .bt_bb_column_content:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -28px rgba(15,42,58,.5); }
.fdListing .fdFeat .bt_bb_headline_tag { font-size: 17px; line-height: 1.3; margin: 0 0 12px; color: var(--fdl-ink); }
.fdListing .fdFeat .bt_bb_text p { margin: 0 0 12px; line-height: 1.65; opacity: 1; color: var(--fdl-mut); }
.fdListing .fdFeat .bt_bb_text ul { list-style: none; margin: 0; padding: 0; }
.fdListing .fdFeat .bt_bb_text li { margin: 0; padding: 0; border-top: 1px solid var(--fdl-line); }
.fdListing .fdFeat .bt_bb_text li:first-child { border-top: 0; }
.fdListing .fdFeat .bt_bb_text li a {
  display: block;
  padding: 8px 2px;
  line-height: 1.4;
  color: var(--fdl-ink);
  text-decoration: none;
  transition: color .2s, padding-left .2s;
}
.fdListing .fdFeat .bt_bb_text li a:hover { color: var(--fdl-ac2); padding-left: 6px; }
.fdListing .fdFeat a:focus-visible { outline: 2px solid var(--fdl-ac); outline-offset: 2px; border-radius: 4px; }
.fdListing .fdFeat .bt_bb_button { margin-top: 4px; }

/* ---------- Tour list: grid ---------- */
.fdListing .bt_bb_tour_list .listing_results,
.fdListing .bt_bb_tour_list .listing_results > .port { padding-left: 0; padding-right: 0; }
.fdListing .bt_bb_tour_list .btTourList.btListDesignRegular {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
}
.fdListing .bt_bb_tour_list .btTourList .btSingleTourBlock {
  flex: none;
  max-width: none;
  width: auto;
  padding: 0;
  min-width: 0;
  transform: none;
}

/* ---------- Tour list: card ---------- */
.fdListing .bt_bb_tour_list .btSingleTourBlock .btSingleTourBlockInner {
  height: 100%;
  background: #fff;
  border: 1px solid var(--fdl-line);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: none;
  transition: transform .25s, box-shadow .25s;
}
.fdListing .bt_bb_tour_list .btSingleTourBlock:hover .btSingleTourBlockInner,
.fdListing .bt_bb_tour_list .btSingleTourBlock:focus-within .btSingleTourBlockInner {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px -26px rgba(15,42,58,.5);
}

/* image: one consistent 3:2 frame, no distortion */
.fdListing .bt_bb_tour_list .btSingleTourImage .btImageWrapper { aspect-ratio: 3 / 2; overflow: hidden; background: #dfe7ea; }
.fdListing .bt_bb_tour_list .btSingleTourImage .btImageWrapper a { height: 100%; background: none; }
.fdListing .bt_bb_tour_list .btSingleTourImage .btImageWrapper img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transition: transform .6s, opacity .3s;
}
.fdListing .bt_bb_tour_list .btSingleTourBlock:hover .btImageWrapper img { transform: scale(1.05); }
.fdListing .bt_bb_tour_list .btSingleTourImage .btImageWrapper:before { display: none; }
.fdListing .bt_bb_tour_list .btSingleTourImage .btImageWrapper:after { display: none; }

/* price: pill on the photo, same style as the lodge page badges */
.fdListing .bt_bb_tour_list .btSingleTourPrice .btTourPrice {
  left: 12px;
  top: 12px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(15,42,58,.86);
  color: #fff;
  font: 800 15px/1 Montserrat, Arial, Helvetica, sans-serif;
  text-shadow: none;
  letter-spacing: 0;
}
.fdListing .bt_bb_tour_list .btSingleTourPrice .btTourPrice:after { display: none; }
.fdListing .bt_bb_tour_list .btSingleTourPrice .btTourPrice .from {
  display: inline-block;
  margin-right: 5px;
  font: 600 12px/1 Barlow, Arial, Helvetica, sans-serif;
  opacity: .85;
}
.fdListing .bt_bb_tour_list .btSingleTourPrice .btTourPrice ins { text-decoration: none; }

/* body: title, categories, duration */
.fdListing .bt_bb_tour_list .btSingleTourContent {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 8px;
  padding: 18px 18px 16px;
}
.fdListing .bt_bb_tour_list .btSingleTourContent .btSingleTourHeadline {
  display: block;
  margin: 0;
  max-height: none;
  overflow: visible;
  -webkit-line-clamp: unset;
  font: 700 17px/1.35 Montserrat, Arial, Helvetica, sans-serif;
  letter-spacing: -.01em;
  color: var(--fdl-ink);
}
.fdListing .bt_bb_tour_list .btSingleTourHeadline a { color: inherit; text-decoration: none; }
.fdListing .bt_bb_tour_list .btSingleTourHeadline a:hover { color: var(--fdl-ac2); }
.fdListing .bt_bb_tour_list .btSingleTourContent .btSingleTourCategories {
  display: block;
  margin: 0;
  max-height: none;
  overflow: visible;
  -webkit-line-clamp: unset;
  font: 500 14px/1.5 Barlow, Arial, Helvetica, sans-serif;
  color: var(--fdl-mut);
}
.fdListing .bt_bb_tour_list .btSingleTourCategories a { color: var(--fdl-mut); text-decoration: none; }
.fdListing .bt_bb_tour_list .btSingleTourCategories a:hover { color: var(--fdl-ac2); }
.fdListing .bt_bb_tour_list .btSingleTourContent .btSingleTourMeta {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--fdl-line);
  font: 600 14px/1.3 Barlow, Arial, Helvetica, sans-serif;
  color: var(--fdl-ink);
}
.fdListing .bt_bb_tour_list .btSingleTourMeta .btTourDuration { align-items: center; }
.fdListing .bt_bb_tour_list .btSingleTourMeta .btTourDuration:before { color: var(--fdl-ac); }

.fdListing .bt_bb_tour_list a:focus-visible { outline: 2px solid var(--fdl-ac); outline-offset: 2px; border-radius: 4px; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .fdListing .bt_bb_tour_list .btTourList.btListDesignRegular { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}
@media (max-width: 640px) {
  .fdListing .bt_bb_tour_list .btTourList.btListDesignRegular { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fdListing .fdFeat > .bt_bb_column_content { padding: 20px 18px 16px !important; }
  .fdListing .bt_bb_tour_list .btSingleTourContent { padding: 16px 16px 14px; }
  .fdListing .bt_bb_tour_list .btSingleTourContent .btSingleTourHeadline { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .fdListing .fdFeat > .bt_bb_column_content,
  .fdListing .bt_bb_tour_list .btSingleTourBlockInner,
  .fdListing .bt_bb_tour_list .btImageWrapper img { transition: none; }
  .fdListing .bt_bb_tour_list .btSingleTourBlock:hover .btSingleTourBlockInner,
  .fdListing .fdFeat > .bt_bb_column_content:hover { transform: none; }
  .fdListing .bt_bb_tour_list .btSingleTourBlock:hover .btImageWrapper img { transform: none; }
}

/* FD-FEAT-PHOTO-START: feature boxes with a photo header */
.fdListing .fdFeatImg > .bt_bb_column_content { overflow: hidden; }
.fdListing .fdFeatImg .bt_bb_text:first-child { margin: 0; }
.fdListing .fdFeatImg .fdCardPhoto {
  display: block;
  width: calc(100% + 44px);
  max-width: none;
  margin: -24px -22px 20px;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 17px 17px 0 0;
  transition: transform .6s;
}
.fdListing .fdFeatImg > .bt_bb_column_content:hover .fdCardPhoto { transform: scale(1.04); }
.fdListing .fdFeatImg .bt_bb_text:first-child { overflow: hidden; margin: -24px -22px 20px; border-radius: 17px 17px 0 0; }
.fdListing .fdFeatImg .bt_bb_text:first-child .fdCardPhoto { margin: 0; width: 100%; border-radius: 0; }
.fdListing .fdFeatImg .bt_bb_text:first-child p { margin: 0; line-height: 0; }
.fdListing .fdFeat .bt_bb_text li a { position: relative; padding-right: 22px; }
.fdListing .fdFeat .bt_bb_text li a:after {
  content: '';
  position: absolute;
  right: 4px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: .35;
  transition: opacity .2s, right .2s;
}
.fdListing .fdFeat .bt_bb_text li a:hover:after { opacity: 1; right: 2px; }
@media (max-width: 1080px) {
  .fdListing .fdFeatGrid .bt_bb_row_holder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .fdListing .fdFeatGrid .bt_bb_row_holder { grid-template-columns: minmax(0, 1fr); }
  .fdListing .fdFeatImg .bt_bb_text:first-child { margin: -20px -18px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .fdListing .fdFeatImg > .bt_bb_column_content:hover .fdCardPhoto { transform: none; }
}
/* FD-FEAT-PHOTO-END */