/* =========================================================
   ECOSAPA GLOBAL DESIGN SYSTEM v1.0.3
   SOURCE OF TRUTH: CURRENT CRUISE SINGLE-DETAIL DESIGN (READ-ONLY)
   ---------------------------------------------------------
   Applied to:
   - Home
   - Tour archive / taxonomy / single
   - Shared header / mega menu / footer on non-Cruise pages
   - Future EcoSapa components

   NEVER loaded on Cruise archive/detail pages.
   ========================================================= */

:root{
  /* Type */
  --eco-ds-font:Roboto,"Helvetica Neue",Arial,sans-serif;
  --eco-ds-h1:37px;
  --eco-ds-h2:29px;
  --eco-ds-h3:22px;
  --eco-ds-h4:18px;
  --eco-ds-card-title:21px;
  --eco-ds-body:16px;
  --eco-ds-support:14.5px;
  --eco-ds-small:12px;
  --eco-ds-button:15px;

  /* Cruise-derived soft dark palette */
  --eco-ds-heading:#2f3f4f;
  --eco-ds-strong:#34485a;
  --eco-ds-copy:#475467;
  --eco-ds-muted:#667085;
  --eco-ds-faint:#87929a;

  /* Link + commerce */
  --eco-ds-link:#075fbd;
  --eco-ds-link-line:transparent;
  --eco-ds-red:#ed1c24;
  --eco-ds-red-dark:#cf1520;
  --eco-ds-price:#b42318;
  --eco-ds-price-main:44px;
  --eco-ds-price-card:31px;
  --eco-ds-price-related:22px;
  --eco-ds-gold:#f4a300;
  --eco-ds-green:#067a6f;

  /* Surfaces */
  --eco-ds-border:#e4e7ec;
  --eco-ds-border-soft:#edf0f2;
  --eco-ds-soft:#fafafa;
  --eco-ds-white:#fff;
  --eco-ds-radius:14px;
  --eco-ds-radius-button:9px;
  --eco-ds-shadow:0 7px 22px rgba(16,24,40,.045);
  --eco-ds-shadow-hover:0 12px 30px rgba(16,24,40,.08);

  /* Layout */
  --eco-ds-container:1180px;
  --eco-ds-gutter:20px;
  --eco-ds-section:38px;
  --eco-ds-section-large:52px;
}

/* =========================================================
   1. ONE FONT EVERYWHERE
   ========================================================= */
body.ecosapa-global-ds,
body.ecosapa-global-ds button,
body.ecosapa-global-ds input,
body.ecosapa-global-ds select,
body.ecosapa-global-ds textarea,
body.ecosapa-global-ds label,
body.ecosapa-global-ds summary,
body.ecosapa-global-ds table,
body.ecosapa-global-ds th,
body.ecosapa-global-ds td,
body.ecosapa-global-ds a,
body.ecosapa-global-ds h1,
body.ecosapa-global-ds h2,
body.ecosapa-global-ds h3,
body.ecosapa-global-ds h4,
body.ecosapa-global-ds h5,
body.ecosapa-global-ds h6,
body.ecosapa-global-ds p,
body.ecosapa-global-ds li,
body.ecosapa-global-ds span,
body.ecosapa-global-ds small,
body.ecosapa-global-ds strong,
body.ecosapa-global-ds b{
  font-family:var(--eco-ds-font)!important;
}

body.ecosapa-global-ds{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-body)!important;
  line-height:1.64!important;
  font-weight:400!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* =========================================================
   2. GLOBAL READING HIERARCHY = CRUISE DETAIL
   Do not let each plugin invent its own H1/H2/H3 again.
   ========================================================= */
body.ecosapa-global-ds main h1,
body.ecosapa-global-ds .ecsd-page h1,
body.ecosapa-global-ds .es-bp-top-title h1,
body.ecosapa-global-ds .es-bp-title-row h1,
body.ecosapa-global-ds .hero-h1{
  color:var(--eco-ds-heading)!important;
  font-size:var(--eco-ds-h1)!important;
  line-height:1.16!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}

body.ecosapa-global-ds main h2,
body.ecosapa-global-ds .ecsd-section-title h2,
body.ecosapa-global-ds .es-bp-section-title,
body.ecosapa-global-ds .es-bp-itinerary-hard>h2,
body.ecosapa-global-ds .es-bp-highlight-inner h2,
body.ecosapa-global-ds .sec-title,
body.ecosapa-global-ds .eco-v21-heading h2,
body.ecosapa-global-ds .eco-v214-review-head h2,
body.ecosapa-global-ds .eco-v214-faq-head h2{
  color:var(--eco-ds-heading)!important;
  font-size:var(--eco-ds-h2)!important;
  line-height:1.25!important;
  font-weight:800!important;
  letter-spacing:-.018em!important;
}

