/*
Theme Name: Himalaya Trek Pro
Theme URI: https://blissfulnepal.com
Author: Sanjib
Author URI: https://blissfulnepal.com
Description: A production-ready WordPress theme for Nepal trekking, tour, and adventure travel businesses. Built for tour listings, itineraries, bookings, and travel blogs.
Version: 5.5.5
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: himalaya-trek-pro
Tags: travel, tour-booking, custom-colors, custom-menu, custom-logo, featured-images, blog, e-commerce

Himalaya Trek Pro is distributed under the terms of the GNU GPL.
*/

/* =========================================================
   BRAND VARIABLES — adjust these to match your final logo/branding
   ========================================================= */
:root{
  --htp-primary: #1768c9;      /* blue — links, headings accent, primary CTA */
  --htp-primary-dark: #0f4f9e;
  --htp-accent: #16a34a;       /* green — secondary CTA, checkmarks */
  --htp-accent-dark: #0f7d39;
  --htp-red: #dc2f3f;          /* discount badges only */
  --htp-dark: #16212e;         /* header/footer */
  --htp-cream: #f7f8fa;        /* light neutral background */
  --htp-text: #222831;
  --htp-muted: #6b7280;
  --htp-border: #e3e6ea;
  --htp-white: #ffffff;
  --htp-radius: 6px;
  --htp-shadow: 0 1px 3px rgba(16,24,32,0.08);
  --htp-font-heading: 'Poppins', sans-serif;
  --htp-font-body: 'Inter', sans-serif;
}

* { box-sizing: border-box; }

html { }
body {
  font-family: var(--htp-font-body);
  color: var(--htp-text);
  background: var(--htp-cream);
  margin: 0;
  line-height: 1.55;
  font-size: 14.5px;
}

h1,h2,h3,h4,h5,h6 {
  font-family: var(--htp-font-heading);
  color: var(--htp-dark);
  line-height: 1.2;
  font-weight: 600;
  margin: 0 0 0.5em;
}

a { color: var(--htp-primary); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--htp-accent); }

img { max-width: 100%; height: auto; display: block; }

.container { max-width: 1280px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
@media (max-width: 900px) { .container { padding: 0 24px; } }
@media (max-width: 600px) { .container { padding: 0 16px; } }

.btn {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 999px;
  background: var(--htp-accent);
  color: var(--htp-white);
  font-weight: 600;
  font-size: 13.5px;
  border: none;
  cursor: pointer;
  transition: background .15s ease, transform .1s ease;
}
.btn:hover { background: var(--htp-accent-dark); color: var(--htp-white); transform: translateY(-1px); }
.btn-outline {
  background: transparent;
  border: 2px solid var(--htp-white);
  color: var(--htp-white);
}
.btn-outline:hover { background: var(--htp-white); color: var(--htp-primary-dark); }
.btn-primary { background: var(--htp-primary); }
.btn-primary:hover { background: var(--htp-primary-dark); }

/* =========================================================
   HEADER
   ========================================================= */
.site-header {
  background: var(--htp-dark);
  position: sticky;
  top: 0;
  z-index: 999;
}
.site-header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
}
.site-branding { display: flex; align-items: center; gap: 12px; }
.site-branding .site-title {
  color: var(--htp-white);
  font-size: 22px;
  font-weight: 700;
  margin: 0;
}
.site-branding .site-title a { color: var(--htp-white); }
.site-branding img.custom-logo { max-height: 48px; width: auto; }

.main-navigation ul {
  list-style: none;
  display: flex;
  gap: 28px;
  margin: 0;
  padding: 0;
}
.main-navigation a {
  color: var(--htp-white);
  font-weight: 500;
  font-size: 15px;
}
.main-navigation a:hover { color: var(--htp-accent); }
.main-navigation .header-cta {
  background: var(--htp-accent);
  padding: 10px 22px;
  border-radius: 999px;
  color: var(--htp-white) !important;
}

.menu-toggle { display: none; background: none; border: none; color: var(--htp-white); font-size: 26px; cursor: pointer; }

