
/* =========================================================
   OTTO SAFARI GUIDE — TOUR DETAIL v1.1.6
   Premium UX/UI layer. Loaded after Bootstrap.
   Brand: #28B5A4 / #E48E45 / #26786E
   ========================================================= */
:root{
  --otto-teal:#28B5A4;
  --otto-teal-dark:#26786E;
  --otto-orange:#E48E45;
  --otto-heading:#232323;
  --otto-body:#494D41;
  --otto-light:rgba(40,181,164,.05);
  --otto-accent-1:#F5FBF6;
  --otto-accent-2:#FCF7EF;
  --otto-border:#E3E8E5;
  --otto-shadow:0 12px 34px rgba(35,35,35,.08);
  --otto-radius:16px;
}

/* ---------- Page canvas ---------- */
.tour-detail-page{
  background:#fff !important;
  color:var(--otto-body);
  overflow:clip;
}
.tour-detail-page .main-content-detail,
.tour-detail-page .sidebar-detail{
  min-width:0;
}
.tour-detail-page .container{
  max-width:1240px;
}

/* ---------- Hero ---------- */
.tour-detail-page .tour-hero{
  height:390px;
  background:#173d39;
}
.tour-detail-page .tour-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,77,42,.05) 25%,rgba(8,30,27,.78) 100%);
  pointer-events:none;
}
.tour-detail-page .tour-hero img{
  transition:transform .6s ease;
}
.tour-detail-page .tour-hero:hover img{
  transform:scale(1.015);
}
.tour-detail-page .hero-overlay{
  z-index:2;
  padding:clamp(24px,4vw,48px);
  background:linear-gradient(to top,rgba(8,30,27,.78),rgba(8,30,27,.04) 78%);
}
.tour-detail-page .tour-title{
  max-width:960px;
  width:auto;
  flex:1 1 auto;
  color:#fff !important;
  font-size:clamp(30px,4vw,52px) !important;
  line-height:1.08;
  font-weight:700;
  letter-spacing:-.025em;
  text-wrap:balance;
  text-shadow:0 3px 18px rgba(0,0,0,.55);
}
.tour-detail-page .btn-heart-hero{
  background:rgba(255,255,255,.14) !important;
  border:1px solid rgba(255,255,255,.55) !important;
  backdrop-filter:blur(8px);
  width:48px;height:48px;
  flex:0 0 48px;
  transition:.2s ease;
}
.tour-detail-page .btn-heart-hero:hover{
  background:#fff !important;
  color:var(--otto-orange) !important;
  transform:translateY(-2px);
}

/* ---------- Quick trust/summary strip ---------- */
.tour-detail-page .content-section:first-child{
  margin-top:28px;
}
.tour-detail-page .quick-adventure{
  margin:0;
  padding:20px 22px;
  background:linear-gradient(135deg,var(--otto-accent-1),#fff);
  border:1px solid rgba(40,181,164,.18);
  border-left:4px solid var(--otto-teal);
  border-radius:14px;
  color:var(--otto-body) !important;
  line-height:1.7;
}

/* ---------- Sections ---------- */
.tour-detail-page .content-section{
  margin-bottom:30px;
  padding:26px;
  background:#fff;
  border:1px solid var(--otto-border);
  border-radius:var(--otto-radius);
  box-shadow:0 6px 24px rgba(35,35,35,.035);
}
.tour-detail-page .section-title{
  color:var(--otto-heading) !important;
  font-size:clamp(22px,2.2vw,29px) !important;
  line-height:1.25;
  font-weight:700;
  letter-spacing:-.015em;
  margin-bottom:20px;
}
.tour-detail-page .section-title::after{
  content:"";
  display:block;
  width:42px;
  height:3px;
  margin-top:9px;
  border-radius:99px;
  background:var(--otto-orange);
}
.tour-detail-page p,
.tour-detail-page li{
  color:var(--otto-body) !important;
  line-height:1.72;
}
.tour-detail-page a{
  color:var(--otto-teal) !important;
}
.tour-detail-page a:hover{
  color:var(--otto-teal-dark) !important;
}

/* ---------- Sticky section navigation ---------- */
.tour-detail-page .tour-nav-tabs{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--otto-border);
  box-shadow:0 4px 18px rgba(35,35,35,.06);
}
.tour-detail-page .tour-nav-tabs .container{
  overflow-x:auto;
  scrollbar-width:none;
}
.tour-detail-page .tour-nav-tabs .container::-webkit-scrollbar{display:none}
.tour-detail-page .tour-nav-tabs .nav-tabs{
  flex-wrap:nowrap;
  border:0;
  gap:4px;
  min-width:max-content;
}
.tour-detail-page .tour-nav-tabs .nav-link{
  border:0 !important;
  border-bottom:3px solid transparent !important;
  border-radius:0 !important;
  padding:15px 16px 12px;
  color:var(--otto-body) !important;
  font-weight:600;
  white-space:nowrap;
  background:transparent !important;
}
.tour-detail-page .tour-nav-tabs .nav-link:hover,
.tour-detail-page .tour-nav-tabs .nav-link.active{
  color:var(--otto-teal-dark) !important;
  border-bottom-color:var(--otto-teal) !important;
}

/* ---------- Features ---------- */
.tour-detail-page .features-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.tour-detail-page .feature-item{
  display:flex;
  gap:14px;
  padding:17px;
  border:1px solid var(--otto-border);
  border-radius:13px;
  background:linear-gradient(180deg,#fff,var(--otto-accent-1));
}
.tour-detail-page .feature-icon{
  flex:0 0 42px;
  width:42px;height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(40,181,164,.11);
  color:var(--otto-teal-dark) !important;
}
.tour-detail-page .feature-content strong{
  color:var(--otto-heading) !important;
  display:block;
  margin-bottom:3px;
}

/* ---------- Sidebar booking card ---------- */
.tour-detail-page .sidebar-detail{
  position:relative;
}
.tour-detail-page .quote-card-combined{
  position:sticky;
  top:78px;
  padding:0 !important;
  overflow:hidden;
  border:1px solid var(--otto-border);
  border-radius:18px;
  box-shadow:var(--otto-shadow);
  background:#fff !important;
}
.tour-detail-page .quote-pricing-section{
  padding:24px 24px 20px !important;
  background:linear-gradient(135deg,var(--otto-accent-2),#fff);
  border-bottom:1px solid var(--otto-border);
}
.tour-detail-page .tour-price-large{
  color:var(--otto-orange) !important;
  font-size:clamp(28px,3vw,38px);
  line-height:1.05;
  letter-spacing:-.025em;
}
.tour-detail-page .tour-price-large .price-unit{
  color:var(--otto-body) !important;
  font-size:14px;
}
.tour-detail-page .included-link-blue{
  color:var(--otto-teal-dark) !important;
  font-size:14px;
  text-decoration:none;
  font-weight:600;
}
.tour-detail-page .quote-form-section-new{
  padding:22px 24px 24px !important;
}
.tour-detail-page .quote-form-title{
  color:var(--otto-heading) !important;
  font-size:22px !important;
  margin-bottom:15px;
}
.tour-detail-page .quote-input-field{
  min-height:52px;
  border:1px solid #D9E2DF !important;
  border-radius:11px !important;
  background:#fff !important;
  transition:border-color .2s,box-shadow .2s;
}
.tour-detail-page .quote-input-field:focus-within{
  border-color:var(--otto-teal) !important;
  box-shadow:0 0 0 3px rgba(40,181,164,.12);
}
.tour-detail-page .quote-input-icon{
  color:var(--otto-teal-dark) !important;
}
.tour-detail-page .btn-quote-orange,
.tour-detail-page .quote-submit-btn,
.tour-detail-page button[type="submit"]{
  background:var(--otto-orange) !important;
  color:#fff !important;
  border-radius:11px !important;
  min-height:52px;
  font-weight:700;
  border:0 !important;
  box-shadow:0 8px 18px rgba(228,142,69,.22);
}
.tour-detail-page .btn-quote-orange:hover,
.tour-detail-page .quote-submit-btn:hover,
.tour-detail-page button[type="submit"]:hover{
  background:var(--otto-teal) !important;
  transform:translateY(-1px);
}

/* ---------- Rates: premium matrix + responsive scroll ---------- */
.tour-detail-page .rates-table-container{
  background:#fff !important;
  border:1px solid var(--otto-border);
  border-radius:14px;
  overflow-x:auto;
  box-shadow:none;
}
.tour-detail-page .rates-table{
  min-width:850px;
  background:#fff !important;
}
.tour-detail-page .rates-table thead{
  background:var(--otto-teal-dark) !important;
}
.tour-detail-page .rates-table th{
  background:var(--otto-teal-dark) !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.18) !important;
  padding:13px 12px;
  font-size:12px;
  white-space:nowrap;
}
.tour-detail-page .rates-table th .room-info{
  color:rgba(255,255,255,.72) !important;
}
.tour-detail-page .rates-table td{
  color:var(--otto-body) !important;
  background:#fff !important;
  border-color:var(--otto-border) !important;
  padding:14px 12px;
  font-size:13px;
}
.tour-detail-page .rates-table tbody tr:nth-child(even) td{
  background:#FAFCFB !important;
}
.tour-detail-page .rates-table tbody tr:hover td{
  background:var(--otto-accent-1) !important;
}
.tour-detail-page .rates-table td:not(:first-child){
  color:var(--otto-heading) !important;
  font-weight:700;
}
.tour-detail-page .get-quote-link{
  color:#fff !important;
  background:var(--otto-orange);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:7px 11px;
  border-radius:8px;
  font-weight:700;
  text-decoration:none !important;
}
.tour-detail-page .get-quote-link:hover{
  background:var(--otto-teal);
}
.otto-rate-visual{
  margin-top:18px;
  padding:20px;
  border:1px solid var(--otto-border);
  border-radius:14px;
  background:linear-gradient(135deg,#fff,var(--otto-accent-1));
}
.otto-rate-visual-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:end;
  margin-bottom:16px;
}
.otto-rate-visual-title{
  margin:0;
  color:var(--otto-heading);
  font-size:18px;
  font-weight:700;
}
.otto-rate-visual-note{
  margin:0;
  color:#69736d;
  font-size:12px;
}
.otto-rate-bars{
  display:grid;
  gap:11px;
}
.otto-rate-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr) 105px;
  align-items:center;
  gap:10px;
}
.otto-rate-label{
  font-size:13px;
  font-weight:700;
  color:var(--otto-body);
}
.otto-rate-track{
  height:10px;
  border-radius:99px;
  background:#E8EFEC;
  overflow:hidden;
}
.otto-rate-bar{
  height:100%;
  width:var(--rate-width,60%);
  border-radius:99px;
  background:linear-gradient(90deg,var(--otto-teal),var(--otto-teal-dark));
}
.otto-rate-value{
  text-align:right;
  color:var(--otto-orange);
  font-weight:800;
  font-size:14px;
  white-space:nowrap;
}

