/* =========================================================
   SINGLE TOUR PACKAGE — detail page (shared by every package)
   ========================================================= */
.tt-breadcrumb { padding: 18px 24px; font-size: 0.85rem; color: var(--color-gray); display: flex; gap: 8px; flex-wrap: wrap; }
.tt-breadcrumb a { color: var(--color-gray); }
.tt-breadcrumb a:hover { color: var(--color-navy); }
.tt-breadcrumb span[aria-current] { color: var(--color-navy); font-weight: 600; }

/* Header block */
.tt-tour-header { padding-bottom: 24px; }
.tt-tour-header h1 { font-size: clamp(1.6rem, 4vw, 2.4rem); margin: 8px 0 6px; }
.tt-tour-location {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--color-gray); font-size: 0.92rem; margin-bottom: 20px;
}
.tt-tour-location svg { color: var(--color-navy); flex-shrink: 0; }

.tt-quick-facts {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
  border-top: 1px solid var(--color-gray-border); border-bottom: 1px solid var(--color-gray-border);
  padding: 20px 0;
}
.tt-quick-fact { display: flex; align-items: center; gap: 12px; }
.tt-quick-fact svg { width: 26px; height: 26px; color: var(--color-navy); flex-shrink: 0; }
.tt-quick-fact span { display: block; font-size: 0.78rem; color: var(--color-gray); text-transform: uppercase; letter-spacing: 0.03em; }
.tt-quick-fact strong { display: block; font-size: 0.95rem; color: var(--color-black); }

@media (min-width: 768px) {
  .tt-quick-facts { grid-template-columns: repeat(4, 1fr); }
}

/* Gallery */
.tt-tour-gallery { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 40px; }
.tt-tour-gallery-main-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius-lg); background: var(--color-gray-light); }
.tt-tour-gallery-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.tt-tour-gallery-thumb { border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 1; }
.tt-tour-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); }
.tt-tour-gallery-thumb:hover img { transform: scale(1.08); }

/* Layout */
.tt-tour-layout { display: grid; grid-template-columns: 1fr; gap: 40px; padding-bottom: 60px; align-items: start; }
.tt-tour-highlights, .tt-tour-itinerary { margin-bottom: 36px; }
.tt-tour-highlights h2, .tt-tour-itinerary h2 { font-size: 1.4rem; margin-bottom: 16px; }
.tt-tour-highlights ul { display: grid; grid-template-columns: 1fr; gap: 10px; }
.tt-tour-highlights li { position: relative; padding-left: 28px; color: var(--color-black); font-size: 0.95rem; }
.tt-tour-highlights li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--color-navy); font-weight: 700; }

.tt-tour-itinerary-intro { color: var(--color-gray); font-style: italic; margin-bottom: 20px; line-height: 1.7; }
.tt-tour-content { color: var(--color-black); line-height: 1.8; }

/* Itinerary accordion */
.tt-itinerary-accordion { border-top: 1px solid var(--color-gray-border); }
.tt-itinerary-item { border-bottom: 1px solid var(--color-gray-border); }
.tt-itinerary-day-toggle {
  width: 100%; display: flex; align-items: center; gap: 14px;
  padding: 16px 4px; text-align: left; border-left: 3px solid var(--color-gray-border);
  padding-left: 16px; transition: var(--transition);
}
.tt-itinerary-item.is-open .tt-itinerary-day-toggle { border-left-color: var(--color-navy); background: var(--color-gray-light); }
.tt-itinerary-day-num {
  flex-shrink: 0; font-family: var(--font-heading); font-weight: 600; font-size: 0.85rem;
  color: var(--color-navy); background: var(--color-gray-light); padding: 4px 12px; border-radius: 999px;
}
.tt-itinerary-item.is-open .tt-itinerary-day-num { background: var(--color-white); }
.tt-itinerary-day-title { flex: 1; font-weight: 600; color: var(--color-black); font-size: 0.98rem; }
.tt-itinerary-chevron { color: var(--color-navy); transition: transform 0.25s ease; flex-shrink: 0; }
.tt-itinerary-item.is-open .tt-itinerary-chevron { transform: rotate(180deg); }
.tt-itinerary-day-body { padding: 0 16px 18px 33px; }
.tt-itinerary-day-body p { color: var(--color-gray); font-size: 0.92rem; line-height: 1.7; }

.tt-itinerary-meta {
  margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--color-gray-border);
  font-size: 0.85rem; color: var(--color-gray);
}
.tt-itinerary-meta strong { color: var(--color-navy); }

/* Sidebar */
.tt-tour-sidebar { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 20px; }

.tt-stay-connected {
  background: var(--color-navy); border-radius: var(--radius-lg); padding: 22px;
}
.tt-stay-connected h3 { color: var(--color-white); font-size: 1.05rem; margin-bottom: 14px; }
.tt-stay-connected-row {
  display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,0.9);
  font-size: 0.9rem; padding: 8px 0; border-top: 1px solid rgba(255,255,255,0.12);
}
.tt-stay-connected-row:first-of-type { border-top: none; }
.tt-stay-connected-row svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--color-white); }
.tt-stay-connected-row:hover { color: var(--color-white); }

.tt-tour-price-box {
  background: var(--color-gray-light); border-radius: var(--radius-lg); padding: 24px 20px;
  border: 1px solid var(--color-gray-border);
}
.tt-tour-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.tt-enquiry-form-title { font-size: 1rem; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--color-gray-border); }

.tt-enquiry-form-detail { display: grid; grid-template-columns: 1fr; gap: 12px; }
.tt-enquiry-form-detail .tt-form-row label { font-size: 0.8rem; }
.tt-enquiry-form-detail input, .tt-enquiry-form-detail select { font-size: 0.88rem; padding: 10px 12px; }
.tt-enquiry-form-detail input[readonly] { background: var(--color-gray-light); color: var(--color-gray); }

.tt-phone-input { display: grid; grid-template-columns: 90px 1fr; gap: 8px; }
.tt-phone-input select {
  padding: 10px 6px; border: 1px solid var(--color-gray-border); border-radius: var(--radius-sm);
  background: var(--color-white); font-size: 0.85rem;
}

.tt-captcha-row .tt-captcha-input { display: flex; align-items: center; gap: 10px; }
.tt-captcha-row .tt-captcha-input span {
  font-family: var(--font-heading); font-weight: 600; color: var(--color-navy);
  background: var(--color-white); border: 1px solid var(--color-gray-border);
  border-radius: var(--radius-sm); padding: 10px 14px; white-space: nowrap;
}
.tt-captcha-row .tt-captcha-input input { flex: 1; }

.tt-tour-related { padding-bottom: 70px; }

@media (min-width: 1024px) {
  .tt-tour-layout { grid-template-columns: 2fr 1fr; }
}