body.ecosapa-global-ds main h3,
body.ecosapa-global-ds .ecsd-page h3,
body.ecosapa-global-ds .es-bp-section-body h3,
body.ecosapa-global-ds .es-bp-native-panel h3,
body.ecosapa-global-ds .eco-v21-tour-card h3,
body.ecosapa-global-ds .eco-v214-review-card h3{
  color:var(--eco-ds-heading)!important;
  font-size:var(--eco-ds-h3)!important;
  line-height:1.32!important;
  font-weight:800!important;
  letter-spacing:-.012em!important;
}

body.ecosapa-global-ds main h4,
body.ecosapa-global-ds .ecsd-page h4,
body.ecosapa-global-ds .es-bp-section-body h4,
body.ecosapa-global-ds .es-bp-native-panel h4{
  color:var(--eco-ds-heading)!important;
  font-size:var(--eco-ds-h4)!important;
  line-height:1.4!important;
  font-weight:700!important;
}

/* Body / supporting text */
body.ecosapa-global-ds main p,
body.ecosapa-global-ds main li,
body.ecosapa-global-ds .ecsd-page p,
body.ecosapa-global-ds .ecsd-page li,
body.ecosapa-global-ds .es-bp-section-body,
body.ecosapa-global-ds .es-bp-section-body p,
body.ecosapa-global-ds .es-bp-section-body li,
body.ecosapa-global-ds .es-bp-native-panel p,
body.ecosapa-global-ds .sec-sub,
body.ecosapa-global-ds .schedule-intro p{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-body)!important;
  line-height:1.64!important;
  font-weight:400!important;
}

/* Strong body copy only. Do not globally target every <strong>;
   price values are commonly bare <strong> elements inside price wrappers. */
body.ecosapa-global-ds .es-bp-info-body strong,
body.ecosapa-global-ds .es-bp-section-body strong,
body.ecosapa-global-ds .ecsd-about__copy strong,
body.ecosapa-global-ds .eco-v214-faq-answer strong{
  color:var(--eco-ds-strong)!important;
}

/* =========================================================
   3. LINKS = ACTUAL CRUISE INTERNAL-LINK LANGUAGE
   Cruise contextual links use #075fbd, no underline by default,
   and ~14–15px / 700 for contextual navigation links.
   Card/product titles remain charcoal, never link-blue.
   ========================================================= */

/* Contextual / destination / taxonomy / in-copy links only. */
body.ecosapa-global-ds .ecsd-internal-links a,
body.ecosapa-global-ds .es-bp-info-body a,
body.ecosapa-global-ds .es-bp-location a,
body.ecosapa-global-ds .es-bp-location-link,
body.ecosapa-global-ds .es-bp-route a,
body.ecosapa-global-ds .es-bp-taxonomy-links a,
body.ecosapa-global-ds .es-bp-place-links a,
body.ecosapa-global-ds .category-trip-desti a,
body.ecosapa-global-ds .estp-card__location a,
body.ecosapa-global-ds .estp-card__meta a,
body.ecosapa-global-ds .ecosapa-tour-location a,
body.ecosapa-global-ds .ecosapa-tour-meta a,
body.ecosapa-global-ds main p a:not(.button):not(.btn):not([class*="btn"]):not([class*="button"]):not([class*="cta"]),
body.ecosapa-global-ds main li a:not(.button):not(.btn):not([class*="btn"]):not([class*="button"]):not([class*="cta"]){
  color:var(--eco-ds-link)!important;
  font-size:14px!important;
  line-height:1.45!important;
  font-weight:700!important;
  text-decoration:none!important;
}

body.ecosapa-global-ds .ecsd-internal-links a:hover,
body.ecosapa-global-ds .es-bp-info-body a:hover,
body.ecosapa-global-ds .es-bp-location a:hover,
body.ecosapa-global-ds .es-bp-location-link:hover,
body.ecosapa-global-ds .es-bp-route a:hover,
body.ecosapa-global-ds .es-bp-taxonomy-links a:hover,
body.ecosapa-global-ds .es-bp-place-links a:hover,
body.ecosapa-global-ds .category-trip-desti a:hover,
body.ecosapa-global-ds .estp-card__location a:hover,
body.ecosapa-global-ds .estp-card__meta a:hover,
body.ecosapa-global-ds .ecosapa-tour-location a:hover,
body.ecosapa-global-ds .ecosapa-tour-meta a:hover,
body.ecosapa-global-ds main p a:not(.button):not(.btn):not([class*="btn"]):not([class*="button"]):not([class*="cta"]):hover,
body.ecosapa-global-ds main li a:not(.button):not(.btn):not([class*="btn"]):not([class*="button"]):not([class*="cta"]):hover{
  color:var(--eco-ds-link)!important;
  text-decoration:underline!important;
  text-underline-offset:3px!important;
}

