/* ==========================================================================
   Nepal Spiritual Trekking — Design System
   Bootstrap 5 theme override + custom components
   ========================================================================== */

:root {
  /* Brand palette */
  --nst-saffron:   #E0762E;   /* primary — spiritual saffron */
  --nst-saffron-d: #C25E1C;
  --nst-gold:      #D4A24E;   /* accent — prayer-flag gold */
  --nst-ink:       #14232E;   /* deep himalayan ink */
  --nst-ink-2:     #1E3543;
  --nst-teal:      #2E6E6A;   /* secondary — pine/teal */
  --nst-cream:     #FBF8F3;   /* warm background */
  --nst-sand:      #F1E9DD;
  --nst-line:      #E7DECF;
  --nst-muted:     #6B7680;

  /* Bootstrap variable remaps */
  --bs-primary: var(--nst-saffron);
  --bs-primary-rgb: 224, 118, 46;
  --bs-body-color: #2A3239;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-border-radius: .65rem;
}

/* ---------- Base ---------- */
body {
  font-family: var(--bs-body-font-family);
  color: var(--bs-body-color);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, .display-title {
  font-family: 'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight: 600;
  color: var(--nst-ink);
  letter-spacing: -.01em;
}
a { text-decoration: none; }
.section { padding: 4.5rem 0; }
.section-sm { padding: 3rem 0; }
.bg-cream { background: var(--nst-cream); }
.bg-sand { background: var(--nst-sand); }
.bg-ink { background: var(--nst-ink); color: #E7EDF1; }
.text-saffron { color: var(--nst-saffron) !important; }
.text-gold { color: var(--nst-gold) !important; }
.text-teal { color: var(--nst-teal) !important; }

/* Eyebrow / kicker label */
.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  text-transform: uppercase; letter-spacing: .18em;
  font-size: .74rem; font-weight: 700; color: var(--nst-saffron);
  margin-bottom: .75rem;
}
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--nst-gold); }
.section-head { max-width: 640px; }
.section-head.center { margin-inline: auto; text-align: center; }
.section-head.center .eyebrow { justify-content: center; }

/* Buttons */
.btn { font-weight: 600; border-radius: 999px; padding: .6rem 1.4rem; }
.btn-primary { --bs-btn-bg: var(--nst-saffron); --bs-btn-border-color: var(--nst-saffron);
  --bs-btn-hover-bg: var(--nst-saffron-d); --bs-btn-hover-border-color: var(--nst-saffron-d);
  --bs-btn-active-bg: var(--nst-saffron-d); }
