﻿:root {
  /* Primary */
  --snt-primary:      rgb(32, 118, 124);
  --snt-primary-700:  rgb(21, 87, 92);
  --snt-primary-900:  rgb(13, 61, 64);
  --snt-primary-300:  rgb(109, 180, 185);
  --snt-primary-100:  rgb(213, 234, 236);

  /* Accent - Saffron */
  --snt-accent:       rgb(244, 163, 1);
  --snt-accent-600:   rgb(214, 135, 0);
  --snt-accent-100:   rgb(253, 234, 199);

  /* Cream / paper */
  --snt-cream:        #F8F4ED;
  --snt-cream-2:      #EFE8DA;
  --snt-line:         #E0D8C7;

  /* Ink */
  --snt-ink:          #1A1F1B;
  --snt-text:         rgb(66, 66, 66);
  --snt-muted:        #6B7268;

  /* Shadows */
  --shadow-sm:        0 8px 20px rgba(0,0,0,.06);
  --shadow-md:        0 18px 45px rgba(0,0,0,.12);
  --shadow-lg:        0 30px 80px rgba(0,0,0,.18);

  /* Radii */
  --radius-md:        18px;
  --radius-lg:        24px;
  --radius-xl:        28px;
  --radius-2xl:       34px;

  /* Type */
  --font-display:     "Plus Jakarta Sans", "DM Sans", system-ui, sans-serif;
  --font-body:        "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono:        "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --transition:       all .35s ease;
  --transition-fast:  all .2s ease;
}

/* =========================================================
   BASE
   ========================================================= */
* { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  /* Guard against stray horizontal overflow (e.g. Bootstrap .row.g-5 negative
     margins exceeding the full-width container on mobile). `clip` kills the
     sideways scroll without forcing overflow-y:auto or breaking sticky. */
  overflow-x: clip;
}
html, body {
  font-family: var(--font-body);
  color: var(--snt-ink);
  background: #fff;
  font-size: 16px;
  line-height: 1.6;
}
header { margin: 0; padding: 0; }

h1, h2, h3, h4, .display {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--snt-primary);
  text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 1.05; }
h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.15; }
h3 { font-size: 1.4rem; line-height: 1.25; }
h4 { font-size: 1.15rem; line-height: 1.3; }

p { text-wrap: pretty; color: var(--snt-text); margin: 0 0 1em; }

a {
  color: var(--snt-primary);
  text-decoration: none;
  transition: var(--transition-fast);
}
a:hover { color: var(--snt-accent); }

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

/* broken / loading image watermark — logo only, no background */
img.img-broken {
  background-image: var(--broken-logo);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: auto 20%;
  color: transparent;
  min-height: 80px;
  display: block;
  width: 100%;
}

.section { padding: 90px 0; }
.section-cream { background: var(--snt-cream-2); }
.section-soft  { background: var(--snt-cream); }

.section-head { max-width: 650px; }
.section-head h2 {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  line-height: 1.1;
  font-weight: 800;
  color: var(--snt-ink);
}
.section-head .lead {
  color: #666;
  font-size: 1.05rem;
  line-height: 1.8;
}

.eyebrow {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--snt-accent);
  font-weight: 500;
}

/* =========================================================
   HEADER TOP UTILITY BAR (address + contact + socials)
   ========================================================= */
.header-topbar {
  background: var(--snt-primary-900);
  color: rgba(255, 255, 255, .82);
  font-size: .8rem;
  overflow: hidden;
  max-height: 60px;
  transition: max-height .28s ease, opacity .28s ease;
}
.header-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 40px;
  gap: 16px;
  transition: min-height .28s ease;
}
.header-topbar-left,
.header-topbar-right {
  display: flex;
  align-items: center;
  gap: 22px;
}
.header-topbar-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}
.header-topbar-item i { color: var(--snt-accent); font-size: .78rem; }
.header-topbar-tagline { color: rgba(255, 255, 255, .6); }
@media (max-width: 1199px) { .header-topbar-tagline { display: none; } }

.header-topbar-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .82);
  text-decoration: none;
  white-space: nowrap;
  transition: color .18s;
}
.header-topbar-link i { color: var(--snt-accent); font-size: .78rem; }
.header-topbar-link:hover { color: #fff; }

.header-topbar-socials {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-left: 18px;
  margin-left: 4px;
  border-left: 1px solid rgba(255, 255, 255, .18);
}
.header-topbar-socials a {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: rgba(255, 255, 255, .85);
  font-size: .78rem;
  transition: background .18s, color .18s;
}
.header-topbar-socials a:hover { background: var(--snt-accent); color: #fff; }

/* =========================================================
   HEADER CTA + MOBILE ACTIONS
   ========================================================= */
/* Mobile-only quick call + toggler cluster */
.header-mobile-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
.header-mobile-call {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--snt-primary-100);
  color: var(--snt-primary);
  font-size: 1rem;
  transition: background .18s, color .18s;
}
.header-mobile-call:hover { background: var(--snt-primary); color: #fff; }


/* =========================================================
   BUTTONS
   ========================================================= */
.btn {
  border-radius: 999px;
  padding: 0.7rem 1.5rem;
  font-weight: 500;
  transition: var(--transition-fast);
  letter-spacing: 0.01em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.btn-ghost {
  border: 1px solid var(--snt-primary);
  background: #fff;
  color: var(--snt-ink);
}
.btn-ghost:hover {
  background: var(--snt-primary);
  border-color: var(--snt-primary);
  color: #fff;
}
.btn-dark-forest {
  background: var(--snt-primary);
  color: #fff !important;
}
.btn-dark-forest:hover {
  background: var(--snt-primary-700);
  color: #fff !important;
}
.btn-accent {
  background: var(--snt-accent);
  color: #fff;
  border-color: var(--snt-accent);
}
.btn-accent:hover {
  background: var(--snt-accent-600);
  color: #fff;
}


/* =========================================================
   NAVBAR
   ========================================================= */
/* Header wrapper — NOT sticky. The top utility bar scrolls away naturally with
   the page; only the .navbar below pins to the top. This avoids resizing a
   sticky element on scroll (which reflows the page and caused header flicker). */
.site-header {
  position: relative;
  z-index: 1030;
}
/* Only the main nav is sticky — constant height, so it never reflows/glitches. */
.navbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: #fff !important;
  padding: 0;
  border-bottom: 1px solid #eee;
}
.navbar .container {
  position: relative;
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: min-height .28s ease;
}
.navbar-brand {
  flex: 0 0 auto;
}
.navbar-brand img {
  width: clamp(140px, 14vw, 185px);
  max-width: 100%;
  height: auto;
  display: block;
  transition: width .28s ease;
}

/* =========================================================
   COMPACT NAV ON SCROLL
   The sticky .navbar shrinks once the page is scrolled. Because it is a
   constant-height sticky element decoupled from the (separate) top bar, this
   height change can't bounce the scroll position across a threshold — so it
   shrinks/expands cleanly with no flicker. The transitions on .container and
   .navbar-brand img above animate the change smoothly.
   ========================================================= */
.navbar.is-shrink .container { min-height: 56px; }
.navbar.is-shrink .navbar-brand img { width: clamp(120px, 11vw, 120px); }

/* Navbar toggler */
.navbar-toggler {
  border: none;
  padding: 6px 8px;
  box-shadow: none !important;
  outline: none !important;
}
.navbar-toggler-icon {
  width: clamp(18px, 4vw, 24px);
  height: clamp(18px, 4vw, 24px);
}

/* Ultra-wide desktop (1600px+) */
@media (min-width: 1600px) {
  .navbar .container { min-height: 80px; }
  .navbar-brand img { width: 200px; }
}

/* Large desktop (1200px-1599px) */
@media (min-width: 1200px) and (max-width: 1599px) {
  .navbar .container { min-height: 74px; }
  .navbar-brand img { width: 140px; }
}

/* Standard desktop (992px-1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar .container { min-height: 70px; }
  .navbar-brand img { width: 150px; }
}

/* Tablet and larger devices (768px-991px) */
@media (min-width: 768px) and (max-width: 991px) {
  .navbar .container { min-height: 65px; }
  .navbar-brand img { width: 155px; }
}

/* Mobile devices (max-width: 767px) */
@media (max-width: 767px) {
  .navbar .container { min-height: 60px; }
  .navbar-brand img { width: 140px; }
  /* The .navbar is sticky (position: sticky; top: 0) on mobile too, so it pins
     cleanly at the top. sticky scrolls as part of the flow — no fixed-header
     lag / ride-up during momentum scrolling. */
}

/* Nav list */
.navbar-nav {
  margin-left: auto;
  align-items: center;
  list-style: none;
  margin-bottom: 0;
  padding-left: 0;
  /* Wrap extra menu items onto the next line instead of overflowing
     the container / running off screen. */
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* Top-level nav link */
.navbar .nav-item > .nav-link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 11px;
  font-size: clamp(.82rem, 1.1vw, .94rem);
  font-weight: 500;
  color: var(--snt-ink) !important;
  letter-spacing: .005em;
  white-space: nowrap;
  position: relative;
  transition: color .2s, height .28s ease;
}

/* Mid-desktop (992–1199px): Bootstrap pins .container at 960px across this whole
   range, but the logo + 8 top-level items needed more than that, so the nav
   wrapped to a second row. Tighten the horizontal padding and bring the logo in
   line with the wider breakpoints (it was oversized at 170px here) so the menu
   stays on one line. */
@media (min-width: 992px) and (max-width: 1199px) {
  .navbar .container { gap: 8px; }
  .navbar .nav-item > .nav-link { padding-left: 5px; padding-right: 5px; }
}

.navbar .nav-item > .nav-link:hover,
.navbar .nav-item.show > .nav-link,
.navbar .nav-item:hover > .nav-link,
.navbar .nav-item.snt-open > .nav-link,
.navbar .nav-item.nav-active > .nav-link {
  color: var(--snt-primary) !important;
}

/* Chevron */
.navbar .dropdown-toggle::after { display: none; }
.nav-chevron {
  font-size: .5rem;
  opacity: .4;
  margin-top: 1px;
  transition: transform .2s, opacity .2s;
}
.navbar .nav-item.show > .nav-link .nav-chevron,
.navbar .nav-item.snt-open > .nav-link .nav-chevron {
  transform: rotate(180deg);
  opacity: 1;
}

/* =========================================================
   REGULAR DROPDOWN  (no mega-menu class)
   ========================================================= */

/* Every ancestor of .snt-dropdown must NOT clip overflow */
.navbar,
.navbar .container,
.navbar .navbar-nav,
.navbar .navbar-collapse {
  overflow: visible !important;
}

.navbar .nav-item:not(.mega-item) { position: relative; }

/* First-level dropdown panel */
.snt-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 230px;
  background: #fff;
  border: 1px solid #e4e4e4;
  border-top: 2px solid var(--snt-primary);
  border-radius: 0 0 12px 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,.09);
  padding: 8px;
  list-style: none;
  margin: 0;
  /* Scroll inside the panel if it runs past the bottom of the viewport */
  max-height: calc(100vh - var(--header-h, 72px) - 16px);
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 9999;
}

/* Nested flyout */
.snt-dd-item { position: relative; }
.snt-dd-item > .snt-dropdown {
  top: -8px;
  left: calc(100% + 4px);
  border-top: 2px solid var(--snt-primary);
  border-radius: 0 12px 12px 12px;
}

/* Dropdown link */
.snt-dd-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 12px;
  font-size: .875rem;
  font-weight: 450;
  color: #3a3a3a;
  text-decoration: none;
  border-radius: 8px;
  white-space: nowrap;
  transition: background .15s, color .15s;
}
.snt-dd-link:hover {
  background: var(--snt-primary-100);
  color: var(--snt-primary);
}
.snt-dd-arrow {
  font-size: .5rem;
  opacity: .35;
  flex-shrink: 0;
  transition: opacity .15s;
}
.snt-dd-item:hover > .snt-dd-link .snt-dd-arrow { opacity: .8; }

/* Divider support - add class "menu-divider" in admin */
.snt-dd-item.menu-divider { border-top: 1px solid #ebebeb; margin-top: 6px; padding-top: 2px; }

/* =========================================================
   MEGA MENU  (add class "mega-menu" in admin)
   ========================================================= */
.mega-item { position: static !important; }

.mega-menu.dropdown-menu {
  display: none;
  position: absolute !important;
  left: 0 !important; right: 0 !important;
  width: 100% !important;
  top: 100% !important;
  border-radius: 0 0 16px 16px !important;
  padding: 0 !important;
  border: 0;
  border-top: 2px solid var(--snt-primary);
  box-shadow: 0 16px 56px rgba(0,0,0,.09);
  background: #fff;
  margin-top: 0 !important;
  /* Scroll inside the panel if it is taller than the viewport below the header */
  max-height: calc(100vh - var(--header-h, 72px) - 8px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 9999;
}
/* Bootstrap adds .show to both the parent .dropdown and the .dropdown-menu itself */
.mega-item.show > .mega-menu.dropdown-menu,
.mega-menu.dropdown-menu.show { display: block; }

.mega-menu-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 28px 24px 32px;
}

.mega-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 32px;
}
@media (max-width: 767px) {
  .mega-grid { grid-template-columns: repeat(2, 1fr); gap: 16px 24px; }
  .mega-col { border-right: none; padding-right: 0; }
  .mega-col:nth-child(4n) { border-right: none; padding-right: 0; }
}
.mega-col {
  padding: 0;
  border-right: 1px solid #efefef;
  padding-right: 32px;
}
.mega-col:nth-child(4n) { border-right: none; padding-right: 0; }
.mega-col:nth-child(n+5) { margin-top: 24px; }

.mega-col-title {
  display: block;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--snt-muted);
  text-decoration: none;
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid #efefef;
  pointer-events: none;
}
.mega-col-title[href]:not([href="#"]):not([href=""]) {
  pointer-events: auto;
}
.mega-col-title[href]:not([href="#"]):not([href=""]):hover {
  color: var(--snt-primary);
}

.mega-sub-list { list-style: none; margin: 0; padding: 0; }
.mega-sub-link {
  display: block;
  font-size: .8rem;
  font-weight: 400;
  color: #3a3a3a;
  text-decoration: none;
  padding: 5px 0;
  line-height: 1.35;
  transition: color .15s, padding-left .15s;
}
.mega-sub-link:hover { color: var(--snt-primary); padding-left: 6px; }

/* =========================================================
   MOBILE OFFCANVAS NAV
   ========================================================= */
.snt-mobile-offcanvas { width: min(310px, 88vw) !important; }

.snt-offcanvas-header {
  padding: 18px 20px;
  border-bottom: 1px solid #ebebeb;
}
.snt-offcanvas-header img { height: 38px; }

.snt-offcanvas-body {
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

/* Mobile nav list */
.snt-offcanvas-nav {
  flex: 1;
  list-style: none;
  margin: 0;
  padding: 8px 0 20px;
}

/* Top-level mobile link */
.snt-offcanvas-nav > .nav-item > .nav-link,
.snt-offcanvas-nav > .nav-item > .snt-dd-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px !important;
  font-size: .9rem;
  font-weight: 500;
  color: #2d2d2d !important;
  height: auto;
  border-bottom: 1px solid #f2f2f2;
  transition: background .15s, color .15s;
}
.snt-offcanvas-nav > .nav-item > .nav-link:hover,
.snt-offcanvas-nav > .nav-item.mobile-open > .nav-link,
.snt-offcanvas-nav > .nav-item.mobile-open > .snt-dd-link {
  background: var(--snt-primary-100);
  color: var(--snt-primary) !important;
}

/* Mobile chevron */
.mobile-chevron {
  font-size: .55rem;
  opacity: .4;
  margin-left: auto;
  transition: transform .2s;
}
.mobile-open > .nav-link .mobile-chevron,
.mobile-open > .snt-dd-link .mobile-chevron {
  transform: rotate(180deg);
  opacity: .9;
}

/* Mobile submenu (both snt-dropdown and mega-menu) */
.offcanvas .snt-dropdown,
.offcanvas .mega-menu.dropdown-menu {
  display: none;
  position: static !important;
  width: 100% !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: #f7f7f5 !important;
  margin: 0 !important;
  animation: none !important;
}
.offcanvas .nav-item.mobile-open > .snt-dropdown,
.offcanvas .mega-item.mobile-open > .mega-menu.dropdown-menu { display: block !important; }