/* ---------- Related tours ---------- */
.tour-detail-page .related-tours-section{
  background:var(--otto-accent-1);
  border-color:rgba(40,181,164,.16);
}
.tour-detail-page .related-tours-section .safari-card{
  border:1px solid var(--otto-border);
  box-shadow:0 8px 24px rgba(35,35,35,.07);
  border-radius:14px;
  overflow:hidden;
}
.tour-detail-page .related-tours-section .safari-title-overlay{
  color:#fff !important;
  text-shadow:0 2px 10px rgba(0,0,0,.7);
}
.tour-detail-page .related-tours-section .safari-price{
  color:var(--otto-orange) !important;
}

/* ---------- Full-width related safari cards ---------- */
.tour-detail-page .related-tours-container{
  width:100%;
  max-width:1200px;
  margin:28px auto 0;
  padding:0 20px;
}
.tour-detail-page .related-tours-container .related-tours-section{
  width:100%;
  margin:0;
}
.tour-detail-page .related-tours-section .related-tours-intro{
  max-width:760px;
  margin:-8px 0 22px;
  color:var(--otto-body);
  line-height:1.6;
}
.tour-detail-page .related-tours-section .row{
  margin-left:-10px;
  margin-right:-10px;
}
.tour-detail-page .related-tours-section .row > [class*="col-"]{
  padding-left:10px;
  padding-right:10px;
}
.tour-detail-page .related-tours-section .safari-card-link{
  display:flex;
  height:100%;
  color:inherit;
  text-decoration:none;
}
.tour-detail-page .related-tours-section .safari-card{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
}
.tour-detail-page .related-tours-section .safari-image{
  height:210px;
  overflow:hidden;
}
.tour-detail-page .related-tours-section .safari-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.tour-detail-page .related-tours-section .safari-content{
  min-width:0;
  flex:1;
}
.tour-detail-page .related-tours-section .safari-title-overlay{
  overflow-wrap:anywhere;
  color:#fff !important;
}
.tour-detail-page .related-tours-section .safari-quick-adventure{
  overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
}

/* ---------- Mobile ---------- */
@media (max-width:767.98px){
  .tour-detail-page .tour-hero{
    height:310px;
  }
  .tour-detail-page .hero-overlay{
    padding:20px 16px;
  }
  .tour-detail-page .tour-title{
    font-size:27px !important;
    line-height:1.12;
    max-width:calc(100% - 58px);
  }
  .tour-detail-page .tour-nav-tabs .nav-link{
    padding:13px 12px 10px;
    font-size:13px;
  }
  .tour-detail-page .content-section{
    padding:19px 16px;
    margin-bottom:18px;
    border-radius:13px;
  }
  .tour-detail-page .features-grid{
    grid-template-columns:1fr;
  }
  .tour-detail-page .feature-item{
    padding:14px;
  }
  .tour-detail-page .sidebar-detail{
    order:-1;
  }
  .tour-detail-page .quote-card-combined{
    position:relative;
    top:auto;
    margin:0 0 18px;
  }
  .tour-detail-page .quote-pricing-section{
    padding:20px 18px 16px !important;
  }
  .tour-detail-page .quote-form-section-new{
    padding:18px !important;
  }
  .tour-detail-page .tour-price-large{
    font-size:30px;
  }
  .otto-rate-visual{
    padding:16px;
  }
  .otto-rate-visual-head{
    display:block;
  }
  .otto-rate-visual-note{
    margin-top:5px;
  }
  .otto-rate-row{
    grid-template-columns:74px minmax(0,1fr) 82px;
    gap:8px;
  }
  .otto-rate-label,.otto-rate-value{
    font-size:12px;
  }
}