.btn-outline-light { --bs-btn-color:#fff; --bs-btn-border-color:rgba(255,255,255,.7); }
.btn-ink { background: var(--nst-ink); color:#fff; }
.btn-ink:hover { background: var(--nst-ink-2); color:#fff; }
.btn-ghost { border:1px solid var(--nst-line); color:var(--nst-ink); background:#fff; }
.btn-ghost:hover { border-color:var(--nst-saffron); color:var(--nst-saffron); }

/* ---------- Top bar ---------- */
.topbar { background: var(--nst-ink); color:#C9D4DA; font-size:.82rem; }
.topbar a { color:#C9D4DA; }
.topbar a:hover { color:#fff; }
.topbar .bi { color: var(--nst-gold); }

/* ---------- Navbar ---------- */
.navbar-nst { background:#fff; border-bottom:1px solid var(--nst-line); }
.navbar-nst.is-stuck { box-shadow: 0 6px 24px rgba(20,35,46,.08); }
.navbar-brand-nst { display:flex; align-items:center; gap:.6rem; }
.navbar-brand-nst .mark {
  width:42px; height:42px; border-radius:50%;
  background: radial-gradient(circle at 30% 30%, var(--nst-gold), var(--nst-saffron));
  display:grid; place-items:center; color:#fff; font-size:1.2rem;
}
.navbar-brand-nst .name { font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; color:var(--nst-ink); line-height:1; }
.navbar-brand-nst .name small { display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--nst-saffron); margin-top:3px; }
.navbar-nst .nav-link { font-weight:600; color:var(--nst-ink); padding:.5rem .9rem !important; }
.navbar-nst .nav-link:hover, .navbar-nst .nav-link.active { color:var(--nst-saffron); }
.navbar-nst .dropdown-menu { border:none; box-shadow:0 12px 40px rgba(20,35,46,.14); border-radius:.8rem; padding:.5rem; margin-top:.4rem; }
.navbar-nst .dropdown-item { border-radius:.5rem; font-weight:500; padding:.5rem .8rem; }
.navbar-nst .dropdown-item:hover { background:var(--nst-cream); color:var(--nst-saffron); }

/* ---------- Hero ---------- */
.hero {
  position:relative; color:#fff; padding:7rem 0 6rem;
  background:linear-gradient(180deg, rgba(20,35,46,.35), rgba(20,35,46,.75)),
             url('https://picsum.photos/seed/himalaya-hero/1920/1080') center/cover no-repeat;
}
.hero.hero-sm { padding:5rem 0 4rem; }
.hero h1 { color:#fff; font-size:clamp(2.2rem, 5vw, 3.6rem); line-height:1.05; }
.hero .lead { color:#EAEFF2; max-width:620px; }
.hero .eyebrow { color:var(--nst-gold); }
.hero .eyebrow::before { background:var(--nst-gold); }

/* Search / filter bar */
.search-card {
  background:rgba(255,255,255,.96); border-radius:1rem; padding:1rem;
  box-shadow:0 20px 50px rgba(20,35,46,.25);
}
.search-card .form-label { font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--nst-muted); margin-bottom:.15rem; }
.search-card .form-control, .search-card .form-select { border:none; padding-left:0; font-weight:600; color:var(--nst-ink); }
.search-card .form-control:focus, .search-card .form-select:focus { box-shadow:none; }
.search-col { border-right:1px solid var(--nst-line); }
.search-col:last-child { border-right:none; }

/* Rating pill */
.rating-pill { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:.35rem .8rem; font-size:.85rem; }
.rating-pill .stars { color:var(--nst-gold); }

/* Trust strip */
.trust-strip { background:var(--nst-cream); border-bottom:1px solid var(--nst-line); }
.trust-item { display:flex; align-items:center; gap:.6rem; color:var(--nst-ink); font-weight:600; font-size:.92rem; }
.trust-item .bi { font-size:1.35rem; color:var(--nst-saffron); }

/* ---------- Cards ---------- */
.trip-card {
  border:1px solid var(--nst-line); border-radius:1rem; overflow:hidden; background:#fff;
  transition:transform .25s ease, box-shadow .25s ease; height:100%;
}
.trip-card:hover { transform:translateY(-6px); box-shadow:0 18px 40px rgba(20,35,46,.14); }
.trip-card .media { position:relative; aspect-ratio:4/3; overflow:hidden; }
.trip-card .media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.trip-card:hover .media img { transform:scale(1.06); }
.trip-card .badge-tag {
  position:absolute; top:.75rem; left:.75rem; background:var(--nst-saffron); color:#fff;
  font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:.3rem .6rem; border-radius:999px;
}
.trip-card .fav { position:absolute; top:.6rem; right:.6rem; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.9); display:grid; place-items:center; color:var(--nst-ink); }
.trip-card .body { padding:1.1rem 1.2rem 1.3rem; }
.trip-card .region-tag { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--nst-teal); }
.trip-card h3 { font-size:1.12rem; margin:.3rem 0 .6rem; line-height:1.25; }
.trip-card h3 a { color:var(--nst-ink); }
.trip-card h3 a:hover { color:var(--nst-saffron); }
.trip-meta { display:flex; flex-wrap:wrap; gap:.9rem; color:var(--nst-muted); font-size:.85rem; font-weight:500; }
.trip-meta .bi { color:var(--nst-saffron); }
.trip-card .foot { display:flex; align-items:center; justify-content:space-between; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--nst-line); }
.price small { color:var(--nst-muted); font-size:.72rem; display:block; text-transform:uppercase; letter-spacing:.06em; }
.price .amount { font-family:'Fraunces',serif; font-weight:600; font-size:1.3rem; color:var(--nst-ink); }
.price .amount s { color:var(--nst-muted); font-size:.9rem; font-weight:400; }

/* Category / destination tiles */
.tile { position:relative; border-radius:1rem; overflow:hidden; display:block; aspect-ratio:3/4; color:#fff; }
.tile img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.tile:hover img { transform:scale(1.07); }
.tile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,35,46,0) 35%, rgba(20,35,46,.82)); }
.tile .cap { position:absolute; left:0; right:0; bottom:0; padding:1.2rem; z-index:2; }
.tile .cap h3 { color:#fff; font-size:1.25rem; margin-bottom:.15rem; }
.tile .cap p { margin:0; font-size:.85rem; color:#DCE4E8; }
.tile.tile-wide { aspect-ratio:16/10; }

/* Region strip cards */
.region-card { border-radius:1rem; overflow:hidden; position:relative; aspect-ratio:1/1; display:block; }
.region-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.region-card:hover img { transform:scale(1.06); }
.region-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,35,46,0) 40%,rgba(20,35,46,.8)); }
.region-card .rc-cap { position:absolute; bottom:0; padding:1rem; color:#fff; z-index:2; }
.region-card .rc-cap h4 { color:#fff; font-size:1.05rem; margin:0; }
.region-card .rc-cap span { font-size:.78rem; color:#D9E1E6; }

/* ---------- Feature / why-us ---------- */
.feature { display:flex; gap:1rem; }
.feature .ic { flex:0 0 auto; width:52px; height:52px; border-radius:14px; background:var(--nst-sand);
  display:grid; place-items:center; color:var(--nst-saffron); font-size:1.4rem; }
.feature h4 { font-size:1.05rem; margin-bottom:.3rem; }
.feature p { color:var(--nst-muted); margin:0; font-size:.92rem; }

/* Stats */
.stat .num { font-family:'Fraunces',serif; font-size:2.4rem; font-weight:600; color:var(--nst-saffron); line-height:1; }
.stat .lbl { font-size:.85rem; color:var(--nst-muted); text-transform:uppercase; letter-spacing:.08em; margin-top:.3rem; }

/* Testimonials */
.testimonial { background:#fff; border:1px solid var(--nst-line); border-radius:1rem; padding:1.6rem; height:100%; }
.testimonial .stars { color:var(--nst-gold); margin-bottom:.6rem; }
.testimonial p { color:var(--nst-ink-2); font-size:1rem; }
.testimonial .who { display:flex; align-items:center; gap:.7rem; margin-top:1rem; }
.testimonial .who img { width:44px; height:44px; border-radius:50%; object-fit:cover; }
.testimonial .who strong { display:block; font-size:.92rem; color:var(--nst-ink); }
.testimonial .who span { font-size:.8rem; color:var(--nst-muted); }

/* ---------- Page header (interior) ---------- */
.page-hero { position:relative; color:#fff; padding:5.5rem 0 4rem;
  background:linear-gradient(180deg, rgba(20,35,46,.45), rgba(20,35,46,.78)), var(--ph-img, url('https://picsum.photos/seed/nst-page/1920/700')) center/cover no-repeat; }
.page-hero h1 { color:#fff; font-size:clamp(2rem,4vw,3rem); }
.breadcrumb-nst { --bs-breadcrumb-divider:'›'; }
.breadcrumb-nst .breadcrumb-item, .breadcrumb-nst a { color:#D8E0E5; font-size:.88rem; }
.breadcrumb-nst .breadcrumb-item.active { color:var(--nst-gold); }
.breadcrumb-nst a:hover { color:#fff; }

/* ---------- Filters sidebar ---------- */
.filter-box { border:1px solid var(--nst-line); border-radius:1rem; padding:1.3rem; background:#fff; }
.filter-box h5 { font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; color:var(--nst-ink); margin-bottom:1rem; }
.filter-group { border-top:1px solid var(--nst-line); padding:1rem 0; }
.filter-group:first-of-type { border-top:none; padding-top:0; }
.filter-group .form-check-label { font-size:.9rem; }

/* ---------- Single trip ---------- */
.trip-gallery img { border-radius:.8rem; object-fit:cover; width:100%; height:100%; }
.fact-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--nst-line); border:1px solid var(--nst-line); border-radius:1rem; overflow:hidden; }
.fact-grid .fact { background:#fff; padding:1rem 1.1rem; }
.fact-grid .fact .k { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--nst-muted); font-weight:700; }
.fact-grid .fact .v { font-weight:600; color:var(--nst-ink); display:flex; align-items:center; gap:.4rem; margin-top:.2rem; }
.fact-grid .fact .v .bi { color:var(--nst-saffron); }
.booking-card { border:1px solid var(--nst-line); border-radius:1rem; padding:1.4rem; position:sticky; top:100px; box-shadow:0 10px 30px rgba(20,35,46,.06); }
.booking-card .price-lg { font-family:'Fraunces',serif; font-size:2rem; font-weight:600; color:var(--nst-ink); }
.tab-pills .nav-link { border-radius:999px; color:var(--nst-ink); font-weight:600; }
.tab-pills .nav-link.active { background:var(--nst-saffron); color:#fff; }
.itinerary .day { border-left:2px solid var(--nst-line); padding:0 0 1.4rem 1.4rem; position:relative; }
.itinerary .day::before { content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--nst-saffron); }
.itinerary .day:last-child { border-color:transparent; }
.itinerary .day .d-no { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--nst-saffron); }
.itinerary .day h5 { font-size:1.05rem; margin:.2rem 0 .35rem; }

/* ---------- Blog ---------- */
.post-card { border:1px solid var(--nst-line); border-radius:1rem; overflow:hidden; background:#fff; height:100%; transition:box-shadow .25s, transform .25s; }
.post-card:hover { transform:translateY(-5px); box-shadow:0 16px 36px rgba(20,35,46,.12); }
.post-card .media { aspect-ratio:16/10; overflow:hidden; }
.post-card .media img { width:100%; height:100%; object-fit:cover; }
.post-card .body { padding:1.2rem; }
.post-card .cat { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--nst-saffron); }
.post-card h3 { font-size:1.15rem; margin:.4rem 0 .5rem; }
.post-card h3 a { color:var(--nst-ink); }
.post-card h3 a:hover { color:var(--nst-saffron); }
.post-card .meta { font-size:.82rem; color:var(--nst-muted); display:flex; gap:1rem; }
.post-body { font-size:1.06rem; line-height:1.8; color:#333B42; }
.post-body h2 { margin:2rem 0 .8rem; }
.post-body h3 { margin:1.6rem 0 .6rem; }
.post-body p { margin-bottom:1.1rem; }
.post-body blockquote { border-left:4px solid var(--nst-saffron); background:var(--nst-cream); padding:1rem 1.3rem; border-radius:.5rem; font-family:'Fraunces',serif; font-size:1.2rem; color:var(--nst-ink); margin:1.5rem 0; }
.post-body img { border-radius:.8rem; margin:1.2rem 0; }
.tag-chip { display:inline-block; background:var(--nst-sand); color:var(--nst-ink); font-size:.8rem; font-weight:600; padding:.3rem .8rem; border-radius:999px; margin:.2rem; }
.tag-chip:hover { background:var(--nst-saffron); color:#fff; }

/* ---------- Sidebar widgets ---------- */
.widget { border:1px solid var(--nst-line); border-radius:1rem; padding:1.3rem; margin-bottom:1.5rem; background:#fff; }
.widget h5 { font-size:.95rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1rem; }
.widget-list a { display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--nst-line); color:var(--nst-ink); font-weight:500; font-size:.92rem; }
.widget-list a:last-child { border-bottom:none; }
.widget-list a:hover { color:var(--nst-saffron); }
.mini-post { display:flex; gap:.8rem; padding:.6rem 0; border-bottom:1px solid var(--nst-line); }
.mini-post:last-child { border-bottom:none; }
.mini-post img { width:64px; height:64px; border-radius:.5rem; object-fit:cover; flex:0 0 auto; }
.mini-post h6 { font-size:.9rem; margin:0 0 .2rem; font-family:'Inter',sans-serif; font-weight:600; }
.mini-post span { font-size:.78rem; color:var(--nst-muted); }

/* ---------- CTA band ---------- */
.cta-band { position:relative; color:#fff; border-radius:1.4rem; overflow:hidden; padding:3.5rem;
  background:linear-gradient(120deg, rgba(20,35,46,.85), rgba(46,110,106,.7)), url('https://picsum.photos/seed/nst-cta/1600/700') center/cover; }

/* ---------- Newsletter ---------- */
.newsletter .form-control { border-radius:999px 0 0 999px; border-right:none; }
.newsletter .btn { border-radius:0 999px 999px 0; }

/* ---------- Footer ---------- */
.footer { background:var(--nst-ink); color:#AEBBC3; padding-top:3.5rem; }
.footer a { color:#AEBBC3; }
.footer a:hover { color:#fff; }
.footer h6 { color:#fff; text-transform:uppercase; letter-spacing:.08em; font-size:.85rem; font-family:'Inter',sans-serif; margin-bottom:1.1rem; }
.footer .f-links li { margin-bottom:.55rem; list-style:none; }
.footer .f-links { padding:0; }
.footer .brand-mark { display:flex; align-items:center; gap:.6rem; margin-bottom:1rem; }
.footer .brand-mark .mark { width:40px; height:40px; border-radius:50%; background:radial-gradient(circle at 30% 30%, var(--nst-gold), var(--nst-saffron)); display:grid; place-items:center; color:#fff; }
.footer .brand-mark .name { font-family:'Fraunces',serif; color:#fff; font-size:1.1rem; }
.footer .social a { width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.18); display:inline-grid; place-items:center; margin-right:.4rem; }
.footer .social a:hover { background:var(--nst-saffron); border-color:var(--nst-saffron); color:#fff; }
.footer .assoc { display:flex; flex-wrap:wrap; gap:.6rem; }
.footer .assoc span { border:1px solid rgba(255,255,255,.15); border-radius:.5rem; padding:.4rem .7rem; font-size:.72rem; color:#C9D4DA; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:2.5rem; padding:1.2rem 0; font-size:.85rem; }

/* Floating WhatsApp */
.wa-float { position:fixed; right:20px; bottom:20px; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; font-size:1.6rem; z-index:1030; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.wa-float:hover { color:#fff; transform:translateY(-2px); }

/* Utilities */
.divider-dot { width:5px; height:5px; border-radius:50%; background:var(--nst-gold); display:inline-block; vertical-align:middle; }
.ratio-cover img { width:100%; height:100%; object-fit:cover; }
.link-arrow { font-weight:700; color:var(--nst-saffron); display:inline-flex; align-items:center; gap:.35rem; }
.link-arrow:hover { color:var(--nst-saffron-d); gap:.55rem; transition:gap .2s; }

@media (max-width: 991px){
  .search-col { border-right:none; border-bottom:1px solid var(--nst-line); }
  .search-col:last-child { border-bottom:none; }
  .hero { padding:5rem 0 4rem; }
  .navbar-nst .nav-link { padding:.6rem .2rem !important; }
  .navbar-nst .navbar-nav { padding-top:.6rem; }
  .navbar-nst .nav-item.ms-lg-2 .btn { display:inline-block; margin-top:.4rem; }
}

/* Brand + hero tuning on phones */
@media (max-width: 575.98px){
  .navbar-brand-nst .mark { width:36px; height:36px; font-size:1rem; }
  .navbar-brand-nst .name { font-size:.95rem; }
  .navbar-brand-nst .name small { font-size:.55rem; letter-spacing:.14em; }
  .hero h1 { font-size:2rem; }
  .section, .page-hero { }
  .cta-band { padding:2.25rem 1.5rem; }
  .fact-grid { grid-template-columns:1fr; }
  .booking-card { position:relative; top:auto; }
  .display-title, h1 { word-break:break-word; }
}