/* Mobile sub-link */
.offcanvas .snt-dd-link {
  padding: 10px 20px 10px 32px;
  border-radius: 0;
  border-bottom: 1px solid #eee;
  font-size: .875rem;
  color: #3a3a3a;
}
.offcanvas .snt-dd-link:hover { background: #edf5f5; color: var(--snt-primary); }
.offcanvas .snt-dd-arrow { display: none; }

/* Nested sub-items indent */
.offcanvas .snt-dd-item > .snt-dropdown { background: #f0f3f3 !important; }
.offcanvas .snt-dd-item > .snt-dropdown .snt-dd-link { padding-left: 48px; }

/* Mobile mega menu flatten */
.offcanvas .mega-menu-inner { padding: 0; }
.offcanvas .mega-grid { grid-template-columns: 1fr; gap: 0; }
.offcanvas .mega-col { padding: 0; border: none; margin: 0; }
.offcanvas .mega-col-title {
  display: block;
  padding: 9px 20px 5px 32px;
  font-size: .62rem; letter-spacing: .1em;
  border-bottom: none; margin-bottom: 0;
  pointer-events: none;
  color: var(--snt-muted);
  text-transform: uppercase;
  font-weight: 700;
}
.offcanvas .mega-sub-list { padding-bottom: 4px; }
.offcanvas .mega-sub-link {
  padding: 9px 20px 9px 32px;
  border-bottom: 1px solid #eee;
  border-radius: 0; gap: 0; font-size: .875rem;
  color: #3a3a3a;
}
.offcanvas .mega-sub-link::before { display: none; }
.offcanvas .mega-sub-link:hover { background: #edf5f5; color: var(--snt-primary); }

/* WhatsApp bottom action */
.snt-offcanvas-actions {
  padding: 14px 16px;
  padding-bottom: max(14px, env(safe-area-inset-bottom));
  border-top: 1px solid #ebebeb;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.snt-offcanvas-booknow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--snt-accent);
  color: #fff;
  text-decoration: none;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: .9rem;
  font-weight: 600;
  transition: background .18s;
}
.snt-offcanvas-booknow:hover { background: var(--snt-accent-600); color: #fff; }
.snt-whatsapp-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: #25D366;
  color: #fff;
  text-decoration: none;
  padding: 11px 16px;
  border-radius: 10px;
  font-size: .875rem;
  transition: background .18s;
}
.snt-whatsapp-link:hover { background: #1ebe5d; color: #fff; }
.snt-whatsapp-link .fa-whatsapp { font-size: 1.35rem; }
.snt-whatsapp-text { display: flex; flex-direction: column; line-height: 1.3; }
.snt-whatsapp-text small { opacity: .8; font-size: .72rem; }
.snt-whatsapp-text strong { font-size: .9rem; }
/* =========================================================
   HERO
   ========================================================= */
.home-banner-section {
  position: relative;
  color: #fff;
  overflow: hidden;
}
#carouselSherpaNomadTrek .carousel-item {
  height: 88vh;
  min-height: 78vh;
  position: relative;
}
#carouselSherpaNomadTrek .carousel-item img {
  width: 100%; height: 100%; object-fit: cover;
}
#carouselSherpaNomadTrek .carousel-item::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.65), rgba(0,0,0,.2));
  z-index: 1;
}
.carousel-caption-wrap {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  pointer-events: none;
}
.carousel-caption-wrap .container {
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.carousel-caption-wrap a,
.carousel-caption-wrap button,
.carousel-caption-wrap input {
  pointer-events: auto;
}
.carousel-caption {
  position: static;
  text-align: center;
  padding: 0;
  max-width: 780px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* shared search bar — sits outside carousel items so it stays on slide change */
.carousel-search-wrap {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.carousel-search-wrap .container {
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* push search bar ~80px below center to sit just under the caption text */
  padding-top: 180px;
}
.carousel-search-wrap .hero-search-form {
  width: 100%;
  max-width: 640px;
}
.home-banner-section .carousel-caption h1 {
  color: #fff;
  margin-bottom: 24px;
}
.home-banner-section .carousel-caption p {
  color: rgba(255,255,255,.9);
  font-size: 18px;
  max-width: 620px;
}
.hero-actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 35px;
}
.banner-btn-explore {
  background: var(--snt-accent);
  border-color: var(--snt-accent);
  color: #fff;
}
.banner-btn-explore:hover {
  background: var(--snt-accent-600);
  border-color: var(--snt-accent-600);
  color: #fff;
}
.banner-btn-customize-outline {
  border: 2px solid rgba(255,255,255,.6);
  color: #fff;
  background: transparent;
}
.banner-btn-customize-outline:hover {
  background: #fff;
  color: var(--snt-primary);
  border-color: #fff;
}
.btn-light-on-dark {
  border: 2px solid rgba(255,255,255,.6);
  color: #fff;
  background: transparent;
}
.btn-light-on-dark:hover {
  background: #fff;
  color: var(--snt-primary);
  border-color: #fff;
}


    /* =========================================================
       TRIP FINDER
       ========================================================= */
.trip-finder-wrap {
    position: relative;
    z-index: 10;
    margin-top: -70px;
}

.trip-finder {
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(20px);
    border-radius: 24px;
    padding: 30px;
    border: 1px solid rgba(255,255,255,0.4);
    box-shadow:
        0 20px 60px rgba(0,0,0,0.08),
        0 8px 24px rgba(0,0,0,0.05);
}

.finder-label {
    display: block;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--snt-primary);
}

.finder-input {
    position: relative;
}

.finder-input i {
    position: absolute;
    top: 50%;
    left: 20px;
    transform: translateY(-50%);
    color: var(--snt-accent);
    font-size: 18px;
}

.trip-finder .form-control {
    height: 62px;
    border-radius: 18px;
    border: 1px solid #e5e7eb;
    padding-left: 55px;
    font-size: 16px;
    font-weight: 500;
    box-shadow: none;
    transition: all .3s ease;
}

.trip-finder .form-control:focus {
    border-color: var(--snt-accent);
    box-shadow: 0 0 0 4px rgba(217,123,46,.12);
}

.trip-finder .form-control::placeholder {
    color: #9ca3af;
}

.btn-search {
    height: 62px;
    border: none;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        var(--snt-primary),
        #2f5d50
    );
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    transition: all .3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.btn-search:hover {
    transform: translateY(-3px);
    color: #fff;
    box-shadow: 0 15px 30px rgba(0,0,0,.15);
}

@media (max-width: 767px) {

    .trip-finder-wrap {
        margin-top: -40px;
    }

    .trip-finder {
        padding: 20px;
        border-radius: 20px;
    }

    .trip-finder .form-control,
    .btn-search {
        height: 56px;
    }
}

/* =========================================================
   PACKAGE CARD
   ========================================================= */
/* - Package card - */
.pkg-card {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--snt-line);
  transition: transform .3s ease, box-shadow .3s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.pkg-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(32,118,124,.13);
}

/* Image */
.pkg-img-wrap {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  text-decoration: none;
}

.pkg-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
  display: block;
}

.pkg-card:hover .pkg-img-wrap img { transform: scale(1.07); }

.pkg-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10,34,37,.72) 0%,
    rgba(10,34,37,.18) 45%,
    transparent 100%
  );
}

/* Badges (top-left) */
.pkg-badges {
  position: absolute;
  top: 14px;
  left: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  z-index: 2;
}

.pkg-badge {
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.35);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 999px;
}

/* Meta chips on image (bottom) */
.pkg-img-meta {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  z-index: 2;
}

.pkg-img-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
  color: rgba(255,255,255,.9);
  font-size: .78rem;
  font-weight: 600;
}

.pkg-img-meta i { font-size: .75rem; color: var(--snt-accent); }

/* Body */
.pkg-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 14px;
}

.pkg-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--snt-ink);
  line-height: 1.3;
  margin: 0;
}

.pkg-title a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}

.pkg-title a:hover { color: var(--snt-primary); }

/* Footer row inside body */
.pkg-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--snt-line);
}

.pkg-price {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.pkg-price small {
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--snt-muted);
  font-weight: 500;
}

.pkg-price strong {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--snt-primary);
}

.pkg-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--snt-primary);
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  padding: 9px 18px;
  border-radius: 999px;
  text-decoration: none;
  transition: background .2s, gap .2s;
  white-space: nowrap;
}

.pkg-cta:hover {
  background: var(--snt-primary-700);
  color: #fff;
  gap: 10px;
}

/* =========================================================
   FEATURE / WHY US
   ========================================================= */
.feature-tile {
  padding: 2rem 1.5rem;
  background: #fff;
  border-radius: var(--radius-md);
  border: 1px solid var(--snt-line);
  height: 100%;
  transition: var(--transition-fast);
}
.feature-tile:hover {
  border-color: var(--snt-accent);
  transform: translateY(-2px);
}
.feature-tile .ft-icon {
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--snt-cream-2);
  color: var(--snt-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}
.feature-tile h3 { font-size: 1.15rem; }
.feature-tile p {
  color: var(--snt-muted);
  font-size: .92rem;
  margin-bottom: 0;
}

/* =========================================================
   DESTINATIONS
   ========================================================= */
.destination-section {
  background: var(--snt-cream);
  position: relative;
  overflow: hidden;
}
.heading-wrap .eyebrow.pill {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--snt-primary);
  background: rgba(32,118,124,0.1);
  padding: 8px 14px;
  border-radius: 30px;
  font-family: var(--font-body);
}
.section-title {
  font-size: 42px;
  line-height: 1.2;
  font-weight: 800;
  color: #1e293b;
  margin-bottom: 18px;
}
.section-text {
  font-size: 16px;
  line-height: 1.8;
  color: #64748b;
  margin-bottom: 30px;
}
.btn-explore {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  background: var(--snt-primary);
  color: #fff;
  border-radius: 60px;
  font-weight: 600;
  text-decoration: none;
  transition: var(--transition);
}
.btn-explore:hover {
  background: var(--snt-accent);
  color: #fff;
  transform: translateY(-3px);
}
.destination-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl);
  height: 480px;
  cursor: pointer;
  box-shadow: 0 15px 40px rgba(0,0,0,.08);
  transition: var(--transition);
}
.destination-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}
.destination-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.8) 0%,
    rgba(0,0,0,.15) 55%,
    rgba(0,0,0,.05) 100%
  );
}
.destination-content {
  position: absolute;
  left: 30px;
  right: 30px;
  bottom: 28px;
  z-index: 2;
  color: #fff;
}
.destination-subtitle {
  display: inline-block;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 10px;
  color: rgba(255,255,255,.85);
}
.destination-content h3 {
  font-size: 36px;
  font-weight: 800;
  margin-bottom: 14px;
  color: #fff;
  line-height: 1;
}
.destination-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  opacity: 0;
  transform: translateY(15px);
  transition: var(--transition);
}
.destination-card:hover { transform: translateY(-6px); }
.destination-card:hover img { transform: scale(1.08); }
.destination-card:hover .destination-link { opacity: 1; transform: translateY(0); }

/* =========================================================
   THINGS TO DO
   ========================================================= */
.activity-card {
  background: #fff;
  border: 1px solid rgba(31,61,46,.08);
  border-radius: 25px;
  padding: 28px;
  height: 100%;
  transition: var(--transition);
  box-shadow: var(--shadow-sm);
}
.activity-card:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow-md);
  border-color: rgba(217,123,46,.35);
}
.activity-icon {
  width: 62px; height: 62px;
  border-radius: 20px;
  background: var(--snt-cream-2);
  color: var(--snt-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.55rem;
  margin-bottom: 20px;
}
.mini-link {
  color: var(--snt-primary);
  font-weight: 700;
  font-size: .92rem;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
}
.mini-link i { transition: transform .2s; }
.mini-link:hover { color: var(--snt-accent); }
.mini-link:hover i { transform: translateX(3px); }

/* =========================================================
   BEST SELLING (dark teal)
   ========================================================= */
.best-selling-section {
  background: var(--snt-primary);
  color: #fff;
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.best-selling-section .eyebrow { color: var(--snt-accent); }
.best-selling-section h2 { color: #fff; }
.best-selling-section .lead { color: rgba(255,255,255,.8); }
.trip-scroll-container { margin-top: 0; }
.trip-scroll {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 8px;
}
.trip-scroll::-webkit-scrollbar { display: none; }
.trip-slide {
  flex: 0 0 320px;
  scroll-snap-align: start;
}

/* Nav buttons - sit in heading row, never overlap cards */
.trip-scroll-nav {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.scroll-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.3);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.scroll-btn:hover {
  background: var(--snt-accent);
  border-color: var(--snt-accent);
  transform: scale(1.08);
}

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.snt-review-section {
  position: relative;
  padding: 90px 0;
  overflow: hidden;
  background: #fff;
}

/* TOP */
.snt-review-top {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: center;
  margin-bottom: 50px;
}

.snt-review-heading-wrap {
  display: flex;
  align-items: center;
  gap: 24px;
}

.snt-review-heading-wrap .section-head {
  max-width: 650px;
}



.snt-review-heading-wrap .lead {
  font-size: 1.05rem;
  color: #57656b;
  line-height: 1.8;
}

/* PLATFORMS */
.snt-review-platforms {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}

.snt-platform {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.snt-platform img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.snt-platform span {
  display: block;
  font-size: .95rem;
  color: #1f2937;
  font-weight: 700;
  line-height: 1.2;
}

/* REVIEW CARD */
.snt-review-card {
  background: #fff;
  border-radius: 20px;
  padding: 24px;
  height: 100%;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
  transition: .3s ease;
}

.snt-review-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0,0,0,.08);
}

.snt-review-user {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.snt-review-card .snt-review-user .avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--snt-cream-2);
  border: 1px solid var(--snt-line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--snt-primary-300);
}

.snt-review-user img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}

.snt-review-user h4 {
  font-size: .95rem;
  margin: 0;
  font-weight: 700;
  color: var(--snt-primary);
}

.snt-review-user span {
  font-size: .8rem;
  color: var(--snt-muted);
}

.snt-stars {
  display: flex;
  gap: 3px;
  margin-bottom: 16px;
}

.snt-stars i {
  color: var(--snt-accent);
  font-size: .95rem;
}

.snt-review-card h3 {
  font-size: 1.2rem;
  line-height: 1.35;
  margin-bottom: 18px;
  font-weight: 800;
  color: var(--snt-primary);
}

.snt-review-content {
  max-height: 150px;
  overflow-y: auto;
  padding-right: 10px;
}

.snt-review-content::-webkit-scrollbar {
  width: 6px;
}

.snt-review-content::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.15);
  border-radius: 50px;
}

.snt-review-content p {
  margin-bottom: 16px;
  line-height: 1.8;
  color: #374151;
  font-size: 1rem;
}

/* SLIDER TRACK */
.snt-slider-wrap {
  overflow: hidden;
}

.snt-slider-track {
  display: flex;
  gap: 24px;
  transition: transform .4s cubic-bezier(.4,0,.2,1);
  will-change: transform;
  align-items: stretch;
}

.snt-slide {
  flex: 0 0 calc(33.333% - 16px);
  min-width: 0;
}

@media (max-width: 991px) {
  .snt-slide { flex: 0 0 calc(50% - 12px); }
}

@media (max-width: 575px) {
  .snt-slide { flex: 0 0 100%; }
}

/* dot indicators */
#tcDots {
  display: flex;
  gap: 6px;
  align-items: center;
}

#tcDots span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #1d5f78;
  opacity: .3;
  transition: opacity .25s, width .25s;
  cursor: pointer;
}

#tcDots span.active {
  opacity: 1;
  width: 22px;
  border-radius: 4px;
}

/* BOTTOM */
.snt-review-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 34px;
}

.snt-slider-nav {
  display: flex;
  align-items: center;
  gap: 14px;
}

.snt-slider-nav button {
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 10px;
  background: #1d5f78;
  color: #fff;
  transition: .25s ease;
}

.snt-slider-nav button:hover {
  transform: translateY(-2px);
}

.snt-slider-nav span {
  width: 50px;
  height: 4px;
  background: #1d5f78;
  border-radius: 50px;
  opacity: .35;
}

.snt-more-review {
  font-weight: 600;
  color: #1d5f78;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.snt-more-review:hover {
  gap: 12px;
}

/* RESPONSIVE */
@media (max-width: 991px) {

  .snt-review-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .snt-review-heading-wrap {
    flex-direction: column;
    align-items: flex-start;
  }

}

@media (max-width: 767px) {

  .snt-review-section {
    padding: 70px 0;
  }

  .snt-review-card h3 {
    font-size: 1.35rem;
  }

  .snt-review-bottom {
    flex-direction: column;
    gap: 20px;
    align-items: flex-start;
  }

}

/* =========================================================
   BLOG
   ========================================================= */
.blog-card {
  background: #fff;
  border-radius: 26px;
  overflow: hidden;
  border: 1px solid rgba(31,61,46,.08);
  box-shadow: var(--shadow-sm);
  height: 100%;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
}
.blog-card:hover {
  transform: translateY(-7px);
  box-shadow: var(--shadow-md);
}
.blog-img { display: block; height: 230px; overflow: hidden; }
.blog-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .75s ease;
}
.blog-card:hover .blog-img img { transform: scale(1.08); }
.blog-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.blog-meta {
  color: var(--snt-accent);
  font-size: .78rem;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 10px;
  display: block;
}
.blog-body h3 { font-size: 1.23rem; margin-bottom: 12px; }
.blog-body h3 a { color: var(--snt-primary); text-decoration: none; }
.blog-body h3 a:hover { color: var(--snt-accent); }
.blog-body p { color: var(--snt-muted); flex: 1; }

/* =========================================================
   NEWSLETTER
   ========================================================= */
.newsletter {
  border-radius: var(--radius-2xl);
  background:
    radial-gradient(circle at 88% 12%, rgba(225,169,58,.32), transparent 23%),
    radial-gradient(circle at 10% 80%, rgba(217,123,46,.28), transparent 28%),
    linear-gradient(135deg, var(--snt-primary-700), var(--snt-primary));
  color: #fff;
  padding: 54px;
  box-shadow: var(--shadow-lg);
}
.newsletter h2, .newsletter p { color: #fff; }
.newsletter p { color: rgba(255,255,255,.78); }
.newsletter .eyebrow { color: rgba(255,255,255,.78); }
.newsletter-form {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  padding: 8px;
  display: flex;
  gap: 8px;
  backdrop-filter: blur(12px);
}
.newsletter-form input {
  flex: 1;
  background: transparent;
  border: 0;
  color: #fff;
  padding: 0 16px;
  outline: 0;
  min-width: 0;
}
.newsletter-form input::placeholder { color: rgba(255,255,255,.65); }
.newsletter-form .btn {
  white-space: nowrap;
  background: var(--snt-accent);
  color: #fff;
  border-color: var(--snt-accent);
}
.newsletter-form .btn:hover {
  background: var(--snt-accent-600);
  border-color: var(--snt-accent-600);
  color: #fff;
  transform: translateY(-2px);
}

/* =========================================================
   FOOTER
   ========================================================= */
/* =========================================================
   FOOTER - deep forest dark theme
   ========================================================= */
.site-footer {
  background: var(--snt-primary-900);
  color: rgba(255,255,255,.68);
  font-size: .93rem;
  position: relative;
  border-top: 3px solid var(--snt-accent);
}

.footer-brand img {
  height: 44px;
  width: auto;
  margin-bottom: 10px;
}

.footer-tagline {
  font-size: .83rem;
  color: var(--snt-accent);
  margin: 0 0 10px;
  font-style: italic;
  letter-spacing: .02em;
}

.footer-desc {
  font-size: .87rem;
  color: rgba(255,255,255,.5);
  line-height: 1.7;
  margin-bottom: 20px;
}

/* Contact info rows */
.footer-info-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 22px;
}

.footer-info-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .87rem;
  color: rgba(255,255,255,.58);
}

.footer-info-row i {
  color: var(--snt-accent);
  width: 14px;
  text-align: center;
  margin-top: 3px;
  flex-shrink: 0;
  font-size: .8rem;
}

.footer-info-row a {
  color: rgba(255,255,255,.58);
  text-decoration: none;
  transition: color .2s;
}