/* Product/card headings copy Cruise cards: dark, no underline. */
body.ecosapa-global-ds .category-trip-title a,
body.ecosapa-global-ds .trip-title a,
body.ecosapa-global-ds .entry-title a,
body.ecosapa-global-ds .category-list h2 a,
body.ecosapa-global-ds .category-list h3 a,
body.ecosapa-global-ds .estp-card h2 a,
body.ecosapa-global-ds .estp-card h3 a,
body.ecosapa-global-ds .eco-v21-tour-card h3 a,
body.ecosapa-global-ds .ecsd-related-card h3 a{
  color:var(--eco-ds-heading)!important;
  text-decoration:none!important;
  font-weight:800!important;
}
body.ecosapa-global-ds .category-trip-title a:hover,
body.ecosapa-global-ds .trip-title a:hover,
body.ecosapa-global-ds .entry-title a:hover,
body.ecosapa-global-ds .category-list h2 a:hover,
body.ecosapa-global-ds .category-list h3 a:hover,
body.ecosapa-global-ds .estp-card h2 a:hover,
body.ecosapa-global-ds .estp-card h3 a:hover,
body.ecosapa-global-ds .eco-v21-tour-card h3 a:hover,
body.ecosapa-global-ds .ecsd-related-card h3 a:hover{
  color:var(--eco-ds-link)!important;
  text-decoration:none!important;
}

/* =========================================================
   4. PRICE SYSTEM = ACTUAL CRUISE COMMERCE LANGUAGE
   Deep red #b42318. Three explicit tiers prevent unrelated
   <strong> rules from turning prices black again.
   ========================================================= */

/* MAIN DETAIL PRICE — same hierarchy as Cruise booking panel. */
body.ecosapa-global-ds main .es-bp-price strong,
body.ecosapa-global-ds main .es-bp-booking-card [class*="price"] strong,
body.ecosapa-global-ds main .estp-price__main>strong,
body.ecosapa-global-ds main .ecosapa-tour-price-live{
  color:var(--eco-ds-price)!important;
  font-family:var(--eco-ds-font)!important;
  font-size:var(--eco-ds-price-main)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
}

/* LIST / SCHEDULE PRICE — Cruise cabin-card scale. */
body.ecosapa-global-ds.home main .trip-card .trip-price .vip-price-main strong,
body.ecosapa-global-ds.home main .trip-card-footer .vip-price-main strong,
body.ecosapa-global-ds main .category-trip-budget .actual-price,
body.ecosapa-global-ds main .category-trip-budget .trip-price,
body.ecosapa-global-ds main .category-trip-budget .wpte-trip-price,
body.ecosapa-global-ds main .category-trip-budget .price,
body.ecosapa-global-ds main .category-trip-budget .price-value,
body.ecosapa-global-ds main .category-trip-budget .price-figure,
body.ecosapa-global-ds main .category-trip-budget .amount,
body.ecosapa-global-ds main .category-trip-budget ins,
body.ecosapa-global-ds main .wpte-trip-price,
body.ecosapa-global-ds main .wpte-trip-price strong{
  color:var(--eco-ds-price)!important;
  font-family:var(--eco-ds-font)!important;
  font-size:var(--eco-ds-price-card)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}

/* RELATED / HOMEPAGE TOUR CARD — Cruise related-card scale. */
body.ecosapa-global-ds.home main .eco-v21-tour-card .eco-v21-price strong,
body.ecosapa-global-ds main .ecsd-related-card footer strong{
  color:var(--eco-ds-price)!important;
  font-family:var(--eco-ds-font)!important;
  font-size:var(--eco-ds-price-related)!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}

/* Currency marker follows Cruise red; suffix/from stays muted. */
body.ecosapa-global-ds main .category-trip-budget .currency,
body.ecosapa-global-ds main .category-trip-budget .currency-code,
body.ecosapa-global-ds main .estp-price__main>span,
body.ecosapa-global-ds main .ecosapa-tour-price-currency-live{
  color:var(--eco-ds-price)!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:800!important;
}

body.ecosapa-global-ds.home main .trip-card .vip-price-main span,
body.ecosapa-global-ds main .category-trip-budget .price-prefix,
body.ecosapa-global-ds main .category-trip-budget .from,
body.ecosapa-global-ds main .category-trip-budget .price-suffix,
body.ecosapa-global-ds main .estp-price__from,
body.ecosapa-global-ds main .estp-price__main>small,
body.ecosapa-global-ds main .ecosapa-tour-price-muted-live,
body.ecosapa-global-ds.home main .eco-v21-price small,
body.ecosapa-global-ds.home main .eco-v21-price span{
  color:var(--eco-ds-muted)!important;
  font-size:13px!important;
  line-height:1.35!important;
  font-weight:400!important;
}

