/* EcoSapa Tour Lab v0.21.0 — final typography & spacing polish.
 * One calm, readable type scale; one spacing rhythm; minimal visual noise.
 * Loaded last so it becomes the production presentation layer without
 * rewriting WTE/Travel Monster functionality.
 */
:root{
  --es-font-sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --es-ink:#172b35;
  --es-copy:#344954;
  --es-muted:#6d7c84;
  --es-line:#e5eaec;
  --es-surface:#ffffff;
  --es-soft:#f7f9fa;
  --es-red:#ED1C24;
  --es-red-dark:#c8161d;
  --es-wine:#8f1d2c;
  --es-teal:#008f84;
  --es-space-1:8px;
  --es-space-2:12px;
  --es-space-3:16px;
  --es-space-4:24px;
  --es-space-5:32px;
  --es-space-6:48px;
  --es-space-7:64px;
}

html body{
  font-family:var(--es-font-sans)!important;
  color:var(--es-copy);
  font-weight:400;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body button,body input,body select,body textarea{font-family:var(--es-font-sans)!important}
body h1,body h2,body h3,body h4,body h5,body h6{
  font-family:var(--es-font-sans)!important;
  color:var(--es-ink);
  text-wrap:balance;
}
body p,body li{letter-spacing:-.004em}

/* ---------- Single tour: global frame ---------- */
body.single-trip .es-bp-shell{
  width:min(1280px,calc(100% - 56px))!important;
  margin-bottom:88px!important;
  color:var(--es-copy)!important;
}
body.single-trip .es-bp-shell a{color:var(--es-teal)!important;text-underline-offset:3px}
body.single-trip .es-bp-shell a:hover{text-decoration-thickness:1px!important}

/* Tour title: strong but not oversized. */
body.single-trip .es-bp-top-title,
body.single-trip .es-bp-title-row{
  width:min(1280px,calc(100% - 56px));
}
body.single-trip .es-bp-top-title h1,
body.single-trip .es-bp-title-row h1{
  font-size:clamp(34px,3vw,44px)!important;
  line-height:1.14!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
  color:#132b36!important;
}
body.single-trip .es-bp-review-summary{
  margin-top:10px!important;
  color:#6a7b83!important;
  font-size:15.5px!important;
  line-height:1.5!important;
  font-weight:500!important;
}
body.single-trip .es-bp-title-price strong,
body.single-trip .es-bp-nav-price strong{
  color:var(--es-wine)!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}
body.single-trip .es-bp-title-price strong{font-size:30px!important}
body.single-trip .es-bp-title-price strong small{font-size:13px!important;color:var(--es-wine)!important}

/* ---------- Facts + booking card ---------- */
body.single-trip .es-bp-summary-grid{
  grid-template-columns:minmax(0,1fr) 400px!important;
  gap:36px!important;
  align-items:start!important;
  margin:0 0 34px!important;
}
body.single-trip .es-bp-meta-grid{
  column-gap:48px!important;
  row-gap:18px!important;
  padding:4px 0!important;
}
body.single-trip .es-bp-meta-grid .es-bp-info-row{
  grid-template-columns:24px minmax(0,1fr)!important;
  column-gap:12px!important;
  padding:3px 0!important;
  font-size:16px!important;
  line-height:1.52!important;
}
body.single-trip .es-bp-meta-grid .es-bp-info-icon{
  width:24px!important;height:24px!important;color:var(--es-red)!important
}
body.single-trip .es-bp-meta-grid .es-bp-info-icon svg{
  width:22px!important;height:22px!important;stroke-width:1.75!important
}
body.single-trip .es-bp-meta-grid .es-bp-info-body,
body.single-trip .es-bp-meta-grid .es-bp-info-body span,
body.single-trip .es-bp-meta-grid .es-bp-info-body a{
  font-size:16px!important;
  line-height:1.52!important;
}
body.single-trip .es-bp-meta-grid .es-bp-info-body strong{
  color:#18313c!important;
  font-weight:750!important;
}
body.single-trip .es-bp-meta-grid .es-bp-info-body a{font-weight:650!important}

body.single-trip .es-bp-booking-card{
  padding:24px 22px 20px!important;
  border:1px solid #e2e8ea!important;
  border-radius:16px!important;
  box-shadow:0 12px 32px rgba(24,46,57,.08)!important;
}
body.single-trip .es-bp-booking-card .es-bp-info-row{
  font-size:15.5px!important;
  line-height:1.5!important;
}
body.single-trip .es-bp-booking-card .es-bp-info-body strong{font-weight:750!important;color:#18313c!important}
body.single-trip .es-bp-booking-card .es-bp-info-body span,
body.single-trip .es-bp-booking-card .es-bp-info-body a{font-size:15.5px!important;line-height:1.5!important}
body.single-trip .es-bp-booking-card .es-bp-booking-facts{gap:13px!important}
body.single-trip .es-bp-duration-badge{
  border-color:rgba(237,28,36,.26)!important;
  border-radius:12px!important;
  box-shadow:0 4px 14px rgba(34,49,57,.04)!important;
}
body.single-trip .es-bp-duration-badge__head{font-size:8.5px!important;letter-spacing:.1em!important}
body.single-trip .es-bp-duration-badge__number{font-size:35px!important;font-weight:800!important;color:#17313c!important}
body.single-trip .es-bp-duration-badge__unit{font-size:9.5px!important;letter-spacing:.09em!important}
body.single-trip .es-bp-quote{
  margin:22px 0 18px!important;
  padding-top:17px!important;
  color:#65757d!important;
  font-size:13px!important;
  line-height:1.5!important;
}
body.single-trip .es-bp-book-now,
body.single-trip .es-bp-nav-book{
  font-family:var(--es-font-sans)!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
}
body.single-trip .es-bp-book-now{height:54px!important;font-size:16.5px!important;border-radius:6px!important}
body.single-trip .es-bp-wishlist{width:54px!important;height:54px!important;flex-basis:54px!important}

/* ---------- Sticky nav ---------- */
body.single-trip .es-bp-nav-wrap{
  min-height:60px!important;
  margin-bottom:36px!important;
  box-shadow:0 6px 18px rgba(28,46,55,.05)!important;
}
body.single-trip .es-bp-nav-link{
  padding:0 18px!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:600!important;
  letter-spacing:-.01em!important;
}
body.single-trip .es-bp-nav-link.is-active{font-weight:750!important}
body.single-trip .es-bp-nav-price{font-size:13px!important}
body.single-trip .es-bp-nav-price strong{font-size:22px!important}
body.single-trip .es-bp-nav-book{height:43px!important;min-width:118px!important;font-size:14.5px!important;border-radius:6px!important}

/* ---------- Highlights ---------- */
body.single-trip .es-bp-highlight-strip{
  margin:0 calc(50% - 50vw) 54px!important;
  padding:34px max(28px,calc((100vw - 1280px)/2))!important;
}
body.single-trip .es-bp-highlight-inner{
  grid-template-columns:340px minmax(0,1fr)!important;
  gap:42px!important;
  max-width:1210px!important;
}
body.single-trip .es-bp-highlight-inner h2{
  font-size:24px!important;
  line-height:1.3!important;
  font-weight:750!important;
  letter-spacing:-.025em!important;
}
body.single-trip .es-bp-highlight-inner ul{gap:13px!important}
body.single-trip .es-bp-highlight-inner li{
  gap:11px!important;
  font-size:16.5px!important;
  line-height:1.55!important;
  font-weight:500!important;
}

/* ---------- Article sections ---------- */
body.single-trip .es-bp-content{width:min(1080px,100%)!important}
body.single-trip .es-bp-section{
  margin:0 0 64px!important;
  padding:0 0 54px!important;
  border-bottom:1px solid var(--es-line)!important;
}
body.single-trip .es-bp-section-title{
  margin:0 0 24px!important;
  font-size:32px!important;
  line-height:1.22!important;
  font-weight:750!important;
  letter-spacing:-.03em!important;
  color:#142f3a!important;
}
body.single-trip .es-bp-section-body,
body.single-trip .es-bp-native-panel{
  color:#344954!important;
  font-size:17px!important;
  line-height:1.74!important;
}
body.single-trip .es-bp-section-body p,
body.single-trip .es-bp-native-panel p{margin:0 0 16px!important}
body.single-trip .es-bp-section-body ul,
body.single-trip .es-bp-section-body ol{margin-top:12px!important;margin-bottom:20px!important}
body.single-trip .es-bp-section-body li{font-size:17px!important;line-height:1.68!important}
body.single-trip .es-bp-section-body h3{font-size:22px!important;line-height:1.35!important;font-weight:750!important;letter-spacing:-.02em!important;margin:28px 0 14px!important}
body.single-trip .es-bp-section-body h4{font-size:19px!important;line-height:1.4!important;font-weight:750!important;margin:24px 0 12px!important}
body.single-trip .es-bp-section-body img{border-radius:8px!important}

/* Inclusions: clear two-column article cards. */
body.single-trip .es-bp-inclusion-grid,
body.single-trip .es-bp-demo-inclusion{
  gap:24px!important;
}
body.single-trip .es-bp-inclusion-card,
body.single-trip .es-bp-demo-inclusion>div{
  padding:26px 28px!important;
  border:1px solid #e1e7e9!important;
  border-radius:14px!important;
  box-shadow:0 4px 16px rgba(24,46,57,.025)!important;
}
body.single-trip .es-bp-inclusion-card h3,
body.single-trip .es-bp-demo-inclusion h3{
  margin:0 0 16px!important;
  font-size:20px!important;
  font-weight:750!important;
}
body.single-trip .es-bp-section--inclusion li,
body.single-trip .es-bp-demo-inclusion li{
  margin:10px 0!important;
  font-size:16.5px!important;
  line-height:1.6!important;
}

/* Reviews / Q&A: quieter borders, more readable copy. */
body.single-trip .es-bp-demo-reviews{gap:22px!important}
body.single-trip .es-bp-demo-reviews article{
  padding:26px!important;
  border-radius:14px!important;
  border-color:#e1e7e9!important;
  box-shadow:0 4px 16px rgba(24,46,57,.025)!important;
}
body.single-trip .es-bp-demo-reviews h3{font-size:19px!important;line-height:1.4!important;font-weight:750!important}
body.single-trip .es-bp-demo-reviews p{font-size:16.5px!important;line-height:1.68!important}
body.single-trip .es-bp-demo-reviews small{font-size:13px!important;color:#75828a!important}
body.single-trip .es-bp-demo-faq summary{font-size:16.5px!important;line-height:1.5!important;font-weight:750!important;padding-top:18px!important;padding-bottom:18px!important}
body.single-trip .es-bp-demo-faq p{font-size:16.5px!important;line-height:1.7!important}

/* ---------- Rebuilt itinerary ---------- */
body.single-trip .es-bp-itinerary-hard{
  width:min(1080px,calc(100% - 56px))!important;
  margin:48px auto 66px!important;
  font-family:var(--es-font-sans)!important;
  color:var(--es-copy)!important;
}
body.single-trip .es-bp-itinerary-hard>h2{
  margin:0 0 18px!important;
  font-size:32px!important;
  line-height:1.22!important;
  font-weight:750!important;
  letter-spacing:-.03em!important;
  color:#142f3a!important;
}
body.single-trip .es-bp-hard-intro{
  margin:0 0 22px!important;
  font-size:17px!important;
  line-height:1.72!important;
  color:#3b505a!important;
}
body.single-trip .es-bp-hard-head{
  min-height:56px!important;
  padding-top:11px!important;
  padding-bottom:11px!important;
}
body.single-trip .es-bp-hard-heading strong,
body.single-trip .es-bp-hard-heading span{
  font-size:16.5px!important;
  line-height:1.48!important;
  font-weight:750!important;
  letter-spacing:-.01em!important;
}
body.single-trip .es-bp-hard-day-body{
  padding-top:10px!important;
  padding-bottom:26px!important;
  font-size:17px!important;
  line-height:1.72!important;
  color:#344954!important;
}
body.single-trip .es-bp-hard-day-body p{margin:0 0 14px!important}
body.single-trip .es-bp-hard-day-body strong,
body.single-trip .es-bp-hard-day-body b{font-weight:750!important;color:#18313c!important}
body.single-trip .es-bp-hard-day-body img{border-radius:6px!important;margin-top:4px!important}
body.single-trip .es-bp-hard-caption{font-size:13.5px!important;line-height:1.5!important;color:#687982!important}
body.single-trip .es-bp-hard-notes{font-size:15.5px!important;line-height:1.6!important}

/* Planning expert CTA: premium, less shouty. */
body.single-trip .es-bp-hard-expert{
  margin-top:32px!important;
  padding:26px 28px!important;
  grid-template-columns:108px minmax(0,1fr) 230px!important;
  gap:26px!important;
  border-radius:10px!important;
  background:#fff1e8!important;
}
body.single-trip .es-bp-hard-expert__portrait{width:108px!important;height:108px!important}
body.single-trip .es-bp-hard-expert__portrait img,
body.single-trip .es-bp-hard-expert__fallback{width:104px!important;height:104px!important}
body.single-trip .es-bp-hard-expert__quote{font-size:19px!important;line-height:1.3!important;font-weight:750!important}
body.single-trip .es-bp-hard-expert__copy p{font-size:15.5px!important;line-height:1.55!important}
body.single-trip .es-bp-hard-expert__phone{font-size:16px!important}
body.single-trip .es-bp-hard-expert__cta{min-height:52px!important;font-size:15.5px!important;border-radius:6px!important}

/* ---------- WhatsApp booking modal ---------- */
body.single-trip .es-booking-modal{font-family:var(--es-font-sans)!important}
body.single-trip .es-booking-modal__dialog{
  width:min(690px,100%)!important;
  border-radius:18px!important;
  padding:32px 34px 30px!important;
}
body.single-trip .es-booking-modal__dialog h2{
  font-size:30px!important;
  line-height:1.18!important;
  font-weight:800!important;
  letter-spacing:-.03em!important;
}
body.single-trip .es-booking-subtitle{font-size:15.5px!important;line-height:1.58!important}
body.single-trip .es-form-field label{font-size:13px!important;font-weight:700!important}
body.single-trip .es-form-field input,
body.single-trip .es-form-field textarea{
  min-height:49px!important;
  font-size:15.5px!important;
  font-weight:500!important;
  border-radius:8px!important;
}
body.single-trip .es-booking-submit{min-height:54px!important;font-size:16px!important;border-radius:8px!important}

/* ---------- Archive/listing typography ---------- */
body.post-type-archive-trip,
body.tax-destination,
body.tax-activities,
body.tax-trip_types,
body.tax-difficulty,
body.tax-trip_tag{
  font-family:var(--es-font-sans)!important;
}
.category-list .category-trip-title,
.category-list .category-trip-title a,
.category-list h2,
.category-list h3{
  font-family:var(--es-font-sans)!important;
  letter-spacing:-.018em!important;
}
.category-list .category-trip-title a{font-weight:750!important}
.category-list p,.category-list li{line-height:1.6!important}

/* ---------- Responsive rhythm ---------- */
@media(max-width:1100px){
  body.single-trip .es-bp-summary-grid{grid-template-columns:minmax(0,1fr) 360px!important;gap:28px!important}
  body.single-trip .es-bp-meta-grid{column-gap:32px!important}
  body.single-trip .es-bp-highlight-inner{grid-template-columns:300px minmax(0,1fr)!important;gap:30px!important}
}
@media(max-width:860px){
  body.single-trip .es-bp-shell{width:calc(100% - 32px)!important}
  body.single-trip .es-bp-top-title,body.single-trip .es-bp-title-row{width:calc(100% - 32px)!important}
  body.single-trip .es-bp-summary-grid{grid-template-columns:1fr!important;gap:24px!important}
  body.single-trip .es-bp-meta-grid{grid-template-columns:1fr 1fr!important;column-gap:28px!important;row-gap:14px!important}
  body.single-trip .es-bp-highlight-inner{grid-template-columns:1fr!important;gap:18px!important}
  body.single-trip .es-bp-highlight-inner h2{font-size:22px!important}
  body.single-trip .es-bp-section-title{font-size:29px!important}
  body.single-trip .es-bp-hard-expert{grid-template-columns:94px minmax(0,1fr)!important;gap:20px!important}
  body.single-trip .es-bp-hard-expert__portrait{width:94px!important;height:94px!important}
  body.single-trip .es-bp-hard-expert__portrait img,body.single-trip .es-bp-hard-expert__fallback{width:90px!important;height:90px!important}
}
@media(max-width:640px){
  body.single-trip .es-bp-shell{width:calc(100% - 24px)!important;margin-bottom:64px!important}
  body.single-trip .es-bp-top-title,body.single-trip .es-bp-title-row{width:calc(100% - 24px)!important}
  body.single-trip .es-bp-top-title h1,body.single-trip .es-bp-title-row h1{font-size:31px!important;line-height:1.17!important}
  body.single-trip .es-bp-meta-grid{grid-template-columns:1fr!important;row-gap:12px!important}
  body.single-trip .es-bp-booking-card{padding:20px 16px 16px!important}
  body.single-trip .es-bp-nav-link{font-size:14px!important;padding:0 14px!important}
  body.single-trip .es-bp-nav-buy{display:none!important}
  body.single-trip .es-bp-highlight-strip{margin-bottom:42px!important;padding:26px 18px!important}
  body.single-trip .es-bp-highlight-inner li{font-size:16px!important}
  body.single-trip .es-bp-section{margin-bottom:48px!important;padding-bottom:42px!important}
  body.single-trip .es-bp-section-title{font-size:27px!important;margin-bottom:19px!important}
  body.single-trip .es-bp-section-body,body.single-trip .es-bp-native-panel{font-size:16px!important;line-height:1.7!important}
  body.single-trip .es-bp-section-body li{font-size:16px!important}
  body.single-trip .es-bp-itinerary-hard{width:calc(100% - 24px)!important;margin:38px auto 52px!important}
  body.single-trip .es-bp-itinerary-hard>h2{font-size:27px!important}
  body.single-trip .es-bp-hard-intro{font-size:16px!important;line-height:1.68!important}
  body.single-trip .es-bp-hard-heading strong,body.single-trip .es-bp-hard-heading span{font-size:15.5px!important}
  body.single-trip .es-bp-hard-day-body{font-size:16px!important;line-height:1.68!important}
  body.single-trip .es-bp-hard-expert{display:flex!important;flex-direction:column!important;align-items:flex-start!important;padding:21px 19px!important;gap:13px!important}
  body.single-trip .es-bp-hard-expert__quote{font-size:18px!important}
  body.single-trip .es-booking-modal__dialog{padding:26px 18px 23px!important;border-radius:16px!important}
  body.single-trip .es-booking-modal__dialog h2{font-size:25px!important}
}


/* v0.21.1 — make the expert CTA button red with white text for stronger visual consistency. */
body.single-trip .es-bp-hard-expert__cta{
  background:var(--es-bp-red,#ED1C24)!important;
  color:#fff!important;
  box-shadow:none!important;
}
body.single-trip .es-bp-hard-expert__cta:hover,
body.single-trip .es-bp-hard-expert__cta:focus{
  background:var(--es-bp-red-dark,#c8161d)!important;
  color:#fff!important;
}