.footer-info-row a:hover { color: #fff; }

/* Subtle topographic dot pattern overlay */
.site-footer > * { position: relative; z-index: 1; }

/* - Worldwide Representatives (column grid) - */
.footer-reps-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

/* tablet: full-width col → use 2 columns */
@media (min-width: 768px) and (max-width: 991px) {
  .footer-reps-grid { grid-template-columns: 1fr 1fr; }
}

.footer-rep-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  transition: var(--transition-fast);
}

.footer-rep-card:hover {
  background: rgba(12,150,156,.12);
  border-color: rgba(12,150,156,.3);
  transform: translateY(-2px);
}

.footer-rep-avatar {
  width: 40px; height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, var(--snt-primary), var(--snt-primary-700));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 800;
  color: #fff;
  border: 2px solid rgba(255,255,255,.12);
}

.footer-rep-avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

.footer-rep-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.footer-rep-name-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}

.footer-rep-name {
  font-size: .84rem;
  font-weight: 700;
  color: rgba(255,255,255,.92);
  line-height: 1.3;
}

.footer-rep-country {
  font-size: .72rem;
  color: rgba(255,255,255,.4);
  line-height: 1.3;
}

.footer-rep-phone {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
  font-size: .72rem;
  font-weight: 600;
  color: var(--snt-primary-300);
  text-decoration: none;
  transition: color .2s;
}

.footer-rep-phone i { color: #25d366; font-size: .75rem; }
.footer-rep-phone:hover { color: #7cff8a; }

/* - Main footer body - */
.footer-body { padding: 64px 0 48px; }

/* Brand */
.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff !important;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 14px;
  text-decoration: none;
  letter-spacing: -.02em;
}

/* Contact cards */
.footer-contact-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 26px;
}

.footer-contact-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  padding: 13px 16px;
  text-decoration: none;
  transition: var(--transition-fast);
}

.footer-contact-card:hover {
  background: rgba(32,118,124,.15);
  border-color: rgba(32,118,124,.4);
  transform: translateX(4px);
}

.footer-contact-card--static {
  cursor: default;
}

.footer-contact-card--static:hover {
  transform: none;
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.07);
}

.fcc-icon {
  width: 40px; height: 40px;
  border-radius: 11px;
  background: rgba(32,118,124,.25);
  color: var(--snt-primary-300);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.fcc-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.fcc-text small {
  font-size: .68rem;
  color: rgba(255,255,255,.38);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 600;
  margin-bottom: 2px;
}

.fcc-text span {
  font-size: .88rem;
  color: rgba(255,255,255,.85);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Social icons */
.footer-social {
  display: flex;
  gap: 8px;
}

.footer-social-link {
  width: 42px; height: 42px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.09);
  color: rgba(255,255,255,.75);
  font-size: 1rem;
  text-decoration: none;
  transition: var(--transition-fast);
}

.footer-social-link:hover {
  background: var(--snt-accent);
  border-color: var(--snt-accent);
  color: #fff !important;
  transform: translateY(-4px) scale(1.08);
  box-shadow: 0 8px 20px rgba(244,163,1,.4);
}

/* Brand-specific hover colours */
.footer-social-link--fb:hover  { background: #1877F2; border-color: #1877F2; box-shadow: 0 8px 20px rgba(24,119,242,.4); }
.footer-social-link--ig:hover  { background: linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); border-color: #e6683c; box-shadow: 0 8px 20px rgba(220,39,67,.4); }
.footer-social-link--yt:hover  { background: #FF0000; border-color: #FF0000; box-shadow: 0 8px 20px rgba(255,0,0,.35); }
.footer-social-link--wa:hover  { background: #25D366; border-color: #25D366; box-shadow: 0 8px 20px rgba(37,211,102,.4); }

/* Column titles */
.footer-title {
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-family: var(--font-mono);
  margin-bottom: 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  display: block;
  position: relative;
}

.footer-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: -1px;
  width: 28px; height: 2px;
  background: var(--snt-accent);
  border-radius: 2px;
}

/* Footer links */
.footer-links { list-style: none; padding: 0; margin: 0; }

.footer-links li { margin-bottom: 10px; }

.footer-links a {
  color: rgba(255,255,255,.55);
  text-decoration: none;
  font-size: .88rem;
  display: inline-flex;
  align-items: center;
  gap: 0;
  transition: color .2s, gap .2s;
}

.footer-links a:hover {
  color: rgba(255,255,255,.95);
}

/* Address */
.footer-address {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  color: rgba(255,255,255,.58);
  margin-bottom: 16px;
  font-size: .88rem;
  line-height: 1.65;
}

.footer-address i {
  color: var(--snt-accent);
  margin-top: 3px;
  flex-shrink: 0;
  width: 16px;
  text-align: center;
}

/* Google Maps link */
.footer-map-hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  font-size: .78rem;
  color: rgba(255,255,255,.65);
  text-decoration: none;
  transition: var(--transition-fast);
}

.footer-map-hint i { color: var(--snt-accent); }
.footer-map-hint a { color: inherit; text-decoration: none; }
.footer-map-hint:hover { background: rgba(255,255,255,.1); color: #fff; }

/* - Combined Recommended on + Associated with (one row) - */
.footer-combined-strip {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 28px 0;
  background: rgba(0,0,0,.15);
}

.footer-combined-inner {
  display: flex;
  align-items: flex-start;
  gap: 0;
}

.footer-combined-group {
  flex: 1;
  min-width: 0;
  padding: 0 32px;
}

.footer-combined-group:first-child { padding-left: 0; }
.footer-combined-group:last-child  { padding-right: 0; }

.footer-combined-sep {
  width: 1px;
  align-self: stretch;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.1) 20%, rgba(255,255,255,.1) 80%, transparent);
  flex-shrink: 0;
  margin: 4px 0;
}

.footer-strip-heading {
  font-family: var(--font-mono);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.28);
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.footer-strip-heading::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.08), transparent);
}

.footer-strip-items {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* Platform badges */
.footer-platform-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  text-decoration: none;
  transition: var(--transition-fast);
  color: #fff;
}

.footer-platform-badge:hover {
  color: #fff;
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.2);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
}

.footer-platform-badge i { font-size: 1.6rem; flex-shrink: 0; }
.footer-platform-badge svg { width: 26px; height: 26px; flex-shrink: 0; }

/* Tripadvisor - override dark teal color to white so it shows on dark bg */
.footer-platform-badge--ta svg path { fill: #34E0A1 !important; }

.footer-platform-badge--fb i { color: #1877F2; }
.footer-platform-badge--tp i { color: #00B67A; }

.fpb-text { display: flex; flex-direction: column; line-height: 1.35; }
.fpb-name { font-size: .9rem; font-weight: 700; color: #fff; }
/* Association badges */
.footer-assoc-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  transition: var(--transition-fast);
  position: relative;
}

/* "Verified" green dot top-right */
.footer-assoc-badge:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 10px 24px rgba(0,0,0,.3);
}

.fab-icon {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  background: rgba(255,255,255,.08);
  padding: 6px;
}

.fab-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* - Bottom bar - */
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.06);
  padding: 20px 0;
  background: rgba(0,0,0,.2);
  position: relative;
}

/* Gradient shimmer line above bottom bar */
.footer-bottom::before {
  content: "";
  position: absolute;
  top: -1px; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(32,118,124,.6) 30%, var(--snt-accent) 50%, rgba(32,118,124,.6) 70%, transparent 100%);
}

.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.footer-copy {
  color: rgba(255,255,255,.38);
  font-size: .82rem;
  margin: 0;
}

.footer-legal {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.footer-legal a {
  color: rgba(255,255,255,.38);
  text-decoration: none;
  font-size: .82rem;
  transition: color .2s;
  padding: 0 10px;
  border-right: 1px solid rgba(255,255,255,.12);
}

.footer-legal a:last-of-type { border-right: 0; }
.footer-legal a:hover { color: rgba(255,255,255,.85); }

.footer-backtop {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1.5px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.65);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .82rem;
  transition: var(--transition-fast);
  margin-left: 8px;
  flex-shrink: 0;
}

.footer-backtop:hover {
  background: var(--snt-accent);
  border-color: var(--snt-accent);
  color: #fff;
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(244,163,1,.4);
}

/* - Responsive - */
@media (max-width: 1199px) {
  .footer-combined-group { padding: 0 20px; }
}

@media (max-width: 991px) {
  .footer-combined-inner { flex-direction: column; gap: 28px; }
  .footer-combined-sep { display: none; }
  .footer-combined-group { padding: 0; }
  
}

@media (max-width: 767px) {
  .footer-wa-strip { padding: 20px 0; }
  .footer-wa-inner { flex-direction: column; align-items: flex-start; gap: 16px; }
  .footer-wa-icon  { width: 46px; height: 46px; font-size: 1.35rem; }
  .footer-body     { padding: 44px 0 32px; }
  .footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 10px; }
  .footer-legal { gap: 0; }
  
}

/* =========================================================
   TRIP CARD LINK (best-selling)
   ========================================================= */
/* .trip-slide replaced by .trip-slide + .pkg-card */

/* =========================================================
   SECTION ENTRANCE ANIMATION
   ========================================================= */
@media (prefers-reduced-motion: no-preference) {
  .pkg-card,
  .activity-card,
  .blog-card,
  .destination-card,
  .snt-review-card,
  .feature-tile,
  .trip-slide {
    animation: fadeUp .5s ease both;
  }

  .pkg-card:nth-child(2), .activity-card:nth-child(2), .blog-card:nth-child(2),
  .destination-card:nth-child(2), .snt-review-card:nth-child(2), .feature-tile:nth-child(2), .trip-slide:nth-child(2) { animation-delay: .08s; }
  .pkg-card:nth-child(3), .activity-card:nth-child(3), .blog-card:nth-child(3),
  .destination-card:nth-child(3), .snt-review-card:nth-child(3), .feature-tile:nth-child(3), .trip-slide:nth-child(3) { animation-delay: .16s; }
  .pkg-card:nth-child(4), .activity-card:nth-child(4), .destination-card:nth-child(4),
  .feature-tile:nth-child(4), .trip-slide:nth-child(4) { animation-delay: .24s; }

  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 991px) {
  .section { padding: 75px 0; }
  .destination-card { height: 380px; }
}
@media (max-width: 767px) {
  #carouselSherpaNomadTrek .carousel-item { height: 75vh; min-height: 520px; }
  .newsletter { padding: 32px 24px; }
  .destination-card { height: 300px; }
  .fmp-media img { height: 280px; }
  .section-title { font-size: 2rem; }
}
@media (max-width: 480px) {
  .newsletter { padding: 24px 16px; }
  .section { padding: 56px 0; }
}


/* =========================================================
   HERO - VIDEO
   ========================================================= */
.main-banner { position: relative; overflow: hidden; }

.hero-media {
  width: 100%;
  height: 88vh;
  min-height: 560px;
  object-fit: cover;
  display: block;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.38);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero-overlay .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero-content {
  max-width: 780px;
  width: 100%;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.hero-subtitle {
  font-size: .95rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.88);
  margin-bottom: 14px;
}

.hero-content h1 {
  color: #fff;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 32px;
  text-shadow: 0 2px 16px rgba(0,0,0,.3);
}

.hero-content p:not(.hero-subtitle) {
  color: rgba(255,255,255,.9);
  font-size: clamp(1rem, 2vw, 1.15rem);
  margin-bottom: 28px;
  max-width: 580px;
  line-height: 1.7;
}

/* carousel controls - show on hover only */
#carouselSherpaNomadTrek .carousel-control-prev,
#carouselSherpaNomadTrek .carousel-control-next {
  opacity: 0;
  transition: opacity .3s;
  z-index: 10;
}
#carouselSherpaNomadTrek:hover .carousel-control-prev,
#carouselSherpaNomadTrek:hover .carousel-control-next {
  opacity: 1;
}

/* hero search bar */
.hero-search-form {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  display: block;
}
.hero-search-inner {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 50px;
  padding: 6px 6px 6px 26px;
  box-shadow: 0 16px 48px rgba(0,0,0,.28);
  gap: 8px;
}
.hero-search-input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: 1rem;
  font-weight: 500;
  color: #1a3438;
  min-width: 0;
  padding: 8px 0;
}
.hero-search-input::placeholder { color: #aab8bb; font-weight: 400; }
.hero-search-btn {
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  border: none;
  border-radius: 50%;
  background: var(--snt-primary);
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, transform .15s;
}
.hero-search-btn:hover {
  background: var(--snt-primary-700);
  transform: scale(1.06);
}

@media (max-width: 767px) {
  .hero-media { height: 75vh; min-height: 480px; }
  .hero-content h1 { font-size: 2.1rem; }
  .hero-search-form { max-width: 100%; }
  .hero-search-inner { padding: 5px 5px 5px 18px; }
  .hero-search-btn { width: 40px; height: 40px; font-size: .9rem; }
  .carousel-caption-wrap { padding-bottom: 80px; }
  .carousel-search-wrap .container { padding-top: 100px; }
  .home-banner-section .carousel-caption h1 { font-size: 2rem; }
  .home-banner-section .carousel-caption p { font-size: 1rem; }
  .single-page-banner-content { padding-top: 70px; }
  .trip-slide { flex: 0 0 280px; }
  /* Hide the home banner prev/next arrows on mobile (swipe instead) */
  #carouselSherpaNomadTrek .carousel-control-prev,
  #carouselSherpaNomadTrek .carousel-control-next { display: none; }
}
@media (max-width: 480px) {
  .carousel-search-wrap .container { padding-top: 70px; }
  .trip-slide { flex: 0 0 260px; }
}

/* =========================================================
   UPCOMING DEPARTURES TABLE
   ========================================================= */
.departure-table {
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--snt-line);
  border-radius: var(--radius-md);
  overflow: hidden;
  background: #fff;
  font-size: .93rem;
}

.departure-table thead th {
  background: var(--snt-primary);
  color: rgba(255,255,255,.9);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 14px 18px;
  font-weight: 500;
  white-space: nowrap;
}

.departure-table tbody tr {
  border-bottom: 1px solid var(--snt-line);
  transition: background .2s;
}

.departure-table tbody tr:last-child { border-bottom: 0; }
.departure-table tbody tr:hover { background: var(--snt-cream); }

.departure-table tbody td {
  padding: 16px 18px;
  color: var(--snt-text);
  vertical-align: middle;
}

.departure-table tbody td a {
  font-weight: 600;
  color: var(--snt-primary);
}

.departure-table tbody td a:hover { color: var(--snt-accent); }

@media (max-width: 767px) {
  .departure-table thead { display: none; }
  .departure-table tbody tr {
    display: block;
    padding: 16px;
    border-bottom: 1px solid var(--snt-line);
  }
  .departure-table tbody td {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px dashed var(--snt-line);
  }
  .departure-table tbody td:last-child { border-bottom: 0; padding-top: 12px; justify-content: flex-end; }
  .departure-table tbody td::before {
    content: attr(data-label);
    font-weight: 600;
    color: var(--snt-muted);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
  }
}

/* =========================================================
   PACKAGE DETAIL
   ========================================================= */

/* =========================================================
   PKG INPAGE TABBAR
   ========================================================= */
.pkg-tabbar {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: 0;
}

.pkg-tabbar::-webkit-scrollbar { display: none; }

.pkg-tab {
  display: inline-flex;
  align-items: center;
  padding: 16px 18px;
  font-weight: 600;
  font-size: .88rem;
  color: var(--snt-muted);
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  text-decoration: none;
  transition: color .2s, border-color .2s;
  letter-spacing: .01em;
}
@media (max-width: 767px) {
  .pkg-tab { padding: 13px 14px; font-size: .82rem; }
}

.pkg-tab:hover { color: var(--snt-primary); }

.pkg-tab.active {
  color: var(--snt-primary);
  border-bottom-color: var(--snt-accent);
}

/* =========================================================
   ITINERARY - topbar + expand/collapse toggle
   ========================================================= */
/* (itinerary-topbar replaced by .section-head - see above) */

/* =========================================================
   GALLERY (package detail)
   ========================================================= */
.snt-gallery-link {
  display: block;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
  position: relative;
}

.snt-gallery-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.snt-gallery-link:hover img { transform: scale(1.07); }

.snt-map-link {
  display: block;
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: zoom-in;
}

.snt-map-link img {
  width: 100%;
  border-radius: var(--radius-md);
  transition: opacity .2s;
}

.snt-map-link:hover img { opacity: .88; }

/* =========================================================
   LOAD MORE REVIEWS
   ========================================================= */
.btn-load-more-review {
  display: block;
  margin: 28px auto 0;
  background: transparent;
  border: 1.5px solid var(--snt-primary);
  color: var(--snt-primary);
  border-radius: 999px;
  padding: 10px 32px;
  font-weight: 600;
  font-size: .9rem;
  cursor: pointer;
  transition: var(--transition-fast);
}

.btn-load-more-review:hover {
  background: var(--snt-primary);
  color: #fff;
}

/* =========================================================
   REVIEW CARDS
   ========================================================= */
.rv-card {
  background: #fff;
  border: 1px solid var(--snt-line);
  border-radius: 16px;
  padding: 24px 28px;
  margin-bottom: 20px;
  transition: box-shadow .2s ease, transform .2s ease;
}

.rv-card:hover {
  box-shadow: 0 6px 28px rgba(32,118,124,.10);
  transform: translateY(-2px);
}

/* Header row */
.rv-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}

.rv-avatar {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  font-family: var(--font-display);
  letter-spacing: 0;
}

.rv-meta {
  flex: 1;
  min-width: 0;
}

.rv-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--snt-ink);
  display: block;
  margin-bottom: 4px;
}

.rv-submeta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .8rem;
  color: var(--snt-muted);
}

.rv-country i,
.rv-date i {
  margin-right: 3px;
}

/* Stars */
.rv-stars {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 3px;
  color: #f59e0b;
  font-size: .9rem;
}

.rv-stars .fa-regular { color: #d1d5db; }

.rv-rating-num {
  font-size: .8rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-left: 6px;
}

/* Title */
.rv-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 10px;
}

/* Body */
.rv-body {
  font-size: .95rem;
  color: #4b5563;
  line-height: 1.75;
}