/* =========================================================
   5. BUTTON SYSTEM = CRUISE DETAIL
   ========================================================= */
body.ecosapa-global-ds .ecsd-btn,
body.ecosapa-global-ds .ecsd-booking-search__submit,
body.ecosapa-global-ds .ecsd-bprate__book,
body.ecosapa-global-ds .ecsd-tripcard__cta,
body.ecosapa-global-ds .es-bp-book-now,
body.ecosapa-global-ds .es-bp-nav-book,
body.ecosapa-global-ds .wpte-button,
body.ecosapa-global-ds .btn-book,
body.ecosapa-global-ds .btn-form-submit,
body.ecosapa-global-ds .eco-v21-primary,
body.ecosapa-global-ds .eco-v21-tour-cta{
  min-height:48px!important;
  padding:13px 16px!important;
  border:0!important;
  border-radius:var(--eco-ds-radius-button)!important;
  background:var(--eco-ds-red)!important;
  color:#fff!important;
  font-family:var(--eco-ds-font)!important;
  font-size:var(--eco-ds-button)!important;
  line-height:1.2!important;
  font-weight:800!important;
  text-decoration:none!important;
  box-shadow:none!important;
}

body.ecosapa-global-ds .ecsd-btn:hover,
body.ecosapa-global-ds .ecsd-booking-search__submit:hover,
body.ecosapa-global-ds .ecsd-bprate__book:hover,
body.ecosapa-global-ds .ecsd-tripcard__cta:hover,
body.ecosapa-global-ds .es-bp-book-now:hover,
body.ecosapa-global-ds .es-bp-nav-book:hover,
body.ecosapa-global-ds .wpte-button:hover,
body.ecosapa-global-ds .btn-book:hover,
body.ecosapa-global-ds .btn-form-submit:hover,
body.ecosapa-global-ds .eco-v21-primary:hover,
body.ecosapa-global-ds .eco-v21-tour-cta:hover{
  background:var(--eco-ds-red-dark)!important;
  color:#fff!important;
}

/* Platform action remains platform-green. */
body.ecosapa-global-ds [class*="whatsapp"],
body.ecosapa-global-ds [class*="WhatsApp"],
body.ecosapa-global-ds .btn-wa-hero,
body.ecosapa-global-ds .eco-v21-wa,
body.ecosapa-global-ds .eco-mobile-guides{
  font-family:var(--eco-ds-font)!important;
}

/* =========================================================
   6. LAYOUT FOUNDATION = CRUISE DETAIL
   One width, border, card radius and spacing language.
   ========================================================= */
body.ecosapa-global-ds .ecsd-shell,
body.ecosapa-global-ds .es-bp-shell,
body.ecosapa-global-ds .page-wrap,
body.ecosapa-global-ds .eco-v21-wrap,
body.ecosapa-global-ds .eco-v214-faq-wrap,
body.ecosapa-global-ds .eco-v214-reviews .eco-v21-wrap{
  width:min(var(--eco-ds-container),calc(100% - 40px))!important;
  max-width:var(--eco-ds-container)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

body.ecosapa-global-ds .ecsd-cabin,
body.ecosapa-global-ds .ecsd-related-card,
body.ecosapa-global-ds .category-list .category-trip,
body.ecosapa-global-ds .category-list .category-trip-inner,
body.ecosapa-global-ds .estp-card,
body.ecosapa-global-ds .eco-v21-tour-card,
body.ecosapa-global-ds .eco-v214-review-card,
body.ecosapa-global-ds .eco-v214-faq-item{
  border:1px solid var(--eco-ds-border)!important;
  border-radius:var(--eco-ds-radius)!important;
  box-shadow:var(--eco-ds-shadow)!important;
}

body.ecosapa-global-ds .ecsd-cabin:hover,
body.ecosapa-global-ds .ecsd-related-card:hover,
body.ecosapa-global-ds .category-list .category-trip:hover,
body.ecosapa-global-ds .estp-card:hover,
body.ecosapa-global-ds .eco-v21-tour-card:hover,
body.ecosapa-global-ds .eco-v214-review-card:hover{
  box-shadow:var(--eco-ds-shadow-hover)!important;
}

/* Section title rhythm */
body.ecosapa-global-ds .ecsd-section-title,
body.ecosapa-global-ds .sec-head,
body.ecosapa-global-ds .eco-v21-heading,
body.ecosapa-global-ds .eco-v214-review-head,
body.ecosapa-global-ds .eco-v214-faq-head{
  margin-bottom:20px!important;
}

/* =========================================================
   7. TOUR: FORCE ONE CRUISE-DERIVED LANGUAGE
   This replaces the old Tour Typography Sync patchwork.
   ========================================================= */
body.ecosapa-global-ds .category-trip-title,
body.ecosapa-global-ds .category-trip-title a,
body.ecosapa-global-ds .category-list h2,
body.ecosapa-global-ds .category-list h2 a,
body.ecosapa-global-ds .category-list h3,
body.ecosapa-global-ds .category-list h3 a,
body.ecosapa-global-ds .trip-title,
body.ecosapa-global-ds .trip-title a,
body.ecosapa-global-ds .ecosapa-tour-title-live,
body.ecosapa-global-ds .ecosapa-tour-title-live a{
  color:var(--eco-ds-heading)!important;
  font-size:var(--eco-ds-card-title)!important;
  line-height:1.3!important;
  font-weight:800!important;
  letter-spacing:-.012em!important;
  text-decoration:none!important;
}

body.ecosapa-global-ds .category-trip-desti,
body.ecosapa-global-ds .estp-card__highlights li,
body.ecosapa-global-ds .es-card-highlights li{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-support)!important;
  line-height:1.5!important;
  font-weight:400!important;
}