@media (max-width: 880px) {
  .main-navigation { display: none; width: 100%; }
  .main-navigation.is-open { display: block; }
  .main-navigation ul { flex-direction: column; gap: 0; }
  .main-navigation li { border-top: 1px solid rgba(255,255,255,.1); }
  .main-navigation a { display: block; padding: 14px 4px; }
  .site-header .header-inner { flex-wrap: wrap; }
  .menu-toggle { display: block; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, rgba(20,30,22,.55), rgba(20,30,22,.75)), var(--htp-dark) center/cover no-repeat;
  color: var(--htp-white);
  padding-bottom: 80px; /* extra space so search bar overlaps cleanly */
}
.hero.has-image { background-image: linear-gradient(180deg, rgba(20,30,22,.45), rgba(20,30,22,.75)), var(--bg-image); background-size: cover; background-position: center; }
.hero-content { max-width: 720px; }
.hero-content .eyebrow {
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--htp-accent);
  font-weight: 600;
  font-size: 13px;
}
.hero-content h1 { font-size: 48px; color: var(--htp-white); margin-top: 12px; }
.hero-content p { font-size: 17px; color: #e9e9e4; max-width: 560px; margin-top: 12px; }
.hero-actions { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }

/* Quick search / booking strip */
.quick-search {
  background: var(--htp-white);
  border-radius: var(--htp-radius);
  box-shadow: 0 4px 24px rgba(0,0,0,.12);
  padding: 24px;
  margin-top: -60px;
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr auto;
  gap: 14px;
  align-items: end;
}
.quick-search label { font-size: 12px; font-weight: 600; color: var(--htp-muted); display:block; margin-bottom: 6px; }
.quick-search select, .quick-search input {
  width: 100%; padding: 10px 12px; border-radius: 6px; border: 1px solid var(--htp-border); font-size: 14px;
}
@media (max-width: 880px){ .quick-search { grid-template-columns: 1fr; margin-top: 20px; } }

/* =========================================================
   SECTIONS / GRIDS
   ========================================================= */
.section { padding: 48px 0; }
.section-head { text-align: center; max-width: 680px; margin: 0 auto 28px; }
.section-head .eyebrow { color: var(--htp-accent); font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: 1.2px; }
.section-head h2 { font-size: 26px; margin-top: 6px; }
.section-alt { background: var(--htp-white); }

.grid { display: grid; gap: 28px; }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px){ .grid-3, .grid-4 { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .grid-3, .grid-4 { grid-template-columns: 1fr; } }

/* Trip Highlights — no double bullet */
.highlight-list { list-style: none; padding: 0; margin: 0; }
.highlight-list li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f2f5; font-size: 15px; color: #333; line-height: 1.5; }
.highlight-list li:last-child { border-bottom: none; }

/* Itinerary heading row — h2 left, Expand All right */
.itinerary-heading-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.itinerary-heading-row h2 { margin: 0; }

/* Cost Includes / Excludes lists */
.cost-list { list-style: none; padding: 0; margin: 12px 0 0; }
.cost-list li { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f0f2f5; font-size: 14.5px; color: #333; line-height: 1.5; }
.cost-list li:last-child { border-bottom: none; }
.cost-icon { width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.cost-icon-include { background: #1768c9; }
.cost-icon-exclude { background: #f97316; }

/* Tour title bar */
/* Tour title bar */
.tour-title-bar { padding: 20px 0 4px; border-top: none; }
.tour-title-bar h1 { margin: 4px 0 8px; font-size: 30px; font-weight: 800; color: #1a2637; }
.tour-short-desc { font-size: 15px; color: #555; margin: 0 0 10px; line-height: 1.6; }
.tour-title-stars { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; font-size: 14px; flex-wrap: wrap; }
.tour-title-stars a { color: var(--htp-primary); text-decoration: underline; }
.tour-short-desc { font-size: 15px; color: #555; margin: 0 0 10px; line-height: 1.6; max-width: 760px; }
.tour-title-stars { display: flex; align-items: center; gap: 4px; margin-bottom: 6px; font-size: 14px; color: #6b7280; flex-wrap: wrap; }


/* Departure cards — month-filtered grid */
.dep-intro { background:#f0f4ff; border-left:4px solid var(--htp-primary); padding:14px 18px; border-radius:0 6px 6px 0; font-size:14px; color:#444; margin:0 0 20px; }
.dep-year-row { display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:14px; font-weight:600; }
.dep-year-row select { padding:6px 12px; border:1px solid #dde; border-radius:6px; font-size:14px; }
.dep-month-tabs { display:flex; gap:0; border:1px solid #dde; border-radius:8px; overflow:hidden; margin-bottom:20px; flex-wrap:wrap; }
.dep-month-tab { flex:1; min-width:60px; padding:10px 4px; border:none; background:#fff; font-size:12px; font-weight:700; letter-spacing:.04em; cursor:pointer; border-right:1px solid #dde; color:#888; }
.dep-month-tab:last-child { border-right:none; }
.dep-month-tab.active { background:var(--htp-primary); color:#fff; }
.dep-month-tab[disabled] { background:#f9f9f9; color:#ccc; cursor:default; }
.dep-cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media(max-width:880px){ .dep-cards-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .dep-cards-grid { grid-template-columns:1fr; } }
.dep-card { border:1px solid #e5e7eb; border-radius:10px; padding:18px; background:#fff; display:flex; flex-direction:column; gap:12px; }
.dep-card-dates { display:flex; align-items:flex-start; gap:10px; }
.dep-card-loc { font-size:12px; color:var(--htp-primary); font-weight:600; }
.dep-card-date { font-size:14px; font-weight:700; color:#1a2637; }
.dep-card-status { display:inline-flex; align-items:center; gap:6px; padding:5px 14px; border-radius:999px; font-size:12px; font-weight:800; letter-spacing:.04em; width:fit-content; }
.dep-status-guaranteed { background:#fef3c7; color:#92400e; }
.dep-status-available  { background:#d1fae5; color:#065f46; }
.dep-status-limited-spaces { background:#fee2e2; color:#991b1b; }
.dep-card-price { font-size:12px; color:#9ca3af; }
.dep-card-amount { font-size:22px; font-weight:800; color:#1a2637; }
.dep-card-amount span { font-size:13px; font-weight:400; color:#9ca3af; }
.dep-book-btn { display:block; text-align:center; background:#16a34a; color:#fff; border:none; border-radius:6px; padding:12px; font-size:14px; font-weight:700; cursor:pointer; text-decoration:none; margin-top:auto; }
.dep-book-btn:hover { background:#15803d; }
.dep-book-btn[disabled] { background:#9ca3af; cursor:not-allowed; }

/* All Inclusive Price block */
.all-inclusive-block { background:#e8f4fd; border-radius:8px; padding:16px; display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.ai-label { font-size:14px; color:#1a2637; font-weight:600; margin-bottom:4px; }
.ai-orig { text-decoration:line-through; color:#9ca3af; font-size:13px; display:block; }
.ai-amount { font-size:30px; font-weight:900; color:#1a2637; }
.ai-currency { font-size:14px; font-weight:700; color:#1a2637; margin-left:3px; }
.ai-depart { font-size:11px; color:#e53e3e; font-weight:700; margin-top:6px; letter-spacing:.03em; }
.ai-badge { flex-shrink:0; }

/* Booking box redesign */
.booking-box-header { background:var(--htp-primary); color:#fff; font-weight:800; font-size:15px; text-align:center; padding:12px; margin:-20px -20px 16px; border-radius:10px 10px 0 0; }
.booking-stars { display:flex; align-items:center; gap:4px; margin-bottom:12px; font-size:13px; color:#6b7280; flex-wrap:wrap; }
.bstar.full { color:#f59e0b; } .bstar.empty { color:#d1d5db; }
.booking-no-fee { font-size:13px; margin:0 0 10px; color:#374151; }
.booking-no-fee span { color:var(--htp-primary); font-weight:600; }
.btn-green { background:#16a34a !important; color:#fff !important; }
.btn-green:hover { background:#15803d !important; }


/* =========================================================
   SPECIALIST CTA SECTION
   ========================================================= */
.specialist-cta-section { padding: 50px 0; background: #fff; border-top: 1px solid #e8ecf0; }
.specialist-heading { text-align: center; font-size: 22px; font-weight: 700; color: #1a2637; max-width: 700px; margin: 0 auto 36px; line-height: 1.4; }
.specialist-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.specialist-team { display: flex; gap: 20px; align-items: flex-end; flex-wrap: wrap; }
.specialist-member { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.specialist-member img { width: 120px; height: 120px; object-fit: cover; border-radius: 4px; display: block; }
.specialist-placeholder { width: 120px; height: 120px; background: #cde; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 36px; font-weight: 700; color: #fff; }
.specialist-member span { font-size: 14px; color: #555; font-weight: 500; }
.specialist-contact { text-align: center; min-width: 220px; }
.specialist-avail { font-size: 14px; color: #777; margin: 0 0 6px; }
.specialist-phone { display: block; font-size: 28px; font-weight: 900; color: #1a2637; text-decoration: none; margin-bottom: 18px; }
.specialist-phone:hover { color: var(--htp-primary); }
.specialist-btn { display: inline-block; background: #1768c9; color: #fff; padding: 14px 28px; border-radius: 999px; font-size: 15px; font-weight: 700; text-decoration: none; }
.specialist-btn:hover { background: #0f4f9e; }
@media (max-width: 760px) { .specialist-inner { flex-direction: column; align-items: center; } .specialist-team { justify-content: center; } }

.tour-card {
  background: var(--htp-white);
  border-radius: var(--htp-radius);
  overflow: hidden;
  box-shadow: var(--htp-shadow);
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
  text-decoration: none;
}
.tour-card:hover { transform: translateY(-3px); box-shadow: 0 6px 24px rgba(0,0,0,.12); }
.tour-card .thumb { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.tour-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.tour-card:hover .thumb img { transform: scale(1.04); }
.tour-card .badge {
  position: absolute; top: 12px; left: 12px;
  background: var(--htp-accent); color: var(--htp-white);
  font-size: 11px; font-weight: 700; padding: 4px 12px; border-radius: 999px; text-transform: uppercase; letter-spacing: .03em;
}
.tour-card .body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.tour-card h3 { font-size: 16px; font-weight: 700; margin: 0; }
.tour-card h3 a { color: #1768c9 !important; text-decoration: none; }
.tour-card h3 a:hover { color: #0f4f9e !important; text-decoration: underline; text-underline-offset: 3px; }

/* Card action row — Inquire button + View Details */
.card-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.card-inquire-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: #d63384; color: #fff;
  border: none; border-radius: 6px;
  padding: 10px 20px; font-size: 14px; font-weight: 700;
  cursor: pointer; transition: background .15s ease;
  white-space: nowrap;
}
.card-inquire-btn:hover { background: #b5236d; }
.card-inquire-btn svg { flex-shrink: 0; }

.card-view-details {
  display: inline-flex; align-items: center; gap: 5px;
  color: var(--htp-muted); font-size: 13px; font-weight: 500;
  text-decoration: none; white-space: nowrap;
}
.card-view-details:hover { color: var(--htp-primary); }
.card-view-details svg { flex-shrink: 0; color: var(--htp-muted); }

.card-meta-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--htp-muted); margin-bottom: 4px; }
.card-duration { color: var(--htp-muted); font-size: 13px; }
.card-meta-sep { color: #d0d5dd; font-size: 15px; }
.card-stars { display: flex; gap: 2px; }
.star { font-size: 15px; line-height: 1; }
.star.full  { color: #f59e0b !important; }
.star.half  { color: #f59e0b !important; opacity: .55; }
.star.empty { color: #d1d5db !important; }
.card-review-count { color: #6b7280; font-size: 13px; }

/* Price row — strikethrough orig, then bold green discounted */
.card-price-row { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--htp-border); flex-wrap: wrap; }
.card-orig-price { text-decoration: line-through !important; color: #9ca3af !important; font-size: 14px; font-weight: 500; }
.card-price { color: #16a34a !important; font-weight: 800 !important; font-size: 20px; }

/* Region / category pills */
.region-pill {
  display: inline-block; padding: 6px 16px; border: 1px solid var(--htp-border);
  border-radius: 999px; font-size: 13px; color: var(--htp-text); margin: 4px;
}
.region-pill:hover, .region-pill.active { background: var(--htp-primary); color: var(--htp-white); border-color: var(--htp-primary); }

/* Stats strip */
.stats-strip { background: var(--htp-primary); color: var(--htp-white); padding: 40px 0; }
.stats-strip .grid-4 { text-align: center; }
.stats-strip .stat-num { font-size: 36px; font-weight: 800; font-family: var(--htp-font-heading); }
.stats-strip .stat-label { font-size: 14px; opacity: .85; }

/* Testimonials */
.testimonial-card {
  background: var(--htp-white); border-radius: var(--htp-radius); padding: 26px;
  box-shadow: var(--htp-shadow);
}
.testimonial-card .stars { color: var(--htp-accent); margin-bottom: 10px; }
.testimonial-card .author { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.testimonial-card .author img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.testimonial-card .author strong { display: block; font-size: 14px; }
.testimonial-card .author span { font-size: 12px; color: var(--htp-muted); }

/* =========================================================
   TOUR DETAIL PAGE
   ========================================================= */
.tour-hero { position: relative; }
.tour-hero img { width: 100%; max-height: 480px; object-fit: cover; }
/* tour-detail-layout, tour-main, tour-sidebar — see sticky-tab-nav block above */
.tour-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--htp-border); margin-bottom: 24px; flex-wrap: wrap; }
.tour-tabs button {
  background: none; border: none; padding: 12px 18px; font-weight: 600; color: var(--htp-muted); cursor: pointer; border-bottom: 3px solid transparent; font-size: 14px;
}
.tour-tabs button.active { color: var(--htp-primary); border-color: var(--htp-accent); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

.itinerary-day {
  border-left: 3px solid var(--htp-primary);
  padding: 4px 0 18px 20px;
  position: relative;
  margin-left: 6px;
}
.itinerary-day::before {
  content: ''; position: absolute; left: -9px; top: 4px; width: 14px; height: 14px;
  border-radius: 50%; background: var(--htp-accent);
}
.itinerary-day h4 { margin-bottom: 6px; font-size: 16px; }

.tour-sidebar { position: sticky; top: var(--htp-sidebar-top, 140px); }
.booking-box {
  background: var(--htp-white); border-radius: var(--htp-radius); box-shadow: var(--htp-shadow); padding: 26px;
}
.booking-box .price-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 18px; }
.booking-box .price-row .amount { font-size: 28px; font-weight: 800; color: var(--htp-primary); }
.booking-box label { font-size: 13px; font-weight: 600; display: block; margin: 14px 0 6px; }
.booking-box input, .booking-box select { width: 100%; padding: 10px 12px; border: 1px solid var(--htp-border); border-radius: 6px; }
.booking-box .btn { width: 100%; margin-top: 18px; text-align: center; }
.facts-list { list-style: none; padding: 0; margin: 20px 0 0; font-size: 14px; }
.facts-list li { display: flex; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--htp-border); }
.facts-list li:first-child { border-top: none; }

/* =========================================================
   EXPANDED TOUR DETAIL SECTIONS (facts grid, departures, addons, FAQ, reviews)
   ========================================================= */
.trip-facts-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid #d1d9e0; border-radius: 8px; overflow: hidden; margin: 16px 0 24px; background: #fff; }
.trip-facts-grid .fact { display: flex; align-items: flex-start; gap: 12px; padding: 16px 14px; border-right: 1px solid #d1d9e0; border-bottom: 1px solid #d1d9e0; }
.trip-facts-grid .fact:nth-child(4n) { border-right: none; }
.trip-facts-grid .fact:nth-last-child(-n+4) { border-bottom: none; }
.trip-facts-grid .fact .fact-icon { width: 36px; height: 36px; flex-shrink: 0; background: #eef3fb; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #1768c9; }
.trip-facts-grid .fact .fact-text { flex: 1; }
.trip-facts-grid .fact .fact-text .label { font-size: 11px; text-transform: uppercase; color: #9ca3af; letter-spacing: .05em; margin-bottom: 2px; font-weight: 600; display: block; }
.trip-facts-grid .fact .fact-text .value { font-size: 14px; font-weight: 700; color: #1a2637; line-height: 1.3; display: block; }
@media (max-width:760px){ .trip-facts-grid { grid-template-columns: repeat(2,1fr); } .trip-facts-grid .fact:nth-child(4n) { border-right: 1px solid #d1d9e0; } .trip-facts-grid .fact:nth-child(2n) { border-right: none; } .trip-facts-grid .fact:nth-last-child(-n+4) { border-bottom: 1px solid #d1d9e0; } .trip-facts-grid .fact:nth-last-child(-n+2) { border-bottom: none; } }

.price-discount-row { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.price-discount-row .original { text-decoration: line-through; color: var(--htp-muted); font-size: 16px; }
.price-discount-row .badge-discount { background: var(--htp-red); color: #fff; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }

.departure-card {
  display: grid; grid-template-columns: 1fr 1fr auto auto; gap: 14px; align-items: center;
  border: 1px solid var(--htp-border); border-radius: var(--htp-radius); padding: 16px; margin-bottom: 12px;
}
.departure-card .label { font-size: 11px; text-transform: uppercase; color: var(--htp-muted); margin-bottom: 2px; }
.departure-card .value { font-weight: 600; font-size: 14px; }
.departure-card .status { background: var(--htp-primary); color: #fff; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; text-align: center; }
@media (max-width: 760px){ .departure-card { grid-template-columns: 1fr 1fr; } }

.addon-row { display: flex; justify-content: space-between; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--htp-border); gap: 14px; }
.addon-row h4 { font-size: 15px; margin: 0 0 4px; }
.addon-row p { font-size: 13px; color: var(--htp-muted); margin: 0; }
.addon-row .addon-price { font-weight: 700; color: var(--htp-primary); white-space: nowrap; }

.faq-item { border-bottom: 1px solid var(--htp-border); }
.faq-item .faq-q { width: 100%; text-align: left; background: none; border: none; padding: 16px 0; font-weight: 600; font-size: 15px; cursor: pointer; display: flex; justify-content: space-between; }
.faq-item .faq-a { display: none; padding: 0 0 16px; font-size: 14px; color: var(--htp-muted); }
.faq-item.open .faq-a { display: block; }
.faq-item .faq-q .icon { transition: transform .2s ease; }
.faq-item.open .faq-q .icon { transform: rotate(45deg); }

.review-card { border: 1px solid var(--htp-border); border-radius: var(--htp-radius); padding: 20px; margin-bottom: 14px; }
.review-card .stars { color: var(--htp-accent); font-size: 14px; margin-bottom: 6px; }
.review-card .reviewer { font-size: 13px; color: var(--htp-muted); margin-top: 10px; }

.video-embed-wrap { position: relative; aspect-ratio: 16/9; border-radius: var(--htp-radius); overflow: hidden; margin: 16px 0; }
.video-embed-wrap iframe { width: 100%; height: 100%; border: none; }

.useful-info-section { margin-bottom: 26px; }
.useful-info-section h3 { font-size: 18px; margin-bottom: 10px; color: var(--htp-primary); }
.useful-info-section p { white-space: pre-line; font-size: 14px; color: var(--htp-text); }

/* =========================================================
   TOP-OF-PAGE PHOTO GALLERY
   ========================================================= */
.top-gallery-full { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, 1fr); gap: 6px; height: 480px; width: 100%; margin: 0; }
.top-gallery-full img { width: 100%; height: 100%; object-fit: cover; cursor: pointer; }
.top-gallery-full a:first-child { grid-row: span 2; }
.top-gallery-full .more-overlay { position: relative; }
.top-gallery-full .more-overlay::after {
  content: attr(data-more); position: absolute; inset: 0; background: rgba(0,0,0,.55);
  color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px;
}
@media (max-width: 880px){ .top-gallery-full { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3,1fr); height: 320px; } .top-gallery-full a:first-child { grid-row: span 1; grid-column: span 2; } }

/* Adapt grid when there are fewer than 5 photos */
.top-gallery-full.count-1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.top-gallery-full.count-1 a:first-child { grid-row: span 1; }
.top-gallery-full.count-2 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
.top-gallery-full.count-2 a:first-child { grid-row: span 1; }
.top-gallery-full.count-3 { grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; }
.top-gallery-full.count-3 a:first-child { grid-row: span 2; }
.top-gallery-full.count-4 { grid-template-columns: 1.4fr 1fr; grid-template-rows: 1fr 1fr; }
.top-gallery-full.count-4 a:first-child { grid-row: span 2; }

.lightbox-overlay {
  display: none; position: fixed; inset: 0; background: rgba(10,15,12,.92); z-index: 9999;
  align-items: center; justify-content: center;
}
.lightbox-overlay.open { display: flex; }
.lightbox-overlay img { max-width: 90%; max-height: 85vh; border-radius: 6px; }
.lightbox-close { position: absolute; top: 24px; right: 30px; color: #fff; font-size: 32px; cursor: pointer; background: none; border: none; }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.15); border: none; color: #fff; font-size: 28px; padding: 14px 18px; cursor: pointer; border-radius: 4px; }
.lightbox-prev { left: 24px; }
.lightbox-next { right: 24px; }

/* =========================================================
   STICKY TAB NAVIGATION (fixed on scroll, dropdown on mobile)
   ========================================================= */
/* =========================================================
   STICKY TAB NAV — fixed while scrolling
   ========================================================= */
.sticky-tab-nav {
  position: sticky;
  top: var(--htp-header-h, 72px);
  z-index: 200;
  background: #fff;
  border-bottom: 2px solid #e5e7eb;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  margin: 0;
}
.sticky-tab-nav .container {
  display: flex;
  overflow-x: auto;
  gap: 0;
  padding: 0;
  scrollbar-width: none;
}
.sticky-tab-nav .container::-webkit-scrollbar { display: none; }
.sticky-tab-nav .desktop-tabs { display: flex; gap: 0; align-items: stretch; }
.sticky-tab-nav .tab-btn {
  flex-shrink: 0;
  padding: 14px 16px;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  font-weight: 600;
  font-size: 13px;
  color: #6b7280;
  cursor: pointer;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .04em;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color .2s, border-color .2s;
}
.sticky-tab-nav .tab-btn:hover { color: var(--htp-primary); }
.sticky-tab-nav .tab-btn.active { color: var(--htp-primary); border-bottom-color: var(--htp-primary); background: #f0f7ff; }
@media (max-width: 760px) {
  .sticky-tab-nav .desktop-tabs { display: none; }
  .sticky-tab-nav select.mobile-tab-select { display: block; width: 100%; padding: 12px 16px; border: none; font-weight: 600; font-size: 14px; background: #fff; color: var(--htp-primary); }
}
@media (min-width: 761px) { .sticky-tab-nav .mobile-tab-select { display: none; } }

/* Tour layout — tighter grid, less gap */
.tour-detail-layout { display: grid; grid-template-columns: 62fr 38fr; gap: 28px; align-items: start; position: relative; }
@media (max-width: 980px) { .tour-detail-layout { grid-template-columns: 1fr; } }
.tour-main { background: #fff; border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.06); padding: 24px; }


/* Section spacing — compact */
.tab-section { margin-bottom: 32px !important; padding-bottom: 32px; border-bottom: 1px solid #f0f0f0; }
.tab-section:last-child { border-bottom: none; }

/* =========================================================
   DEPARTURE DATE TABLE (Blissful-style)
   ========================================================= */
.departure-table-wrap { border: 1px solid var(--htp-border); border-radius: var(--htp-radius); overflow: hidden; }
.departure-table-row {
  display: grid; grid-template-columns: 2fr 1.2fr 1.2fr auto; gap: 10px; align-items: center;
  padding: 16px 18px; border-bottom: 1px solid var(--htp-border);
}
.departure-table-row:last-child { border-bottom: none; }
.departure-table-row:nth-child(odd) { background: var(--htp-cream); }
.departure-table-row .dt-dates { font-weight: 600; font-size: 14px; }
.departure-table-row .dt-price { font-weight: 700; color: var(--htp-primary); }
.departure-table-row .dt-price .strike { text-decoration: line-through; color: var(--htp-muted); font-weight: 400; font-size: 12px; margin-right: 4px; }
.departure-table-row .dt-spaces { font-size: 12px; color: var(--htp-muted); }
@media (max-width: 700px){ .departure-table-row { grid-template-columns: 1fr 1fr; } }

/* =========================================================
   ITINERARY ACCORDION (expand/collapse, with stat icons)
   ========================================================= */
.itinerary-accordion .accordion-day { border: 1px solid var(--htp-border); border-radius: var(--htp-radius); margin-bottom: 10px; overflow: hidden; }
.itinerary-accordion .accordion-head {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 16px 18px; background: var(--htp-white); border: none; cursor: pointer; text-align: left;
}
.itinerary-accordion .accordion-head .day-tag { color: var(--htp-accent); font-weight: 700; font-size: 12px; text-transform: uppercase; margin-right: 10px; }
.itinerary-accordion .accordion-head h4 { display: inline; font-size: 15px; margin: 0; }
.itinerary-accordion .accordion-head .chevron { transition: transform .2s ease; color: var(--htp-muted); }
.itinerary-accordion .accordion-day.open .chevron { transform: rotate(180deg); }
.itinerary-accordion .accordion-body { display: none; padding: 0 18px 18px; }
.itinerary-accordion .accordion-day.open .accordion-body { display: block; }
.itinerary-accordion .accordion-body p { font-size: 14px; color: var(--htp-text); margin-bottom: 14px; }
.itinerary-stat-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; border-top: 1px solid var(--htp-border); padding-top: 14px; }
.itinerary-stat-row .stat { font-size: 12px; text-align: center; }
.itinerary-stat-row .stat .icon { font-size: 18px; display: block; margin-bottom: 4px; }
.itinerary-stat-row .stat .label { color: var(--htp-muted); display: block; }
.itinerary-stat-row .stat .val { font-weight: 600; }
@media (max-width: 700px){ .itinerary-stat-row { grid-template-columns: repeat(2,1fr); } }
.itinerary-expand-all { background: none; border: none; color: var(--htp-primary); font-weight: 600; font-size: 13px; cursor: pointer; margin-bottom: 14px; }

/* =========================================================
   SIDEBAR — full booking widget + condensed sticky bar
   ========================================================= */
.booking-box .guarantee-list { list-style: none; padding: 0; margin: 16px 0; font-size: 13px; }
.booking-box .guarantee-list li { padding: 6px 0; color: var(--htp-text); }
.booking-box .pax-table { width: 100%; font-size: 13px; border-collapse: collapse; margin: 14px 0; }
.booking-box .pax-table th, .booking-box .pax-table td { padding: 8px 6px; border-bottom: 1px solid var(--htp-border); text-align: left; }
.booking-box .rating-line { display: flex; align-items: center; gap: 8px; font-size: 13px; margin-top: 10px; }
.booking-box .rating-line .stars { color: var(--htp-accent); }
.booking-box .btn-row { display: flex; gap: 10px; margin-top: 14px; }
.booking-box .btn-row .btn { flex: 1; text-align: center; padding: 12px 10px; font-size: 14px; }

.sticky-condensed-bar {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 200;
  background: var(--htp-white); border-top: 1px solid var(--htp-border); box-shadow: 0 -4px 14px rgba(0,0,0,.08);
  padding: 12px 20px;
}
.sticky-condensed-bar.visible { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.sticky-condensed-bar .scb-info { font-size: 13px; }
.sticky-condensed-bar .scb-info .scb-price { font-weight: 800; color: var(--htp-primary); font-size: 16px; }
.sticky-condensed-bar .scb-info .scb-strike { text-decoration: line-through; color: var(--htp-muted); font-size: 12px; margin-left: 6px; }
.sticky-condensed-bar .scb-rating { font-size: 12px; color: var(--htp-muted); }
.sticky-condensed-bar .scb-actions { display: flex; gap: 10px; flex-shrink: 0; }
.sticky-condensed-bar .btn { padding: 10px 20px; font-size: 13px; }
@media (max-width: 600px){ .sticky-condensed-bar .scb-info { display: none; } }

/* Inquiry popup modal */
.htp-modal-overlay {
  display: none; position: fixed; inset: 0; background: rgba(10,15,12,.6); z-index: 9998;
  align-items: center; justify-content: center; padding: 20px;
}
.htp-modal-overlay.open { display: flex; }
.htp-modal-box {
  background: var(--htp-white); border-radius: var(--htp-radius); padding: 30px;
  max-width: 440px; width: 100%; position: relative; box-shadow: 0 10px 40px rgba(0,0,0,.2);
}
.htp-modal-close { position: absolute; top: 12px; right: 16px; background: none; border: none; font-size: 24px; cursor: pointer; color: var(--htp-muted); }
.htp-modal-box label { font-size: 13px; font-weight: 600; display: block; margin: 12px 0 6px; }
.htp-modal-box input, .htp-modal-box textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--htp-border); border-radius: 6px; font-family: inherit; font-size: 14px; }

/* FAQ category heading */
.faq-category-heading { margin: 26px 0 10px; color: var(--htp-primary); font-size: 15px; text-transform: uppercase; letter-spacing: .04em; }
.faq-category-heading:first-of-type { margin-top: 6px; }

/* Flat-line icon styling */
.htp-icon { width: 18px; height: 18px; vertical-align: -4px; margin-right: 5px; flex-shrink: 0; }
.fact .label .htp-icon { color: var(--htp-primary); width: 16px; height: 16px; }
.itinerary-stat-row .stat .icon-wrap { color: var(--htp-primary); display: block; margin-bottom: 4px; }
.itinerary-stat-row .stat .icon-wrap .htp-icon { width: 20px; height: 20px; margin-right: 0; }
.guarantee-list .htp-icon { width: 15px; height: 15px; color: var(--htp-accent); margin-right: 6px; }
.guarantee-list li::before { content: none; }
.guarantee-list li { display: flex; align-items: center; }

/* =========================================================
   BOOKING / CONTACT FORMS
   ========================================================= */
.form-card { background: var(--htp-white); border-radius: var(--htp-radius); box-shadow: var(--htp-shadow); padding: 36px; max-width: 760px; margin: 0 auto; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
@media (max-width: 620px){ .form-row { grid-template-columns: 1fr; } }
.form-group label { font-size: 13px; font-weight: 600; display: block; margin-bottom: 6px; }
.form-group input, .form-group select, .form-group textarea {
  width: 100%; padding: 11px 14px; border: 1px solid var(--htp-border); border-radius: 6px; font-family: inherit; font-size: 14px;
}
.form-group textarea { min-height: 120px; resize: vertical; }
.form-submit { margin-top: 8px; }

/* =========================================================
   BLOG
   ========================================================= */
.post-card { background: var(--htp-white); border-radius: var(--htp-radius); overflow: hidden; box-shadow: var(--htp-shadow); }
.post-card .thumb { aspect-ratio: 16/10; overflow: hidden; }
.post-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.post-card .body { padding: 18px; }
.post-card .post-meta { font-size: 12px; color: var(--htp-muted); margin-bottom: 6px; }
.single-post-content { max-width: 760px; margin: 0 auto; background: var(--htp-white); padding: 40px; border-radius: var(--htp-radius); box-shadow: var(--htp-shadow); }
.single-post-content img { border-radius: 8px; margin: 20px 0; }

/* =========================================================
   FOOTER — redesigned to match screenshot
   ========================================================= */
.site-footer { background: #f0f2f5; color: #333; padding: 0; margin-top: 0; }
.site-footer a { color: #333; }
.site-footer a:hover { color: var(--htp-primary); }

/* Partners + Associations top bar */
.footer-top-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 22px 0; border-bottom: 1px solid #dde2ea; }
.footer-logo-group { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.footer-logo-group-right { margin-left: auto; }
.footer-logo-label { font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: #1a2637; white-space: nowrap; }
.footer-logos { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.footer-logos img { height: 38px; width: auto; object-fit: contain; }
.footer-logos a { display: flex; }

/* Office cards */
.office-cards-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 24px 0; }
.office-card-box { border: 1px solid #dde2ea; padding: 24px; background: #fff; }
.office-card-box:not(:last-child) { border-right: none; }
.office-card-title { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #1a2637; margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.office-flag { font-size: 20px; }
.office-name { font-weight: 700; font-size: 14px; color: #1a2637; margin: 0 0 6px; }
.office-card-box p { font-size: 13px; color: #555; margin: 0 0 6px; }
.office-card-box a { color: #555; }
.office-card-box strong { color: #1a2637; }
@media (max-width: 880px){ .office-cards-grid { grid-template-columns: 1fr; } .office-card-box:not(:last-child) { border-right: 1px solid #dde2ea; border-bottom: none; } }

/* Bottom row: social | trust | payment */
.footer-bottom-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 22px 0; border-top: 1px solid #dde2ea; }

/* Social icons with brand colours */
.footer-social-icons { display: flex; gap: 8px; flex-wrap: wrap; }
.footer-social-btn { width: 38px; height: 38px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; }
.footer-social-btn svg { width: 18px; height: 18px; }

/* Trust badges */
.footer-trust-badges { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.trust-badge-link { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; color: #1a2637; text-decoration: none; }
.trust-badge-link:hover { color: var(--htp-primary); }
.trust-badge-link svg { flex-shrink: 0; }

/* Payment badges */
.footer-payment-icons { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pay-badge { display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; padding: 4px 9px; font-size: 10px; font-weight: 800; letter-spacing: .04em; white-space: nowrap; height: 28px; min-width: 44px; }

/* Copyright bar */
.footer-copyright { background: #1a2637; color: #a9b5c1; font-size: 12px; padding: 14px 20px; text-align: center; }
.footer-copyright strong { color: #fff; }

/* =========================================================
   NEWSLETTER SUBSCRIBE BAR
   ========================================================= */
.newsletter-bar { background: var(--htp-dark); padding: 36px 0; }
.newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.newsletter-copy h3 { color: var(--htp-white); font-size: 22px; margin: 0 0 4px; }
.newsletter-copy p { color: #b9c2b9; font-size: 13px; max-width: 460px; margin: 0; }
.newsletter-form { display: flex; background: var(--htp-white); border-radius: var(--htp-radius); overflow: hidden; flex: 1; min-width: 320px; max-width: 640px; }
.newsletter-form .nf-field { display: flex; align-items: center; gap: 8px; padding: 0 14px; border-right: 1px solid var(--htp-border); flex: 1; }
.newsletter-form .nf-field .htp-icon { color: var(--htp-primary); flex-shrink: 0; }
.newsletter-form input { border: none; padding: 14px 0; font-size: 14px; width: 100%; outline: none; }
.newsletter-form .btn { border-radius: 0; padding: 14px 26px; }
@media (max-width: 700px){ .newsletter-form { flex-direction: column; max-width: 100%; } .newsletter-form .nf-field { border-right: none; border-bottom: 1px solid var(--htp-border); } }


/* =========================================================
   TRIP OF THE MONTH (homepage banner)
   ========================================================= */
.trip-of-month { background: var(--htp-dark); padding: 50px 0; text-align: center; }
.trip-of-month .eyebrow-line { display: inline-flex; align-items: center; gap: 10px; color: var(--htp-accent); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 8px; }
.trip-of-month .eyebrow-line::before { content: ''; width: 24px; height: 2px; background: var(--htp-accent); }
.trip-of-month h2 { color: var(--htp-white); font-size: 32px; margin: 0 0 24px; }
.trip-of-month .totm-image { position: relative; border-radius: var(--htp-radius); overflow: hidden; max-width: 1100px; margin: 0 auto; }
.trip-of-month .totm-image img { width: 100%; max-height: 420px; object-fit: cover; display: block; }
.trip-of-month .totm-stats { position: absolute; top: 24px; left: 50%; transform: translateX(-50%); display: flex; gap: 30px; color: #fff; background: rgba(10,15,12,.4); padding: 14px 30px; border-radius: 999px; }
.trip-of-month .totm-stats .stat { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.trip-of-month .totm-stats .stat .htp-icon { width: 20px; height: 20px; }
.trip-of-month .totm-stats .stat strong { display: block; font-size: 16px; }
.trip-of-month .totm-cta { margin-top: -24px; position: relative; }

/* =========================================================
   LATEST POSTS (homepage blog section)
   ========================================================= */
.latest-posts-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.latest-posts-head h2 { margin: 0; font-size: 28px; }
.latest-posts-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: stretch; }
.latest-posts-grid .featured-post { position: relative; border-radius: var(--htp-radius); overflow: hidden; min-height: 380px; display: block; }
.latest-posts-grid .featured-post img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.latest-posts-grid .featured-post .overlay { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; background: linear-gradient(180deg, transparent 40%, rgba(10,15,12,.85)); color: #fff; }
.latest-posts-grid .featured-post .date { font-size: 13px; opacity: .85; margin-bottom: 6px; }
.latest-posts-grid .featured-post h3 { color: #fff; font-size: 22px; margin: 0; }
.latest-posts-list { display: flex; flex-direction: column; gap: 0; justify-content: space-between; height: 100%; }
.latest-posts-list .post-row { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid #f0f2f5; flex: 1; align-items: center; }
.latest-posts-list .post-row:last-child { border-bottom: none; padding-bottom: 0; }
.latest-posts-list .post-row:first-child { padding-top: 0; }
.latest-posts-list .post-row img { width: 110px; height: 80px; object-fit: cover; border-radius: 6px; }
.latest-posts-list .post-row .date { font-size: 12px; color: var(--htp-muted); margin-bottom: 4px; }
.latest-posts-list .post-row h4 { font-size: 15px; margin: 0; }
@media (max-width: 880px){ .latest-posts-grid { grid-template-columns: 1fr; } }

/* =========================================================
   UPCOMING FIXED DEPARTURES (homepage) — matches screenshot design
   ========================================================= */
.upcoming-departures { background: #0d1b2e; padding: 60px 0; }
.upcoming-departures .udh-head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 14px; margin-bottom: 30px; }
.upcoming-departures h2 { color: #fff; font-size: 30px; margin: 6px 0 0; font-weight: 800; }
.upcoming-departures .eyebrow-line { display: inline-flex; align-items: center; gap: 10px; color: #4fc3f7; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.upcoming-departures .eyebrow-line::before { content: ''; width: 24px; height: 2px; background: #4fc3f7; }

.udh-filters { display: flex; align-items: center; gap: 12px; }
.udh-filter-btn { background: #fff; color: #0d1b2e; border: none; padding: 10px 20px; border-radius: 6px; font-weight: 600; font-size: 14px; cursor: pointer; }
.udh-filter-btn.active { background: #fff; }
.udh-month-select { padding: 10px 14px; border-radius: 6px; border: none; font-size: 14px; font-weight: 600; background: #1a2c42; color: #fff; cursor: pointer; }

.udh-table { background: #fff; border-radius: 8px; overflow: hidden; }
.udh-table-head { display: grid; grid-template-columns: 2.5fr 1.8fr 1.2fr 1.2fr auto; gap: 12px; align-items: center; padding: 14px 24px; font-size: 11px; text-transform: uppercase; color: #8fa8c0; font-weight: 700; letter-spacing: .06em; border-bottom: 1px solid #f0f4f8; background: #f8fafc; }
.udh-table-row { display: grid; grid-template-columns: 2.5fr 1.8fr 1.2fr 1.2fr auto; gap: 12px; align-items: center; padding: 20px 24px; border-bottom: 1px solid #f0f4f8; transition: background .15s ease; }
.udh-table-row:last-child { border-bottom: none; }
.udh-table-row:hover { background: #f8fafc; }
.udh-table-row.udh-hidden { display: none; }

.udh-table-row .trip-name a { font-weight: 700; font-size: 15px; color: #0d1b2e; text-decoration: none; }
.udh-table-row .trip-name a:hover { color: var(--htp-primary); }

.udh-dates { font-size: 13px; color: #555; }
.udh-dates strong { color: #0d1b2e; display: block; margin-bottom: 3px; }

.status-ok { color: #2ecc71; font-weight: 600; display: flex; align-items: flex-start; gap: 8px; font-size: 13px; }
.status-ok .htp-icon { flex-shrink: 0; margin-top: 2px; }
.status-ok span { color: #0d1b2e; font-weight: 600; }
.status-ok small { color: #888; font-weight: 400; font-size: 12px; }

.price-cell .now { font-weight: 800; color: #0096d6; font-size: 18px; display: block; }
.price-cell small.strike { text-decoration: line-through; color: #aaa; font-size: 12px; display: block; margin-top: 2px; }

.udh-join-btn { background: transparent; border: 1.5px solid #ccd5dd; color: #0d1b2e; padding: 10px 20px; border-radius: 6px; font-weight: 600; font-size: 14px; cursor: pointer; white-space: nowrap; text-decoration: none; display: inline-block; transition: background .15s ease, color .15s ease; }
.udh-join-btn:hover { background: var(--htp-primary); color: #fff; border-color: var(--htp-primary); }
.udh-join-btn[disabled] { opacity: .4; cursor: not-allowed; }

@media (max-width: 960px){ .udh-table-head { display: none; } .udh-table-row { grid-template-columns: 1fr 1fr; row-gap: 10px; padding: 16px; } .udh-join-btn { grid-column: span 2; } }

/* =========================================================
   TRIPADVISOR REVIEW SLIDER (WP TripAdvisor Review Slider plugin)
   ========================================================= */
.tripadvisor-reviews-section { padding: 60px 0; background: #f8fafc; }
.ta-reviews-heading { text-align: center; margin-bottom: 48px; }
.ta-reviews-heading h2 {
  font-size: 28px; font-weight: 900; color: #1a2637;
  letter-spacing: .08em; text-transform: uppercase;
}

/* Plugin wrapper — force 3-column grid */
.ta-reviews-wrapper { width: 100%; }
.ta-reviews-wrapper .wptrip-main-div,
.ta-reviews-wrapper .wp-tripadvisor-slider-wrapper,
.ta-reviews-wrapper .tripadvisor-review-wrapper { width: 100% !important; }

/* Override the plugin's default slider to be a 3-col grid */
.ta-reviews-wrapper .slick-list,
.ta-reviews-wrapper .slick-track { display: flex !important; gap: 20px; }
.ta-reviews-wrapper .slick-slide { width: calc(33.333% - 14px) !important; margin: 0 !important; }

/* Each review card */
.ta-reviews-wrapper .wptrip-review-box,
.ta-reviews-wrapper .tripadvisor-review-box,
.ta-reviews-wrapper .review-box-main {
  background: #fff !important;
  border: 1px solid #e8ecf0 !important;
  border-radius: 10px !important;
  padding: 22px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.06) !important;
  position: relative;
  margin-bottom: 60px !important;
}

/* Review title bold italic */
.ta-reviews-wrapper .review-title,
.ta-reviews-wrapper .wptrip-review-title { font-weight: 700 !important; font-style: italic; color: #1a2637 !important; }

/* Review text */
.ta-reviews-wrapper .review-text,
.ta-reviews-wrapper .wptrip-review-text { font-size: 13.5px !important; color: #555 !important; font-style: italic; line-height: 1.6; }

/* Read more link */
.ta-reviews-wrapper a.read-more,
.ta-reviews-wrapper .readmore-link { color: #0096d6 !important; font-weight: 600; }

/* Review photos row */
.ta-reviews-wrapper .review-photos,
.ta-reviews-wrapper .wptrip-review-photos { display: flex; gap: 6px; margin-top: 14px; flex-wrap: wrap; }
.ta-reviews-wrapper .review-photos img,
.ta-reviews-wrapper .wptrip-review-photos img { width: 70px; height: 55px; object-fit: cover; border-radius: 4px; }

/* TripAdvisor owl icon bottom-right of card */
.ta-reviews-wrapper .tripadvisor-icon,
.ta-reviews-wrapper .wptrip-ta-icon { position: absolute; bottom: -18px; right: 18px; }
.ta-reviews-wrapper .tripadvisor-icon img,
.ta-reviews-wrapper .wptrip-ta-icon img { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; }

/* Reviewer info below the card (avatar + name + date) */
.ta-reviews-wrapper .reviewer-info,
.ta-reviews-wrapper .wptrip-reviewer-info { display: flex; align-items: center; gap: 14px; margin-top: 28px; padding-left: 10px; }
.ta-reviews-wrapper .reviewer-avatar,
.ta-reviews-wrapper .wptrip-reviewer-avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ta-reviews-wrapper .reviewer-name,
.ta-reviews-wrapper .wptrip-reviewer-name { font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #1a2637; }
.ta-reviews-wrapper .reviewer-date,
.ta-reviews-wrapper .wptrip-reviewer-date { font-size: 12px; color: #888; text-transform: uppercase; margin-top: 3px; }

/* Stars — TripAdvisor green circles */
.ta-reviews-wrapper .ta-rating-icon,
.ta-reviews-wrapper .wptrip-stars { color: #00af87; font-size: 18px; display: flex; gap: 2px; margin-bottom: 8px; }

/* Quotation mark top-left of each card */
.ta-reviews-wrapper .wptrip-review-box::before,
.ta-reviews-wrapper .review-box-main::before {
  content: '\201C';
  font-size: 52px;
  color: #e0e8f0;
  font-family: Georgia, serif;
  line-height: 1;
  position: absolute;
  top: 12px;
  left: 16px;
}

@media (max-width: 960px) {
  .ta-reviews-wrapper .slick-slide { width: calc(50% - 10px) !important; }
}
@media (max-width: 640px) {
  .ta-reviews-wrapper .slick-list, .ta-reviews-wrapper .slick-track { flex-direction: column; }
  .ta-reviews-wrapper .slick-slide { width: 100% !important; }
}

/* =========================================================
   LUXURY TRIPS GRID
   ========================================================= */
.luxury-grid { display: grid; grid-template-columns: 1fr 1fr 1.4fr; grid-template-rows: 1fr 1fr; gap: 16px; }
.luxury-card { position: relative; border-radius: var(--htp-radius); overflow: hidden; display: block; min-height: 220px; }
.luxury-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.luxury-card-large { grid-row: span 2; }
.luxury-badge { position: absolute; top: 14px; right: 14px; z-index: 2; background: var(--htp-accent); color: #fff; font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: 999px; text-transform: uppercase; }
.luxury-overlay { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; background: linear-gradient(180deg, transparent 50%, rgba(10,15,12,.85)); color: #fff; }
.luxury-overlay h3 { color: #fff; font-size: 17px; margin: 0 0 4px; }
.luxury-overlay .meta { font-size: 13px; opacity: .9; }
@media (max-width: 880px){ .luxury-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; } .luxury-card-large { grid-row: auto; grid-column: span 2; } }

/* =========================================================
   REVIEW PLATFORM CARDS
   ========================================================= */
.review-platform-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 40px; text-align: left; }
.review-platform-card { border: 1px solid var(--htp-border); border-radius: var(--htp-radius); padding: 20px; background: var(--htp-white); }
.review-platform-card .rp-logo { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.review-platform-card .rp-rating { color: var(--htp-accent); font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.review-platform-card p { font-size: 13px; color: var(--htp-muted); margin: 0 0 8px; }
.review-platform-card a { font-size: 13px; font-weight: 600; }
@media (max-width: 880px){ .review-platform-grid { grid-template-columns: 1fr 1fr; } }

/* Page banner (used on Tours/About/Contact/Blog index) */
.page-banner { background: var(--htp-dark); color: var(--htp-white); padding: 60px 0; text-align: center; }
.page-banner h1 { color: var(--htp-white); font-size: 38px; margin: 0; }
.breadcrumbs { font-size: 13px; color: #b9c2b9; margin-top: 8px; }
.breadcrumbs a { color: #b9c2b9; }

/* Utility */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 10px; top: 10px; background: #fff; padding: 8px 14px; z-index: 9999; }

/* Blog — compact layout when < 3 list posts (no empty gap) */
.latest-posts-grid.posts-compact { grid-template-columns: 1fr 1fr; }
.latest-posts-grid.posts-compact .featured-post { height: 320px; }
.latest-posts-grid.posts-compact .latest-posts-list { display:flex; flex-direction:column; gap:16px; justify-content:center; }

/* Luxury grid v2 — reference layout */
.luxury-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; }
.luxury-see-all { font-size:15px; font-weight:600; color:#1768c9; text-decoration:underline; text-underline-offset:3px; }
.luxury-grid-v2 { display:grid; grid-template-columns: 1fr 1.2fr; gap:20px; align-items:stretch; }
/* Left column: 2 stacked small cards */
.luxury-col-left { display:flex; flex-direction:column; gap:20px; }
.luxury-card-sm { display:block; border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 1px 6px rgba(0,0,0,.08); text-decoration:none; color:inherit; transition:transform .2s; }
.luxury-card-sm:hover { transform:translateY(-2px); }
.luxury-img-wrap { position:relative; height:200px; overflow:hidden; }
.luxury-img-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
.luxury-card-info { padding:14px 16px; }
.luxury-card-info h3 { font-size:17px; font-weight:700; color:#1a2637; margin:0 0 6px; }
.luxury-meta { display:flex; align-items:center; gap:10px; font-size:13px; color:#6b7280; flex-wrap:wrap; }
.luxury-stars { color:#f59e0b; letter-spacing:1px; }
.luxury-price { font-size:18px; font-weight:800; color:#0891b2; margin-top:8px; }
/* Right: large card */
.luxury-card-lg { display:block; position:relative; border-radius:12px; overflow:hidden; min-height:440px; text-decoration:none; color:inherit; }
.luxury-card-lg img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; display:block; }
.luxury-lg-price { position:absolute; top:16px; left:16px; background:rgba(255,255,255,.92); color:#1a2637; font-weight:800; font-size:15px; padding:6px 14px; border-radius:8px; z-index:2; }
.luxury-badge { position:absolute; top:14px; right:14px; background:#f97316; color:#fff; padding:5px 14px; border-radius:999px; font-size:12px; font-weight:700; z-index:2; }
.luxury-badge-lg { top:16px; right:16px; }
.luxury-lg-overlay { position:absolute; bottom:0; left:0; right:0; padding:24px; background:linear-gradient(0deg,rgba(0,0,0,.8) 0%,transparent 100%); color:#fff; z-index:2; }
.luxury-lg-overlay h3 { color:#fff; margin:0 0 4px; font-size:22px; font-weight:800; }
.luxury-lg-dur { font-size:14px; opacity:.85; margin-bottom:4px; }
.luxury-lg-stars { color:#f59e0b; font-size:15px; letter-spacing:1px; }
.luxury-lg-stars span { font-size:13px; color:rgba(255,255,255,.8); }
@media(max-width:760px){ .luxury-grid-v2{ grid-template-columns:1fr; } .luxury-card-lg{ min-height:300px; } }
/* =========================================================
   BOOKING SIDEBAR — reference design
   ========================================================= */
.booking-box { position:relative; background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:24px; overflow:hidden; }

/* Group Tours corner ribbon */
.booking-ribbon { position:absolute; top:0; right:0; width:110px; height:110px; overflow:hidden; pointer-events:none; }
.booking-ribbon span { position:absolute; top:22px; right:-28px; background:#f97316; color:#fff; font-size:11px; font-weight:800; padding:6px 36px; transform:rotate(45deg); letter-spacing:.04em; white-space:nowrap; }

/* Price top */
.booking-price-top { margin-bottom:18px; padding-top:50px; }
.bpt-label { font-size:13px; color:#6b7280; margin-bottom:2px; }
.bpt-orig { text-decoration:line-through; color:#9ca3af; font-size:14px; }
.bpt-main { display:flex; align-items:baseline; gap:6px; }
.bpt-dollar { font-size:36px; font-weight:900; color:#1a2637; line-height:1; }
.bpt-usd { font-size:16px; font-weight:700; color:#6b7280; }
.bpt-nights { display:flex; align-items:center; gap:6px; font-size:13px; color:#6b7280; margin-top:6px; }

/* CTA buttons */
.booking-cta-block { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.btn-check-avail { display:block; text-align:center; background:#0891b2; color:#fff !important; padding:14px; border-radius:8px; font-weight:700; font-size:15px; text-decoration:none !important; }
.btn-check-avail:hover { background:#0e7490; }
.btn-make-inquiry { display:block; width:100%; text-align:center; background:#fff; color:#1a2637; border:2px solid #1a2637; padding:12px; border-radius:8px; font-weight:700; font-size:15px; cursor:pointer; }
.btn-make-inquiry:hover { background:#f9fafb; }

/* Trust badges */
.booking-trust { display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; font-size:13px; color:#374151; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid #f0f2f5; }
.booking-trust div { display:flex; align-items:center; gap:6px; }
.booking-trust div:last-child { grid-column: span 2; }

/* TripAdvisor row */
.booking-ta-row { display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid #f0f2f5; margin-bottom:14px; }
.booking-ta-logo { flex-shrink:0; }
.booking-ta-info { flex:1; }
.booking-ta-score { display:flex; align-items:center; gap:8px; font-size:16px; font-weight:800; color:#1a2637; }
.ta-dots { display:flex; gap:3px; }
.ta-dot { width:12px; height:12px; border-radius:50%; background:#e5e7eb; display:inline-block; }
.ta-dot-full { background:#00af87; }
.booking-ta-count { font-size:12px; color:#6b7280; margin-top:2px; }
.booking-ta-read { flex-shrink:0; font-size:12px; font-weight:600; color:#1a2637; border:1.5px solid #d1d5db; padding:6px 12px; border-radius:6px; text-decoration:none; white-space:nowrap; }
.booking-ta-read:hover { border-color:#1768c9; color:#1768c9; }

/* Date block */
.booking-date-block { margin-bottom:14px; }

/* Bottom links */
.booking-bottom-links { display:flex; justify-content:center; gap:24px; padding-top:12px; border-top:1px solid #f0f2f5; }
.booking-bottom-links a { display:flex; align-items:center; gap:6px; font-size:13px; color:#6b7280; text-decoration:none; }
.booking-bottom-links a:hover { color:#1768c9; }

/* === SCROLL-MARGIN: makes anchor links land below sticky header+nav === */
.tab-section {
    scroll-margin-top: 130px !important; /* 72px header + 48px nav + 10px gap */
}
#booking-form {
    scroll-margin-top: 130px !important;
}

/* === Tab links active state highlight on :target === */
.tab-btn:target,
.sticky-tab-nav a.tab-btn:focus { outline: none; }

/* Highlight active tab when section is in view via :target */
:root { scroll-behavior: smooth; }

/* === Tour layout: make content wider, sidebar compact === */
.tour-detail-layout { display: grid; grid-template-columns: 1fr 340px; gap: 24px; align-items: start; margin-top: 24px; }
@media (max-width: 980px) { .tour-detail-layout { grid-template-columns: 1fr; } }

/* Sidebar fixed width — compact, never stretches */
.tour-sidebar { position: sticky; top: 130px; width: 340px; }
@media (max-width: 980px) and (min-width: 601px) { .tour-sidebar { width: 100%; position: sticky; top: 12px; } }
@media (max-width: 600px) { .tour-sidebar { width: 100%; position: static; } }

/* Booking box — compact padding */
.booking-box { padding: 20px; font-size: 14px; }
.booking-price-top { padding-top: 20px; margin-bottom: 12px; }
.bpt-dollar { font-size: 30px; }
.booking-cta-block { gap: 8px; margin-bottom: 12px; }
.btn-check-avail { padding: 12px; font-size: 14px; }
.btn-make-inquiry { padding: 10px; font-size: 14px; }
.booking-trust { font-size: 12px; margin-bottom: 12px; padding-bottom: 12px; }
.booking-ta-row { padding: 10px 0; margin-bottom: 10px; }
.booking-date-block { margin-bottom: 10px; }

/* TripAdvisor dots — use higher specificity so full overrides empty */
.ta-dot.ta-dot-full { background: #00af87 !important; }
.ta-dots { display:flex; gap:4px; align-items:center; }
.ta-dot { width:13px; height:13px; border-radius:50%; background:#e5e7eb; display:inline-block; flex-shrink:0; }

/* Depart everyday line */
.bpt-depart { font-size:11px; font-weight:700; color:#e53e3e; letter-spacing:.06em; text-transform:uppercase; margin-bottom:14px; text-align:center; }
.booking-price-top { padding-top:22px; }

/* Sticky nav — also handle any parent overflow issue */
.sticky-tab-nav { 
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 72px !important;
  z-index: 999 !important;
  background: #fff !important;
}
/* Ensure main content wrapper doesn't block stickiness */
#main-content, main, .site-main, article { overflow: visible !important; }

/* =========================================================
   DOWNLOAD PDF — filtered print view
   Only #pdf-print-content is shown when printing; it's built
   on the fly by tour-page.js from trip name, trip facts,
   overview, highlights, itinerary, cost includes/excludes, FAQs.
   ========================================================= */
#pdf-print-content { display: none; }

@media print {
  body > *:not(#pdf-print-content) { display: none !important; }
  #pdf-print-content {
    display: block !important;
    max-width: 800px;
    margin: 0 auto;
    padding: 24px;
    color: #1a1a1a;
  }
  #pdf-print-content h1 { font-size: 26px; margin-bottom: 18px; }
  #pdf-print-content h2 { font-size: 20px; margin: 28px 0 12px; page-break-after: avoid; }
  #pdf-print-content h3, #pdf-print-content h4 { page-break-after: avoid; }
  #pdf-print-content .trip-facts-grid { grid-template-columns: repeat(2, 1fr) !important; margin-bottom: 24px; }
  #pdf-print-content .accordion-day { page-break-inside: avoid; margin-bottom: 14px; }
  #pdf-print-content .accordion-head .chevron { display: none; }
  #pdf-print-content .faq-item { page-break-inside: avoid; }
  #pdf-print-content .faq-q .icon { display: none; }
}

/* =========================================================
   REVIEWS SECTION (TripAdvisor shortcode wrapper) — tighten
   spacing only. We deliberately do NOT force width/max-width
   on the widget's internal elements — it's a horizontal card
   slider with its own fixed-width columns, and overriding
   those breaks it (each card collapses and every word wraps
   onto its own line). Instead we just let it scroll
   horizontally on narrow screens, which is safe regardless of
   the widget's internal markup.
   ========================================================= */
.tour-reviews-section h2 { margin-bottom: 16px; }
.tour-reviews-widget-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tour-reviews-widget-wrap > *:first-child { margin-top: 0 !important; padding-top: 0 !important; }

@media (max-width: 600px) {
  .tour-reviews-section h2 { font-size: 22px; margin-bottom: 12px; }
}

/* =========================================================
   MOBILE: booking form appears right above Overview instead
   of at the very bottom of the page.
   ========================================================= */
@media (max-width: 980px) {
  .tour-detail-layout { display: grid; }
  .tour-sidebar { order: -1; }
  .tour-main { order: 1; }
}