.rv-body p { margin-bottom: .5rem; }
.rv-body p:last-child { margin-bottom: 0; }

/* Source platforms */
.rv-sources {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--snt-line);
}

.rv-source-label {
  font-size: .75rem;
  color: var(--snt-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 600;
}

.rv-source-link img {
  height: 22px;
  width: auto;
  opacity: .7;
  transition: opacity .2s;
}

.rv-source-link:hover img { opacity: 1; }

/* Review section heading area */
#package_review .section-head {
  margin-bottom: 24px;
}

/* Leave a review form card */
.review {
  background: var(--snt-cream);
  border-radius: 16px;
  padding: 28px 32px;
  border: 1px solid var(--snt-line);
}

.review .title-head h4 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--snt-ink);
}
/* Star rating input */
.review-rating-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start;
}
.rating-lable-text {
  font-size: .9rem;
  font-weight: 600;
  color: var(--snt-dark);
}
.star-cb-group {
  display: inline-flex;
  direction: rtl;
  unicode-bidi: bidi-override;
  gap: 4px;
  width: auto;
  height: auto;
  line-height: 1;
  float: left;
}
.star-cb-group > input[type="radio"] {
  display: none;
}
.star-cb-group > input + label {
  display: inline-block;
  width: 36px;
  height: 36px;
  cursor: pointer;
  font-size: 0;
  position: relative;
  transition: transform .15s;
}
.star-cb-group > input + label::before {
  content: "\f005";
  font-family: "Font Awesome 7 Free";
  font-weight: 400;
  font-size: 28px;
  color: #d0d0d0;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .15s, font-weight .15s;
}
/* checked state — fill this star and all stars to its left (higher values, rtl) */
.star-cb-group > input:checked ~ label::before,
.star-cb-group > input:checked + label::before {
  content: "\f005";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  color: #f5a623;
}
/* hover state */
.star-cb-group:hover > input + label:hover::before,
.star-cb-group:hover > input + label:hover ~ label::before {
  content: "\f005";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  color: #f5a623;
}
.star-cb-group > input + label:hover {
  transform: scale(1.2);
}
@media (max-width: 575px) {
  .rv-card { padding: 18px; }
  .rv-header { flex-wrap: wrap; }
  .rv-stars { width: 100%; }
  .review { padding: 20px 18px; }
}

/* =========================================================
   DEPARTURE FILTER - improved
   ========================================================= */
.departure-date-filter {
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dep-filter-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.dep-filter-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--snt-muted);
  flex-shrink: 0;
  width: 44px;
}

.dep-filter-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* =========================================================
   SECTION SPACING (package detail)
   ========================================================= */
.trek-body .col-content > section {
  padding-top: 48px;
  border-top: 1px solid var(--snt-line);
  margin-top: 0;
}

.trek-body .col-content > section:first-child {
  padding-top: 0;
  border-top: 0;
}

@media (max-width: 767px) {
  .trek-body { padding-bottom: 48px; }
  .trek-body > .container { padding-top: 32px; }
  .trek-body .col-content > section { padding-top: 36px; }
  .trek-body .col-content > section + section { margin-top: 0; }
  .trek-body h2 { font-size: 1.45rem; }
}

/* =========================================================
   HERO - full-bleed banner with caption + facts
   ========================================================= */
.trek-hero {
  position: relative;
  min-height: 85vh;
  color: #fff;
  display: flex;
  align-items: stretch;
  overflow: hidden;
}

.trek-hero.package-banner-image img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  transform: scale(1.03);
  transition: transform 6s ease;
}

/* Banner carousel: fills the hero, sits under the gradient overlays */
/* No z-index here on purpose: it would create a stacking context and trap the
   controls below .trek-hero-inner (z-index 2), making them unclickable. */
.trek-hero.package-banner-image .package-banner-carousel {
  position: absolute;
  inset: 0;
}

/* The slides are isolated here instead, so Bootstrap's z-index:1 on the
   incoming .carousel-item-next stays below the .trek-hero::before gradient. */
.trek-hero.package-banner-image .carousel-inner {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.trek-hero.package-banner-image .package-banner-carousel,
.trek-hero.package-banner-image .carousel-inner,
.trek-hero.package-banner-image .carousel-item {
  height: 100%;
}

/* Override the absolute positioning above so slides can translate */
.trek-hero.package-banner-image .carousel-item img {
  position: relative;
  inset: auto;
  width: 100%; height: 100%;
  object-fit: cover;
  transform: none;
  transition: none;
}

/* Controls must clear the .trek-hero::before overlay (z-index 1) */
.trek-hero.package-banner-image .carousel-control-prev,
.trek-hero.package-banner-image .carousel-control-next,
.trek-hero.package-banner-image .carousel-indicators {
  z-index: 3;
}

/* Bootstrap's controls are 15% wide and full height. Now that they sit above
   the hero content they would swallow clicks on the breadcrumb and title, so
   shrink them to compact buttons pinned to the vertical centre. */
.trek-hero.package-banner-image .carousel-control-prev,
.trek-hero.package-banner-image .carousel-control-next {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(4, 28, 32, .45);
  border: 1px solid rgba(255, 255, 255, .35);
  opacity: .85;
  transition: opacity .2s ease, background .2s ease;
}

.trek-hero.package-banner-image .carousel-control-prev { left: 20px; }
.trek-hero.package-banner-image .carousel-control-next { right: 20px; }

.trek-hero.package-banner-image .carousel-control-prev:hover,
.trek-hero.package-banner-image .carousel-control-next:hover {
  opacity: 1;
  background: rgba(4, 28, 32, .7);
}

.trek-hero.package-banner-image .carousel-control-prev-icon,
.trek-hero.package-banner-image .carousel-control-next-icon {
  width: 18px;
  height: 18px;
}

.trek-hero.package-banner-image .carousel-indicators {
  margin-bottom: 16px;
}

@media (max-width: 991px) {
  /* Shrink the compact arrows rather than dropping them on tablets. */
  .trek-hero.package-banner-image .carousel-control-prev,
  .trek-hero.package-banner-image .carousel-control-next {
    width: 40px;
    height: 40px;
  }

  .trek-hero.package-banner-image .carousel-control-prev { left: 12px; }
  .trek-hero.package-banner-image .carousel-control-next { right: 12px; }
}

@media (max-width: 767px) {
  /* Banner images are 16:9; an 85vh portrait hero crops away ~70% of their
     width. Shorten it so the photo still reads, matching the home carousel. */
  .trek-hero.package-banner-image {
    min-height: 75vh;
  }

  /* Arrows are hidden in favour of Bootstrap's built-in touch swipe. */
  .trek-hero.package-banner-image .carousel-control-prev,
  .trek-hero.package-banner-image .carousel-control-next {
    display: none;
  }

  /* Bootstrap's 3px indicator bars are too small to tap reliably. Pad the
     button out to a 44px target while keeping the bar itself slim. */
  .trek-hero.package-banner-image .carousel-indicators {
    margin-bottom: 10px;
  }

  .trek-hero.package-banner-image .carousel-indicators [data-bs-target] {
    width: 34px;
    height: 4px;
    border-radius: 2px;
    padding: 20px 0;
    background-clip: content-box;
  }
}

/* Improved gradient: strong at bottom, subtle at top for readable breadcrumbs */
.trek-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top,
      rgba(4,28,32,.92) 0%,
      rgba(4,28,32,.65) 35%,
      rgba(4,28,32,.3)  65%,
      rgba(4,28,32,.15) 100%);
  z-index: 1;
}

/* Additional left-side gradient for text readability */
.hero-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 60%);
  z-index: 1;
  pointer-events: none;
}

.trek-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 56px;
  padding-top: 100px;
  width: 100%;
}
@media (max-width: 767px) {
  .trek-hero-inner { padding-top: 80px; }
}

.trek-hero-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
}

.trek-hero-content {
  flex: 1;
  min-width: 0;
  max-width: 720px;
}

/* Price on the right of the hero */
.hero-price-card {
  flex-shrink: 0;
  color: #fff;
  text-align: right;
}

.hero-price-card small {
  display: block;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .7;
  margin-bottom: 6px;
  font-weight: 500;
}

.hero-price-amount {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
}

.hero-price-currency {
  font-size: 1rem;
  font-weight: 600;
  opacity: .85;
}

.hero-price-value {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
}

.hero-price-strike {
  color: rgba(255,255,255,.6);
  font-size: .85rem;
  margin-top: 2px;
}

@media (max-width: 767px) {
  .trek-hero-row { flex-direction: column; align-items: flex-start; gap: 16px; }
  .hero-price-card { text-align: left; }
  .hero-price-amount { justify-content: flex-start; }
}


.trek-hero .container,
.trek-hero-inner {
  position: relative;
  z-index: 2;
  padding-bottom: 60px;
  padding-top: 90px;
}
.trek-hero .breadcrumb-trail,
.tmd-hero .breadcrumb-trail {
  margin-bottom: 20px;
}

.trek-hero .breadcrumb-trail ol,
.tmd-hero .breadcrumb-trail ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: .8rem;
  font-weight: 500;
}

.trek-hero .breadcrumb-trail ol li,
.tmd-hero .breadcrumb-trail ol li {
  display: flex;
  align-items: center;
  color: rgba(255,255,255,.55);
}

/* chevron separator via ::before on every li except first */
.trek-hero .breadcrumb-trail ol li + li::before,
.tmd-hero .breadcrumb-trail ol li + li::before {
  content: "\f054"; /* fa-chevron-right */
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  font-size: .55rem;
  color: rgba(255,255,255,.35);
  margin: 0 10px;
}

.trek-hero .breadcrumb-trail ol li a,
.tmd-hero .breadcrumb-trail ol li a {
  color: rgba(255,255,255,.72);
  text-decoration: none;
  transition: color .2s;
  display: flex;
  align-items: center;
  gap: 5px;
}

.trek-hero .breadcrumb-trail ol li a:hover,
.tmd-hero .breadcrumb-trail ol li a:hover {
  color: var(--snt-accent);
}

/* current page - brighter, no link */
.trek-hero .breadcrumb-trail ol li[aria-current="page"],
.tmd-hero .breadcrumb-trail ol li[aria-current="page"] {
  color: rgba(255,255,255,.95);
  font-weight: 600;
  max-width: 320px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.trek-hero h1 {
  color: #fff;
  font-size: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: 18px;
  max-width: 820px;
}
.trek-hero .lead {
  color: rgba(255,255,255,.88);
  font-size: 1.05rem;
  max-width: 620px;
  margin-bottom: 28px;
}

.trek-hero .cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* =========================================================
   STICKY INPAGE NAV (under the hero)
   ========================================================= */

.trek-inpage {
  background: #fff;
  border-bottom: 1px solid var(--snt-line);
  position: sticky;
  /* Sit exactly below the real header (measured into --header-h by JS) so the
     nav never slides under the header when its height changes. */
  top: var(--header-h, 74px);
  z-index: 40;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}

/* Offset sections so anchor links land below both sticky bars (header + nav) */
.trek-body section[id] {
  scroll-margin-top: calc(var(--header-h, 74px) + var(--inpage-h, 56px) + 8px);
}
.trek-inpage ul {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  list-style: none;
  margin: 0; padding: 0;
}
.trek-inpage ul::-webkit-scrollbar { display: none; }
.trek-inpage a {
  display: inline-flex;
  align-items: center;
  padding: 12px 18px;
  font-weight: 500;
  font-size: .9rem;
  color: var(--snt-muted);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
.trek-inpage a:hover { color: var(--snt-primary); }
.trek-inpage a.active {
  color: var(--snt-primary);
  border-bottom-color: var(--snt-accent);
}

/* =========================================================
   TWO-COLUMN BODY + STICKY BOOKING CARD
   ========================================================= */
.trek-body {
  background: var(--snt-cream);
  padding-bottom: 80px;
}
.trek-body > .container {
  padding-top: 48px;
}
.trek-body > .container > .row {
  align-items: stretch;
}

/* Sidebar column must not clip the sticky card */
.trek-body aside.col-lg-4 {
  position: relative;
}
.trek-body .col-content > section + section { margin-top: 56px; }
.trek-body h2 {
  font-size: 1.75rem;
  margin: 0 0 .85em;
  color: #F5A400;
}

/* ----- Quick facts box ----- */
.facts-box {
  position: relative;
  border: 1.5px solid #dde8ea;
  border-radius: 14px;
  padding: 28px 8px 8px;
  background: #fff;
}

.facts-box-label {
  position: absolute;
  top: -13px;
  left: 20px;
  background: #fff;
  border: 1.5px solid #dde8ea;
  border-radius: 20px;
  padding: 3px 16px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--snt-muted);
}

/* each cell gets a right + bottom border to form the grid lines */
.facts-box .row > [class*="col-"] {
  border-right: 1px solid #edf2f3;
  border-bottom: 1px solid #edf2f3;
}
/* remove right border on last in each row (every 3rd on md+, every 2nd on smaller) */
.facts-box .row > [class*="col-"]:nth-child(2n) { border-right: none; }
@media (min-width: 768px) {
  .facts-box .row > [class*="col-"]:nth-child(2n)   { border-right: 1px solid #edf2f3; }
  .facts-box .row > [class*="col-"]:nth-child(3n)   { border-right: none; }
}
/* remove bottom border on last row items */
.facts-box .row > [class*="col-"]:nth-last-child(-n+2) { border-bottom: none; }
@media (min-width: 768px) {
  .facts-box .row > [class*="col-"]:nth-last-child(-n+3) { border-bottom: none; }
}

.fact {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 20px;
}

.fact-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--snt-primary-100) 0%, #c5e9eb 100%);
  color: var(--snt-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  flex-shrink: 0;
  margin-top: 2px;
}

.fact-text { min-width: 0; }

.fact .lbl {
  font-size: .73rem;
  color: var(--snt-muted);
  font-weight: 500;
  margin-bottom: 3px;
  line-height: 1.2;
}

.fact .val {
  font-size: .95rem;
  font-weight: 600;
  color: var(--snt-ink);
  line-height: 1.45;
  letter-spacing: -.005em;
  /* Wrap between words only — break-word chopped long values mid-word in the
     narrow 3-up columns. hyphens:none keeps the fallback break clean too. */
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: none;
  /* Evens out ragged 2–3 line values like the season range. Ignored where unsupported. */
  text-wrap: pretty;
  -webkit-font-smoothing: antialiased;
}

/* ----- Overview prose ----- */
.prose p { font-size: 1.02rem; color: var(--snt-text); margin-bottom: 1.15em; }

/* Unordered lists - teal chevron icon */
.prose ul {
  list-style: none;
  padding: 0;
  margin: 0 0 1.2em;
}

.prose ul li {
  position: relative;
  padding: 7px 0 7px 28px;
  font-size: .98rem;
  color: var(--snt-text);
  border-bottom: 1px dashed var(--snt-line);
  line-height: 1.6;
}

.prose ul li:last-child { border-bottom: 0; }

.prose ul li::before {
  content: "\f054"; /* fa-chevron-right */
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  position: absolute;
  left: 6px;
  top: 10px;
  font-size: .6rem;
  color: var(--snt-primary);
}

/* Ordered lists - numbered with accent color */
.prose ol {
  padding: 0;
  margin: 0 0 1.2em;
  counter-reset: prose-ol;
  list-style: none;
}

.prose ol li {
  position: relative;
  padding: 7px 0 7px 36px;
  font-size: .98rem;
  color: var(--snt-text);
  border-bottom: 1px dashed var(--snt-line);
  line-height: 1.6;
  counter-increment: prose-ol;
}

.prose ol li:last-child { border-bottom: 0; }

.prose ol li::before {
  content: counter(prose-ol);
  position: absolute;
  left: 0;
  top: 7px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--snt-primary);
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  font-family: var(--font-mono);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 22px;
}

.prose .pull {
  display: block;
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--snt-primary);
  border-left: 3px solid var(--snt-accent);
  padding: 8px 0 8px 20px;
  margin: 28px 0;
  line-height: 1.4;
}

/* ----- Highlights grid ----- */
.highlights-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.highlight {
  background: #fff;
  border: 1px solid var(--snt-line);
  border-radius: var(--radius-md);
  padding: 22px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: var(--transition-fast);
}
.highlight:hover {
  transform: translateY(-2px);
  border-color: var(--snt-accent);
  box-shadow: var(--shadow-sm);
}
.highlight h4 { font-size: 1rem; margin-bottom: 4px; }
.highlight p { font-size: .9rem; color: var(--snt-muted); margin: 0; }
@media (max-width: 767px) { .highlights-grid { grid-template-columns: 1fr; } }

/* - Section headings - */
.package-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.package-section-head h2 { margin: 0; color: #F5A400; }

.section-eyebrow {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--snt-primary);
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.section-eyebrow i { font-size: .8em; }

/* - Itinerary toggle button - */
.toggle-itinerary-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border: 1.5px solid var(--snt-primary);
  border-radius: 999px;
  color: var(--snt-primary);
  font-size: .85rem;
  font-weight: 700;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  transition: var(--transition-fast);
  white-space: nowrap;
  flex-shrink: 0;
}

.toggle-itinerary-btn:hover {
  background: var(--snt-primary);
  color: #fff;
}

/* - Itinerary accordion - */
.itin {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.day {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
  position: relative;
}

.day[open] {
  border-color: var(--snt-primary-300);
  box-shadow: 0 4px 20px rgba(32,118,124,.08);
}

/* Teal left accent stripe when open */
.day[open]::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--snt-primary);
  border-radius: 3px 0 0 3px;
}

.day summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: auto 1fr 32px;
  align-items: center;
  gap: 16px;
  user-select: none;
  transition: background .15s;
}

.day summary::-webkit-details-marker { display: none; }
.day summary:hover { background: rgba(32,118,124,.03); }

/* Day label */
.day-num-wrap {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--snt-muted);
  white-space: nowrap;
  flex-shrink: 0;
  transition: color .2s;
}

.day[open] .day-num-wrap { color: var(--snt-primary); }

/* Title */
.day .title-block { flex: 1; min-width: 0; }

.day .title-block h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin: 0 0 5px;
  line-height: 1.35;
  transition: color .2s;
}

.day[open] .title-block h4 { color: var(--snt-primary); }