body.ecosapa-global-ds .advanced-search-wrapper label,
body.ecosapa-global-ds .advanced-search-wrapper select,
body.ecosapa-global-ds .advanced-search-wrapper input,
body.ecosapa-global-ds .advanced-search-wrapper button{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-support)!important;
  line-height:1.45!important;
}

body.ecosapa-global-ds .es-bp-nav-link,
body.ecosapa-global-ds .ecsd-detail-tabs a{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-button)!important;
  line-height:1.3!important;
  font-weight:700!important;
}

body.ecosapa-global-ds .es-bp-nav-link.is-active,
body.ecosapa-global-ds .ecsd-detail-tabs a.is-active{
  color:var(--eco-ds-heading)!important;
  font-weight:800!important;
}

/* =========================================================
   8. HOME: STOP LOCAL COMPONENTS INVENTING NEW TYPE SCALES
   Content/layout modules remain, but type + commerce language is global.
   ========================================================= */
body.ecosapa-global-ds.home .hero-sub,
body.ecosapa-global-ds.home .schedule-intro p,
body.ecosapa-global-ds.home .vehicle-section .sec-sub,
body.ecosapa-global-ds.home .eco-v21-heading p,
body.ecosapa-global-ds.home .eco-v214-review-head p,
body.ecosapa-global-ds.home .eco-v214-faq-head p{
  color:var(--eco-ds-copy)!important;
  font-size:var(--eco-ds-body)!important;
  line-height:1.64!important;
  font-weight:400!important;
}

body.ecosapa-global-ds.home .eco-v214-faq-question{
  color:var(--eco-ds-strong)!important;
  font-size:16.5px!important;
  line-height:1.45!important;
  font-weight:700!important;
}
body.ecosapa-global-ds.home .eco-v214-faq-answer{
  color:var(--eco-ds-copy)!important;
  font-size:15.5px!important;
  line-height:1.65!important;
  font-weight:400!important;
}
body.ecosapa-global-ds.home .eco-v214-review-text{
  color:var(--eco-ds-copy)!important;
  font-size:15.5px!important;
  line-height:1.65!important;
  font-weight:400!important;
}
body.ecosapa-global-ds.home .eco-v214-review-author strong{
  color:var(--eco-ds-strong)!important;
  font-size:14px!important;
  font-weight:700!important;
}
body.ecosapa-global-ds.home .eco-v214-review-author span{
  color:var(--eco-ds-muted)!important;
  font-size:12px!important;
  font-weight:400!important;
}

/* =========================================================
   9. HEADER + FOOTER: SAME FONT / COLOR RHYTHM, LAYOUT UNTOUCHED
   ========================================================= */
body.ecosapa-global-ds header,
body.ecosapa-global-ds header *,
body.ecosapa-global-ds .sitenav,
body.ecosapa-global-ds .sitenav *,
body.ecosapa-global-ds .eco-mega-header,
body.ecosapa-global-ds .eco-mega-header *,
body.ecosapa-global-ds footer,
body.ecosapa-global-ds footer *{
  font-family:var(--eco-ds-font)!important;
}

body.ecosapa-global-ds header nav a,
body.ecosapa-global-ds .sitenav a,
body.ecosapa-global-ds .eco-mega-header a{
  font-size:15px!important;
  font-weight:600!important;
}

/* =========================================================
   10. FUTURE COMPONENT CONTRACT
   New plugins should use these classes or tokens instead of hard-coded type.
   ========================================================= */
