/* TLS editorial page system for the existing Focus Mission content library. */
body:not(.th-page) {
  --page-ink: #0D1B2A;
  --page-slate: #3A4A5A;
  --page-ivory: #FBF7F1;
  --page-sand: #BDAF9A;
  --page-coffee: #6B3E26;
  background: var(--page-ivory) !important;
  color: var(--page-ink) !important;
  font-family: 'DM Sans', Arial, sans-serif !important;
  line-height: 1.7;
}
body:not(.th-page) main, body:not(.th-page) .ftco-section, body:not(.th-page) section { background-color: var(--page-ivory); }
body:not(.th-page) p { color: var(--page-slate); }
body:not(.th-page) h1, body:not(.th-page) h2, body:not(.th-page) h3, body:not(.th-page) h4, body:not(.th-page) h5, body:not(.th-page) h6 { color: var(--page-ink); font-family: 'Cormorant Garamond', Georgia, serif !important; font-weight: 600; letter-spacing: -.035em; }
body:not(.th-page) a { color: var(--page-coffee); }
body:not(.th-page) a:hover { color: var(--page-slate); }

/* Page hero — turns each existing template hero into the TLS editorial entry. */
body:not(.th-page) .hero-wrap {
  position: relative;
  min-height: min(68vh, 680px) !important;
  margin: 0 !important;
  background-position: center !important;
  background-size: cover !important;
  isolation: isolate;
}
body:not(.th-page) .hero-wrap::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(13,27,42,.92), rgba(13,27,42,.56) 55%, rgba(13,27,42,.16)); content: ''; }
body:not(.th-page) .hero-wrap .overlay { display: none; }
body:not(.th-page) .hero-wrap .ftco-animate { opacity: 1 !important; transform: none !important; }
body:not(.th-page) .hero-wrap .slider-text { min-height: min(68vh, 680px) !important; align-items: flex-end !important; justify-content: flex-start !important; padding: 125px 0 106px !important; text-align: left !important; }
body:not(.th-page) .hero-wrap .slider-text > div { max-width: min(920px, 100%); padding: 0 28px; text-align: left !important; }
body:not(.th-page) .hero-wrap .breadcrumbs { margin: 0 0 21px !important; color: #BDAF9A !important; font: 700 10px/1.3 'DM Sans', Arial, sans-serif !important; letter-spacing: .18em; text-transform: uppercase; }
body:not(.th-page) .hero-wrap .breadcrumbs a { color: #FBF7F1 !important; }
body:not(.th-page) .hero-wrap h1.bread, body:not(.th-page) .hero-wrap .bread {
  max-width: 880px; margin: 0 !important; color: #FBF7F1 !important; font: 600 clamp(4rem, 9vw, 8.5rem)/.82 'Cormorant Garamond', Georgia, serif !important; letter-spacing: -.06em !important; text-transform: none !important;
}

/* Shared layout, section headings, controls and cards. */
body:not(.th-page) .container { width: min(1180px, calc(100% - 48px)); max-width: none; }
body:not(.th-page) .ftco-section, body:not(.th-page) .section-gap { padding: clamp(4.7rem, 8vw, 8rem) 0 !important; }
body:not(.th-page) .bg-light, body:not(.th-page) .bg-white { background: var(--page-ivory) !important; }
body:not(.th-page) .heading-section { margin-bottom: 3.5rem !important; }
body:not(.th-page) .heading-section .subheading, body:not(.th-page) .subheading {
  display: block; color: var(--page-coffee) !important; font: 700 10px/1.3 'DM Sans', Arial, sans-serif !important; letter-spacing: .18em; text-transform: uppercase;
}
body:not(.th-page) .heading-section h1, body:not(.th-page) .heading-section h2 { margin-top: .8rem !important; color: var(--page-ink) !important; font-size: clamp(3.25rem, 5.5vw, 5.8rem) !important; line-height: .9 !important; }
body:not(.th-page) .heading-section h1 strong, body:not(.th-page) .heading-section h2 strong { color: var(--page-coffee); font-weight: 500; font-style: italic; }
body:not(.th-page) .btn, body:not(.th-page) button[type='submit'], body:not(.th-page) .primary-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 47px; padding: 0 20px; border: 1px solid var(--page-ink) !important; border-radius: 0 !important; background: var(--page-ink) !important; color: var(--page-ivory) !important; box-shadow: none !important; font: 700 10px/1 'DM Sans', Arial, sans-serif !important; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; transition: .2s;
}
body:not(.th-page) .btn:hover, body:not(.th-page) button[type='submit']:hover, body:not(.th-page) .primary-btn:hover { border-color: var(--page-coffee) !important; background: var(--page-coffee) !important; }

/* Tour and catalogue cards. */
body:not(.th-page) .tour-package, body:not(.th-page) .package, body:not(.th-page) .destination-card, body:not(.th-page) .blog-entry {
  height: 100%; overflow: hidden; border: 1px solid rgba(189,175,154,.72) !important; border-radius: 0 !important; background: var(--page-ivory) !important; box-shadow: none !important; transition: transform .25s ease, box-shadow .25s ease;
}
body:not(.th-page) .tour-package:hover, body:not(.th-page) .package:hover, body:not(.th-page) .destination-card:hover { transform: translateY(-6px); box-shadow: 0 18px 32px rgba(13,27,42,.12) !important; }
body:not(.th-page) .tour-package .package-img { position: relative; overflow: hidden; }
body:not(.th-page) .tour-package .package-img img, body:not(.th-page) .package > img { width: 100%; height: 250px; object-fit: cover; }
body:not(.th-page) .tour-package .destination-badge { position: absolute; right: 0; bottom: 0; left: 0; padding: 11px 18px; background: rgba(13,27,42,.88); color: #FBF7F1; font: 700 9px/1.3 'DM Sans', Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
body:not(.th-page) .tour-package .package-info { display: flex; flex-direction: column; min-height: 260px; padding: 28px !important; }
body:not(.th-page) .tour-package h3 { margin: 0 0 10px; font-size: 31px; line-height: 1 !important; }
body:not(.th-page) .tour-package h3 a { color: var(--page-ink); text-decoration: none; }
body:not(.th-page) .tour-package .duration { margin-bottom: 12px; color: var(--page-coffee); font: 700 10px/1.3 'DM Sans', Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
body:not(.th-page) .tour-package .package-cta { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--page-sand); }

/* Every existing itinerary uses this component family. */
body:not(.th-page) .itinerary-section { padding: clamp(4.5rem, 8vw, 7.5rem) 0 !important; background: var(--page-ivory) !important; }
body:not(.th-page) .itinerary-description { display: grid !important; grid-template-columns: 1fr 1fr; gap: clamp(36px, 8vw, 110px); align-items: center; margin-bottom: clamp(4rem, 8vw, 8rem); }
body:not(.th-page) .itinerary-description h1 { margin: 0 0 25px; font-size: clamp(3.4rem, 5.5vw, 5.9rem); line-height: .9; }
body:not(.th-page) .itinerary-description h1::before { display: block; margin-bottom: 17px; color: var(--page-coffee); content: 'Private journey'; font: 700 10px/1.3 'DM Sans', Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
body:not(.th-page) .itinerary-description p { font-size: 16px; line-height: 1.9; }
body:not(.th-page) .description-image { position: relative; }
body:not(.th-page) .description-image::after { position: absolute; top: 22px; right: -22px; bottom: -22px; left: 22px; z-index: 0; border: 1px solid var(--page-sand); content: ''; }
body:not(.th-page) .description-image img { position: relative; z-index: 1; width: 100%; min-height: 470px; object-fit: cover; }
body:not(.th-page) .itinerary-content-wrapper { display: grid !important; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(34px, 7vw, 100px); align-items: start; }
body:not(.th-page) .itinerary-details { min-width: 0; }
body:not(.th-page) .itinerary-day { position: relative; padding: 0 0 35px 64px; border-bottom: 1px solid var(--page-sand); }
body:not(.th-page) .itinerary-day + .itinerary-day { padding-top: 35px; }
body:not(.th-page) .itinerary-day::before { position: absolute; top: 3px; left: 0; width: 35px; color: var(--page-coffee); content: '✦'; font-size: 18px; }
body:not(.th-page) .itinerary-day h3 { margin: 0 0 14px; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1; }
body:not(.th-page) .itinerary-day p { font-size: 15px; line-height: 1.85; }
body:not(.th-page) .itinerary-sidebar { position: sticky; top: 125px; overflow: hidden; border: 1px solid var(--page-sand); background: #FBF7F1; }
body:not(.th-page) .itinerary-sidebar > div { padding: 24px; border-bottom: 1px solid var(--page-sand); }
body:not(.th-page) .itinerary-sidebar > div:last-child { border-bottom: 0; background: var(--page-ink); }
body:not(.th-page) .itinerary-sidebar h3 { margin: 0 0 14px; font-size: 28px; line-height: 1; }
body:not(.th-page) .itinerary-sidebar .sidebar-form h3 { color: var(--page-ivory); }
body:not(.th-page) .itinerary-sidebar ul { margin: 0; padding: 0; list-style: none; }
body:not(.th-page) .itinerary-sidebar li { position: relative; padding: 6px 0 6px 18px; color: var(--page-slate); font-size: 13px; }
body:not(.th-page) .itinerary-sidebar li::before { position: absolute; left: 0; color: var(--page-coffee); content: '✦'; }

/* Forms and the original inline inquiry section. */
body:not(.th-page) form input, body:not(.th-page) form select, body:not(.th-page) form textarea {
  width: 100%; border: 1px solid var(--page-sand) !important; border-radius: 0 !important; background: var(--page-ivory) !important; color: var(--page-ink) !important; font-family: 'DM Sans', Arial, sans-serif !important;
}
body:not(.th-page) form label { color: var(--page-ivory); font: 700 9px/1.4 'DM Sans', Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
body:not(.th-page) .inquiry-form-section { background: var(--page-slate) !important; }
body:not(.th-page) .inquiry-form-section .section-title h2 { color: var(--page-ivory) !important; font-size: clamp(3rem, 5vw, 5.2rem) !important; }
body:not(.th-page) .inquiry-form-section .section-title p { color: rgba(251,247,241,.76) !important; }
body:not(.th-page) .inquiry-form-section .expert-card { border-radius: 0 !important; background: var(--page-ivory) !important; box-shadow: none !important; }

/* Typical About, contact, review and certificate content blocks. */
body:not(.th-page) #about-us, body:not(.th-page) .about-section, body:not(.th-page) .contact-section { padding: clamp(4.5rem, 8vw, 7.5rem) 0 !important; }
body:not(.th-page) #about-us img { border-radius: 0 !important; }
body:not(.th-page) #about-us h2 { font-size: clamp(3.4rem, 5vw, 5.6rem) !important; line-height: .9; }
body:not(.th-page) #about-us p { font-size: 16px !important; line-height: 1.9 !important; }
body:not(.th-page) iframe { filter: grayscale(1) contrast(.85); }
body:not(.th-page) .testimonial, body:not(.th-page) .review-card, body:not(.th-page) .license-card { border-radius: 0 !important; box-shadow: none !important; }

@media (max-width: 900px) {
  body:not(.th-page) .itinerary-description, body:not(.th-page) .itinerary-content-wrapper { grid-template-columns: 1fr; }
  body:not(.th-page) .description-image { max-width: 650px; }
  body:not(.th-page) .itinerary-sidebar { position: static; }
}
@media (max-width: 620px) {
  body:not(.th-page) .container { width: calc(100% - 34px); }
  body:not(.th-page) .hero-wrap, body:not(.th-page) .hero-wrap .slider-text { min-height: 580px !important; }
  body:not(.th-page) .hero-wrap .slider-text { padding: 115px 0 72px !important; }
  body:not(.th-page) .hero-wrap .slider-text > div { padding: 0; }
  body:not(.th-page) .hero-wrap h1.bread, body:not(.th-page) .hero-wrap .bread { font-size: clamp(4rem, 19vw, 6rem) !important; }
  body:not(.th-page) .itinerary-description h1, body:not(.th-page) .heading-section h2 { font-size: 3.55rem !important; }
  body:not(.th-page) .description-image img { min-height: 340px; }
  body:not(.th-page) .itinerary-day { padding-left: 42px; }
}

/* The legacy page theme applies an ivory background to every section. The
   shared footer uses semantic sections internally, so keep its own dark
   surface intact on every legacy page. */
body:not(.th-page) #footer-placeholder .rmf section { background: transparent !important; }
body:not(.th-page) #footer-placeholder .rmf .rmf__contact { background: rgba(251,247,241,.035) !important; }

/* FAQ cards use the generic legacy `.card { height:100% }` rule. In a
   two-column accordion that stretches every collapsed question to the height
   of its column. Keep FAQ items content-sized on every destination page. */
body:not(.th-page) #accordion .card {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
  margin-bottom: 16px !important;
  border: 1px solid #BDAF9A !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}
body:not(.th-page) #accordion .card-header { padding: 0 !important; border: 0 !important; background: #EEE6DA !important; }
body:not(.th-page) #accordion .card-link { display: flex !important; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px !important; color: #0D1B2A !important; font: 700 13px/1.45 'Merriweather', Georgia, serif !important; text-decoration: none !important; }
body:not(.th-page) #accordion .card-link span { flex: 0 0 auto; color: #6B3E26 !important; }
body:not(.th-page) #accordion .card-body { padding: 17px 18px 19px !important; background: #FBF7F1 !important; }
body:not(.th-page) #accordion .card-body p { margin: 0 !important; color: #3A4A5A !important; font-size: 13px !important; line-height: 1.75 !important; }
body:not(.th-page) #accordion .card-link .expanded { display: none; }
body:not(.th-page) #accordion .card-link[aria-expanded="true"] .collapsed { display: none; }
body:not(.th-page) #accordion .card-link[aria-expanded="true"] .expanded { display: inline; }

/* Legacy page rules colour every anchor coffee; lock the shared footer to its
   contrast-safe palette instead.  These rules deliberately live after the
   older page styles because the footer is injected on every page. */
body:not(.th-page) #footer-placeholder .rmf,
body:not(.th-page) #footer-placeholder .rmf p,
body:not(.th-page) #footer-placeholder .rmf li,
body:not(.th-page) #footer-placeholder .rmf span,
body:not(.th-page) #footer-placeholder .rmf h1,
body:not(.th-page) #footer-placeholder .rmf h2,
body:not(.th-page) #footer-placeholder .rmf h3,
body:not(.th-page) #footer-placeholder .rmf h4,
body:not(.th-page) #footer-placeholder .rmf h5,
body:not(.th-page) #footer-placeholder .rmf h6 { color: #FBF7F1 !important; }
body:not(.th-page) #footer-placeholder .rmf .rmf__signature,
body:not(.th-page) #footer-placeholder .rmf .rmf__eyebrow,
body:not(.th-page) #footer-placeholder .rmf .rmf__links h3,
body:not(.th-page) #footer-placeholder .rmf .rmf__extensions h3,
body:not(.th-page) #footer-placeholder .rmf .rmf__contact-cta,
body:not(.th-page) #footer-placeholder .rmf .rmf__bottom nav a,
body:not(.th-page) #footer-placeholder .rmf .rmf__social a,
body:not(.th-page) #footer-placeholder .rmf .rmf__contact-list > div,
body:not(.th-page) #footer-placeholder .rmf .rmf__assurances i { color: #BDAF9A !important; }
body:not(.th-page) #footer-placeholder .rmf .rmf__brand-copy,
body:not(.th-page) #footer-placeholder .rmf .rmf__assurances span,
body:not(.th-page) #footer-placeholder .rmf .rmf__contact > p:not(.rmf__eyebrow),
body:not(.th-page) #footer-placeholder .rmf .rmf__contact-list small,
body:not(.th-page) #footer-placeholder .rmf .rmf__bottom { color: rgba(251,247,241,.72) !important; }
body:not(.th-page) #footer-placeholder .rmf a,
body:not(.th-page) #footer-placeholder .rmf .rmf__links a,
body:not(.th-page) #footer-placeholder .rmf .rmf__extensions a,
body:not(.th-page) #footer-placeholder .rmf .rmf__contact-list a,
body:not(.th-page) #footer-placeholder .rmf .rmf__bottom p a { color: #FBF7F1 !important; }
body:not(.th-page) #footer-placeholder .rmf a:hover,
body:not(.th-page) #footer-placeholder .rmf a:focus-visible { color: #BDAF9A !important; }

/* Itinerary inquiry forms — one colour system for every sidebar form. */
body:not(.th-page) .itinerary-sidebar .sidebar-form {
  padding: 25px !important;
  background: #3A4A5A !important;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form > h3 {
  margin: 0 0 17px !important;
  color: #FBF7F1 !important;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form .inquiry-form {
  margin: 0;
  padding: 22px !important;
  border: 1px solid rgba(189,175,154,.7) !important;
  border-radius: 0 !important;
  background: #FBF7F1 !important;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form .form-group { margin: 0 0 16px; }
body:not(.th-page) .itinerary-sidebar .sidebar-form .form-group:last-of-type { margin-bottom: 20px; }
body:not(.th-page) .itinerary-sidebar .sidebar-form label {
  display: block;
  margin: 0 0 7px;
  color: #0D1B2A !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .11em;
  line-height: 1.3;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form input,
body:not(.th-page) .itinerary-sidebar .sidebar-form select,
body:not(.th-page) .itinerary-sidebar .sidebar-form textarea {
  min-height: 43px;
  padding: 10px 12px !important;
  border: 1px solid #BDAF9A !important;
  border-radius: 0 !important;
  background: #fffdf9 !important;
  color: #0D1B2A !important;
  box-shadow: none !important;
  color-scheme: light;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form textarea { min-height: 112px; }
body:not(.th-page) .itinerary-sidebar .sidebar-form input:focus,
body:not(.th-page) .itinerary-sidebar .sidebar-form select:focus,
body:not(.th-page) .itinerary-sidebar .sidebar-form textarea:focus {
  border-color: #6B3E26 !important;
  outline: 2px solid rgba(107,62,38,.18);
  outline-offset: 1px;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form .submit-btn,
body:not(.th-page) .itinerary-sidebar .sidebar-form button[type='submit'] {
  min-height: 46px;
  border: 1px solid #6B3E26 !important;
  border-radius: 0 !important;
  background: #6B3E26 !important;
  color: #FBF7F1 !important;
  font-size: 10px !important;
  letter-spacing: .13em;
}
body:not(.th-page) .itinerary-sidebar .sidebar-form .submit-btn:hover,
body:not(.th-page) .itinerary-sidebar .sidebar-form button[type='submit']:hover {
  border-color: #0D1B2A !important;
  background: #0D1B2A !important;
  color: #FBF7F1 !important;
}