/* Meta pills */
.day .meta {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--snt-primary-100);
  border-radius: 999px;
  padding: 2px 9px;
  font-size: .7rem;
  color: var(--snt-primary-700);
  font-weight: 600;
}

.meta-pill i { font-size: .65rem; }

/* Chevron */
.chev-wrap {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--snt-cream);
  border: 1.5px solid var(--snt-line);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .25s;
}

.day .chev {
  color: var(--snt-muted);
  transition: transform .3s ease, color .2s;
  font-size: .68rem;
}

.day[open] .chev-wrap {
  background: var(--snt-primary);
  border-color: var(--snt-primary);
}

.day[open] .chev {
  transform: rotate(180deg);
  color: #fff;
}

/* Body */
.day .body { overflow: hidden; }

.day .body-inner {
  padding: 16px 20px 22px 20px;
  color: var(--snt-text);
  font-size: .95rem;
  line-height: 1.8;
  border-top: 1px solid var(--snt-line);
}

.day .body-inner p { margin-bottom: 10px; }
.day .body-inner p:last-child { margin-bottom: 0; }

.itin-footer-meta {
  margin-top: 14px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid var(--snt-line);
}

.day .stay {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 13px;
  background: var(--snt-primary-100);
  border-radius: 999px;
  color: var(--snt-primary-700);
  font-size: .78rem;
  font-weight: 600;
}

.day .stay i { color: var(--snt-primary); font-size: .75rem; }

@media (max-width: 767px) {
  .day summary { padding: 14px 16px; grid-template-columns: auto 1fr 28px; gap: 12px; }
  .day .body-inner { padding: 14px 16px 20px 16px; }
}

/* ----- Inclusions / Exclusions ----- */
.incex .card-li {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 18px;
  padding: 26px 28px;
  height: 100%;
}

.incex.inc .card-li { border-top: 3px solid #2E8B57; }
.incex.exc .card-li { border-top: 3px solid #C0392B; }

.incex h4 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--snt-ink);
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--snt-line);
}

.incex h4 .b {
  width: 32px; height: 32px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  flex-shrink: 0;
}

.incex .inc h4 .b { background: rgba(46,139,87,.12); color: #2E8B57; }
.incex .exc h4 .b { background: rgba(192,57,43,.12); color: #C0392B; }

.incex ul { list-style: none; padding: 0; margin: 0; }

.incex li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  font-size: .93rem;
  color: var(--snt-text);
  border-bottom: 1px dashed var(--snt-line);
  line-height: 1.55;
}

.incex li:last-child { border-bottom: 0; }

/* Icon circle before each item */
.incex li::before {
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  font-size: .72rem;
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

.incex .inc li::before {
  content: "\f00c"; /* fa-check */
  background: rgba(46,139,87,.12);
  color: #2E8B57;
}

.incex .exc li::before {
  content: "\f00d"; /* fa-xmark */
  background: rgba(192,57,43,.1);
  color: #C0392B;
}
/* ----- Equipment / Gear List ----- */
.equip-box {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 16px;
  padding: 24px 28px;
}

.equip-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.equip-box ul li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 0;
  font-size: .93rem;
  color: var(--snt-text);
  border-bottom: 1px solid var(--snt-line);
  line-height: 1.5;
}

.equip-box ul li:last-child { border-bottom: 0; }

.equip-box ul li::before {
  content: "\f00c"; /* fa-check */
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  font-size: .65rem;
  color: var(--snt-primary);
  background: var(--snt-primary-100);
  width: 22px; height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

/* Headings inside equipment (category labels) */
.equip-box h3,
.equip-box h4 {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--snt-primary);
  margin: 18px 0 4px;
}

.equip-box p { font-size: .95rem; color: var(--snt-text); margin-bottom: 10px; }

@media (max-width: 600px) {
  .equip-box { padding: 18px; }
}

/* ----- Additional Information ----- */
.addinfo-box {
  background: var(--snt-cream);
  border: 1.5px solid var(--snt-line);
  border-left: 4px solid var(--snt-primary);
  border-radius: 14px;
  padding: 24px 28px;
}

.addinfo-box p {
  font-size: .95rem;
  color: var(--snt-text);
  line-height: 1.8;
  margin-bottom: 12px;
}

.addinfo-box p:last-child { margin-bottom: 0; }

.addinfo-box ul,
.addinfo-box ol {
  padding-left: 20px;
  margin-bottom: 12px;
}

.addinfo-box ul li,
.addinfo-box ol li {
  font-size: .95rem;
  color: var(--snt-text);
  line-height: 1.75;
  margin-bottom: 6px;
}

.addinfo-box h3,
.addinfo-box h4 {
  font-weight: 700;
  color: var(--snt-primary);
  line-height: 1.35;
  margin: 22px 0 8px;
}

.addinfo-box h3 { font-size: 1.25rem; }
.addinfo-box h4 { font-size: 1.05rem; }

.addinfo-box h3:first-child,
.addinfo-box h4:first-child { margin-top: 0; }

.addinfo-box strong { color: var(--snt-ink); }

@media (max-width: 600px) {
  .addinfo-box { padding: 18px; }
}

/* =====================================================
GROUP JOINING / PRIVATE TRIP
===================================================== */
.section-heading-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 22px;
}
.section-heading-wrap h2 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.1;
}
/* Tabs */
.trip-type-switch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px;
  background: #fff;
  border: 1px solid var(--snt-line);
  border-radius: 999px;
  margin-bottom: 24px;
}

.trip-tabs .nav-link {
  border: 0;
  border-radius: 999px;
  padding: 12px 24px;
  color: var(--snt-muted);
  font-weight: 700;
  font-size: .9rem;
}

.trip-tabs .nav-link.active {
  background: var(--snt-primary);
  color: #fff;
}

/* Note */
.dates-note {
  background: #eef7f9;
  border-radius: 18px;
  padding: 22px 24px;
  margin-bottom: 30px;
  border: 1px solid rgba(32,118,124,.1);
}

.dates-note p {
  line-height: 1.8;
  color: var(--snt-muted);
}

/* Filter */
.filter-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 18px;
}

.departure-date-filter .filter-btn {
  border: 1px solid var(--snt-primary);
  background: transparent;
  color: var(--snt-primary);
  border-radius: 10px;
  padding: 5px 10px;
  font-size: .82rem;
  font-weight: 500;
  transition: .3s ease;
}

.departure-date-filter .filter-btn:hover {
  background: rgba(24,184,223,.08);
}

.departure-date-filter .filter-btn.active {
  background: var(--snt-primary);
  color: #fff;
}

/* Departure */
.departure-wrapper {
  border: 1px solid var(--snt-line);
  border-radius: 20px;
  overflow: hidden;
}

.departure-item {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr .9fr .9fr auto;
  gap: 20px;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid var(--snt-line);
  background: #fff;
}

.departure-item:last-child {
  border-bottom: 0;
}

.label-text {
  display: block;
  font-size: .82rem;
  color: var(--snt-muted);
  margin-bottom: 3px;
  line-height: 1.3;
}

/* No font-size here meant these dates inherited the global h5 (20px) and
   ended up the largest text in the row — bigger than the price. */
.departure-item h5 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--snt-primary);
}

/* Status */
.status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: .92rem;
  font-weight: 700;
}

.status.guaranteed,
.status.available {
  color: #1fa971;
}

/* Price */
.price-box h4 {
  margin: 0;
  color: var(--snt-accent);
  font-size: 1.7rem;
  font-weight: 800;
}

.price-box span {
  font-size: .9rem;
  color: var(--snt-muted);
}

/* Button */
.book-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  height: 50px;
  border: 1.5px solid var(--snt-primary);
  border-radius: 12px;
  color: var(--snt-primary);
  font-weight: 700;
  transition: .3s ease;
  text-decoration: none;
}

.book-btn:hover {
  background: var(--snt-primary);
  color: #fff;
}

/* Departure item price classes */
.dep-price-original {
  display: block;
  font-size: .78rem;
  color: #aaa;
  font-weight: 400;
  text-decoration: line-through;
}
.dep-price-sale {
  display: block;
  font-size: .97rem;
  font-weight: 700;
  color: var(--snt-ink);
}
.dep-price-label {
  display: block;
  font-size: .72rem;
  color: var(--snt-muted);
  margin-top: 2px;
}

/* Gallery show more button */
.btn-gallery-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 28px;
  border: 1.5px solid var(--snt-primary);
  border-radius: 999px;
  background: #fff;
  color: var(--snt-primary);
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.btn-gallery-more:hover {
  background: var(--snt-primary);
  color: #fff;
}

/* =====================================================
PRIVATE TRIP
===================================================== */

.private-trip-box {
  background: #fff;
  border: 1px solid var(--snt-line);
  border-radius: 24px;
  padding: 40px;
}

.private-content h3 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 18px;
}

.private-content p {
  color: var(--snt-muted);
  line-height: 1.8;
  margin-bottom: 24px;
}

/* Form */
.private-form {
  background: #f8fafb;
  padding: 30px;
  border-radius: 20px;
}

.private-form .form-label {
  font-size: .9rem;
  font-weight: 600;
  margin-bottom: 10px;
}

.private-form .form-control,
.private-form .form-select {
  height: 54px;
  border-radius: 12px;
  border: 1px solid #dbe3e8;
  padding: 12px 16px;
  box-shadow: none;
}

.private-form textarea.form-control {
  height: auto;
}

.private-form .form-control:focus,
.private-form .form-select:focus {
  border-color: var(--snt-primary);
  box-shadow: none;
}

.submit-btn {
  border: 0;
  background: var(--snt-primary);
  color: #fff;
  height: 56px;
  padding: 0 34px;
  border-radius: 12px;
  font-weight: 700;
  transition: .3s ease;
}

.submit-btn:hover {
  background: var(--snt-accent);
}

/* Responsive */
@media (max-width: 991px) {

  .departure-item {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 16px;
  }

  .book-btn {
    width: 100%;
  }

  .private-trip-box {
    padding: 24px;
  }
}

@media (max-width: 767px) {

  .departure-item {
    grid-template-columns: 1fr 1fr;
    gap: 10px 16px;
    padding: 14px 16px;
  }

  /* Book button spans full width */
  .departure-item > div:last-child {
    grid-column: 1 / -1;
  }

  .trip-tabs {
    width: 100%;
  }

  .trip-tabs .nav-link {
    width: 100%;
  }

  .private-form {
    padding: 20px;
  }
}
/* ----- Gallery ----- */
.gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 140px;
  gap: 12px;
}
.gallery div {
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--snt-cream-2);
}
.gallery div img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}
.gallery div:hover img { transform: scale(1.08); }
.gallery div:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.gallery div:nth-child(4) { grid-row: span 2; }
@media (max-width: 767px) {
  .gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 120px; }
  .gallery div:nth-child(1), .gallery div:nth-child(4) { grid-column: auto; grid-row: auto; }
}
@media (max-width: 480px) {
  .gallery { grid-auto-rows: 90px; gap: 8px; }
}

/* - FAQ accordion - */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.faq-item {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 16px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}

.faq-item[open] {
  border-color: var(--snt-primary);
  box-shadow: 0 6px 24px rgba(32,118,124,.1);
}

.faq-summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 22px;
  display: grid;
  grid-template-columns: 40px 1fr 36px;
  align-items: center;
  gap: 14px;
  transition: background .2s;
  user-select: none;
}

.faq-summary::-webkit-details-marker { display: none; }
.faq-summary:hover { background: rgba(32,118,124,.03); }

.faq-item[open] .faq-summary {
  background: rgba(32,118,124,.05);
  border-bottom: 1px solid rgba(32,118,124,.12);
}

/* Question number */
.faq-q-num {
  width: 36px; height: 36px;
  border-radius: 10px;
  background: var(--snt-cream-2);
  border: 1px solid var(--snt-line);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: .75rem;
  color: var(--snt-primary);
  flex-shrink: 0;
  transition: all .25s;
}

.faq-item[open] .faq-q-num {
  background: var(--snt-primary);
  border-color: var(--snt-primary);
  color: #fff;
}

/* Question text */
.faq-q-text {
  font-weight: 700;
  font-size: 1rem;
  color: var(--snt-ink);
  line-height: 1.4;
  transition: color .2s;
}

.faq-item[open] .faq-q-text { color: var(--snt-primary); }

/* +/- toggle icon */
.faq-toggle-icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--snt-line);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all .3s;
  color: var(--snt-muted);
  font-size: .75rem;
}

.faq-item[open] .faq-toggle-icon {
  background: var(--snt-accent);
  border-color: var(--snt-accent);
  color: #fff;
  transform: rotate(45deg); /* + becomes × */
}

/* Answer body */
.faq-body {
  padding: 0 22px 0;
  overflow: hidden;
}

.faq-body-inner {
  padding: 18px 0 22px calc(40px + 14px); /* align with question text */
  color: var(--snt-text);
  font-size: .95rem;
  line-height: 1.78;
}

@media (max-width: 767px) {
  .faq-summary { grid-template-columns: 34px 1fr 30px; gap: 10px; padding: 16px 18px; }
  .faq-q-num { width: 30px; height: 30px; font-size: .7rem; }
  .faq-body { padding: 0 18px 0; }
  .faq-body-inner { padding: 16px 0 20px 0; }
}

/* =========================================================
   SIDEBAR - sticky booking card
   ========================================================= */
.trip-booking-card {
  position: sticky;
  /* Clear both the header and the in-page nav that stick above it */
  top: calc(var(--header-h, 74px) + var(--inpage-h, 56px) + 12px);
  background: #fff;
  border: 1px solid #e2e8ec;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
  max-height: calc(100vh - 100px);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #d0d8dc transparent;
}

/* Accent top bar */
.trip-booking-card::before {
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(90deg, var(--snt-primary), var(--snt-accent));
}

/* Price block */
.trip-price-box {
  position: relative;
  padding: 22px 24px 20px;
  border-bottom: 1px solid #f0f0f0;
  overflow: hidden;
  min-height: 90px;
}

/* Trip grade badge — top left pill */
.price-grade-badge {
  display: inline-block;
  background: var(--snt-primary);
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 14px;
}

/* Discount ribbon — top right bookmark shape */
.price-discount-ribbon {
  position: absolute;
  top: 0;
  right: 0;
  background: #3aaa7e;
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  padding: 10px 14px;
  min-width: 62px;
  border-radius: 0 0 0 8px;
}

/* "Price Per Person" label */
.price-per-person-lbl {
  font-size: .8rem;
  color: var(--snt-muted);
  font-weight: 500;
  margin-bottom: 6px;
}

/* Price row: sale + original side by side */
.price-main-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.price-sale {
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--snt-primary);
  letter-spacing: -.01em;
  line-height: 1;
}

.price-original {
  font-size: 1rem;
  color: #aaa;
  font-weight: 400;
  text-decoration: line-through;
}

/* Group size toggle */
.group-price-toggle {
  padding: 13px 24px;
  background: var(--snt-primary-100);
  border-bottom: 1px solid #dce9eb;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  font-size: .875rem;
  font-weight: 600;
  color: var(--snt-primary-700);
  transition: background .18s;
  user-select: none;
}

.group-price-toggle:hover { background: #cce4e6; }

.group-price-toggle i {
  font-size: .7rem;
  transition: transform .2s;
  color: var(--snt-primary);
}

/* Pricing table */
.group-price-table {
  padding: 16px 24px;
  background: #f8fafb;
  border-bottom: 1px solid #f0f0f0;
}

.table-head,
.table-row {
  display: flex;
  justify-content: space-between;
}

.table-head {
  padding-bottom: 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid #e4eaed;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--snt-muted);
}

.table-row {
  padding: 8px 0;
  font-size: .875rem;
  color: var(--snt-text);
  font-weight: 500;
  border-bottom: 1px solid #f0f0f0;
}

.table-row:last-child { border-bottom: none; }
.gp-strike { font-size: 12px; color: #999; }

/* Action buttons */
.trip-card-actions {
  padding: 20px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.btn-check-availability,
.btn-inquiry {
  width: 100%;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
  padding: 13px 20px;
  transition: background .18s, color .18s, border-color .18s;
  letter-spacing: .01em;
}

.btn-check-availability {
  background: var(--snt-primary);
  color: #fff;
  border: 2px solid var(--snt-primary);
}

.btn-check-availability:hover {
  background: var(--snt-primary-700);
  border-color: var(--snt-primary-700);
  color: #fff;
}

.btn-inquiry {
  background: transparent;
  border: 2px solid var(--snt-accent);
  color: var(--snt-accent-600);
}

.btn-inquiry:hover {
  background: var(--snt-accent);
  color: #fff;
}

/* Bottom utility links */
.trip-bottom-links {
  border-top: 1px solid #f0f0f0;
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.trip-bottom-links a {
  padding: 14px 12px;
  text-decoration: none;
  color: var(--snt-muted);
  font-size: .8rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  transition: color .18s, background .18s;
}

.trip-bottom-links a:first-child {
  border-right: 1px solid #f0f0f0;
}

.trip-bottom-links a:hover {
  background: #f7f9fa;
  color: var(--snt-primary);
}

/* Mobile */
@media (max-width: 991px) {
  .trip-booking-card {
    position: relative;
    top: 0;
  }
  .trip-booking-card .price .price-amount > span {
    font-size: 2rem;
  }
}
/* =========================================================
   RELATED TREKS (reuses package-card style)
   ========================================================= */
.related { background: var(--snt-cream-2); padding: 80px 0; }
.related h2 { font-size: 1.85rem; }
.related .sub { color: var(--snt-muted); margin-bottom: 32px; }

/* pkg-card styles defined at top of file */

/* =========================================================
   MOBILE STICKY BOOK BAR (shown < lg)
   ========================================================= */
.mobile-book {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #fff;
  border-top: 1px solid var(--snt-line);
  padding: 12px 16px;
  padding-bottom: max(12px, env(safe-area-inset-bottom));
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  z-index: 50;
  box-shadow: 0 -6px 20px rgba(0,0,0,.08);
}
.mobile-book-price {
  color: var(--snt-primary);
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.2;
}
.mobile-book-price small {
  display: block;
  color: var(--snt-muted);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 2px;
}
.mobile-book-strike {
  font-size: .78rem;
  color: #aaa;
  font-weight: 400;
  margin-left: 4px;
}
@media (max-width: 991px) {
  .mobile-book { display: flex; }
  .booking-card { position: static; }
}

/* =========================================================
   CONTACT PAGE
   ========================================================= */

/* - Hero - */
.contact-hero {
  position: relative;
  min-height: 55vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: #fff;
}

.contact-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.contact-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
}

.contact-hero-bg--fallback {
  background: linear-gradient(135deg, #082628 0%, var(--snt-primary) 100%);
}

.contact-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
    rgba(4,28,32,.95) 0%,
    rgba(4,28,32,.65) 45%,
    rgba(4,28,32,.25) 100%);
  z-index: 1;
}

.contact-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 110px;
  padding-bottom: 52px;
  width: 100%;
}

.contact-breadcrumb ol {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  padding: 0; margin: 0 0 22px;
  font-size: .8rem;
}

.contact-breadcrumb ol li {
  color: rgba(255,255,255,.5);
  display: flex;
  align-items: center;
}

.contact-breadcrumb ol li + li::before {
  content: "\f054";
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  font-size: .52rem;
  color: rgba(255,255,255,.3);
  margin: 0 10px;
}

.contact-breadcrumb ol li a {
  color: rgba(255,255,255,.65);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: color .2s;
}

.contact-breadcrumb ol li a:hover { color: var(--snt-accent); }
.contact-breadcrumb ol li[aria-current="page"] { color: rgba(255,255,255,.9); }

.contact-eyebrow {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--snt-accent);
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.contact-hero-text h1 {
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  color: #fff;
  margin: 0 0 14px;
  max-width: 700px;
}

/* - Info bar - */
.contact-info-bar {
  background: #fff;
  border-bottom: 1px solid var(--snt-line);
  box-shadow: 0 4px 24px rgba(15,23,42,.07);
}

.contact-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0;
}