.eco-ds-container{width:min(var(--eco-ds-container),calc(100% - 40px));margin-inline:auto}
.eco-ds-h1{font:800 var(--eco-ds-h1)/1.16 var(--eco-ds-font);color:var(--eco-ds-heading)}
.eco-ds-h2{font:800 var(--eco-ds-h2)/1.25 var(--eco-ds-font);color:var(--eco-ds-heading)}
.eco-ds-h3{font:800 var(--eco-ds-h3)/1.32 var(--eco-ds-font);color:var(--eco-ds-heading)}
.eco-ds-copy{font:400 var(--eco-ds-body)/1.64 var(--eco-ds-font);color:var(--eco-ds-copy)}
.eco-ds-link{color:var(--eco-ds-link);font-weight:700;text-decoration:none}
.eco-ds-price{color:var(--eco-ds-price);font:800 var(--eco-ds-price-card)/1 var(--eco-ds-font);letter-spacing:-.02em}
.eco-ds-card{border:1px solid var(--eco-ds-border);border-radius:var(--eco-ds-radius);background:#fff;box-shadow:var(--eco-ds-shadow)}
.eco-ds-btn{min-height:48px;padding:13px 16px;border:0;border-radius:var(--eco-ds-radius-button);background:var(--eco-ds-red);color:#fff;font:800 var(--eco-ds-button)/1.2 var(--eco-ds-font)}

/* =========================================================
   11. FINAL AUDITED OVERRIDES — HOME + TOUR ONLY
   These selectors intentionally carry more specificity than legacy
   Home/Tour !important rules. Cruise itself is never loaded here.
   ========================================================= */

/* Home schedule: legacy inline CSS previously painted $25 green/dark. */
body.home.ecosapa-global-ds #ecosapa-root main .schedule-section .trip-card-footer .trip-price .vip-price-main strong{
  color:#b42318!important;
  font-size:32px!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
}
body.home.ecosapa-global-ds #ecosapa-root main .schedule-section .trip-card-footer .trip-price .vip-price-main span{
  color:#667085!important;
  font-size:13px!important;
  font-weight:400!important;
}

/* Home featured tour: product title dark; only the small action link is blue. */
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-tour-card h3 a{
  color:#2f3f4f!important;
  text-decoration:none!important;
  font-weight:800!important;
}
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-tour-card h3 a:hover{
  color:#075fbd!important;
}
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-tour-card .eco-v21-tour-link,
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-heading .eco-v21-all,
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-planner .eco-v21-outline{
  color:#075fbd!important;
  font-size:13px!important;
  font-weight:700!important;
  text-decoration:none!important;
}
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-tour-card .eco-v21-tour-link:hover,
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-heading .eco-v21-all:hover{
  color:#101828!important;
  text-decoration:underline!important;
  text-underline-offset:3px!important;
}
body.home.ecosapa-global-ds #ecosapa-root main .eco-v21-tour-card .eco-v21-price strong{
  color:#b42318!important;
  font-size:22px!important;
  font-weight:800!important;
}

/* Tour cards/detail: location/taxonomy/context links = Cruise internal link. */
body.ecosapa-global-ds main .category-trip-desti a,
body.ecosapa-global-ds main .es-bp-location a,
body.ecosapa-global-ds main .es-bp-location-link,
body.ecosapa-global-ds main .es-bp-route a,
body.ecosapa-global-ds main .es-bp-taxonomy-links a,
body.ecosapa-global-ds main .es-bp-place-links a,
body.ecosapa-global-ds main .estp-card__location a,
body.ecosapa-global-ds main .estp-card__meta a{
  color:#075fbd!important;
  font-size:14px!important;
  font-weight:700!important;
  text-decoration:none!important;
}

/* Tour product headings stay dark, never Cruise-link blue. */
body.ecosapa-global-ds main .category-trip-title a,
body.ecosapa-global-ds main .category-list h2 a,
body.ecosapa-global-ds main .category-list h3 a,
body.ecosapa-global-ds main .trip-title a,
body.ecosapa-global-ds main .entry-title a,
body.ecosapa-global-ds main .estp-card h2 a,
body.ecosapa-global-ds main .estp-card h3 a{
  color:#2f3f4f!important;
  text-decoration:none!important;
}

/* Tour prices: defeat old title/strong rules. */
body.ecosapa-global-ds main .category-trip-budget :is(.actual-price,.trip-price,.wpte-trip-price,.price,.price-value,.price-figure,.amount),
body.ecosapa-global-ds main .category-trip-budget :is(.actual-price,.trip-price,.wpte-trip-price,.price,.price-value,.price-figure,.amount) strong,
body.ecosapa-global-ds main .estp-price__main>strong,
body.ecosapa-global-ds main .es-bp-price strong,
body.ecosapa-global-ds main .es-bp-booking-card [class*="price"] strong{
  color:#b42318!important;
  font-weight:800!important;
}