@media (max-width:767.98px){
  .tour-detail-page .related-tours-container{
    margin-top:18px;
    padding:0 14px;
  }
  .tour-detail-page .related-tours-section .safari-image{
    height:205px;
  }
  .tour-detail-page .related-tours-section .row{
    margin-left:-7px;
    margin-right:-7px;
  }
  .tour-detail-page .related-tours-section .row > [class*="col-"]{
    padding-left:7px;
    padding-right:7px;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  .tour-detail-page *{
    scroll-behavior:auto !important;
    transition:none !important;
  }
}


/* v2.0.5 — related safari tours and itinerary-matched useful articles */
.tour-detail-page .tour-interested-section .tour-interested-intro{margin:0 0 12px;color:var(--stm-body,#494D41);font-size:14px}
.tour-detail-page .interested-tour-list{display:grid;grid-template-columns:1fr;gap:10px;margin:0 0 4px}
.tour-detail-page .interested-tour-mini{display:flex;min-width:0;gap:11px;padding:8px;border:1px solid #E3E8E5;border-radius:11px;background:#fff;text-decoration:none;box-shadow:0 3px 12px rgba(35,35,35,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.tour-detail-page .interested-tour-mini:hover{transform:translateY(-1px);border-color:#28B5A4;box-shadow:0 7px 18px rgba(35,35,35,.09)}
.tour-detail-page .interested-tour-mini img{width:86px;height:70px;object-fit:cover;border-radius:8px;flex:0 0 86px}
.tour-detail-page .interested-tour-mini-body{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:2px}
.tour-detail-page .interested-tour-mini strong{color:#232323;font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tour-detail-page .interested-tour-days{font-size:11px;font-weight:700;color:#26786E;text-transform:uppercase;letter-spacing:.04em}
.tour-detail-page .interested-tour-link{font-size:12px;font-weight:700;color:#E48E45}
.tour-detail-page .related-articles-section{margin-top:0}
.tour-detail-page .related-articles-kicker{display:block;color:#28B5A4;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.tour-detail-page .related-articles-heading{margin-bottom:18px}
.tour-detail-page .related-article-card{height:100%;overflow:hidden;border:1px solid #E3E8E5;border-radius:14px;background:#fff;box-shadow:0 5px 20px rgba(35,35,35,.06);transition:transform .2s ease,box-shadow .2s ease}
.tour-detail-page .related-article-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(35,35,35,.11)}
.tour-detail-page .related-article-image-link{display:block;overflow:hidden}
.tour-detail-page .related-article-card img{display:block;width:100%;height:180px;object-fit:cover;transition:transform .35s ease}
.tour-detail-page .related-article-card:hover img{transform:scale(1.035)}
.tour-detail-page .related-article-body{padding:15px}
.tour-detail-page .related-article-category{display:inline-block;color:#26786E;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.tour-detail-page .related-article-body h3{margin:0 0 7px;font-size:17px;line-height:1.35}
.tour-detail-page .related-article-body h3 a{color:#232323;text-decoration:none}
.tour-detail-page .related-article-body h3 a:hover{color:#28B5A4}
.tour-detail-page .related-article-body p{margin:0 0 11px;color:#494D41;font-size:13px;line-height:1.55}
.tour-detail-page .related-article-read{font-size:13px;font-weight:800;color:#E48E45;text-decoration:none}
.tour-detail-page .related-article-read:hover{color:#28B5A4}
@media (max-width:767.98px){.tour-detail-page .related-article-card img{height:205px}.tour-detail-page .related-article-body{padding:14px}.tour-detail-page .interested-tour-mini img{width:82px;height:66px;flex-basis:82px}}


/* v2.0.9 accessibility/mobile refinement: Tripadvisor CTA */
.otto-tripadvisor-reviews .otto-tripadvisor-read-more,
.otto-tripadvisor-reviews .otto-tripadvisor-read-more:visited {
    color:#fff!important;background:#28B5A4!important;-webkit-text-fill-color:#fff!important;
}
.otto-tripadvisor-reviews .otto-tripadvisor-read-more:hover,
.otto-tripadvisor-reviews .otto-tripadvisor-read-more:focus,
.otto-tripadvisor-reviews .otto-tripadvisor-read-more:active {
    color:#fff!important;background:#26786e!important;-webkit-text-fill-color:#fff!important;
}
.otto-tripadvisor-reviews .otto-tripadvisor-read-more:focus-visible {
    outline:3px solid #E48E45!important;outline-offset:2px;
}
.otto-tripadvisor-reviews,.otto-tripadvisor-reviews *{box-sizing:border-box}
.otto-tripadvisor-reviews{width:100%;max-width:100%;overflow:hidden}
@media(max-width:767px){
 .otto-tripadvisor-reviews .otto-tripadvisor-read-more{display:flex;width:100%;min-height:44px;align-items:center;justify-content:center;text-align:center;white-space:normal;line-height:1.3;padding:11px 16px}
 .otto-tripadvisor-reviews .otto-tripadvisor-slide{overflow-wrap:anywhere}
}


/* v2.1.0 — Mobile visibility fix for Photo Gallery + Tripadvisor Reviews.
   Scoped to the tour detail so existing desktop/booking functionality is untouched. */
@media (max-width: 767px) {
  /* Never hide the two tour-detail cards on phones. */
  .otto-tripadvisor-reviews,
  .otto-tour-photo-gallery,
  .otto-photo-gallery,
  .tour-photo-gallery,
  .photo-gallery-card,
  .photo-album-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Keep review/gallery cards inside the mobile content width. */
  .otto-tripadvisor-reviews,
  .otto-tour-photo-gallery,
  .otto-photo-gallery,
  .tour-photo-gallery,
  .photo-gallery-card,
  .photo-album-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Do not let images or slider tracks force horizontal overflow. */
  .otto-tripadvisor-reviews img,
  .otto-tour-photo-gallery img,
  .otto-photo-gallery img,
  .tour-photo-gallery img,
  .photo-gallery-card img,
  .photo-album-card img {
    max-width: 100%;
    height: auto;
  }

  .otto-tripadvisor-reviews .otto-tripadvisor-slider,
  .otto-tripadvisor-reviews .otto-tripadvisor-track,
  .otto-tripadvisor-reviews .otto-tripadvisor-slide {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  /* If a parent sidebar/column was collapsed or clipped, restore its flow. */
  .tour-detail-sidebar,
  .tour-sidebar,
  .tour-detail__sidebar,
  .tour-detail-main-sidebar {
    min-width: 0;
  }
}


/* v2.1.1 — FINAL MOBILE STRUCTURAL VISIBILITY FIX
   The gallery/reviews cards are part of the tour-detail sidebar stack.
   Keep the sidebar/card wrappers in normal document flow on phones.
   Scoped to tour detail only; no desktop rules are changed. */
@media (max-width: 767px) {
  /* Restore the tour-detail sidebar itself to a visible, normal-flow block. */
  .tour-detail-premium .tour-detail-sidebar,
  .tour-detail-premium .tour-sidebar,
  .tour-detail-premium .sidebar,
  .tour-detail .tour-detail-sidebar,
  .tour-detail .tour-sidebar,
  .tour-detail .sidebar,
  .single-tour .tour-detail-sidebar,
  .single-tour .tour-sidebar {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
  }

  /* Explicitly restore any direct sidebar card children. */
  .tour-detail-premium .tour-detail-sidebar > *,
  .tour-detail-premium .tour-sidebar > *,
  .tour-detail .tour-detail-sidebar > *,
  .tour-detail .tour-sidebar > *,
  .single-tour .tour-detail-sidebar > *,
  .single-tour .tour-sidebar > * {
    visibility: visible !important;
    opacity: 1 !important;
    max-height: none !important;
  }

  /* Gallery/review cards: never collapse, clip or become desktop-only on mobile. */
  .otto-tripadvisor-reviews,
  .otto-tour-photo-gallery,
  .otto-photo-gallery,
  .tour-photo-gallery,
  .photo-gallery-card,
  .photo-album-card,
  .tripadvisor-reviews-card,
  .tripadvisor-review-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
    clip: auto !important;
    clip-path: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* If the card is inside a Bootstrap grid column, keep it full-width. */
  .otto-tripadvisor-reviews[class*="col-"],
  .otto-tour-photo-gallery[class*="col-"],
  .otto-photo-gallery[class*="col-"],
  .photo-gallery-card[class*="col-"],
  .photo-album-card[class*="col-"] {
    flex: 0 0 100% !important;
  }

  /* Prevent slider/gallery inner wrappers from hiding their first child. */
  .otto-tripadvisor-reviews [hidden],
  .otto-tripadvisor-reviews [aria-hidden="true"] {
    /* Do not override semantic hidden content globally; only the slider's
       active-state is controlled by its JS. */
  }

  .otto-tripadvisor-reviews .otto-tripadvisor-read-more,
  .otto-tripadvisor-reviews .otto-tripadvisor-read-more:visited {
    color: #fff !important;
    background: #28B5A4 !important;
    -webkit-text-fill-color: #fff !important;
  }

  .otto-tripadvisor-reviews .otto-tripadvisor-read-more:hover,
  .otto-tripadvisor-reviews .otto-tripadvisor-read-more:focus,
  .otto-tripadvisor-reviews .otto-tripadvisor-read-more:active {
    color: #fff !important;
    background: #26786e !important;
    -webkit-text-fill-color: #fff !important;
  }
}


/* =========================================================
   v2.1.2 — ACTUAL MOBILE SIDEBAR FIX
   Root cause: custom-booking.css intentionally sets
   .col-lg-4.sidebar-detail { display:none !important; }
   on mobile. That hides the Photo Gallery and Tripadvisor
   cards because both live inside that sidebar.
   On mobile we expose the sidebar but keep the desktop
   booking/quote card hidden. The gallery and reviews remain
   in normal flow immediately below the gallery card.
   ========================================================= */
@media (max-width: 767.98px) {
  .tour-detail-page .col-lg-4.sidebar-detail {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    position: relative !important;
    order: -1 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* The mobile page already has its dedicated quote interface.
     Do not duplicate the desktop sidebar booking card. */
  .tour-detail-page .col-lg-4.sidebar-detail > .quote-card-combined {
    display: none !important;
  }

  /* Actual gallery wrapper used by the rendered tour template. */
  .tour-detail-page .col-lg-4.sidebar-detail > .sidebar-section {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 0 14px !important;
    box-sizing: border-box !important;
  }

  .tour-detail-page .col-lg-4.sidebar-detail .gallery-preview {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 220px !important;
    min-height: 0 !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    margin: 0 0 10px !important;
  }

  .tour-detail-page .col-lg-4.sidebar-detail .gallery-link {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    color: #26786e !important;
    font-weight: 700 !important;
  }

  /* Actual Tripadvisor card class used by the template. */
  .tour-detail-page .otto-tripadvisor-reviews-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    margin: 0 0 18px !important;
  }

  .tour-detail-page .otto-tripadvisor-reviews-card * {
    box-sizing: border-box !important;
  }

  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    background: #28B5A4 !important;
    text-decoration: none !important;
  }

  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:active {
    background: #26786e !important;
  }
}

/* Also enforce the Tripadvisor CTA color on desktop/tablet. */
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: #28B5A4 !important;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: #26786e !important;
}


/* =========================================================
   v2.1.3 — MOBILE-ONLY FINAL CARD ORDER
   Desktop is intentionally unchanged.
   Mobile shows ONLY:
   1) Photo Gallery
   2) Tripadvisor Reviews
   immediately before Related Tanzania Safari.
   The quote/price card remains hidden on mobile.
   ========================================================= */
.otto-mobile-late-cards{display:none!important;}

@media (max-width:767.98px){
  /* Hide original top sidebar copies. */
  .tour-detail-page .otto-original-sidebar-gallery,
  .tour-detail-page .otto-original-sidebar-review{
    display:none!important;
  }

  /* Hide the duplicate mobile price/quote card. */
  .tour-detail-page .sidebar-detail .quote-card-combined{
    display:none!important;
  }

  /* The only two cards we add on mobile. */
  .tour-detail-page .otto-mobile-late-cards{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:22px 0 28px!important;
    padding:0!important;
    clear:both!important;
    box-sizing:border-box!important;
  }

  .tour-detail-page .otto-mobile-late-cards .otto-mobile-gallery-card,
  .tour-detail-page .otto-mobile-late-cards .otto-mobile-review-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    float:none!important;
    position:relative!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  .tour-detail-page .otto-mobile-late-cards .otto-mobile-gallery-card{
    margin-bottom:14px!important;
  }

  .tour-detail-page .otto-mobile-late-cards .gallery-preview{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:220px!important;
    min-height:0!important;
    object-fit:cover!important;
    border-radius:12px!important;
  }

  .tour-detail-page .otto-mobile-late-cards .gallery-link{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:44px!important;
    box-sizing:border-box!important;
  }

  /* Tripadvisor CTA: white text on ALL devices/states. */
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus,
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:active{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    background:#28B5A4!important;
    text-decoration:none!important;
  }

  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-reviews-card{
    margin-top:0!important;
  }
}

/* Desktop/tablet readability — preserve layout, only correct CTA contrast. */
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#28B5A4!important;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:active{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#26786e!important;
}


/* =========================================================
   v2.1.5 — MOBILE: KEEP THE TOP MOBILE QUOTE, REMOVE ONLY
   DUPLICATE SIDEBAR COPIES
   Desktop is unchanged.
   On phones:
   - Keep the existing top mobile quote/pricing section.
   - Keep its floating Get a Free Quote behavior.
   - Hide only the duplicate desktop/sidebar quote card.
   - Hide only the duplicate sidebar Photo Gallery.
   - Hide only the duplicate sidebar Tripadvisor review slider.
   - Keep the separate mobile Gallery + Tripadvisor cards
     immediately before Related Tanzania Safaris.
   ========================================================= */
@media (max-width:767.98px){
  /* IMPORTANT: do NOT hide the whole sidebar container.
     The top mobile quote/pricing block is separate and must remain. */
  .tour-detail-page .sidebar-detail{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  /* Remove the duplicate quote/pricing/sidebar booking card only. */
  .tour-detail-page .sidebar-detail .quote-card-combined{
    display:none!important;
    visibility:hidden!important;
  }

  /* Remove the duplicate Photo Gallery from the sidebar only. */
  .tour-detail-page .sidebar-detail .otto-original-sidebar-gallery{
    display:none!important;
    visibility:hidden!important;
  }

  /* Remove the duplicate Tripadvisor slider from the sidebar only. */
  .tour-detail-page .sidebar-detail .otto-original-sidebar-review{
    display:none!important;
    visibility:hidden!important;
  }

  /* The relocated mobile cards remain visible and are the ONLY
     Gallery + Tripadvisor cards shown before Related Tanzania Safaris. */
  .tour-detail-page .otto-mobile-late-cards{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:22px 0 28px!important;
    padding:0!important;
    clear:both!important;
    box-sizing:border-box!important;
  }

  .tour-detail-page .otto-mobile-late-cards .otto-mobile-gallery-card,
  .tour-detail-page .otto-mobile-late-cards .otto-mobile-review-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    position:relative!important;
    float:none!important;
    box-sizing:border-box!important;
  }

  .tour-detail-page .otto-mobile-late-cards .otto-mobile-gallery-card{
    margin-bottom:14px!important;
  }

  .tour-detail-page .otto-mobile-late-cards .gallery-preview{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:220px!important;
    min-height:0!important;
    object-fit:cover!important;
    border-radius:12px!important;
  }

  .tour-detail-page .otto-mobile-late-cards .gallery-link{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:44px!important;
    box-sizing:border-box!important;
  }

  /* Read More Reviews stays white on mobile. */
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all,
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all:link,
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all:visited,
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all:hover,
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all:focus,
  .tour-detail-page .otto-mobile-late-cards .otto-tripadvisor-all:active{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    background:#28B5A4!important;
    text-decoration:none!important;
  }
}

/* Desktop/tablet: no layout/content change; only preserve CTA contrast. */
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}



/* =========================================================
   v2.1.6 — MOBILE DUPLICATE SIDEBAR REMOVAL
   The top mobile quote bar (.mobile-hero-quote) is intentionally
   preserved. On phones, remove the original desktop sidebar
   completely because it duplicates the late mobile Gallery +
   Tripadvisor cards. Desktop/tablet remain unchanged.
   ========================================================= */
@media (max-width: 767.98px) {
  .tour-detail-page .container > .row > .col-lg-4.sidebar-detail,
  .tour-detail-page .sidebar-detail {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    flex: 0 0 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Keep only the intentionally relocated mobile cards. */
  .tour-detail-page .otto-mobile-late-cards {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}


/* =========================================================
   v2.1.7 FINAL MOBILE STRUCTURAL FIX
   The original quote/gallery/review sidebar is desktop-only.
   The separate .otto-mobile-late-cards block is the mobile
   Gallery + Tripadvisor block. The top mobile quote is NOT
   inside this sidebar and is untouched.
   ========================================================= */
@media screen and (max-width: 767.98px) {
  html body .tour-detail-page .otto-desktop-tour-sidebar {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    max-width: 0 !important;
    min-width: 0 !important;
    flex: 0 0 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body .tour-detail-page .otto-mobile-late-cards {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* Desktop: the original sidebar remains exactly as before. */
@media screen and (min-width: 768px) {
  .tour-detail-page .otto-desktop-tour-sidebar {
    display: block;
  }
}


/* Tour best time */
.tour-best-time-card{
  margin:0 0 18px;
  padding:18px;
  background:#fff;
  border:1px solid #dfeae5;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(35,35,35,.06);
}

.tour-best-time-card__top{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}

.tour-best-time-card__icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:#28B5A4;
  color:#fff;
  font-size:17px;
}

.tour-best-time-card__eyebrow{
  display:block;
  margin-bottom:2px;
  color:#e48e45;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.tour-best-time-card h3{
  margin:0;
  color:#232323;
  font-size:20px;
  line-height:1.25;
  font-weight:700;
}

.tour-best-time-card__seasons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.tour-best-time-season{
  position:relative;
  min-width:0;
  padding:13px 12px;
  background:#f8faf9;
  border:1px solid #e5ebe8;
  border-radius:11px;
}

.tour-best-time-season--best{
  background:#f5fbf6;
  border-color:rgba(40,181,164,.35);
  box-shadow:inset 0 3px 0 #28B5A4;
}

.tour-best-time-season__months{
  display:block;
  color:#232323;
  font-size:13px;
  line-height:1.3;
  font-weight:700;
}

.tour-best-time-season__label{
  display:block;
  margin-top:4px;
  color:#68706a;
  font-size:11px;
  line-height:1.35;
}

.tour-best-time-season--best .tour-best-time-season__label{
  color:#26786e;
  font-weight:700;
}

.tour-best-time-card__guide{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
  padding:9px 11px 9px 13px;
  border:1px solid rgba(40,181,164,.18);
  border-radius:9px;
  background:#fff;
  color:#26786e;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.tour-best-time-card__guide i{
  font-size:11px;
}

.tour-best-time-card__guide:hover{
  background:#28B5A4;
  border-color:#28B5A4;
  color:#fff;
}

@media screen and (max-width:767.98px){
  .tour-detail-page .otto-mobile-late-cards .tour-best-time-card{
    margin:0 0 14px;
    padding:15px;
  }

  .tour-detail-page .otto-mobile-late-cards .tour-best-time-card__seasons{
    grid-template-columns:1fr;
    gap:7px;
  }

  .tour-detail-page .otto-mobile-late-cards .tour-best-time-card__top{
    margin-bottom:12px;
  }

  .tour-detail-page .otto-mobile-late-cards .tour-best-time-card h3{
    font-size:18px;
  }

  .tour-detail-page .otto-mobile-late-cards .tour-best-time-season{
    padding:11px 12px;
  }
}


/* =========================================================
   OTTO TOUR NAVIGATION — POLISHED RESPONSIVE TABS
   Enhancement only: preserves existing tab/content system.
   ========================================================= */

.tour-detail-page .tour-nav-tabs{
    position:sticky;
    top:0;
    z-index:110;
    padding:8px 0;
    background:rgba(255,255,255,.94);
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(40,181,164,.14);
    box-shadow:0 5px 20px rgba(35,35,35,.055);
}

.tour-detail-page .tour-nav-tabs .container{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    padding-top:0;
    padding-bottom:0;
}
.tour-detail-page .tour-nav-tabs .container::-webkit-scrollbar{display:none}

.tour-detail-page .tour-nav-tabs .nav-tabs{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
    gap:6px;
    min-width:max-content;
    padding:3px;
    margin:0;
    border:0;
    background:#F5FBF6;
    border:1px solid rgba(40,181,164,.13);
    border-radius:14px;
}

.tour-detail-page .tour-nav-tabs .nav-item{
    margin:0;
    flex:0 0 auto;
}

.tour-detail-page .tour-nav-tabs .nav-link{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 17px;
    border:0 !important;
    border-radius:10px !important;
    color:var(--otto-body) !important;
    font-size:14px;
    font-weight:700;
    line-height:1.15;
    white-space:nowrap;
    text-decoration:none !important;
    background:transparent !important;
    transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.tour-detail-page .tour-nav-tabs .nav-link:hover{
    color:var(--otto-teal-dark) !important;
    background:rgba(40,181,164,.08) !important;
}

.tour-detail-page .tour-nav-tabs .nav-link.active{
    color:#fff !important;
    background:var(--otto-teal-dark) !important;
    box-shadow:0 5px 14px rgba(40,181,164,.20);
}

.tour-detail-page .tour-nav-tabs .nav-link:focus-visible{
    outline:3px solid rgba(40,181,164,.25);
    outline-offset:2px;
}

/* Keep the content transition clean without affecting content logic. */
.tour-detail-page .tour-nav-tabs + .content-section{
    scroll-margin-top:82px;
}

/* Smaller screens: keep the tabs compact and thumb-friendly. */
@media (max-width: 767.98px){
    .tour-detail-page .tour-nav-tabs{
        padding:6px 0;
        top:0;
    }

    .tour-detail-page .tour-nav-tabs .container{
        padding-left:10px;
        padding-right:10px;
    }

    .tour-detail-page .tour-nav-tabs .nav-tabs{
        justify-content:flex-start;
        gap:4px;
        padding:3px;
        border-radius:12px;
    }

    .tour-detail-page .tour-nav-tabs .nav-link{
        min-height:42px;
        padding:9px 13px;
        font-size:13px;
        border-radius:9px !important;
    }

    .tour-detail-page .tour-nav-tabs .nav-link.active{
        box-shadow:0 4px 11px rgba(40,181,164,.18);
    }
}

/* Very narrow phones: allow the complete navigation to scroll naturally
   rather than shrinking text or causing page overflow. */
@media (max-width: 380px){
    .tour-detail-page .tour-nav-tabs .container{
        padding-left:7px;
        padding-right:7px;
    }

    .tour-detail-page .tour-nav-tabs .nav-link{
        min-height:40px;
        padding:8px 11px;
        font-size:12.5px;
    }
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce){
    .tour-detail-page .tour-nav-tabs .nav-link{
        transition:none;
    }
}


/* =========================================================
   v2.0.23 — RELATED SAFARI + USEFUL INFORMATION POLISH
   Presentation-only refinement. Existing markup/data preserved.
   ========================================================= */

.tour-detail-page .related-tours-container{
    width:100%;
    max-width:1200px;
    margin:26px auto 0;
    padding:0 20px;
}

.tour-detail-page .related-safari-tours{
    margin-top:24px;
}

.tour-detail-page .related-safari-tours .content-section,
.tour-detail-page .related-articles-section{
    margin:0;
    padding:30px;
    border:1px solid #E3E8E5;
    border-radius:18px;
    background:#fff;
    box-shadow:0 7px 24px rgba(35,35,35,.055);
}

.tour-detail-page .related-articles-section{
    margin-top:22px;
}

.tour-detail-page .related-articles-heading{
    margin:0 0 22px;
    max-width:820px;
}

.tour-detail-page .related-articles-kicker{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:4px 10px;
    border-radius:999px;
    background:rgba(40,181,164,.09);
    color:#26786E;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.075em;
    margin:0 0 8px;
}

.tour-detail-page .related-articles-heading .section-title{
    margin:0 0 7px;
    color:#232323;
    font-size:clamp(25px,3vw,34px);
    line-height:1.15;
    letter-spacing:-.02em;
}

.tour-detail-page .related-tours-intro{
    margin:0;
    max-width:720px;
    color:#5A6058;
    font-size:15px;
    line-height:1.6;
}

/* Related safari cards: equal height, aligned content and stronger hierarchy */
.tour-detail-page .related-safari-tours .row,
.tour-detail-page .related-articles-section .row{
    display:flex;
    flex-wrap:wrap;
    row-gap:18px;
}

.tour-detail-page .related-safari-tours .row > [class*="col-"],
.tour-detail-page .related-articles-section .row > [class*="col-"]{
    display:flex;
}

.tour-detail-page .interested-tour-mini{
    width:100%;
    min-height:100%;
    gap:14px;
    padding:10px;
    border:1px solid #E1E7E3;
    border-radius:14px;
    background:#fff;
    box-shadow:0 3px 12px rgba(35,35,35,.045);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.tour-detail-page .interested-tour-mini:hover{
    transform:translateY(-2px);
    border-color:#8BCDC4;
    box-shadow:0 10px 24px rgba(35,35,35,.09);
}

.tour-detail-page .interested-tour-mini img{
    width:105px;
    height:82px;
    flex:0 0 105px;
    border-radius:10px;
    object-fit:cover;
}

.tour-detail-page .interested-tour-mini-body{
    gap:4px;
    padding:2px 3px 2px 0;
}

.tour-detail-page .interested-tour-days{
    color:#26786E;
    font-size:10px;
    font-weight:800;
    letter-spacing:.07em;
}

.tour-detail-page .interested-tour-mini strong{
    color:#232323;
    font-size:15px;
    line-height:1.3;
}

.tour-detail-page .interested-tour-link{
    margin-top:2px;
    color:#E48E45;
    font-size:12px;
    font-weight:800;
}

/* Useful information cards */
.tour-detail-page .related-article-card{
    display:flex;
    flex-direction:column;
    width:100%;
    min-height:100%;
    border:1px solid #E1E7E3;
    border-radius:15px;
    background:#fff;
    box-shadow:0 4px 16px rgba(35,35,35,.045);
}

.tour-detail-page .related-article-image-link{
    flex:0 0 auto;
}

.tour-detail-page .related-article-card img{
    height:175px;
}

.tour-detail-page .related-article-body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:17px;
}

.tour-detail-page .related-article-category{
    margin-bottom:7px;
    color:#26786E;
    font-size:10px;
    letter-spacing:.07em;
}

.tour-detail-page .related-article-body h3{
    margin:0 0 8px;
    font-size:17px;
    line-height:1.3;
}

.tour-detail-page .related-article-body p{
    margin:0 0 14px;
    color:#5A6058;
    font-size:13px;
    line-height:1.55;
}

.tour-detail-page .related-article-read{
    margin-top:auto;
    padding-top:3px;
}

/* Keep the blocks visually close to the preceding tour content */
.tour-detail-page .related-safari-tours + .related-tours-container{
    margin-top:18px;
}

/* Tablet */
@media (max-width:991.98px){
    .tour-detail-page .related-tours-container{
        padding:0 16px;
    }

    .tour-detail-page .related-safari-tours .content-section,
    .tour-detail-page .related-articles-section{
        padding:24px;
    }

    .tour-detail-page .related-safari-tours .col-lg-4{
        width:50%;
    }

    .tour-detail-page .related-articles-section .col-lg-3{
        width:50%;
    }
}

/* Mobile */
@media (max-width:767.98px){
    .tour-detail-page .related-tours-container{
        width:100%;
        margin-top:18px;
        padding:0 11px;
    }

    .tour-detail-page .related-safari-tours{
        margin-top:18px;
    }

    .tour-detail-page .related-safari-tours .content-section,
    .tour-detail-page .related-articles-section{
        padding:19px 14px;
        border-radius:14px;
        box-shadow:0 4px 16px rgba(35,35,35,.045);
    }

    .tour-detail-page .related-articles-section{
        margin-top:16px;
    }

    .tour-detail-page .related-articles-heading{
        margin-bottom:15px;
    }

    .tour-detail-page .related-articles-heading .section-title{
        font-size:25px;
    }

    .tour-detail-page .related-tours-intro{
        font-size:13px;
        line-height:1.55;
    }

    .tour-detail-page .related-safari-tours .row,
    .tour-detail-page .related-articles-section .row{
        row-gap:12px;
        margin-left:-5px;
        margin-right:-5px;
    }

    .tour-detail-page .related-safari-tours .row > [class*="col-"],
    .tour-detail-page .related-articles-section .row > [class*="col-"]{
        width:100%;
        padding-left:5px;
        padding-right:5px;
    }

    .tour-detail-page .interested-tour-mini{
        min-height:0;
        padding:8px;
        gap:10px;
    }

    .tour-detail-page .interested-tour-mini img{
        width:88px;
        height:72px;
        flex-basis:88px;
        border-radius:9px;
    }

    .tour-detail-page .interested-tour-mini strong{
        font-size:14px;
    }

    .tour-detail-page .related-article-card img{
        height:185px;
    }

    .tour-detail-page .related-article-body{
        padding:14px;
    }
}

/* Very small phones */
@media (max-width:380px){
    .tour-detail-page .related-tours-container{
        padding:0 8px;
    }

    .tour-detail-page .related-safari-tours .content-section,
    .tour-detail-page .related-articles-section{
        padding:17px 11px;
    }

    .tour-detail-page .interested-tour-mini img{
        width:78px;
        height:66px;
        flex-basis:78px;
    }

    .tour-detail-page .related-article-card img{
        height:165px;
    }
}

@media (prefers-reduced-motion:reduce){
    .tour-detail-page .interested-tour-mini,
    .tour-detail-page .related-article-card,
    .tour-detail-page .related-article-card img{
        transition:none;
    }
}


/* =========================================================
   FINAL ALIGNMENT FIX — RELATED SAFARI + USEFUL INFORMATION
   Keep these sections on the exact same content rail as the
   main tour sections above. Presentation only; no content,
   links, queries or functionality are changed.
   ========================================================= */

.tour-detail-page > .related-tours-container,
.tour-detail-page .related-tours-container{
    width: 100%;
    max-width: 1240px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 12px;
    padding-right: 12px;
    box-sizing: border-box;
}

.tour-detail-page .related-safari-tours{
    margin-top: 24px;
}

.tour-detail-page .related-safari-tours > .content-section,
.tour-detail-page .related-articles-section{
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
}

/* Keep the heading/card grid on one shared internal rail. */
.tour-detail-page .related-safari-tours .content-section,
.tour-detail-page .related-articles-section{
    overflow: hidden;
}

.tour-detail-page .related-safari-tours .row,
.tour-detail-page .related-articles-section .row{
    margin-left: -6px;
    margin-right: -6px;
}

.tour-detail-page .related-safari-tours .row > [class*="col-"],
.tour-detail-page .related-articles-section .row > [class*="col-"]{
    padding-left: 6px;
    padding-right: 6px;
}

/* Match the vertical rhythm of the other primary content cards. */
.tour-detail-page .related-safari-tours .content-section{
    margin-bottom: 30px;
}

.tour-detail-page .related-articles-section{
    margin-top: 0;
    margin-bottom: 30px;
}

@media (max-width: 991.98px){
    .tour-detail-page > .related-tours-container,
    .tour-detail-page .related-tours-container{
        max-width: 100%;
        padding-left: 12px;
        padding-right: 12px;
    }
}

@media (max-width: 767.98px){
    .tour-detail-page > .related-tours-container,
    .tour-detail-page .related-tours-container{
        width: 100%;
        padding-left: 12px;
        padding-right: 12px;
        margin-top: 18px;
    }

    .tour-detail-page .related-safari-tours{
        margin-top: 18px;
    }

    .tour-detail-page .related-safari-tours .content-section,
    .tour-detail-page .related-articles-section{
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        padding: 18px 14px;
    }

    .tour-detail-page .related-safari-tours .row,
    .tour-detail-page .related-articles-section .row{
        margin-left: -5px;
        margin-right: -5px;
        row-gap: 12px;
    }

    .tour-detail-page .related-safari-tours .row > [class*="col-"],
    .tour-detail-page .related-articles-section .row > [class*="col-"]{
        padding-left: 5px;
        padding-right: 5px;
    }

    .tour-detail-page .related-safari-tours .content-section{
        margin-bottom: 18px;
    }

    .tour-detail-page .related-articles-section{
        margin-top: 0;
        margin-bottom: 18px;
    }
}

@media (max-width: 380px){
    .tour-detail-page > .related-tours-container,
    .tour-detail-page .related-tours-container{
        padding-left: 10px;
        padding-right: 10px;
    }

    .tour-detail-page .related-safari-tours .content-section,
    .tour-detail-page .related-articles-section{
        padding-left: 12px;
        padding-right: 12px;
    }
}

/* v2.2.0 — sidebar CTA and mobile-safe tour-detail sizing */
.tour-detail-page .sidebar-detail,.tour-detail-page .quote-card-combined,.tour-detail-page .quote-form-section-new{min-width:0;max-width:100%;box-sizing:border-box}
.tour-detail-page .sidebar-detail a,.tour-detail-page .sidebar-detail button,.tour-detail-page .sidebar-detail input{max-width:100%;box-sizing:border-box}
@media(max-width:991px){.tour-detail-page .mobile-hero-quote{width:100%;max-width:100%;box-sizing:border-box}.tour-detail-page .mobile-hero-quote .mobile-quote-price{white-space:normal;overflow-wrap:anywhere}.tour-detail-page .mobile-hero-quote .otto-whatsapp-btn--mobile{width:100%}}

/* Refined related safari cards */
.tour-detail-page .related-safari-tours .content-section{padding:32px}
.tour-detail-page .related-safari-tours .related-articles-heading{margin-bottom:24px}
.tour-detail-page .related-safari-tours .interested-tour-mini{display:flex;flex-direction:column;gap:0;overflow:hidden;padding:0;border:1px solid #E1E7E3;border-radius:16px;background:#fff;box-shadow:0 4px 18px rgba(35,35,35,.055)}
.tour-detail-page .related-safari-tours .interested-tour-mini:hover{transform:translateY(-3px);border-color:#8BCDC4;box-shadow:0 12px 28px rgba(35,35,35,.10)}
.tour-detail-page .related-safari-tours .interested-tour-mini-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#F1F3F1}
.tour-detail-page .related-safari-tours .interested-tour-mini-image img{display:block;width:100%;height:100%;object-fit:cover}
.tour-detail-page .related-safari-tours .interested-tour-mini-body{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px;padding:17px 17px 16px}
.tour-detail-page .related-safari-tours .interested-tour-days{font-size:10px;line-height:1.2;text-transform:uppercase}
.tour-detail-page .related-safari-tours .interested-tour-mini h3{margin:0;line-height:1.32}
.tour-detail-page .related-safari-tours .interested-tour-mini h3 a{color:#232323;text-decoration:none;font-size:17px}
.tour-detail-page .related-safari-tours .interested-tour-price{color:#26786E;font-size:13px;font-weight:800}
.tour-detail-page .related-safari-tours .interested-tour-link{margin-top:auto;padding-top:8px;color:#E48E45;font-size:12px;font-weight:800;text-decoration:none}
@media (max-width:767.98px){
 .tour-detail-page .related-safari-tours{padding:0 12px}
 .tour-detail-page .related-safari-tours .content-section{padding:22px 16px;border-radius:14px}
 .tour-detail-page .related-safari-tours .row{row-gap:14px}
 .tour-detail-page .related-safari-tours .col-lg-4{width:100%}
 .tour-detail-page .related-safari-tours .interested-tour-mini-image{aspect-ratio:16/9}
 .tour-detail-page .related-safari-tours .interested-tour-mini h3 a{font-size:16px}
}


/* v2.0.27: Restore the missing mobile-only trust and seasonal sidebar content.
   This block sits directly beneath the mobile quote CTA; desktop sidebar is unchanged. */
.otto-mobile-sidebar-highlights{display:none}
@media screen and (max-width:767.98px){
  html body .tour-detail-page .otto-mobile-sidebar-highlights{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:14px 0 22px!important;
    padding:0!important;
    clear:both!important;
    box-sizing:border-box!important;
  }
  html body .tour-detail-page .otto-mobile-trust-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    margin:0 0 14px!important;
    padding:16px!important;
    background:#fff!important;
    border:1px solid #dfeae5!important;
    border-radius:14px!important;
    box-shadow:0 6px 20px rgba(35,35,35,.06)!important;
    box-sizing:border-box!important;
  }
  html body .tour-detail-page .otto-mobile-trust-card h2{
    margin:0 0 12px!important;
    color:#084D2A!important;
    font-size:18px!important;
    line-height:1.3!important;
    font-weight:750!important;
  }
  html body .tour-detail-page .otto-mobile-trust-list{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px 12px!important;
    list-style:none!important;
    margin:0!important;
    padding:0!important;
  }
  html body .tour-detail-page .otto-mobile-trust-list li{
    display:flex!important;
    align-items:flex-start!important;
    gap:8px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    color:#242b27!important;
    font-size:13px!important;
    line-height:1.4!important;
  }
  html body .tour-detail-page .otto-mobile-trust-list li i{
    flex:0 0 16px!important;
    width:16px!important;
    margin-top:2px!important;
    color:#16836f!important;
    font-size:14px!important;
    text-align:center!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0 0 14px!important;
    padding:15px!important;
    box-sizing:border-box!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card__seasons{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card__top{
    display:flex!important;
    margin-bottom:12px!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card h3{
    font-size:18px!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-season{
    display:block!important;
    padding:11px 12px!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card__guide-link,
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card__guide-link a{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    overflow-wrap:anywhere!important;
  }
  html body .tour-detail-page .otto-mobile-sidebar-highlights .tour-best-time-card__guide-link a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
  }
}


/* v2.0.29: Place a dedicated mobile seasonal guide in the main content flow before related tours.
   Desktop sidebar remains the source of this card on desktop. */
.otto-mobile-best-time-before-related { display: none; }
@media screen and (max-width: 767.98px) {
  html body .tour-detail-page .otto-mobile-best-time-before-related {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    clear: both !important;
    margin: 24px 15px 28px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  html body .tour-detail-page .otto-related-best-time-card {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 18px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #dce8df !important;
    border-radius: 16px !important;
    box-shadow: 0 6px 22px rgba(8,77,42,.08) !important;
  }
  html body .tour-detail-page .otto-related-best-time-card__top {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 16px !important;
  }
  html body .tour-detail-page .otto-related-best-time-card__icon {
    display: flex !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 12px !important;
    background: #eaf3ec !important;
    color: #084D2A !important;
    font-size: 18px !important;
  }
  html body .tour-detail-page .otto-related-best-time-card__eyebrow {
    display: block !important;
    margin: 0 0 3px !important;
    color: #587365 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }
  html body .tour-detail-page .otto-related-best-time-card h2 {
    display: block !important;
    margin: 0 !important;
    color: #084D2A !important;
    font-size: 19px !important;
    line-height: 1.3 !important;
    font-weight: 750 !important;
  }
  html body .tour-detail-page .otto-related-best-time-card__seasons {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .tour-detail-page .otto-related-best-time-season {
    display: block !important;
    min-width: 0 !important;
    padding: 12px 13px !important;
    background: #f7f9f6 !important;
    border: 1px solid #e7ede7 !important;
    border-radius: 10px !important;
    box-sizing: border-box !important;
  }
  html body .tour-detail-page .otto-related-best-time-season.is-best {
    background: #eff7ef !important;
    border-color: #c7dfc9 !important;
  }
  html body .tour-detail-page .otto-related-best-time-season__head {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 5px 10px !important;
  }
  html body .tour-detail-page .otto-related-best-time-season__head strong {
    color: #202820 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  html body .tour-detail-page .otto-related-best-time-season__head span {
    color: #084D2A !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  html body .tour-detail-page .otto-related-best-time-season p {
    margin: 6px 0 0 !important;
    color: #555f57 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  html body .tour-detail-page .otto-related-best-time-card__guide {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    margin: 14px 0 0 !important;
    padding: 12px 13px !important;
    box-sizing: border-box !important;
    border-radius: 9px !important;
    background: #084D2A !important;
    color: #fff !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }
}


/* v2.0.32: Keep the mobile seasonal summary outside the gallery/reviews wrapper
   so wrapper layout or visibility rules cannot hide it. Desktop sidebar is unchanged. */
.otto-mobile-best-time-before-related{display:none}
@media screen and (max-width:767.98px){
  html body .tour-detail-page .otto-mobile-best-time-before-related{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    clear:both!important;
    margin:24px 15px 28px!important;
    padding:0!important;
    box-sizing:border-box!important;
  }
  html body .tour-detail-page .otto-mobile-best-time-before-related .otto-mobile-best-time-card{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    float:none!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    padding:18px!important;
    box-sizing:border-box!important;
  }
}


/* =========================================================
   v2.0.33 — Tripadvisor review card UX refinement
   Remove redundant disclaimer/profile link; keep one clear
   review CTA in the card header on desktop and mobile.
   ========================================================= */
.tour-detail-page .otto-tripadvisor-reviews-card {
  background: #fff !important;
  border: 1px solid #e3eae6 !important;
  border-radius: 18px !important;
  box-shadow: 0 10px 28px rgba(20, 55, 42, .08) !important;
  padding: 20px !important;
  color: #34443c;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-reviews-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px solid #edf1ee;
  margin-bottom: 16px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-rating {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 13px;
  background: #e8f5ef;
  color: #26786e;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -.03em;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-title-row h2 {
  margin: 0;
  color: #183d30;
  font-size: 19px;
  line-height: 1.3;
  font-weight: 750;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-rating p {
  margin: 5px 0 0;
  color: #5a6b62;
  font-size: 13px;
  line-height: 1.5;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-stars,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-review-stars {
  color: #00a680;
  letter-spacing: 1px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:link,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:visited {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 11px 16px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #26786e !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-decoration: none !important;
  font-size: 13px;
  line-height: 1.35;
  font-weight: 750;
  text-align: center;
  box-shadow: 0 4px 12px rgba(38, 120, 110, .18);
  transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:hover,
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus-visible {
  background: #1d5f56 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow: 0 6px 16px rgba(38, 120, 110, .24);
  transform: translateY(-1px);
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all:focus-visible {
  outline: 3px solid rgba(40, 181, 164, .35);
  outline-offset: 3px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-slider {
  border-radius: 12px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-review {
  border: 1px solid #edf1ee;
  border-radius: 13px;
  background: #fbfdfb;
  padding: 17px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-review h3 {
  color: #243d32;
  font-size: 15px;
  line-height: 1.45;
  margin: 9px 0 7px;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-review p {
  color: #4c5a52;
  font-size: 14px;
  line-height: 1.7;
}
.tour-detail-page .otto-tripadvisor-reviews-card .otto-review-author {
  color: #52685c;
  font-size: 12px;
  font-weight: 700;
}
@media (max-width: 767px) {
  .tour-detail-page .otto-tripadvisor-reviews-card {
    padding: 16px !important;
    border-radius: 15px !important;
    margin-bottom: 20px !important;
  }
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-reviews-head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 13px;
    padding-bottom: 14px;
    margin-bottom: 14px;
  }
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-title-row h2 {
    font-size: 18px;
  }
  .tour-detail-page .otto-tripadvisor-reviews-card .otto-tripadvisor-all {
    width: 100%;
    min-height: 46px;
  }
}


/* v2.0.35: Remove the Best Time / seasonal sidebar cards on desktop and mobile.
   Keep destination-specific seasonal details in the itinerary unchanged. */
html body .tour-detail-page .tour-best-time-card,
html body .tour-detail-page .otto-mobile-best-time-before-related {
    display: none !important;
}


/* v2.0.36 — Automatically selected seasonal card, positioned immediately before Tripadvisor. */
.otto-auto-season-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin:0 0 16px;padding:18px;background:linear-gradient(145deg,#ffffff 0%,#f7faf6 100%);border:1px solid #dce8df;border-radius:15px;box-shadow:0 7px 22px rgba(8,77,42,.07);overflow-wrap:anywhere}
.otto-auto-season-card *{box-sizing:border-box}
.otto-auto-season-card__header{display:flex;align-items:center;gap:12px;margin:0 0 15px}
.otto-auto-season-card__icon{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:#084D2A;color:#fff;font-size:17px}
.otto-auto-season-card__heading{min-width:0}
.otto-auto-season-card__eyebrow{display:block;margin:0 0 4px;color:#b9692d;font-size:10px;line-height:1.4;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.otto-auto-season-card__heading h2{margin:0;color:#084D2A;font-size:19px;line-height:1.25;font-weight:800}
.otto-auto-season-card__heading p{margin:4px 0 0;color:#5d6a60;font-size:13px;line-height:1.4}
.otto-auto-season-card__details{display:grid;grid-template-columns:1fr;gap:8px}
.otto-auto-season-card__item{min-width:0;padding:11px 12px;border:1px solid #e5ece6;border-radius:10px;background:#fff}
.otto-auto-season-card__item span{display:flex;align-items:center;gap:7px;margin:0 0 5px;color:#637166;font-size:11px;line-height:1.4;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.otto-auto-season-card__item span i{color:#26806a}
.otto-auto-season-card__item strong{display:block;color:#202820;font-size:13px;line-height:1.55;font-weight:600}
.otto-auto-season-card__link,.otto-auto-season-card__link:link,.otto-auto-season-card__link:visited{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;margin:12px 0 0;padding:11px 13px;border-radius:9px;background:#084D2A;color:#fff!important;-webkit-text-fill-color:#fff!important;text-decoration:none!important;font-size:12px;line-height:1.4;font-weight:800}
.otto-auto-season-card__link:hover,.otto-auto-season-card__link:focus{background:#12633a;color:#fff!important;-webkit-text-fill-color:#fff!important}
.otto-auto-season-card__link:focus-visible{outline:3px solid #DEED58;outline-offset:3px}
@media(max-width:767.98px){.tour-detail-page .otto-mobile-late-cards .otto-auto-season-card{margin:0 0 12px;padding:15px;border-radius:13px}.tour-detail-page .otto-auto-season-card__heading h2{font-size:18px}.tour-detail-page .otto-auto-season-card__details{gap:7px}.tour-detail-page .otto-auto-season-card__item{padding:10px 11px}.tour-detail-page .otto-auto-season-card__item strong{font-size:13px}.tour-detail-page .otto-auto-season-card__link{font-size:13px;min-height:46px}}


/* ---------- Premium itinerary pricing cards (v2.0.49) ---------- */
.tour-detail-page .otto-pricing-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,240px);
  gap:22px;
  align-items:center;
  margin:0 0 20px;
  padding:24px;
  border:1px solid #dce8e3;
  border-radius:18px;
  background:linear-gradient(125deg,#f7fbf8 0%,#ffffff 62%,#f4f8e8 100%);
}
.tour-detail-page .otto-pricing-intro-copy{min-width:0}
.tour-detail-page .otto-pricing-eyebrow{
  display:inline-flex;align-items:center;gap:7px;margin:0 0 9px;
  color:#26786e;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase
}
.tour-detail-page .otto-pricing-intro .section-title{
  margin:0 0 9px;color:#084d2a;font-size:clamp(22px,2.4vw,30px);line-height:1.2;font-weight:800
}
.tour-detail-page .otto-pricing-intro-copy p{margin:0;max-width:680px;color:#56645d;font-size:14px;line-height:1.65}
.tour-detail-page .otto-pricing-starting{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  min-height:118px;padding:18px 20px;border-radius:14px;background:#084d2a;color:#fff;
  box-shadow:0 8px 20px rgba(8,77,42,.12)
}
.tour-detail-page .otto-pricing-starting-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#dcebdc}
.tour-detail-page .otto-pricing-starting strong{display:block;margin:4px 0 1px;color:#fff;font-size:clamp(25px,3vw,34px);line-height:1.1;font-weight:850;letter-spacing:-.03em}
.tour-detail-page .otto-pricing-starting span:last-child{font-size:12px;color:#e1ebe4}
.tour-detail-page .otto-rate-period-list{display:grid;gap:18px}
.tour-detail-page .otto-rate-period-card{overflow:hidden;border:1px solid #dce5e1;border-radius:16px;background:#fff;box-shadow:0 5px 20px rgba(23,55,40,.045)}
.tour-detail-page .otto-rate-period-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:17px 20px;background:#f7faf8;border-bottom:1px solid #e5ece8
}
.tour-detail-page .otto-rate-period-kicker{display:flex;align-items:center;gap:7px;margin-bottom:5px;color:#6a786f;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tour-detail-page .otto-rate-period-head h4{margin:0;color:#172b20;font-size:18px;line-height:1.3;font-weight:800;overflow-wrap:anywhere}
.tour-detail-page .otto-period-from{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end}
.tour-detail-page .otto-period-from span,.tour-detail-page .otto-period-from small{font-size:11px;color:#66746b}
.tour-detail-page .otto-period-from strong{color:#c76d2f;font-size:22px;line-height:1.2;font-weight:850}
.tour-detail-page .otto-rate-group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}
.tour-detail-page .otto-rate-group-card{
  display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:118px;
  padding:13px;border:1px solid #e2eae5;border-radius:12px;background:#fff
}
.tour-detail-page .otto-rate-group-card.is-standard-group{border-color:#a8d1bd;background:#f7fbf8;box-shadow:inset 0 0 0 1px rgba(38,120,110,.05)}
.tour-detail-page .otto-rate-group-name{color:#263b2e;font-size:13px;font-weight:800;line-height:1.3}
.tour-detail-page .otto-rate-room{margin-top:3px;color:#7b877f;font-size:10px}
.tour-detail-page .otto-rate-group-price{margin-top:12px;color:#084d2a;font-size:21px;font-weight:850;line-height:1.1;letter-spacing:-.025em;overflow-wrap:anywhere}
.tour-detail-page .otto-rate-group-price--text{font-size:15px;letter-spacing:0}
.tour-detail-page .otto-rate-per-person{margin-top:4px;color:#7b877f;font-size:10px;line-height:1.3}
.tour-detail-page .otto-rate-request{
  display:inline-flex;align-items:center;gap:6px;margin-top:13px;color:#26786e!important;
  font-size:12px;font-weight:800;text-decoration:none!important
}
.tour-detail-page .otto-rate-request:hover{color:#c76d2f!important;text-decoration:underline!important}
.tour-detail-page .otto-pricing-footnote{display:flex;align-items:flex-start;gap:8px;margin:14px 2px 18px;color:#68756d;font-size:12px;line-height:1.55}
.tour-detail-page .otto-pricing-footnote i{margin-top:2px;color:#26786e}
.tour-detail-page .otto-rate-matrix-details{margin-top:16px;border:1px solid #dce5e1;border-radius:12px;background:#fff;overflow:hidden}
.tour-detail-page .otto-rate-matrix-details>summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;
  color:#084d2a;font-size:13px;font-weight:800;cursor:pointer;list-style:none
}
.tour-detail-page .otto-rate-matrix-details>summary::-webkit-details-marker{display:none}
.tour-detail-page .otto-rate-matrix-details>summary:after{content:"";display:none}
.tour-detail-page .otto-rate-matrix-details[open]>summary{border-bottom:1px solid #e5ece8;background:#f7faf8}
.tour-detail-page .otto-rate-matrix-details[open]>summary i{transform:rotate(180deg)}
.tour-detail-page .otto-rate-matrix-details summary i{transition:transform .2s ease}
.tour-detail-page .otto-rate-matrix-details .rates-table-container{border:0;border-radius:0;box-shadow:none}
.tour-detail-page .otto-rate-matrix-details .rates-table{min-width:850px}
.tour-detail-page .otto-rate-matrix-details .get-quote-link{white-space:nowrap}
.tour-detail-page .otto-pricing-empty{
  padding:28px 22px;border:1px solid #dce8e3;border-radius:16px;text-align:center;
  background:linear-gradient(135deg,#f7fbf8,#fff)
}
.tour-detail-page .otto-pricing-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#e4f1e8;color:#26786e;font-size:20px}
.tour-detail-page .otto-pricing-empty h4{margin:12px 0 7px;color:#084d2a;font-size:21px;font-weight:800}
.tour-detail-page .otto-pricing-empty p{max-width:520px;margin:0 auto 16px;color:#5d6a62;font-size:14px;line-height:1.6}
.tour-detail-page .otto-pricing-empty-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 17px;border-radius:9px;background:#e67d3c;color:#fff!important;font-size:13px;font-weight:800;text-decoration:none!important}
.tour-detail-page .otto-pricing-empty-cta:hover{background:#084d2a}
#get-quote-btn-detail{scroll-margin-top:100px}
@media(max-width:900px){
  .tour-detail-page .otto-rate-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:767px){
  .tour-detail-page .otto-pricing-intro{grid-template-columns:1fr;gap:15px;padding:18px;border-radius:14px}
  .tour-detail-page .otto-pricing-starting{min-height:0;padding:14px 16px}
  .tour-detail-page .otto-pricing-starting strong{font-size:28px}
  .tour-detail-page .otto-rate-period-head{align-items:flex-start;padding:15px;gap:10px}
  .tour-detail-page .otto-rate-period-head h4{font-size:16px}
  .tour-detail-page .otto-period-from strong{font-size:19px}
  .tour-detail-page .otto-rate-group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}
  .tour-detail-page .otto-rate-group-card{min-height:108px;padding:11px;border-radius:10px}
  .tour-detail-page .otto-rate-group-price{font-size:19px}
  .tour-detail-page .otto-rate-group-name{font-size:12px}
  .tour-detail-page .otto-rate-matrix-details>summary{padding:14px;font-size:12px}
  .tour-detail-page .otto-pricing-empty{padding:22px 16px}
}
@media(max-width:360px){
  .tour-detail-page .otto-rate-group-grid{grid-template-columns:1fr}
  .tour-detail-page .otto-rate-period-head{flex-direction:column}
  .tour-detail-page .otto-period-from{align-items:flex-start}
}


/* v2.0.50 — Ensure the starting-price amount remains readable against the dark pricing panel,
   even when theme/global typography rules override nested strong/span elements. */
.tour-detail-page .otto-pricing-intro .otto-pricing-starting{
  background:#084d2a !important;
  color:#ffffff !important;
  isolation:isolate;
}
.tour-detail-page .otto-pricing-intro .otto-pricing-starting .otto-pricing-starting-label{
  display:block;
  color:#f0f7f1 !important;
  -webkit-text-fill-color:#f0f7f1 !important;
  opacity:1 !important;
  line-height:1.5;
}
.tour-detail-page .otto-pricing-intro .otto-pricing-starting .otto-pricing-starting-price{
  display:block;
  margin:6px 0 3px;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
  visibility:visible !important;
  font-size:clamp(30px,3.2vw,38px);
  font-weight:900;
  line-height:1.2;
  letter-spacing:0;
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.tour-detail-page .otto-pricing-intro .otto-pricing-starting .otto-pricing-starting-unit{
  display:block;
  margin-top:2px;
  color:#f0f7f1 !important;
  -webkit-text-fill-color:#f0f7f1 !important;
  opacity:1 !important;
  font-size:13px;
  line-height:1.5;
}
@media(max-width:767px){
  .tour-detail-page .otto-pricing-intro .otto-pricing-starting .otto-pricing-starting-price{
    font-size:30px;
  }
}


/* =========================================================
   INCLUSIONS & EXCLUSIONS — readable, responsive redesign
   Keeps the existing tab visibility and saved admin content.
   ========================================================= */
.tour-detail-page #inclusions .inclusions-intro{
  margin:0 0 22px;
  padding:0 0 18px;
  border-bottom:1px solid var(--otto-border);
}
.tour-detail-page #inclusions .inclusions-section-heading{
  margin:0 0 7px;
  color:var(--otto-heading) !important;
  font-size:clamp(22px,2.4vw,30px) !important;
  line-height:1.25;
  font-weight:750;
  letter-spacing:-.025em;
}
.tour-detail-page #inclusions .inclusions-intro > p{
  margin:0;
  max-width:760px;
  color:#535D56 !important;
  font-size:15px;
  line-height:1.7;
}
.tour-detail-page #inclusions .inclusions-container{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:20px;
  margin:0;
}
.tour-detail-page #inclusions .inclusions-column{
  min-width:0;
  padding:0;
  overflow:hidden;
  border:1px solid #DDE8E1;
  border-radius:17px;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(22,55,38,.055);
}
.tour-detail-page #inclusions .included-column{
  border-top:4px solid #26786E;
}
.tour-detail-page #inclusions .excluded-column{
  border-top:4px solid #C45C4D;
}
.tour-detail-page #inclusions .inclusions-header{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0;
  padding:20px 22px;
  border-bottom:1px solid #E8EEEA;
  background:#F5FAF6;
}
.tour-detail-page #inclusions .excluded-column .inclusions-header{
  background:#FFF8F6;
}
.tour-detail-page #inclusions .inclusion-icon{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:13px;
  font-size:17px;
}
.tour-detail-page #inclusions .included-icon{
  background:#DDF2E6 !important;
  color:#176746 !important;
}
.tour-detail-page #inclusions .excluded-icon{
  background:#FBE5E1 !important;
  color:#9F382E !important;
}
.tour-detail-page #inclusions .inclusions-heading-copy{
  min-width:0;
}
.tour-detail-page #inclusions .inclusions-title{
  margin:0 !important;
  color:#20352A !important;
  font-size:20px !important;
  line-height:1.3;
  font-weight:750 !important;
}
.tour-detail-page #inclusions .inclusions-subtitle{
  margin:4px 0 0 !important;
  color:#59675E !important;
  font-size:13px !important;
  line-height:1.45;
}
.tour-detail-page #inclusions .inclusions-list{
  list-style:none !important;
  display:flex;
  flex-direction:column;
  gap:0;
  margin:0 !important;
  padding:8px 22px 14px !important;
}
.tour-detail-page #inclusions .inclusions-list li.inclusion-item{
  display:flex;
  align-items:flex-start;
  gap:11px;
  min-width:0;
  margin:0 !important;
  padding:13px 0 !important;
  border-bottom:1px solid #EDF1EE;
  color:#29372F !important;
  font-size:15px !important;
  line-height:1.6 !important;
}
.tour-detail-page #inclusions .inclusions-list li.inclusion-item:last-child{
  border-bottom:0;
}
.tour-detail-page #inclusions .inclusion-item-icon{
  display:grid;
  place-items:center;
  flex:0 0 23px;
  width:23px;
  height:23px;
  margin-top:1px;
  border-radius:50%;
  font-size:11px;
}
.tour-detail-page #inclusions .included-item-icon{
  color:#176746 !important;
  background:#E1F3E8;
}
.tour-detail-page #inclusions .excluded-item-icon{
  color:#A13D32 !important;
  background:#FCEAE7;
}
.tour-detail-page #inclusions .inclusion-item-copy{
  min-width:0;
  flex:1 1 auto;
  overflow-wrap:anywhere;
}
.tour-detail-page #inclusions .inclusions-list li strong.inclusion-title{
  display:block;
  margin:0;
  color:#25362C !important;
  font-size:15px !important;
  font-weight:650 !important;
  line-height:1.55;
}
.tour-detail-page #inclusions .inclusion-note{
  display:block;
  margin:4px 0 0 !important;
  color:#59675F !important;
  font-size:13px !important;
  font-weight:400 !important;
  line-height:1.6;
}
.tour-detail-page #inclusions .inclusion-empty{
  margin:0 !important;
  padding:15px 0 !important;
  color:#59675F !important;
  font-size:14px !important;
  line-height:1.65;
  overflow-wrap:anywhere;
}
@media (max-width: 767px){
  .tour-detail-page #inclusions .inclusions-intro{
    margin-bottom:16px;
    padding-bottom:14px;
  }
  .tour-detail-page #inclusions .inclusions-section-heading{
    font-size:23px !important;
  }
  .tour-detail-page #inclusions .inclusions-intro > p{
    font-size:14px;
    line-height:1.65;
  }
  .tour-detail-page #inclusions .inclusions-container{
    grid-template-columns:minmax(0,1fr);
    gap:15px;
  }
  .tour-detail-page #inclusions .inclusions-header{
    padding:16px;
    gap:11px;
  }
  .tour-detail-page #inclusions .inclusion-icon{
    flex-basis:38px;
    width:38px;
    height:38px;
    border-radius:11px;
  }
  .tour-detail-page #inclusions .inclusions-title{
    font-size:19px !important;
  }
  .tour-detail-page #inclusions .inclusions-list{
    padding:5px 16px 9px !important;
  }
  .tour-detail-page #inclusions .inclusions-list li.inclusion-item{
    gap:9px;
    padding:12px 0 !important;
    font-size:14px !important;
  }
  .tour-detail-page #inclusions .inclusions-list li strong.inclusion-title{
    font-size:14px !important;
  }
  .tour-detail-page #inclusions .inclusion-note{
    font-size:13px !important;
  }
}
@media (prefers-reduced-motion: reduce){
  .tour-detail-page #inclusions *{
    scroll-behavior:auto !important;
    transition:none !important;
  }
}