.cinfo-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 28px 24px;
  border-right: 1px solid var(--snt-line);
  transition: background .2s;
}

.cinfo-card:last-child { border-right: 0; }
.cinfo-card:hover { background: var(--snt-cream); }

.cinfo-icon {
  width: 50px; height: 50px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.cinfo-icon--loc   { background: rgba(32,118,124,.1);  color: var(--snt-primary); }
.cinfo-icon--email { background: rgba(244,163,1,.1);   color: var(--snt-accent); }
.cinfo-icon--phone { background: rgba(37,211,102,.1);  color: #1fa971; }
.cinfo-icon--hours { background: rgba(99,102,241,.1);  color: #6366f1; }

.cinfo-label {
  display: block;
  font-family: var(--font-mono);
  font-size: .65rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--snt-muted);
  margin-bottom: 5px;
}

.cinfo-value {
  display: block;
  font-size: .95rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 7px;
  line-height: 1.4;
}

.cinfo-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--snt-primary);
  text-decoration: none;
  transition: color .2s;
}

.cinfo-link:hover { color: var(--snt-accent); }
.cinfo-link--wa { color: #1fa971; }
.cinfo-link--wa:hover { color: #17a05e; }

.cinfo-note {
  font-size: .78rem;
  color: var(--snt-muted);
  display: flex;
  align-items: center;
  gap: 5px;
}

/* - Main body - */
.contact-body {
  background: var(--snt-cream);
  padding: 72px 0 80px;
}

/* - Form card - */
.contact-form-card {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 24px;
  padding: 44px 48px;
  box-shadow: 0 8px 32px rgba(15,23,42,.06);
}

.contact-form-header {
  margin-bottom: 36px;
}

.contact-form-header h2 {
  font-size: 2rem;
  margin: 6px 0 10px;
  color: var(--snt-ink);
}

.contact-form-sub {
  font-size: .93rem;
  color: var(--snt-muted);
  line-height: 1.7;
  margin: 0;
}

/* Success message */
.cf-success {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: rgba(31,169,113,.08);
  border: 1.5px solid rgba(31,169,113,.3);
  border-radius: 14px;
  padding: 18px 20px;
  margin-bottom: 28px;
}

.cf-success > i {
  font-size: 1.5rem;
  color: #1fa971;
  flex-shrink: 0;
  margin-top: 2px;
}

.cf-success strong { font-weight: 700; color: var(--snt-ink); }
.cf-success p { font-size: .88rem; color: var(--snt-muted); margin: 3px 0 0; }

/* Form grid */
.cf-form { display: flex; flex-direction: column; gap: 20px; }

.cf-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.cf-row--full { grid-template-columns: 1fr; }

.cf-field { display: flex; flex-direction: column; gap: 8px; }

.cf-label {
  font-size: .85rem;
  font-weight: 700;
  color: var(--snt-ink);
  display: flex;
  align-items: center;
  gap: 6px;
}

.cf-label i { color: var(--snt-primary); font-size: .78rem; }

.cf-req { color: var(--snt-accent); margin-left: 1px; }

.cf-input,
.cf-select,
.cf-textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid var(--snt-line);
  border-radius: 12px;
  font-size: 1rem;
  color: var(--snt-ink);
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  font-family: var(--font-body);
  appearance: none;
}

.cf-input::placeholder,
.cf-textarea::placeholder { color: #b0bec5; }

.cf-input:focus,
.cf-select:focus,
.cf-textarea:focus {
  border-color: var(--snt-primary);
  box-shadow: 0 0 0 3px rgba(32,118,124,.12);
}

.cf-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 38px;
  cursor: pointer;
}

.cf-textarea { resize: vertical; min-height: 140px; }

/* Submit row */
.cf-submit-row {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.cf-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 36px;
  background: var(--snt-primary);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition-fast);
  white-space: nowrap;
}

.cf-submit-btn:hover {
  background: var(--snt-primary-700);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(32,118,124,.35);
}

.cf-privacy {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .78rem;
  color: var(--snt-muted);
  margin: 0;
}

.cf-privacy i { color: var(--snt-primary); }

/* - Sidebar - */
.contact-sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 80px;
}

.cs-card {
  background: #fff;
  border: 1.5px solid var(--snt-line);
  border-radius: 20px;
  padding: 26px 28px;
}

.cs-card-title {
  font-size: .95rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  gap: 9px;
}

.cs-card-title i { color: var(--snt-accent); }

/* Response card */
.cs-card--response {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: linear-gradient(135deg, rgba(32,118,124,.06), rgba(32,118,124,.02));
  border-color: rgba(32,118,124,.2);
}

.cs-response-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: var(--snt-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(32,118,124,.3);
}

.cs-card--response strong {
  display: block;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 6px;
}

.cs-card--response p {
  font-size: .88rem;
  color: var(--snt-muted);
  margin: 0;
  line-height: 1.65;
}

.cs-card--response em { color: var(--snt-primary); font-style: normal; font-weight: 700; }

/* Why us list */
.cs-list {
  list-style: none;
  padding: 0; margin: 0;
}

.cs-list li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 9px 0;
  font-size: .9rem;
  color: var(--snt-text);
  border-bottom: 1px dashed var(--snt-line);
}

.cs-list li:last-child { border-bottom: 0; }

.cs-list li i {
  width: 20px; height: 20px;
  border-radius: 50%;
  background: rgba(32,118,124,.1);
  color: var(--snt-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .6rem;
  flex-shrink: 0;
  margin-top: 1px;
}

/* WhatsApp CTA */
.cs-wa-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #25D366;
  color: #fff !important;
  text-decoration: none;
  border-radius: 18px;
  padding: 18px 22px;
  transition: var(--transition-fast);
}

.cs-wa-btn:hover {
  background: #20c05c;
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(37,211,102,.35);
}

.cs-wa-btn > i:first-child {
  font-size: 2rem;
  flex-shrink: 0;
}

.cs-wa-btn strong {
  display: block;
  font-size: .95rem;
  font-weight: 700;
}

.cs-wa-btn span {
  font-size: .78rem;
  opacity: .85;
}

.cs-wa-arrow { margin-left: auto; opacity: .8; }

/* Social links */
.cs-social-card { padding: 24px 28px; }

.cs-socials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.cs-social {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border-radius: 12px;
  text-decoration: none;
  font-size: .85rem;
  font-weight: 600;
  transition: var(--transition-fast);
  color: rgba(255,255,255,.95);
  background: var(--snt-primary); /* default, overridden per brand */
}

.cs-social:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.2); }
.cs-social i { font-size: 1rem; }

.cs-social--fb { background: #1877F2; }
.cs-social--ig { background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.cs-social--yt { background: #FF0000; }
.cs-social--tw { background: #000; }

/* - Map - */
.contact-map-section {
  position: relative;
}

.contact-map-wrap {
  position: relative;
  height: 480px;
  overflow: hidden;
}

.contact-map-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.contact-map-card {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 20px;
  padding: 22px 28px;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  box-shadow: 0 16px 48px rgba(15,23,42,.18);
  min-width: 300px;
  max-width: 440px;
  width: 90%;
}

.contact-map-card-icon {
  width: 44px; height: 44px;
  border-radius: 14px;
  background: var(--snt-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.contact-map-card strong {
  display: block;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 4px;
}

.contact-map-card p {
  font-size: .88rem;
  color: var(--snt-muted);
  margin: 0 0 4px;
  line-height: 1.5;
}

.map-hours { color: var(--snt-primary) !important; font-weight: 600; }
.map-hours i { margin-right: 4px; }

.map-open-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--snt-primary);
  text-decoration: none;
  margin-top: 8px;
  transition: color .2s;
}

.map-open-link:hover { color: var(--snt-accent); }

/* - Responsive - */
@media (max-width: 991px) {
  .contact-form-card { padding: 32px 28px; }
  .contact-sidebar { position: static; }
  .contact-map-card { bottom: 20px; }
}

@media (max-width: 767px) {
  .contact-hero { min-height: 48vh; }
  .contact-hero-inner { padding-top: 80px; padding-bottom: 36px; }
  .cf-row { grid-template-columns: 1fr; }
  .contact-form-card { padding: 26px 20px; border-radius: 18px; }
  .cinfo-card { border-right: 0; border-bottom: 1px solid var(--snt-line); padding: 20px 18px; }
  .cinfo-card:last-child { border-bottom: 0; }
  .contact-map-wrap { height: 380px; }
  .contact-map-card { position: relative; bottom: auto; left: auto; transform: none;
    width: 100%; max-width: 100%; border-radius: 0; box-shadow: none;
    border-top: 1px solid var(--snt-line); }
  .cs-socials { grid-template-columns: 1fr 1fr; }
}

/* =====================================================
   PACKAGE DETAIL - additions
===================================================== */

/* Alert banners */
.pkg-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 18px;
  border-radius: 12px;
  font-size: .92rem;
  margin-bottom: 20px;
}

.pkg-alert--success {
  background: rgba(31,169,113,.12);
  color: #1a7a52;
  border: 1px solid rgba(31,169,113,.3);
}

.pkg-alert--error {
  background: rgba(192,57,43,.08);
  color: #b03020;
  border: 1px solid rgba(192,57,43,.25);
}

.pkg-alert i { flex-shrink: 0; margin-top: 2px; }

/* Share row in sidebar */
.trip-need-help {
  margin: 0 20px 4px;
  padding: 16px;
  background: #f0faf4;
  border: 1px solid #c8e6d4;
  border-radius: 10px;
  text-align: center;
}
.trip-need-help-title {
  font-size: .88rem;
  font-weight: 700;
  color: var(--snt-dark);
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.trip-need-help-title i { color: var(--snt-primary); }
.trip-need-help-sub {
  font-size: .8rem;
  color: var(--snt-muted);
  margin-bottom: 12px;
}
.trip-need-help-links {
  display: flex;
  gap: 8px;
  justify-content: center;
}
.trip-help-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 16px;
  border-radius: 6px;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity .2s;
}
.trip-help-btn:hover { opacity: .85; }
.trip-help-btn--wa {
  background: #25D366;
  color: #fff;
}
.trip-help-btn--email {
  background: var(--snt-primary);
  color: #fff;
}

.trip-share-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px 16px;
  border-top: 1px solid #f0f0f0;
  flex-wrap: wrap;
}

.trip-share-label {
  font-size: .8rem;
  font-weight: 700;
  color: var(--snt-muted);
  text-transform: uppercase;
  letter-spacing: .06em;
  display: flex;
  align-items: center;
  gap: 6px;
}

.trip-share-btns {
  display: flex;
  gap: 8px;
  margin-left: auto;
}

.share-btn {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  border: 1.5px solid var(--snt-line);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  color: var(--snt-muted);
  text-decoration: none;
  cursor: pointer;
  transition: all .22s;
}

.share-btn:hover { border-color: transparent; color: #fff; }
.share-btn--fb:hover { background: #1877F2; }
.share-btn--wa:hover { background: #25d366; }
.share-btn--tw:hover { background: #000; }
.share-btn--copy:hover { background: var(--snt-primary); }

/* Video grid */
.pkg-videos-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pkg-videos-title i { color: #ff0000; }

.pkg-video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}

@media (max-width: 575px) {
  #galleryGrid { --bs-gutter-x: .5rem; --bs-gutter-y: .5rem; }
  .snt-gallery-link { border-radius: 6px; }
  .pkg-video-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .pkg-video-play { width: 38px; height: 38px; font-size: .9rem; }
  .btn-gallery-more { font-size: .85rem; padding: 10px 20px; }
}

.pkg-video-thumb {
  position: relative;
  aspect-ratio: 16/9;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  background: #000;
}

.pkg-video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .3s;
}

.pkg-video-thumb:hover img { opacity: .75; }

.pkg-video-play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(255,255,255,.9);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: #ff0000;
  cursor: pointer;
  transition: transform .25s, background .25s;
}

.pkg-video-thumb:hover .pkg-video-play {
  transform: scale(1.1);
  background: #fff;
}

.pkg-video-caption {
  font-size: .82rem;
  color: var(--snt-muted);
  margin: 8px 0 0;
  line-height: 1.4;
}

/* Private trip form submit button */
.private-form .submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--snt-primary);
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
  padding: 13px 28px;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: background .25s, transform .25s;
}

.private-form .submit-btn:hover {
  background: var(--snt-primary-700, #174f54);
  transform: translateY(-1px);
}

/* =====================================================
   TEAM LIST PAGE
===================================================== */

/* =====================================================
   TEAM LIST PAGE
===================================================== */

/* Page header */
.tl-header {
  background: var(--snt-cream, #f7f4ef);
  border-bottom: 1px solid var(--snt-line, #e8e3da);
  padding: 100px 0 56px;
}

.tl-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0;
  margin: 0 0 20px;
  font-size: .82rem;
}
.tl-breadcrumb li { color: var(--snt-muted); }
.tl-breadcrumb li + li::before { content: "/"; margin: 0 4px; opacity: .4; }
.tl-breadcrumb a { color: var(--snt-primary); text-decoration: none; }
.tl-breadcrumb a:hover { text-decoration: underline; }

.tl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--snt-primary);
  margin-bottom: 12px;
}

.tl-header h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 800;
  color: var(--snt-ink);
  margin: 0 0 14px;
  line-height: 1.15;
}

.tl-sub {
  font-size: 1.05rem;
  color: var(--snt-muted);
  line-height: 1.75;
  margin: 0;
}

/* Body */
.tl-body {
  padding: 72px 0 88px;
}

.tl-section {
  margin-bottom: 72px;
}
.tl-section:last-child { margin-bottom: 0; }

/* Category label */
.tl-cat-label {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--snt-primary);
  padding-bottom: 14px;
  margin-bottom: 32px;
  border-bottom: 2px solid var(--snt-primary);
  display: inline-block;
}

/* Grid */
/* Card. Layout is Bootstrap's grid (col-6 / col-md-4 / col-lg-3); the card
   fills its column via .h-100 so rows stay level with uneven name lengths. */
.tl-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--snt-line, #e8e3da);
  transition: box-shadow .25s, transform .25s;
}

.tl-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  transform: translateY(-4px);
}

.tl-card-photo {
  aspect-ratio: 1/1;
  overflow: hidden;
  background: var(--snt-cream, #f7f4ef);
}

.tl-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.tl-card:hover .tl-card-photo img {
  transform: scale(1.04);
}

.tl-card-initial {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--snt-primary), var(--snt-accent));
  font-size: 3rem;
  font-weight: 800;
  color: rgba(255,255,255,.85);
}

.tl-card-body {
  padding: 16px 18px 18px;
  border-top: 1px solid var(--snt-line, #e8e3da);
}

.tl-card-body h3 {
  margin: 0 0 4px;
  font-size: .95rem;
  font-weight: 700;
  color: var(--snt-ink);
  line-height: 1.3;
  transition: color .2s;
}

.tl-card:hover .tl-card-body h3 {
  color: var(--snt-primary);
}

.tl-card-role {
  font-size: .78rem;
  color: var(--snt-muted);
}

/* CTA */
.tl-cta {
  background: var(--snt-primary);
  padding: 56px 0;
}

.tl-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}

.tl-cta-text h3 {
  color: #fff;
  font-size: 1.55rem;
  font-weight: 800;
  margin: 0 0 6px;
}

.tl-cta-text p {
  color: rgba(255,255,255,.72);
  margin: 0;
}

.tl-cta-btns {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.tl-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: 10px;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
  transition: all .22s;
}

.tl-btn--primary {
  background: var(--snt-accent);
  color: #fff;
}
.tl-btn--primary:hover { background: #d48e00; color: #fff; transform: translateY(-2px); }

.tl-btn--wa {
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.35);
  color: #fff;
}
.tl-btn--wa:hover { background: #25d366; border-color: #25d366; color: #fff; }

/* Responsive */
@media (max-width: 991px) {
  .tl-cta-inner { flex-direction: column; text-align: center; }
  .tl-cta-btns { justify-content: center; }
}
@media (max-width: 767px) {
  .tl-header { padding: 90px 0 40px; }
}

/* =====================================================
   TEAM DETAIL PAGE
===================================================== */

/* Hero */
.tmd-hero {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--snt-primary);
}

.tmd-hero-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.tmd-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  filter: blur(2px) saturate(.8);
  transform: scale(1.06);
}

.tmd-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,30,35,.88) 0%, rgba(10,30,35,.55) 50%, rgba(10,30,35,.2) 100%);
}

.tmd-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 110px;
  padding-bottom: 60px;
}

.tmd-hero-content { margin-top: 20px; }