/* =========================================================
   MOBILE = SAME HIERARCHY, SLIGHTLY SMALLER (CRUISE RULE)
   ========================================================= */
@media(max-width:720px){
  :root{
    --eco-ds-h1:31px;
    --eco-ds-h2:25px;
    --eco-ds-h3:20px;
    --eco-ds-h4:17px;
    --eco-ds-card-title:20px;
    --eco-ds-body:15px;
    --eco-ds-support:14px;
    --eco-ds-button:14px;
    --eco-ds-gutter:12px;
  }

  body.ecosapa-global-ds .ecsd-shell,
  body.ecosapa-global-ds .es-bp-shell,
  body.ecosapa-global-ds .page-wrap,
  body.ecosapa-global-ds .eco-v21-wrap,
  body.ecosapa-global-ds .eco-v214-faq-wrap,
  body.ecosapa-global-ds .eco-v214-reviews .eco-v21-wrap{
    width:calc(100% - 24px)!important;
  }

  body.ecosapa-global-ds main .category-trip-budget .actual-price,
  body.ecosapa-global-ds main .category-trip-budget .trip-price,
  body.ecosapa-global-ds main .category-trip-budget .wpte-trip-price,
  body.ecosapa-global-ds.home main .trip-card .vip-price-main strong{
    font-size:29px!important;
  }
  body.ecosapa-global-ds.home main .eco-v21-tour-card .eco-v21-price strong{
    font-size:21px!important;
  }
}


/* =========================================================
   12. v1.0.3 — BANNER CONTRAST + SEO LOCATION LINK REPAIR
   ---------------------------------------------------------
   Surgical repair only. The global soft-dark reading palette must NEVER
   paint text dark when it sits on a photographic hero/banner.

   Reference internal-link blue sampled from the approved Cruise UI:
   #075fbd.
   ========================================================= */

/* HOME HERO: restore the original high-contrast colors over photography.
   Keep the current global font system; only repair the colors that the broad
   H1/body selectors were incorrectly overriding. */
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-h1,
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-h1 a{
  color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.30)!important;
}
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-h1 .h1-line2{
  color:#d7a84f!important;
  text-shadow:0 2px 24px rgba(215,168,79,.50)!important;
}
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-sub,
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-sub strong,
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-sub b{
  color:rgba(255,255,255,.88)!important;
  text-shadow:0 1px 8px rgba(0,0,0,.26)!important;
}
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-feat{
  color:rgba(255,255,255,.92)!important;
}
body.home.ecosapa-global-ds #ecosapa-root .hero-section .hero-badge{
  color:#f5d58a!important;
}

/* TOUR CATEGORY HERO: same rule — white text on image, not soft-dark text. */
body.ecosapa-global-ds .es-tour-hero .es-tour-hero__copy h1,
body.ecosapa-global-ds .es-tour-hero .es-tour-hero__copy h1 a{
  color:#fff!important;
  text-shadow:0 2px 12px rgba(0,0,0,.32)!important;
}
body.ecosapa-global-ds .es-tour-hero .es-tour-hero__copy p,
body.ecosapa-global-ds .es-tour-hero .es-tour-hero__copy p strong,
body.ecosapa-global-ds .es-tour-hero .es-tour-hero__copy p b{
  color:rgba(255,255,255,.92)!important;
  text-shadow:0 1px 8px rgba(0,0,0,.30)!important;
}
body.ecosapa-global-ds .es-tour-hero .es-hero-breadcrumb,
body.ecosapa-global-ds .es-tour-hero .es-hero-breadcrumb a,
body.ecosapa-global-ds .es-tour-hero .es-hero-breadcrumb span{
  color:rgba(255,255,255,.90)!important;
}

/* LOCATION / PLACE LINKS: exact Cruise-style blue. These selectors are
   intentionally specific so old Tour green/gray rules cannot win. */
