/* Kenya Tanzania Safari theme.css
   Merged design system from the approved static prototype.
   Selectors de-duplicated across pages; first occurrence wins. */

/* Superseded (Sep 2026) — see "The New Elegance" block below, which is now
   what --font-head points to. Left in place, unused, rather than deleted:
   an @font-face nobody references costs nothing at runtime (browsers only
   fetch a font on first actual use), and this makes a rollback a one-line
   change to --font-head instead of restoring deleted code. */
@font-face{
  font-family:'Elegant';
  src:url('../fonts/elegant.woff2') format('woff2'),
      url('../fonts/elegant.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

/* Director-supplied display serif, round two (Sep 2026 feedback round):
   "The New Elegance", replacing "Elegant" for every heading/title/display
   use sitewide. Self-hosted from assets/fonts/, woff2 first with the
   supplied .otf as the fallback src, same pattern as the font it replaces.
   This purchase includes a genuine drawn Italic and a separate Condensed
   width (with its own Italic), which the previous font didn't have —
   that fixes the ~4 rules flagged in the note above the old block, which
   were rendering the browser's synthetic (faux) oblique for font-style:
   italic. Those rules need no changes themselves; declaring the italic
   face below under the same font-family name is enough for the browser
   to pick it automatically wherever font-style:italic is already set.
   Only a Regular weight was supplied for each width (no Bold), so the
   two rules on the site that ask for font-weight:600 on the heading font
   (.foot-cred b and the itinerary-card day label) still fall back to a
   synthetic bold, same limitation as before, just carried forward.
   The Condensed width is registered as --font-head-condensed but not
   applied anywhere yet, since this round only asked for headings and
   titles — worth considering for the large brass numerals and stat
   counters (.value-numeral, .stat-item .s-num, .day-marker .d-num,
   .kts-exp-counter__current) if a tighter, more graphic number treatment
   is wanted there later. */
@font-face{
  font-family:'TheNewElegance';
  src:url('../fonts/thenewelegance-regular.woff2') format('woff2'),
      url('../fonts/thenewelegance-regular.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'TheNewElegance';
  src:url('../fonts/thenewelegance-italic.woff2') format('woff2'),
      url('../fonts/thenewelegance-italic.otf') format('opentype');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'TheNewElegance Condensed';
  src:url('../fonts/thenewelegance-condensed.woff2') format('woff2'),
      url('../fonts/thenewelegance-condensed.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'TheNewElegance Condensed';
  src:url('../fonts/thenewelegance-condita.woff2') format('woff2'),
      url('../fonts/thenewelegance-condita.otf') format('opentype');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}

:root{
    --navy-deep:#0d1b2a;
    --navy:#1b263b;
    --slate:#415a77;
    --dust:#778da9;
    --ivory:#e0e1dd;
    --white:#f6f3ec;
    --brass:#a6832b;
    --brass-dim:#a6832b55;
    --ink-soft:#333c46;
    --radius:4px;
    --maxw:1300px;
    --font-body:'Hanken Grotesk',sans-serif;
    /* Director-supplied display serif, round two (Sep 2026), replacing
       "Elegant" for every heading/title/display use sitewide — see "The
       New Elegance" @font-face blocks above :root for the full migration
       note. Georgia is a genuine fallback (widely installed, similarly
       high-contrast serif) rather than the bare 'serif' keyword, in case
       the self-hosted file is ever slow or fails to load. */
    --font-head:'TheNewElegance',Georgia,'Times New Roman',serif;
    /* Condensed companion width from the same purchase, registered but not
       yet applied to any selector — see the migration note above for
       where it might make sense (large brass numerals, stat counters). */
    --font-head-condensed:'TheNewElegance Condensed',Georgia,'Times New Roman',serif;
    /* Seasonal Guide wheel (Experience Hub) — kept as named vars rather than
       hardcoded hex so the inline SVG (template-parts/experience/section-
       seasonal-guide.php) and the legend swatches below both read from one
       source of truth. Muted, not saturated, to stay inside the Deep Sea
       palette rather than reading as a bright infographic. */
    --eh-seas-red:#b3452f;
    --eh-seas-green:#4f7a5c;
    --eh-seas-cream:#e6c979;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
    font-family:var(--font-body);
    font-size:15px;
    color:var(--ink-soft);
    background:var(--white);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--font-head);font-weight:400;line-height:1.15;color:var(--navy-deep);}
p{color:var(--ink-soft);}
a{color:var(--brass);text-decoration:underline;text-decoration-style:dotted;text-decoration-color:var(--brass);text-underline-offset:3px;}
a:hover{text-decoration-style:solid;}
/* Navigational chrome and whole-card links style their own color and
   shouldn't pick up the prose-link underline above — the underline is an
   inline-text convention, not something a card, button, or menu item wants.
   Scoped to header/footer/subnav (which contain only UI links) plus the
   specific card/CTA components used in page content. */
header a,footer a,.subnav-links a,.breadcrumb a,.hero-breadcrumb a,
.package-card,.dest-card,.park-card,.pillar-card,.guide-card,.guide-featured,
.accommodation-link,.month-more,.kts-exp-panel__cta,.guide-cat-tabs a{
  text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{
    font-size:12px;letter-spacing:2.5px;text-transform:uppercase;
    color:var(--brass);font-weight:600;display:block;margin-bottom:14px;}
.eyebrow.on-dark{color:#e6c979;}
.btn{
    display:inline-flex;align-items:center;gap:8px;
    font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
    padding:14px 28px;border-radius:2px;border:1px solid var(--navy-deep);
    color:var(--navy-deep);transition:background .25s ease, color .25s ease;}
.btn:hover{background:var(--navy-deep);color:var(--ivory);}
.btn.ghost-light{border-color:var(--ivory);color:var(--ivory);}
.btn.ghost-light:hover{background:var(--ivory);color:var(--navy-deep);}
.btn.filled{background:var(--navy-deep);color:var(--ivory);}
.btn.filled:hover{background:var(--navy);}
/* ════════════════════════════════════════════════════════
   HEADER — "Centred monogram" (v1.12.0)
   Approved concept 1 (KTS Header Concepts canvas). Image-free.
   Split nav either side of a centred logo; text-only panels; transparent
   over a photo hero, solid ivory otherwise. See header.php for structure.
   ════════════════════════════════════════════════════════ */
:root{
  --hdr-h:96px;          /* desktop bar height */
  --hdr-h-compact:72px;  /* after scrolling */
  --hdr-now:var(--hdr-h);
  --hdr-brass-ink:#7a5c16; /* brass darkened for text on ivory (contrast) */
  --hdr-brass-light:#c2a35b; /* brass lifted for text on navy/photo */
  --hdr-rule:rgba(13,27,42,0.12);
}
html.hdr-compact{--hdr-now:var(--hdr-h-compact);}
@media (max-width:1100px){
  :root{--hdr-h:72px;--hdr-h-compact:72px;}
}

/* Logo + wordmark (shared base classes kept for footer.php) */
.logo{font-family:var(--font-head);font-size:21px;letter-spacing:1px;color:var(--ivory);}
.custom-logo-wrap{display:flex;align-items:center;height:100%;}
.custom-logo-wrap .custom-logo-link{display:block;}
.custom-logo-wrap img.custom-logo{max-height:56px;width:auto;display:block;}
.logo span{color:var(--brass);}

body{padding-top:var(--hdr-h);}
body.has-hero-header{padding-top:0;}

.site-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:var(--white);color:var(--navy-deep);
  border-bottom:1px solid rgba(122,92,22,0.3);
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
/* WordPress admin bar: keep the fixed header below it for logged-in users
   (previously the header slid under the bar and clipped the logo). */
.admin-bar .site-header{top:32px;}
@media (max-width:782px){ .admin-bar .site-header{top:46px;} }
@media (max-width:600px){ .admin-bar .site-header{top:0;} } /* WP un-fixes its bar here */

/* Over a photo hero: transparent with ivory type, until scrolled or a panel opens. */
.site-header.has-hero:not(.is-scrolled):not(.is-open){
  background:transparent;color:#ece9e1;border-bottom-color:rgba(236,233,225,0.16);
}

.hdr-bar{
  height:var(--hdr-now);
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:32px;
  transition:height .35s ease;
}
.hdr-nav ul{list-style:none;display:flex;align-items:center;gap:40px;margin:0;padding:0;}
.hdr-nav--right ul{gap:36px;}
.hdr-right{display:flex;align-items:center;justify-content:flex-end;gap:36px;}

.hdr-trigger{
  background:none;border:0;border-bottom:1px solid transparent;cursor:pointer;color:inherit;
  font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  padding:10px 0;transition:border-color .25s ease, opacity .25s ease;
}
.hdr-trigger:hover{opacity:.7;}
.hdr-trigger[aria-expanded="true"]{border-bottom-color:var(--hdr-brass-ink);opacity:1;}
.site-header.has-hero:not(.is-scrolled):not(.is-open) .hdr-trigger[aria-expanded="true"]{border-bottom-color:var(--hdr-brass-light);}

.hdr-logo{display:flex;align-items:center;justify-content:center;color:inherit;text-decoration:none;}
.hdr-logo-img{display:block;width:auto;max-height:58px;transition:max-height .35s ease;}
html.hdr-compact .hdr-logo-img{max-height:46px;}
/* Dark logo (optional Site Settings field) swaps in whenever the header is ivory. */
.hdr-logo-img--dark{display:none;}
.site-header.has-dark-logo .hdr-logo-img--light{display:none;}
.site-header.has-dark-logo .hdr-logo-img--dark{display:block;}
.site-header.has-dark-logo.has-hero:not(.is-scrolled):not(.is-open) .hdr-logo-img--light{display:block;}
.site-header.has-dark-logo.has-hero:not(.is-scrolled):not(.is-open) .hdr-logo-img--dark{display:none;}
/* Text wordmark fallback (no custom logo set). */
.hdr-wordmark{display:flex;flex-direction:column;align-items:center;gap:6px;line-height:1;}
.hdr-wordmark-main{font-family:var(--font-head);font-size:22px;letter-spacing:.2em;text-transform:uppercase;}
.hdr-wordmark-sub{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.5em;text-transform:uppercase;color:var(--hdr-brass-ink);}
.hdr-wordmark-sub::before,.hdr-wordmark-sub::after{content:'';width:22px;height:1px;background:currentColor;}
.site-header.has-hero:not(.is-scrolled):not(.is-open) .hdr-wordmark-sub{color:var(--hdr-brass-light);}

/* v1.21.0: header CTA contrast. The mid brass (#a6832b) sat too close in
   value to both navy text and the photo/ivory behind it, so the button
   read flat. It now changes with the header state:
   - ivory bar: deep brass #7a5c16 with ivory text (5.6:1), a clearly
     darker block against the ivory bar;
   - transparent over a photo: champagne #c2a35b with navy text (7.2:1),
     a lighter block that lifts off a dark or warm photograph.
   Hover goes navy (ivory bar) or ivory (over a photo). */
.hdr-cta{
  display:inline-flex;align-items:center;padding:12px 22px;
  background:var(--hdr-brass-ink);border:1px solid var(--hdr-brass-ink);color:#f6f3ec;text-decoration:none;
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.hdr-cta:hover{background:var(--navy-deep);border-color:var(--navy-deep);color:#f6f3ec;}
.site-header.has-hero:not(.is-scrolled):not(.is-open) .hdr-cta{background:var(--hdr-brass-light);border-color:var(--hdr-brass-light);color:var(--navy-deep);}
.site-header.has-hero:not(.is-scrolled):not(.is-open) .hdr-cta:hover{background:#ece9e1;border-color:#ece9e1;color:var(--navy-deep);}

.hdr-menu-toggle{display:none;align-items:center;gap:12px;background:none;border:0;color:inherit;cursor:pointer;
  font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;padding:12px 0;min-height:44px;}
.hdr-burger{display:flex;flex-direction:column;gap:6px;width:26px;}
.hdr-burger span{display:block;height:1px;background:currentColor;}
.hdr-burger span:last-child{width:18px;}

.hdr-trigger:focus-visible,.hdr-cta:focus-visible,.hdr-logo:focus-visible,.hdr-menu-toggle:focus-visible,
.hdr-panel a:focus-visible,.hdr-overlay a:focus-visible,.hdr-overlay button:focus-visible,.hdr-overlay summary:focus-visible{
  outline:1px solid var(--brass);outline-offset:4px;
}

/* ---------- Panels (desktop) ---------- */
.hdr-backdrop{position:fixed;inset:0;z-index:59;background:rgba(13,27,42,0.45);opacity:0;transition:opacity .3s ease;}
.hdr-backdrop.is-visible{opacity:1;}
.hdr-panel{
  position:absolute;top:100%;left:0;right:0;
  background:var(--white);color:var(--navy-deep);
  border-top:1px solid var(--hdr-rule);border-bottom:1px solid rgba(122,92,22,0.3);
  padding:56px 0 64px;max-height:calc(100vh - var(--hdr-now) - 20px);overflow-y:auto;
  opacity:0;transform:translateY(-6px);transition:opacity .25s ease, transform .25s ease;
}
.hdr-panel.is-visible{opacity:1;transform:none;}
.hdr-panel-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:64px;}
.hdr-label{display:block;font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--hdr-brass-ink);margin-bottom:12px;}
.hdr-split{display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:64px;}
.hdr-countries{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.hdr-country{
  position:relative;display:block;padding:4px 0 4px 32px;font-family:var(--font-head);font-size:30px;line-height:1.15;
  color:#55606c;text-decoration:none;transition:color .25s ease;
}
.hdr-country::before{content:'';position:absolute;left:0;top:calc(4px + .6em);width:18px;height:1px;background:transparent;transition:background .25s ease;}
.hdr-country.is-active,.hdr-country:hover{color:var(--navy-deep);}
.hdr-country.is-active::before{background:var(--hdr-brass-ink);}
.hdr-detail{border-left:1px solid var(--hdr-rule);padding-left:64px;}
.hdr-detail-pane{display:none;}
.hdr-detail-pane.is-active{display:block;}
.hdr-rows{list-style:none;margin:0;padding:0;}
.hdr-rows--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;}
.hdr-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:14px 0;
  border-bottom:1px solid var(--hdr-rule);color:var(--navy-deep);text-decoration:none;transition:opacity .25s ease;
}
.hdr-row:hover{opacity:.62;}
.hdr-row-title{font-family:var(--font-head);font-size:20px;line-height:1.38;}
/* v1.20.0: Destinations (featured safaris) and Wildlife (parks) rows switch
   to the body font, 14px semi-bold. Scoped to .hdr-detail so the About
   panel rows keep the display serif. */
.hdr-detail .hdr-row-title{font-family:var(--font-body);font-size:14px;font-weight:600;line-height:1.5;}
.hdr-detail .hdr-row{align-items:center;}
.hdr-row-meta{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#55606c;white-space:nowrap;}
.hdr-more{
  display:inline-block;margin-top:22px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--navy-deep);text-decoration:none;border-bottom:1px solid var(--hdr-brass-ink);padding-bottom:3px;
}
.hdr-countries .hdr-more{margin-top:18px;margin-left:32px;}
.hdr-more:hover{color:var(--hdr-brass-ink);}
.hdr-empty{font-size:14px;color:#55606c;margin:6px 0 0;}
.hdr-styles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px;}
.hdr-style{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid var(--hdr-rule);color:var(--navy-deep);text-decoration:none;transition:opacity .25s ease;}
.hdr-style:hover{opacity:.62;}
.hdr-num{flex:0 0 28px;font-family:var(--font-head);font-size:13px;color:var(--hdr-brass-ink);}
.hdr-style-name{font-family:var(--font-head);font-size:24px;line-height:1.35;}
.hdr-about{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px;}
.hdr-planner{border-left:1px solid var(--hdr-rule);padding-left:40px;display:flex;flex-direction:column;align-items:flex-start;}
.hdr-planner-text{font-family:var(--font-head);font-style:italic;font-size:19px;line-height:1.5;color:var(--navy-deep);margin:0 0 18px;}
.hdr-planner-links{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.hdr-planner-links a{font-size:14px;color:#55606c;text-decoration:none;}
.hdr-planner-links a:hover{color:var(--navy-deep);text-decoration:underline;text-underline-offset:5px;}
.hdr-planner-cta{
  display:inline-block;padding:14px 26px;background:var(--navy-deep);color:var(--white);text-decoration:none;
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;transition:background .25s ease;
}
.hdr-planner-cta:hover{background:var(--navy);}
@media (max-width:1280px){
  .hdr-panel-grid{grid-template-columns:minmax(0,1fr) 260px;column-gap:48px;}
  .hdr-split{grid-template-columns:200px minmax(0,1fr);column-gap:48px;}
  .hdr-detail{padding-left:48px;}
}

/* ---------- Tablet / phone ---------- */
@media (max-width:1100px){
  .hdr-bar{grid-template-columns:auto 1fr;}
  .hdr-nav,.hdr-cta,.hdr-panel{display:none !important;}
  .hdr-logo{justify-content:flex-start;}
  .hdr-logo-img{max-height:44px;}
  .hdr-menu-toggle{display:inline-flex;}
}
@media (max-width:480px){ .hdr-menu-label{display:none;} }

.hdr-overlay{
  position:fixed;inset:0;z-index:90;background:var(--navy-deep);color:#ece9e1;
  display:flex;flex-direction:column;opacity:0;transition:opacity .3s ease;
}
.hdr-overlay[hidden]{display:none;}
.hdr-overlay.is-visible{opacity:1;}
.admin-bar .hdr-overlay{top:46px;}
@media (min-width:783px){ .admin-bar .hdr-overlay{top:32px;} }
@media (max-width:600px){ .admin-bar .hdr-overlay{top:0;} }
.hdr-overlay-head{flex-shrink:0;height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(236,233,225,0.12);}
.hdr-overlay-logo{font-family:var(--font-head);font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:#ece9e1;text-decoration:none;}
.hdr-overlay-logo span{color:var(--hdr-brass-light);}
.hdr-overlay-close{width:44px;height:44px;display:flex;align-items:center;justify-content:flex-end;background:none;border:0;color:inherit;cursor:pointer;}
.hdr-overlay-body{flex:1;overflow-y:auto;padding:12px 24px 24px;}
.hdr-acc{border-bottom:1px solid rgba(236,233,225,0.12);}
.hdr-acc summary,.hdr-acc-plain{
  display:flex;align-items:baseline;gap:16px;padding:16px 0;cursor:pointer;list-style:none;color:#ece9e1;text-decoration:none;
}
.hdr-acc-plain{border-bottom:1px solid rgba(236,233,225,0.12);}
.hdr-acc summary::-webkit-details-marker{display:none;}
.hdr-overlay .hdr-num{flex:0 0 26px;font-size:12px;color:var(--hdr-brass-light);}
.hdr-acc-title{flex:1;font-family:var(--font-head);font-size:30px;line-height:1.1;}
.hdr-acc-sign{position:relative;width:12px;height:12px;align-self:center;}
.hdr-acc-sign::before,.hdr-acc-sign::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--hdr-brass-light);transition:transform .25s ease;}
.hdr-acc-sign::after{transform:rotate(90deg);}
.hdr-acc[open] .hdr-acc-sign::after{transform:rotate(0deg);}
.hdr-acc-body{display:flex;flex-direction:column;padding:0 0 14px 42px;}
.hdr-acc-body a{padding:9px 0;font-size:15px;color:#c9d0d9;text-decoration:none;}
.hdr-acc-body a:hover{color:#ece9e1;}
.hdr-overlay-phone{display:inline-block;margin-top:22px;font-size:14px;letter-spacing:.08em;color:#c9d0d9;text-decoration:none;}
.hdr-overlay-foot{flex-shrink:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 24px 28px;border-top:1px solid rgba(236,233,225,0.12);}
.hdr-overlay-foot.is-single{grid-template-columns:1fr;}
.hdr-overlay-btn{
  height:50px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 12px;
  border:1px solid rgba(236,233,225,0.4);color:#ece9e1;text-decoration:none;
  font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
}
.hdr-overlay-btn--primary{background:var(--hdr-brass-light);border-color:var(--hdr-brass-light);color:var(--navy-deep);}
body.hdr-overlay-open{overflow:hidden;}

@media (prefers-reduced-motion: reduce){
  .site-header,.hdr-bar,.hdr-logo-img,.hdr-panel,.hdr-backdrop,.hdr-overlay{transition:none;}
}
/* ---------- HERO (dark section 1 of 2) ---------- */
  .hero{
    position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;
    background:var(--navy-deep);color:var(--ivory);overflow:hidden;}
.hero-bg{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    opacity:0.9;}
.hero::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(13,27,42,0) 0%, rgba(13,27,42,0.06) 45%, rgba(13,27,42,0.18) 72%, rgba(13,27,42,0.42) 100%);}
.hero-content{position:relative;z-index:2;padding-top:120px;padding-bottom:64px;width:100%;}
.hero-breadcrumb{font-size:12px;color:rgba(224,225,221,0.7);margin-bottom:20px;display:flex;align-items:center;flex-wrap:wrap;}
.hero-breadcrumb a{color:rgba(224,225,221,0.7);}
.hero-breadcrumb a:hover{color:var(--ivory);}
.hero-breadcrumb i{font-size:11px;margin:0 6px;opacity:.6;}
.hero-breadcrumb span{color:var(--ivory);}
.hero h1{color:var(--ivory);font-weight:400;font-size:clamp(34px,5.2vw,58px);max-width:720px;margin-bottom:22px;}
.hero p.lead{font-family:var(--font-body);font-size:18px;color:#c8d0da;max-width:480px;margin-bottom:34px;}

/* ---------- SAFARI SINGLE HERO — scoped overrides, doesn't affect other hero-bearing templates ---------- */
body.single-safari .hero::after{
    background-color:rgba(13,27,42,0.15);
    background-image:linear-gradient(180deg, rgba(13,27,42,0) 0%, rgba(13,27,42,0.06) 45%, rgba(13,27,42,0.18) 72%, rgba(13,27,42,0.42) 100%);}
body.single-safari .hero p.lead{font-size:15px;max-width:720px;}
/* Safari page title: 45px max (was the shared .hero h1 clamp up to 58px),
   scaling to 30px on tablets and 26–30px on phones. Balanced wrapping avoids
   a single orphaned word on long itinerary names. Scoped to single-safari
   so other interior heroes keep the shared size. */
/* max-width 900px (shared .hero h1 is 720px): lets long itinerary names such
   as "10 Days Masai Mara, Serengeti and Zanzibar Beach" (48 chars) and up to
   ~58 chars sit on 2 lines at 45px instead of 3. */
body.single-safari .hero h1{font-size:clamp(30px,3.8vw,45px);line-height:1.12;max-width:900px;text-wrap:balance;}
@media (max-width:640px){
  body.single-safari .hero h1{font-size:clamp(26px,7vw,30px);line-height:1.18;}
}

/* ---------- WHY KENYA TANZANIA HERO — scoped, same treatment as the safari hero above ---------- */
body.page-template-page-why-kenya-tanzania-safari-php .hero::after{
    background-color:rgba(13,27,42,0.15);
    background-image:linear-gradient(180deg, rgba(13,27,42,0) 0%, rgba(13,27,42,0.06) 45%, rgba(13,27,42,0.18) 72%, rgba(13,27,42,0.42) 100%);}

/* ---------- HOMEPAGE HERO — scoped overrides, doesn't affect interior page heroes ---------- */
/* Vertical stack, centered: years badge -> eyebrow -> title -> divider -> description -> button. */
.home-hero .hero-content{display:flex;flex-direction:column;align-items:center;text-align:center;}
/* Title: 45px max (was 64px), scaling down to 32px on tablets. text-wrap:balance
   splits the title into even lines ("Discover Unforgettable / Kenya and
   Tanzania Safaris") instead of a long line plus an orphan. Verified 2 lines
   from 641px up to 1920px with the current title; phones get 3 balanced lines. */
.home-hero h1{font-style:normal;margin:18px 0 0;font-size:clamp(32px,3.8vw,45px);line-height:1.12;max-width:820px;text-wrap:balance;}
.home-hero p.lead{font-size:15px;max-width:480px;margin:0 auto;}
.home-hero .hero-cta-btn{gap:0;flex:0 0 auto;white-space:nowrap;margin:28px auto 0;}

.home-hero-badge{
  flex:0 0 auto;max-width:200px;max-height:82px;width:auto;height:auto;
  object-fit:contain;object-position:center center;margin:0 auto;
}
.home-hero .eyebrow.on-dark{margin-top:16px;}
.home-hero-divider{
  width:100%;max-width:560px;height:1px;border:0;margin:26px auto 26px;
  background:linear-gradient(90deg, rgba(166,131,43,0) 0%, rgba(166,131,43,0.75) 50%, rgba(166,131,43,0) 100%);
}
.home-hero .hero-cta-icon{
  display:inline-block;width:0;opacity:0;overflow:hidden;vertical-align:middle;margin-left:0;
  transition:width .3s ease, opacity .3s ease, margin-left .3s ease;
}
.home-hero .hero-cta-btn:hover .hero-cta-icon{width:16px;opacity:1;margin-left:8px;}

@media (max-width:640px){
  .home-hero h1{font-size:clamp(24px,6.6vw,28px);line-height:1.2;max-width:100%;margin-top:14px;}
  .home-hero-badge{max-width:150px;max-height:60px;}
  .home-hero p.lead{max-width:100%;}
  .home-hero .hero-cta-btn{margin-top:20px;}

  /* Mobile hero height: 78svh (svh = stable against the collapsing address
     bar, so no jump/cut-off), floored at 520px for short phones and capped
     at 680px for tall ones. Leaves the top of the next section peeking in
     as a scroll hint (the scroll-cue chevron is hidden at this width). */
  /* padding:0 cancels the generic mobile section{padding:52px 0} rule, which
     was also hitting the hero and adding 104px on top of its own padding. */
  .home-hero{padding:0;min-height:520px;min-height:clamp(520px, 78svh, 680px);}
  /* Tighter stack so the content actually fits inside that height. 104px
     top padding still clears the 88px fixed header. */
  .home-hero .hero-content{padding-top:104px;padding-bottom:44px;}
  .home-hero-divider{display:none;}
  .home-hero .eyebrow.on-dark + h1,
  .home-hero h1 + p.lead{margin-top:18px;}
  .home-hero p.lead{
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;
  }
  /* Focal point from the ACF "Mobile image focal point" select. */
  .home-hero .hero-bg{object-position:var(--hero-mobile-focus-x, 50%) center;}
}

@keyframes homeHeroFadeUp{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}
.home-hero-anim{opacity:0;animation:homeHeroFadeUp .8s ease forwards;}
@media (prefers-reduced-motion: reduce){
  .home-hero-anim{opacity:1;animation:none;transform:none;}
}
/* ---------- TRUST STRIP ---------- */
  .story{border-bottom:1px solid #e7e5df;padding:96px 0 100px;background-color:#eeeadf;}
.lead-block{margin-bottom:80px;}
.lead-heading{
    font-size:clamp(24px,3vw,32px);font-weight:300;color:var(--navy-deep);
    margin-bottom:36px;max-width:720px;}
.lead-columns{
    display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.lead-col-text{
    font-family:var(--font-body);font-weight:400;font-size:15px;line-height:1.7;
    color:var(--ink-soft);}
.lead-col-text p{margin-bottom:0;}
.story-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:center;}
.story-media{border-radius:var(--radius);overflow:hidden;height:480px;}
.story-media img{width:100%;height:100%;object-fit:cover;}
.story-copy h2{font-size:clamp(24px,3vw,32px);margin-bottom:22px;}
.story-copy p{font-size:15px;margin-bottom:18px;}
.story-credentials{
    display:flex;align-items:center;gap:20px;margin:28px 0 30px;
    padding:18px 0;border-top:1px solid #e7e5df;border-bottom:1px solid #e7e5df;}
.cred-award{display:flex;align-items:center;gap:10px;}
.cred-award i{font-size:24px;color:var(--brass);}
.cred-award div{font-size:12px;line-height:1.4;color:var(--ink-soft);}
.cred-award strong{display:block;font-size:12px;color:var(--navy-deep);font-weight:600;}
.cred-stats{display:flex;gap:18px;font-size:12px;color:var(--ink-soft);}
.cred-stats b{color:var(--navy-deep);font-weight:600;}

/* ---------- TRUST STRIP ---------- */
.trust-strip{border-top:1px solid #e7e5df;border-bottom:1px solid #e7e5df;background:var(--white);}
.trust-strip-head{max-width:640px;margin:0 auto 40px;text-align:center;}
.trust-strip-head h2{font-size:clamp(22px,2.8vw,30px);margin-top:10px;}
.trust-strip-row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0;
  row-gap:28px;
}
.trust-item{
  display:flex;align-items:center;gap:12px;padding:0 32px;
  font-size:13px;color:var(--ink-soft);white-space:nowrap;
}
.trust-item:not(:first-child){border-left:1px solid var(--brass-dim);}
.trust-item-badge img{max-width:150px;max-height:70px;width:auto;height:auto;object-fit:contain;}
.trust-item i{font-size:22px;color:var(--brass);}
.trust-item strong{display:block;font-size:12px;color:var(--navy-deep);font-weight:600;}
@media (max-width:900px){
  .trust-strip-row{justify-content:flex-start;}
  .trust-item{white-space:normal;}
  .trust-item-cta{width:100%;justify-content:center;padding-top:12px;border-left:none !important;}
}
@media (max-width:640px){
  .trust-item{border-left:none !important;padding:0;width:100%;justify-content:center;text-align:center;}
  .trust-item-badge img{margin:0 auto;}
}

/* ---------- Reusable icon-reveal button (arrow slides in on hover) ---------- */
.icon-reveal-btn{display:inline-flex;align-items:center;gap:0;}
.icon-reveal-icon{
  display:inline-block;width:0;opacity:0;overflow:hidden;vertical-align:middle;margin-left:0;
  transition:width .3s ease, opacity .3s ease, margin-left .3s ease;
}
.icon-reveal-btn:hover .icon-reveal-icon{width:16px;opacity:1;margin-left:8px;}
.trust-item-cta .icon-reveal-icon{color:inherit;font-size:14px;}
@media (prefers-reduced-motion: reduce){
  .icon-reveal-icon{transition:none;}
}

/* ---------- SECTION SHELL ---------- */
  section{padding:100px 0;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);}
.section-head p{margin-top:16px;font-size:16px;}
/* ---------- PILLAR ROUTING ---------- */
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.pillar-card{
  position:relative;display:block;height:360px;border-radius:var(--radius);overflow:hidden;
  text-decoration:none;transition:transform .35s cubic-bezier(.25,.46,.45,.94);
}
.pillar-card:hover{transform:translateY(-4px);}
.pillar-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.pillar-card:hover img{transform:scale(1.05);}
.pillar-card-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(13,27,42,0.05) 0%, rgba(13,27,42,0.15) 45%, rgba(13,27,42,0.88) 100%);
}
.pillar-card-content{position:absolute;left:0;right:0;bottom:0;padding:26px;z-index:2;}
.pillar-card-content i{font-size:20px;color:var(--brass);margin-bottom:12px;display:block;}
.pillar-card-content h3{font-size:19px;color:var(--ivory);margin-bottom:8px;}
.pillar-card-content p{font-size:13px;color:#d8dee5;margin-bottom:14px;line-height:1.6;}
.pillar-card .go{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--ivory);font-weight:600;display:inline-flex;align-items:center;}
.pillar-card .go i{display:inline;font-size:13px;margin:0 0 0 4px;color:var(--brass);vertical-align:-1px;}
/* ---------- DESTINATION TEASERS ---------- */
  .dest-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.dest-card{position:relative;border-radius:var(--radius);overflow:hidden;height:420px;}
.dest-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.dest-card:hover img{transform:scale(1.05);}
.dest-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, rgba(13,27,42,0.88) 100%);}
.dest-card-content{position:absolute;left:0;right:0;bottom:0;padding:28px;z-index:2;}
.dest-card-content .eyebrow{color:#e6c979;}
.dest-card-content h3{color:var(--ivory);font-size:26px;margin-bottom:10px;}
.dest-card-content p{color:#d8dee5;font-size:14px;margin-bottom:16px;max-width:360px;}
/* ---------- ITINERARY SHOWCASE (dark section 2 of 2) ---------- */
  .showcase{background:var(--navy-deep);color:var(--ivory);}
.showcase .section-head h2{color:var(--ivory);}
.showcase .section-head p{color:#c8d0da;}
.itin-row{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;}
.itin-days{display:flex;flex-direction:column;gap:0;}
.itin-day{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid rgba(224,225,221,0.14);}
.itin-day:last-child{border-bottom:none;}
.itin-day i{font-size:18px;color:var(--brass);margin-top:3px;}
.itin-day .d-title{font-size:15px;font-weight:600;color:var(--ivory);margin-bottom:2px;}
.itin-day .d-desc{font-size:13px;color:#b7c0cb;}
.itin-media{border-radius:var(--radius);overflow:hidden;height:460px;}
.itin-media img{width:100%;height:100%;object-fit:cover;}
/* ---------- GUIDE HIGHLIGHTS ---------- */
  .parks{background:#f5f4f0;}
.park-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.park-card{position:relative;border-radius:var(--radius);overflow:hidden;height:300px;}
.park-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.park-card:hover img{transform:scale(1.05);}
.park-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, transparent 45%, rgba(13,27,42,0.9) 100%);}
.park-content{position:absolute;left:0;right:0;bottom:0;padding:18px;z-index:2;}
.park-content h3{color:var(--ivory);font-size:19px;margin-bottom:4px;}
.park-content p{color:#d8dee5;font-size:12px;}
.park-group{margin-bottom:48px;}
.park-group:last-child{margin-bottom:0;}
.park-group-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;}
.park-group-head h3{font-size:20px;}
.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.package-card{border:1px solid #e7e5df;border-radius:var(--radius);overflow:hidden;background:var(--white);display:flex;flex-direction:column;}
.package-card .p-media{position:relative;}
.package-card img{width:100%;height:300px;object-fit:cover;}
.package-card .p-body{padding:20px;display:flex;flex-direction:column;flex:1;}
.package-card p.p-excerpt{font-size:13px;margin-bottom:16px;flex:1;}
.p-footer{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:stretch;margin-top:4px;}
.p-duration{
    display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
    font-size:11px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
    color:var(--navy-deep);border-radius:2px;padding:10px 16px;}
.p-cta{
    display:flex;align-items:center;justify-content:center;gap:6px;
    font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
    color:var(--ivory);background:var(--navy-deep);border:1px solid var(--navy-deep);border-radius:2px;
    padding:10px;transition:background .25s ease, color .25s ease;}
.package-card:hover .p-cta{background:var(--navy);}
.p-cta i{font-size:13px;}
.why-us{background:var(--white);}
.why-us .section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.why-us-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-bottom:44px;}
.why-us-item{text-align:center;padding:0 8px;}
.why-us-item .numeral{font-family:var(--font-head);font-weight:400;font-size:20px;letter-spacing:3px;color:var(--brass);display:block;margin-bottom:14px;}
.why-us-item i{font-size:24px;color:var(--brass);display:block;margin-bottom:16px;}
.why-us-item h3{font-size:19px;margin-bottom:10px;}
.why-us-item p{font-size:13px;}
.why-us-cta{text-align:center;}
/* ---------- MONTH BY MONTH ---------- */
  .months{background:#f5f4f0;}
.month-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px;}
.month-tab{
    font-family:var(--font-body);font-size:12px;letter-spacing:0.5px;font-weight:500;
    padding:9px 16px;border:1px solid #d8d5cd;border-radius:2px;background:none;
    color:var(--ink-soft);cursor:pointer;transition:background .2s ease, color .2s ease, border-color .2s ease;}
.month-tab:hover{border-color:var(--navy-deep);}
.month-tab.active{background:var(--navy-deep);border-color:var(--navy-deep);color:var(--ivory);}
.month-panel{background:var(--white);border:1px solid #e7e5df;border-radius:var(--radius);padding:36px 40px;}
.month-panel h3{font-size:20px;margin-bottom:14px;}
.month-panel .m-general{font-size:14px;margin-bottom:24px;}
.country-toggle{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid #e7e5df;padding-bottom:16px;}
.country-tab{
    font-family:var(--font-body);font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
    padding:8px 4px;border:none;background:none;color:var(--ink-soft);cursor:pointer;
    border-bottom:2px solid transparent;}
.country-tab.active{color:var(--navy-deep);border-bottom-color:var(--brass);}
.month-panel .m-country{font-size:14px;margin-bottom:20px;}
.month-more{font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;color:var(--navy-deep);}
/* ---------- PLAN AND BOOK ---------- */
  .plan{background:var(--white);text-align:center;}
.plan .section-head{max-width:560px;margin:0 auto 16px;text-align:center;}
.plan-dots{color:var(--brass);letter-spacing:6px;font-size:13px;margin-bottom:48px;}
.plan-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:left;}
.plan-item i{font-size:24px;color:var(--brass);display:block;margin-bottom:16px;}
.plan-item .p-num{font-size:12px;color:var(--ink-soft);font-weight:600;margin-bottom:6px;}
.plan-item h3{font-size:18px;margin-bottom:8px;}
.plan-item p{font-size:13px;}
.park-group-head a{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--navy-deep);font-weight:600;white-space:nowrap;}
.guides{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.guide-card{border:1px solid #e7e5df;border-radius:var(--radius);overflow:hidden;}
.guide-card img{width:100%;height:170px;object-fit:cover;}
.guide-card .g-body{padding:20px;}
.guide-card h3{font-size:19px;margin-bottom:8px;}
.guide-card p{font-size:13px;}
/* ---------- TESTIMONIALS ---------- */
  .testimonials{background:#f5f4f0;}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.test-card{background:var(--white);border:1px solid #e7e5df;border-radius:var(--radius);padding:28px;}
.stars{color:var(--brass);font-size:13px;margin-bottom:14px;letter-spacing:2px;}
.test-card p.quote{font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--ink-soft);margin-bottom:18px;}
.test-card .who{font-size:12px;letter-spacing:0.5px;color:var(--ink-soft);text-transform:uppercase;}
/* ---------- ENQUIRY ---------- */
  .enquiry{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:flex-start;}
.enquiry h2{font-size:clamp(26px,3.4vw,36px);margin-bottom:16px;}
.enquiry p{font-size:16px;margin-bottom:8px;}
form{display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
label{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-bottom:6px;display:block;}
input,select,textarea{
    width:100%;border:1px solid #d8d5cd;border-radius:2px;padding:12px 14px;
    font-family:var(--font-body);font-size:14px;color:var(--ink-soft);background:var(--white);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brass);}
textarea{resize:vertical;min-height:90px;}
.form-submit{align-self:flex-start;margin-top:8px;background:var(--navy-deep);color:var(--ivory);border:none;cursor:pointer;font-family:inherit;}
.form-submit:hover{background:var(--navy);}
.form-note{font-size:12px;color:var(--ink-soft);margin-top:2px;}
/* ---------- FAQ ---------- */
  .faq-item{border-bottom:1px solid #e7e5df;}
.faq-q{
    width:100%;text-align:left;background:none;border:none;font-family:var(--font-head);
    font-size:17px;color:var(--navy-deep);padding:22px 0;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq-q .faq-chevron{color:var(--brass);transition:transform .3s ease;flex-shrink:0;}
.faq-item.open .faq-q .faq-chevron{transform:rotate(180deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a p{padding-bottom:22px;font-size:14px;max-width:640px;}
.faq-item.open .faq-a{max-height:200px;}
/* ---------- FOOTER — "Ivory colophon" (v1.14.0) ----------
   Approved concept 2 (KTS Footer Concepts canvas). Light sand, matching the
   ivory header: centred logo + italic tagline, three centred columns split
   by hairlines, a credentials row, an offices row, then legal + social as
   text links. Replaces the dark navy footer and its .foot-* classes. */
.kf{background:#eeeadf;color:#2c343d;border-top:1px solid rgba(122,92,22,0.35);padding:0;}
.kf .wrap{max-width:1240px;}
.kf a{text-decoration:none;color:inherit;}
.kf-top{text-align:center;padding:80px 32px 48px;}
.kf-logo{display:inline-flex;justify-content:center;}
.kf-logo-img{display:block;width:auto;max-height:72px;}
.kf-wordmark{display:inline-flex;flex-direction:column;align-items:center;gap:7px;line-height:1;color:var(--navy-deep);}
.kf-wordmark-main{font-family:var(--font-head);font-size:24px;letter-spacing:.2em;text-transform:uppercase;}
.kf-wordmark-sub{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.5em;text-transform:uppercase;color:#7a5c16;}
.kf-wordmark-sub::before,.kf-wordmark-sub::after{content:'';width:24px;height:1px;background:currentColor;}
.kf-tagline{max-width:520px;margin:22px auto 0;font-family:var(--font-head);font-style:italic;font-size:20px;line-height:1.5;color:var(--navy-deep);}
.kf-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(13,27,42,.12);border-bottom:1px solid rgba(13,27,42,.12);}
.kf-col{padding:44px 40px;text-align:center;border-left:1px solid rgba(13,27,42,.12);display:flex;flex-direction:column;align-items:center;}
.kf-col:first-child{border-left:0;}
.kf-label{margin:0;font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#7a5c16;}
.kf-list{display:flex;flex-direction:column;align-items:center;gap:11px;margin-top:20px;font-size:14px;color:var(--navy-deep);}
.kf-list a{transition:opacity .25s ease;}
.kf-list a:hover{opacity:.6;}
.kf-list .kf-all{margin-top:6px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;border-bottom:1px solid #7a5c16;padding-bottom:3px;}
.kf-btn{
  display:inline-flex;align-items:center;justify-content:center;margin-top:26px;padding:15px 28px;
  border:1px solid var(--navy-deep);color:var(--navy-deep) !important;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;
  transition:background .25s ease,color .25s ease;
}
.kf-btn:hover{background:var(--navy-deep);color:var(--white) !important;}
.kf-cred{display:flex;justify-content:center;flex-wrap:wrap;padding:28px 0;border-bottom:1px solid rgba(13,27,42,.12);}
.kf-cred span{padding:0 28px;border-left:1px solid rgba(13,27,42,.12);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#55606c;}
.kf-cred span:first-child{border-left:0;}
.kf-cred b{font-family:var(--font-head);font-weight:400;font-size:17px;letter-spacing:0;text-transform:none;color:var(--navy-deep);margin-right:6px;}
.kf-offices{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 36px;padding:24px 0 0;font-size:12.5px;color:#55606c;}
.kf-offices b{color:var(--navy-deep);font-weight:600;}
.kf-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0 30px;font-size:12px;color:#55606c;}
.kf-legal,.kf-social{display:flex;gap:22px;flex-wrap:wrap;}
.kf-legal a:hover,.kf-social a:hover{color:var(--navy-deep);}
.kf a:focus-visible{outline:1px solid var(--brass);outline-offset:4px;}
@media (max-width:760px){
  .kf-top{padding:56px 22px 36px;}
  .kf-tagline{font-size:18px;}
  .kf-cols{grid-template-columns:1fr;}
  .kf-col{border-left:0;border-top:1px solid rgba(13,27,42,.12);padding:34px 0;}
  .kf-col:first-child{border-top:0;}
  .kf-cred{flex-direction:column;align-items:center;gap:10px;text-align:center;}
  .kf-cred span{border-left:0;padding:0;}
  .kf-offices{flex-direction:column;align-items:center;text-align:center;}
  .kf-bottom{flex-direction:column;align-items:center;text-align:center;}
  .kf-legal,.kf-social{justify-content:center;}
}
/* ---------- REVEAL ANIMATION ---------- */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
/* Old header block (navy bar, texture, has-hero/home-hero-nav states) replaced by the HEADER section near the top of this file (v1.12.0). */

.breadcrumb{font-size:12px;color:var(--ink-soft);padding-top:18px;padding-bottom:18px;}
.breadcrumb a{color:var(--ink-soft);}
.breadcrumb a:hover{color:var(--navy-deep);}
.breadcrumb i{font-size:12px;margin:0 6px;vertical-align:-1px;}
/* HERO - the only dark section on this page */
section{padding:88px 0;}
/* Follows directly after the .story section's own 100px bottom padding —
   a smaller top padding here (rather than 0) avoids doubling up the gap
   while still giving the eyebrow/heading breathing room. */
.dest-teasers{padding-top:56px;}
.intro{max-width:760px;}
.intro p{font-family:var(--font-body);font-size:clamp(14px,1.4vw,15px);color:var(--ink-soft);margin-bottom:18px;}
/* .intro/.overview-copy headings had no explicit size, so they fell back to
   the browser's plain h2 default instead of the sitewide section-heading
   scale — fixed to match .section-head h2 everywhere this shared class is
   used (Experience Hub Intro, Destination Hub, single-safari overview). */
.intro h2,.overview-copy h2{font-size:clamp(26px,3.4vw,38px);margin-bottom:18px;}
.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.overview-grid .overview-copy{max-width:none;}
.overview-media{border-radius:var(--radius);overflow:hidden;}
.overview-media img{width:100%;height:auto;display:block;}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.why-item{padding:24px 4px;}
.why-item i{font-size:22px;color:var(--brass);display:block;margin-bottom:14px;}
.why-item h3{font-size:18px;margin-bottom:6px;}
.why-item p{font-size:13px;}
.parks{background:#f5f4f0;}
.itin-teaser{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.itin-card{border:1px solid #e7e5df;border-radius:var(--radius);overflow:hidden;}
.itin-card img{width:100%;height:160px;object-fit:cover;}
.itin-card .i-body{padding:20px;}
.itin-card .i-len{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--brass);font-weight:600;}
.itin-card h3{font-size:19px;margin:6px 0 8px;}
.itin-card p{font-size:13px;}
.season-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.season-list{display:flex;flex-direction:column;gap:0;}
.season-item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid #e7e5df;}
.season-item:last-child{border-bottom:none;}
.season-item i{font-size:18px;color:var(--brass);margin-top:2px;}
.season-item .s-title{font-size:14px;font-weight:600;color:var(--navy-deep);}
.season-item .s-desc{font-size:13px;}
.season-media{border-radius:var(--radius);overflow:hidden;height:380px;}
.season-media img{width:100%;height:100%;object-fit:cover;}
.faq-item{border-bottom:1px solid #e7e5df;}
.cta-band{background:#f5f4f0;text-align:center;}
.cta-band h2{font-size:clamp(24px,3.2vw,32px);margin-bottom:14px;}
.cta-band p{max-width:480px;margin:0 auto 28px;}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
/* HERO - dark section 1 of 2 */
/* STORY / INTRO two-column */
  .story-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:center;}
/* VALUES */
  .values{background:#f5f4f0;}
.value-row{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:32px 0;border-bottom:1px solid #e2e0d8;}
.value-row:last-child{border-bottom:none;}
.value-numeral{font-family:var(--font-head);font-weight:400;font-size:34px;color:var(--brass);}
.value-row h3{font-size:18px;margin-bottom:10px;}
.value-row p{font-size:14px;max-width:640px;}
/* TEAM */
  .team-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.team-media{border-radius:var(--radius);overflow:hidden;height:400px;}
.team-media img{width:100%;height:100%;object-fit:cover;}
.team-copy p{font-size:15px;margin-bottom:16px;}
.team-stats{display:flex;gap:32px;margin-top:24px;padding-top:24px;border-top:1px solid #e7e5df;}
.team-stats div{font-size:12px;color:var(--ink-soft);}
.team-stats strong{display:block;font-family:var(--font-head);font-size:22px;color:var(--navy-deep);font-weight:400;}
/* STATS BAND - dark section 2 of 2 */
  .stats-band{background:var(--navy-deep);color:var(--ivory);}
.stats-band .section-head h2{color:var(--ivory);}
.stats-band .section-head p{color:#c8d0da;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.stat-item{text-align:center;padding:20px;border-left:1px solid rgba(224,225,221,0.14);}
.stat-item:first-child{border-left:none;}
.stat-item .s-num{font-family:var(--font-head);font-weight:400;font-size:30px;color:var(--ivory);}
.stat-item .s-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#9fb0c2;margin-top:8px;}
/* PROMISE GRID — icon + title row, description below; tighter section height than the default 88px section padding, since this band is short by design */
.promise-section{padding:48px 0;}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.promise-item{text-align:center;}
.promise-item-head{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px;}
.promise-item-head i{font-size:22px;color:var(--brass);}
.promise-item-head h3{color:var(--ivory);font-size:16px;margin:0;}
.promise-item p{color:#c8d0da;font-size:13px;margin:0;}
/* WHERE THIS TAKES YOU */
.takes-you .section-head{margin:0 auto 32px;text-align:center;max-width:640px;}
.takes-you-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}

/* ---------- WHY KENYA TANZANIA REASONS — 3-column grid, scoped so the
   About page's identical .value-row list (a single stacked column) is
   untouched ---------- */
body.page-template-page-why-kenya-tanzania-safari-php .reasons-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px 40px;}
body.page-template-page-why-kenya-tanzania-safari-php .reasons-grid .value-row{
  grid-template-columns:48px 1fr;gap:12px;padding:0;border-bottom:none;}
/* CREDENTIALS */
  .cred-row{display:flex;align-items:center;gap:16px;}
.cred-row i{font-size:26px;color:var(--brass);}
.cred-row div p{font-size:13px;margin:0;}
.cred-row div strong{display:block;font-size:14px;color:var(--navy-deep);font-weight:600;margin-bottom:2px;}
/* FAQ */
  .faq-item{border-bottom:1px solid #e7e5df;}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:400;line-height:1.15;color:var(--navy-deep);}
/* FILTER TABS */
  .filter-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.filter-tab{
    font-family:var(--font-body);font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
    padding:10px 20px;border:1px solid #d8d5cd;border-radius:2px;background:none;
    color:var(--ink-soft);cursor:pointer;transition:background .2s ease, color .2s ease, border-color .2s ease;}
.filter-tab:hover{border-color:var(--navy-deep);}
.filter-tab.active{background:var(--navy-deep);border-color:var(--navy-deep);color:var(--ivory);}
/* PACKAGE GRID */
  .package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.package-card .p-tag{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:8px;}
/* font-weight:400 (not the old 600) — the new display serif only ships a
   Regular weight, so 600 here was rendering as the browser's synthetic
   faux-bold rather than a true drawn weight. Matches every other heading
   sitewide, which already inherits 400 from the global h1-h4 rule. */
/* 18px site-wide (was 20px; 22px on the two home sections) — one size for every safari card. */
.package-card h3{font-size:18px;line-height:1.25;font-weight:400;margin:0 0 8px;}
/* DECISION GUIDE */
  .choose{background:#f5f4f0;}
.choose-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.choose-item{background:var(--white);border:1px solid #e7e5df;border-radius:var(--radius);padding:24px;}
.choose-item i{font-size:22px;color:var(--brass);display:block;margin-bottom:14px;}
.choose-item h3{font-size:18px;margin-bottom:8px;}
.choose-item p{font-size:13px;margin-bottom:10px;}
.choose-item a{font-size:12px;font-weight:600;color:var(--navy-deep);text-decoration:underline;}
/* QUICK FACTS BAR */
  .facts{border-bottom:1px solid #e7e5df;}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.fact-item{text-align:center;padding:28px 16px;border-right:1px solid #e7e5df;}
.fact-item:last-child{border-right:none;}
.fact-item i{font-size:20px;color:var(--brass);margin-bottom:8px;display:block;}
.fact-item .f-val{font-family:var(--font-head);font-size:21px;color:var(--navy-deep);}
.fact-item .f-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);margin-top:4px;}
.overview p{font-size:15px;max-width:760px;margin-bottom:16px;}
.overview-copy blockquote{border-left:2px solid var(--brass);padding-left:24px;margin:28px 0;font-family:var(--font-head);font-style:italic;font-size:21px;line-height:1.4;color:var(--navy-deep);max-width:640px;}
.overview-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:start;}
.overview-sidebar{display:flex;flex-direction:column;gap:20px;}
.facts-widget{background:var(--navy-deep);color:var(--ivory);border-radius:var(--radius);padding:28px;}
.facts-widget h3{color:var(--ivory);font-size:19px;margin-bottom:20px;}
.facts-widget-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 16px;}
.facts-widget-item i{font-size:17px;color:var(--brass);margin-bottom:8px;display:block;}
.facts-widget-item .f-val{font-family:var(--font-head);font-weight:400;font-size:19px;color:var(--ivory);line-height:1.2;}
.facts-widget-item .f-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#9fb0c2;margin-top:4px;}
.activities-card{background:var(--ivory);border-top:2px solid var(--brass);border-radius:var(--radius);padding:28px;box-shadow:0 1px 3px rgba(13,27,42,0.06);}
.activities-card h3{font-size:18px;margin-bottom:10px;}
.activities-card p.a-sub{font-size:13px;margin-bottom:20px;}
.activities-list{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;}
.activity-item{display:flex;align-items:center;gap:10px;}
.activity-item i{font-size:18px;color:var(--brass);flex-shrink:0;}
.activity-item span{font-size:13px;color:var(--ink-soft);}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.gallery-grid img{width:100%;height:220px;object-fit:cover;border-radius:var(--radius);}
/* SUB-NAV (sticky itinerary tabs) */
  .subnav{position:sticky;top:var(--hdr-now,96px);transition:top .35s ease;z-index:40;background:var(--navy-deep);border-bottom:1px solid rgba(224,225,221,0.12);}
.subnav .wrap{display:flex;align-items:center;justify-content:space-between;height:56px;}
.subnav-links{
  display:flex;gap:28px;overflow-x:auto;
  /* Still scrollable (mouse drag, trackpad, touch) when there are more
     links than fit, e.g. a guide with 6+ H2 sections, just without the
     visible scrollbar track that was showing up as a bar under the tabs. */
  scrollbar-width:none;-ms-overflow-style:none;
}
.subnav-links::-webkit-scrollbar{display:none;}
.subnav-links a{font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;color:#9fb0c2;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent;}
.subnav-links a:hover{color:var(--ivory);}
.subnav-links a.active{color:var(--ivory);border-bottom-color:var(--brass);}
.subnav .btn{padding:9px 18px;font-size:11px;flex-shrink:0;margin-left:20px;}
/* HIGHLIGHTS - dark section 2 of 2 */
  .highlights{background:var(--navy-deep);color:var(--ivory);}
.highlights .section-head h2{color:var(--ivory);}
.highlights .section-head h2 em{color:var(--brass);font-style:normal;}
.highlights .section-head p{color:#c8d0da;}
.chapter-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
.chapter-item{display:grid;grid-template-columns:36px 1fr;gap:16px;padding:24px 0;border-bottom:1px solid rgba(224,225,221,0.14);}
.chapter-numeral{font-family:var(--font-head);font-weight:400;font-size:20px;color:var(--brass);}
.chapter-item h3{color:#e6c979;font-size:19px;font-weight:400;margin-bottom:6px;}
.chapter-item p{font-size:13px;color:#c8d0da;margin:0;}
/* DAILY ITINERARY - redesigned */
  .days{background:var(--white);}
.day-row{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:40px 0;border-top:1px solid #e7e5df;}
.day-row:first-child{border-top:none;}
.day-marker{padding-top:2px;}
.day-marker .d-label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass);font-weight:600;}
.day-marker .d-num{font-family:var(--font-head);font-weight:400;font-size:42px;color:var(--navy-deep);line-height:1.1;margin:2px 0;}
.day-marker .d-loc{font-size:12px;color:var(--ink-soft);font-style:italic;}
.day-route{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.day-route i{font-size:12px;}
.day-content h3{font-size:20px;margin-bottom:12px;}
.day-content p.d-desc{font-size:14px;max-width:640px;margin-bottom:20px;}

/* ---------- ITINERARY LAYOUT + STICKY ENQUIRY WIDGET ---------- */
.itinerary-grid{display:grid;grid-template-columns:7fr 3fr;gap:48px;align-items:start;}
.itin-enquiry-widget{position:sticky;top:132px;}
.iew-inner{background:#e0e1dc;border:1px solid #e7e5df;border-radius:var(--radius);padding:28px;box-shadow:0 4px 20px rgba(13,27,42,0.06);}
.iew-inner h3{font-size:19px;margin-bottom:8px;line-height:1.25;}
.iew-excerpt{font-family:var(--font-body);font-size:14px;line-height:1.5;color:#4a5560;margin-bottom:16px;}
.iew-facts{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 20px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #e7e5df;}
.iew-facts span{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);}
.iew-facts i{color:var(--brass);font-size:15px;flex-shrink:0;}
.iew-pills{margin:0 0 20px;}
.iew-actions{display:flex;flex-direction:column;gap:10px;}
.iew-actions .btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-size:13px;}
.iew-whatsapp{background:#25D366;color:var(--white);border-color:#25D366;}
.iew-whatsapp:hover{background:#1ebc59;color:var(--white);}
.rest-box{background:#f5f4f0;border-radius:var(--radius);padding:18px 20px;max-width:640px;}
.rest-box .r-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-bottom:6px;display:block;}
.rest-box p{font-size:13px;margin:0;font-style:italic;color:var(--ink-soft);}
.rest-box strong{font-style:normal;font-weight:600;color:var(--navy-deep);}
/* KEY SPECIES */
  .species{background:#eeeadf;text-align:center;}
.species .section-head{margin:0 auto 36px;text-align:center;max-width:640px;}
.species-dots{color:var(--brass);letter-spacing:6px;font-size:13px;margin-bottom:40px;}
.species-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(90px, 1fr));gap:28px 12px;}
.species-item{text-align:center;}
.species-icon{
    margin:0 auto 12px;display:flex;align-items:center;justify-content:center;}
.species-icon img{width:60px;height:60px;object-fit:contain;}
.species-item .sp-name{font-size:13px;color:var(--ink-soft);font-weight:500;}
.species-item .sp-chance{font-size:11px;letter-spacing:0.5px;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;}
/* INCLUSIONS - 3 column */
  .includes-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px;}
.includes-list{list-style:none;}
.includes-list li{display:flex;gap:10px;padding:8px 0;font-size:13px;color:var(--ink-soft);}
.includes-list.yes i{color:#3b8b56;}
.includes-list.no i{color:#a35353;}
.includes-list.notes i{color:var(--brass);}
.includes-grid3 h3{margin-bottom:14px;font-size:19px;}

/* ---------- INCLUSIONS — dark navy section, same 2-dark-section budget as .highlights ---------- */
.includes-section{background:var(--navy-deep);}
.includes-section .section-head h2{color:var(--ivory);}
.includes-section .includes-grid3 h3{color:var(--ivory);}
.includes-section .includes-list li{color:#c8d0da;}
.includes-section .includes-list.yes i{color:#6fc98c;}
.includes-section .includes-list.no i{color:#e09a9a;}
.includes-section .includes-list.notes i{color:var(--brass);}
/* MAKE IT MINE */
  .make-mine{background:var(--ivory);text-align:center;}
.make-mine .section-head{max-width:640px;margin:0 auto;text-align:center;}
.make-mine p.mm-lead{font-size:16px;color:var(--ink-soft);margin:18px 0 16px;max-width:600px;margin-left:auto;margin-right:auto;}
.make-mine p.mm-sub{font-size:13px;color:var(--ink-soft);max-width:520px;margin:0 auto;}
.make-mine .mm-cta{margin-top:28px;display:inline-block;}
/* SIMILAR */
  .package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}

/* Responsive rules, merged from all prototype pages */

/* from index.html */
@media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }

  @media (max-width:900px){
    .pillars{grid-template-columns:repeat(2,1fr);}
    .dest-grid,.itin-row,.guides,.test-grid,.enquiry,.form-row,.story-grid,.park-grid,.package-grid,.lead-columns{grid-template-columns:1fr;}
    .why-us-grid{grid-template-columns:repeat(2,1fr);}
    .plan-grid{grid-template-columns:repeat(2,1fr);}
    .month-panel{padding:28px 24px;}
    .story-media{height:320px;}
    .story-credentials{flex-direction:column;align-items:flex-start;gap:14px;}
    .foot-top{grid-template-columns:1fr;row-gap:48px;}
    section{padding:64px 0;}
  }

/* from destinations-kenya.html */
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  @media (max-width:900px){
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .park-grid,.itin-teaser{grid-template-columns:1fr;}
    .season-grid{grid-template-columns:1fr;}
    .overview-grid{grid-template-columns:1fr;gap:28px;}
    section{padding:56px 0;}
  }

/* from destinations-tanzania.html */
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  @media (max-width:900px){
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .park-grid,.itin-teaser{grid-template-columns:1fr;}
    .season-grid{grid-template-columns:1fr;}
    .overview-grid{grid-template-columns:1fr;gap:28px;}
    section{padding:56px 0;}
  }

/* from about.html */
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  @media (max-width:900px){
    .story-grid,.team-grid{grid-template-columns:1fr;}
    .story-media,.team-media{height:280px;}
    .value-row{grid-template-columns:56px 1fr;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .promise-grid{grid-template-columns:1fr;gap:36px;}
    body.page-template-page-why-kenya-tanzania-safari-php .reasons-grid{grid-template-columns:1fr;}
    .stat-item:nth-child(3){border-left:none;}
    .team-stats{flex-wrap:wrap;gap:20px;}
    section{padding:56px 0;}
  }

/* from safaris.html */
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  @media (max-width:900px){
    .package-grid{grid-template-columns:1fr;}
    .choose-grid{grid-template-columns:repeat(2,1fr);}
    section{padding:52px 0;}
  }

/* from great-migration-circuit.html */
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  @media (max-width:900px){
    .subnav-links{gap:18px;}
    .subnav .btn{display:none;}
    .facts .wrap{grid-template-columns:repeat(2,1fr);}
    .fact-item:nth-child(2){border-right:none;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
    .chapter-grid{grid-template-columns:1fr;}
    .overview-grid{grid-template-columns:1fr;}
    .activities-list{grid-template-columns:1fr 1fr;}
    .day-row{grid-template-columns:1fr;gap:12px;}
    .itinerary-grid{grid-template-columns:1fr;gap:28px;}
    .itin-enquiry-widget{position:static;}
    .species-grid{grid-template-columns:repeat(3,1fr);}
    .includes-grid3{grid-template-columns:1fr;}
    .package-grid{grid-template-columns:1fr;}
    section{padding:52px 0;}
  }

/* ---------- Generic prose styling for WYSIWYG / the_content() output ---------- */
.page-content h2{font-size:24px;margin:32px 0 14px;}
.page-content h3{font-size:19px;margin:24px 0 12px;}
.page-content p{font-size:15px;margin-bottom:16px;}
.page-content ul,.page-content ol{margin:0 0 16px 20px;color:var(--ink-soft);font-size:15px;}
.page-content li{margin-bottom:6px;}
.page-content a{color:var(--navy-deep);text-decoration:underline;}
.page-content blockquote{border-left:2px solid var(--brass);padding-left:20px;margin:20px 0;font-style:italic;color:var(--ink-soft);}
.page-content img{max-width:100%;border-radius:var(--radius);margin:16px 0;}

/* Same prose rules for wysiwyg fields rendered inline (story-copy, intro, etc.) */
.story-copy p, .intro p, .team-copy p {margin-bottom:16px;}

/* ---------- Floating WhatsApp + Enquire capsules ---------- */
/* Hidden until JS reveals them once the hero has scrolled out of view,
   so they never sit on top of hero content (see assets/js/floating-capsules.js). */
.floating-capsules{
  position:fixed;right:24px;bottom:24px;z-index:60;
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .35s ease, transform .35s ease;
}
.floating-capsules.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.floating-capsules .capsule{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 20px;border-radius:999px;
  font-family:var(--font-body);font-size:14px;font-weight:500;
  text-decoration:none;white-space:nowrap;
  box-shadow:0 8px 24px rgba(13,27,42,0.18);
  transition:transform .2s ease, box-shadow .2s ease;
}
.floating-capsules .capsule:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(13,27,42,0.24);}
.floating-capsules .capsule i{font-size:17px;}
.capsule-enquire{background:var(--navy-deep);color:var(--white);}
.capsule-enquire i{color:var(--brass);}
.capsule-whatsapp{background:#25D366;color:var(--white);}
.capsule-whatsapp i{color:var(--white);}

@media (max-width:640px){
  .floating-capsules{right:16px;bottom:16px;gap:10px;}
  .floating-capsules .capsule span{display:none;}
  .floating-capsules .capsule{padding:14px;border-radius:50%;}
  .floating-capsules .capsule i{font-size:20px;}
}
@media (prefers-reduced-motion: reduce){
  .floating-capsules{transition:opacity .01s linear;transform:none;}
  .floating-capsules .capsule{transition:none;}
  .floating-capsules .capsule:hover{transform:none;}
}

/* ---------- Enquiry form (shared: modal + Contact page) ---------- */
.enquiry-form{max-width:480px;}
.enquiry-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.enquiry-row{margin-bottom:16px;}
.enquiry-row--half{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.enquiry-row label,.enquiry-row--half label{
  display:block;font-size:13px;font-weight:500;color:var(--ink-soft);margin-bottom:6px;
}
.enquiry-form input[type="text"],
.enquiry-form input[type="email"],
.enquiry-form input[type="number"],
.enquiry-form input[type="date"],
.enquiry-form select,
.enquiry-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--dust);border-radius:var(--radius);
  font-family:var(--font-body);font-size:14px;color:var(--ink-soft);background:var(--white);
  transition:border-color .2s ease;
}
.enquiry-hint{font-size:11px;color:var(--ink-soft);opacity:.75;margin-top:6px;}
.enquiry-form select{
  appearance:none;-webkit-appearance:none;
  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='%23a6832b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{
  outline:none;border-color:var(--navy-deep);
}
.enquiry-form textarea{resize:vertical;}
.enquiry-submit{width:100%;text-align:center;cursor:pointer;background:var(--navy-deep);color:var(--white);border-color:var(--navy-deep);}
.enquiry-submit:hover{background:var(--navy);}
.enquiry-submit[disabled]{opacity:.6;cursor:not-allowed;}
.enquiry-status{font-size:13px;margin-top:12px;min-height:18px;}
.enquiry-status.is-success{color:#1e5631;}
.enquiry-status.is-error{color:#8a1f11;}

/* ---------- Global enquiry modal ---------- */
.enquiry-modal{
  position:fixed;inset:0;z-index:100;
  display:flex;align-items:center;justify-content:center;padding:20px;
  visibility:hidden;opacity:0;
  transition:opacity .25s ease, visibility 0s linear .25s;
}
.enquiry-modal.is-open{visibility:visible;opacity:1;transition:opacity .25s ease;}
.enquiry-modal__overlay{
  position:absolute;inset:0;background:rgba(13,27,42,0.55);
}
.enquiry-modal__panel{
  position:relative;background:var(--white);border-radius:var(--radius);
  max-width:520px;width:100%;max-height:90vh;overflow-y:auto;
  padding:40px 36px;box-shadow:0 24px 64px rgba(13,27,42,0.3);
  transform:translateY(16px);transition:transform .25s ease;
}
.enquiry-modal.is-open .enquiry-modal__panel{transform:translateY(0);}
/* Split image + form layout (roughly 30:70), used only when an image is
   set in Site Settings — falls back cleanly to the base .enquiry-modal__panel
   rules above (single column, padded, self-scrolling) otherwise. */
.enquiry-modal__panel--split{
  max-width:920px;padding:0;overflow:hidden;
  display:grid;grid-template-columns:3fr 7fr;align-items:stretch;
}
.enquiry-modal__media{
  background-size:cover;background-repeat:no-repeat;min-height:100%;
}
.enquiry-modal__panel--split .enquiry-modal__content{
  padding:40px 36px;overflow-y:auto;max-height:90vh;
}
@media (max-width:760px){
  .enquiry-modal__panel--split{grid-template-columns:1fr;max-width:520px;}
  .enquiry-modal__media{display:none;}
}
.enquiry-modal__close{
  position:absolute;top:16px;right:16px;background:none;border:none;cursor:pointer;
  font-size:20px;color:var(--ink-soft);line-height:1;padding:6px;
}
.enquiry-modal__close:hover{color:var(--navy-deep);}
.enquiry-modal__head{margin-bottom:24px;}
.enquiry-modal__head h2{font-size:26px;margin-bottom:8px;}
.enquiry-modal__head p{font-size:14px;}
@media (prefers-reduced-motion: reduce){
  .enquiry-modal,.enquiry-modal__panel{transition:none;}
}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;grid-template-columns:0.85fr 1fr;gap:64px;align-items:start;}
.contact-copy h2{font-size:28px;margin-bottom:14px;}
.contact-details{list-style:none;margin:28px 0 0;padding:0;}
.contact-details li{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:14px;}
.contact-details i{color:var(--brass);font-size:18px;}
.contact-details a{color:var(--ink-soft);text-decoration:none;}
.contact-details a:hover{color:var(--navy-deep);text-decoration:underline;}
.contact-form-wrap{background:var(--ivory);padding:32px;border-radius:var(--radius);}
.contact-form-wrap .enquiry-form{max-width:none;}

/* THREE WAYS THROUGH */
.contact-ways-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.contact-way{border-top:2px solid var(--brass);padding-top:18px;}
.cw-label{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;}
.cw-label i{color:var(--brass);font-size:16px;}
.cw-value{font-size:14px;color:var(--ink-soft);margin-bottom:8px;}
.cw-link{display:block;font-family:var(--font-head);font-size:17px;color:var(--navy-deep);margin-bottom:2px;}
.cw-link:hover{color:var(--brass);}
.contact-hours{margin-top:32px;padding-top:24px;border-top:1px solid #e7e5df;font-size:12px;letter-spacing:0.5px;text-transform:uppercase;color:var(--ink-soft);}

/* WHAT TO EXPECT sidebar box, sits under the intro copy next to the form */
.contact-promise-box{background:var(--ivory);border-radius:var(--radius);padding:24px;margin-top:28px;}
.cpb-label{display:block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:12px;}
.cpb-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #e2e0d8;font-size:13px;}
.cpb-row:first-of-type{border-top:none;}
.cpb-key{color:var(--ink-soft);}
.cpb-val{color:var(--navy-deep);font-weight:600;text-align:right;}
.cpb-recommended{margin-top:16px;padding-top:16px;border-top:1px solid #e2e0d8;}
.cpb-recommended-links{display:flex;gap:16px;flex-wrap:wrap;}
.cpb-recommended-links a{font-size:13px;color:var(--navy-deep);text-decoration:underline;}

/* CLOSING NOTE */
.close-cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px;}
@media (max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:36px;}
  .contact-ways-grid{grid-template-columns:1fr;gap:28px;}
  .cpb-row{flex-direction:column;gap:2px;}
  .cpb-val{text-align:left;}
}
@media (max-width:640px){
  .enquiry-row--half{grid-template-columns:1fr;}
}

/* ════════════════════════════════════════════════════════
   HOMEPAGE EXPERIENCES SLIDER — full-bleed dark, card tray
   (see template-parts/home/section-experiences.php)
   ════════════════════════════════════════════════════ */
.kts-exp{position:relative;width:100%;height:clamp(620px,82vh,840px);overflow:hidden;background:var(--navy-deep);}

/* Section heading above the slider (v1.11.13). Mirrors the Pillars
   .cards-head layout: eyebrow + H2 left, subtitle right, bottom-aligned. */
.kts-exp-intro{padding:120px 0 48px;}
.kts-exp-intro-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;}
.kts-exp-intro-head h2{margin-top:8px;font-size:clamp(26px,3.4vw,38px);}
.kts-exp-intro-head p{max-width:420px;font-size:16px;margin:0;}
@media (max-width:700px){
  .kts-exp-intro{padding:64px 0 32px;}
  .kts-exp-intro-head{flex-direction:column;align-items:flex-start;gap:16px;}
}

.kts-exp-timer{position:absolute;top:0;left:0;right:0;height:2px;background:rgba(224,225,221,0.14);z-index:20;}
.kts-exp-timer__bar{height:100%;width:0%;background:var(--brass);}

.kts-exp-slides{position:absolute;inset:0;z-index:0;}
.kts-exp-slide{position:absolute;inset:0;opacity:0;transition:opacity .85s cubic-bezier(.25,.46,.45,.94);}
.kts-exp-slide.is-active{opacity:1;}
.kts-exp-slide__img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);transition:transform 5s cubic-bezier(.25,.46,.45,.94);}
.kts-exp-slide.is-active .kts-exp-slide__img{transform:scale(1);}
.kts-exp-slide__img--placeholder{background:var(--navy-deep);}
.kts-exp-slide__overlay{position:absolute;inset:0;background:linear-gradient(105deg, rgba(13,27,42,0.80) 0%, rgba(13,27,42,0.32) 50%, rgba(13,27,42,0.12) 100%);}

.kts-exp-content{position:absolute;bottom:clamp(40px,6vw,80px);left:clamp(28px,5vw,72px);z-index:10;max-width:480px;}
.kts-exp-content .eyebrow{display:block;margin-bottom:16px;}
.kts-exp-panel{display:none;}
.kts-exp-panel.is-active{display:block;animation:kts-exp-panel-in .5s cubic-bezier(.25,.46,.45,.94) both;}
@keyframes kts-exp-panel-in{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.kts-exp-panel__title{font-family:var(--font-head);font-weight:400;font-size:clamp(32px,3.8vw,50px);color:var(--ivory);margin:0 0 16px;line-height:1.05;}
.kts-exp-panel__desc{font-family:var(--font-body);font-size:clamp(13px,1.1vw,15px);line-height:1.75;color:#c8d0da;margin:0 0 28px;max-width:400px;}
.kts-exp-panel__cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--navy-deep);background:var(--ivory);text-decoration:none;padding:11px 24px;border-radius:999px;transition:background .22s ease,color .22s ease;}
.kts-exp-panel__cta:hover{background:var(--brass);color:var(--ivory);}
.kts-exp-panel__cta i{font-size:13px;}

.kts-exp-tray{position:absolute;bottom:0;right:0;z-index:10;display:flex;flex-direction:column;align-items:flex-end;}
.kts-exp-tray-controls{display:flex;align-items:center;gap:16px;padding:0 clamp(16px,2vw,32px) 16px 0;}
.kts-exp-counter{font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.08em;color:rgba(224,225,221,0.55);display:flex;align-items:baseline;gap:3px;}
.kts-exp-counter__current{font-family:var(--font-head);font-size:32px;font-weight:400;color:var(--ivory);letter-spacing:-0.03em;line-height:1;display:inline-block;transition:transform .22s cubic-bezier(.4,0,.2,1),opacity .22s ease;}
.kts-exp-counter__current.is-rolling{transform:translateY(-40%);opacity:0;}
.kts-exp-counter__sep{margin-inline:3px;}
.kts-exp-counter__total{font-size:14px;}

.kts-exp-arrows{display:flex;gap:6px;}
.kts-exp-arrow{width:36px;height:36px;border:1px solid rgba(224,225,221,0.30);border-radius:50%;background:rgba(224,225,221,0.08);color:var(--ivory);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease;backdrop-filter:blur(6px);flex-shrink:0;font-size:15px;}
.kts-exp-arrow:hover{background:rgba(224,225,221,0.20);border-color:var(--brass);}

.kts-exp-thumbs-wrap{overflow:hidden;width:clamp(460px,38vw,580px);padding-bottom:28px;}
.kts-exp-thumbs{display:flex;gap:8px;align-items:flex-end;transition:transform .65s cubic-bezier(.77,0,.18,1);will-change:transform;}

.kts-exp-thumb{position:relative;width:180px;height:220px;flex-shrink:0;border:none;padding:0;cursor:pointer;background:transparent;border-radius:var(--radius);overflow:hidden;outline:none;opacity:.72;transform:scale(0.97) translateY(6px);transition:opacity .4s ease,transform .4s cubic-bezier(.25,.46,.45,.94),box-shadow .4s ease;}
.kts-exp-thumb.is-active{opacity:1;transform:scale(1) translateY(0);box-shadow:0 0 0 2px var(--brass);}
.kts-exp-thumb:hover:not(.is-active){opacity:.9;transform:scale(0.98) translateY(4px);}
.kts-exp-thumb__img-wrap{position:absolute;inset:0;}
.kts-exp-thumb__img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.06);transition:transform .6s cubic-bezier(.25,.46,.45,.94);}
.kts-exp-thumb.is-active .kts-exp-thumb__img{transform:scale(1);}
.kts-exp-thumb__img--placeholder{width:100%;height:100%;background:var(--navy);}
.kts-exp-thumb__label{position:absolute;bottom:0;left:0;right:0;padding:32px 10px 12px;background:linear-gradient(to top, rgba(13,27,42,0.88) 0%, transparent 100%);}
.kts-exp-thumb__eyebrow{font-family:var(--font-body);font-size:8px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(224,225,221,0.55);display:block;margin-bottom:4px;}
.kts-exp-thumb__name{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);display:block;line-height:1.3;}

/* Vignette intensifies on idle, matches the reference's mood without extra JS */
.kts-exp::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center, transparent 40%, rgba(6,10,16,0.5) 100%);opacity:0;transition:opacity 1.8s ease;}
.kts-exp.is-idle::after{opacity:1;}

@media (max-width:1100px){
  .kts-exp-thumbs-wrap{width:clamp(320px,34vw,480px);}
  .kts-exp-thumb{width:130px;height:190px;}
}
@media (max-width:768px){
  .kts-exp{height:clamp(500px,82vh,640px);}
  .kts-exp-thumbs-wrap{width:clamp(240px,65vw,360px);}
  .kts-exp-thumb{width:110px;height:160px;}
  .kts-exp-panel__title{font-size:clamp(26px,6vw,40px);}
}
@media (max-width:520px){
  .kts-exp-thumbs-wrap{display:none;}
  .kts-exp-tray{flex-direction:row;align-items:center;position:absolute;bottom:24px;right:20px;}
  .kts-exp-tray-controls{padding:0;}
  .kts-exp-content{left:20px;right:20px;max-width:none;bottom:96px;}
}
@media (prefers-reduced-motion: reduce){
  .kts-exp-slide,.kts-exp-slide__img,.kts-exp-thumb,.kts-exp-thumb__img,.kts-exp-thumbs,.kts-exp-panel,.kts-exp-timer__bar{transition:none;animation:none;}
  .kts-exp::after{display:none;}
}

/* ════════════════════════════════════════════════════════
   DESTINATION HUB — Why-Visit editorial, Experiences carousel,
   month chips, Accommodations, load-more reveal, card polish
   (see page-destination.php)
   ════════════════════════════════════════════════════ */

/* ---------- Why-Visit editorial two-column ---------- */
.why-editorial{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.why-editorial-media{border-radius:var(--radius);overflow:hidden;height:460px;}
.why-editorial-media img{width:100%;height:100%;object-fit:cover;}
.why-editorial-copy .eyebrow{display:block;margin-bottom:14px;}
.why-editorial-copy h2{font-size:clamp(26px,3vw,36px);margin-bottom:6px;}
.why-editorial-copy p{margin-bottom:14px;}
.why-editorial-list{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:0;}
.why-editorial-list li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #e7e5df;}
.why-editorial-list li:last-child{border-bottom:none;}
.why-editorial-list i{font-size:17px;color:var(--brass);margin-top:2px;flex-shrink:0;}
.why-editorial-list .numeral{
  font-family:var(--font-head);font-weight:600;font-size:18px;color:var(--brass);
  flex-shrink:0;width:28px;
}
.why-editorial-list strong{display:block;font-size:14px;color:var(--navy-deep);margin-bottom:2px;}
.why-editorial-list span{font-size:13px;color:var(--ink-soft);}

/* ---------- Homepage "Why book with us" — override to a single
   horizontal row of 4, numeral-above-text, instead of the stacked
   divider-list .why-editorial-list uses by default. Scoped to the
   .why-us-list second class already on this <ul> specifically, so
   page-destination.php's "Why This Country" section (which shares the
   base .why-editorial-list class) keeps its original stacked layout. ---------- */
.why-editorial-list.why-us-list{flex-direction:row;flex-wrap:wrap;gap:28px;margin-top:32px;}
.why-editorial-list.why-us-list li{flex:1 1 200px;flex-direction:column;align-items:flex-start;gap:8px;padding:0;border-bottom:none;}
.why-editorial-list.why-us-list li:not(:last-child){border-right:1px solid #e7e5df;padding-right:24px;}
.why-editorial-list.why-us-list .numeral{width:auto;}
@media (max-width:900px){
  .why-editorial-list.why-us-list{flex-direction:column;flex-wrap:nowrap;gap:0;}
  .why-editorial-list.why-us-list li{flex-direction:row;border-right:none;padding:14px 0;border-bottom:1px solid #e7e5df;}
  .why-editorial-list.why-us-list li:last-child{border-bottom:none;}
}

.why-us .why-editorial-media{height:520px;}

/* ---------- Homepage Why Us — when no image is set on this section
   (hero image field empty), .why-editorial-copy becomes the grid's only
   child. Let it span the full width instead of sitting in one half of
   the 2-column grid with blank space on the other side — self-corrects
   automatically the moment an image is added, since it'll no longer be
   an only-child at that point. Scoped to .why-us so page-destination.php's
   "Why This Country" section (which always ships with an image) is
   unaffected. ---------- */
.why-us .why-editorial-copy:only-child{grid-column:1 / -1;max-width:none;}
@media (max-width:900px){
  .why-editorial{grid-template-columns:1fr;gap:32px;}
  .why-editorial-media{height:280px;}
}

/* ---------- Experiences carousel (dark section on the destination hub —
   counts as the 2nd of the page's 2-dark-section budget, alongside the
   hero; distinct from the homepage's full-bleed dark .kts-exp-* slider) ---------- */
.dest-experiences-dark{background:var(--navy-deep);color:var(--ivory);}
.dest-experiences-dark .section-head h2{color:var(--ivory);}
.dest-experiences-dark .section-head p{color:#c8d0da;}
.dexp-wrap{position:relative;margin-top:8px;}
.dexp-track{
  display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding-bottom:8px;-webkit-overflow-scrolling:touch;
}
.dexp-track::-webkit-scrollbar{display:none;}
.dexp-track{scrollbar-width:none;}
.dexp-card{
  scroll-snap-align:start;flex:0 0 auto;width:300px;
  border:1px solid #e7e5df;border-radius:var(--radius);overflow:hidden;background:var(--white);
}
.dest-experiences-dark .dexp-card{background:transparent;border-color:rgba(224,225,221,0.22);}
.dexp-card-media{height:250px;overflow:hidden;}
.dexp-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.dexp-card:hover .dexp-card-media img{transform:scale(1.06);}
.dexp-card-body{padding:20px;}
.dexp-card-body h3{font-family:var(--font-head);font-weight:400;font-size:19px;margin:0 0 8px;color:var(--navy-deep);}
.dexp-card-body p{font-size:13px;color:var(--ink-soft);line-height:1.6;margin:0;}
.dest-experiences-dark .dexp-card-body h3{color:var(--ivory);}
.dest-experiences-dark .dexp-card-body p{color:#c8d0da;}
.dexp-arrows{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}
.dexp-arrow{
  width:38px;height:38px;border:1px solid #d8d5cd;border-radius:50%;background:var(--white);
  color:var(--navy-deep);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease;font-size:15px;
}
.dexp-arrow:hover{background:var(--navy-deep);color:var(--ivory);border-color:var(--navy-deep);}
@media (max-width:640px){
  .dexp-card{width:240px;}
}

/* ---------- Experience tag pills (Safari CPT's experience_tags field) —
   used on package-card.php (plain <span>, since the whole card is one <a>)
   and on single-safari.php's hero (real <a> links, .on-dark variant for
   readability against the dark hero background) ---------- */
.exp-pills{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px;}
.exp-pill{
  font-size:10px;letter-spacing:0.5px;text-transform:uppercase;font-weight:600;
  color:var(--brass);border:1px solid var(--brass-dim);border-radius:999px;
  padding:4px 11px;line-height:1.4;text-decoration:none;display:inline-block;
}
a.exp-pill:hover{background:var(--brass);color:var(--white);}
.exp-pill.on-dark{color:#e6c979;border-color:rgba(230,201,121,0.4);}
.exp-pill.on-dark:hover{background:#e6c979;color:var(--navy-deep);}

/* ---------- Related Experiences (Experience Hub template) — dark section,
   only ever 2-3 cards, unique to this template so free to style beyond the
   plain .dexp-card default. Cards with a photo (.has-media, the normal
   case) go full-bleed portrait with the caption overlaid on a gradient,
   matching the homepage's pillar-card/dest-card magazine language. Cards
   with no image at all (edge case — no override + no hero image on the
   target experience yet) keep the earlier plain bordered-card fallback. ---------- */
.exp-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:8px;}
.exp-related-card{
  display:block;position:relative;background:transparent;border:1px solid rgba(224,225,221,0.22);
  border-radius:var(--radius);overflow:hidden;text-decoration:none;transition:border-color .25s ease, transform .35s ease;
}
.exp-related-card:hover{border-color:var(--brass);}
.exp-related-card.has-media{border:none;aspect-ratio:3/4;}
.exp-related-card.has-media:hover{transform:translateY(-4px);}
.exp-related-media{height:180px;overflow:hidden;}
.exp-related-card.has-media .exp-related-media{position:absolute;inset:0;height:100%;}
.exp-related-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.exp-related-card:hover .exp-related-media img{transform:scale(1.06);}
.exp-related-card.has-media::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(13,27,42,0) 38%, rgba(13,27,42,0.9) 100%);
}
.exp-related-body{padding:18px 20px;position:relative;z-index:1;}
.exp-related-card.has-media .exp-related-body{position:absolute;left:0;right:0;bottom:0;padding:22px;}
.exp-related-body span{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--brass);font-weight:600;}
.exp-related-body h3{font-family:var(--font-head);font-weight:400;font-size:19px;margin:6px 0 0;color:var(--ivory);}
@media (prefers-reduced-motion: reduce){
  .exp-related-card{transition:none;}
}

/* ---------- Experience Hub FAQ — optional two-column layout (image left,
   accordion right) when an image is set on the section; unique to this
   template's FAQ, so free to style without affecting the plain single-
   column FAQ used on About/Destination Hub/single-safari/Safaris archive. ---------- */
.eh-faq-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start;}
.eh-faq-media{border-radius:var(--radius);overflow:hidden;position:sticky;top:calc(var(--stack-h, 88px) + 32px);}
.eh-faq-media img{width:100%;height:100%;max-height:560px;object-fit:cover;display:block;}
.eh-faq-list .section-head{max-width:none;}
@media (max-width:900px){
  .eh-faq-grid{grid-template-columns:1fr;gap:32px;}
  .eh-faq-media{position:static;}
  .eh-faq-media img{max-height:340px;}
}

/* ---------- Experience Hub — Seasonal Guide (dark, interactive month
   wheel). Unique to this template, no shared classes touched. The ring
   segments are colored inline via style="stroke:var(--eh-seas-*)" in the
   PHP (see template-parts/experience/section-seasonal-guide.php); this
   block handles layout, the center readout, and the legend. ---------- */
.eh-seasonal{background:var(--navy-deep);color:var(--ivory);}
.eh-seasonal-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;}
.eh-seasonal-wheel-col{display:flex;justify-content:center;}
.eh-seasonal-wheel{position:relative;width:100%;max-width:380px;aspect-ratio:1/1;}
.eh-seasonal-ring{width:100%;height:100%;display:block;}
.eh-seasonal-tick{transition:stroke .3s ease;}
.eh-seasonal-now-marker{filter:drop-shadow(0 0 4px rgba(0,0,0,0.55));}
.eh-seasonal-month-label{
  position:absolute;transform:translate(-50%,-50%);
  font-size:10px;letter-spacing:0.5px;font-weight:600;color:rgba(224,225,221,0.55);
  pointer-events:none;
}
.eh-seasonal-center{
  position:absolute;inset:22%;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:6px;padding:8px;
}
.eh-seasonal-center-label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--brass);font-weight:600;}
.eh-seasonal-center-value{font-family:var(--font-head);font-weight:400;font-style:italic;font-size:clamp(20px,2.2vw,26px);color:var(--ivory);line-height:1.15;}
.eh-seasonal-center-desc{font-size:12px;color:#c8d0da;max-width:150px;line-height:1.5;}

.eh-seasonal-info .section-head{max-width:none;}
.eh-seasonal-info .section-head h2{color:var(--ivory);}
.eh-seasonal-info .section-head p{color:#c8d0da;}
.eh-seasonal-legend{display:flex;flex-direction:column;list-style:none;}
.eh-seasonal-legend-item{
  display:flex;gap:14px;padding:18px 0;border-top:1px solid rgba(224,225,221,0.15);
  cursor:pointer;transition:opacity .2s ease;
}
.eh-seasonal-legend-item:last-child{border-bottom:1px solid rgba(224,225,221,0.15);}
.eh-seasonal-legend-item:hover{opacity:0.75;}
.eh-seasonal-legend-item.is-active .eh-seasonal-legend-body em{color:var(--brass);}
.eh-seasonal-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;margin-top:6px;}
.eh-seasonal-swatch--red{background:var(--eh-seas-red);}
.eh-seasonal-swatch--green{background:var(--eh-seas-green);}
.eh-seasonal-swatch--cream{background:var(--eh-seas-cream);}
.eh-seasonal-legend-body{display:flex;flex-direction:column;gap:2px;}
.eh-seasonal-legend-body em{font-family:var(--font-head);font-weight:400;font-style:italic;font-size:17px;color:var(--ivory);transition:color .2s ease;}
.eh-seasonal-legend-body small{font-size:11px;letter-spacing:0.8px;color:var(--brass);font-weight:600;}
.eh-seasonal-legend-body p{font-size:13px;color:#c8d0da;margin-top:4px;}
@media (max-width:900px){
  .eh-seasonal-grid{grid-template-columns:1fr;gap:40px;}
  .eh-seasonal-wheel-col{order:-1;}
}
@media (prefers-reduced-motion: reduce){
  .eh-seasonal-tick{transition:none;}
}

/* ---------- Month chips (Best Time to Visit) — visual language
   borrowed from the homepage's .month-tab, but static (no JS tabs) ---------- */
.month-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:40px;}
.month-chip{
  padding:8px 18px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:0.5px;
  text-transform:uppercase;background:#f0efe9;color:#a3a094;
}
.month-chip.is-best{background:var(--brass);color:var(--ivory);}

/* ---------- Accommodations grid ---------- */
.accommodation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.accommodation-card{border:1px solid #e7e5df;border-radius:var(--radius);overflow:hidden;background:var(--white);transition:box-shadow .3s ease,transform .3s ease;}
.accommodation-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(13,27,42,0.08);}
.accommodation-media{height:270px;overflow:hidden;}
.accommodation-media img{width:100%;height:100%;object-fit:cover;}
.accommodation-body{padding:22px;}
.accommodation-body h3{font-family:var(--font-head);font-weight:400;font-size:21px;margin:0 0 8px;color:var(--navy-deep);}
.accommodation-location{font-size:13px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.accommodation-location i{color:var(--brass);font-size:14px;}
.accommodation-stars{color:var(--brass);font-size:13px;display:flex;gap:2px;margin-bottom:10px;}
.accommodation-desc{font-size:13px;color:var(--ink-soft);line-height:1.6;margin-bottom:14px;}
.accommodation-link{font-size:12px;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;color:var(--navy-deep);text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.accommodation-link:hover{color:var(--brass);}
@media (max-width:1024px){ .accommodation-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .accommodation-grid{grid-template-columns:1fr;} }

/* ---------- Itinerary grid: equal card heights ---------- */
/* .itin-cell is the grid item (stretched to row height by CSS Grid's default
   align-items:stretch); making it a single-child flex container lets the
   .package-card inside it stretch to fill that height too. On the homepage
   and archive grids, .package-card is the grid item directly, so this rule
   is scoped to .itin-cell only and doesn't change those. */
.itin-cell{display:flex;}
.itin-cell .package-card{width:100%;}

/* Excerpt length varies by whoever fills in card_excerpt — cap it visually
   as a safety net alongside the wp_trim_words() limit in package-card.php,
   so one long line of copy doesn't throw off row height either. */
.package-card p.p-excerpt{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.itin-cell-hidden{display:none;}
@keyframes destCardReveal{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.itin-cell-revealed{animation:destCardReveal .4s ease both;}
.dest-load-more{text-align:center;margin-top:44px;}
/* (load-more reveal rules above pair with the JS in main.js) */

/* ---------- Package card hover polish: brass bottom-border sweep ---------- */
.package-card{position:relative;}
.package-card::after{
  content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--brass);
  transition:width .35s cubic-bezier(.25,.46,.45,.94);
}
.package-card:hover::after{width:100%;}
.package-card .p-media img{transition:transform .5s ease;}
.package-card:hover .p-media img{transform:scale(1.04);}

@media (prefers-reduced-motion: reduce){
  .itin-cell-revealed,.package-card::after,.package-card .p-media img,.dexp-card-media img{transition:none;animation:none;}
}

/* ════════════════════════════════════════════════════════
   TRAVEL GUIDES — single.php byline/TOC support, archive.php
   category tabs, featured banner, richer cards
   ════════════════════════════════════════════════════ */

/* ---------- single.php: author/date/reading-time byline ---------- */
.guide-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:13px;color:var(--ink-soft);padding:18px 0 0;
}
.guide-meta i{color:var(--brass);font-size:13px;}

/* ---------- archive.php: category filter tabs ---------- */
.guide-cat-tabs{
  display:flex;flex-wrap:wrap;gap:10px;margin:-16px 0 40px;
}
.guide-cat-tabs a{
  padding:8px 18px;border-radius:999px;border:1px solid #e7e5df;
  font-size:12px;font-weight:600;letter-spacing:0.4px;text-transform:uppercase;
  color:var(--ink-soft);text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.guide-cat-tabs a:hover{border-color:var(--brass);color:var(--navy-deep);}
.guide-cat-tabs a.active{background:var(--navy-deep);border-color:var(--navy-deep);color:var(--ivory);}

/* ---------- archive.php: featured guide banner ---------- */
.guide-featured{
  display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center;
  text-decoration:none;margin-bottom:56px;padding-bottom:48px;border-bottom:1px solid #e7e5df;
}
.guide-featured-media{border-radius:var(--radius);overflow:hidden;height:340px;}
.guide-featured-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.guide-featured:hover .guide-featured-media img{transform:scale(1.03);}
.guide-featured-body h2{font-size:clamp(24px,2.6vw,32px);color:var(--navy-deep);margin:10px 0 14px;line-height:1.2;}
.guide-featured-body p{font-size:14px;color:var(--ink-soft);line-height:1.7;margin-bottom:18px;}
.guide-featured-cta{
  display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;
  letter-spacing:0.5px;text-transform:uppercase;color:var(--navy-deep);
}
.guide-featured:hover .guide-featured-cta{color:var(--brass);}
@media (max-width:900px){
  .guide-featured{grid-template-columns:1fr;}
  .guide-featured-media{height:220px;}
}

/* ---------- shared: g-meta row (category + date + reading time) ---------- */
.g-meta{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:11px;font-weight:600;letter-spacing:0.4px;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:8px;
}
.g-meta .g-cat{color:var(--brass);}
.guide-card{display:flex;flex-direction:column;text-decoration:none;transition:box-shadow .3s ease,transform .3s ease;}
.guide-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(13,27,42,0.08);}
.guide-card p{color:var(--ink-soft);line-height:1.6;}

/* ---------- Guide template (page-guide.php): Quick Facts + Callout ----------
   Both sit as siblings to .page-content rather than inside it (so the
   quick-facts table and callout box can sit full-width/distinct from body
   copy), so their headings get their own rules matching .page-content's
   sizing rather than inheriting it automatically. */
.guide-quick-facts{margin:40px 0;}
.guide-quick-facts h2{font-size:24px;margin:0 0 16px;color:var(--navy-deep);}
.guide-quick-facts-table{overflow-x:auto;border:1px solid #e7e5df;border-radius:var(--radius);}
.guide-quick-facts-table table{width:100%;border-collapse:collapse;font-size:14px;}
.guide-quick-facts-table th,.guide-quick-facts-table td{text-align:left;padding:12px 16px;vertical-align:top;}
.guide-quick-facts-table thead th{background:var(--navy-deep);color:var(--white);font-weight:600;font-size:12px;letter-spacing:0.3px;text-transform:uppercase;}
.guide-quick-facts-table tbody tr:nth-child(even){background:#f7f6f2;}
.guide-quick-facts-table tbody td{color:var(--ink-soft);border-top:1px solid #e7e5df;}
.guide-quick-facts-table tbody td:first-child{color:var(--navy-deep);font-weight:600;}

.guide-callout{
  margin:32px 0;padding:22px 26px;border-bottom:3px solid var(--brass);
  background:var(--ivory);border-radius:var(--radius);
}
.guide-callout h3{font-size:17px;margin:0 0 10px;color:var(--navy-deep);}
.guide-callout p{font-size:14px;line-height:1.7;color:var(--ink-soft);margin-bottom:0;}
.guide-callout p + p{margin-top:12px;}

/* ---------- Guide template: two-column layout + sidebar widgets ---------- */
.guide-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:56px;align-items:start;}
.guide-main{min-width:0;}
.guide-sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:132px;}

.sidebar-widget{
  background:var(--ivory);border-top:2px solid var(--brass);border-radius:var(--radius);
  padding:24px;box-shadow:0 1px 3px rgba(13,27,42,0.06);
}
.sidebar-widget h3{font-size:16px;margin:0 0 14px;color:var(--navy-deep);}

.sidebar-widget--safaris{padding:20px;}
.sidebar-widget--safaris h3{padding:0 4px;}

/* "Boutique overlay" treatment: photo fills the card, title and meta sit
   on a gradient over the bottom third, brass corner as the one accent.
   Chosen over a scaled-down package-card because the sidebar column is
   too narrow to do the pills/excerpt/button version any justice. */
.rec-safari-list{display:flex;flex-direction:column;gap:16px;}
.rec-safari-card{
  position:relative;display:block;height:220px;border-radius:4px;overflow:hidden;
  text-decoration:none;color:inherit;
}
.rec-safari-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.rec-safari-card:hover img{transform:scale(1.04);}
.rec-safari-corner{
  position:absolute;top:0;left:0;width:0;height:0;z-index:2;
  border-style:solid;border-width:22px 22px 0 0;
  border-color:var(--brass) transparent transparent transparent;
}
.rec-safari-grad{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(13,27,42,0) 38%, rgba(13,27,42,.88) 100%);
}
.rec-safari-content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px;}
.rec-safari-cat{
  font-size:10px;letter-spacing:1.8px;text-transform:uppercase;font-weight:600;
  color:var(--ivory);opacity:.85;display:block;margin-bottom:6px;
}
.rec-safari-title{
  font-family:var(--font-head);font-weight:400;font-size:18px;line-height:1.25;
  color:var(--white);display:block;margin-bottom:6px;
}
.rec-safari-meta{font-size:12px;color:var(--ivory);opacity:.85;display:block;}
@media (prefers-reduced-motion: reduce){
  .rec-safari-card img{transition:none;}
}

.sidebar-widget--enquire{background:var(--navy-deep);border-top-color:var(--brass);}
.sidebar-widget--enquire h3{color:var(--ivory);}
.sidebar-widget--enquire p{font-size:13px;line-height:1.6;color:#c7d0da;margin-bottom:20px;}
.sidebar-enquire-actions{display:flex;flex-direction:column;gap:10px;}
.sidebar-enquire-actions .btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-size:13px;}
.sidebar-whatsapp{background:#25D366;color:var(--white);border-color:#25D366;}
.sidebar-whatsapp:hover{background:#1ebc59;color:var(--white);}

.sidebar-guide-list{list-style:none;margin:0 0 16px;padding:0;}
.sidebar-guide-list li{border-bottom:1px solid #e7e5df;}
.sidebar-guide-list li:last-child{border-bottom:none;}
.sidebar-guide-list a{
  display:flex;align-items:center;gap:10px;padding:14px 2px;color:var(--ink);
}
.sidebar-guide-list a:hover{color:var(--brass);}
.sidebar-guide-list .sg-title{flex:1;font-size:14px;line-height:1.4;}
.sidebar-guide-list a i{font-size:13px;color:var(--brass);flex-shrink:0;}
.sidebar-guide-all{
  display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:0.5px;
  text-transform:uppercase;font-weight:600;color:var(--navy-deep);
}
.sidebar-guide-all i{font-size:12px;}

@media (max-width:900px){
  .guide-layout{grid-template-columns:1fr;gap:32px;}
  .guide-sidebar{position:static;}
}

/* =================================================================
   SAFARI PLANNER — standalone full-screen wizard (page-plan-your-safari.php)
   Self-contained section; bypasses the shared header/footer chrome
   entirely, so nothing here should leak into or depend on other pages.
   ================================================================= */
body.planner-page{padding-top:0;}
.planner{display:flex;min-height:100vh;}

.planner-exit{
  position:fixed;top:28px;right:36px;z-index:80;
  display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);
  text-decoration:none;
}
.planner-exit:hover{color:var(--navy-deep);}
.planner-exit i{font-size:16px;}

/* --- Side panel --- */
.planner-side{width:320px;flex-shrink:0;background:var(--navy-deep);color:var(--ivory);position:relative;}
.planner-side-inner{position:sticky;top:0;padding:48px 36px;height:100vh;box-sizing:border-box;display:flex;flex-direction:column;}
.planner-logo{font-family:var(--font-head);font-size:19px;color:var(--ivory);text-decoration:none;letter-spacing:.3px;}
.planner-logo span{color:var(--brass);}
.planner-side .custom-logo{max-height:40px;width:auto;}
.planner-steps{list-style:none;margin:48px 0 auto;padding:0;}
.planner-steps li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;opacity:.4;transition:opacity .25s ease;}
.planner-steps li.is-active{opacity:1;}
.planner-steps li.is-done{opacity:.7;}
.planner-steps li.is-done .ps-num{color:var(--ivory);}
.ps-num{font-family:var(--font-head);font-weight:400;font-size:15px;color:var(--brass);width:20px;flex-shrink:0;}
.ps-label{font-size:13px;line-height:1.4;padding-top:1px;}
.planner-side-contact{display:flex;align-items:center;gap:8px;color:rgba(224,225,221,0.75);font-size:13px;text-decoration:none;margin-top:24px;}
.planner-side-contact:hover{color:var(--ivory);}

/* --- Main content --- */
.planner-main{flex:1;background:var(--white);display:flex;align-items:center;justify-content:center;padding:80px 48px;}
.planner-form{width:100%;max-width:620px;}
.planner-step{display:none;}
.planner-step.is-active{display:block;}
.planner-step .eyebrow{display:block;margin-bottom:14px;}
.planner-step h1{font-family:var(--font-head);font-weight:400;font-size:clamp(28px,3.6vw,38px);color:var(--navy-deep);margin-bottom:10px;line-height:1.2;}
.planner-step h1 em{color:var(--brass);font-style:italic;}
.planner-sub{font-size:15px;color:var(--ink-soft);margin-bottom:36px;max-width:480px;}

/* Selectable option grids */
.planner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.planner-grid--months{grid-template-columns:repeat(3,1fr);}
.planner-grid--dest{grid-template-columns:repeat(2,1fr);}
.planner-option{
  border:1px solid var(--dust);border-radius:var(--radius);padding:18px 16px;
  background:var(--white);font-family:var(--font-body);font-size:14px;font-weight:600;
  color:var(--navy-deep);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;
  text-align:center;
}
.planner-option:hover{border-color:var(--brass);}
.planner-option.is-selected{border-color:var(--brass);background:var(--navy-deep);color:var(--ivory);}
.planner-option--wide{grid-column:1 / -1;}
.planner-option--icon{display:flex;align-items:center;gap:10px;justify-content:flex-start;text-align:left;}
.planner-option--icon i{font-size:20px;color:var(--brass);flex-shrink:0;}
.planner-option--icon.is-selected i{color:var(--ivory);}

/* Traveller counters */
.planner-counters{margin-top:28px;}
.planner-counter{display:flex;align-items:center;gap:24px;padding:14px 0;border-top:1px solid #e7e5df;}
.planner-counter:first-child{border-top:none;}
.pc-buttons{display:flex;align-items:center;gap:14px;}
.pc-btn{
  width:34px;height:34px;border-radius:50%;border:1px solid var(--navy-deep);background:var(--white);
  color:var(--navy-deep);font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;
}
.pc-btn:hover{background:var(--navy-deep);color:var(--ivory);}
.pc-btn:disabled{opacity:.35;cursor:default;background:var(--white);color:var(--navy-deep);}
.pc-value{min-width:20px;text-align:center;font-family:var(--font-head);font-size:18px;color:var(--navy-deep);}
.pc-label{font-size:14px;font-weight:600;color:var(--navy-deep);}
.pc-label span{display:block;font-size:12px;font-weight:400;color:var(--ink-soft);margin-top:2px;}

/* Budget slider */
.planner-budget{margin-top:8px;}
.pb-readout{display:inline-block;background:var(--navy-deep);color:var(--ivory);padding:8px 18px;border-radius:4px;font-family:var(--font-head);font-size:19px;margin-bottom:22px;}
.pb-slider{width:100%;accent-color:var(--brass);height:6px;cursor:pointer;}
.pb-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-soft);margin-top:10px;}

/* Step 6 — details */
.planner-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--ink-soft);margin:22px 0 8px;}
.planner-consent input{margin-top:3px;}
.planner-consent a{color:var(--navy-deep);text-decoration:underline;}
.planner-submit{width:100%;justify-content:center;}

/* Thank-you state */
.planner-thankyou{text-align:center;padding:60px 0;}
.planner-thankyou i{font-size:40px;color:var(--brass);display:block;margin-bottom:18px;}
.planner-thankyou h2{font-family:var(--font-head);font-weight:400;font-size:28px;margin-bottom:10px;color:var(--navy-deep);}
.planner-thankyou p{font-size:14px;color:var(--ink-soft);margin-bottom:26px;max-width:420px;margin-left:auto;margin-right:auto;}

/* Back / Next / progress dots */
.planner-nav{display:flex;flex-wrap:wrap;gap:16px;margin-top:44px;}
.planner-back{order:1;}
.planner-back.is-invisible{visibility:hidden;}
.planner-next{order:2;flex:1;justify-content:center;}
.planner-dots{order:3;flex-basis:100%;display:flex;gap:6px;justify-content:center;margin-top:10px;}
.pd{width:7px;height:7px;border-radius:50%;background:#e2e0d8;transition:width .2s ease,background .2s ease;}
.pd.is-active{background:var(--brass);width:20px;border-radius:4px;}

/* Floating WhatsApp pill */
.planner-whatsapp{
  position:fixed;bottom:28px;right:28px;z-index:60;
  display:flex;align-items:center;gap:8px;background:#25D366;color:#fff;
  padding:14px 22px;border-radius:999px;font-size:14px;font-weight:600;
  text-decoration:none;box-shadow:0 8px 24px rgba(13,27,42,0.25);
  transition:background .2s ease;
}
.planner-whatsapp:hover{background:#1ebc59;color:#fff;}
.planner-whatsapp i{font-size:18px;}

@media (max-width:900px){
  .planner{flex-direction:column;}
  .planner-side{width:100%;}
  .planner-side-inner{position:static;height:auto;padding:32px 24px;}
  .planner-steps{margin:28px 0;}
  .planner-main{padding:48px 24px;}
  .planner-grid,.planner-grid--months{grid-template-columns:repeat(2,1fr);}
  .planner-grid--dest{grid-template-columns:1fr;}
  .planner-exit span{display:none;}
  .planner-whatsapp span{display:none;}
  .planner-whatsapp{padding:14px;}
}

/* ════════════════════════════════════════════════════════
   HOMEPAGE EDITORIAL REFRESH (Aug 2026)
   Everything below is scoped to homepage-only wrapper classes
   (.home-manifesto, .home-hero, .home-steps, or the .why-us-list
   modifier that's already unique to the homepage Why Us section)
   so nothing here touches the same-named shared components used
   on About, Contact, Destination Hub, Safari archive/single, or
   the blog templates.
   ════════════════════════════════════════════════════ */

/* ---------- HERO — slow Ken Burns zoom + scroll cue, homepage only ---------- */
.home-hero .hero-bg{
  animation:kts-home-kenburns 26s ease-out forwards;
  will-change:transform;
}
@keyframes kts-home-kenburns{
  from{transform:scale(1.12);}
  to{transform:scale(1);}
}
.home-hero-scroll-cue{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:3;
  animation:kts-home-bounce 2.2s ease-in-out infinite;
}
@keyframes kts-home-bounce{
  0%,100%{transform:translateX(-50%) translateY(0);}
  50%{transform:translateX(-50%) translateY(8px);}
}
@media (max-width:640px){ .home-hero-scroll-cue{display:none;} }
@media (prefers-reduced-motion: reduce){
  .home-hero .hero-bg{animation:none;}
  .home-hero-scroll-cue{animation:none;}
}

/* ---------- MANIFESTO (new layout — dark, two-column, deliberately photo-free) ---------- */
.home-manifesto{padding:130px 0;background:var(--navy-deep);color:var(--ivory);}
.home-manifesto-head{max-width:620px;margin:0 auto 56px;text-align:center;}
.home-manifesto-head h2{color:var(--ivory);font-size:clamp(28px,3vw,40px);margin-top:10px;}
.home-manifesto-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;max-width:1020px;margin:0 auto;}
.home-manifesto-cols p{font-size:16.5px;line-height:1.75;color:var(--ivory);opacity:.85;}
@media (max-width:800px){ .home-manifesto-cols{grid-template-columns:1fr;gap:24px;} }

/* ---------- WHY US — 2x2 reasons grid + line-style CTA (homepage only;
   scoped via .why-us-list, a modifier class already unique to this
   section, so page-destination.php's identical base .why-editorial-list
   keeps its original single-row layout) ---------- */
.why-editorial-list.why-us-list{
  display:grid;grid-template-columns:1fr 1fr;gap:32px 40px;
  flex-direction:row;flex-wrap:wrap; /* fallback no-ops once display:grid wins */
}
.why-editorial-list.why-us-list li{flex:none;border-right:none !important;padding-right:0;}
.why-editorial-list.why-us-list .numeral{font-size:28px;margin-bottom:6px;}
@media (max-width:560px){
  .why-editorial-list.why-us-list{grid-template-columns:1fr;}
}
.why-us-cta-link{
  display:inline-flex;align-items:center;gap:0;margin-top:28px;
  font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:600;
  color:var(--navy-deep);text-decoration:none;border-bottom:1px solid var(--navy-deep);padding-bottom:4px;
}

/* ---------- PLAN STEPS — tall image-card slider (replaces the icon grid;
   home-only classnames, no collision risk) ---------- */
.home-steps{padding:130px 0 140px;background:var(--white);}
.home-steps .section-head{margin-bottom:44px;}
.home-steps-track{
  display:flex;gap:22px;overflow-x:auto;padding-bottom:8px;
  scroll-snap-type:x proximity;scrollbar-width:none;
}
.home-steps-track::-webkit-scrollbar{display:none;}
.home-step-card{
  position:relative;flex:0 0 auto;width:min(76vw,320px);aspect-ratio:3/4.3;
  border-radius:var(--radius);overflow:hidden;scroll-snap-align:start;
  background:var(--navy-deep);box-shadow:0 20px 40px -24px rgba(13,27,42,.4);
}
.home-step-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.home-step-card:hover img{transform:scale(1.06);}
.home-step-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(13,27,42,0) 35%, rgba(13,27,42,.82) 100%);}
.home-step-card-body{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:24px;color:var(--white);}
.home-step-eyebrow{display:block;font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:#e6c979;font-weight:600;margin-bottom:8px;}
.home-step-card-body h3{color:var(--white);font-size:20px;margin-bottom:6px;}
.home-step-card-body p{font-size:13px;color:var(--ivory);opacity:.85;max-width:28ch;}
/* .home-steps-nav: overlay-arrow rules live with .home-pillars-nav below (shared). */
@media (prefers-reduced-motion: reduce){
  .home-step-card img{transition:none;}
}

/* ---------- REVEAL-ON-SCROLL — stagger utilities ----------
   .reveal / .reveal.in already exist site-wide (main.js wires the
   IntersectionObserver). These delay classes are new, additive, and
   safe to use anywhere — including outside the homepage — since they
   only ever add a transition-delay to an element that already opted
   into .reveal. */
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.24s;}
.reveal-delay-3{transition-delay:.36s;}
@media (prefers-reduced-motion: reduce){
  .reveal-delay-1,.reveal-delay-2,.reveal-delay-3{transition-delay:0s;}
}
/* Wrapper used around each package-card in the homepage grids so the
   card can carry .reveal without needing to edit the shared
   template-parts/package-card.php (used by Safari archive/single too). */
.package-grid > .home-card-reveal{height:100%;}
.package-grid > .home-card-reveal > .package-card{height:100%;}

/* ════════════════════════════════════════════════════════
   HOMEPAGE EDITORIAL REFRESH, PART 2 — visual elevation for the
   remaining sections. Every rule below is scoped under a home-only
   modifier class added to that section's own <section> wrapper, so
   nothing here changes the same base components (.story, .dest-card,
   .parks/.package-card, .park-card, .guide-card, .testimonials,
   .faq-item) as they appear on About, Contact, Destination Hub, the
   Safari archive/single templates, or the blog.
   ════════════════════════════════════════════════════ */

/* ---------- OUR STORY — asymmetric offset image + bigger type ---------- */
.home-story .story-grid{grid-template-columns:0.95fr 1.05fr;gap:70px;align-items:center;}
.home-story .story-media{border-radius:6px;overflow:hidden;box-shadow:0 40px 70px -30px rgba(13,27,42,.35);}
.home-story .lead-heading{font-size:clamp(26px,3.2vw,38px);}
@media (min-width:901px){ .home-story .story-media{transform:translateY(-36px);} }
/* Tablet: stack image above copy. The .home-story .story-grid rule above
   has higher specificity than the generic 900px .story-grid collapse, so
   without restating it here the grid stayed two-column on every screen. */
@media (max-width:900px){
  .home-story .story-grid{grid-template-columns:1fr;gap:40px;}
  .home-story .story-media{transform:none;height:360px;}
}
/* Mobile: image hidden, copy runs full width. */
@media (max-width:640px){
  .home-story .story-media{display:none;}
}

/* ---------- PILLARS — rebuilt as a full-bleed horizontal slider of tall
   photo cards (same track+arrow mechanism as Plan Steps), replacing the
   boxed 4-up grid. New home-pillar-card classnames, zero collision risk. ---------- */
.home-pillars .cards-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px;}
.home-pillars .cards-head h2{margin-top:8px;}
.home-pillars-track{
  display:flex;gap:22px;overflow-x:auto;padding-bottom:8px;
  scroll-snap-type:x proximity;scrollbar-width:none;
}
.home-pillars-track::-webkit-scrollbar{display:none;}
.home-pillar-card{
  position:relative;flex:0 0 auto;width:min(78vw,380px);aspect-ratio:3/4;
  border-radius:6px;overflow:hidden;scroll-snap-align:start;text-decoration:none;
  box-shadow:0 20px 40px -24px rgba(13,27,42,.4);
}
.home-pillar-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.home-pillar-card:hover img{transform:scale(1.06);}
.home-pillar-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(13,27,42,0) 35%, rgba(13,27,42,.82) 100%);}
.home-pillar-card-body{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:26px;color:var(--white);}
.home-pillar-card-icon{display:none;} /* icon accent kept in ACF for future use, not shown in the full-bleed treatment */
.home-pillar-card-body h3{color:var(--white);font-size:23px;margin-bottom:8px;}
.home-pillar-card-body p{font-size:13.5px;color:var(--ivory);opacity:.88;max-width:30ch;margin-bottom:14px;}
.home-pillar-card-go{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--white);font-weight:600;display:inline-flex;align-items:center;gap:6px;}
/* Arrows overlay the cards (left/right edges, vertically centred) instead of
   sitting in a row beneath the track. The nav wrapper is pointer-events:none
   so it never blocks clicks on the cards; only the buttons themselves are
   clickable. Stage state classes (set in main.js) fade out whichever arrow
   has nothing left to scroll to.

   Hardening (v1.11.5): every overlay rule is scoped with the child combinator
   (.home-*-stage > .home-*-nav), and the sections themselves are
   position:relative. If a page cache serves older HTML without the stage
   wrapper (seen on mobile, which caches separately), the arrows fall back to a
   normal row under the cards instead of anchoring to the page and floating
   over the hero. */
.home-pillars,
.home-steps{position:relative;}
.home-pillars-nav,
.home-steps-nav{display:flex;gap:10px;margin-top:26px;}
.home-steps-nav{justify-content:flex-end;}
.home-pillars-stage,
.home-steps-stage{position:relative;}
.home-pillars-stage > .home-pillars-nav,
.home-steps-stage > .home-steps-nav{position:absolute;inset:0 0 8px 0;margin:0;gap:0;align-items:center;justify-content:space-between;padding:0 18px;pointer-events:none;z-index:5;}
.home-pillars-stage > .home-pillars-nav .dexp-arrow,
.home-steps-stage > .home-steps-nav .dexp-arrow{
  pointer-events:auto;width:52px;height:52px;font-size:20px;
  background:rgba(247,244,238,.92);border-color:transparent;color:var(--navy-deep);
  box-shadow:0 10px 28px -10px rgba(13,27,42,.55);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .2s ease,color .2s ease,opacity .25s ease,visibility .25s ease,transform .2s ease;
}
.home-pillars-stage > .home-pillars-nav .dexp-arrow:hover,
.home-steps-stage > .home-steps-nav .dexp-arrow:hover{background:var(--navy-deep);color:var(--ivory);border-color:var(--navy-deep);transform:scale(1.06);}
.home-pillars-nav .dexp-arrow:focus-visible,
.home-steps-nav .dexp-arrow:focus-visible{outline:2px solid var(--brass,#b08d57);outline-offset:3px;}
.home-pillars-stage.is-at-start .dexp-arrow--prev,
.home-pillars-stage.is-at-end .dexp-arrow--next,
.home-steps-stage.is-at-start .dexp-arrow--prev,
.home-steps-stage.is-at-end .dexp-arrow--next{opacity:0;visibility:hidden;pointer-events:none;}
@media (max-width:700px){
  .home-pillars-stage > .home-pillars-nav,
  .home-steps-stage > .home-steps-nav{padding:0 10px;}
  .home-pillars-stage > .home-pillars-nav .dexp-arrow,
  .home-steps-stage > .home-steps-nav .dexp-arrow{width:42px;height:42px;font-size:17px;}
}
@media (max-width:700px){ .home-pillars .cards-head{flex-direction:column;align-items:flex-start;gap:16px;} }
@media (prefers-reduced-motion: reduce){ .home-pillar-card img{transition:none;} }

/* ---------- DESTINATION TEASERS — full-bleed edge-to-edge diptych,
   min-height:82vh, no gap/radius/shadow — replaces the boxed gapped-card
   grid. Combined-class selectors (.dest-teasers.home-dest-teasers) are
   used deliberately so these rules out-specify page-destinations-index.php's
   plain .dest-grid/.dest-card styling without touching it. ---------- */
.dest-teasers.home-dest-teasers{padding:96px 0 0;}
.home-dest-teasers .dest-grid{grid-template-columns:1fr 1fr;gap:0;margin-top:0;}
.home-dest-teasers .dest-card{height:auto;min-height:82vh;border-radius:0;}
.home-dest-teasers .dest-card-content{padding:56px;}
.home-dest-teasers .dest-card-content .eyebrow{font-size:12px;letter-spacing:2.5px;}
.home-dest-teasers .dest-card-content h3{font-size:clamp(34px,4vw,52px);margin-bottom:14px;}
.home-dest-teasers .dest-card-content p{font-size:15px;max-width:400px;opacity:.9;}
@media (max-width:880px){
  .home-dest-teasers .dest-grid{grid-template-columns:1fr;}
  .home-dest-teasers .dest-card{min-height:64vh;}
}

/* ---------- TRUST STRIP — rebuilt as a full-bleed photo band with the
   heading + real stats + CTA overlaid on top (falls back to a plain navy
   band if no background photo has been set yet in wp-admin). ---------- */
.home-trust-strip{position:relative;overflow:hidden;}
.home-trust-strip.has-bg{
  min-height:78vh;display:flex;align-items:center;color:var(--ivory);
  padding:0;border-top:none;border-bottom:none;
}
.home-trust-strip:not(.has-bg){background:var(--navy-deep);color:var(--ivory);padding:110px 0;border-top:none;border-bottom:none;}
.home-trust-strip-bg{position:absolute;inset:0;z-index:0;}
.home-trust-strip-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.home-trust-strip-duotone{position:absolute;inset:0;background:linear-gradient(100deg, rgba(13,27,42,.88) 15%, rgba(13,27,42,.4) 60%, rgba(13,27,42,.15) 100%);}
.wrap.home-trust-strip-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;max-width:1520px;}
.home-trust-strip .trust-strip-head{max-width:none;margin:0;text-align:left;}
.home-trust-strip .trust-strip-head h2{font-size:clamp(26px,3.2vw,40px);color:var(--white);margin-top:10px;max-width:16ch;}
.home-trust-strip:not(.has-bg) .trust-strip-head .eyebrow{color:#e6c979;}
.home-trust-stats{display:flex;flex-direction:column;gap:26px;}
.home-trust-stat{border-top:1px solid rgba(224,225,221,.25);padding-top:16px;}
.home-trust-stat:first-child{border-top:none;padding-top:0;}
.home-trust-stat strong{display:block;font-family:var(--font-head);font-weight:400;font-style:normal;font-size:clamp(26px,2.6vw,36px);color:#e6c979;margin-bottom:4px;line-height:1;}
.home-trust-stat span{font-size:13.5px;letter-spacing:.3px;color:var(--ivory);opacity:.9;}
.home-trust-stat--badge img{max-width:150px;max-height:70px;width:auto;height:auto;object-fit:contain;}
.home-trust-stat-cta{border-top:none;padding-top:6px;}
.home-trust-stat-cta .btn{white-space:nowrap;}
@media (max-width:880px){
  .home-trust-strip-grid{grid-template-columns:1fr;}
  .home-trust-strip.has-bg{min-height:auto;padding:90px 0;}
}

/* ---------- SAFARI PACKAGES + RECOMMENDED — bigger photography, rounder cards
   (scoped to these two home sections only — the same .package-card renders
   on the Safari archive and single-safari "similar safaris" grid unchanged) ---------- */
.home-packages .package-card,
.recommended-safaris .package-card{border-radius:6px;}
.home-packages .package-card .p-media img,
.recommended-safaris .package-card .p-media img{height:320px;}
/* Title size override removed (v1.11.7) — .package-card h3 is 18px everywhere. */

/* ---------- TOP PARKS — taller tiles, bigger label type ---------- */
.home-top-parks .park-card{height:360px;}
.home-top-parks .park-content h3{font-size:22px;}

/* ---------- GUIDES TEASER — bigger imagery ---------- */
.home-guides-teaser .guide-card img{height:210px;}
.home-guides-teaser .guide-card h3{font-size:21px;}

/* ---------- TESTIMONIALS — slightly larger quote type (3 classes,
   deliberately out-specifies the base ".test-card p.quote" rule) ---------- */
.home-testimonials .test-card .quote{font-size:17px;}
/* Trust.Reviews (TripAdvisor) widget — container only. Card colours, fonts
   and slider behaviour come from the plugin's own Style Options in wp-admin. */
.home-reviews-widget{width:100%;min-height:120px;}

/* ---------- ENQUIRY — rebuilt as a split layout: form on the left, a
   full-height editorial photo with a caption on the right, matching the
   approved prototype. ".enquiry" is home-only (confirmed: not reused by
   Contact page or the enquiry modal, which use ".enquiry-form" instead),
   so this can be restructured directly without a compatibility shim. ---------- */
.home-enquiry{padding:0;background:var(--white);}
.home-enquiry-grid{display:grid;grid-template-columns:1fr;}
.home-enquiry.has-photo .home-enquiry-grid{grid-template-columns:1fr 1fr;min-height:78vh;}
.home-enquiry-form-side{display:flex;align-items:center;padding:90px 32px;}
.home-enquiry.has-photo .home-enquiry-form-side{padding:80px;}
.home-enquiry-form-inner{max-width:460px;width:100%;margin:0 auto;}
.home-enquiry.has-photo .home-enquiry-form-inner{margin:0;}
.home-enquiry-form-inner h2{font-size:clamp(28px,3.4vw,40px);margin:10px 0 14px;}
.home-enquiry-form-inner > .reveal > p{font-size:15px;color:var(--slate);margin-bottom:8px;}
.home-enquiry-form-inner form{margin-top:28px;}
.home-enquiry-photo-side{position:relative;overflow:hidden;background:var(--navy-deep);}
.home-enquiry-photo-side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.home-enquiry-photo-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(13,27,42,0) 45%, rgba(13,27,42,.65) 100%);}
.home-enquiry-photo-caption{position:absolute;left:40px;bottom:40px;z-index:3;color:var(--white);max-width:280px;}
.home-enquiry-photo-caption b{display:block;font-family:var(--font-head);font-weight:400;font-size:19px;margin-bottom:8px;}
.home-enquiry-photo-caption span{font-size:13px;opacity:.85;}
@media (max-width:960px){
  .home-enquiry.has-photo .home-enquiry-grid{grid-template-columns:1fr;min-height:0;}
  .home-enquiry.has-photo .home-enquiry-form-side{padding:70px 32px;}
  .home-enquiry.has-photo .home-enquiry-form-inner{margin:0 auto;}
  .home-enquiry-photo-side{min-height:50vh;}
}

/* ---------- FAQ — slightly larger question type ---------- */
.home-faq .faq-q{font-size:19px;}
/* Logged-in users: the sticky in-page subnav sits under the admin-bar-offset header. */
.admin-bar .subnav{top:calc(var(--hdr-now,96px) + 32px);}
@media (max-width:782px){ .admin-bar .subnav{top:calc(var(--hdr-now,72px) + 46px);} }
@media (max-width:600px){ .admin-bar .subnav{top:var(--hdr-now,72px);} }
@media (max-width:1100px){
  .hdr-wordmark{align-items:flex-start;gap:4px;}
  .hdr-wordmark-main{font-size:15px;white-space:nowrap;}
  .hdr-wordmark-sub{font-size:8px;}
}

/* ════════════════════════════════════════════════════════
   HOMEPAGE REFRESH (v1.13.0) — approved "KTS Homepage Refresh" mockup.
   Same language as the v1.12.0 header: hairlines, serif headings, small
   spaced caps, square edges, no shadows, brass for lines/numerals only.
   Everything below is scoped to body.kts-front EXCEPT the safari card
   (.package-card) and .kts-text-link, which apply site-wide.
   To roll the homepage back, delete this block and restore the 6
   template-parts/home/ files listed in the v1.13.0 changelog.
   ════════════════════════════════════════════════════════ */

/* ---------- Site-wide: text link + safari card ---------- */
.kts-text-link{
  display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  color:var(--navy-deep);text-decoration:none;border-bottom:1px solid var(--hdr-brass-ink);padding-bottom:4px;
  transition:color .25s ease;
}
.kts-text-link:hover{color:var(--hdr-brass-ink);}

.package-grid{gap:48px 36px;}
.package-card{border:0;border-radius:0;background:transparent;overflow:visible;}
.package-card::after{display:none;}
.package-card .p-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#d9d2c3;}
.package-card .p-media img,
.package-card img{width:100%;height:100%;object-fit:cover;display:block;}
.package-card .p-media img{transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.package-card:hover .p-media img{transform:scale(1.03);}
.package-card .p-body{padding:22px 0 0;}
.package-card .p-tag{font-size:10px;letter-spacing:.22em;color:var(--hdr-brass-ink);margin-bottom:10px;}
.package-card h3{font-size:18px;line-height:1.38;color:var(--navy-deep);margin:0 0 10px;}
.package-card p.p-excerpt{font-size:14px;color:#55606c;margin-bottom:0;-webkit-line-clamp:2;}
.package-card .p-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--hdr-rule);}
.package-card .p-duration{padding:0;font-size:10px;letter-spacing:.22em;font-weight:500;color:#55606c;background:none;border-radius:0;}
.package-card .p-cta{
  padding:0 0 4px;background:none;border:0;border-bottom:1px solid var(--hdr-brass-ink);border-radius:0;
  color:var(--navy-deep);font-size:11px;letter-spacing:.2em;font-weight:500;
}
.package-card:hover .p-cta{background:none;color:var(--hdr-brass-ink);}
.package-card .p-cta i{display:none;}
/* the two homepage card sections used to force 320px images + 6px corners */
.home-packages .package-card .p-media img,
.recommended-safaris .package-card .p-media img{height:100%;}
.home-packages .package-card,.recommended-safaris .package-card{border-radius:0;}

/* ---------- Homepage: tokens, spacing, backgrounds ---------- */
body.kts-front{--radius:0px;--kts-sand:#eeeadf;--kts-muted:#55606c;counter-reset:kts-ch;}
body.kts-front .story,
body.kts-front .home-pillars,
body.kts-front .home-packages,
body.kts-front .recommended-safaris,
body.kts-front .showcase,
body.kts-front .why-us,
body.kts-front section.months,
body.kts-front .home-steps,
body.kts-front .testimonials,
body.kts-front .home-guides-teaser,
body.kts-front .home-trust-strip:not(.has-bg){padding:96px 0;}
body.kts-front .home-faq{padding:96px 0 !important;} /* template had an inline padding-top:0 */
body.kts-front .kts-exp-intro{padding:96px 0 48px;}
body.kts-front .story,
body.kts-front .home-steps,
body.kts-front .testimonials,
body.kts-front .home-faq,
body.kts-front .home-manifesto{background:var(--kts-sand);}

/* ---------- Homepage: section headings (numbered chapters) ---------- */
body.kts-front .eyebrow{
  display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.26em;font-weight:600;
  color:var(--hdr-brass-ink);margin-bottom:16px;
}
body.kts-front .section-head .eyebrow,
body.kts-front .cards-head .eyebrow,
body.kts-front .kts-exp-intro-head .eyebrow,
body.kts-front .home-enquiry-form-inner .eyebrow{counter-increment:kts-ch;}
body.kts-front .section-head .eyebrow::before,
body.kts-front .cards-head .eyebrow::before,
body.kts-front .kts-exp-intro-head .eyebrow::before,
body.kts-front .home-enquiry-form-inner .eyebrow::before{
  content:counter(kts-ch, upper-roman);
  font-family:var(--font-head);font-size:14px;letter-spacing:0;font-weight:400;
  padding-right:42px;background:linear-gradient(currentColor,currentColor) no-repeat right center / 28px 1px;
}
body.kts-front .section-head,
body.kts-front .cards-head,
body.kts-front .kts-exp-intro-head{
  max-width:none;text-align:left;margin:0 0 48px;padding-bottom:28px;border-bottom:1px solid var(--hdr-rule);
}
body.kts-front .section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);column-gap:64px;align-items:end;}
body.kts-front .section-head > *{grid-column:1;}
body.kts-front .section-head > p{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0;}
body.kts-front .kts-exp-intro-head{margin-bottom:0;}
body.kts-front .section-head h2,
body.kts-front .cards-head h2,
body.kts-front .kts-exp-intro-head h2,
body.kts-front .story-copy h2,
body.kts-front .home-enquiry-form-inner h2{font-size:clamp(30px,3vw,40px);line-height:1.12;margin:0;color:var(--navy-deep);}
body.kts-front .section-head p,
body.kts-front .cards-head p,
body.kts-front .kts-exp-intro-head p{font-size:15px;color:var(--kts-muted);}

/* ---------- Homepage: buttons ---------- */
body.kts-front .btn{border-radius:0;font-size:11px;letter-spacing:.22em;font-weight:500;padding:15px 28px;}
body.kts-front .btn.filled{background:transparent;color:var(--navy-deep);border-color:var(--navy-deep);}
body.kts-front .btn.filled:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- Hero ---------- */
body.kts-front .home-hero-badge-line{display:block;font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:500;color:var(--hdr-brass-light);}
body.kts-front .home-hero-divider{width:80px;max-width:80px;background:var(--hdr-brass-light);margin:28px auto;}
body.kts-front .home-hero .hero-cta-btn{background:transparent;border:1px solid rgba(236,233,225,.7);color:#ece9e1;}
body.kts-front .home-hero .hero-cta-btn:hover{background:#ece9e1;border-color:#ece9e1;color:var(--navy-deep);}

/* ---------- Story + credentials ---------- */
body.kts-front .story{border-bottom:0;}
body.kts-front .story-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:80px;}
body.kts-front .story-media{height:auto;aspect-ratio:4/5;}
body.kts-front .story-copy .eyebrow{margin-bottom:16px;}
body.kts-front .story-copy h2{margin-bottom:22px;}
body.kts-front .story-copy p{color:var(--kts-muted);}
.story-cred{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin:36px 0 40px;
  border-top:1px solid var(--hdr-rule);border-bottom:1px solid var(--hdr-rule);
}
.story-cred div{padding:20px 18px;border-left:1px solid var(--hdr-rule);}
.story-cred div:first-child{border-left:0;padding-left:0;}
.story-cred b{display:block;font-family:var(--font-head);font-weight:400;font-size:21px;line-height:1.2;color:var(--navy-deep);}
.story-cred small{display:block;margin-top:6px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--kts-muted,#55606c);line-height:1.5;}

/* ---------- I · Start here (pillars) + Plan steps: text under the photo ---------- */
body.kts-front .home-pillars-stage,
body.kts-front .home-steps-stage{container-type:inline-size;--card-w:calc((100cqw - 84px) / 4);}
body.kts-front .home-pillars-track,
body.kts-front .home-steps-track{gap:28px;}
body.kts-front .home-pillar-card,
body.kts-front .home-step-card{
  flex:0 0 var(--card-w);width:var(--card-w);aspect-ratio:auto;border-radius:0;box-shadow:none;
  overflow:visible;background:none;display:block;text-decoration:none;
}
body.kts-front .home-pillar-card-media,
body.kts-front .home-step-card-media{position:relative;aspect-ratio:3/4;overflow:hidden;background:#d9d2c3;}
body.kts-front .home-pillar-card img,
body.kts-front .home-step-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
body.kts-front .home-pillar-card:hover img,
body.kts-front .home-step-card:hover img{transform:scale(1.03);}
body.kts-front .home-pillar-card-body,
body.kts-front .home-step-card-body{position:static;padding:22px 0 0;color:var(--navy-deep);}
body.kts-front .home-pillar-card-title{display:flex;align-items:baseline;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--hdr-rule);}
body.kts-front .home-pillar-card-num{flex:0 0 20px;font-family:var(--font-head);font-size:13px;color:var(--hdr-brass-ink);}
body.kts-front .home-pillar-card-body h3{font-size:24px;line-height:1.25;color:var(--navy-deep);margin:0;}
body.kts-front .home-pillar-card-body p{margin:12px 0 0 34px;max-width:none;font-size:14px;color:var(--kts-muted);opacity:1;}
body.kts-front .home-step-eyebrow{color:var(--hdr-brass-ink);font-size:10px;letter-spacing:.22em;margin-bottom:8px;}
body.kts-front .home-step-card-body h3{font-size:22px;color:var(--navy-deep);margin:0 0 8px;}
body.kts-front .home-step-card-body p{font-size:14px;color:var(--kts-muted);opacity:1;max-width:none;}
/* overlay arrows: centred on the photo, not the whole card */
body.kts-front .home-pillars-stage > .home-pillars-nav,
body.kts-front .home-steps-stage > .home-steps-nav{inset:0 0 auto 0;height:calc(var(--card-w) * 4 / 3);}
@media (max-width:1000px){
  body.kts-front .home-pillars-stage,body.kts-front .home-steps-stage{--card-w:calc((100cqw - 56px) / 3);}
}
@media (max-width:700px){
  body.kts-front .home-pillars-stage,body.kts-front .home-steps-stage{--card-w:78cqw;}
  body.kts-front .home-pillars-track,body.kts-front .home-steps-track{gap:18px;}
}

/* ---------- Destination pair ---------- */
body.kts-front .home-dest-teasers .dest-card-content h3{line-height:1.08;}

/* ---------- II · Safari packages ---------- */
body.kts-front .park-group{margin-bottom:72px;}
body.kts-front .park-group-head{align-items:baseline;padding-bottom:14px;margin-bottom:32px;border-bottom:1px solid var(--hdr-rule);}
body.kts-front .park-group-head h3{font-size:26px;color:var(--navy-deep);}

/* ---------- Manifesto → light pull-quote ---------- */
body.kts-front .home-manifesto{padding:88px 0;color:var(--navy-deep);}
body.kts-front .home-manifesto-head{max-width:860px;margin:0 auto 40px;}
body.kts-front .home-manifesto-head::before{content:'';display:block;width:48px;height:1px;background:var(--hdr-brass-ink);margin:0 auto 32px;}
body.kts-front .home-manifesto-head .eyebrow{justify-content:center;color:var(--hdr-brass-ink);}
body.kts-front .home-manifesto-head h2{font-style:italic;font-size:clamp(24px,2.6vw,34px);line-height:1.35;color:var(--navy-deep);}
body.kts-front .home-manifesto-cols p{color:var(--kts-muted);opacity:1;font-size:15.5px;}

/* ---------- Experiences slider (stays dark: 2nd of 2) ---------- */
body.kts-front .kts-exp-panel__cta{background:transparent;color:#ece9e1;border:1px solid rgba(236,233,225,.7);border-radius:0;padding:14px 26px;letter-spacing:.22em;font-weight:500;}
body.kts-front .kts-exp-panel__cta:hover{background:#ece9e1;color:var(--navy-deep);}
body.kts-front .kts-exp-panel__cta i{display:none;}
body.kts-front .kts-exp-arrow{width:44px;height:44px;border-radius:0;background:transparent;}
body.kts-front .kts-exp-thumb,
body.kts-front .kts-exp-thumb__img-wrap,
body.kts-front .kts-exp-thumb__img{border-radius:0;}

/* ---------- Signature itinerary: now light ---------- */
body.kts-front .showcase{background:var(--white);color:var(--navy-deep);}
body.kts-front .showcase .section-head h2{color:var(--navy-deep);}
body.kts-front .showcase .section-head p{color:var(--kts-muted);}
body.kts-front .showcase .eyebrow.on-dark{color:var(--hdr-brass-ink);}
body.kts-front .itin-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start;}
body.kts-front .itin-media{height:auto;aspect-ratio:4/5;}
body.kts-front .itin-days{border-top:1px solid var(--hdr-rule);}
body.kts-front .itin-day,
body.kts-front .itin-day:last-child{display:grid;grid-template-columns:80px minmax(0,1fr);gap:0;padding:18px 0;border-bottom:1px solid var(--hdr-rule);}
body.kts-front .itin-day i{display:none;}
body.kts-front .itin-day .d-num{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);padding-top:6px;}
body.kts-front .itin-day .d-title{font-family:var(--font-head);font-weight:400;font-size:20px;line-height:1.35;color:var(--navy-deep);}
body.kts-front .itin-day .d-desc{font-size:13.5px;color:var(--kts-muted);}
body.kts-front .showcase .itin-cta{margin-top:32px;align-self:flex-start;border-color:var(--navy-deep);color:var(--navy-deep);}
body.kts-front .showcase .itin-cta:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- Month by month ---------- */
body.kts-front .month-tabs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;margin:0;border-bottom:1px solid var(--hdr-rule);}
body.kts-front .month-tab{
  background:none;border:0;border-bottom:1px solid transparent;border-radius:0;margin-bottom:-1px;
  padding:14px 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--kts-muted);
}
body.kts-front .month-tab:hover{color:var(--navy-deep);}
body.kts-front .month-tab.active{background:none;color:var(--navy-deep);border-bottom-color:var(--hdr-brass-ink);}
body.kts-front .month-panel{
  background:none;border:0;border-radius:0;padding:44px 0 0;
  display:grid;grid-template-columns:240px minmax(0,1fr);column-gap:64px;
}
body.kts-front .month-panel > *{grid-column:2;}
body.kts-front .month-panel h3{grid-column:1;grid-row:1 / span 4;font-size:clamp(28px,2.8vw,40px);line-height:1.15;color:var(--navy-deep);margin:0;}
body.kts-front .month-panel .m-general{font-family:var(--font-head);font-style:italic;font-size:22px;line-height:1.45;color:var(--navy-deep);margin-bottom:24px;}
body.kts-front .month-panel .m-country{font-size:15px;color:var(--kts-muted);}

/* ---------- Reviews ---------- */
body.kts-front .test-grid{gap:56px;}
body.kts-front .test-card{background:none;border:0;border-top:1px solid var(--navy-deep);border-radius:0;padding:28px 0 0;}
body.kts-front .test-card .stars{color:var(--hdr-brass-ink);letter-spacing:.2em;font-size:12px;}
body.kts-front .test-card p.quote{font-family:var(--font-head);font-size:21px;line-height:1.5;color:var(--navy-deep);}
body.kts-front .test-card .who{font-size:10px;letter-spacing:.22em;color:var(--kts-muted);}

/* ---------- Travel guides / articles teaser (v1.13.1: photos back) ---------- */
body.kts-front .home-guides-teaser .guides{gap:36px;counter-reset:kts-guide;}
body.kts-front .home-guides-teaser .guide-card{border:0;border-radius:0;padding:0;box-shadow:none;transform:none;background:none;}
body.kts-front .home-guides-teaser .guide-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
body.kts-front .home-guides-teaser .guide-card{overflow:hidden;}
body.kts-front .home-guides-teaser .guide-card:hover img{transform:scale(1.03);}
body.kts-front .home-guides-teaser .guide-card .g-body{position:relative;background:var(--white);padding:22px 0 0;}
body.kts-front .home-guides-teaser .guide-card .g-body::before{counter-increment:kts-guide;content:counter(kts-guide, upper-roman);display:block;font-family:var(--font-head);font-size:13px;color:var(--hdr-brass-ink);margin-bottom:10px;}
body.kts-front .home-guides-teaser .guide-card h3{font-size:24px;line-height:1.25;color:var(--navy-deep);margin-bottom:10px;padding-bottom:12px;border-bottom:1px solid var(--hdr-rule);}
body.kts-front .home-guides-teaser .guide-card p{font-size:14px;color:var(--kts-muted);}
body.kts-front .home-guides-teaser .guide-card:hover h3{color:var(--hdr-brass-ink);}

/* ---------- FAQ: hairlines + plus/minus ---------- */
body.kts-front .home-faq .section-head{grid-template-columns:1fr;}
body.kts-front .home-faq .section-head > p{grid-column:1;grid-row:auto;margin-top:14px;}
body.kts-front .home-faq .faq-item{border-bottom:1px solid var(--hdr-rule);}
body.kts-front .home-faq .faq-q{font-family:var(--font-head);font-size:22px;font-weight:400;color:var(--navy-deep);padding:24px 0;gap:24px;}
body.kts-front .home-faq .faq-chevron{display:none;}
body.kts-front .home-faq .faq-q::after{
  content:'';flex:0 0 14px;width:14px;height:14px;
  background:linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 14px 1px no-repeat,
             linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 1px 14px no-repeat;
  transition:background-size .25s ease;
}
body.kts-front .home-faq .faq-item.open .faq-q::after{background-size:14px 1px, 1px 0;}
body.kts-front .home-faq .faq-item.open .faq-a{max-height:800px;}
body.kts-front .home-faq .faq-a p{font-size:15px;color:var(--kts-muted);}

/* ---------- Enquiry: underline fields ---------- */
body.kts-front .home-enquiry-form-inner h2{margin:0 0 14px;}
body.kts-front .home-enquiry label{font-size:10px;letter-spacing:.22em;color:var(--kts-muted);}
body.kts-front .home-enquiry input,
body.kts-front .home-enquiry select,
body.kts-front .home-enquiry textarea{
  border:0;border-bottom:1px solid rgba(13,27,42,.3);border-radius:0;background:transparent;padding:10px 0;font-size:16px;color:var(--navy-deep);
}
body.kts-front .home-enquiry input:focus,
body.kts-front .home-enquiry select:focus,
body.kts-front .home-enquiry textarea:focus{border-bottom-color:var(--hdr-brass-ink);}
body.kts-front .home-enquiry .form-row{gap:28px 36px;margin-bottom:28px;}
body.kts-front .home-enquiry .form-submit{background:var(--navy-deep);color:var(--white);border-color:var(--navy-deep);margin-top:28px;}
body.kts-front .home-enquiry .form-submit:hover{background:var(--navy);}

/* ---------- Trust strip (if still used): light, text only ---------- */
body.kts-front .home-trust-strip:not(.has-bg){background:var(--white);color:var(--navy-deep);}
body.kts-front .home-trust-strip:not(.has-bg) h2{color:var(--navy-deep);}
body.kts-front .home-trust-strip:not(.has-bg) .eyebrow{color:var(--hdr-brass-ink);}
body.kts-front .home-trust-stat{border-top-color:var(--hdr-rule);}

/* ---------- Phone ---------- */
@media (max-width:760px){
  body.kts-front .story,body.kts-front .home-pillars,body.kts-front .home-packages,body.kts-front .recommended-safaris,
  body.kts-front .showcase,body.kts-front .why-us,body.kts-front section.months,body.kts-front .home-steps,body.kts-front .testimonials,
  body.kts-front .home-guides-teaser,body.kts-front .home-trust-strip:not(.has-bg){padding:64px 0;}
  body.kts-front .home-faq{padding:64px 0 !important;}
  body.kts-front .kts-exp-intro{padding:64px 0 32px;}
  body.kts-front .home-manifesto{padding:56px 0;}
  body.kts-front .section-head{grid-template-columns:1fr;row-gap:0;margin-bottom:32px;padding-bottom:22px;}
  body.kts-front .section-head > p{grid-column:1;grid-row:auto;margin-top:14px;}
  body.kts-front .cards-head,body.kts-front .kts-exp-intro-head{margin-bottom:32px;padding-bottom:22px;}
  body.kts-front .story-grid,body.kts-front .itin-row{grid-template-columns:1fr;gap:36px;}
  .story-cred{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));}
  .story-cred div:nth-child(odd){border-left:0;padding-left:0;}
  .story-cred div:nth-child(n+3){border-top:1px solid var(--hdr-rule);}
  body.kts-front .month-tabs{display:flex;overflow-x:auto;scrollbar-width:none;}
  body.kts-front .month-tab{flex:0 0 64px;}
  body.kts-front .month-panel{grid-template-columns:1fr;padding-top:28px;}
  body.kts-front .month-panel > *,body.kts-front .month-panel h3{grid-column:1;grid-row:auto;}
  body.kts-front .month-panel h3{margin-bottom:12px;}
  body.kts-front .month-panel .m-general{font-size:19px;}
  body.kts-front .home-faq .faq-q{font-size:19px;}
  body.kts-front .home-manifesto-head h2{font-size:24px;}
}

/* ---------- Trust.Reviews (TripAdvisor) widget — matched to the page (v1.13.1) ----------
   Class names read from the live widget (plugin v2.9). Scoped to the homepage
   wrapper, with !important only where the plugin's own stylesheet would win.
   If a plugin update renames classes, these rules simply stop applying and
   the widget falls back to its default look. */
body.kts-front .home-reviews-widget .trustreviews{font-family:var(--font-body) !important;color:var(--navy-deep);}
/* summary column */
body.kts-front .home-reviews-widget .trustreviews-header{padding-right:40px;border-right:1px solid var(--hdr-rule);}
body.kts-front .home-reviews-widget .trustreviews-header .trustreviews-img{width:56px !important;height:56px !important;border-radius:50% !important;}
body.kts-front .home-reviews-widget .trustreviews-header .trustreviews-name,
body.kts-front .home-reviews-widget .trustreviews-header .trustreviews-name a{font-family:var(--font-head) !important;font-weight:400 !important;font-size:20px !important;line-height:1.2;color:var(--navy-deep) !important;text-decoration:none !important;}
body.kts-front .home-reviews-widget .trustreviews .trustreviews-header .rpi-stars-tripadvisor{color:var(--navy-deep) !important;font-family:var(--font-head);font-size:18px !important;font-weight:400 !important;}
body.kts-front .home-reviews-widget .trustreviews-header,
body.kts-front .home-reviews-widget .trustreviews-header *{color:var(--kts-muted);}
body.kts-front .home-reviews-widget .trustreviews-powered,
body.kts-front .home-reviews-widget .trustreviews-powered *{font-size:12px !important;letter-spacing:.04em;color:var(--kts-muted) !important;}
body.kts-front .home-reviews-widget .trustreviews-wr a,
body.kts-front .home-reviews-widget .trustreviews-wr button{
  background:transparent !important;color:var(--navy-deep) !important;border:1px solid var(--navy-deep) !important;border-radius:0 !important;
  box-shadow:none !important;padding:10px 18px !important;font-size:10px !important;letter-spacing:.2em !important;text-transform:uppercase;font-weight:500 !important;
}
body.kts-front .home-reviews-widget .trustreviews-wr a:hover,
body.kts-front .home-reviews-widget .trustreviews-wr button:hover{background:var(--navy-deep) !important;color:var(--white) !important;}
/* rating bubbles: tinted toward brass (see note in the changelog — remove this
   filter to restore Tripadvisor's own green if their brand rules require it) */
body.kts-front .home-reviews-widget .rpi-stars-tripadvisor i{filter:grayscale(1) sepia(1) saturate(1.6) hue-rotate(-8deg) brightness(.72);}
body.kts-front .home-reviews-widget .trustreviews-review .rpi-stars-tripadvisor i{width:14px !important;height:14px !important;}
/* review cards: hairline-topped, no box */
body.kts-front .home-reviews-widget .trustreviews .trustreviews-review-inner.trustreviews-backgnd{ /* beats the plugin's .trustreviews:not(.wp-dark) … !important */
 
  background:transparent !important;border:0 !important;border-top:1px solid var(--navy-deep) !important;
  border-radius:0 !important;box-shadow:none !important;padding:24px 4px 0 0 !important;
}
body.kts-front .home-reviews-widget .trustreviews-review .trustreviews-img{display:none !important;} /* reviewer avatars */
body.kts-front .home-reviews-widget a.trustreviews-name{
  font-family:var(--font-body) !important;font-size:10.5px !important;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600 !important;color:var(--navy-deep) !important;text-decoration:none !important;
}
body.kts-front .home-reviews-widget .trustreviews-time{font-size:10.5px !important;letter-spacing:.14em;text-transform:uppercase;color:var(--kts-muted) !important;}
/* review text: serif italic, clamped instead of a tiny inner scrollbar */
body.kts-front .home-reviews-widget .trustreviews-feedback{
  height:auto !important;max-height:none !important;overflow:hidden !important;margin-top:14px;
  font-family:var(--font-head) !important;font-style:italic;font-size:17px !important;line-height:1.55 !important;color:var(--navy-deep) !important;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;
}
body.kts-front .home-reviews-widget .trustreviews-text{font:inherit !important;color:inherit !important;}
/* arrows + dots */
body.kts-front .home-reviews-widget .trustreviews-btns{color:var(--navy-deep) !important;opacity:.7;}
body.kts-front .home-reviews-widget .trustreviews-btns:hover{opacity:1;}
body.kts-front .home-reviews-widget .trustreviews-btns svg path{fill:currentColor;}
body.kts-front .home-reviews-widget .trustreviews-dot{background:var(--hdr-rule) !important;}
body.kts-front .home-reviews-widget .trustreviews-dot.active{background:var(--hdr-brass-ink) !important;}
@media (max-width:760px){
  body.kts-front .home-reviews-widget .trustreviews-header{padding-right:0;border-right:0;padding-bottom:24px;margin-bottom:8px;border-bottom:1px solid var(--hdr-rule);}
  body.kts-front .home-reviews-widget .trustreviews-feedback{font-size:16px !important;}
}

/* ════════════════════════════════════════════════════════
   SAFARI PAGE REFRESH (v1.15.0) — approved "KTS Safari Page Refresh"
   mockup. Same language as the header / homepage / footer. Scoped to
   body.single-safari, except .kts-rows (a reusable hairline list) and the
   floating capsules (shown on safari-context pages). Dark sections on this
   page are now only the hero and the closing "Ask about…" band.
   ════════════════════════════════════════════════════════ */
.kts-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--hdr-rule);}
.kts-rows li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:14px 0;border-bottom:1px solid var(--hdr-rule);}
.kts-rows li span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#55606c;}
.kts-rows li b{font-family:var(--font-head);font-weight:400;font-size:18px;color:var(--navy-deep);text-align:right;}

body.single-safari{--radius:0px;--kts-muted:#55606c;--kts-sand:#eeeadf;counter-reset:kts-ch;}

/* ---------- spacing + section rhythm ---------- */
body.single-safari .overview,
body.single-safari .highlights,
body.single-safari .days,
body.single-safari .species,
body.single-safari .safari-gallery,
body.single-safari .includes-section,
body.single-safari .why-us,
body.single-safari .make-mine,
body.single-safari .safari-similar,
body.single-safari .safari-faq{padding:96px 0;}
body.single-safari .highlights,
body.single-safari .species,
body.single-safari .includes-section,
body.single-safari .make-mine,
body.single-safari .safari-faq{background:var(--kts-sand);}
body.single-safari .overview,
body.single-safari .days,
body.single-safari .safari-gallery,
body.single-safari .why-us,
body.single-safari .safari-similar{background:var(--white);}

/* ---------- numbered section heads ---------- */
body.single-safari .eyebrow{
  display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.26em;font-weight:600;
  color:var(--hdr-brass-ink);margin-bottom:16px;
}
body.single-safari .section-head .eyebrow{counter-increment:kts-ch;}
body.single-safari .section-head .eyebrow::before{
  content:counter(kts-ch, upper-roman);font-family:var(--font-head);font-size:14px;letter-spacing:0;font-weight:400;
  padding-right:42px;background:linear-gradient(currentColor,currentColor) no-repeat right center / 28px 1px;
}
body.single-safari .section-head{
  max-width:none;margin:0 0 48px;padding-bottom:28px;border-bottom:1px solid var(--hdr-rule);text-align:left;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);column-gap:64px;align-items:end;
}
body.single-safari .section-head > *{grid-column:1;}
body.single-safari .section-head > p{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0;color:var(--kts-muted);font-size:15px;}
body.single-safari .section-head h2{font-size:clamp(30px,3vw,40px);line-height:1.12;margin:0;color:var(--navy-deep);}
body.single-safari .highlights .section-head h2,
body.single-safari .includes-section .section-head h2{color:var(--navy-deep);}
body.single-safari .highlights .section-head p{color:var(--kts-muted);}
body.single-safari .safari-faq .section-head{grid-template-columns:1fr;}

/* ---------- buttons ---------- */
body.single-safari .btn{border-radius:0;font-size:11px;letter-spacing:.22em;font-weight:500;padding:15px 28px;}

/* ---------- hero ---------- */
body.single-safari .hero-breadcrumb{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(236,233,225,.75);}
body.single-safari .hero-breadcrumb i{font-size:10px;margin:0 8px;}
.hero-facts{display:flex;flex-wrap:wrap;margin-top:34px;border-top:1px solid rgba(236,233,225,.25);}
.hero-facts span{padding:14px 28px 0 0;margin-right:28px;border-right:1px solid rgba(236,233,225,.25);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#d5d9de;}
.hero-facts span:last-child{border-right:0;margin-right:0;}
.hero-facts b{display:block;font-family:var(--font-head);font-weight:400;font-size:20px;letter-spacing:0;text-transform:none;color:#ece9e1;margin-bottom:2px;}

/* ---------- section bar (was navy) ---------- */
body.single-safari .subnav{background:var(--white);border-bottom:1px solid var(--hdr-rule);}
body.single-safari .subnav .wrap{height:64px;}
body.single-safari .subnav-links{gap:34px;height:100%;align-items:stretch;}
body.single-safari .subnav-links a{display:flex;align-items:center;font-size:11px;letter-spacing:.2em;font-weight:500;color:var(--kts-muted);padding:0;border-bottom:1px solid transparent;margin-bottom:-1px;}
body.single-safari .subnav-links a:hover{color:var(--navy-deep);}
body.single-safari .subnav-links a.active{color:var(--navy-deep);border-bottom-color:var(--hdr-brass-ink);}
body.single-safari .subnav .subnav-enquire{flex-shrink:0;margin-left:24px;}

/* ---------- overview ---------- */
body.single-safari .overview-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:80px;}
body.single-safari .overview-copy > p:first-child{font-family:var(--font-head);font-style:italic;font-size:22px;line-height:1.5;color:var(--navy-deep);}
body.single-safari .overview-copy p{color:var(--kts-muted);}
body.single-safari .overview-sidebar{gap:40px;}
body.single-safari .facts-widget.facts-rows{background:none;color:inherit;padding:0;border-radius:0;}
body.single-safari .facts-widget h3,
body.single-safari .activities-card h3{font-family:var(--font-body);font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);margin:0 0 10px;}
body.single-safari .activities-card{background:none;border:0;border-radius:0;box-shadow:none;padding:0;}
body.single-safari .activities-card p.a-sub{color:var(--kts-muted);font-size:14px;}
body.single-safari .activities-list{grid-template-columns:1fr;gap:0;border-top:1px solid var(--hdr-rule);}
body.single-safari .activity-item{padding:13px 0;border-bottom:1px solid var(--hdr-rule);}
body.single-safari .activity-item i{display:none;}
body.single-safari .activity-item span{font-family:var(--font-head);font-size:18px;color:var(--navy-deep);}

/* ---------- highlights (now light) + responsible travel ---------- */
body.single-safari .highlights{color:var(--navy-deep);}
body.single-safari .chapter-grid{column-gap:64px;}
body.single-safari .chapter-item{grid-template-columns:44px minmax(0,1fr);gap:0;padding:26px 0;border-bottom:1px solid var(--hdr-rule);}
body.single-safari .chapter-numeral{font-size:18px;color:var(--hdr-brass-ink);}
body.single-safari .chapter-item h3{color:var(--navy-deep);font-size:22px;}
body.single-safari .chapter-item p{color:var(--kts-muted);font-size:14px;}
body.single-safari .why-us-grid{gap:0 64px;}
body.single-safari .why-us-item{text-align:left;padding:26px 0;border-bottom:1px solid var(--hdr-rule);}
body.single-safari .why-us-item .numeral{color:var(--hdr-brass-ink);font-size:18px;}
body.single-safari .why-us-item h3{font-size:22px;color:var(--navy-deep);}
body.single-safari .why-us-item p{color:var(--kts-muted);}

/* ---------- daily itinerary + sidebar ---------- */
body.single-safari .itinerary-grid{grid-template-columns:minmax(0,1fr) 320px;gap:72px;}
body.single-safari .day-row{border-top:0;border-bottom:1px solid var(--hdr-rule);}
body.single-safari .day-row:first-child{border-top:1px solid var(--hdr-rule);}
body.single-safari .day-marker .d-label{font-size:10px;letter-spacing:.24em;color:var(--hdr-brass-ink);}
body.single-safari .day-marker .d-num{font-size:52px;line-height:1;margin:4px 0 8px;}
body.single-safari .day-marker .d-loc{font-family:var(--font-head);font-size:14px;color:var(--kts-muted);}
body.single-safari .day-route{font-size:10px;letter-spacing:.22em;color:var(--hdr-brass-ink);}
body.single-safari .day-route i{display:none;}
body.single-safari .day-content h3{font-size:26px;line-height:1.25;color:var(--navy-deep);}
body.single-safari .day-content p.d-desc{font-size:15px;color:var(--kts-muted);}
body.single-safari .rest-box{background:none;border-radius:0;padding:16px 0 0;border-top:1px solid var(--hdr-rule);}
body.single-safari .rest-box .r-label{font-size:10px;letter-spacing:.22em;color:var(--hdr-brass-ink);margin-bottom:4px;}
body.single-safari .rest-box p{font-size:14px;color:var(--kts-muted);}
body.single-safari .itin-enquiry-widget{top:calc(var(--hdr-now,96px) + 88px);}
body.single-safari .iew-inner{background:none;border:0;border-top:1px solid var(--navy-deep);border-radius:0;box-shadow:none;padding:28px 0 0;}
body.single-safari .iew-inner h3{font-size:24px;line-height:1.2;margin-bottom:12px;color:var(--navy-deep);}
body.single-safari .iew-excerpt{color:var(--kts-muted);}
body.single-safari .iew-facts{flex-direction:column;gap:0;padding:0;border-top:1px solid var(--hdr-rule);border-bottom:0;}
body.single-safari .iew-facts span{justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hdr-rule);font-family:var(--font-head);font-size:17px;color:var(--navy-deep);}
body.single-safari .iew-facts i{display:none;}
body.single-safari .iew-actions .btn{font-size:11px;}
body.single-safari .iew-actions .btn i{display:none;}
body.single-safari .iew-enquire{background:var(--navy-deep);color:var(--white);border-color:var(--navy-deep);}
body.single-safari .iew-whatsapp{background:transparent;color:var(--navy-deep);border-color:var(--navy-deep);}
body.single-safari .iew-whatsapp:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- species ---------- */
body.single-safari .species{text-align:left;}
body.single-safari .species .section-head{max-width:none;margin:0 0 48px;text-align:left;}
body.single-safari .species-dots{display:none;}
body.single-safari .species-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--hdr-rule);border-left:1px solid var(--hdr-rule);}
body.single-safari .species-item{padding:28px 16px;border-right:1px solid var(--hdr-rule);border-bottom:1px solid var(--hdr-rule);}
body.single-safari .species-item .sp-name{font-family:var(--font-head);font-weight:400;font-size:19px;color:var(--navy-deep);}
body.single-safari .species-item .sp-chance{font-size:10px;letter-spacing:.2em;color:var(--kts-muted);}

/* ---------- gallery ---------- */
body.single-safari .gallery-grid{grid-template-columns:2fr 1fr 1fr;grid-auto-rows:240px;gap:16px;}
body.single-safari .gallery-grid img{height:100%;border-radius:0;}
body.single-safari .gallery-grid img:first-child{grid-row:span 2;}

/* ---------- inclusions (now light) ---------- */
body.single-safari .includes-grid3{gap:56px;}
body.single-safari .includes-grid3 h3{font-size:24px;color:var(--navy-deep);padding-bottom:14px;margin-bottom:0;border-bottom:1px solid var(--navy-deep);}
body.single-safari .includes-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:0;padding:12px 0;border-bottom:1px solid var(--hdr-rule);font-size:14px;color:var(--kts-muted);}
body.single-safari .includes-list li i{display:none;}
body.single-safari .includes-list li::before{font-family:var(--font-head);color:var(--hdr-brass-ink);}
body.single-safari .includes-list.yes li::before{content:'+';}
body.single-safari .includes-list.no li::before{content:'\2212';}
body.single-safari .includes-list.notes li::before{content:'\00B7';}

/* ---------- make it mine: italic pull-quote ---------- */
body.single-safari .make-mine .section-head{display:block;max-width:760px;margin:0 auto;padding:0;border:0;text-align:center;}
body.single-safari .make-mine .section-head::before{content:'';display:block;width:48px;height:1px;background:var(--hdr-brass-ink);margin:0 auto 28px;}
body.single-safari .make-mine h2{font-family:var(--font-body);font-size:10px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
body.single-safari .make-mine p.mm-lead{font-family:var(--font-head);font-style:italic;font-size:clamp(24px,2.6vw,34px);line-height:1.3;color:var(--navy-deep);margin:18px auto;max-width:760px;}
body.single-safari .make-mine p.mm-sub{font-size:15px;color:var(--kts-muted);max-width:620px;}
body.single-safari .make-mine .mm-cta{background:transparent;color:var(--navy-deep);border-color:var(--navy-deep);margin-top:30px;}
body.single-safari .make-mine .mm-cta:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- FAQ ---------- */
.safari-faq-wrap{max-width:920px;}
body.single-safari .safari-faq .faq-item{border-bottom:1px solid var(--hdr-rule);}
body.single-safari .safari-faq .faq-q{font-family:var(--font-head);font-size:22px;font-weight:400;color:var(--navy-deep);padding:24px 0;gap:24px;}
body.single-safari .safari-faq .faq-chevron{display:none;}
body.single-safari .safari-faq .faq-q::after{
  content:'';flex:0 0 14px;width:14px;height:14px;
  background:linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 14px 1px no-repeat,
             linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 1px 14px no-repeat;
  transition:background-size .25s ease;
}
body.single-safari .safari-faq .faq-item.open .faq-q::after{background-size:14px 1px, 1px 0;}
body.single-safari .safari-faq .faq-item.open .faq-a{max-height:800px;}
body.single-safari .safari-faq .faq-a p{font-size:15px;color:var(--kts-muted);}

/* ---------- closing band (dark, 2nd of 2) ---------- */
body.single-safari .cta-band{background:var(--navy-deep);padding:104px 0;text-align:center;}
body.single-safari .cta-band .eyebrow{justify-content:center;color:var(--hdr-brass-light);}
body.single-safari .cta-band .eyebrow::before,
body.single-safari .cta-band .eyebrow::after{content:'';width:28px;height:1px;background:currentColor;}
body.single-safari .cta-band h2{color:#ece9e1;font-size:clamp(28px,3vw,40px);line-height:1.15;}
body.single-safari .cta-band p{color:#c9d0d9;}
body.single-safari .cta-band .btn{background:transparent;color:#ece9e1;border-color:rgba(236,233,225,.7);}
body.single-safari .cta-band .btn:hover{background:#ece9e1;color:var(--navy-deep);}

/* ---------- floating capsules → square buttons ---------- */
.floating-capsules .capsule{border-radius:0;box-shadow:none;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;}
.floating-capsules .capsule:hover{transform:none;box-shadow:none;}
.floating-capsules .capsule i{font-size:15px;}
.capsule-enquire{background:var(--navy-deep);color:var(--white);}
.capsule-whatsapp{background:var(--white);color:var(--navy-deep);border:1px solid var(--navy-deep);}
.capsule-whatsapp i{color:var(--navy-deep);}

/* ---------- phone ---------- */
@media (max-width:760px){
  body.single-safari .overview,body.single-safari .highlights,body.single-safari .days,body.single-safari .species,
  body.single-safari .safari-gallery,body.single-safari .includes-section,body.single-safari .why-us,
  body.single-safari .make-mine,body.single-safari .safari-similar,body.single-safari .safari-faq{padding:64px 0;}
  body.single-safari .cta-band{padding:72px 0;}
  body.single-safari .section-head{grid-template-columns:1fr;margin-bottom:32px;padding-bottom:22px;}
  body.single-safari .section-head > p{grid-column:1;grid-row:auto;margin-top:14px;}
  .hero-facts span{padding-right:18px;margin-right:18px;}
  body.single-safari .subnav .subnav-enquire{display:none;}
  body.single-safari .subnav-links{gap:24px;}
  body.single-safari .overview-grid,body.single-safari .itinerary-grid{grid-template-columns:1fr;gap:40px;}
  body.single-safari .chapter-grid,body.single-safari .includes-grid3{grid-template-columns:1fr;}
  body.single-safari .day-row{grid-template-columns:1fr;gap:10px;padding:32px 0;}
  body.single-safari .day-marker .d-num{font-size:40px;}
  body.single-safari .itin-enquiry-widget{position:static;}
  body.single-safari .species-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.single-safari .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;}
  body.single-safari .gallery-grid img:first-child{grid-column:1 / -1;grid-row:span 1;}
  body.single-safari .safari-faq .faq-q{font-size:19px;}
  .floating-capsules{left:12px;right:12px;bottom:12px;flex-direction:row;}
  .floating-capsules .capsule{flex:1;justify-content:center;border-radius:0;padding:14px 10px;}
  .floating-capsules .capsule span{display:inline;}
  .floating-capsules .capsule i{display:none;}
}
body.single-safari .why-us-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0;}
@media (max-width:760px){ body.single-safari .why-us-grid{grid-template-columns:1fr;} }
body.single-safari .cta-band h2{max-width:900px;margin-left:auto;margin-right:auto;text-wrap:balance;}
@media (max-width:760px){
  .hero-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;}
  .hero-facts span,.hero-facts span:last-child{border-right:0;margin-right:0;padding-right:0;}
}

/* ════════════════════════════════════════════════════════
   DESTINATION PAGE REFRESH (v1.16.0) — approved "KTS Destination Page
   Refresh" mockup. Destination Hub template (page-destination.php),
   scoped to body.kts-dest (added in header.php). Same language as the
   safari page: numbered chapter labels, hairlines, square edges, only
   the hero and the closing band dark. Sand / ivory bands alternate via
   the .is-sand class the template adds.
   ════════════════════════════════════════════════════════ */
.screen-reader-text{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

body.kts-dest{--radius:0px;--kts-muted:#55606c;--kts-sand:#eeeadf;counter-reset:kts-ch;}
body.kts-dest .dest-band{padding:96px 0;background:var(--white);}
body.kts-dest .dest-band.is-sand{background:var(--kts-sand);}

/* ---------- chapter labels + section heads ---------- */
body.kts-dest .eyebrow{
  display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.26em;font-weight:600;
  color:var(--hdr-brass-ink);margin-bottom:16px;
}
body.kts-dest .section-head .eyebrow,
body.kts-dest .eyebrow.dest-ch{counter-increment:kts-ch;}
body.kts-dest .section-head .eyebrow::before,
body.kts-dest .eyebrow.dest-ch::before{
  content:counter(kts-ch, upper-roman);font-family:var(--font-head);font-size:14px;letter-spacing:0;font-weight:400;
  padding-right:42px;background:linear-gradient(currentColor,currentColor) no-repeat right center / 28px 1px;
}
body.kts-dest .eyebrow.dest-ch{margin-bottom:28px;}
body.kts-dest .section-head{
  max-width:none;margin:0 0 48px;padding-bottom:28px;border-bottom:1px solid var(--hdr-rule);text-align:left;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);column-gap:64px;align-items:end;
}
body.kts-dest .section-head > *{grid-column:1;}
body.kts-dest .section-head > p{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0;color:var(--kts-muted);font-size:15px;}
body.kts-dest .section-head h2{font-size:clamp(30px,3vw,40px);line-height:1.12;margin:0;color:var(--navy-deep);}
body.kts-dest .btn{border-radius:0;font-size:11px;letter-spacing:.22em;font-weight:500;padding:15px 28px;}

/* ---------- hero ---------- */
body.kts-dest .hero::after{
  background-color:rgba(13,27,42,0.15);
  background-image:linear-gradient(180deg, rgba(13,27,42,.25) 0%, rgba(13,27,42,0) 30%, rgba(13,27,42,.18) 65%, rgba(13,27,42,.55) 100%);
}
body.kts-dest .hero-content{padding-bottom:96px;}
body.kts-dest .hero-breadcrumb{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(236,233,225,.75);margin-bottom:0;}
body.kts-dest .hero-breadcrumb i{font-style:normal;font-size:10px;margin:0 10px;opacity:.6;}
body.kts-dest .dest-hero-eyebrow{
  display:flex;align-items:center;gap:14px;margin:22px 0 14px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-light);
}
body.kts-dest .dest-hero-eyebrow::before{content:'';width:28px;height:1px;background:currentColor;}
body.kts-dest .hero h1{font-size:clamp(30px,3.8vw,45px);line-height:1.12;max-width:900px;text-wrap:balance;margin-bottom:22px;}
body.kts-dest .hero p.lead{font-size:15px;color:#d5d9de;max-width:640px;margin-bottom:0;}

/* ---------- section bar (was navy) ---------- */
body.kts-dest .subnav{background:var(--white);border-bottom:1px solid var(--hdr-rule);}
body.kts-dest .subnav .wrap{height:64px;}
body.kts-dest .subnav-links{gap:34px;height:100%;align-items:stretch;}
body.kts-dest .subnav-links a{display:flex;align-items:center;font-size:11px;letter-spacing:.2em;font-weight:500;color:var(--kts-muted);padding:0;border-bottom:1px solid transparent;margin-bottom:-1px;}
body.kts-dest .subnav-links a:hover{color:var(--navy-deep);}
body.kts-dest .subnav-links a.active{color:var(--navy-deep);border-bottom-color:var(--hdr-brass-ink);}
body.kts-dest .subnav .subnav-enquire{flex-shrink:0;margin-left:24px;}

/* ---------- I overview ---------- */
.dest-ov{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:88px;align-items:start;}
.dest-ov.no-media{grid-template-columns:1fr;}
.dest-ov-lead p{margin:0 0 28px;font-family:var(--font-head);font-style:italic;font-size:clamp(19px,1.6vw,22px);line-height:1.5;color:var(--navy-deep);}
.dest-ov-cols{column-count:2;column-gap:44px;}
.dest-ov-cols > *{break-inside:avoid;}
.dest-ov-cols p{margin:0 0 18px;font-size:15px;color:var(--kts-muted,#55606c);}
.dest-ov-cols h2,.dest-ov-cols h3{column-span:all;font-size:24px;color:var(--navy-deep);margin:12px 0 16px;}
.dest-ov-media{position:sticky;top:calc(var(--hdr-now,96px) + 88px);margin:0;}
.dest-ov-media img{display:block;width:100%;height:auto;}
.dest-ov-media figcaption{margin-top:12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--kts-muted,#55606c);}

/* ---------- II why ---------- */
.dest-why-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:88px;align-items:center;}
.dest-why-grid.no-media{grid-template-columns:minmax(0,900px);}
.dest-why-media{aspect-ratio:4/5;overflow:hidden;background:#d9d2c3;}
.dest-why-media img{width:100%;height:100%;object-fit:cover;display:block;}
.dest-why-intro{margin-bottom:34px;}
.dest-why-intro p{margin:0 0 14px;font-size:16px;color:var(--kts-muted,#55606c);}
.dest-why-intro p:last-child{margin-bottom:0;}
.kts-numlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--hdr-rule);}
.kts-numlist li{display:grid;grid-template-columns:48px minmax(0,1fr);padding:22px 0;border-bottom:1px solid var(--hdr-rule);}
.kts-numlist-n{font-family:var(--font-head);font-size:18px;line-height:1.3;color:var(--hdr-brass-ink);}
.kts-numlist h3{margin:0 0 4px;font-family:var(--font-head);font-weight:400;font-size:22px;line-height:1.3;color:var(--navy-deep);}
.kts-numlist p{margin:0;font-size:14px;color:var(--kts-muted,#55606c);}

/* ---------- Featured itinerary (v1.17.0): light "Signature itinerary",
   same layout as the homepage and park pages ---------- */
body.kts-dest .dest-featured .itin-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start;}
body.kts-dest .dest-featured .itin-row.no-media{grid-template-columns:minmax(0,860px);}
body.kts-dest .dest-featured .itin-days{display:flex;flex-direction:column;border-top:1px solid var(--hdr-rule);}
body.kts-dest .dest-featured .itin-day,
body.kts-dest .dest-featured .itin-day:last-of-type{display:grid;grid-template-columns:80px minmax(0,1fr);gap:0;padding:18px 0;border-bottom:1px solid var(--hdr-rule);}
body.kts-dest .dest-featured .d-num{font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);padding-top:6px;}
body.kts-dest .dest-featured .d-title{font-family:var(--font-head);font-weight:400;font-size:20px;line-height:1.35;color:var(--navy-deep);margin-bottom:2px;}
body.kts-dest .dest-featured .d-desc{font-size:13.5px;color:var(--kts-muted);}
body.kts-dest .dest-featured .itin-cta{margin-top:32px;align-self:flex-start;background:transparent;border:1px solid var(--navy-deep);color:var(--navy-deep);}
body.kts-dest .dest-featured .itin-cta:hover{background:var(--navy-deep);color:var(--white);}
body.kts-dest .dest-featured .itin-media{display:block;height:auto;aspect-ratio:4/5;border-radius:0;overflow:hidden;background:#d9d2c3;}
body.kts-dest .dest-featured .itin-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
body.kts-dest .dest-featured .itin-media:hover img{transform:scale(1.03);}
.dpark p.dpark-text{margin-top:8px;font-size:14px;letter-spacing:0;text-transform:none;line-height:1.6;}

/* ---------- III itineraries ---------- */
body.kts-dest .dest-load-more{margin-top:56px;}
body.kts-dest .dest-load-more .btn{background:transparent;color:var(--navy-deep);border:1px solid var(--navy-deep);}
body.kts-dest .dest-load-more .btn:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- IV experiences slider (was dark) ---------- */
body.kts-dest .dexp-stage{position:relative;}
body.kts-dest .dexp-track{gap:36px;padding-bottom:0;}
body.kts-dest .dexp-card{flex:0 0 calc((100% - 108px) / 3.4);width:auto;border:0;border-radius:0;background:transparent;}
body.kts-dest .dexp-card-media{height:auto;aspect-ratio:4/5;background:#d9d2c3;}
body.kts-dest .dexp-card:hover .dexp-card-media img{transform:scale(1.03);}
body.kts-dest .dexp-card-body{padding:22px 0 0;}
body.kts-dest .dexp-n{display:block;margin-bottom:8px;font-family:var(--font-head);font-size:15px;color:var(--hdr-brass-ink);}
body.kts-dest .dexp-card-body h3{font-size:22px;line-height:1.3;color:var(--navy-deep);}
body.kts-dest .dexp-card-body p{font-size:14px;color:var(--kts-muted);}
/* Arrow layer: exactly as tall as one card's 4:5 image (padding % is
   relative to the stage width, same base as the cards' flex-basis), so the
   arrows sit centred on the photos whatever the screen width. */
body.kts-dest .dexp-stage > .dexp-arrows{
  display:block;position:absolute;left:0;right:0;top:0;height:0;margin:0;pointer-events:none;
  padding-top:calc((100% - 108px) / 3.4 * 1.25);
}
body.kts-dest .dexp-stage > .dexp-arrows .dexp-arrow{position:absolute;top:50%;pointer-events:auto;}
body.kts-dest .dexp-arrow{
  width:52px;height:52px;margin-top:-26px;border-radius:0;font-family:var(--font-head);font-size:24px;line-height:1;
  background:var(--white);border:1px solid rgba(13,27,42,.2);color:var(--navy-deep);
  transition:background .2s ease,color .2s ease,opacity .25s ease,visibility .25s ease;
}
body.kts-dest .dexp-arrow:hover{background:var(--navy-deep);color:var(--white);border-color:var(--navy-deep);}
body.kts-dest .dexp-arrow:focus-visible{outline:2px solid var(--hdr-brass-ink);outline-offset:3px;}
body.kts-dest .dexp-arrow--prev{left:-26px;}
body.kts-dest .dexp-arrow--next{right:-26px;}
body.kts-dest .dexp-stage.is-at-start .dexp-arrow--prev,
body.kts-dest .dexp-stage.is-at-end .dexp-arrow--next{opacity:0;visibility:hidden;pointer-events:none;}

/* ---------- V parks ---------- */
.dpark-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 36px;}
.dpark{display:block;color:inherit;text-decoration:none;}
/* buttons never take the dotted prose-link underline (site-wide) */
.btn{text-decoration:none;}
.dpark-media{aspect-ratio:3/2;overflow:hidden;background:#d9d2c3;}
.dpark-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
a.dpark:hover .dpark-media img{transform:scale(1.03);}
.dpark-name{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0 16px;border-bottom:1px solid var(--hdr-rule);}
.dpark-name h3{margin:0;font-family:var(--font-head);font-weight:400;font-size:24px;line-height:1.25;color:var(--navy-deep);}
.dpark-name span{font-family:var(--font-head);font-size:20px;line-height:1;color:var(--hdr-brass-ink);transition:transform .25s ease;}
a.dpark:hover .dpark-name span{transform:translateX(4px);}
.dpark p{margin:12px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;line-height:1.6;color:var(--kts-muted,#55606c);}

/* ---------- VI best time ---------- */
.dest-cal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-top:1px solid var(--hdr-rule);border-bottom:1px solid var(--hdr-rule);}
.dest-cal > span{position:relative;padding:18px 0 20px;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7d8590;border-right:1px solid rgba(13,27,42,.08);}
.dest-cal > span:last-child{border-right:0;}
.dest-cal > span.is-best{color:var(--navy-deep);font-weight:600;}
.dest-cal > span.is-best::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--hdr-brass-ink);}
.dest-cal-key{display:flex;align-items:center;margin:16px 0 56px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
.dest-cal-key i{display:inline-block;width:18px;height:3px;background:var(--hdr-brass-ink);margin-right:10px;}
.dest-season-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:88px;align-items:start;}
.dest-season-grid.no-media{grid-template-columns:minmax(0,860px);}
.dest-season-rows{list-style:none;margin:0 0 32px;padding:0;border-top:1px solid var(--hdr-rule);}
.dest-season-rows li{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;padding:22px 0;border-bottom:1px solid var(--hdr-rule);}
.dest-season-rows b{font-family:var(--font-head);font-weight:400;font-size:21px;line-height:1.3;color:var(--navy-deep);}
.dest-season-rows span{padding-top:3px;font-size:14px;color:var(--kts-muted,#55606c);}
.dest-season-media{aspect-ratio:4/5;overflow:hidden;background:#d9d2c3;}
.dest-season-media img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- VII where to stay ---------- */
.dstay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 36px;}
.dstay-media{aspect-ratio:4/3;overflow:hidden;background:#d9d2c3;}
.dstay-media img{width:100%;height:100%;object-fit:cover;display:block;}
.dstay-loc{margin:22px 0 8px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
.dstay h3{margin:0 0 10px;font-family:var(--font-head);font-weight:400;font-size:22px;line-height:1.3;color:var(--navy-deep);}
.dstay-media + h3{margin-top:22px;}
.dstay-desc{margin:0 0 18px;font-size:14px;color:var(--kts-muted,#55606c);}

/* ---------- VIII FAQ ---------- */
.dest-faq-wrap{max-width:920px;}
body.kts-dest .dest-faq .section-head{grid-template-columns:1fr;}
body.kts-dest .dest-faq .faq-item{border-bottom:1px solid var(--hdr-rule);}
body.kts-dest .dest-faq .faq-q{font-family:var(--font-head);font-size:22px;font-weight:400;color:var(--navy-deep);padding:24px 0;gap:24px;}
body.kts-dest .dest-faq .faq-chevron{display:none;}
body.kts-dest .dest-faq .faq-q::after{
  content:'';flex:0 0 14px;width:14px;height:14px;
  background:linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 14px 1px no-repeat,
             linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 1px 14px no-repeat;
  transition:background-size .25s ease;
}
body.kts-dest .dest-faq .faq-item.open .faq-q::after{background-size:14px 1px, 1px 0;}
body.kts-dest .dest-faq .faq-item.open .faq-a{max-height:800px;}
body.kts-dest .dest-faq .faq-a p{font-size:15px;color:var(--kts-muted);max-width:none;padding-right:60px;}

/* ---------- closing band (dark, 2nd of 2) ---------- */
body.kts-dest .cta-band{background:var(--navy-deep);padding:104px 0;text-align:center;}
body.kts-dest .cta-band .eyebrow{justify-content:center;color:var(--hdr-brass-light);}
body.kts-dest .cta-band .eyebrow::before,
body.kts-dest .cta-band .eyebrow::after{content:'';width:28px;height:1px;background:currentColor;}
body.kts-dest .cta-band h2{color:#ece9e1;font-size:clamp(28px,3vw,40px);line-height:1.15;max-width:900px;margin-left:auto;margin-right:auto;text-wrap:balance;}
body.kts-dest .cta-band p{color:#c9d0d9;max-width:560px;}
body.kts-dest .cta-band .btn{background:transparent;color:#ece9e1;border-color:rgba(236,233,225,.7);}
body.kts-dest .cta-band .btn:hover{background:#ece9e1;color:var(--navy-deep);}

/* ---------- tablet ---------- */
@media (max-width:1024px){
  .dest-ov,.dest-why-grid,.dest-season-grid,body.kts-dest .dest-featured .itin-row{gap:56px;}
  .dpark-grid,.dstay-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.kts-dest .dexp-card{flex-basis:calc((100% - 72px) / 2.4);}
  body.kts-dest .dexp-stage > .dexp-arrows{padding-top:calc((100% - 72px) / 2.4 * 1.25);}
  body.kts-dest .dexp-arrow--prev{left:-10px;}
  body.kts-dest .dexp-arrow--next{right:-10px;}
}

/* ---------- phone ---------- */
@media (max-width:760px){
  body.kts-dest .dest-band{padding:64px 0;}
  body.kts-dest .cta-band{padding:72px 0;}
  body.kts-dest .hero-content{padding-bottom:56px;}
  body.kts-dest .hero h1{font-size:clamp(26px,7vw,30px);line-height:1.18;}
  body.kts-dest .section-head{grid-template-columns:1fr;margin-bottom:32px;padding-bottom:22px;}
  body.kts-dest .section-head > p{grid-column:1;grid-row:auto;margin-top:14px;}
  body.kts-dest .subnav .subnav-enquire{display:none;}
  body.kts-dest .subnav-links{gap:24px;}
  .dest-ov,.dest-why-grid,.dest-season-grid,body.kts-dest .dest-featured .itin-row{grid-template-columns:1fr;gap:40px;}
  body.kts-dest .dest-featured .itin-media{order:-1;aspect-ratio:4/3;}
  body.kts-dest .dest-featured .itin-day,body.kts-dest .dest-featured .itin-day:last-of-type{grid-template-columns:68px minmax(0,1fr);}
  .dest-ov-lead p{font-size:18px;line-height:1.55;}
  .dest-ov-cols{column-count:1;}
  .dest-ov-media{position:static;}
  .dest-why-media{aspect-ratio:4/3;}
  .dpark-grid,.dstay-grid{grid-template-columns:1fr;gap:44px;}
  body.kts-dest .dexp-track{gap:20px;}
  body.kts-dest .dexp-card{flex-basis:78%;}
  body.kts-dest .dexp-stage > .dexp-arrows{display:none;}
  .dest-cal{grid-template-columns:repeat(6,minmax(0,1fr));}
  .dest-cal > span:nth-child(6){border-right:0;}
  .dest-cal > span:nth-child(-n+6){border-bottom:1px solid rgba(13,27,42,.08);}
  .dest-cal-key{margin-bottom:36px;}
  .dest-season-rows li{grid-template-columns:1fr;gap:6px;}
  .dest-season-media{display:none;}
  body.kts-dest .dest-faq .faq-q{font-size:19px;}
  body.kts-dest .dest-faq .faq-a p{padding-right:0;}
}

/* ════════════════════════════════════════════════════════
   ARTICLES (v1.19.0) — blog posts (single.php) and Guide pages
   (page-guide.php), scoped to body.kts-article (added in header.php).
   Same language as the safari and destination pages: text crumbs, gold
   category line, serif headings, hairlines, square edges, numbered
   chapter heads, only the photo hero and the closing band dark.
   ════════════════════════════════════════════════════════ */
body.kts-article{--radius:0px;--kts-muted:#55606c;--kts-sand:#eeeadf;counter-reset:kts-ch;}
body.kts-article .art-band{padding:96px 0;background:var(--white);}
body.kts-article .art-band.is-sand{background:var(--kts-sand);}
body.kts-article .art-body{padding-top:72px;}

/* ---------- masthead: photo hero or light masthead ---------- */
body.kts-article .art-hero{min-height:clamp(480px,72vh,680px);}
body.kts-article .art-hero::after{
  background-color:rgba(13,27,42,.15);
  background-image:linear-gradient(180deg, rgba(13,27,42,.3) 0%, rgba(13,27,42,0) 30%, rgba(13,27,42,.2) 62%, rgba(13,27,42,.62) 100%);
}
body.kts-article .art-hero .hero-content{padding-bottom:88px;}
.art-masthead{padding:72px 0 64px;background:var(--white);border-bottom:1px solid var(--hdr-rule);}
.art-crumbs{display:flex;flex-wrap:wrap;align-items:center;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
.art-crumbs a{color:inherit;text-decoration:none;}
.art-crumbs a:hover{color:var(--navy-deep);}
.art-crumbs i{font-style:normal;margin:0 10px;opacity:.6;}
.art-crumbs span{color:var(--navy-deep);}
.art-hero .art-crumbs{color:rgba(236,233,225,.75);}
.art-hero .art-crumbs a:hover,.art-hero .art-crumbs span{color:#ece9e1;}
.art-eyebrow{display:flex;align-items:center;gap:14px;margin:26px 0 14px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
.art-eyebrow::before{content:'';width:28px;height:1px;background:currentColor;}
.art-hero .art-eyebrow{color:var(--hdr-brass-light);}
body.kts-article .art-head h1{font-size:clamp(30px,3.8vw,48px);line-height:1.12;max-width:920px;margin:0;text-wrap:balance;color:var(--navy-deep);}
body.kts-article .art-hero .art-head h1{color:#ece9e1;}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:26px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
.art-meta i{font-style:normal;margin:0 12px;color:var(--hdr-brass-ink);}
.art-hero .art-meta{color:#d5d9de;}
.art-hero .art-meta i{color:var(--hdr-brass-light);}

/* ---------- section bar (TOC) ---------- */
body.kts-article .subnav{background:var(--white);border-bottom:1px solid var(--hdr-rule);}
body.kts-article .subnav .wrap{height:64px;}
body.kts-article .subnav-links{gap:34px;height:100%;align-items:stretch;}
body.kts-article .subnav-links a{display:flex;align-items:center;font-size:11px;letter-spacing:.2em;font-weight:500;color:var(--kts-muted);padding:0;border-bottom:1px solid transparent;margin-bottom:-1px;}
body.kts-article .subnav-links a:hover{color:var(--navy-deep);}
body.kts-article .subnav-links a.active{color:var(--navy-deep);border-bottom-color:var(--hdr-brass-ink);}
body.kts-article .subnav .subnav-enquire{flex-shrink:0;margin-left:24px;}

/* ---------- reading column + prose ---------- */
.art-column{max-width:784px;} /* 720px of text + the 32px gutters */
.kts-prose{color:var(--kts-muted,#55606c);}
.kts-prose > p:first-child{font-family:var(--font-head);font-style:italic;font-size:clamp(19px,1.7vw,22px);line-height:1.55;color:var(--navy-deep);margin-bottom:28px;}
.kts-prose p{font-size:16px;line-height:1.75;margin:0 0 20px;color:inherit;}
.kts-prose h2{font-size:clamp(26px,2.6vw,32px);line-height:1.2;color:var(--navy-deep);margin:56px 0 18px;padding-top:28px;border-top:1px solid var(--hdr-rule);scroll-margin-top:calc(var(--hdr-now,96px) + 88px);}
.kts-prose > h2:first-child{margin-top:0;}
.kts-prose h3{font-size:22px;line-height:1.3;color:var(--navy-deep);margin:36px 0 12px;}
.kts-prose h4{font-family:var(--font-body);font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);margin:28px 0 10px;}
.kts-prose ul,.kts-prose ol{margin:0 0 24px;padding:0;list-style:none;font-size:16px;color:inherit;}
.kts-prose li{position:relative;padding:10px 0 10px 28px;margin:0;border-bottom:1px solid var(--hdr-rule);line-height:1.65;}
.kts-prose li:first-child{border-top:1px solid var(--hdr-rule);}
.kts-prose ul > li::before{content:'';position:absolute;left:4px;top:21px;width:10px;height:1px;background:var(--hdr-brass-ink);}
.kts-prose ol{counter-reset:kts-li;}
.kts-prose ol > li{counter-increment:kts-li;}
.kts-prose ol > li::before{content:counter(kts-li, upper-roman);position:absolute;left:0;top:10px;font-family:var(--font-head);font-size:14px;color:var(--hdr-brass-ink);}
.kts-prose li li{border:0;padding:4px 0 4px 22px;}
.kts-prose li ul,.kts-prose li ol{margin:6px 0 0;}
.kts-prose strong{color:var(--navy-deep);font-weight:600;}
.kts-prose a{color:var(--navy-deep);text-decoration:none;border-bottom:1px solid var(--hdr-brass-ink);transition:color .2s ease;}
.kts-prose a:hover{color:var(--hdr-brass-ink);}
.kts-prose blockquote{margin:40px 0;padding:28px 0 0;border:0;border-top:1px solid var(--hdr-brass-ink);font-family:var(--font-head);font-style:italic;font-size:clamp(21px,2vw,26px);line-height:1.45;color:var(--navy-deep);}
.kts-prose blockquote p{font-size:inherit;line-height:inherit;color:inherit;margin-bottom:12px;}
.kts-prose blockquote cite{display:block;margin-top:10px;font-family:var(--font-body);font-style:normal;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
.kts-prose img{display:block;max-width:100%;height:auto;border-radius:0;margin:32px 0;}
.kts-prose figure{margin:36px 0;}
.kts-prose figure img{margin:0;}
.kts-prose figcaption,.kts-prose .wp-caption-text{margin-top:10px;font-size:12px;letter-spacing:.06em;color:var(--kts-muted,#55606c);}
.kts-prose hr{border:0;height:1px;background:var(--hdr-rule);margin:48px 0;}
.kts-prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:14px;}
.kts-prose th{text-align:left;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);padding:12px 16px 12px 0;border-bottom:1px solid var(--navy-deep);}
.kts-prose td{padding:14px 16px 14px 0;border-bottom:1px solid var(--hdr-rule);vertical-align:top;}

/* ---------- guide: layout, quick facts, callout ---------- */
body.kts-article .guide-layout{grid-template-columns:minmax(0,1fr) 340px;gap:88px;}
body.kts-article .guide-main{max-width:720px;}
body.kts-article .guide-quick-facts{margin:56px 0 0;}
body.kts-article .guide-quick-facts h2{font-size:clamp(26px,2.6vw,32px);margin:0 0 20px;padding-top:28px;border-top:1px solid var(--hdr-rule);color:var(--navy-deep);}
body.kts-article .guide-quick-facts-table{border:0;border-radius:0;}
body.kts-article .guide-quick-facts-table thead th{background:none;color:var(--hdr-brass-ink);font-size:10px;letter-spacing:.22em;font-weight:600;padding:12px 16px 12px 0;border-bottom:1px solid var(--navy-deep);}
body.kts-article .guide-quick-facts-table tbody tr:nth-child(even){background:none;}
body.kts-article .guide-quick-facts-table tbody td{padding:16px 16px 16px 0;border-top:0;border-bottom:1px solid var(--hdr-rule);color:var(--kts-muted);}
body.kts-article .guide-quick-facts-table tbody td:first-child{font-family:var(--font-head);font-weight:400;font-size:17px;color:var(--navy-deep);}
body.kts-article .guide-callout{margin:48px 0 0;padding:32px 36px;background:var(--kts-sand);border:0;border-top:1px solid var(--navy-deep);border-radius:0;}
body.kts-article .guide-callout h3{font-family:var(--font-head);font-weight:400;font-size:22px;line-height:1.3;color:var(--navy-deep);margin:0 0 12px;}
body.kts-article .guide-callout p{font-size:15px;line-height:1.7;color:var(--kts-muted);}

/* ---------- guide: sidebar ---------- */
body.kts-article .guide-sidebar{gap:56px;top:calc(var(--hdr-now,96px) + 96px);}
body.kts-article .sidebar-widget{background:none;border:0;border-top:1px solid var(--navy-deep);border-radius:0;box-shadow:none;padding:24px 0 0;}
body.kts-article .sidebar-widget h3{font-family:var(--font-body);font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);margin:0 0 18px;padding:0;}
.art-rec{list-style:none;margin:0;padding:0;}
.art-rec li{border-bottom:1px solid var(--hdr-rule);}
.art-rec li:first-child .art-rec-item{padding-top:0;}
.art-rec-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center;padding:16px 0;text-decoration:none;color:inherit;}
.art-rec-media{display:block;aspect-ratio:1/1;overflow:hidden;background:#d9d2c3;}
.art-rec-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.art-rec-item:hover .art-rec-media img{transform:scale(1.04);}
.art-rec-cat{display:block;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);margin-bottom:6px;}
.art-rec-title{display:block;font-family:var(--font-head);font-size:17px;line-height:1.3;color:var(--navy-deep);transition:color .2s ease;}
.art-rec-item:hover .art-rec-title{color:var(--hdr-brass-ink);}
.art-rec-meta{display:block;margin-top:6px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
body.kts-article .sidebar-widget--enquire{background:none;border-top-color:var(--navy-deep);}
body.kts-article .sidebar-widget--enquire h3{font-family:var(--font-head);font-size:24px;letter-spacing:0;text-transform:none;font-weight:400;line-height:1.2;color:var(--navy-deep);}
body.kts-article .sidebar-widget--enquire p{font-size:14px;line-height:1.65;color:var(--kts-muted);margin-bottom:22px;}
body.kts-article .sidebar-enquire-actions{display:flex;flex-direction:column;gap:10px;}
body.kts-article .sidebar-enquire-actions .btn{width:100%;justify-content:center;border-radius:0;font-size:11px;letter-spacing:.22em;font-weight:500;padding:15px 20px;}
body.kts-article .sidebar-enquire-actions .btn.filled{background:var(--navy-deep);color:var(--white);border:1px solid var(--navy-deep);}
body.kts-article .sidebar-enquire-actions .btn.filled:hover{background:transparent;color:var(--navy-deep);}
body.kts-article .sidebar-whatsapp{background:transparent;color:var(--navy-deep);border:1px solid var(--navy-deep);}
body.kts-article .sidebar-whatsapp:hover{background:var(--navy-deep);color:var(--white);}
body.kts-article .sidebar-guide-list{list-style:none;margin:0 0 22px;padding:0;}
body.kts-article .sidebar-guide-list li{border-bottom:1px solid var(--hdr-rule);}
body.kts-article .sidebar-guide-list a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;text-decoration:none;}
body.kts-article .sidebar-guide-list li:first-child a{padding-top:0;}
body.kts-article .sg-title{font-family:var(--font-head);font-size:18px;line-height:1.3;color:var(--navy-deep);transition:color .2s ease;}
body.kts-article .sg-arrow{font-family:var(--font-head);color:var(--hdr-brass-ink);transition:transform .25s ease;}
body.kts-article .sidebar-guide-list a:hover .sg-title{color:var(--hdr-brass-ink);}
body.kts-article .sidebar-guide-list a:hover .sg-arrow{transform:translateX(4px);}

/* ---------- numbered chapter heads (FAQ, Keep reading) ---------- */
body.kts-article .eyebrow{display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.26em;font-weight:600;color:var(--hdr-brass-ink);margin-bottom:16px;}
body.kts-article .section-head .eyebrow{counter-increment:kts-ch;}
body.kts-article .section-head .eyebrow::before{
  content:counter(kts-ch, upper-roman);font-family:var(--font-head);font-size:14px;letter-spacing:0;font-weight:400;
  padding-right:42px;background:linear-gradient(currentColor,currentColor) no-repeat right center / 28px 1px;
}
body.kts-article .section-head{
  max-width:none;margin:0 0 48px;padding-bottom:28px;border-bottom:1px solid var(--hdr-rule);text-align:left;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);column-gap:64px;align-items:end;
}
body.kts-article .section-head > *{grid-column:1;}
body.kts-article .section-head > p{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0;color:var(--kts-muted);font-size:15px;}
body.kts-article .section-head h2{font-size:clamp(30px,3vw,40px);line-height:1.12;margin:0;color:var(--navy-deep);}

/* ---------- FAQ ---------- */
.art-faq-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:88px;align-items:start;}
.art-faq-grid.no-media{grid-template-columns:minmax(0,920px);}
.art-faq-media{position:sticky;top:calc(var(--hdr-now,96px) + 40px);aspect-ratio:4/5;overflow:hidden;background:#d9d2c3;}
.art-faq-media img{width:100%;height:100%;object-fit:cover;display:block;}
body.kts-article .art-faq .section-head{grid-template-columns:1fr;}
body.kts-article .art-faq .faq-item{border-bottom:1px solid var(--hdr-rule);}
body.kts-article .art-faq .faq-q{font-family:var(--font-head);font-size:22px;font-weight:400;color:var(--navy-deep);padding:24px 0;gap:24px;}
body.kts-article .art-faq .faq-chevron{display:none;}
body.kts-article .art-faq .faq-q::after{
  content:'';flex:0 0 14px;width:14px;height:14px;
  background:linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 14px 1px no-repeat,
             linear-gradient(var(--hdr-brass-ink),var(--hdr-brass-ink)) center / 1px 14px no-repeat;
  transition:background-size .25s ease;
}
body.kts-article .art-faq .faq-item.open .faq-q::after{background-size:14px 1px, 1px 0;}
body.kts-article .art-faq .faq-item.open .faq-a{max-height:1200px;}
body.kts-article .art-faq .faq-a p{font-size:15px;color:var(--kts-muted);max-width:none;padding-right:60px;}

/* ---------- Keep reading cards ---------- */
.art-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 36px;counter-reset:kts-card;}
.art-card{display:block;text-decoration:none;color:inherit;counter-increment:kts-card;}
.art-card-media{display:block;aspect-ratio:3/2;overflow:hidden;background:#d9d2c3;}
.art-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.art-card:hover .art-card-media img{transform:scale(1.03);}
.art-card-meta{display:flex;align-items:center;gap:12px;margin:22px 0 10px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
.art-card-meta::before{content:counter(kts-card, upper-roman);font-family:var(--font-head);font-size:13px;letter-spacing:0;font-weight:400;}
.art-card-media + .art-card-title{margin-top:22px;}
.art-card-title{margin:0 0 10px;padding-bottom:12px;border-bottom:1px solid var(--hdr-rule);font-family:var(--font-head);font-weight:400;font-size:22px;line-height:1.3;color:var(--navy-deep);transition:color .2s ease;}
.art-card:hover .art-card-title{color:var(--hdr-brass-ink);}
.art-card-text{margin:0;font-size:14px;line-height:1.6;color:var(--kts-muted,#55606c);}

/* ---------- closing band (dark, 2nd of 2) ---------- */
body.kts-article .cta-band{background:var(--navy-deep);padding:104px 0;text-align:center;}
body.kts-article .cta-band .eyebrow{justify-content:center;color:var(--hdr-brass-light);}
body.kts-article .cta-band .eyebrow::before,
body.kts-article .cta-band .eyebrow::after{content:'';width:28px;height:1px;background:currentColor;}
body.kts-article .cta-band h2{color:#ece9e1;font-size:clamp(28px,3vw,40px);line-height:1.15;max-width:900px;margin-left:auto;margin-right:auto;text-wrap:balance;}
body.kts-article .cta-band p{color:#c9d0d9;max-width:560px;}
body.kts-article .cta-band .btn{background:transparent;color:#ece9e1;border:1px solid rgba(236,233,225,.7);border-radius:0;font-size:11px;letter-spacing:.22em;font-weight:500;padding:15px 28px;}
body.kts-article .cta-band .btn:hover{background:#ece9e1;color:var(--navy-deep);}

/* ---------- tablet ---------- */
@media (max-width:1024px){
  body.kts-article .guide-layout{grid-template-columns:minmax(0,1fr) 280px;gap:56px;}
  .art-faq-grid{gap:56px;}
}
@media (max-width:900px){
  body.kts-article .guide-layout{grid-template-columns:1fr;gap:64px;}
  body.kts-article .guide-main{max-width:none;}
  body.kts-article .guide-sidebar{position:static;}
  .art-cards{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---------- phone ---------- */
@media (max-width:760px){
  body.kts-article .art-band{padding:64px 0;}
  body.kts-article .art-body{padding-top:48px;}
  body.kts-article .cta-band{padding:72px 0;}
  body.kts-article .art-hero{min-height:clamp(440px,70svh,560px);}
  body.kts-article .art-hero .hero-content{padding-bottom:56px;}
  .art-masthead{padding:48px 0 44px;}
  body.kts-article .art-head h1{font-size:clamp(27px,7.4vw,32px);line-height:1.18;}
  .art-meta{margin-top:20px;font-size:10px;row-gap:6px;}
  .art-meta i{margin:0 9px;}
  body.kts-article .subnav .subnav-enquire{display:none;}
  body.kts-article .subnav-links{gap:24px;}
  .kts-prose > p:first-child{font-size:18px;}
  .kts-prose p,.kts-prose ul,.kts-prose ol{font-size:15px;}
  .kts-prose h2{margin-top:44px;}
  body.kts-article .guide-quick-facts-table{overflow-x:auto;}
  body.kts-article .guide-quick-facts-table table{min-width:520px;}
  body.kts-article .guide-callout{padding:26px 22px;}
  body.kts-article .section-head{grid-template-columns:1fr;margin-bottom:32px;padding-bottom:22px;}
  body.kts-article .section-head > p{grid-column:1;grid-row:auto;margin-top:14px;}
  .art-faq-grid{grid-template-columns:1fr;gap:36px;}
  .art-faq-media{position:static;aspect-ratio:4/3;}
  body.kts-article .art-faq .faq-q{font-size:19px;}
  body.kts-article .art-faq .faq-a p{padding-right:0;}
  .art-cards{grid-template-columns:1fr;gap:44px;}
}

/* ════════════════════════════════════════════════════════
   PARK PAGE + SAFARI STYLE REFRESH (v1.21.0)
   Both page types carry the `kts-dest` body class, so they inherit the
   whole "DESTINATION PAGE REFRESH" block above. This block only adds
   what those pages have that a Destination Hub doesn't:
   body.kts-park  = single-park.php
   body.kts-style = taxonomy-safari_collection.php (template-parts/experience/)
   ════════════════════════════════════════════════════════ */

/* ---------- hero fact line (parks) ---------- */
body.kts-dest .hero-facts{margin-top:34px;}

/* ---------- park overview aside: map + At a glance ---------- */
.park-ov-aside{display:flex;flex-direction:column;gap:36px;}
.park-ov-figure{margin:0;}
.park-ov-figure img{display:block;width:100%;height:auto;}
.park-glance-label{margin:0 0 6px;font-family:var(--font-body);font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
.park-ov-figure + .park-glance-label{margin-top:0;}
.park-glance li b{max-width:65%;}

/* ---------- key species (same grid as the safari page) ---------- */
body.kts-park .species-dots{display:none;}
body.kts-park .species-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:1px solid var(--hdr-rule);border-left:1px solid var(--hdr-rule);}
body.kts-park .species-item{padding:28px 16px;border-right:1px solid var(--hdr-rule);border-bottom:1px solid var(--hdr-rule);text-align:center;}
body.kts-park .species-item .sp-name{font-family:var(--font-head);font-weight:400;font-size:19px;color:var(--navy-deep);}
body.kts-park .species-item .sp-chance{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--kts-muted);margin-top:4px;}

/* ---------- getting there: hairline label / value rows ---------- */
.park-access-rows{list-style:none;margin:0;padding:0;max-width:920px;border-top:1px solid var(--hdr-rule);}
.park-access-rows li{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--hdr-rule);}
.park-access-rows span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--kts-muted,#55606c);}
.park-access-rows b{font-family:var(--font-head);font-weight:400;font-size:20px;line-height:1.35;color:var(--navy-deep);}

/* ---------- conservation + "why this style": two-column numbered list ---------- */
.park-cons-list,.eh-why-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px;border-top:0;}
.park-cons-list li,.eh-why-list li{border-bottom:1px solid var(--hdr-rule);}
.park-cons-list li:nth-child(-n+2),.eh-why-list li:nth-child(-n+2){border-top:1px solid var(--hdr-rule);}

/* ---------- safari style: hero actions ---------- */
.eh-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:34px;}
body.kts-dest .eh-hero-btn{background:transparent;color:#ece9e1;border:1px solid rgba(236,233,225,.7);}
body.kts-dest .eh-hero-btn:hover{background:#ece9e1;color:var(--navy-deep);border-color:#ece9e1;}
.eh-hero-link.kts-text-link{color:#ece9e1;border-bottom-color:var(--hdr-brass-light);}
.eh-hero-link.kts-text-link:hover{color:var(--hdr-brass-light);}

/* ---------- safari style: intro ---------- */
.eh-intro-copy h2{font-size:clamp(30px,3vw,40px);line-height:1.12;color:var(--navy-deep);margin:0 0 28px;}
.eh-intro-text p{margin:0 0 18px;font-size:15px;line-height:1.75;color:var(--kts-muted,#55606c);}
.eh-intro-text > p:first-child{font-family:var(--font-head);font-style:italic;font-size:clamp(19px,1.6vw,22px);line-height:1.5;color:var(--navy-deep);margin-bottom:24px;}
.eh-intro-text > *:last-child{margin-bottom:0;}

/* ---------- safari style: make it yours (pull-quote) ---------- */
.eh-mm{max-width:780px;margin:0 auto;text-align:center;}
.eh-mm::before{content:'';display:block;width:48px;height:1px;background:var(--hdr-brass-ink);margin:0 auto 28px;}
.eh-mm-label{margin:0;font-size:10px;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--hdr-brass-ink);}
.eh-mm-lead{margin:18px auto;font-family:var(--font-head);font-style:italic;font-size:clamp(24px,2.6vw,34px);line-height:1.3;color:var(--navy-deep);}
.eh-mm-sub{margin:0 auto;max-width:620px;font-size:15px;color:var(--kts-muted,#55606c);}
body.kts-dest .eh-mm-cta{margin-top:30px;background:transparent;color:var(--navy-deep);border:1px solid var(--navy-deep);}
body.kts-dest .eh-mm-cta:hover{background:var(--navy-deep);color:var(--white);}

/* ---------- safari style: FAQ with optional photo ---------- */
.eh-faq-layout{max-width:920px;}
.eh-faq-layout.has-media{max-width:none;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:88px;align-items:start;}
.eh-faq-photo{position:sticky;top:calc(var(--hdr-now,96px) + 40px);aspect-ratio:4/5;overflow:hidden;background:#d9d2c3;}
.eh-faq-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- safari style: seasonal guide (stays dark: the one
   mid-page dark section, like the homepage's Experiences slider) ---------- */
body.kts-style .eh-seasonal{padding:96px 0;}
body.kts-style .eh-seasonal-info .section-head{border-bottom-color:rgba(236,233,225,.18);}
body.kts-style .eh-seasonal .section-head .eyebrow,
body.kts-style .eh-seasonal .eyebrow.on-dark{color:var(--hdr-brass-light);}
body.kts-style .eh-seasonal-info .section-head h2{color:#ece9e1;}
body.kts-style .eh-seasonal-info .section-head p{color:#c9d0d9;}
/* v1.22.0: heading stacked above the description (the shared section-head
   grid put the paragraph in a second column, squeezing the title). */
body.kts-style .eh-seasonal .section-head{display:block;grid-template-columns:none;border-bottom:0;padding-bottom:0;}
body.kts-style .eh-seasonal .section-head h2{font-size:clamp(30px,3vw,40px);line-height:1.12;}
body.kts-style .eh-seasonal .section-head > p{margin:16px 0 0;max-width:560px;}
body.kts-style .eh-seasonal-legend{padding:0;margin:0;}
body.kts-style .eh-seasonal-legend-item,
body.kts-style .eh-seasonal-legend-item:last-child{border-bottom:1px solid rgba(236,233,225,.18);}
body.kts-style .eh-seasonal-swatch{border-radius:0;width:12px;height:2px;margin-top:12px;}
body.kts-style .eh-seasonal-legend-body em{font-style:normal;font-size:20px;}
body.kts-style .eh-seasonal-legend-body small{font-size:10px;letter-spacing:.2em;color:var(--hdr-brass-light);}
body.kts-style .eh-seasonal-legend-item.is-active .eh-seasonal-legend-body em{color:var(--hdr-brass-light);}
body.kts-style .eh-seasonal-center-label{font-size:10px;letter-spacing:.22em;color:var(--hdr-brass-light);}
body.kts-style .eh-seasonal-month-label{letter-spacing:.14em;}

/* ---------- safari style: trust strip (shared homepage part) ---------- */
body.kts-style .trust-strip .btn{border-radius:0;}

/* ---------- tablet ---------- */
@media (max-width:1024px){
  body.kts-park .species-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .eh-faq-layout.has-media{gap:56px;}
}

/* ---------- phone ---------- */
@media (max-width:760px){
  body.kts-park .species-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .park-access-rows li{grid-template-columns:1fr;gap:6px;padding:16px 0;}
  .park-access-rows b{font-size:18px;}
  .park-cons-list,.eh-why-list{grid-template-columns:1fr;}
  .park-cons-list li:nth-child(2),.eh-why-list li:nth-child(2){border-top:0;}
  .eh-hero-actions{gap:22px;margin-top:28px;}
  .eh-faq-layout.has-media{grid-template-columns:1fr;gap:36px;}
  .eh-faq-photo{position:static;aspect-ratio:4/3;}
  body.kts-style .eh-seasonal{padding:64px 0;}
  .park-glance li b{max-width:60%;}
}

/* v1.22.0: floating buttons now appear sitewide; the navy Enquire capsule
   gets a faint ivory edge so it still reads over navy sections. */
.capsule-enquire{border:1px solid rgba(236,233,225,.35);}
body.kts-style .eh-seasonal-wheel{margin:28px;}
@media (max-width:760px){ body.kts-style .eh-seasonal-wheel{margin:24px 28px;max-width:300px;} }