/* Breadcrumb - reuse trek-hero styles */
.tmd-hero .breadcrumb-trail { margin-bottom: 20px; }

.tmd-category-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.25);
  color: rgba(255,255,255,.9);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: 14px;
}

.tmd-hero h1 {
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800;
  margin: 0 0 10px;
  text-shadow: 0 2px 14px rgba(0,0,0,.3);
}

.tmd-designation {
  color: var(--snt-accent);
  font-weight: 700;
  font-size: 1.05rem;
  margin: 0;
}

/* Body layout */
.tmd-body {
  padding: 64px 0 80px;
}

/* These headings sit inside a column rather than across a full-width section,
   and they lost their eyebrow, so the shared 44px .section-head h2 reads too
   heavy here. Scoped to this page so the home/package headings are unaffected. */
.tmd-body .section-head h2,
.tmd-related .section-head h2 {
  font-size: clamp(1.5rem, 2.2vw, 1.85rem);
  line-height: 1.25;
}

/* Sidebar */
.tmd-sidebar {
  position: sticky;
  top: 80px;
}

.tmd-photo-wrap {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.14);
  aspect-ratio: 3/4;
  background: var(--snt-cream);
  margin-bottom: 24px;
}

.tmd-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* Name + role caption under the sidebar portrait */
.tmd-photo-caption {
  text-align: center;
  margin: -8px 0 24px;
}

.tmd-photo-name {
  display: block;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--snt-ink);
}

.tmd-photo-role {
  display: block;
  margin-top: 4px;
  font-size: .95rem;
  color: #666;
}

.tmd-photo-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--snt-primary), var(--snt-accent));
}

.tmd-photo-placeholder span {
  font-size: 5rem;
  font-weight: 800;
  color: rgba(255,255,255,.7);
}

.tmd-back-link {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--snt-muted);
  font-size: .85rem;
  text-decoration: none;
  transition: color .2s;
  justify-content: center;
}

.tmd-back-link:hover { color: var(--snt-primary); }

/* Bio */
.tmd-bio {
  color: var(--snt-text);
  line-height: 1.8;
  font-size: 1.02rem;
  margin-bottom: 48px;
}

/* Media blocks */
.tmd-media-block {
  margin-top: 48px;
  padding-top: 48px;
  border-top: 1px solid var(--snt-line);
}

.tmd-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

.tmd-media-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: var(--snt-cream);
}

.tmd-media-item img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}

.tmd-media-item:hover img { transform: scale(1.05); }

.tmd-media-overlay {
  position: absolute;
  inset: 0;
  background: rgba(32,118,124,.6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.4rem;
  opacity: 0;
  transition: opacity .3s;
}

.tmd-media-item:hover .tmd-media-overlay { opacity: 1; }

.tmd-media-caption {
  display: block;
  font-size: .78rem;
  color: var(--snt-muted);
  padding: 8px 10px;
  text-align: center;
}

/* Related */
.tmd-related {
  background: var(--snt-cream, #f7f4ef);
  padding: 64px 0;
}

.team-grid--related {
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}

/* - Responsive (team detail) - */
@media (max-width: 991px) {
  .tmd-sidebar { position: static; }
  .tmd-photo-wrap { max-width: 360px; margin: 0 auto 24px; }
}

@media (max-width: 767px) {
  .tmd-hero { min-height: 44vh; }
  .tmd-hero-inner { padding-top: 90px; padding-bottom: 44px; }
  .tmd-media-grid { grid-template-columns: repeat(2, 1fr); }
}


/* =====================================================
   CATEGORY LIST PAGE
===================================================== */

/* Hero */
.cl-hero {
  position: relative;
  min-height: 56vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--snt-primary);
}

.cl-hero-bg {
  position: absolute;
  inset: 0;
}

.cl-hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cl-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.25) 55%, transparent 100%);
}

.cl-hero-inner {
  position: relative;
  z-index: 2;
  padding-top: 100px;
  padding-bottom: 56px;
}

.cl-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  margin-bottom: 20px;
  color: rgba(255,255,255,.65);
}
.cl-breadcrumb a { color: rgba(255,255,255,.8); text-decoration: none; }
.cl-breadcrumb a:hover { color: #fff; }
.cl-breadcrumb span { opacity: .45; }

.cl-hero-inner h1 {
  color: #fff;
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  font-weight: 800;
  margin: 0 0 20px;
  line-height: 1.12;
  text-shadow: 0 2px 16px rgba(0,0,0,.3);
}

.cl-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.cl-hero-stat {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  font-size: .85rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 50px;
}
.cl-hero-stat i { color: var(--snt-accent); }

.cl-section-head {
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--snt-line);
}
.cl-section-head h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--snt-dark);
  margin: 0 0 4px;
}
.cl-section-head p {
  font-size: .9rem;
  color: var(--snt-muted);
  margin: 0;
}

/* Body */
.cl-body {
  padding: 72px 0 88px;
}

.cl-intro {
  width: 100%;
  max-width: 100%;
  margin-bottom: 60px;
  font-size: 1.02rem;
  line-height: 1.8;
  color: var(--snt-muted);
}

.cl-block {
  margin-bottom: 72px;
}
.cl-block:last-child { margin-bottom: 0; }

/* Destination cards */
.cl-dest-card {
  position: relative;
  display: block;
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 4/3;
  text-decoration: none;
}

.cl-dest-img {
  position: absolute;
  inset: 0;
}

.cl-dest-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.cl-dest-card:hover .cl-dest-img img {
  transform: scale(1.06);
}

.cl-dest-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--snt-primary), var(--snt-accent));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  color: rgba(255,255,255,.5);
}

.cl-dest-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 55%);
  transition: opacity .3s;
}

.cl-dest-card:hover .cl-dest-overlay {
  opacity: .9;
}

.cl-dest-info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 22px 20px;
  z-index: 2;
}

.cl-dest-info h3 {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 6px;
  line-height: 1.3;
}

.cl-dest-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.75);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .03em;
  transition: gap .2s, color .2s;
}

.cl-dest-card:hover .cl-dest-cta {
  color: #fff;
  gap: 10px;
}

/* Package cards */
.cl-pkg-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--snt-line, #e8e3da);
  transition: box-shadow .25s, transform .25s;
}

.cl-pkg-card:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  transform: translateY(-4px);
}

.cl-pkg-img-wrap {
  position: relative;
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--snt-cream, #f7f4ef);
}

.cl-pkg-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.cl-pkg-card:hover .cl-pkg-img-wrap img {
  transform: scale(1.04);
}

.cl-pkg-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
}

.cl-pkg-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 20px;
}

.cl-pkg-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin: 0 0 8px;
  line-height: 1.35;
  transition: color .2s;
}

.cl-pkg-card:hover .cl-pkg-title {
  color: var(--snt-primary);
}

.cl-pkg-note {
  font-size: .85rem;
  color: var(--snt-muted);
  margin: 0 0 12px;
  line-height: 1.55;
}

.cl-pkg-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: .8rem;
  color: var(--snt-muted);
  margin-bottom: 16px;
}

.cl-pkg-meta i {
  color: var(--snt-primary);
  margin-right: 4px;
}

.cl-pkg-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px solid var(--snt-line, #e8e3da);
}

.cl-pkg-price small {
  display: block;
  font-size: .72rem;
  color: var(--snt-muted);
  margin-bottom: 2px;
}

.cl-pkg-price strong {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--snt-ink);
}

.cl-pkg-actions {
  display: flex;
  gap: 8px;
}

.cl-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  transition: all .2s;
  white-space: nowrap;
}

.cl-btn--primary {
  background: var(--snt-primary);
  color: #fff;
}
.cl-btn--primary:hover { background: var(--snt-primary-700, #174f54); color: #fff; }

.cl-btn--outline {
  background: transparent;
  border: 1.5px solid var(--snt-line, #e8e3da);
  color: var(--snt-ink);
}
.cl-btn--outline:hover { border-color: var(--snt-primary); color: var(--snt-primary); }

/* Pagination */
.cl-pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}

/* Horizontal package card */
.cl-pkg-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.cl-hcard {
  display: flex;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.07);
  border: 1px solid var(--snt-line);
  transition: box-shadow .25s, transform .25s;
}
.cl-hcard:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.12);
  transform: translateY(-2px);
}
.cl-hcard-img {
  position: relative;
  flex-shrink: 0;
  width: 260px;
  overflow: hidden;
  display: block;
  text-decoration: none;
}
.cl-hcard-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.cl-hcard:hover .cl-hcard-img img { transform: scale(1.06); }
.cl-hcard-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--snt-primary);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 50px;
  letter-spacing: .03em;
}
.cl-hcard-body {
  flex: 1;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
}
.cl-hcard-title {
  font-size: 1.12rem;
  font-weight: 700;
  margin: 0 0 6px;
  line-height: 1.3;
}
.cl-hcard-title a {
  color: var(--snt-dark);
  text-decoration: none;
}
.cl-hcard-title a:hover { color: var(--snt-primary); }
.cl-hcard-note {
  font-size: .88rem;
  color: var(--snt-muted);
  margin: 0;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cl-hcard-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 10px;
}
.cl-hcard-facts span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .82rem;
  color: var(--snt-muted);
  font-weight: 500;
}
.cl-hcard-facts i { color: var(--snt-primary); font-size: .78rem; }
.cl-hcard-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--snt-line);
}
.cl-hcard-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.cl-hcard-from {
  font-size: .78rem;
  color: var(--snt-muted);
}
.cl-hcard-amount {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--snt-primary);
}
.cl-hcard-strike {
  font-size: .8rem;
  color: #aaa;
}
.cl-hcard-pp {
  font-size: .75rem;
  color: var(--snt-muted);
}
.cl-hcard-cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--snt-primary);
  color: #fff;
  font-size: .86rem;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s;
}
.cl-hcard-cta:hover { background: var(--snt-primary-700); color: #fff; }

@media (max-width: 767px) {
  .cl-hcard { flex-direction: column; }
  .cl-hcard-img { width: 100%; height: 200px; }
  .cl-hcard-body { padding: 16px; }
  .cl-hcard-foot { flex-wrap: wrap; }
  .cl-hcard-cta { width: 100%; justify-content: center; }
}

/* Responsive */
@media (max-width: 767px) {
  .cl-hero { min-height: 44vh; }
  .cl-hero-inner { padding-top: 90px; padding-bottom: 40px; }
  .cl-body { padding: 48px 0 64px; }
  .cl-pkg-foot { flex-direction: column; align-items: flex-start; }
  .cl-pkg-actions { width: 100%; }
  .cl-btn { flex: 1; justify-content: center; }
}


/* =====================================================
   BLOG LIST PAGE
===================================================== */

.bl-header {
  background: var(--snt-cream, #f7f4ef);
  border-bottom: 1px solid var(--snt-line, #e8e3da);
  padding: 100px 0 52px;
}

.bl-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .8rem;
  color: var(--snt-muted);
  margin-bottom: 20px;
}
.bl-breadcrumb a { color: var(--snt-primary); text-decoration: none; }
.bl-breadcrumb a:hover { text-decoration: underline; }
.bl-breadcrumb span { opacity: .45; }
.bl-breadcrumb span:last-child { opacity: 1; color: var(--snt-muted); }

.bl-header h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 800;
  color: var(--snt-ink);
  margin: 0 0 0;
  max-width: 640px;
}

.bl-pagination {
  margin-top: 56px;
  display: flex;
  justify-content: center;
}

.bl-empty {
  text-align: center;
  padding: 80px 20px;
  color: var(--snt-muted);
}

.bl-empty i {
  font-size: 3rem;
  margin-bottom: 20px;
  opacity: .35;
  display: block;
}

.bl-empty h3 {
  font-size: 1.3rem;
  color: var(--snt-ink);
  margin-bottom: 8px;
}

@media (max-width: 767px) {
  .bl-header { padding: 88px 0 40px; }
}


/* =====================================================
   BLOG DETAIL PAGE
===================================================== */

/* Reading progress bar */
.blog-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0%;
  background: var(--snt-primary);
  z-index: 9999;
  transition: width .1s linear;
}

/* Hero */
.blog-hero {
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--snt-primary);
}

.blog-hero-media {
  position: absolute;
  inset: 0;
}

.blog-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.blog-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.3) 55%, transparent 100%);
}

.blog-hero .container {
  position: relative;
  z-index: 2;
  padding-bottom: 56px;
  padding-top: 100px;
}

/* Breadcrumb */
.blog-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  margin-bottom: 18px;
}
.blog-breadcrumb a { color: rgba(255,255,255,.8); text-decoration: none; }
.blog-breadcrumb a:hover { color: #fff; }
.blog-breadcrumb span { opacity: .4; }
.blog-breadcrumb span:last-child { opacity: 1; color: rgba(255,255,255,.75); }

/* Title */
.blog-title {
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800;
  line-height: 1.18;
  margin: 0 0 20px;
  text-shadow: 0 2px 16px rgba(0,0,0,.3);
}

/* Meta chips */
.blog-hero-content .blog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .82rem;
}

.blog-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.9);
  padding: 5px 14px;
  border-radius: 100px;
  font-weight: 500;
}

/* Main body */
.blog-main {
  padding: 64px 0 80px;
}

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

.side-card {
  background: #fff;
  border: 1px solid var(--snt-line, #e8e3da);
  border-radius: 14px;
  padding: 22px;
}

/* TOC */
.toc-title {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--snt-muted);
  margin-bottom: 14px;
}

.toc-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.toc-link {
  display: block;
  font-size: .85rem;
  color: var(--snt-muted);
  text-decoration: none;
  padding: 5px 10px;
  border-radius: 6px;
  border-left: 2px solid transparent;
  transition: all .2s;
  line-height: 1.4;
}

.toc-link:hover {
  color: var(--snt-primary);
  background: var(--snt-cream, #f7f4ef);
}

.toc-link.active {
  color: var(--snt-primary);
  border-left-color: var(--snt-primary);
  background: var(--snt-cream, #f7f4ef);
  font-weight: 600;
}

.toc-sub { padding-left: 22px; font-size: .82rem; }
.toc-empty { font-size: .82rem; color: var(--snt-muted); }

/* Share */
.sidebar-mini-title {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--snt-muted);
  margin-bottom: 14px;
}

.share-list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.share-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  text-decoration: none;
  border: 1.5px solid var(--snt-line, #e8e3da);
  color: var(--snt-muted);
  transition: all .2s;
}
.share-btn:hover { color: #fff; border-color: transparent; }
.share-fb:hover { background: #1877F2; }
.share-tw:hover { background: #000; }
.share-li:hover { background: #0A66C2; }
.share-wa:hover { background: #25d366; }

/* Article content */
.blog-content-wrap { max-width: 740px; }

.article-content {
  font-size: 1.05rem;
  line-height: 1.85;
  color: var(--snt-ink);
}

.article-content h2 {
  font-size: 1.55rem;
  font-weight: 800;
  margin: 2.2em 0 .7em;
  color: var(--snt-ink);
  line-height: 1.25;
}

.article-content h3 {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 1.8em 0 .6em;
  color: var(--snt-ink);
}

.article-content p { margin-bottom: 1.35em; }

.article-content a {
  color: var(--snt-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.article-content img {
  max-width: 100%;
  border-radius: 10px;
  margin: 1.5em 0;
}

.article-content ul,
.article-content ol {
  padding-left: 1.5em;
  margin-bottom: 1.35em;
}

.article-content li { margin-bottom: .45em; }

.article-content blockquote {
  border-left: 4px solid var(--snt-primary);
  margin: 2em 0;
  padding: 16px 24px;
  background: var(--snt-cream, #f7f4ef);
  border-radius: 0 10px 10px 0;
  font-style: italic;
  color: var(--snt-muted);
}

/* Tables authored via the WYSIWYG editor: scroll horizontally on narrow
   screens instead of forcing the whole page to overflow. */
.article-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5em 0;
  font-size: .95rem;
}
.article-content th,
.article-content td {
  padding: 10px 14px;
  border: 1px solid var(--snt-line, #e8e3da);
  text-align: left;
  vertical-align: top;
}
.article-content th {
  background: var(--snt-cream, #f7f4ef);
  font-weight: 700;
  color: var(--snt-ink);
}
.article-content tbody tr:nth-child(even) { background: rgba(0,0,0,.015); }

@media (max-width: 767px) {
  .article-content table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Author bio */
.blog-writer-section {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--snt-line, #e8e3da);
}

.author-card {
  background: var(--snt-cream, #f7f4ef);
  border-radius: 14px;
  padding: 28px;
}

.writer-image {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--snt-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}

.writer-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.writer-placeholder {
  color: rgba(255,255,255,.7);
  font-size: 1.4rem;
}

.author-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--snt-primary);
  display: block;
  margin-bottom: 4px;
}

.writer-name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--snt-ink);
}

.blog-writer-desc {
  font-size: .88rem;
  color: var(--snt-muted);
  line-height: 1.65;
}

/* Comments */
.blog-comments-section {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--snt-line, #e8e3da);
}

.comments-heading {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--snt-ink);
  margin-bottom: 20px;
}

.comments-count { color: var(--snt-muted); font-weight: 600; }

.cm-card {
  background: #fff;
  border: 1px solid var(--snt-line, #e8e3da);
  border-radius: 14px;
  padding: 20px 22px;
  margin-bottom: 16px;
}

.cm-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}

.cm-avatar {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--snt-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
}

.cm-meta { flex: 1; min-width: 0; }

.cm-name {
  font-size: .95rem;
  font-weight: 700;
  color: var(--snt-ink);
  display: block;
  margin-bottom: 3px;
}

.cm-submeta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .78rem;
  color: var(--snt-muted);
}

.cm-country i, .cm-date i { margin-right: 3px; }

.cm-body {
  font-size: .92rem;
  color: #4b5563;
  line-height: 1.7;
  white-space: pre-line;
}

.cm-empty {
  color: var(--snt-muted);
  font-size: .95rem;
  margin-bottom: 20px;
}

.cm-form-wrap {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px dashed var(--snt-line, #e8e3da);
}

.cm-form-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 16px;
}

/* Related posts */
.related-blog-section {
  background: var(--snt-cream, #f7f4ef);
  padding: 72px 0;
  border-top: 1px solid var(--snt-line, #e8e3da);
}

.related-blog-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 36px;
}

.snt-h3 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--snt-ink);
}

.snt-muted2 { color: var(--snt-muted); }

.btn-snt-soft {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1.5px solid var(--snt-line, #e8e3da);
  color: var(--snt-ink);
  font-size: .85rem;
  font-weight: 600;
  padding: 9px 20px;
  border-radius: 8px;
  text-decoration: none;
  transition: all .2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.btn-snt-soft:hover { border-color: var(--snt-primary); color: var(--snt-primary); }

/* Related post cards */
.snt-post {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--snt-line, #e8e3da);
  transition: box-shadow .25s, transform .25s;
}

.snt-post:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.09);
  transform: translateY(-3px);
}

.snt-post-media {
  display: block;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--snt-primary);
}

.snt-post-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.snt-post:hover .snt-post-media img { transform: scale(1.05); }

.snt-post-body {
  padding: 18px 20px 22px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.snt-post-date {
  font-size: .75rem;
  color: var(--snt-muted);
  display: block;
  margin-bottom: 10px;
}

.snt-post-title {
  font-size: .97rem;
  font-weight: 700;
  line-height: 1.4;
  margin: 0;
}

.snt-post-title a {
  color: var(--snt-ink);
  text-decoration: none;
  transition: color .2s;
}
.snt-post-title a:hover { color: var(--snt-primary); }

/* Responsive */
@media (max-width: 991px) {
  .blog-sidebar { position: static; }
  .blog-content-wrap { max-width: 100%; }
}

@media (max-width: 767px) {
  .blog-hero { min-height: 48vh; }
  .blog-hero .container { padding-bottom: 40px; }
  .blog-main { padding: 40px 0 56px; }
  .related-blog-section { padding: 48px 0; }
  .related-blog-head { flex-direction: column; align-items: flex-start; }
}


/* =====================================================
   GENERIC PAGE DETAIL (detail.blade.php)
===================================================== */

/* Hero */
.single-page-section {
  position: relative;
  min-height: 44vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--snt-primary);
}

.single-page-banner {
  position: absolute;
  inset: 0;
}

.single-page-banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.single-page-banner-fallback {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--snt-primary-700, #174f54) 0%, var(--snt-primary) 100%);
}

.single-page-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.2) 55%, transparent 100%);
}

.single-page-section .container {
  position: relative;
  z-index: 2;
}

.single-page-banner-content {
  padding-top: 100px;
  padding-bottom: 52px;
}

/* Breadcrumb in hero */
.cat-hero-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  font-size: .8rem;
  color: rgba(255,255,255,.6);
  margin-bottom: 16px;
}