body.ecosapa-global-ds main .estp-card__dest a,
body.ecosapa-global-ds main .category-trip-desti a,
body.ecosapa-global-ds main .trip-meta a,
body.ecosapa-global-ds main .trip-taxonomies a,
body.ecosapa-global-ds main .trip-destinations a,
body.ecosapa-global-ds main .es-bp-location a,
body.ecosapa-global-ds main .es-bp-location-link,
body.ecosapa-global-ds main .es-bp-route a,
body.ecosapa-global-ds main .es-bp-taxonomy-links a,
body.ecosapa-global-ds main .es-bp-place-links a{
  color:#075fbd!important;
  font-family:var(--eco-ds-font)!important;
  font-size:15.5px!important;
  line-height:1.5!important;
  font-weight:500!important;
  text-decoration:none!important;
  text-underline-offset:3px!important;
}
body.ecosapa-global-ds main .estp-card__dest a:hover,
body.ecosapa-global-ds main .estp-card__dest a:focus,
body.ecosapa-global-ds main .category-trip-desti a:hover,
body.ecosapa-global-ds main .trip-meta a:hover,
body.ecosapa-global-ds main .trip-taxonomies a:hover,
body.ecosapa-global-ds main .trip-destinations a:hover,
body.ecosapa-global-ds main .es-bp-location a:hover,
body.ecosapa-global-ds main .es-bp-location-link:hover,
body.ecosapa-global-ds main .es-bp-route a:hover,
body.ecosapa-global-ds main .es-bp-taxonomy-links a:hover,
body.ecosapa-global-ds main .es-bp-place-links a:hover{
  color:#075fbd!important;
  text-decoration:underline!important;
}

/* Single-tour facts use the slightly larger Cruise fact-link rhythm. */
body.ecosapa-global-ds main .es-server-facts a,
body.ecosapa-global-ds main .es-server-booking__meta a,
body.ecosapa-global-ds main .es-bp-meta-grid a,
body.ecosapa-global-ds main .es-bp-info-body a{
  color:#075fbd!important;
  font-family:var(--eco-ds-font)!important;
  font-size:17px!important;
  line-height:1.55!important;
  font-weight:400!important;
  text-decoration:none!important;
  text-underline-offset:3px!important;
}
body.ecosapa-global-ds main .es-server-facts a:hover,
body.ecosapa-global-ds main .es-server-booking__meta a:hover,
body.ecosapa-global-ds main .es-bp-meta-grid a:hover,
body.ecosapa-global-ds main .es-bp-info-body a:hover{
  color:#075fbd!important;
  text-decoration:underline!important;
}

/* A dedicated class for future manually-added SEO place links inside snippets.
   Example: <a class="eco-place-link" href="/guides/.../">Muong Hoa Valley</a> */
body.ecosapa-global-ds main a.eco-place-link{
  color:#075fbd!important;
  font-weight:500!important;
  text-decoration:none!important;
  text-underline-offset:3px!important;
}
body.ecosapa-global-ds main a.eco-place-link:hover,
body.ecosapa-global-ds main a.eco-place-link:focus{
  color:#075fbd!important;
  text-decoration:underline!important;
}

@media(max-width:720px){
  body.ecosapa-global-ds main .estp-card__dest a,
  body.ecosapa-global-ds main .category-trip-desti a,
  body.ecosapa-global-ds main .trip-meta a,
  body.ecosapa-global-ds main .trip-taxonomies a,
  body.ecosapa-global-ds main .trip-destinations a{
    font-size:14.5px!important;
  }
  body.ecosapa-global-ds main .es-server-facts a,
  body.ecosapa-global-ds main .es-server-booking__meta a,
  body.ecosapa-global-ds main .es-bp-meta-grid a,
  body.ecosapa-global-ds main .es-bp-info-body a{
    font-size:15.5px!important;
  }
}

/* =========================================================
   12. v1.0.4 — TOUR LONG-FORM TEXT EDGE ALIGNMENT ONLY
   Scope is deliberately narrow: single-tour reading paragraphs only.
   No cards, headings, buttons, prices, hero, filters, tabs, or Cruise pages.
   ========================================================= */
@media (min-width: 769px){
  body.ecosapa-global-ds main .es-bp-itinerary-hard p,
  body.ecosapa-global-ds main .es-bp-section-body p,
  body.ecosapa-global-ds main .es-bp-native-panel p,
  body.ecosapa-global-ds main .es-bp-info-body p{
    text-align:justify!important;
    text-justify:inter-word;
    hyphens:auto;
    -webkit-hyphens:auto;
  }
}


/* =========================================================
   13. v1.0.5 — SINGLE TOUR BREADCRUMB CLEANUP ONLY
   Keep EcoSapa's short destination breadcrumb (for example "Hanoi Tours")
   and suppress the duplicate long breadcrumb injected by the theme/SEO layer.
   Scope is single-trip only. Cruise, archives, cards, typography and content
   layout are intentionally untouched.
   ========================================================= */
body.single-trip.ecosapa-global-ds [class*="breadcrumb"]:not(.es-server-breadcrumb):not(.es-server-breadcrumb__sep):not(.es-hero-breadcrumb){
  display:none!important;
}

/* Pull only the intentional short breadcrumb/header block closer to the site header. */
body.single-trip.ecosapa-global-ds .es-server-trip__shell{
  margin-top:14px!important;
}
body.single-trip.ecosapa-global-ds .es-server-breadcrumb{
  margin-top:0!important;
  margin-bottom:8px!important;
}