.cat-hero-breadcrumb a {
  color: rgba(255,255,255,.8);
  text-decoration: none;
}

.cat-hero-breadcrumb a:hover { color: #fff; }

.cat-bc-sep { opacity: .4; }

/* Title */
.single-page-title {
  color: #fff;
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: 800;
  margin: 0;
  line-height: 1.15;
  text-shadow: 0 2px 16px rgba(0,0,0,.28);
}

/* Body */
.single-page-detail {
  padding: 64px 0 88px;
  background: #fff;
}

/* Article */
.sp-article {
  font-size: 1.02rem;
  line-height: 1.85;
  color: var(--snt-ink);
}

.sp-article h2 {
  font-size: 1.55rem;
  font-weight: 800;
  margin: 2em 0 .65em;
  color: var(--snt-ink);
  line-height: 1.25;
}

.sp-article h3 {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 1.7em 0 .55em;
  color: var(--snt-ink);
}

.sp-article p { margin-bottom: 1.3em; }

.sp-article a {
  color: var(--snt-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sp-article img {
  max-width: 100%;
  border-radius: 10px;
  margin: 1.2em 0;
}

.sp-article ul,
.sp-article ol {
  padding-left: 1.5em;
  margin-bottom: 1.3em;
}

.sp-article li { margin-bottom: .45em; }

.sp-article blockquote {
  border-left: 4px solid var(--snt-primary);
  margin: 1.8em 0;
  padding: 14px 22px;
  background: var(--snt-cream, #f7f4ef);
  border-radius: 0 10px 10px 0;
  font-style: italic;
  color: var(--snt-muted);
}

.sp-article table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5em;
  font-size: .93rem;
}

.sp-article th,
.sp-article td {
  padding: 11px 14px;
  border: 1px solid var(--snt-line, #e8e3da);
  text-align: left;
}

.sp-article th {
  background: var(--snt-cream, #f7f4ef);
  font-weight: 700;
  color: var(--snt-ink);
}

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

/* A sticky element can only travel inside its containing block. The row uses
   align-items-start, which collapses the column to the sidebar's own height,
   leaving nothing to scroll against — so stretch the column back to full
   height. Scoped to this page so other align-items-start rows are unaffected. */
.single-page-detail .row > .col-lg-4 {
  align-self: stretch;
}

/* Contact card */
.sp-contact-card {
  background: var(--snt-primary);
  border-radius: 16px;
  padding: 28px;
}

.sp-contact-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: 6px;
}

.sp-contact-title {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 800;
  margin: 0 0 10px;
}

.sp-contact-sub {
  color: rgba(255,255,255,.72);
  font-size: .88rem;
  line-height: 1.65;
  margin-bottom: 20px;
}

.sp-meta-lines {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 22px;
}

.sp-meta-line {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.85);
  text-decoration: none;
  font-size: .88rem;
  transition: color .2s;
}

.sp-meta-line i {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255,255,255,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  flex-shrink: 0;
}

.sp-meta-line:hover { color: #fff; }

.sp-contact-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sp-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--snt-accent);
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  padding: 12px 20px;
  border-radius: 10px;
  text-decoration: none;
  transition: background .2s, transform .2s;
}

.sp-btn-primary:hover {
  background: #d48e00;
  color: #fff;
  transform: translateY(-2px);
}

.sp-btn-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(255,255,255,.15);
  border: 1.5px solid rgba(255,255,255,.3);
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  padding: 12px 20px;
  border-radius: 10px;
  text-decoration: none;
  transition: all .2s;
}

.sp-btn-whatsapp:hover {
  background: #25d366;
  border-color: #25d366;
  color: #fff;
}

/* Social card */
.sp-social-card {
  background: #fff;
  border: 1px solid var(--snt-line, #e8e3da);
  border-radius: 16px;
  padding: 22px;
}

.sp-social-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--snt-muted);
  margin-bottom: 14px;
}

.sp-social-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.sp-social-link {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--snt-cream, #f7f4ef);
  border: 1px solid var(--snt-line, #e8e3da);
  color: var(--snt-muted);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  text-decoration: none;
  transition: all .2s;
}

.sp-social-link:hover {
  background: var(--snt-primary);
  border-color: var(--snt-primary);
  color: #fff;
  transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 991px) {
  .sp-sidebar { position: static; }
}

@media (max-width: 767px) {
  .single-page-section { min-height: 36vh; }
  .single-page-banner-content { padding-top: 88px; padding-bottom: 36px; }
  .single-page-detail { padding: 40px 0 60px; }
}

/* Admin edit shortcut (package detail) */
.admin-edit-shortcut {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background: #000;
  color: #fff;
  z-index: 9999;
  padding: 15px;
  line-height: 16px;
  text-transform: uppercase;
  font-weight: 600;
  font-family: Arial, sans-serif;
  font-size: 14px;
  writing-mode: vertical-lr;
  letter-spacing: .1em;
  text-decoration: none;
  opacity: .75;
  transition: opacity .2s;
}
.admin-edit-shortcut:hover { opacity: 1; color: #fff; }

/* Utility */
.icon-dot { font-size: .5rem; }

/* Scroll to top button */
#scrollTopBtn {
  position: fixed;
  bottom: 32px;
  right: 24px;
  z-index: 1050;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--snt-primary);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  box-shadow: 0 4px 18px rgba(32,118,124,.4);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .25s, transform .25s, background .2s;
}

#scrollTopBtn.stt-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

#scrollTopBtn:hover {
  background: var(--snt-primary-700);
  box-shadow: 0 6px 24px rgba(32,118,124,.5);
}

@media (max-width: 767px) {
  #scrollTopBtn { bottom: 20px; right: 16px; }
}

/* =====================================================
   SEARCH PAGE
   ===================================================== */
.sr-hero {
  background: linear-gradient(135deg, var(--snt-primary) 0%, #0a5c60 100%);
  padding: 80px 0 60px;
}
.sr-hero-inner {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}
.sr-eyebrow {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.6);
  margin-bottom: 8px;
}
.sr-title {
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 800;
  margin: 0 0 8px;
  line-height: 1.15;
}
.sr-subtitle {
  color: rgba(255,255,255,.7);
  font-size: 1rem;
  margin-bottom: 28px;
}
.sr-form { margin-top: 28px; }
.sr-form-inner {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 50px;
  padding: 6px 6px 6px 20px;
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
  gap: 8px;
}
.sr-form-icon {
  color: var(--snt-accent);
  font-size: 1rem;
  flex-shrink: 0;
}
.sr-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 1rem;
  font-weight: 500;
  color: #1a3438;
  background: transparent;
  min-width: 0;
}
.sr-input::placeholder { color: #9bb3ba; }
.sr-clear {
  color: #aab8bc;
  font-size: .9rem;
  text-decoration: none;
  flex-shrink: 0;
  padding: 4px 6px;
  transition: color .2s;
}
.sr-clear:hover { color: #555; }
.sr-btn {
  flex-shrink: 0;
  height: 46px;
  padding: 0 24px;
  border: none;
  border-radius: 50px;
  background: var(--snt-accent);
  color: #fff;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.sr-btn:hover {
  background: var(--snt-accent-600);
  transform: scale(1.02);
}

.sr-body {
  padding: 48px 0 80px;
  background: #f5f9f9;
}
.sr-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  flex-wrap: wrap;
  gap: 10px;
}
.sr-count {
  font-size: .95rem;
  font-weight: 700;
  color: var(--snt-primary);
}
.sr-browse-all {
  font-size: .88rem;
  font-weight: 700;
  color: var(--snt-accent);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.sr-browse-all:hover { color: var(--snt-accent-600); }

/* empty state */
.sr-empty {
  text-align: center;
  padding: 60px 20px;
}
.sr-empty-icon {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: #e8f4f5;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  font-size: 2rem;
  color: var(--snt-primary);
}
.sr-empty-title {
  font-size: 1.4rem;
  font-weight: 800;
  color: #0d3436;
  margin-bottom: 10px;
}
.sr-empty-text {
  color: #6b8088;
  font-size: .95rem;
  max-width: 420px;
  margin: 0 auto 20px;
}

@media (max-width: 767px) {
  .sr-hero { padding: 60px 0 44px; }
  .sr-form-inner { padding: 5px 5px 5px 16px; }
  .sr-btn { height: 42px; padding: 0 18px; font-size: .88rem; }
}

/* Category empty state */
.cl-empty {
  text-align: center;
  padding: 64px 20px;
  color: var(--snt-muted);
}
.cl-empty i {
  font-size: 2.8rem;
  opacity: .3;
  display: block;
  margin-bottom: 18px;
}
.cl-empty h3 {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--snt-ink);
  margin-bottom: 8px;
}
.cl-empty p { font-size: .93rem; margin: 0; }
.cl-empty a { color: var(--snt-primary); }

/* =========================================================
   LEGAL DOCUMENTS PAGE
   ========================================================= */

/* Intro block */
.snt-doc-intro {
  padding: 48px 0 0;
}
.snt-doc-intro-body {
  max-width: 720px;
  font-size: 1rem;
  color: var(--snt-muted);
  line-height: 1.75;
}

/* Section */
.snt-doc-section {
  padding: 56px 0 80px;
}

/* Document card */
.snt-doc-card {
  display: block;
  text-decoration: none;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e8e8e8;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  transition: transform .22s, box-shadow .22s, border-color .22s;
  height: 100%;
}
.snt-doc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(32,118,124,.13);
  border-color: var(--snt-primary-300);
}

/* Image preview */
.snt-doc-preview {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #f5f5f3;
}
.snt-doc-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s;
}
.snt-doc-card:hover .snt-doc-preview img {
  transform: scale(1.04);
}

/* Hover overlay */
.snt-doc-overlay {
  position: absolute;
  inset: 0;
  background: rgba(32,118,124,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .22s;
}
.snt-doc-card:hover .snt-doc-overlay { opacity: 1; }
.snt-doc-overlay i {
  font-size: 1.6rem;
  color: #fff;
}

/* Card body */
.snt-doc-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.snt-doc-title {
  font-size: .95rem;
  font-weight: 600;
  color: var(--snt-ink);
  margin: 0;
  line-height: 1.4;
}

/* Empty state */
.snt-doc-empty {
  text-align: center;
  padding: 80px 20px;
  color: var(--snt-muted);
}
.snt-doc-empty i {
  font-size: 3rem;
  opacity: .25;
  display: block;
  margin-bottom: 20px;
}
.snt-doc-empty p {
  font-size: 1rem;
  margin: 0;
}

/* Responsive */
@media (max-width: 767px) {
  .snt-doc-section { padding: 40px 0 60px; }
  .snt-doc-section-head { margin-bottom: 32px; }
  .snt-doc-intro { padding-top: 32px; }
}

/* =========================================================
   FAQ PAGE
   ========================================================= */

/* Hero */
.snt-faq-hero {
  position: relative;
  min-height: 340px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
}
.snt-faq-hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--snt-primary) 0%, #0a3d42 60%, #041c20 100%);
  z-index: 0;
}
.snt-faq-hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.snt-faq-hero-inner {
  position: relative;
  z-index: 1;
  padding-top: 80px;
  padding-bottom: 56px;
}
.snt-faq-hero-title {
  font-size: clamp(2rem, 4vw, 3rem);
  color: #fff;
  margin-bottom: 12px;
  line-height: 1.1;
}
.snt-faq-hero-sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,.8);
  max-width: 560px;
  margin-bottom: 32px;
}

/* Search */
.snt-faq-search-wrap {
  position: relative;
  max-width: 520px;
}
.snt-faq-search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--snt-muted);
  font-size: .95rem;
  pointer-events: none;
}
.snt-faq-search {
  width: 100%;
  padding: 14px 16px 14px 44px;
  border: none;
  border-radius: 12px;
  font-size: 1rem;
  font-family: var(--font-body);
  color: var(--snt-ink);
  background: #fff;
  box-shadow: 0 4px 24px rgba(0,0,0,.15);
  outline: none;
  transition: box-shadow .2s;
}
.snt-faq-search:focus {
  box-shadow: 0 4px 32px rgba(0,0,0,.22), 0 0 0 3px rgba(32,118,124,.25);
}

/* Body */
.snt-faq-body {
  padding: 64px 0 80px;
}

/* Category filter pills */
.snt-faq-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 40px;
}
.snt-faq-cat-btn {
  padding: 8px 18px;
  border: 1.5px solid var(--snt-line);
  border-radius: 99px;
  background: #fff;
  color: var(--snt-ink);
  font-size: .88rem;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background .18s, border-color .18s, color .18s;
  white-space: nowrap;
}
.snt-faq-cat-btn:hover {
  border-color: var(--snt-primary);
  color: var(--snt-primary);
}
.snt-faq-cat-btn.active {
  background: var(--snt-primary);
  border-color: var(--snt-primary);
  color: #fff;
}

/* FAQ group */
.snt-faq-group {
  margin-bottom: 48px;
}
.snt-faq-group-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--snt-line);
}
.snt-faq-group-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--snt-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .95rem;
  flex-shrink: 0;
}
.snt-faq-group-title {
  font-size: 1.25rem;
  margin: 0;
  color: var(--snt-primary);
}

/* Accordion */
.snt-faq-acc .accordion-item {
  border: 1.5px solid var(--snt-line);
  border-radius: 12px !important;
  margin-bottom: 10px;
  overflow: hidden;
}
.snt-faq-acc .accordion-button {
  font-size: 1rem;
  font-weight: 500;
  color: var(--snt-ink);
  background: #fff;
  gap: 14px;
  padding: 18px 20px;
  box-shadow: none;
}
.snt-faq-acc .accordion-button:not(.collapsed) {
  background: #f0f8f8;
  color: var(--snt-primary);
  box-shadow: none;
}
.snt-faq-acc .accordion-button::after {
  flex-shrink: 0;
  margin-left: auto;
}
.snt-faq-q-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--snt-primary);
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  flex-shrink: 0;
}
.accordion-button:not(.collapsed) .snt-faq-q-num {
  background: var(--snt-accent);
}
.snt-faq-answer {
  padding: 4px 20px 20px 60px;
  font-size: .95rem;
  color: var(--snt-muted);
  line-height: 1.7;
}
.snt-faq-answer p:last-child { margin-bottom: 0; }

/* Empty state */
.snt-faq-empty {
  text-align: center;
  padding: 64px 20px;
  color: var(--snt-muted);
}
.snt-faq-empty i {
  font-size: 3rem;
  opacity: .3;
  display: block;
  margin-bottom: 16px;
}
.snt-faq-empty p { margin: 0; font-size: 1rem; }

/* CTA strip */
.snt-faq-cta {
  display: flex;
  align-items: center;
  gap: 24px;
  background: linear-gradient(135deg, #f0f8f8 0%, #e8f4f5 100%);
  border: 1.5px solid rgba(32,118,124,.15);
  border-radius: 16px;
  padding: 32px 36px;
  margin-top: 56px;
  flex-wrap: wrap;
}
.snt-faq-cta-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--snt-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
}
.snt-faq-cta-text { flex: 1; min-width: 0; }
.snt-faq-cta-text h3 { font-size: 1.15rem; margin-bottom: 4px; }
.snt-faq-cta-text p  { margin: 0; color: var(--snt-muted); font-size: .93rem; }
.snt-faq-cta-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 767px) {
  .snt-faq-hero-inner { padding-top: 60px; padding-bottom: 40px; }
  .snt-faq-body { padding: 40px 0 56px; }
  .snt-faq-cta { flex-direction: column; align-items: flex-start; padding: 24px 20px; gap: 16px; }
  .snt-faq-cta-actions { width: 100%; }
  .snt-faq-cta-actions .btn { flex: 1; text-align: center; }
  .snt-faq-answer { padding-left: 20px; }
  .snt-faq-acc .accordion-button { font-size: .93rem; padding: 14px 16px; }
}
