/* ============================================================
   Endelea Africa v2 — shared stylesheet (mobile-first)
   ============================================================ */
:root {
  --bg:#0C100D; --bg-deep:#080B09; --bg-alt:#101512; --card:#1A1F1B;
  --line:rgba(239,233,221,0.12); --line-strong:rgba(239,233,221,0.22);
  --cream:#EFE9DD; --cream-80:rgba(239,233,221,0.80); --cream-70:rgba(239,233,221,0.70);
  --cream-60:rgba(239,233,221,0.60);
  --gold:#C9A253; --gold-bright:#E0BE72;
  --paper:#F3EEE3; --ink:#16150F; --ink-muted:#6C6555;
  --serif:"Marcellus",Georgia,serif; --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --script:"Great Vibes","Marcellus",cursive;
  --maxw:1440px; --gutter:clamp(20px,5vw,44px); --section-y:clamp(56px,8vw,100px); --radius:2px;
  --ease:cubic-bezier(0.22,1,0.36,1); --header-h:66px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip;}
body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;text-wrap:pretty;}
img,svg{max-width:100%;display:block;}img{height:auto;}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
a{color:var(--cream);text-decoration:none;transition:color .25s var(--ease);}
a:hover{color:var(--gold);}
button{font-family:inherit;}
::selection{background:var(--gold);color:var(--bg);}
:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px;border-radius:1px;}
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.skip-link{position:fixed;top:8px;left:8px;z-index:200;background:var(--gold);color:var(--bg);padding:10px 18px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transform:translateY(-160%);transition:transform .2s var(--ease);}
.skip-link:focus{transform:none;color:var(--bg);}

/* ---- type helpers ---- */
.kicker{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-weight:500;}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(27px,4.6vw,52px);line-height:1.07;letter-spacing:-.01em;}
.prose{display:grid;gap:20px;font-size:clamp(15.5px,1.6vw,16.5px);line-height:1.8;color:var(--cream-80);max-width:64ch;}
.prose--article{font-size:clamp(16px,1.7vw,18px);max-width:68ch;}
.link-underline{display:inline-block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:5px;}
.link-underline:hover{color:var(--gold-bright);}
.tag-gold{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:500;}
.tag-muted{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-60);font-weight:500;}

/* ---- buttons ---- */
.btn{--btn-bg:transparent;--btn-fg:var(--cream);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:14px 28px;background:var(--btn-bg);color:var(--btn-fg);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;cursor:pointer;border:1px solid transparent;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .2s var(--ease);}
.btn:active{transform:translateY(1px);}
.btn--gold{--btn-bg:var(--gold);--btn-fg:var(--bg);}.btn--gold:hover{--btn-bg:var(--gold-bright);color:var(--bg);}
.btn--cream{--btn-bg:var(--cream);--btn-fg:var(--bg);}.btn--cream:hover{--btn-bg:var(--gold);color:var(--bg);}
.btn--outline{border-color:var(--line-strong);--btn-fg:var(--cream);}.btn--outline:hover{border-color:var(--gold);color:var(--gold);}
.btn--dark{--btn-bg:var(--ink);--btn-fg:var(--paper);}.btn--dark:hover{--btn-bg:var(--gold);color:var(--ink);}
.btn--sm{min-height:42px;padding:11px 20px;}
.btn--block{width:100%;}

/* ---- topbar ---- */
.topbar{background:var(--bg-deep);color:var(--cream-60);font-size:11px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--line);}
.topbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-block:9px;}
.topbar__contact{display:flex;gap:8px 22px;flex-wrap:wrap;}
.topbar__contact a{color:inherit;white-space:nowrap;padding-block:4px;}
.topbar__tag{display:none;}

/* ---- header ---- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(12,16,13,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:background .3s var(--ease),box-shadow .3s var(--ease);}
.site-header.is-scrolled{background:rgba(9,12,10,.94);box-shadow:0 12px 34px -18px rgba(0,0,0,.9);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;}
.brand{flex-shrink:0;line-height:0;}
.brand__logo{height:34px;width:auto;filter:brightness(0) invert(1);}
.nav{display:none;}
.site-header__actions{display:flex;align-items:center;gap:12px;}
.nav-cta{display:none;}
.hamburger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 11px;background:none;border:1px solid var(--line-strong);cursor:pointer;}
.hamburger span{display:block;height:1.5px;width:100%;background:var(--cream);}

/* ---- mobile menu ---- */
.mobile-menu{position:fixed;inset:0;z-index:120;visibility:hidden;pointer-events:none;overflow:hidden;}
.mobile-menu.is-open{visibility:visible;pointer-events:auto;}
.mobile-menu__backdrop{position:absolute;inset:0;background:rgba(6,9,7,.6);opacity:0;transition:opacity .35s var(--ease);}
.mobile-menu.is-open .mobile-menu__backdrop{opacity:1;}
.mobile-menu__panel{position:absolute;top:0;right:0;height:100%;width:min(90vw,400px);background:var(--bg-deep);border-left:1px solid var(--line);padding:22px var(--gutter) calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;transform:translateX(100%);transition:transform .4s var(--ease);overflow-y:auto;}
.mobile-menu.is-open .mobile-menu__panel{transform:none;}
.mobile-menu__head{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--line);}
.mobile-menu__logo{height:30px;width:auto;filter:brightness(0) invert(1);}
.menu-close{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;background:none;border:1px solid var(--line-strong);color:var(--cream);cursor:pointer;}
.menu-close:hover{color:var(--gold);border-color:var(--gold);}
.mobile-menu__nav{display:flex;flex-direction:column;padding-block:10px;}
.mobile-menu__nav a{padding:14px 0;font-family:var(--serif);font-size:24px;border-bottom:1px solid var(--line);}
.m-group{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;}
.m-group__head{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.m-group a{border:0;padding:9px 0;font-size:19px;}
.mobile-menu__foot{margin-top:auto;padding-top:24px;}
.mobile-menu__contact{display:flex;flex-direction:column;gap:6px;margin-top:20px;font-size:14px;color:var(--cream-70);}

/* ---- eyebrow ---- */
.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.eyebrow__rule{width:46px;height:1px;background:var(--gold);flex-shrink:0;transform-origin:left;animation:ruleIn 1.1s .25s var(--ease) both;}
.eyebrow__text{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);}

/* ============================================================
   Home hero — destination slider
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;overflow:hidden;}
.hero__stage{position:absolute;inset:0;}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;opacity:0;transition:opacity .8s var(--ease);}
.hero__bg.is-active{opacity:1;animation:slowzoom 12s ease-out forwards;}
.hero__scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 100% at 68% 10%,rgba(12,16,13,.04) 0%,rgba(12,16,13,.46) 58%,rgba(12,16,13,.8) 100%),linear-gradient(180deg,rgba(12,16,13,0) 48%,rgba(12,16,13,.42) 100%);}
.hero__flyer{position:fixed;z-index:90;background-size:cover;background-position:center;overflow:hidden;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);will-change:left,top,width,height,border-radius;}
.hero__inner{position:relative;z-index:5;align-self:end;display:grid;gap:clamp(28px,4vw,56px);padding-top:calc(var(--header-h) + 36px);padding-bottom:clamp(40px,6vh,72px);width:100%;}
.hero__copy{max-width:640px;}
.hero__copy.is-swapping .eyebrow__text,.hero__copy.is-swapping .hero__title,.hero__copy.is-swapping .hero__lede{animation:heroTextIn .7s var(--ease) both;}
.hero__copy.is-swapping .hero__title{animation-delay:.06s;}
.hero__copy.is-swapping .hero__lede{animation-delay:.12s;}
.hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6.4vw,82px);line-height:1;letter-spacing:-.015em;text-transform:uppercase;overflow-wrap:normal;word-break:normal;hyphens:none;}
.hero__lede{font-size:clamp(15.5px,2vw,17.5px);line-height:1.7;color:var(--cream-80);margin-top:22px;max-width:46ch;}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.hero__actions .btn{flex:1 1 auto;}
.hero__panel{display:grid;gap:18px;}
.hero__rail{display:none;gap:14px;}
.hero__thumb{position:relative;display:block;width:100%;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--card) center/cover no-repeat;cursor:pointer;border:0;padding:0;box-shadow:0 18px 40px -22px rgba(0,0,0,.8);transition:transform .5s var(--ease),box-shadow .4s var(--ease);animation:thumbIn .6s var(--ease) both;}
.hero__thumb:hover{transform:translateY(-6px) scale(1.02);}
.hero__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,13,0) 40%,rgba(12,16,13,.85) 100%);}
.hero__thumb-label{position:absolute;z-index:2;inset:auto 12px 12px;}
.hero__thumb-country{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.hero__thumb-title{display:block;font-family:var(--serif);font-size:14px;line-height:1.14;margin-top:3px;color:var(--cream);}
.hero__thumb-ico{position:absolute;z-index:2;top:10px;right:10px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:rgba(12,16,13,.55);color:var(--cream);backdrop-filter:blur(4px);}
.hero__controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.hero__nav{display:flex;align-items:center;gap:8px;}
.hero__ctrl{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-strong);background:rgba(12,16,13,.4);color:var(--cream);cursor:pointer;backdrop-filter:blur(6px);transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease);}
.hero__ctrl:hover{border-color:var(--gold);color:var(--gold);}
.hero__ctrl .ic-play{display:none;}
.hero.is-paused .hero__ctrl--play .ic-play{display:block;}
.hero.is-paused .hero__ctrl--play .ic-pause{display:none;}
.hero__progress{flex:1 1 120px;height:2px;min-width:90px;background:var(--line-strong);overflow:hidden;}
.hero__progress span{display:block;height:100%;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;}
.hero__counter{font-family:var(--serif);font-size:20px;color:var(--cream);letter-spacing:.05em;white-space:nowrap;}
.hero__counter [data-hero-index]{color:var(--gold);}
.hero__counter i{color:var(--cream-60);margin:0 4px;font-style:normal;}
.hero__dots{position:absolute;z-index:5;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:9px;}
.hero__dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(239,233,221,.4);cursor:pointer;transition:background .3s var(--ease),transform .3s var(--ease);}
.hero__dot.is-active{background:var(--gold);transform:scale(1.25);}
.hero__scroll{display:none;}
@keyframes heroTextIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
@keyframes thumbIn{from{opacity:0;transform:translateX(24px);}to{opacity:1;transform:none;}}

/* ============================================================
   Page hero (interior pages)
   ============================================================ */
.page-hero{position:relative;min-height:clamp(400px,58vh,600px);display:flex;align-items:flex-end;overflow:hidden;background:var(--card);}
.page-hero::before{content:"";position:absolute;inset:0;background-image:var(--hero-img);background-size:cover;background-position:var(--hero-pos,center);animation:slowzoom 16s ease-out forwards;}
.page-hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,13,.35) 0%,rgba(12,16,13,.55) 45%,rgba(12,16,13,.95) 100%);}
.page-hero__inner{position:relative;width:100%;padding-top:calc(var(--header-h) + 40px);padding-bottom:clamp(30px,4vw,52px);}
.page-hero__kicker{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:14px 0 12px;}
.page-hero__title{font-family:var(--serif);font-weight:400;font-size:clamp(34px,6vw,72px);line-height:1;letter-spacing:-.01em;}
.page-hero__sub{font-size:clamp(15px,1.8vw,17px);line-height:1.6;color:var(--cream-80);margin-top:16px;max-width:56ch;}

/* breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-60);}
.crumbs a{color:var(--cream-60);}.crumbs a:hover{color:var(--gold);}
.crumbs span[aria-current]{color:var(--cream);}
.crumb-sep{color:var(--cream-60);opacity:.6;}

/* ============================================================
   Sections & shared layout
   ============================================================ */
.section{padding-block:var(--section-y);}
.section--alt{background:var(--bg-alt);}
.section--divider{border-bottom:1px solid var(--line);}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px 50px;margin-bottom:40px;}
.section-head__note{max-width:36ch;font-size:15px;line-height:1.7;color:var(--cream-70);}
.section-head__link{flex-shrink:0;}
.two-col{display:grid;gap:clamp(24px,4vw,64px);}

/* feature grid */
.feature-grid{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,32px);}
.feature{padding-top:24px;border-top:1px solid var(--line-strong);}
.feature__ico{color:var(--gold);font-size:18px;}
.feature h3{font-family:var(--serif);font-weight:400;font-size:23px;margin:12px 0 10px;}
.feature p{font-size:15px;line-height:1.72;color:var(--cream-70);}

/* card grids */
.card-grid{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,32px);}

/* tour card */
.tour-card{display:block;}
.tour-card__media{overflow:hidden;aspect-ratio:1/1;background:var(--card);border-radius:12px;}
.tour-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.tour-card:hover .tour-card__media img{transform:scale(1.05);}
.tour-card__meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;}
.tour-card__title{font-family:var(--serif);font-size:clamp(23px,3vw,28px);line-height:1.14;margin-top:10px;transition:color .25s var(--ease);}
.tour-card:hover .tour-card__title{color:var(--gold);}
.tour-card__desc{font-size:14.5px;line-height:1.7;color:var(--cream-70);margin-top:10px;}
.tour-card__cta{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);}

/* destination grid + tile */
.dest-grid{display:grid;grid-template-columns:1fr;gap:14px;}
.dest-tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px;}
.dest-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.dest-tile:hover img{transform:scale(1.06);}
.dest-tile__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,13,0) 42%,rgba(12,16,13,.92) 100%);}
.dest-tile__label{position:absolute;inset:auto 0 0 0;padding:clamp(16px,2.5vw,24px);}
.dest-tile__label h3{font-family:var(--serif);font-size:clamp(20px,2.6vw,26px);margin-top:6px;line-height:1.1;}

/* split feature (home destinations) */
.split-feature{display:grid;grid-template-columns:1fr;gap:14px;}
.split-card{position:relative;display:block;min-height:400px;overflow:hidden;}
.split-card::before{content:"";position:absolute;inset:0;background-image:var(--img);background-size:cover;background-position:center;opacity:.6;transition:transform .9s var(--ease),opacity .5s var(--ease);}
.split-card:hover::before{transform:scale(1.05);opacity:.72;}
.split-card__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,13,.35) 0%,rgba(12,16,13,.92) 100%);}
.split-card__body{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:clamp(26px,4vw,48px);}
.split-card__body h3{font-family:var(--serif);font-size:clamp(34px,5vw,56px);line-height:1;}
.split-card__body p{font-size:15.5px;line-height:1.7;color:var(--cream-80);max-width:42ch;}

/* post cards */
.post-card{display:block;}
.post-card__media{overflow:hidden;aspect-ratio:16/10;background:var(--card);}
.post-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.post-card:hover .post-card__media img{transform:scale(1.05);}
.post-card__cat{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:18px;}
.post-card__title{font-family:var(--serif);font-size:clamp(22px,2.6vw,27px);margin-top:10px;line-height:1.2;transition:color .25s var(--ease);}
.post-card:hover .post-card__title{color:var(--gold);}
.post-card__excerpt{font-size:14.5px;line-height:1.7;color:var(--cream-70);margin-top:10px;}
.post-card__date{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-60);}

/* cta strip */
.cta-strip{background:var(--bg-deep);border-top:1px solid var(--line);}
.cta-strip__inner{padding-block:var(--section-y);display:grid;gap:28px;align-items:center;}
.cta-strip__note{font-size:15.5px;line-height:1.7;color:var(--cream-70);margin-top:18px;max-width:44ch;}
.cta-strip__actions{display:flex;flex-wrap:wrap;gap:12px;}

/* ============================================================
   About
   ============================================================ */
.about-split{display:grid;gap:clamp(28px,5vw,72px);align-items:center;}
.about-figure{position:relative;margin:0;}
.about-figure img{width:100%;aspect-ratio:4/4.5;object-fit:cover;}
.about-figure figcaption{position:absolute;bottom:0;left:0;background:var(--bg);padding:16px 22px 0 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.accreditations{display:flex;flex-wrap:wrap;gap:22px 30px;align-items:center;margin-top:28px;}
.accreditations--center{justify-content:center;margin-top:20px;}
.accreditations img{height:42px;width:auto;opacity:.9;}
.accreditations__mono{filter:brightness(0) invert(1);opacity:.78;}

/* ============================================================
   Activities
   ============================================================ */
.act-groups{display:grid;gap:clamp(28px,4vw,44px);}
.act-group__head{display:flex;align-items:baseline;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--gold);margin-bottom:8px;}
.act-group__title{font-family:var(--serif);font-weight:400;font-size:clamp(22px,3vw,32px);}
.act-group__count{font-size:12px;letter-spacing:.14em;color:var(--gold);}
.act-group{scroll-margin-top:calc(var(--header-h) + 20px);}
.act-group:target .act-group__head{border-color:var(--gold-bright);}
.act-group:target .act-group__title{color:var(--gold);}
.act-list{display:grid;grid-template-columns:1fr;}
.act-list li{display:grid;gap:4px;padding:18px 0;border-bottom:1px solid var(--line);}
.act-list__name{font-family:var(--serif);font-size:19px;}
.act-list__desc{font-size:14px;line-height:1.6;color:var(--cream-70);}
/* destination jump index */
.act-index{background:var(--bg-alt);border-bottom:1px solid var(--line);}
.act-index .container{padding-block:22px;}
.act-index__label{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.act-pills{display:flex;flex-wrap:wrap;gap:10px;}
.act-pill{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:999px;padding:9px 16px;font-size:13px;color:var(--cream-80);line-height:1.2;transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease);}
.act-pill:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,162,83,.06);}
.act-pill__n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:rgba(201,162,83,.16);color:var(--gold);font-size:11px;font-weight:600;}

/* ============================================================
   Contact
   ============================================================ */
.contact-grid{display:grid;gap:clamp(32px,5vw,64px);align-items:start;}
.contact-lines{display:grid;gap:22px;margin-top:26px;}
.contact-line{display:grid;grid-template-columns:70px 1fr;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.contact-line__k{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding-top:4px;}
.contact-line a{display:block;font-size:15.5px;padding-block:3px;color:var(--cream-80);}
.contact-line a:hover{color:var(--gold);}
.contact-addr{font-size:15px;line-height:1.7;color:var(--cream-80);}
.contact-social{display:flex;flex-wrap:wrap;gap:12px;}
/* social icon buttons */
.social-ico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line-strong);border-radius:50%;color:var(--cream-70);transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease);}
.social-ico:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,162,83,.06);}
.social-ico--lg{width:44px;height:44px;}
.contact-channels{margin-top:26px;max-width:360px;display:grid;gap:12px;}

/* form (shared) */
.enquire-form{background:var(--paper);color:var(--ink);padding:clamp(26px,5vw,42px);display:grid;gap:20px;align-content:start;}
.field-row{display:grid;grid-template-columns:1fr;gap:20px;}
.field{display:grid;gap:8px;}
.field label{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);}
.req{color:#A6572E;}
.field input,.field textarea,.select-wrap select{width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid rgba(22,21,15,.3);padding:12px 0;min-height:46px;transition:border-color .2s var(--ease);}
.field textarea{border:1px solid rgba(22,21,15,.3);padding:12px;resize:vertical;min-height:116px;}
.field input::placeholder,.field textarea::placeholder{color:#A29A88;}
.field input:focus,.field textarea:focus,.select-wrap select:focus{outline:none;border-color:var(--gold);}
.field.has-error input,.field.has-error textarea{border-color:#A6572E;}
.field__error{font-size:12px;color:#A6572E;}
.field__error:empty{display:none;}
.select-wrap{position:relative;display:flex;align-items:center;}
.select-wrap select{appearance:none;-webkit-appearance:none;padding-right:28px;cursor:pointer;}
.select-wrap__chev{position:absolute;right:0;pointer-events:none;color:var(--ink-muted);}
.enquire-form__note{font-size:12.5px;color:var(--ink-muted);line-height:1.6;}
.enquire-form__success{font-size:14px;line-height:1.6;color:#CABB92;background:rgba(44,90,58,.1);border:1px solid rgba(44,90,58,.3);padding:14px 16px;}
.enquire-form__error{font-size:14px;line-height:1.6;color:#8A3D2E;background:rgba(138,61,46,.08);border:1px solid rgba(138,61,46,.3);padding:14px 16px;}
.enquire-form__error a{color:inherit;text-decoration:underline;font-weight:600;}

/* ============================================================
   Detail pages (tour + destination)
   ============================================================ */
.detail-grid{display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,56px);align-items:start;}
.detail-main{display:grid;gap:clamp(36px,5vw,56px);}
.detail-lead{font-size:clamp(17px,2.2vw,20px);line-height:1.6;color:var(--cream);font-family:var(--serif);}
.detail-note,.detail-block .detail-note{font-size:13.5px;color:var(--cream-60);margin-top:14px;}
.route-pills{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:22px;}
.route-pill{border:1px solid var(--line-strong);padding:8px 14px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-80);}
.route-arrow{color:var(--gold);}

/* itinerary timeline */
.timeline{display:grid;gap:0;}
.timeline__item{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--line);position:relative;}
.timeline__item:first-child{border-top:0;}
.timeline__day{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding-top:4px;}
.timeline__body h3{font-family:var(--serif);font-weight:400;font-size:clamp(18px,2.4vw,22px);line-height:1.2;}
.timeline__body p{font-size:14.5px;line-height:1.7;color:var(--cream-70);margin-top:6px;}

.detail-cols{display:grid;gap:clamp(28px,4vw,44px);}
.check-list,.plus-list{display:grid;gap:12px;margin-top:6px;}
.check-list li,.plus-list li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.6;color:var(--cream-80);}
.check-list li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:7px;border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg);}
.plus-list li::before{content:"+";position:absolute;left:2px;top:0;color:var(--gold);font-weight:700;}
.chips{display:flex;flex-wrap:wrap;gap:9px;}
.chip{border:1px solid var(--line-strong);padding:8px 13px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-80);}

/* fact card (sidebar) */
.detail-aside{position:relative;}
.fact-card{background:var(--bg-alt);border:1px solid var(--line);padding:clamp(24px,3vw,32px);display:grid;gap:16px;}
.fact-card__title{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1;}
.facts{display:grid;gap:0;}
.facts>div{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);}
.facts dt{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-60);padding-top:2px;}
.facts dd{font-size:14.5px;color:var(--cream);}
.fact-card .btn{margin-top:2px;}
.fact-card__note{font-size:12.5px;line-height:1.6;color:var(--cream-60);}

/* article */
.article-wrap{max-width:760px;margin:0 auto;}
.article__meta{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-60);margin-bottom:24px;}

/* ============================================================
   Footer + floaties
   ============================================================ */
.site-footer{background:var(--bg-deep);color:var(--cream-70);padding-block:clamp(44px,6vw,70px) 30px;border-top:1px solid var(--line);}
.site-footer__grid{display:grid;grid-template-columns:1fr;gap:clamp(30px,4vw,50px);}
.site-footer__logo{height:38px;width:auto;filter:brightness(0) invert(1);opacity:.9;}
.site-footer__brand p{font-size:14.5px;line-height:1.75;margin-top:18px;max-width:32ch;}
.site-footer__social{display:flex;gap:12px;margin-top:22px;}
.footcol{display:grid;gap:6px;align-content:start;font-size:14.5px;}
.footcol a{color:var(--cream-70);padding-block:7px;}
.footcol a:hover{color:var(--gold);}
.footcol__head{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:4px;}
.site-footer__bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;letter-spacing:.08em;color:var(--cream-60);}

.floaties{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:80;display:grid;gap:10px;justify-items:end;}
.floaty{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:12px 18px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;white-space:nowrap;box-shadow:0 12px 30px rgba(0,0,0,.5);transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),transform .2s var(--ease);}
.floaty:active{transform:translateY(1px);}
.floaty--wa{background:var(--gold);color:var(--bg);}
.floaty--wa:hover{background:var(--gold-bright);color:var(--bg);}
.floaty--call{background:rgba(12,16,13,.9);border:1px solid var(--line-strong);color:var(--cream);backdrop-filter:blur(6px);}
.floaty--call:hover{border-color:var(--gold);color:var(--gold);}

/* ---- reveal ---- */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);will-change:opacity,transform;}
[data-reveal].is-visible{opacity:1;transform:none;}
@keyframes slowzoom{from{transform:scale(1.05);}to{transform:scale(1);}}
@keyframes ruleIn{from{transform:scaleX(0);}to{transform:scaleX(1);}}

/* ============================================================
   Breakpoints
   ============================================================ */
@media (min-width:480px){
  .topbar__tag{display:inline;}
  .field-row{grid-template-columns:repeat(2,1fr);}
  .hero__actions .btn{flex:0 1 auto;}
  .dest-grid{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:700px){
  .card-grid--2{grid-template-columns:repeat(2,1fr);}
  .card-grid--3{grid-template-columns:repeat(2,1fr);}
  .feature-grid{grid-template-columns:repeat(2,1fr);}
  .split-feature{grid-template-columns:repeat(2,1fr);}
  .dest-grid{grid-template-columns:repeat(4,1fr);}
  .act-list{grid-template-columns:repeat(2,1fr);column-gap:40px;}
  .act-list li:nth-last-child(2):nth-child(odd){border-bottom:1px solid var(--line);}
  .detail-cols{grid-template-columns:1fr 1fr;}
  .cta-strip__inner{grid-template-columns:1.4fr .6fr;}
  .two-col{grid-template-columns:.8fr 1.2fr;}
  .site-footer__grid{grid-template-columns:2fr 1fr 1fr 1fr;}
}
@media (min-width:900px){
  :root{--header-h:70px;}
  .about-split{grid-template-columns:.85fr 1.15fr;}
  .contact-grid{grid-template-columns:.9fr 1.1fr;}
  .card-grid--3{grid-template-columns:repeat(3,1fr);}
  .feature-grid{grid-template-columns:repeat(4,1fr);}
  .detail-grid{grid-template-columns:minmax(0,1fr) 340px;}
  .detail-aside .fact-card{position:sticky;top:calc(var(--header-h) + 20px);}
  .page-hero__inner .page-hero__title{max-width:20ch;}
}
@media (min-width:1000px){
  .hamburger{display:none;}
  .nav{display:flex;align-items:center;gap:clamp(8px,1.4vw,26px);}
  .nav__link,.nav__top{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--cream-80);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:6px 0;position:relative;}
  .nav__link::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
  .nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1);}
  .nav__link.is-active,.nav__group.is-active .nav__top{color:var(--gold);}
  .nav__group{position:relative;}
  .nav__menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(6px);min-width:190px;background:var(--bg-deep);border:1px solid var(--line);padding:8px;display:grid;gap:2px;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease);box-shadow:0 20px 44px -20px rgba(0,0,0,.8);}
  .nav__menu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px;}
  .nav__group:hover .nav__menu,.nav__group:focus-within .nav__menu,.nav__group.is-tapopen .nav__menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
  .nav__menu a{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-80);padding:10px 14px;}
  .nav__menu a:hover{background:rgba(239,233,221,.05);color:var(--gold);}
  .nav-cta{display:inline-flex;}
  .brand__logo{height:38px;}
  .hero__inner{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:end;gap:clamp(28px,3vw,64px);}
  .hero__copy{align-self:end;padding-bottom:6px;}
  .hero__panel{align-self:end;}
  .hero__rail{display:none;grid-template-columns:repeat(4,1fr);}
  .hero__dots{display:none;}
  .hero__scroll span{position:absolute;left:50%;top:9px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:var(--gold);animation:scrolldot 1.8s var(--ease) infinite;}
  @keyframes scrolldot{0%{opacity:0;transform:translateY(0);}30%{opacity:1;}100%{opacity:0;transform:translateY(14px);}}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  [data-reveal]{opacity:1;transform:none;}
}

/* =========================================================
   Customer additions (Sep 2026) — Why Endelea, Reviews,
   Gallery, Affiliations
   ========================================================= */

/* ---- Why Endelea ---- */
.why-head { text-align: center; max-width: 640px; margin: 0 auto clamp(36px, 5vw, 56px); }
.why-head .kicker { display: block; }
.why-grid { display: grid; grid-template-columns: 1fr; gap: clamp(16px, 2.4vw, 26px); }
.why-card { padding: clamp(22px, 2.4vw, 30px); border: 1px solid var(--line); border-radius: 4px; background: rgba(239, 233, 221, 0.02); transition: border-color .3s var(--ease), transform .3s var(--ease); }
.why-card:hover { border-color: var(--line-strong); transform: translateY(-4px); }
.why-ico { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: rgba(201, 162, 83, 0.12); color: var(--gold); margin-bottom: 18px; }
.why-card__title { font-family: var(--serif); font-weight: 400; font-size: 20px; line-height: 1.2; color: var(--cream); margin-bottom: 10px; }
.why-card p { font-size: 14.5px; line-height: 1.7; color: var(--cream-70); }

/* ---- Reviews ---- */
.reviews-head { text-align: center; max-width: 700px; margin: 0 auto clamp(40px, 5vw, 60px); }
.reviews-intro { color: var(--cream-70); font-size: clamp(15px, 1.8vw, 17px); line-height: 1.75; margin-top: 14px; }
.reviews-logos { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 22px; }
.reviews-logos img { height: 48px; width: auto; display: block; }
.reviews-carousel { position: relative; max-width: 1000px; margin: 0 auto; }
.reviews-viewport { overflow: hidden; }
.reviews-track { display: flex; will-change: transform; transition: transform .55s var(--ease); }
.review { flex: 0 0 100%; min-width: 0; display: grid; grid-template-columns: 1fr; gap: clamp(20px, 4vw, 42px); align-items: center; padding: 2px clamp(2px, 1vw, 8px); }
.review__photo img { width: 100%; aspect-ratio: 3 / 4; max-height: 460px; object-fit: cover; border-radius: 8px; }
.reviews-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: clamp(24px, 3vw, 34px); }
.reviews-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; color: var(--cream); display: grid; place-items: center; cursor: pointer; transition: border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease); }
.reviews-arrow:hover { border-color: var(--gold); color: var(--gold); background: rgba(201,162,83,0.05); }
.reviews-dots { display: flex; gap: 9px; align-items: center; }
.reviews-dot { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: var(--line-strong); cursor: pointer; transition: background .25s var(--ease), transform .25s var(--ease); }
.reviews-dot.is-active { background: var(--gold); transform: scale(1.4); }
@media (prefers-reduced-motion: reduce) { .reviews-track { transition: none; } }
.review__stars { display: flex; gap: 3px; color: var(--gold); margin-bottom: 16px; }
.review__title { font-family: var(--serif); font-weight: 400; font-size: clamp(22px, 2.6vw, 29px); line-height: 1.2; color: var(--cream); margin-bottom: 16px; }
.review__text { display: grid; gap: 14px; }
.review__text p { color: var(--cream-70); font-size: 15.5px; line-height: 1.78; }
.review__author { margin-top: 18px; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }

/* ---- Gallery ---- */
.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); grid-auto-rows: clamp(128px, 30vw, 168px); grid-auto-flow: dense; gap: 10px; }
.gallery-item { position: relative; overflow: hidden; border-radius: 6px; margin: 0; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease); }
.gallery-item:hover img { transform: scale(1.06); }
.gallery-item figcaption { position: absolute; inset: auto 0 0 0; padding: 26px 16px 14px; font-family: var(--serif); font-size: 17px; color: #fff; background: linear-gradient(180deg, rgba(12,16,13,0) 0%, rgba(12,16,13,0.8) 100%); pointer-events: none; }
.gallery-item--feature { grid-column: span 2; grid-row: span 2; }
.gallery-item--wide { grid-column: span 2; }

/* ---- Affiliations ---- */
.affil-head { text-align: center; margin-bottom: clamp(30px, 4vw, 44px); }
.affil-head .kicker { display: block; }
.affil-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.affil { display: flex; align-items: center; justify-content: center; flex: 1 1 220px; min-width: 180px; max-width: 280px; min-height: 140px; padding: 26px 32px; background: #fff; border-radius: 12px; text-align: center; box-shadow: 0 1px 0 rgba(0,0,0,0.04); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.affil:hover { transform: translateY(-4px); box-shadow: 0 14px 30px -14px rgba(0,0,0,0.5); }
.affil__logo { max-height: 92px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.affil__fallback { flex-direction: column; align-items: center; gap: 5px; color: #0C100D; }
.affil__fallback:not([hidden]) { display: flex; }
.affil__fallback b { font-family: var(--serif); font-weight: 400; font-size: 25px; letter-spacing: 0.04em; line-height: 1; }
.affil__fallback small { font-size: 10.5px; letter-spacing: 0.07em; text-transform: uppercase; color: #6a6a6a; line-height: 1.4; }

@media (min-width: 560px) {
  .why-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 700px) {
  .gallery-grid { grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px, 15vw, 200px); }
}
@media (min-width: 800px) {
  .review { grid-template-columns: 0.82fr 1.18fr; }
}
@media (min-width: 920px) {
  .why-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ---- Reviews page (stacked list) ---- */
.reviews-list { max-width: 1000px; margin: 0 auto; display: grid; gap: clamp(34px, 5vw, 60px); }
.reviews-list .review { padding: 0; }
.reviews-list .review + .review { border-top: 1px solid var(--line); padding-top: clamp(34px, 5vw, 60px); }
@media (min-width: 800px) {
  .reviews-list .review--flip .review__photo { order: 2; }
  .reviews-list .review--flip .review__body { order: 1; }
}

/* ---- Back to top button ---- */
.to-top { width: 46px; height: 46px; border-radius: 50%; display: none; place-items: center; padding: 0; background: rgba(12,16,13,.9); border: 1px solid var(--line-strong); color: var(--cream); cursor: pointer; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 12px 30px rgba(0,0,0,.5); transition: border-color .25s var(--ease), color .25s var(--ease), transform .2s var(--ease); }
.to-top.is-visible { display: grid; animation: toTopIn .3s var(--ease) both; }
.to-top:hover { border-color: var(--gold); color: var(--gold); }
.to-top:active { transform: translateY(1px); }
@keyframes toTopIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .to-top.is-visible { animation: none; } }

/* ---- Hero welcome slide (text hidden, image clean) ---- */
.hero__copy--welcome .eyebrow,
.hero__copy--welcome .hero__title,
.hero__copy--welcome .hero__lede { display: none; }
.hero__welcome { display: none; }
.hero__copy--welcome .hero__welcome {
  display: grid; justify-items: center; gap: clamp(2px, 1vh, 10px);
  margin: 0;
  font-family: var(--script);
  font-weight: 400;
  color: var(--cream);
  line-height: 1;
  text-shadow: 0 4px 26px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.5);
}
.hero__welcome-pre, .hero__welcome-name { display: block; }
.hero__welcome-pre  { font-size: clamp(1.55rem, 3.8vw, 2.9rem); opacity: .96; }
.hero__welcome-name { font-size: clamp(3.4rem, 9.4vw, 7rem); line-height: 1; }
/* handwriting-style reveal: left-to-right ink wipe, staggered like a pen writing */
@media (prefers-reduced-motion: no-preference) {
  .hero__copy--welcome .hero__welcome-pre,
  .hero__copy--welcome .hero__welcome-name {
    clip-path: inset(0 100% -22% 0);
    opacity: 0;
    animation: heroWrite .9s var(--ease) forwards;
  }
  .hero__copy--welcome .hero__welcome-pre  { animation-delay: .3s; animation-duration: .7s; }
  .hero__copy--welcome .hero__welcome-name { animation-delay: .85s; animation-duration: 1s; }
}
@keyframes heroWrite {
  0%   { clip-path: inset(0 100% -22% 0); opacity: 0; }
  10%  { opacity: 1; }
  100% { clip-path: inset(0 0 -22% 0);    opacity: 1; }
}

/* ---- Intro curtain (welcome, cursive) ---- */
.intro { position: fixed; inset: 0; z-index: 300; background: var(--bg); display: grid; place-items: center; transition: transform 1s var(--ease) .2s, visibility 0s 1.25s; }
.intro.is-up { transform: translateY(-101%); visibility: hidden; }
.intro__inner { text-align: center; padding: 24px; }
.intro__karibu { font-family: var(--script); font-weight: 400; font-size: clamp(4.2rem, 14vw, 9rem); line-height: 1; color: var(--gold); opacity: 0; animation: introUp 1s var(--ease) .15s forwards; }
.intro__sub { font-size: 11px; letter-spacing: .5em; text-transform: uppercase; color: var(--cream-70); margin-top: 8px; opacity: 0; animation: introUp 1s var(--ease) .45s forwards; }
.intro__rule { display: block; height: 1px; width: 0; background: var(--gold); margin: 26px auto 0; animation: introRule .9s var(--ease) .7s forwards; }
@keyframes introUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes introRule { to { width: 160px; } }
@media (prefers-reduced-motion: reduce) { .intro { transition: none; } .intro__karibu, .intro__sub, .intro__rule { animation: none; opacity: 1; width: 160px; } }

.about-lead { max-width: 760px; }
.about-lead .h2 { margin-bottom: 20px; }

/* ---- Gallery & Reviews page-hero backgrounds (CSS-relative, resolves under /v2/) ---- */
.page-hero--gallery::before { background-image: url('../assets/hero/gallery-header.jpg'); }
.page-hero--reviews::before { background-image: url('../assets/hero/masai-mara.jpg'); }

/* ---- About page imagery ---- */
.page-hero--about::before { background-image: url('../assets/hero/about-header.jpg'); background-position: center; }
.about-figure--wide img { aspect-ratio: 3 / 2; }
.about-figure--short img { aspect-ratio: 16 / 10; }
.about-band { position: relative; margin: 0; height: clamp(240px, 40vw, 500px); overflow: hidden; }
.about-band img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 900px) {
  .about-split--flip .about-figure { order: 2; }
}

/* ---- About: Our Values — badge-card grid (reference: circular icon badges) ---- */
.values-grid { display: grid; grid-template-columns: 1fr; gap: 36px 28px; max-width: 1040px; margin: 0 auto; text-align: center; }
.value-card { display: flex; flex-direction: column; align-items: center; padding: 0 6px; }
.value-card__badge {
  width: 84px; height: 84px; border-radius: 50%;
  display: grid; place-items: center;
  font-size: 32px; line-height: 1;
  margin-bottom: 20px;
  background: radial-gradient(circle at 32% 28%, rgba(201,162,83,.22), rgba(201,162,83,.05) 70%);
  border: 1px solid var(--line-strong);
  position: relative;
  transition: transform .3s var(--ease), border-color .3s var(--ease);
}
.value-card__badge::before {
  content: ""; position: absolute; inset: -7px;
  border-radius: 50%; border: 1px solid rgba(201,162,83,.3);
}
.value-card:hover .value-card__badge { transform: translateY(-4px); border-color: var(--gold); }
.value-card__title { font-family: var(--serif); font-weight: 400; font-size: 18.5px; line-height: 1.25; color: var(--cream); margin-bottom: 10px; }
.value-card p { font-size: 14px; line-height: 1.7; color: var(--cream-70); max-width: 34ch; }
@media (min-width: 640px) {
  .values-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .values-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ============================================================
   LIGHT THEME (primary #CABB92) — Sep 2026
   Flips the dark palette above to a light, earthy scheme.
   Content sections are WHITE or PRIMARY-TAN; photo overlays,
   footer and the intro curtain stay dark "islands" (light text
   kept readable via scoped token resets).
   ============================================================ */
:root{
  --primary:#F3F0EC;
  --bg:#FFFFFF;
  --bg-alt:#F3F0EC;           /* primary light alternating sections */
  --bg-deep:#211F1A;          /* footer (dark anchor) */
  --card:#ECE6D9;             /* light image placeholder */
  --line:rgba(38,34,28,.14);
  --line-strong:rgba(38,34,28,.24);
  --cream:#2B2720;            /* now the ink text colour */
  --cream-80:rgba(43,39,32,.82);
  --cream-70:rgba(43,39,32,.66);
  --cream-60:rgba(43,39,32,.52);
  --gold:#96763A;             /* bronze accent, readable on white */
  --gold-bright:#B08E4F;
  --ink:#1D1A13;
  --ink-muted:#6C6555;
  --paper:#F5F1E8;
}

/* Dark "islands": photo overlays + footer keep light text/lines
   (.intro is NOT here — its background is white, so it uses the
   light-theme ink/bronze tokens from :root for real contrast) */
.hero, .page-hero, .dest-tile, .split-card, .gallery-item, .site-footer{
  --cream:#EFE9DD;
  --cream-80:rgba(239,233,221,.82);
  --cream-70:rgba(239,233,221,.70);
  --cream-60:rgba(239,233,221,.58);
  --line:rgba(239,233,221,.14);
  --line-strong:rgba(239,233,221,.24);
  --gold:#D9B978;
  --gold-bright:#E6C98A;
  color: var(--cream);   /* so text that only inherits colour (e.g. hero/page-hero titles) stays light */
}

/* On tan sections, deepen the accent so it stays legible */
.section--alt, .cta-strip, .act-index, .fact-card{
  --gold:#5F4A1F;
  --gold-bright:#6E561F;
  --line:rgba(38,34,28,.20);
  --line-strong:rgba(38,34,28,.30);
}

/* Masthead — green topbar REMOVED site-wide (customer request) */
.topbar{ display:none !important; }
.topbar__contact a{ color:rgba(245,242,233,.92); }
.topbar__contact a:hover{ color:#fff; }
.site-header{ position:sticky; top:0; z-index:60; background:#F3F0EC; border-bottom:1px solid rgba(38,34,28,.12); box-shadow:0 1px 0 rgba(0,0,0,.04); }
.site-header.is-scrolled{ background:#F3F0EC; box-shadow:0 10px 28px -18px rgba(40,36,28,.4); }
.brand__logo, .mobile-menu__logo{ filter:none; }        /* dark logo on tan */
.hamburger{ border-color:rgba(38,34,28,.34); }
.hamburger span{ background:#2B2720; }

/* Desktop nav on tan header — dark text, olive-green accent */
.nav__link, .nav__top{ color:#2B2720; text-shadow:none; }
.nav__link:hover, .nav__top:hover{ color:#9C8B5C; }
.nav__link.is-active, .nav__group.is-active .nav__top{ color:#9C8B5C; }
.nav__link::after{ background:#9C8B5C; }
.nav__menu{ background:#fff; border-color:var(--line); box-shadow:0 20px 44px -20px rgba(0,0,0,.3); }
.nav__menu a{ color:#2B2720; }
.nav__menu a:hover{ background:rgba(202, 187, 146,.1); color:#9C8B5C; }

/* Mobile menu → light */
.mobile-menu__panel{ background:var(--paper); border-left:1px solid var(--line); }
.mobile-menu__backdrop{ background:rgba(20,18,14,.4); }

/* CTA strip → primary tan; footer stays dark */
.cta-strip{ background:var(--bg-alt); border-top:1px solid var(--line); }
.site-footer{ background:#CABB92; }
.site-footer__logo{ filter:brightness(0) invert(1); }

/* Buttons — fixed colours (independent of the flipping tokens) */
.btn--gold{ --btn-bg:#CABB92; --btn-fg:#FFFFFF; } .btn--gold:hover{ --btn-bg:#B3A478; color:#fff; }
.btn--cream{ --btn-bg:#F5F1E8; --btn-fg:#211F1A; } .btn--cream:hover{ --btn-bg:#96763A; color:#fff; }
.btn--outline:hover{ background:rgba(150,118,58,.06); }

/* Cards / misc on light */
.why-card{ background:#fff; border:1px solid var(--line); box-shadow:0 1px 0 rgba(0,0,0,.03); }
.section--alt .why-card{ background:rgba(255,255,255,.55); }
.split-card::before{ opacity:1; }
.split-card:hover::before{ opacity:1; }
.value-card__badge{ background:radial-gradient(circle at 32% 28%, rgba(150,118,58,.20), rgba(150,118,58,.05) 70%); }
::selection{ background:#96763A; color:#fff; }

/* Floaties */
.floaty--wa{ background:#CABB92; color:#FFFFFF; }
.floaty--wa:hover{ background:#B3A478; color:#FFFFFF; }
.floaty--call{ background:rgba(33,31,26,.92); color:#EFE9DD; }
.to-top{ background:rgba(33,31,26,.92); color:#EFE9DD; }

/* ---- Destination pages: grouped card rows (light theme) ---- */
.page-hero--tz::before { background-image: url('../assets/dest/tz-destinations-hero.jpg'); }
.page-hero--ke::before { background-image: url('../assets/dest/ke/masai-mara.jpg'); }
.dest-row { display: grid; gap: clamp(22px, 3vw, 40px); }
.dest-row__script { font-family: var(--script); font-weight: 400; font-size: clamp(2.3rem, 4.6vw, 3.3rem); line-height: 1; color: var(--gold); }
.dest-row__label { font-family: var(--serif); font-weight: 400; font-size: clamp(19px, 2.2vw, 24px); text-transform: uppercase; letter-spacing: .05em; margin-top: 4px; color: var(--cream); }
.dest-row__desc { font-size: 14.5px; line-height: 1.7; color: var(--cream-70); margin-top: 16px; max-width: 36ch; }
/* carousel viewport — scrollbars fully hidden */
.dest-row__scroller { overflow-x: auto; overflow-y: hidden; margin-inline: calc(var(--gutter) * -1); padding: 16px var(--gutter); -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; }
.dest-row__scroller::-webkit-scrollbar { width: 0; height: 0; display: none; }
.dest-row__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(244px, 272px); gap: 16px; }

/* manual nav arrows (injected into the intro column) */
.dest-row__nav { display: flex; gap: 10px; margin-top: clamp(18px, 2.4vw, 26px); }
.dest-row__arrow { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); background: transparent; color: var(--cream); cursor: pointer; transition: border-color .25s var(--ease), color .25s var(--ease), background .25s var(--ease), transform .2s var(--ease); }
.dest-row__arrow:hover { border-color: var(--gold); color: var(--gold); background: rgba(150,118,58,.07); }
.dest-row__arrow:active { transform: scale(.93); }

/* cards — enhanced motion */
.dcard { position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 14px; overflow: hidden; background: var(--card); box-shadow: 0 12px 28px -20px rgba(40,30,10,.5); transition: transform .55s var(--ease), box-shadow .55s var(--ease); will-change: transform; }
.dcard:hover { transform: translateY(-6px); box-shadow: 0 26px 44px -22px rgba(40,30,10,.55); }
.dcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.dcard:hover img { transform: scale(1.1); }
.dcard__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,16,13,0) 30%, rgba(12,16,13,.5) 62%, rgba(12,16,13,.9) 100%); }
.dcard__ico { position: absolute; top: 12px; right: 12px; z-index: 2; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(245,241,232,.26); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.4); transition: background .35s var(--ease), color .35s var(--ease), transform .45s var(--ease); }
a.dcard:hover .dcard__ico { background: #fff; color: #211F1A; transform: translateY(-2px) rotate(8deg); }
.dcard__label { position: absolute; z-index: 2; inset: auto 0 0 0; padding: 18px 18px 17px; display: grid; gap: 5px; transition: transform .5s var(--ease); }
.dcard:hover .dcard__label { transform: translateY(-4px); }
.dcard__name { font-family: var(--serif); font-size: 20px; line-height: 1.15; color: #F7F2E8; }
.dcard__name::after { content: ""; display: block; width: 0; height: 1px; margin-top: 7px; background: var(--gold-bright); transition: width .55s var(--ease); }
a.dcard:hover .dcard__name::after { width: 44px; }
.dcard__desc { font-size: 12.5px; line-height: 1.45; color: rgba(247,242,232,.9); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 900px) {
  .dest-row { grid-template-columns: 290px minmax(0, 1fr); align-items: start; gap: clamp(28px, 3vw, 52px); }
  .dest-row__scroller { margin-inline: 0; padding-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .dest-row__scroller { scroll-behavior: auto; }
}

/* ---- Amboseli detail hero (Kilimanjaro kept in frame) ---- */
.page-hero--amboseli::before { background-image: url('../assets/dest/ke-hero/amboseli.jpg'); background-position: center; }

/* ============================================================
   About — "Constellation of Values" (animated radial wheel)
   ============================================================ */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.values-section {
  background: radial-gradient(120% 92% at 50% 34%, #FBF7EE 0%, #F1E8D3 48%, #DDCEA5 100%);
  --gold:#8A6A2F; --gold-bright:#A9853C;
  overflow: hidden;
}
.values-section .why-head { text-align:center; }
.values-intro { text-align:center; max-width:52ch; margin:14px auto 0; color:var(--cream-70); font-size:clamp(15px,1.8vw,17px); line-height:1.7; }

.values-wheel { position:relative; width:min(96vw,640px); aspect-ratio:1; margin:clamp(14px,4vw,42px) auto 0; }

/* decorative slow-rotating orbits */
.values-wheel__orbit { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:50%; pointer-events:none; }
.values-wheel__orbit--1 { width:80%; height:80%; border:1px dashed rgba(138,106,47,.22); animation:cvSpin 64s linear infinite; }
.values-wheel__orbit--2 { width:55%; height:55%; border:1px dotted rgba(138,106,47,.32); animation:cvSpin 46s linear infinite reverse; }
@keyframes cvSpin { to { transform:translate(-50%,-50%) rotate(360deg); } }

/* spokes */
.values-wheel__spokes { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.spoke { stroke:rgba(138,106,47,.4); stroke-width:1.4; vector-effect:non-scaling-stroke; stroke-dasharray:2 3; stroke-linecap:round; opacity:.5; transition:stroke .4s var(--ease), opacity .4s var(--ease), stroke-width .4s var(--ease); }
.spoke.is-active { stroke:var(--gold-bright); opacity:1; stroke-width:2.4; stroke-dasharray:3 4; animation:cvFlow 1s linear infinite; }
@keyframes cvFlow { to { stroke-dashoffset:-14; } }

/* hub medallion */
.values-wheel__hub { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) scale(.86); width:44%; height:44%; border-radius:50%; background:radial-gradient(circle at 50% 38%, #FFFDF8, #F3EAD6); border:1px solid rgba(138,106,47,.42); box-shadow:0 22px 52px -22px rgba(80,58,20,.42), inset 0 1px 0 rgba(255,255,255,.9); display:grid; place-content:center; align-content:center; text-align:center; padding:9%; gap:3px; z-index:4; opacity:0; transition:opacity .9s var(--ease), transform .9s var(--ease); }
.values-wheel__hub-glow { position:absolute; inset:-16%; border-radius:50%; background:radial-gradient(circle, rgba(169,133,60,.26), transparent 68%); z-index:-1; animation:cvHubPulse 4.2s var(--ease) infinite; }
@keyframes cvHubPulse { 0%,100%{ transform:scale(1); opacity:.65; } 50%{ transform:scale(1.09); opacity:1; } }
.values-wheel__hub-mark { color:var(--gold); font-size:17px; line-height:1; }
.values-wheel__hub-eyebrow { font-size:9.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin:5px 0 7px; }
.values-wheel__hub-title { font-family:var(--serif); font-weight:400; font-size:clamp(15px,1.95vw,21px); line-height:1.16; color:#2B2720; }
.values-wheel__hub-desc { font-size:clamp(10px,1.15vw,12.5px); line-height:1.46; color:rgba(43,39,32,.64); max-width:22ch; margin:7px auto 0; }
.values-wheel__hub-count { margin-top:10px; font-size:11px; letter-spacing:.1em; color:rgba(43,39,32,.5); }
.values-wheel__hub-count b { color:var(--gold); font-weight:600; }
.values-wheel__hub-count i { margin:0 4px; font-style:normal; opacity:.5; }
.values-wheel__hub.is-swap .values-wheel__hub-title, .values-wheel__hub.is-swap .values-wheel__hub-desc { animation:cvTextIn .5s var(--ease) both; }
@keyframes cvTextIn { from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }

/* nodes */
.value-node { position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%); display:grid; justify-items:center; gap:9px; width:120px; background:none; border:0; cursor:pointer; padding:0; z-index:3; }
.value-node__badge { position:relative; width:66px; height:66px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(160deg,#FFFFFF,#F3ECDD); border:1px solid rgba(138,106,47,.3); box-shadow:0 12px 26px -14px rgba(70,52,18,.5), inset 0 1px 0 rgba(255,255,255,.85); transition:transform .5s var(--ease), background .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease); }
.value-node__ico { font-size:26px; line-height:1; transition:transform .5s var(--ease); }
.value-node__badge::after { content:""; position:absolute; inset:0; border-radius:50%; border:1px solid rgba(150,118,58,.5); opacity:0; }
.value-node__label { font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:rgba(43,39,32,.78); font-weight:600; line-height:1.2; text-align:center; transition:color .35s var(--ease); }
.value-node:focus-visible { outline:none; }
.value-node:focus-visible .value-node__badge { box-shadow:0 0 0 3px var(--gold-bright); }
.value-node:hover .value-node__badge, .value-node.is-active .value-node__badge {
  transform:scale(1.14);
  background:linear-gradient(160deg,#C9A961,#94742F);
  border-color:#8A6A2F;
  box-shadow:0 18px 36px -12px rgba(120,88,26,.55), 0 0 0 7px rgba(150,118,58,.14);
}
.value-node:hover .value-node__ico, .value-node.is-active .value-node__ico { transform:scale(1.08); }
.value-node:hover .value-node__label, .value-node.is-active .value-node__label { color:#7E6330; }
.value-node.is-active .value-node__badge::after { animation:cvNodePulse 1.9s var(--ease) infinite; }
@keyframes cvNodePulse { 0%{ transform:scale(1); opacity:.6;} 100%{ transform:scale(1.55); opacity:0;} }

/* entrance reveal (JS toggles .is-in) */
.values-wheel .value-node { opacity:0; transform:translate(-50%,-50%) scale(.5); }
.values-wheel__orbit, .values-wheel__spokes { opacity:0; transition:opacity 1s var(--ease); }
.values-wheel.is-in .values-wheel__orbit, .values-wheel.is-in .values-wheel__spokes { opacity:1; }
.values-wheel.is-in .values-wheel__hub { opacity:1; transform:translate(-50%,-50%) scale(1); }
.values-wheel.is-in .value-node { animation:cvNodeIn .7s var(--ease) forwards; }
@keyframes cvNodeIn { from{ opacity:0; transform:translate(-50%,-50%) scale(.5);} to{ opacity:1; transform:translate(-50%,-50%) scale(1);} }

/* mobile fallback list */
.values-fallback { display:none; }
@media (max-width:899px){
  .values-wheel { display:none; }
  .values-fallback { display:grid; grid-template-columns:1fr; gap:16px; max-width:600px; margin:8px auto 0; }
  .values-fallback .value-card { flex-direction:row; align-items:flex-start; text-align:left; gap:16px; padding:18px 20px; background:rgba(255,255,255,.6); border:1px solid rgba(138,106,47,.2); border-radius:14px; box-shadow:0 10px 26px -20px rgba(80,58,20,.4); }
  .values-fallback .value-card__badge { margin:0; width:52px; height:52px; font-size:23px; flex:0 0 auto; }
  .values-fallback .value-card__badge::before { inset:-5px; }
  .values-fallback .value-card__title { text-align:left; }
  .values-fallback .value-card p { text-align:left; max-width:none; }
}
@media (min-width:560px) and (max-width:899px){
  .values-fallback { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce){
  .values-wheel__orbit, .values-wheel__hub-glow, .spoke.is-active, .value-node.is-active .value-node__badge::after { animation:none !important; }
  .values-wheel .value-node { opacity:1 !important; transform:translate(-50%,-50%) scale(1) !important; animation:none !important; }
  .values-wheel__hub, .values-wheel__orbit, .values-wheel__spokes { opacity:1 !important; }
  .values-wheel__hub { transform:translate(-50%,-50%) scale(1) !important; }
}

/* ---- Hero tweaks (Sep 2026, round 2) ---- */
/* main slide heading takes the same tone as the lede below it */
.hero__title { color: var(--cream-80); }
/* welcome slide: centre "Welcome to Endelea" in the middle of the whole hero */
.hero:has(.hero__copy--welcome) .hero__inner { position: static; }  /* so the copy centres against .hero */
.hero__panel { position: relative; z-index: 5; }                    /* keep controls above the scrim */
.hero__copy--welcome {
  position: absolute; inset: 0; z-index: 6; max-width: none; align-self: stretch;
  display: grid; place-content: center; justify-items: center; text-align: center;
  padding: calc(var(--header-h) + 24px) clamp(20px,5vw,44px) clamp(88px,14vh,130px);
  pointer-events: none;
}
.hero__copy--welcome .hero__welcome { margin: 0; pointer-events: auto; }
.hero__copy--welcome .hero__actions { margin-top: 28px; justify-content: center; pointer-events: auto; }
/* keep white nav legible over any hero imagery */
.nav__link, .nav__top { text-shadow: 0 1px 10px rgba(0,0,0,.35); }
.site-header.is-scrolled .nav__link, .site-header.is-scrolled .nav__top { text-shadow: none; }

/* ---- Hero overlay reduced to a whisper; text-shadow keeps copy legible ---- */
.hero__scrim { background: linear-gradient(180deg, rgba(12,16,13,0) 66%, rgba(12,16,13,.18) 100%); }
.hero__title, .hero__lede { text-shadow: 0 2px 20px rgba(0,0,0,.5); }
.hero__welcome { text-shadow: 0 4px 30px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.4); }
.hero__counter, .eyebrow__text { text-shadow: 0 1px 10px rgba(0,0,0,.45); }

/* ---- Footer (olive green) accent brightened for contrast on #CABB92 ---- */
.site-footer { --gold:#E7D6A6; --gold-bright:#F0E2BB; }

/* ============================================================
   Left-aligned headings + secondary-green (#CABB92) accents
   ============================================================ */
/* all section heads left-aligned (consistent theme) */
.why-head, .reviews-head, .affil-head { text-align:left; margin-inline:0; }
.reviews-head .reviews-logos { justify-content:flex-start; }
.values-section .why-head { text-align:left; }
.values-intro { text-align:left; margin-inline:0; }

/* secondary green on section kickers (better contrast on white; ties in the brand green) */
.kicker { color:#CABB92; }
.section--alt .kicker, .cta-strip .kicker, .act-index .kicker, .fact-card .kicker { color:#9C8B5C; }

/* Why Endelea cards → secondary green */
.why-card { background:#CABB92; border:1px solid rgba(255,255,255,.16); }
.why-card:hover { border-color:rgba(255,255,255,.4); transform:translateY(-4px); }
.why-card__title { color:#F7F3EA; }
.why-card p { color:rgba(247,243,234,.82); }
.why-ico { background:rgba(255,255,255,.15); color:#EAD9A8; }

/* About — logo-reveal video replaces the "More than a name" image */
.about-figure video { width:100%; display:block; object-fit:cover; }
.about-figure--video video { aspect-ratio:4/3; background:#FBF6EC; }

/* ============================================================
   Round 5 (Sep 2026): hero welcome video, stronger hero text,
   Vision/Mission/Values trio
   ============================================================ */

/* ---- Hero copy made to stand out (localized plate + layered shadow) ---- */
.hero__copy:not(.hero__copy--welcome){ position:relative; isolation:isolate; }
.hero__copy:not(.hero__copy--welcome)::before{
  content:""; position:absolute; z-index:-1; inset:-9% -13% -15% -11%;
  background:radial-gradient(118% 130% at 18% 82%,
     rgba(8,10,7,.64) 0%, rgba(8,10,7,.30) 44%, rgba(8,10,7,0) 72%);
  pointer-events:none;
}
.hero__title{ text-shadow:0 2px 4px rgba(0,0,0,.5), 0 8px 30px rgba(0,0,0,.62); }
.hero__lede{ color:var(--cream); font-weight:500; text-shadow:0 1px 3px rgba(0,0,0,.55), 0 4px 18px rgba(0,0,0,.5); }
.hero__counter, .eyebrow__text{ text-shadow:0 1px 3px rgba(0,0,0,.5), 0 2px 12px rgba(0,0,0,.5); }

/* ============================================================
   About — Vision / Mission / Values (3-column trio)
   ============================================================ */
/* green photo cards — echo the homepage "Why Endelea" cards (#CABB92) */
.mvv-grid{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:clamp(26px,4vw,50px); align-items:stretch; }
.mvv-col{
  display:flex; flex-direction:column; overflow:hidden;
  background:#CABB92; border:1px solid rgba(255,255,255,.16); border-radius:18px;
  box-shadow:0 26px 52px -34px rgba(30,34,22,.6);
  transition:transform .5s var(--ease), border-color .45s var(--ease), box-shadow .5s var(--ease);
}
.mvv-col:hover{ transform:translateY(-5px); border-color:rgba(255,255,255,.34); }
.mvv-col__media{ position:relative; aspect-ratio:16/10; overflow:hidden; background:#CABB92; }
.mvv-col__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.mvv-col__inner{
  position:relative; flex:1;
  display:grid; justify-items:center; align-content:start; gap:12px; text-align:center;
  padding:40px clamp(20px,3vw,28px) clamp(28px,3.4vw,34px);
}
/* gold icon badge floating over the image/text seam (matches .why-ico language) */
.mvv-ico{
  position:absolute; top:-30px; left:50%; transform:translateX(-50%);
  width:60px; height:60px; border-radius:50%; display:grid; place-items:center;
  background:#CABB92; border:1px solid rgba(255,255,255,.28); color:#EAD9A8;
  box-shadow:0 12px 26px -12px rgba(0,0,0,.55);
  transition:transform .45s var(--ease);
}
.mvv-col:hover .mvv-ico{ transform:translateX(-50%) translateY(-3px); }
.mvv-ico svg{ width:30px; height:30px; display:block; }
.mvv-col__title{
  font-family:var(--serif); font-weight:400; font-size:clamp(20px,2.3vw,25px);
  text-transform:uppercase; letter-spacing:.1em; color:#F7F3EA; margin:0;
}
.mvv-col__desc{ font-size:14px; line-height:1.72; color:rgba(247,243,234,.82); max-width:38ch; margin:0 auto; }
@media (min-width:820px){
  .mvv-grid{ grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,26px); }
}

/* About "more than a name": Endelea logo wordmark (khaki bar cropped off) */
.about-figure--logo{ display:grid; place-items:center; background:none; border:0; padding:clamp(16px,4vw,44px); }
/* override .about-figure img (aspect-ratio:4/4.5 + cover) so the wide wordmark keeps its true proportions */
.about-figure--logo img{ width:min(100%,400px); height:auto; aspect-ratio:auto; object-fit:contain; }

/* ============================================================
   Round 6 (Sep 2026): lighter overlays + destination fix + about video frame
   ============================================================ */

/* ---- Homepage destination split-cards: local images (declared here so the
        relative url resolves against /css/, not the inline-style gotcha) ---- */
.split-card--tz::before{ background-image:url('../assets/home/tanzania.jpg'); }
.split-card--ke::before{ background-image:url('../assets/home/kenya.jpg'); }
/* very little overlay — keep just enough at the bottom for the white heading */
.split-card__scrim{ background:linear-gradient(180deg, rgba(12,16,13,0) 42%, rgba(12,16,13,.5) 100%); }
.split-card__body h3{ text-shadow:0 2px 14px rgba(0,0,0,.55); }
.split-card__body p{ text-shadow:0 1px 10px rgba(0,0,0,.5); }

/* ---- Page headers (all pages): reduced black overlay + shadow keeps titles legible ---- */
.page-hero__scrim{ background:linear-gradient(180deg, rgba(12,16,13,.06) 0%, rgba(12,16,13,.26) 52%, rgba(12,16,13,.66) 100%); }
.page-hero__title{ text-shadow:0 2px 6px rgba(0,0,0,.5), 0 6px 26px rgba(0,0,0,.5); }
.page-hero__kicker, .crumbs, .crumbs a, .crumb-sep{ text-shadow:0 1px 8px rgba(0,0,0,.5); }

/* ---- About "more than a name": about-us video, black keyed out onto plain white ---- */
.about-figure--video video{ aspect-ratio:16/9; background:#FFFFFF; border-radius:12px; }
.about-figure--video{ background:#FFFFFF; border:1px solid var(--line); border-radius:12px; overflow:hidden; }

/* ============================================================
   Round 7 (Sep 2026): text legibility — halos, plates, bigger welcome
   ============================================================ */

/* ---- Homepage destination cards: text must read over the photo ---- */
.split-card__scrim{ background:linear-gradient(180deg, rgba(12,16,13,0) 28%, rgba(12,16,13,.5) 60%, rgba(12,16,13,.9) 100%); }
.split-card__body h3{ text-shadow:0 2px 4px rgba(0,0,0,.6), 0 4px 18px rgba(0,0,0,.6), 0 0 30px rgba(0,0,0,.4); }
.split-card__body p{ color:#F3EEE4; text-shadow:0 1px 3px rgba(0,0,0,.7), 0 2px 12px rgba(0,0,0,.55); }
.split-card__body .tag-gold{ text-shadow:0 1px 6px rgba(0,0,0,.6); }

/* ---- Hero "Welcome to Endelea": bigger + room so glyphs aren't clipped ---- */
.hero__copy--welcome .hero__welcome{ overflow:visible; text-shadow:0 3px 12px rgba(0,0,0,.55), 0 0 36px rgba(0,0,0,.42); }
.hero__copy--welcome .hero__welcome-pre { font-size:clamp(1.85rem, 4.4vw, 3.4rem); padding:0 .14em; }
.hero__copy--welcome .hero__welcome-name{ font-size:clamp(4.1rem, 12vw, 8.6rem); line-height:1.1; padding:.04em .26em; }

/* ---- Hero copy (slides): halo/glow so text pops on any photo ---- */
.hero__title{ text-shadow:0 2px 4px rgba(0,0,0,.55), 0 4px 16px rgba(0,0,0,.62), 0 0 34px rgba(0,0,0,.4); }
.hero__lede{ text-shadow:0 1px 3px rgba(0,0,0,.62), 0 2px 12px rgba(0,0,0,.52), 0 0 22px rgba(0,0,0,.35); }
.hero__counter, .eyebrow__text{ text-shadow:0 1px 3px rgba(0,0,0,.6), 0 0 16px rgba(0,0,0,.45); }

/* ---- Page headers (ALL pages): plate + halo so title/kicker/sub stand out ---- */
.page-hero__inner{ position:relative; isolation:isolate; }
.page-hero__inner::before{
  content:""; position:absolute; z-index:-1; inset:-8% -12% -14% -10%;
  background:none;
  pointer-events:none;
}
.page-hero__title{ text-shadow:0 2px 5px rgba(0,0,0,.6), 0 5px 22px rgba(0,0,0,.6), 0 0 40px rgba(0,0,0,.4); }
.page-hero__kicker{ color:#F0E4C6; text-shadow:0 1px 4px rgba(0,0,0,.6), 0 0 18px rgba(0,0,0,.5); }
.page-hero__sub{ color:#F1ECE1; text-shadow:0 1px 4px rgba(0,0,0,.7), 0 2px 12px rgba(0,0,0,.55); }
.crumbs, .crumbs a, .crumb-sep{ text-shadow:0 1px 6px rgba(0,0,0,.6), 0 0 14px rgba(0,0,0,.45); }

/* ============================================================
   Round 8 (Sep 2026): destination cards — no full-image overlay,
   dark only directly behind the text; hero welcome text hidden
   ============================================================ */

/* ---- Homepage destination cards: kill the full-photo scrim entirely ---- */
.split-card__scrim{ display:none; }
/* dark only right behind the text block (bottom of the card), photo reads clean everywhere else */
.split-card__body{ background:none; }
.split-card__body::before{
  content:"";
  position:absolute; z-index:0; inset:auto 0 0 0;
  height:52%;
  background:linear-gradient(180deg, rgba(12,16,13,0) 0%, rgba(12,16,13,.62) 48%, rgba(12,16,13,.94) 100%);
  pointer-events:none;
}
.split-card__body > *{ position:relative; z-index:1; }

/* ---- Hero welcome slide: text hidden for now (customer will decide later) ---- */
.hero__copy--welcome .hero__welcome{ display:none !important; }

/* ---- Round 10 (Sep 2026): remove CTA buttons from the hero's first/welcome slide ---- */
.hero__copy--welcome .hero__actions{ display:none; }

/* ---- Round 12 (Sep 2026): homepage Kenya card — show the jumping Maasai's face (was cropped) ---- */
.split-card--ke::before{ background-position:center 12%; }

/* ============================================================
   Round 13 (Sep 2026): Excursions page redesign — filter pills + card grid
   ============================================================ */
/* Excursion filters — same tab style as the travel-info .tv-jump nav (underlined text tabs) */
.exc-index{ background:var(--bg); border-bottom:1px solid var(--line); }
.exc-index__inner{ display:flex; align-items:center; gap:8px 26px; overflow-x:auto; padding-block:16px; scrollbar-width:none; }
.exc-index__inner::-webkit-scrollbar{ display:none; }
.exc-index__label{ flex-shrink:0; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--cream-60); margin:0; padding-right:24px; border-right:1px solid var(--line); }
.pills{ display:flex; align-items:center; flex-wrap:nowrap; gap:8px 26px; }
.pill{ flex-shrink:0; display:inline-flex; align-items:center; gap:7px; background:none; border:0; border-radius:0; padding:6px 0; font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:500; color:var(--cream); cursor:pointer; position:relative; white-space:nowrap; transition:color .25s var(--ease); }
.pill::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:#CABB92; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.pill:hover::after{ transform:scaleX(1); }
.pill.is-active{ color:#CABB92; }
.pill.is-active::after{ transform:scaleX(1); height:2px; }
.pill__n{ font-size:10px; opacity:.55; letter-spacing:0; }
.pill.is-active .pill__n{ opacity:.85; color:#CABB92; }

.section__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:clamp(26px,3.6vw,44px); }
.section__head h2{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3.4vw,40px); line-height:1.1; margin:0; color:var(--ink); }
.section__head p{ margin:0; max-width:46ch; color:var(--ink-muted); font-size:15px; font-weight:300; }

.exc-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(26px,2.8vw,40px) clamp(18px,2.2vw,32px); }
.exc.is-hidden{ display:none; }
.exc__link{ display:block; text-decoration:none; }
.exc__media{ position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:14px; background:#ECE6D9; box-shadow:0 14px 32px -24px rgba(40,30,10,.55); }
.exc__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,16,13,0) 50%,rgba(12,16,13,.5) 100%); pointer-events:none; }
.exc__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.exc__link:hover .exc__img{ transform:scale(1.05); }
.exc__region{ position:absolute; left:14px; bottom:12px; z-index:2; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#F4F0E6; text-shadow:0 1px 6px rgba(0,0,0,.6); }
.exc__title{ font-family:var(--serif); font-weight:400; font-size:clamp(19px,1.7vw,23px); line-height:1.2; margin:16px 0 6px; color:var(--ink); transition:color .25s var(--ease); }
.exc__link:hover .exc__title{ color:var(--gold); }
.exc__text{ margin:0; color:var(--ink-muted); font-size:14.5px; font-weight:300; line-height:1.55; }
.note{ margin-top:clamp(30px,4vw,52px); padding-top:22px; border-top:1px solid var(--line); color:var(--ink-muted); font-size:13.5px; font-weight:300; max-width:70ch; }
@media (max-width:1100px){ .exc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .exc-grid{ grid-template-columns:1fr; gap:26px; } .exc__media{ aspect-ratio:3/2; } }

/* ============================================================
   Round 16 (Sep 2026): Reviews redesign — vertical cards,
   2-up 15s auto-rotating carousel (home) + masonry page
   ============================================================ */
.rcard{ display:flex; flex-direction:column; background:#FFFFFF; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:0 24px 50px -36px rgba(40,30,10,.5); }
.rcard__photo{ position:relative; aspect-ratio:16/11; background:#ECE6D9; }
.rcard__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.rcard__body{ padding:clamp(20px,2.3vw,30px); display:flex; flex-direction:column; gap:11px; flex:1; }
.rcard__stars{ display:flex; gap:3px; color:var(--gold); }
.rcard__who{ margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(17px,1.6vw,20px); line-height:1.25; color:var(--ink); }
.rcard__who span{ font-family:var(--sans); font-size:12.5px; font-weight:400; color:var(--ink-muted); }
.rcard__title{ margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(18px,1.75vw,22px); line-height:1.3; color:var(--ink); }
.rcard__title a{ color:inherit; text-decoration:none; }
.rcard__title a:hover{ color:var(--gold); text-decoration:underline; }
.rcard__text{ color:var(--ink-muted); font-size:14.5px; line-height:1.65; }
.rcard__text p{ margin:0 0 10px; }
.rcard__text p:last-child{ margin-bottom:0; }
.rcard__meta{ margin:auto 0 0; padding-top:14px; border-top:1px solid var(--line); font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-muted); }
.rcard__src{ color:var(--gold); text-decoration:none; }
.rcard__src:hover{ text-decoration:underline; }

/* home: 2-up carousel */
.rev2{ margin-top:clamp(24px,4vw,44px); }
.rev2__viewport{ overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; -ms-overflow-style:none; margin-inline:calc(var(--gutter)*-1); padding:8px var(--gutter) 12px; }
.rev2__viewport::-webkit-scrollbar{ width:0; height:0; display:none; }
.rev2__track{ display:flex; gap:clamp(16px,2.2vw,26px); align-items:stretch; }
.rev2 .rcard{ flex:0 0 100%; scroll-snap-align:start; }
@media (min-width:600px){ .rev2 .rcard{ flex:0 0 calc(50% - clamp(16px,2.2vw,26px)/2); } }
@media (min-width:980px){ .rev2 .rcard{ flex:0 0 calc(33.333% - (clamp(16px,2.2vw,26px) * 2 / 3)); } }
.rev2 .rcard__text{ display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.rev2__controls{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px; }
.rev2__arrow{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line-strong); background:transparent; color:var(--ink); cursor:pointer; transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease); }
.rev2__arrow:hover{ border-color:var(--gold); color:var(--gold); background:rgba(150,118,58,.06); }
.rev2__dots{ display:flex; gap:9px; }
.rev2__dot{ width:8px; height:8px; border-radius:50%; border:0; padding:0; background:rgba(38,34,28,.22); cursor:pointer; transition:background .25s var(--ease),transform .25s var(--ease); }
.rev2__dot.is-active{ background:var(--gold); transform:scale(1.3); }

/* reviews.html: masonry grid of all reviews */
.rev-grid{ display:grid; grid-template-columns:1fr; gap:clamp(20px,2.2vw,28px); margin-top:6px; align-items:stretch; }
@media (min-width:640px){ .rev-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .rev-grid{ grid-template-columns:repeat(3,1fr); } }
.rev-grid .rcard{ margin:0; height:100%; }
/* keep the review-page photos a consistent height so rows line up */
.rev-grid .rcard__photo{ aspect-ratio:16/10; }
.rev-grid .rcard__text{ display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }

/* ============================================================
   Round 16b: Mission / Vision / Values — alternating colour blocks
   with hand-drawn line icons (order: Mission, Vision, Values)
   ============================================================ */
.mvv2{ margin-top:clamp(26px,4vw,48px); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 30px 60px -44px rgba(30,26,18,.55); }
.mvv2__row{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.mvv2__panel{ display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,4.6vw,62px); color:#F5F1E6; min-height:clamp(230px,25vw,320px); }
.mvv2__panel h3{ font-family:var(--serif); font-weight:400; text-transform:uppercase; letter-spacing:.12em; font-size:clamp(22px,2.7vw,32px); margin:0 0 16px; }
.mvv2__panel p{ margin:0; font-size:clamp(14.5px,1.15vw,15.5px); line-height:1.72; color:rgba(245,241,230,.88); max-width:48ch; }
.mvv2__row--mission .mvv2__panel{ background:#CABB92; }
.mvv2__row--vision  .mvv2__panel{ background:#A65C34; }
.mvv2__row--values  .mvv2__panel{ background:#2F4A44; }
.mvv2__icon{ background:#FBF8F1; display:grid; place-items:center; padding:clamp(22px,3.6vw,46px); }
.mvv2__icon svg{ width:min(64%,210px); height:auto; color:#4A4030; opacity:.9; }
/* flip = icon on the left, panel on the right (desktop) */
.mvv2__row--flip .mvv2__panel{ order:2; }
.mvv2__row--flip .mvv2__icon{ order:1; }
@media (max-width:719px){
  .mvv2__row{ grid-template-columns:1fr; }
  .mvv2__row--flip .mvv2__panel{ order:0; }
  .mvv2__row--flip .mvv2__icon{ order:0; }
  .mvv2__icon{ min-height:190px; }
}

/* ============================================================
   Round 17: MVV section — UI/UX polish + icon micro-interactions
   ============================================================ */
.mvv2__eyebrow{ display:inline-block; font-family:var(--sans); font-size:11px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:rgba(245,241,230,.72); margin:0 0 14px; }
.mvv2__panel h3{ position:relative; padding-bottom:16px; margin-bottom:18px; }
.mvv2__panel h3::after{ content:""; position:absolute; left:0; bottom:0; width:44px; height:2px; background:rgba(245,241,230,.55); transition:width .5s var(--ease); }
.mvv2__row:hover .mvv2__panel h3::after{ width:72px; }

/* icon cell: faint hand-drawn ring behind + hover/entrance motion */
.mvv2__icon{ position:relative; }
.mvv2__icon::before{ content:""; position:absolute; width:clamp(150px,17vw,210px); aspect-ratio:1; border-radius:50%; border:1.5px dashed rgba(74,64,48,.14); pointer-events:none; }
.mvv2__icon svg{ position:relative; transition:transform .6s var(--ease); }
.mvv2__row:hover .mvv2__icon svg{ transform:scale(1.06) rotate(-2deg); }

/* staggered entrance when the block scrolls in (.mvv2 has data-reveal → .is-in) */
@media (prefers-reduced-motion: no-preference){
  .mvv2 .mvv2__row{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
  .mvv2.is-visible .mvv2__row{ opacity:1; transform:none; }
  .mvv2.is-visible .mvv2__row--vision{ transition-delay:.12s; }
  .mvv2.is-visible .mvv2__row--values{ transition-delay:.24s; }
  .mvv2 .mvv2__icon svg{ opacity:0; transform:scale(.86); }
  .mvv2.is-visible .mvv2__icon svg{ opacity:1; transform:scale(1); transition:opacity .7s var(--ease) .15s, transform .7s var(--ease) .15s; }
  .mvv2.is-visible .mvv2__row--vision .mvv2__icon svg{ transition-delay:.27s; }
  .mvv2.is-visible .mvv2__row--values .mvv2__icon svg{ transition-delay:.39s; }
}

/* ============================================================
   Round 19 (Sep 2026): Destinations mega-menu (lists all destinations)
   ============================================================ */
@media (min-width:1000px){
  .nav__menu.nav__mega{
    left:0; right:auto; transform:translateX(0) translateY(6px);
    width:min(720px,78vw); padding:22px 24px; gap:26px;
    grid-template-columns:1fr 1fr;
  }
  .nav__group:hover .nav__menu.nav__mega,
  .nav__group:focus-within .nav__menu.nav__mega,
  .nav__group.is-tapopen .nav__menu.nav__mega{ transform:translateX(0) translateY(0); }
  .nav__mega-col{ min-width:0; }
  .nav__mega-head{
    display:flex; align-items:baseline; justify-content:space-between; gap:10px;
    font-family:var(--serif); font-size:16px; letter-spacing:0; text-transform:none;
    color:#2B2720; padding:0 0 9px; margin:0 0 8px; border-bottom:1px solid var(--line);
  }
  .nav__mega-head span{ font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }
  .nav__mega-head:hover{ color:#9C8B5C; }
  .nav__mega-list{ columns:2; column-gap:16px; padding:0; display:block; }
  .nav__mega-list a{
    display:block; break-inside:avoid; padding:5px 0; font-size:12px; letter-spacing:.02em;
    text-transform:none; color:rgba(43,39,32,.78); background:none;
  }
  .nav__mega-list a:hover{ color:#9C8B5C; background:none; }
}

/* mobile mega */
.m-group--mega .m-mega__head{ display:block; padding:12px 0 4px; font-size:17px; color:var(--gold); border:0; }
.m-group--mega .m-mega__head span{ font-size:11px; letter-spacing:.05em; color:var(--cream-70); text-transform:uppercase; }
.m-mega__list{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; margin:0 0 6px; }
.m-group--mega .m-mega__list a{ font-size:14px; padding:7px 0; border:0; }

/* ---- Round 20: homepage review cards made shorter so the section fits ---- */
.rev2 .rcard__photo{ aspect-ratio:16/9; }
.rev2 .rcard__body{ padding:clamp(15px,1.7vw,20px); gap:7px; }
.rev2 .rcard__who{ font-size:clamp(15px,1.4vw,17px); }
.rev2 .rcard__title{ font-size:clamp(15.5px,1.5vw,18px); line-height:1.25; }
.rev2 .rcard__stars svg{ width:15px; height:15px; }
.rev2 .rcard__text{ -webkit-line-clamp:3; font-size:13.5px; line-height:1.55; }
.rev2 .rcard__meta{ padding-top:9px; font-size:11px; }

/* ---- Round 20: MVV icons upgraded to colour-tied medallions ---- */
.mvv2__medallion{
  width:min(72%,188px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 50% 34%, #FFFFFF, #FBF5EA);
  display:grid; place-items:center; position:relative;
  box-shadow:0 26px 48px -26px rgba(40,30,10,.42), inset 0 1px 0 rgba(255,255,255,.95);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.mvv2__medallion::before{ content:""; position:absolute; inset:9px; border-radius:50%; border:1.5px solid rgba(74,64,48,.16); }
.mvv2__medallion::after{ content:""; position:absolute; inset:16px; border-radius:50%; border:1px dashed rgba(74,64,48,.12); }
.mvv2__medallion svg{ width:50%; height:auto; position:relative; }
.mvv2__row:hover .mvv2__medallion{ transform:translateY(-5px) scale(1.02); box-shadow:0 34px 56px -26px rgba(40,30,10,.5); }
/* colour each icon + ring to its block */
.mvv2__row--mission .mvv2__medallion svg{ color:#CABB92; }
.mvv2__row--vision  .mvv2__medallion svg{ color:#A65C34; }
.mvv2__row--values  .mvv2__medallion svg{ color:#2F4A44; }
.mvv2__row--mission .mvv2__medallion::before{ border-color:rgba(86,107,68,.30); }
.mvv2__row--vision  .mvv2__medallion::before{ border-color:rgba(166,92,52,.30); }
.mvv2__row--values  .mvv2__medallion::before{ border-color:rgba(47,74,68,.30); }

/* ============================================================
   Round 20: Excursions redesign — inspiration-style cards
   ============================================================ */
.xc-grid{ display:grid; grid-template-columns:1fr; gap:clamp(24px,2.6vw,34px); margin-top:clamp(6px,1.5vw,14px); }
@media(min-width:640px){ .xc-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1000px){ .xc-grid{ grid-template-columns:repeat(3,1fr); } }
.xc{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:0 22px 46px -34px rgba(40,30,10,.5); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.xc:hover{ transform:translateY(-5px); box-shadow:0 32px 54px -32px rgba(40,30,10,.55); }
.xc.is-hidden{ display:none; }
.xc__media{ position:relative; aspect-ratio:16/11; background:#ECE6D9; }
.xc__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.xc:hover .xc__media img{ transform:scale(1.05); }
.xc__badge{ position:absolute; right:18px; bottom:-20px; z-index:2; width:46px; height:46px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#CABB92; box-shadow:0 12px 26px -10px rgba(0,0,0,.5); border:2px solid #fff; }
.xc__badge--bush{ background:#CABB92; }
.xc__badge--culture{ background:#8A5A2E; }
.xc__badge--honeymoon{ background:#A65C34; }
.xc__badge--coast{ background:#3E7C8C; }
.xc__badge--kenya{ background:#96763A; }
.xc__body{ display:flex; flex-direction:column; gap:9px; padding:26px clamp(18px,2vw,24px) clamp(18px,2vw,24px); flex:1; }
.xc__tags{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.xc__tag{ font-size:10px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--gold); }
.xc__tag + .xc__tag::before{ content:"·"; margin-right:6px; color:var(--ink-muted); }
.xc__title{ font-family:var(--serif); font-weight:400; font-size:clamp(18px,1.7vw,21px); line-height:1.25; color:var(--ink); margin:0; }
.xc__desc{ font-size:13.5px; line-height:1.6; color:var(--ink-muted); margin:0; flex:1; }
.xc__btn{ align-self:flex-start; display:inline-flex; align-items:center; gap:7px; margin-top:8px; padding:9px 18px; border-radius:999px; background:#CABB92; color:#F4F0E6; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; transition:background .25s var(--ease), gap .25s var(--ease); }
.xc__btn:hover{ background:#9C8B5C; gap:11px; }
.xc__btn svg{ display:block; }


/* ---- Round 23: gallery — tall tile for portrait photos ---- */
.gallery-item--tall{ grid-row:span 2; }

/* ============================================================
   Round 24: Gallery lightbox (click to open + browse)
   ============================================================ */
.gallery-item:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.lightbox{ position:fixed; inset:0; z-index:400; display:none; place-items:center; background:rgba(9,11,8,.95); padding:clamp(12px,4vw,52px); }
.lightbox.is-open{ display:grid; animation:lbFade .25s var(--ease); }
@keyframes lbFade{ from{opacity:0} to{opacity:1} }
.lightbox__stage{ margin:0; display:grid; place-items:center; gap:14px; max-width:100%; max-height:100%; }
.lightbox__img{ max-width:min(94vw,1400px); max-height:82vh; width:auto; height:auto; object-fit:contain; border-radius:6px; box-shadow:0 30px 90px -18px rgba(0,0,0,.85); background:#0b0d08; }
.lightbox__count{ text-align:center; color:rgba(239,233,221,.72); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; }
.lightbox__close,.lightbox__nav{ position:absolute; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(239,233,221,.28); background:rgba(0,0,0,.35); color:#EFE9DD; cursor:pointer; transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.lightbox__close:hover,.lightbox__nav:hover{ background:rgba(0,0,0,.6); border-color:var(--gold); color:var(--gold); }
.lightbox__close{ top:clamp(12px,2.2vw,24px); right:clamp(12px,2.2vw,24px); width:46px; height:46px; z-index:2; }
.lightbox__nav{ top:50%; transform:translateY(-50%); width:54px; height:54px; z-index:2; }
.lightbox__nav--prev{ left:clamp(8px,2vw,28px); }
.lightbox__nav--next{ right:clamp(8px,2vw,28px); }
@media (max-width:600px){
  .lightbox__nav{ width:44px; height:44px; }
  .lightbox__nav--prev{ left:8px; } .lightbox__nav--next{ right:8px; }
  .lightbox__img{ max-height:72vh; }
}
@media (prefers-reduced-motion: reduce){ .lightbox.is-open{ animation:none; } }

/* ---- Round 25: MVV icons = customer sketch images (white bg blended via multiply) ---- */
.mvv2__icon img{ width:min(84%,252px); height:auto; display:block; mix-blend-mode:multiply; transition:transform .5s var(--ease); }
.mvv2__row:hover .mvv2__icon img{ transform:scale(1.04); }

/* ---- Round 26: MVV icon cells -> white (accommodate sketch images, no shadow) ---- */
.mvv2__icon{ background:#FFFFFF; }
.mvv2__icon img{ mix-blend-mode:normal; }

/* ---- Round 28: kill the leftover dashed ring behind MVV icons + ensure no box ---- */
.mvv2__icon::before{ display:none !important; content:none !important; }
.mvv2__icon{ box-shadow:none; }
.mvv2__icon img{ filter:none; box-shadow:none; }

/* ============================================================
   TRAVEL INFO PAGE — exact copy of the (updated) customer artifact
   (round 41). Component replicas scoped to .tv-page so they never
   affect other pages; carbon colours scoped to body.ti-carbon.
   ============================================================ */
/* homepage-component replicas, scoped to the travel-info page */
.tv-page .why-grid{display:grid;grid-template-columns:1fr;gap:clamp(16px,2.4vw,26px);}
@media (min-width:560px){.tv-page .why-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:920px){.tv-page .why-grid{grid-template-columns:repeat(4,1fr);}}
.tv-page .why-card{padding:clamp(22px,2.4vw,30px);border-radius:4px;background:#CABB92;border:1px solid rgba(255,255,255,.16);transition:border-color .3s var(--ease),transform .3s var(--ease);}
.tv-page .why-card:hover{border-color:rgba(255,255,255,.4);transform:translateY(-4px);}
.tv-page .why-card__title{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;color:#F7F3EA;margin-bottom:10px;}
.tv-page .why-card p{font-size:14.5px;line-height:1.7;color:rgba(247,243,234,.82);}
.tv-page .why-ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);color:#EAD9A8;margin-bottom:18px;}
.tv-page .split-card{position:relative;display:block;min-height:400px;overflow:hidden;background:#0C100D;color:#EFE9DD;}
.tv-page .split-card::before{content:"";position:absolute;inset:0;background-image:var(--img);background-size:cover;background-position:center;opacity:.6;}
.tv-page .split-card__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,13,.35) 0%,rgba(12,16,13,.92) 100%);}
.tv-page .split-card__body{position:relative;height:100%;min-height:inherit;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:clamp(26px,4vw,48px);}
.tv-page .split-card__body p{font-size:15.5px;line-height:1.7;color:rgba(239,233,221,.82);max-width:42ch;}
.tv-page .tag-gold{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:500;}
.tv-page .tag-muted{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-60);font-weight:500;}

/* page-specific pieces (.tv-) */
.tv-hero{min-height:clamp(420px,66vh,620px);}
.tv-page [id^="tv-"]{scroll-margin-top:calc(var(--header-h,66px) + 16px);}
.tv-page{--tv-img-radius:12px;}

.tv-jump{border-bottom:1px solid var(--line);background:var(--bg);}
.tv-jump__inner{display:flex;align-items:center;gap:8px 30px;overflow-x:auto;padding-block:16px;scrollbar-width:none;}
.tv-jump__inner::-webkit-scrollbar{display:none;}
.tv-jump span{flex-shrink:0;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-60);padding-right:26px;border-right:1px solid var(--line);}
.tv-jump a{flex-shrink:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--cream);padding:6px 0;position:relative;}
.tv-jump a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:#CABB92;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);}
.tv-jump a:hover::after{transform:scaleX(1);}

.tv-head{display:grid;gap:18px 60px;grid-template-columns:1fr;align-items:end;margin-bottom:clamp(32px,4.5vw,52px);}
@media (min-width:900px){.tv-head{grid-template-columns:1.2fr 1fr;}}
.tv-head .kicker{margin-bottom:14px;}
.tv-lead{font-size:16px;line-height:1.75;color:var(--cream-70);max-width:52ch;}
.tv-head .tag-muted{display:block;margin-top:14px;}

.tv-steps .why-card{display:flex;flex-direction:column;}
.tv-steps .why-ico{margin-bottom:22px;}
.tv-step-label{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#EAD9A8;margin-bottom:8px;font-weight:500;}
.tv-steps .why-card__title{font-size:23px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.18);}
.tv-steps ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.tv-steps li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.65;color:rgba(247,243,234,.84);}
.tv-steps li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:6px;border-left:1.5px solid #EAD9A8;border-bottom:1.5px solid #EAD9A8;transform:rotate(-45deg);}
.tv-steps li strong{color:#F7F3EA;font-weight:600;}

.tv-photo{margin:0;border-radius:var(--tv-img-radius);overflow:hidden;background:var(--card);}
.tv-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.tv-countries{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,26px);}
.tv-country{background:#fff;border:1px solid var(--line);border-radius:4px;padding:clamp(24px,3.2vw,44px);display:grid;gap:26px clamp(28px,3.6vw,52px);grid-template-columns:1fr;}
@media (min-width:760px){.tv-country{grid-template-columns:1fr 1fr;}.tv-country .tv-list{grid-column:1/-1;}}
@media (min-width:1100px){.tv-country{grid-template-columns:.9fr .9fr 1.4fr;align-items:start;}.tv-country .tv-list{grid-column:auto;}}
.tv-country__id{display:flex;flex-direction:column;align-items:flex-start;}
.tv-country .btn{--btn-bg:#CABB92;--btn-fg:#FFFFFF;}
.tv-country .btn:hover{--btn-bg:#CABB92;color:#fff;}
.tv-meta{display:flex;flex-direction:column;gap:6px;}
.tv-country h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4vw,48px);line-height:1.05;margin:14px 0 24px;color:var(--cream);}
.tv-fees{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line);}
.tv-fees div{padding:16px 0;border-bottom:1px solid var(--line);}
.tv-fees span{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-60);}
.tv-fees b{display:block;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.2;margin-top:6px;color:var(--cream);}
.tv-fees em{font-style:normal;font-size:13px;color:var(--cream-60);}
.tv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
@media (min-width:760px){.tv-list{border-top:1px solid var(--line);}}
@media (max-width:759px){.tv-fees + .tv-list{margin-top:-26px;}}
.tv-list li{font-size:15px;line-height:1.65;color:var(--cream-80);padding:14px 0 14px 22px;border-bottom:1px dashed var(--line);position:relative;}
.tv-list li::before{content:"";position:absolute;left:0;top:1.35em;width:7px;height:7px;border-radius:50%;background:#CABB92;}
.tv-list strong{color:var(--cream);font-weight:600;}
.tv-banner{margin-top:clamp(22px,3vw,30px);display:flex;align-items:center;gap:18px;padding:18px 24px;border-radius:4px;background:#fff;border:1px solid var(--line);color:var(--cream);}
.tv-banner svg{flex-shrink:0;color:#CABB92;}
.tv-banner p{font-size:15px;line-height:1.6;color:var(--cream-80);}
.tv-banner strong{color:var(--cream);}

.tv-ins{display:grid;gap:clamp(28px,4vw,60px);grid-template-columns:1fr;align-items:start;margin-bottom:clamp(30px,4vw,48px);}
@media (min-width:960px){.tv-ins{grid-template-columns:1.25fr .75fr;}}
.tv-ins .tv-photo{aspect-ratio:4/5;max-width:100%;}
@media (max-width:959px){.tv-ins .tv-photo{aspect-ratio:3/2;order:-1;}}
.tv-ins .kicker{margin-bottom:14px;}
.tv-ins .tv-lead{margin-top:18px;}
.tv-denied{display:flex;align-items:center;gap:12px;margin-top:26px;padding:14px 18px;border:1.5px solid #A4452C;border-radius:4px;background:rgba(164,69,44,.07);color:#A4452C;font-weight:700;font-size:15.5px;line-height:1.4;}
.tv-denied i{width:24px;height:24px;border-radius:50%;background:#A4452C;color:#fff;display:grid;place-items:center;font-style:normal;font-size:14px;flex-shrink:0;}
.tv-facts{display:grid;grid-template-columns:1fr 1fr;margin:28px 0 0;border-top:1px solid var(--line);}
.tv-facts div{padding:16px 16px 16px 0;border-bottom:1px solid var(--line);}
.tv-facts div:nth-child(even){padding-left:20px;border-left:1px solid var(--line);}
.tv-facts dt{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#CABB92;font-weight:600;margin-bottom:6px;}
.tv-facts dd{margin:0;font-size:14.5px;line-height:1.55;color:var(--cream-80);}
.tv-facts dd b{font-family:var(--serif);font-weight:400;font-size:24px;color:var(--cream);margin-right:6px;}
.tv-choose{display:flex;gap:12px;align-items:flex-start;margin-top:24px;font-size:15px;line-height:1.65;color:var(--cream-80);}
.tv-choose svg{flex-shrink:0;color:#CABB92;margin-top:2px;}
.tv-choose strong{color:var(--cream);}
.tv-entry{display:grid;gap:clamp(16px,2.4vw,26px);grid-template-columns:1fr;}
@media (min-width:760px){.tv-entry{grid-template-columns:1fr 1fr;}}
.tv-entry .why-card{display:flex;flex-direction:column;padding:clamp(24px,3vw,36px);}
@supports (grid-template-rows:subgrid){
  .tv-entry{grid-auto-rows:auto;}
  .tv-entry .why-card{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0;align-content:start;}
  .tv-entry .why-card > .btn{align-self:end;justify-self:start;}
}
.tv-entry .why-card:hover{transform:none;}
.tv-entry__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.tv-entry__tag{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#EAD9A8;font-weight:500;padding-top:6px;}
.tv-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px;}
@media (max-width:559px){.tv-entry__top{flex-direction:column;gap:10px;}.tv-badges{align-items:flex-start;}}
.tv-badge{font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:6px 10px;border-radius:2px;}
.tv-badge--now{background:#F7F3EA;color:#9C8B5C;}
.tv-badge--date{border:1px solid rgba(247,243,234,.5);color:#F7F3EA;}
.tv-entry .why-card__title{font-size:clamp(26px,2.8vw,32px);margin-bottom:10px;}
.tv-entry .why-card p{margin-bottom:24px;}
.tv-btn-light{--btn-bg:#F7F3EA;--btn-fg:#2B2720;margin-top:auto;align-self:flex-start;}
.tv-btn-light:hover{--btn-bg:#EAD9A8;color:#2B2720;}
.tv-fine{margin-top:20px;font-size:12.5px;line-height:1.7;color:var(--cream-60);max-width:95ch;}
.tv-more{display:grid;gap:0 50px;grid-template-columns:1fr;margin-top:clamp(30px,4vw,44px);}
@media (min-width:760px){.tv-more{grid-template-columns:1fr 1fr;}}
.tv-more > div{display:flex;gap:18px;align-items:flex-start;padding:24px 0;border-top:1px solid var(--line);}
.tv-more h4{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.2;color:var(--cream);margin:0 0 6px;}
.tv-more p{font-size:14.5px;line-height:1.7;color:var(--cream-70);}
.tv-ico{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(202, 187, 146,.12);color:#CABB92;flex-shrink:0;}
.tv-ico svg{width:22px;height:22px;}

.tv-health-feature{min-height:clamp(340px,42vw,460px);border-radius:var(--tv-img-radius);margin-bottom:clamp(22px,3vw,30px);}
.tv-health-feature .split-card__body h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,56px);line-height:1;}
.tv-health-feature .split-card__body .tag-gold{color:#EAD9A8;}
.tv-health-feature::before{opacity:1;background-position:center 35%;}
.tv-health-feature .split-card__scrim{background:linear-gradient(180deg,rgba(12,16,13,0) 30%,rgba(12,16,13,.82) 100%);}
.tv-health{display:grid;gap:clamp(14px,2vw,20px);grid-template-columns:1fr;}
@media (min-width:640px){.tv-health{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.tv-health{grid-template-columns:repeat(3,1fr);}}
.tv-hcard{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:4px;padding:clamp(22px,2.4vw,28px);display:grid;grid-template-columns:auto 1fr;gap:4px 18px;align-items:start;}
.tv-hcard .tv-ico{grid-row:span 2;}
.tv-hcard h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.2;color:var(--cream);margin:0;padding-top:4px;}
.tv-hcard p{font-size:14.5px;line-height:1.65;color:var(--cream-80);}
.tv-hcard strong{color:var(--cream);font-weight:600;}
.tv-note{margin-top:20px;font-size:13px;color:var(--cream-70);}

.tv-gtk + .tv-countries{margin-top:0;}
.tv-gtk{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:1fr;align-items:center;margin-bottom:clamp(30px,4vw,48px);}
@media (min-width:900px){.tv-gtk{grid-template-columns:1fr 1.15fr;}}
.tv-gtk .tv-photo{aspect-ratio:3/2;max-width:100%;}
.tv-gtk .kicker{margin-bottom:14px;}
.tv-gtk .tv-lead{margin-top:18px;}
.tv-tips{display:grid;gap:0 44px;grid-template-columns:1fr;}
@media (min-width:640px){.tv-tips{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1024px){.tv-tips{grid-template-columns:repeat(3,1fr);}}
.tv-tip{display:flex;gap:18px;align-items:flex-start;padding:26px 0 28px;border-top:1px solid var(--line);position:relative;}
.tv-tip::before{content:"";position:absolute;left:0;top:-1px;width:44px;height:2px;background:#CABB92;}
.tv-tip svg{flex-shrink:0;width:44px;height:44px;padding:11px;border-radius:50%;background:#CABB92;color:#EAD9A8;}
.tv-tip h3{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.25;color:var(--cream);margin:0 0 6px;}
.tv-tip p{font-size:14.5px;line-height:1.65;color:var(--cream-70);}
.tv-tip strong{color:var(--cream);font-weight:600;}
.tv-disclaimer{margin-top:24px;padding:18px 22px;border-left:3px solid #CABB92;background:rgba(202, 187, 146,.08);border-radius:0 4px 4px 0;font-size:12.5px;line-height:1.7;color:var(--cream-70);}

/* carbon-copy colours: khaki replaced with #F3F0EC chrome + gold Plan-your-safari button (overrides the new site theme) */
body.ti-carbon .site-header, body.ti-carbon .site-header.is-scrolled{ background:#F3F0EC !important; }
body.ti-carbon .section--alt{ background:#F3F0EC !important; }
body.ti-carbon .cta-strip{ background:#F3F0EC !important; }
body.ti-carbon .btn--gold{ --btn-bg:#96763A !important; --btn-fg:#FFFFFF !important; }
body.ti-carbon .btn--gold:hover{ --btn-bg:#7E6330 !important; }
body.ti-carbon .tv-country .btn{ --btn-bg:#CABB92 !important; --btn-fg:#FFFFFF !important; }
body.ti-carbon .tv-country .btn:hover{ --btn-bg:#CABB92 !important; }
body.ti-carbon .tv-btn-light{ --btn-bg:#F7F3EA !important; --btn-fg:#2B2720 !important; }
body.ti-carbon .tv-btn-light:hover{ --btn-bg:#EAD9A8 !important; --btn-fg:#2B2720 !important; }
/* travel-info only: Design-your-safari header button + CTA in green (matches the rest of the site) */
body.ti-carbon .btn--gold.nav-cta,
body.ti-carbon .mobile-menu__foot .btn--gold,
body.ti-carbon .cta-strip__actions .btn--gold{ --btn-bg:#CABB92 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important; }
body.ti-carbon .btn--gold.nav-cta:hover,
body.ti-carbon .mobile-menu__foot .btn--gold:hover,
body.ti-carbon .cta-strip__actions .btn--gold:hover{ --btn-bg:#B3A478 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important; }

/* ============ FINAL BATCH (round 39) ============ */
/* item 10: about hero — new safari-car photo, keep the vehicle in frame */
.page-hero--about::before{ background-position:center 48%; }

/* item 11: founder image matches the text column height (top & bottom aligned) */
@media(min-width:900px){
  .about-split--stretch{ align-items:stretch; }
  .about-split--stretch .about-figure--founder{ position:relative; height:100%; min-height:100%; }
  .about-split--stretch .about-figure--founder img{ position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
}

/* item 12: MVV box colours (mission+values green, vision khaki with dark text) */
.mvv2__row--mission .mvv2__panel{ background:#CABB92; }
.mvv2__row--vision  .mvv2__panel{ background:#CABB92; color:#2B2720; }
.mvv2__row--values  .mvv2__panel{ background:#CABB92; }
.mvv2__row--vision .mvv2__eyebrow{ color:rgba(43,39,32,.66); }
.mvv2__row--vision .mvv2__panel h3{ color:#2B2720; }
.mvv2__row--vision .mvv2__panel h3::after{ background:rgba(43,39,32,.42); }
.mvv2__row--vision .mvv2__panel p{ color:rgba(43,39,32,.84); }

/* item 13: MVV icon cell now holds a full-bleed photo instead of a drawing */
.mvv2__icon{ padding:0; background:none; }
.mvv2__icon::before{ display:none !important; content:none !important; }
.mvv2__icon img{ width:100%; height:100%; object-fit:cover; max-width:none; mix-blend-mode:normal; filter:none; }
@media(max-width:719px){ .mvv2__icon{ min-height:230px; } .mvv2__icon img{ position:absolute; inset:0; } .mvv2__icon{ position:relative; } }

/* item 5: expandable reviews — "See more" toggle */
.rcard__more{ align-self:flex-start; appearance:none; background:none; border:0; margin-top:12px; padding:0; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#CABB92; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.rcard__more:hover{ color:#9C8B5C; text-decoration:underline; }
.rev2 .rcard.is-expanded .rcard__text, .rev-grid .rcard.is-expanded .rcard__text{ display:block; -webkit-line-clamp:unset; overflow:visible; }

/* item 15: Serengeti card test — no subtitle, larger name */
.dcard__label--solo .dcard__name{ font-size:30px; }

/* ============ FINAL BATCH v2 (round 40) ============ */
/* item 1: MVV — uniform photo heights. The portrait Values image was driving its
   cell's intrinsic height up with column width; lock the photo cell to a fixed
   height and let object-fit:cover crop, so all 3 rows stay level (391px desktop). */
@media(min-width:720px){
  .mvv2__panel{ min-height:0; }
  .mvv2__row{ min-height:0; }
  .mvv2__icon{ position:relative; height:391px; overflow:hidden; }
  .mvv2__icon img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
}

/* item 5: WhatsApp buttons use the real WhatsApp green site-wide (distinctive) */
.btn[href*="whatsapp"]{ --btn-bg:#CABB92 !important; --btn-fg:#FFFFFF !important; border-color:transparent !important; }
.btn[href*="whatsapp"]:hover{ --btn-bg:#B3A478 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important; background:#B3A478 !important; border-color:transparent !important; }

/* ============ FINAL BATCH v3 (round 42) ============ */
/* Homepage reviews heading — Google + Tripadvisor logos in a RIGHT column
   beside the heading text, enlarged. */
.reviews-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 48px; max-width:none; text-align:left; margin-inline:0; }
.reviews-head__text{ flex:1 1 440px; max-width:640px; }
.reviews-head .reviews-intro{ margin-bottom:0; }
.reviews-head .reviews-logos{ margin-top:0; flex:0 0 auto; justify-content:flex-end; gap:34px; }
.reviews-head .reviews-logos img{ height:80px; }
@media(max-width:760px){
  .reviews-head{ gap:18px 24px; }
  .reviews-head__text{ flex-basis:100%; }
  .reviews-head .reviews-logos{ justify-content:flex-start; }
  .reviews-head .reviews-logos img{ height:62px; }
}

/* About — Our Values photo shifted down-crop so more of the herd shows */
.mvv2__row--values .mvv2__icon img{ object-position:center 72%; }

/* ============ Language switcher (round 43) — Google Translate EN/DE/FR/RU ============ */
.lang-switch{ display:inline-flex; align-items:center; gap:7px; color:#2B2720; border:1px solid rgba(38,34,28,.22); border-radius:999px; padding:5px 11px; background:rgba(255,255,255,.45); line-height:1; }
.lang-switch__globe{ flex:none; opacity:.82; }
.lang-switch__select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  border:0; background-color:transparent; font-family:var(--sans); font-size:12.5px; font-weight:600;
  letter-spacing:.02em; color:inherit; cursor:pointer; padding:0 16px 0 0; margin:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%232B2720' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right center;
}
.lang-switch__select:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.lang-switch:hover{ border-color:rgba(38,34,28,.4); }
@media(max-width:600px){ .lang-switch{ padding:4px 9px; gap:5px; } .lang-switch__select{ font-size:12px; } }

/* Google Translate injected chrome — kept hidden (custom dropdown drives it) */
#google_translate_element{ display:none !important; }
.goog-te-banner-frame, .goog-te-banner-frame.skiptranslate, .goog-te-gadget, .goog-te-gadget-icon,
iframe.skiptranslate, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf, .VIpgJd-ZVi9od-ORHb-OEVmcd{ display:none !important; visibility:hidden !important; }
body{ top:0 !important; }
#goog-gt-tt, .goog-te-balloon-frame, .goog-tooltip{ display:none !important; }
.goog-text-highlight{ background:none !important; box-shadow:none !important; }

/* ============ Tour route map (round 44) — interactive journey map ============ */
.detail-maptitle{ font-family:var(--serif); font-weight:400; font-size:clamp(23px,3vw,30px); color:var(--cream); margin:6px 0 6px; letter-spacing:.01em; }
.tourmap__hint{ margin:0 0 18px; }
.tourmap{ display:grid; gap:16px; }
.tourmap__mapwrap{ position:relative; }
.tourmap__map{ height:clamp(360px,46vw,500px); border-radius:14px; overflow:hidden; border:1px solid var(--line); background:#e9e6df; z-index:0; }
.tourmap__map:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }

/* base-layer toggle */
.tourmap__switch{ position:absolute; top:12px; right:12px; z-index:600; display:flex; gap:3px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:3px; box-shadow:0 6px 18px -8px rgba(20,18,12,.45); }
.tourmap__sw{ appearance:none; border:0; background:none; font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.03em; color:#6A6459; padding:5px 13px; border-radius:999px; cursor:pointer; transition:background .2s,color .2s; }
.tourmap__sw.is-active{ background:#CABB92; color:#fff; }

/* numbered stop cards */
.tourmap__stops{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:9px; }
@media(min-width:600px){ .tourmap__stops{ grid-template-columns:1fr 1fr; } }
.tourmap__stop{ display:flex; gap:12px; align-items:flex-start; padding:13px 14px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; transition:border-color .2s,box-shadow .2s,transform .2s,background .2s; }
.tourmap__stop:hover{ border-color:#CABB92; box-shadow:0 10px 24px -16px rgba(40,36,28,.5); transform:translateY(-1px); }
.tourmap__stop.is-active{ border-color:#CABB92; background:rgba(202, 187, 146,.07); }
.tourmap__stop:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
.tourmap__num{ flex:none; width:28px; height:28px; border-radius:50%; background:#CABB92; color:#F5F1E6; display:flex; align-items:center; justify-content:center; font-family:var(--sans); font-weight:700; font-size:13px; margin-top:1px; transition:background .2s; }
.tourmap__stop:hover .tourmap__num, .tourmap__stop.is-active .tourmap__num{ background:#96763A; }
.tourmap__info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.tourmap__day{ font-family:var(--sans); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:#96763A; font-weight:700; }
.tourmap__name{ font-family:var(--serif); font-size:16px; line-height:1.2; color:#2B2720; }
.tourmap__desc{ font-size:12.5px; line-height:1.5; color:#6A6459; }

/* Leaflet numbered pins */
.route-pin-wrap{ background:none !important; border:0 !important; }
.route-pin{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#CABB92; color:#F5F1E6; font-family:var(--sans); font-weight:700; font-size:14px; border:2px solid #F3F0EC; box-shadow:0 4px 12px rgba(20,18,12,.4); transition:transform .25s ease,background .25s ease,box-shadow .25s ease; }
.route-pin-wrap:hover .route-pin, .route-pin-wrap.is-active .route-pin{ background:#96763A; box-shadow:0 7px 18px rgba(20,18,12,.5); transform:scale(1.16); }

/* Leaflet popup — brand styling */
.leaflet-popup-content-wrapper{ border-radius:11px; box-shadow:0 14px 34px -14px rgba(20,18,12,.5); }
.leaflet-popup-content{ margin:13px 15px; }
.route-pop__day{ font-family:var(--sans); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:#96763A; font-weight:700; }
.route-pop h4{ font-family:var(--serif); font-weight:400; font-size:17px; margin:3px 0 5px; color:#2B2720; }
.route-pop p{ font-family:var(--sans); font-size:12.5px; line-height:1.55; color:#4A463E; margin:0; max-width:215px; }
.leaflet-container{ font-family:var(--sans); }
.leaflet-bar a{ color:#2B2720; }

/* Contact page without the enquiry form — single, centred column */
.contact-grid--solo{ grid-template-columns:1fr !important; max-width:600px; margin-inline:auto; }
.contact-grid--solo .contact-channels{ display:grid; gap:10px; }

/* ============ Safari "Journeys" listing pages (round 51) ============ */
.jrn-head{ background:#F3F0EC; padding-block:clamp(40px,6vw,76px); }
.jrn-head__inner{ display:grid; gap:clamp(18px,4vw,56px); grid-template-columns:1fr; align-items:end; }
@media(min-width:860px){ .jrn-head__inner{ grid-template-columns:1.45fr 1fr; } }
.jrn-head__title .kicker{ margin:0 0 12px; }
.jrn-head__h1{ font-family:var(--serif); font-weight:400; font-size:clamp(2.5rem,7vw,4.6rem); line-height:.98; letter-spacing:.01em; color:var(--cream); text-transform:uppercase; margin:0; }
.jrn-head__lead{ font-size:clamp(15px,1.4vw,17px); line-height:1.55; color:var(--cream); max-width:48ch; margin:0; }
.jrn-head__sub{ font-size:13.5px; line-height:1.6; color:var(--cream-70); margin:14px 0 0; max-width:48ch; }
.jrn-sec-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:clamp(24px,3vw,38px); }
.jrn-sec-head__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,2.6vw,2rem); color:var(--cream); margin:0; }
.jrn-sec-head__n{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:700; white-space:nowrap; }
.jrn-sec-head--stack{ display:block; }
.jrn-sec-head--stack .kicker{ margin-bottom:12px; }
.jrn-sec-head--stack .jrn-sec-head__h2{ font-size:clamp(28px,4.4vw,48px); line-height:1.05; letter-spacing:-.01em; }
.jrn-feature-grid{ display:grid; gap:clamp(28px,4vw,54px); grid-template-columns:1fr; }
@media(min-width:800px){ .jrn-feature-grid{ grid-template-columns:1fr 1fr; } }
.jrn-feature,.jrn-more{ display:block; color:inherit; }
.jrn-feature__media{ aspect-ratio:16/10; overflow:hidden; border-radius:4px; background:#e9e6df; }
.jrn-feature__media img,.jrn-more__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.jrn-feature:hover .jrn-feature__media img,.jrn-more:hover .jrn-more__media img{ transform:scale(1.04); }
.jrn-feature__meta,.jrn-more__meta{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:18px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.jrn-feature__region,.jrn-more__region{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.jrn-feature__days,.jrn-more__days{ font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--cream-60); white-space:nowrap; }
.jrn-feature__title{ font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,2.4vw,2rem); color:var(--cream); margin:14px 0 6px; }
.jrn-feature__sub{ color:#CABB92; font-size:15px; margin:0 0 12px; }
.jrn-feature__desc{ font-size:14px; line-height:1.65; color:var(--cream-80); max-width:54ch; margin:0; }
.jrn-feature__points{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:7px 26px; }
.jrn-feature__points li{ position:relative; padding-left:15px; font-size:12.5px; color:var(--cream-70); }
.jrn-feature__points li::before{ content:""; position:absolute; left:0; top:7px; width:5px; height:5px; border-radius:50%; background:#96763A; }
.jrn-feature__foot,.jrn-more__foot{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:20px; padding-top:15px; border-top:1px solid var(--line); flex-wrap:wrap; }
.jrn-feature__route,.jrn-more__best{ font-size:11.5px; color:var(--cream-60); }
.jrn-feature__cta,.jrn-more__cta{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:700; white-space:nowrap; }
.jrn-feature:hover .jrn-feature__cta,.jrn-more:hover .jrn-more__cta{ color:#CABB92; }
.jrn-more-grid{ display:grid; gap:clamp(24px,3vw,38px); grid-template-columns:1fr; }
@media(min-width:560px){ .jrn-more-grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:960px){ .jrn-more-grid--4{ grid-template-columns:repeat(4,1fr); } .jrn-more-grid--3{ grid-template-columns:repeat(3,1fr); } }
.jrn-more__media{ aspect-ratio:16/11; overflow:hidden; border-radius:4px; background:#e9e6df; }
.jrn-more__title{ font-family:var(--serif); font-weight:400; font-size:1.2rem; line-height:1.2; color:var(--cream); margin:12px 0 5px; }
.jrn-more__sub{ color:#CABB92; font-size:13.5px; margin:0 0 8px; }
.jrn-more__desc{ font-size:13px; line-height:1.55; color:var(--cream-80); margin:0; }


/* ============ About page redesign (round 52) ============ */
.ab-hero .page-hero__inner{ max-width:1000px; margin-left:0; margin-right:auto; text-align:left; }
.ab-hero .page-hero__inner::before{ display:none !important; background:none !important; }
.ab-hero__band{ display:block; width:100%; max-width:100%; background:none !important; box-shadow:none !important; padding:0; border-radius:0; margin:6px 0 18px; text-align:left; }
.ab-hero__band .page-hero__title{ margin:0; text-align:left; font-size:clamp(1.9rem,4.4vw,3.3rem); line-height:1.12; letter-spacing:.005em; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.ab-sec-kicker{ margin:0 0 10px; }
.ab-head{ font-family:var(--serif); font-weight:400; font-size:clamp(2rem,4.4vw,3rem); line-height:1.04; color:var(--cream); margin:0 0 10px; }
.ab-lead{ font-size:14.5px; line-height:1.65; color:var(--cream-70); max-width:64ch; margin:0; }
.ab-prose p{ font-size:15px; line-height:1.78; color:var(--cream-80); margin:0 0 17px; max-width:58ch; }
.ab-prose p:last-child{ margin-bottom:0; }
.ab-prose em{ font-style:italic; }

.ab-name{ display:grid; gap:clamp(26px,5vw,60px); grid-template-columns:1fr; align-items:start; }
@media(min-width:820px){ .ab-name{ grid-template-columns:1fr 1fr; } }
.ab-name__big{ font-family:var(--serif); font-weight:400; font-size:clamp(2.3rem,5vw,3.5rem); line-height:1.0; color:var(--cream); margin:10px 0 0; }
.ab-name__pron{ margin:22px 0 0; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--cream-60); }
.ab-name__pron b{ font-family:var(--serif); font-weight:400; font-size:18px; color:#CABB92; letter-spacing:.01em; text-transform:none; margin-right:10px; }

.ab-founder{ display:grid; gap:clamp(26px,5vw,60px); grid-template-columns:1fr; align-items:stretch; }
@media(min-width:820px){ .ab-founder{ grid-template-columns:1fr 1fr; } }
.ab-founder__img{ position:relative; border-radius:4px; overflow:hidden; background:#e4e0d6; min-height:clamp(320px,40vw,480px); }
.ab-founder__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ab-founder__cap{ position:absolute; left:0; bottom:0; background:rgba(202, 187, 146,.92); color:#F4F0E6; font-size:10px; letter-spacing:.16em; text-transform:uppercase; padding:9px 15px; }
.ab-founder__name{ font-family:var(--serif); font-weight:400; font-size:clamp(2rem,4vw,2.9rem); color:var(--cream); margin:10px 0 18px; line-height:1.04; }

.ab-mvv{ display:grid; grid-template-columns:1fr; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
@media(min-width:720px){ .ab-mvv{ grid-template-columns:1fr 1fr; } }
.ab-mvv__cell{ min-height:clamp(240px,25vw,320px); }
.ab-mvv__text{ display:flex; flex-direction:column; justify-content:center; padding:clamp(26px,3.5vw,48px); }
.ab-mvv__text h3{ font-family:var(--serif); font-weight:400; text-transform:uppercase; letter-spacing:.14em; font-size:clamp(19px,2.3vw,26px); margin:0 0 18px; position:relative; padding-bottom:14px; }
.ab-mvv__text h3::after{ content:""; position:absolute; left:0; bottom:0; width:42px; height:2px; background:currentColor; opacity:.5; }
.ab-mvv__text p{ font-size:14px; line-height:1.72; margin:0; }
.ab-mvv__mission{ background:#CABB92; color:#F4F0E6; }
.ab-mvv__mission p{ color:rgba(244,240,230,.9); }
.ab-mvv__vision{ background:#F3F0EC; color:var(--cream); }
.ab-mvv__vision p{ color:var(--cream-80); }
.ab-mvv__photo img{ width:100%; height:100%; object-fit:cover; display:block; min-height:clamp(240px,25vw,320px); }

.ab-values{ display:grid; gap:clamp(16px,2.2vw,26px); grid-template-columns:1fr; margin-top:clamp(28px,3.5vw,44px); }
@media(min-width:720px){ .ab-values{ grid-template-columns:repeat(3,1fr); } }
.ab-value{ background:#CABB92; color:#F4F0E6; border-radius:6px; padding:clamp(26px,2.8vw,36px); }
.ab-value__ico{ width:48px; height:48px; border-radius:50%; border:1px solid rgba(244,240,230,.35); display:flex; align-items:center; justify-content:center; margin-bottom:24px; color:#E7D6A6; }
.ab-value h3{ font-family:var(--serif); font-weight:400; font-size:clamp(19px,2vw,23px); margin:0 0 13px; line-height:1.2; }
.ab-value p{ font-size:13.5px; line-height:1.68; color:rgba(244,240,230,.86); margin:0; }

.ab-forward{ display:grid; gap:clamp(24px,4vw,52px); grid-template-columns:1fr; align-items:center; }
@media(min-width:820px){ .ab-forward{ grid-template-columns:1fr 1fr; } }
.ab-forward__img{ position:relative; border-radius:4px; overflow:hidden; background:#e4e0d6; aspect-ratio:4/3; }
.ab-forward__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ab-forward__cap{ position:absolute; left:0; bottom:0; background:rgba(202, 187, 146,.92); color:#F4F0E6; font-size:10px; letter-spacing:.16em; text-transform:uppercase; padding:8px 14px; }
.ab-forward__h{ font-family:var(--serif); font-weight:400; font-size:clamp(2rem,4vw,2.9rem); line-height:1.05; color:var(--cream); margin:8px 0 18px; }

/* ============================================================
   HOMEPAGE REDESIGN (Oct 2026) — matches customer "Endelea
   Homepage Sample" PDF. Scoped to .hp-* classes so other pages
   are untouched. Palette: brand green #CABB92, dark olive band
   #CABB92, bronze #96763A, tan #F3F0EC, ink #2B2720.
   ============================================================ */

/* ---- Hero: centred welcome over a rotating destination photo ---- */
.hp-hero{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:clamp(600px,90svh,920px); padding:clamp(40px,8vh,96px) var(--gutter); }
.hp-hero__scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(38,44,31,.70) 0%, rgba(34,39,27,.58) 42%, rgba(30,35,24,.76) 100%); }
.hp-hero__tag{ position:absolute; z-index:3; top:calc(var(--header-h) + 18px); right:var(--gutter); display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(239,233,221,.34); padding:7px 13px; border-radius:3px; background:rgba(26,30,20,.28); color:var(--cream); font-size:10px; letter-spacing:.18em; text-transform:uppercase; backdrop-filter:blur(4px); }
.hp-hero__tag svg{ opacity:.8; }
.hp-hero__center{ position:relative; z-index:2; max-width:760px; margin:0 auto; }
.hp-hero__karibu{ display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 8px; color:var(--gold); font-size:11px; letter-spacing:.34em; text-transform:uppercase; }
.hp-hero__krule{ width:38px; height:1px; background:currentColor; opacity:.8; }
.hp-hero__welcome{ font-family:var(--script); font-weight:400; font-size:clamp(28px,4vw,46px); line-height:1; color:var(--cream); margin:0; }
.hp-hero__name{ font-family:var(--script); font-weight:400; font-size:clamp(66px,13vw,160px); line-height:.92; color:var(--cream); margin:2px 0 0; }
.hp-hero__sub{ font-size:clamp(15px,1.7vw,18px); line-height:1.6; color:var(--cream-80); max-width:54ch; margin:20px auto 0; }
.hp-hero__motto{ font-family:var(--serif); font-size:clamp(15px,1.8vw,20px); letter-spacing:.16em; color:var(--gold); margin:18px 0 0; }
.hp-hero__actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:30px; }
.hp-hero__ghost{ border:1px solid rgba(239,233,221,.42); --btn-fg:var(--cream); color:var(--cream); }
.hp-hero__ghost:hover{ border-color:var(--cream); background:rgba(239,233,221,.1); color:var(--cream); }
.hp-hero__controls{ position:absolute; z-index:3; right:var(--gutter); bottom:clamp(26px,5vh,54px); display:flex; align-items:center; gap:14px; }
.hp-hero__ctrl{ width:46px; height:46px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(239,233,221,.34); background:rgba(26,30,20,.3); color:var(--cream); cursor:pointer; backdrop-filter:blur(6px); transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease); }
.hp-hero__ctrl:hover{ border-color:var(--gold); color:var(--gold); }
.hp-hero__ctrl .ic-play{ display:none; }
.hp-hero.is-paused .hp-hero__ctrl--play .ic-play{ display:block; }
.hp-hero.is-paused .hp-hero__ctrl--play .ic-pause{ display:none; }
.hp-hero__progress{ width:clamp(60px,9vw,120px); height:1.5px; background:rgba(239,233,221,.26); overflow:hidden; }
.hp-hero__progress span{ display:block; height:100%; width:100%; background:var(--gold); transform:scaleX(0); transform-origin:left; }
.hp-hero__counter{ font-family:var(--serif); font-size:19px; color:var(--cream); letter-spacing:.05em; white-space:nowrap; }
.hp-hero__counter [data-hero-index]{ color:var(--gold); }
.hp-hero__counter i{ color:var(--cream-60); margin:0 4px; font-style:normal; }
.hp-hero__rail, .hp-hero__dots{ display:none !important; }
@media(max-width:720px){
  .hp-hero__tag{ display:none; }
  .hp-hero__controls{ left:50%; right:auto; transform:translateX(-50%); gap:10px; }
  .hp-hero__progress{ display:none; }
}

/* ---- Why Endelea: eight green cards, 4-up ---- */
.hp-why{ background:var(--bg); }
.hp-why__head{ max-width:760px; }
.hp-why__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4.8vw,56px); line-height:1.05; letter-spacing:-.01em; color:var(--cream); margin:0; }
.hp-why__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.4vw,20px); margin-top:clamp(34px,4vw,54px); }
.hp-wcard{ background:#CABB92; color:#EFE9DD; padding:26px 24px 28px; border-radius:3px; display:flex; flex-direction:column; min-height:232px; }
.hp-wcard__ico{ width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.13); display:grid; place-items:center; color:#EFE9DD; margin-bottom:22px; flex-shrink:0; }
.hp-wcard__title{ font-family:var(--serif); font-weight:400; font-size:19px; line-height:1.16; margin:0 0 10px; color:#F4F0E6; }
.hp-wcard p{ margin:0; font-size:13.5px; line-height:1.6; color:rgba(239,233,221,.82); }
@media(max-width:980px){ .hp-why__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:540px){ .hp-why__grid{ grid-template-columns:1fr; } .hp-wcard{ min-height:0; } }

/* ---- Signature journeys: tan panel, three photo cards ---- */
.hp-sig{ background:var(--bg-alt); }
.hp-sig__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px; }
.hp-sig__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.4vw,50px); line-height:1.06; letter-spacing:-.01em; color:var(--cream); margin:0; }
.hp-sig__all{ color:#5F4A1F; white-space:nowrap; margin-bottom:6px; }
.hp-sig__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px); margin-top:clamp(28px,3.4vw,46px); }
.hp-jcard{ display:flex; flex-direction:column; color:var(--cream); }
.hp-jcard__media{ aspect-ratio:1/1; overflow:hidden; background:var(--card); border-radius:3px; }
.hp-jcard__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s var(--ease); }
.hp-jcard:hover .hp-jcard__media img{ transform:scale(1.05); }
.hp-jcard__meta{ display:flex; justify-content:space-between; gap:12px; margin-top:16px; padding-top:13px; border-top:1px solid rgba(38,34,28,.2); font-size:10.5px; letter-spacing:.17em; text-transform:uppercase; }
.hp-jcard__region{ color:#5F4A1F; font-weight:600; }
.hp-jcard__days{ color:var(--cream-60); }
.hp-jcard__title{ font-family:var(--serif); font-weight:400; font-size:clamp(21px,2vw,26px); line-height:1.12; margin:12px 0 0; color:var(--cream); }
.hp-jcard:hover .hp-jcard__title{ color:#CABB92; }
.hp-jcard__desc{ font-size:14px; line-height:1.66; color:var(--cream-70); margin:10px 0 0; }
.hp-jcard__cta{ display:inline-block; margin-top:16px; font-size:11px; letter-spacing:.17em; text-transform:uppercase; font-weight:700; color:#CABB92; }
@media(max-width:860px){ .hp-sig__grid{ grid-template-columns:1fr; max-width:460px; } }

/* ---- Where we go: two photo tiles with dark-olive caption band ---- */
.hp-wwg{ background:var(--bg); }
.hp-wwg__head{ max-width:720px; }
.hp-wwg .split-feature{ margin-top:clamp(28px,3.4vw,46px); }
.hp-wwg__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.4vw,50px); line-height:1.06; letter-spacing:-.01em; color:var(--cream); margin:0; }
.hp-wwg__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.2vw,28px); margin-top:clamp(28px,3.4vw,46px); }
.hp-wtile{ display:flex; flex-direction:column; border-radius:3px; overflow:hidden; background:#CABB92; }
.hp-wtile__media{ aspect-ratio:16/10; overflow:hidden; }
.hp-wtile__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s var(--ease); }
.hp-wtile:hover .hp-wtile__media img{ transform:scale(1.04); }
.hp-wtile__band{ padding:clamp(20px,2.2vw,30px) clamp(22px,2.4vw,32px) clamp(24px,2.6vw,34px); color:#EFE9DD; }
.hp-wtile__title{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3vw,40px); line-height:1; margin:0; color:#F4F0E6; }
.hp-wtile__desc{ font-size:14.5px; line-height:1.6; color:rgba(239,233,221,.8); margin:12px 0 16px; max-width:46ch; }
.hp-wtile__cta{ display:inline-block; font-size:11px; letter-spacing:.17em; text-transform:uppercase; font-weight:700; color:#D9B978; }
.hp-wtile:hover .hp-wtile__cta{ color:#E6C98A; }
@media(max-width:780px){ .hp-wwg__grid{ grid-template-columns:1fr; } }

/* ---- Reviews head (cards reuse existing .rev2 engine) ---- */
.hp-rev{ background:var(--bg); }
.hp-rev__head{ max-width:760px; }
.hp-rev__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.6vw,52px); line-height:1.05; letter-spacing:-.01em; color:var(--cream); margin:0; }
.hp-rev__intro{ font-size:15px; line-height:1.7; color:var(--cream-70); margin:16px 0 0; max-width:60ch; }

/* ---- CTA strip: tan band, single curate button ---- */
.hp-cta__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; padding-block:clamp(64px,9vw,120px); }
.hp-cta__text{ max-width:640px; }
.hp-cta__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,4vw,46px); line-height:1.05; letter-spacing:-.01em; color:var(--cream); margin:0; }
.hp-cta__sub{ font-size:15px; line-height:1.65; color:var(--cream-70); margin:14px 0 0; max-width:48ch; }
.hp-cta__actions{ flex-shrink:0; }
/* rotating headline — three sentences cross-fade in sequence.
   Grid-stack so the row auto-sizes to the tallest (possibly wrapped)
   sentence; nothing overlaps the sub-paragraph below. */
.hp-cta__rotator{ display:grid; }
.hp-cta__rot{ grid-area:1 / 1; opacity:0; transform:translateY(8px); animation:ctaRot 7.2s cubic-bezier(.22,1,.36,1) infinite; }
.hp-cta__rot:nth-child(1){ animation-delay:0s; }
.hp-cta__rot:nth-child(2){ animation-delay:2.4s; }
.hp-cta__rot:nth-child(3){ animation-delay:4.8s; }
@keyframes ctaRot{
  0%{ opacity:0; transform:translateY(8px); }
  5%{ opacity:1; transform:translateY(0); }
  28%{ opacity:1; transform:translateY(0); }
  34%{ opacity:0; transform:translateY(-8px); }
  100%{ opacity:0; transform:translateY(-8px); }
}
@media(prefers-reduced-motion:reduce){
  .hp-cta__rot{ animation:none; opacity:0; transform:none; }
  .hp-cta__rot:nth-child(1){ opacity:1; }
  .hp-cta__rot:nth-child(2), .hp-cta__rot:nth-child(3){ display:none; }
}

/* ---- Footer tagline (script) ---- */
.site-footer__tagline{ font-family:var(--script); font-weight:400; font-size:clamp(22px,2.4vw,30px); line-height:1; color:#E6D7A6; margin:12px 0 0; }


/* ============================================================
   TANZANIA JOURNEYS listing (Oct 2026) — matches customer
   "Endelea Tanzania Journeys" artifact. Photo hero + 5-step
   process flow + dark-green "Inspiration" band. Scoped .tzp-*.
   ============================================================ */

/* hero bg for the journeys page (elephants, matching the artifact) */
.page-hero--tzj::before{ background-image:url('../assets/tours/tz-journeys-hero.jpg'); background-position:center 60%; }

/* ---- 5-step "How your journey unfolds" interlocking process flow ---- */
.tzp-process__head{ text-align:center; max-width:720px; margin:0 auto; }
.tzp-process__h2{ margin:0; }
.tzp-process__sub{ font-size:15px; line-height:1.6; color:var(--cream-70); margin:14px 0 0; }
.tzp-process__sub em{ font-style:italic; color:#CABB92; }
.tzp-steps{ list-style:none; margin:clamp(40px,5vw,70px) auto 0; padding:0; max-width:1120px; display:grid; grid-template-columns:repeat(5,1fr); gap:0; }
.tzp-step{ position:relative; display:flex; justify-content:center; }
.tzp-step__ring{ position:relative; width:100%; max-width:224px; aspect-ratio:1; }
.tzp-step__ring-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.tzp-step__dots{ fill:none; stroke:rgba(43,39,32,.22); stroke-width:1; stroke-dasharray:0.6 5.2; stroke-linecap:round; }
.tzp-step__arc{ transition:stroke-width .3s var(--ease); }
.tzp-step:hover .tzp-step__arc{ stroke-width:3; }
.tzp-step__content{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 15%; }
.tzp-step__ico{ color:var(--ink-muted); margin-bottom:7px; line-height:0; }
.tzp-step__title{ font-family:var(--serif); font-weight:400; font-size:clamp(17px,1.8vw,22px); line-height:1.05; color:var(--cream); margin:0 0 7px; }
.tzp-step__desc{ font-size:clamp(11.5px,1vw,13px); line-height:1.4; color:var(--cream-70); margin:0; }
.tzp-step__num{ position:absolute; top:50%; right:-13px; transform:translateY(-50%); width:28px; height:28px; border-radius:50%; color:#fff; font-size:11px; font-weight:700; display:grid; place-items:center; box-shadow:0 3px 9px -3px rgba(40,34,20,.7); z-index:2; }
.tzp-step--gold .tzp-step__num{ background:#96763A; }
.tzp-step--green .tzp-step__num{ background:#CABB92; }
.tzp-step--deep .tzp-step__num{ background:#CABB92; }
@media(max-width:980px){ .tzp-steps{ grid-template-columns:repeat(3,1fr); gap:20px 10px; max-width:640px; } }
@media(max-width:620px){ .tzp-steps{ grid-template-columns:repeat(2,1fr); max-width:420px; } }
@media(max-width:400px){ .tzp-steps{ grid-template-columns:1fr; max-width:240px; } }

/* ---- "Inspiration, not a fixed menu" — dark-green band ---- */
.tzp-inspire{ background:#CABB92; color:#EFE9DD; padding-block:clamp(56px,7.5vw,104px); }
.tzp-inspire__inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); align-items:center; }
.tzp-inspire .kicker{ color:#D9B978; }
.tzp-inspire__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(30px,4.8vw,56px); line-height:1.03; letter-spacing:-.01em; color:#F4F0E6; margin:0; }
.tzp-inspire__text{ display:grid; gap:16px; }
.tzp-inspire__text p{ margin:0; font-size:15px; line-height:1.78; color:rgba(239,233,221,.82); max-width:54ch; }
@media(max-width:760px){ .tzp-inspire__inner{ grid-template-columns:1fr; gap:22px; } }

/* ---- "You might also like" on tours → tan band (#F3F0EC) ---- */
.section--forest{ background:#F3F0EC; }
.section--forest .kicker{ color:#5F4A1F !important; }
.section--forest .h2{ color:#2B2720 !important; }
.section--forest .section-head__link{ color:#5F4A1F; border-color:#5F4A1F; }
.section--forest .section-head__link:hover{ color:#9C8B5C; }
.section--forest .tour-card__title{ color:#2B2720 !important; }
.section--forest .tour-card:hover .tour-card__title{ color:#CABB92 !important; }
.section--forest .tour-card__desc{ color:rgba(43,39,32,.68) !important; }
.section--forest .tour-card__cta{ color:#CABB92 !important; }
.section--forest .tag-gold{ color:#5F4A1F !important; }
.section--forest .tag-muted{ color:rgba(43,39,32,.52) !important; }
/* you-might tiles: landscape to match the artifact card photos (was square) */
.section--forest .tour-card__media{ aspect-ratio:16/10; }

/* ============================================================
   FAQ PAGE (Oct 2026) — matches "Endelea FAQ Page" artifact.
   ============================================================ */
.faq-hero::before{ background-image:url('../assets/travel/hero.jpg'); background-position:center 32%; }

/* On this page — chip bar */
.faq-toc{ position:sticky; top:var(--header-h); z-index:40; background:#fff; border-bottom:1px solid var(--line); }
.faq-toc__inner{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); padding-block:13px; overflow-x:auto; scrollbar-width:none; }
.faq-toc__inner::-webkit-scrollbar{ display:none; }
.faq-toc__label{ font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--cream-60); white-space:nowrap; flex-shrink:0; }
.faq-toc__chips{ display:flex; gap:clamp(12px,1.8vw,26px); }
.faq-toc__chip{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:#CABB92; white-space:nowrap; }
.faq-toc__chip:hover{ color:#9C8B5C; }

/* At a glance */
.faq-glance{ background:var(--bg); }
.faq-glance__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px 40px; }
.faq-glance__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,4vw,46px); line-height:1.05; letter-spacing:-.01em; color:var(--cream); margin:0; }
.faq-glance__note{ max-width:44ch; font-size:13.5px; line-height:1.6; color:var(--cream-70); margin:0; }
.faq-glance__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,22px); margin-top:clamp(28px,3vw,42px); }
.faq-stat{ position:relative; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:8px; padding:26px 24px 26px; box-shadow:0 10px 26px -22px rgba(60,55,40,.3); transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
.faq-stat::before{ content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:linear-gradient(90deg,#CABB92,#96763A); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease); }
.faq-stat:hover{ transform:translateY(-5px); box-shadow:0 26px 48px -26px rgba(60,55,40,.45); border-color:transparent; }
.faq-stat:hover::before{ transform:scaleX(1); }
.faq-stat__label{ font-size:10.5px; letter-spacing:.17em; text-transform:uppercase; color:#5F4A1F; margin:0 0 12px; font-weight:600; }
.faq-stat__big{ font-family:var(--serif); font-weight:400; font-size:clamp(32px,3.8vw,46px); line-height:1; color:var(--cream); margin:0 0 12px; }
.faq-stat__sub{ font-size:13px; line-height:1.55; color:var(--cream-70); margin:0; }
@media(max-width:820px){ .faq-glance__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .faq-glance__grid{ grid-template-columns:1fr; } }

/* Category sections — all white, hairline separators */
.faq-cat{ background:var(--bg); border-top:1px solid var(--line); }
.faq-cat.section--alt{ background:var(--bg); }
.faq-cat__grid{ display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.6fr); gap:clamp(26px,5vw,80px); align-items:start; }
.faq-cat__num{ display:inline-block; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#CABB92; font-weight:700; margin:0 0 16px; padding-bottom:9px; border-bottom:2px solid rgba(202, 187, 146,.35); }
.faq-cat__title{ font-family:var(--serif); font-weight:400; font-size:clamp(28px,3.4vw,42px); line-height:1.04; letter-spacing:-.01em; color:var(--cream); margin:0 0 16px; }
.faq-cat__lead{ font-size:14.5px; line-height:1.7; color:var(--cream-70); margin:0; max-width:34ch; }
.faq-cat__link{ margin-top:22px; color:#5F4A1F; }
.faq-cat .faq-cat__intro{ position:sticky; top:calc(var(--header-h) + 64px); }
@media(max-width:860px){ .faq-cat__grid{ grid-template-columns:1fr; gap:26px; } .faq-cat .faq-cat__intro{ position:static; } }

/* Accordion — polished rows with hover plate */
.faq-item{ border-top:1px solid var(--line); border-radius:8px; transition:background .25s var(--ease); }
.faq-cat__items .faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item:hover{ background:rgba(202, 187, 146,.035); }
.faq-item[open]{ background:rgba(202, 187, 146,.045); }
.faq-item__q{ list-style:none; cursor:pointer; position:relative; padding:22px 52px 22px 18px; font-family:var(--serif); font-weight:400; font-size:clamp(16.5px,1.7vw,20px); line-height:1.35; color:var(--cream); transition:color .25s var(--ease); }
.faq-item__q::-webkit-details-marker{ display:none; }
.faq-item__q::after{ content:""; position:absolute; right:16px; top:50%; margin-top:-7px; width:14px; height:14px;
  background:linear-gradient(#8a8372,#8a8372) center/14px 1.6px no-repeat, linear-gradient(#8a8372,#8a8372) center/1.6px 14px no-repeat;
  transition:transform .3s var(--ease), background .3s var(--ease); }
.faq-item[open] .faq-item__q::after{ width:12px; height:12px; margin-top:-6px; background:#CABB92; transform:rotate(45deg); }
.faq-item__q:hover{ color:#CABB92; }
.faq-a{ padding:0 52px 26px 18px; }
.faq-a p{ font-size:14.5px; line-height:1.75; color:var(--cream-70); margin:0 0 12px; max-width:70ch; }
.faq-a p:last-child{ margin-bottom:0; }
.faq-a__list{ margin:0 0 12px; padding:0; list-style:none; display:grid; gap:9px; }
.faq-a__list li{ position:relative; padding-left:20px; font-size:14.5px; line-height:1.6; color:var(--cream-70); max-width:70ch; }
.faq-a__list li::before{ content:""; position:absolute; left:2px; top:9px; width:6px; height:6px; background:#96763A; border-radius:50%; }
.faq-a__list li strong{ color:var(--cream); font-weight:600; }
.faq-a__link{ display:inline-block; margin-top:4px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:#CABB92; border-bottom:1px solid currentColor; padding-bottom:3px; }
.faq-a__link:hover{ color:#9C8B5C; }

/* Travel smart — dark-green band with habit cards */
.faq-smart{ background:#CABB92; color:#EFE9DD; padding-block:clamp(48px,6vw,84px); }
.faq-smart__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:16px 40px; margin-bottom:clamp(26px,3vw,40px); }
.faq-smart .kicker{ color:#DCCB95; }
.faq-smart__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3.6vw,40px); line-height:1.05; color:#F4F0E6; margin:0; }
.faq-smart__note{ max-width:46ch; font-size:13.5px; line-height:1.6; color:rgba(239,233,221,.78); margin:0; }
.faq-smart__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(12px,1.4vw,18px); }
.faq-habit{ border:1px solid rgba(239,233,221,.22); border-radius:3px; padding:20px 18px 22px; }
.faq-habit__n{ font-size:12px; letter-spacing:.14em; color:#DCCB95; font-weight:700; }
.faq-habit__t{ font-family:var(--serif); font-weight:400; font-size:18px; line-height:1.1; color:#F4F0E6; margin:12px 0 9px; }
.faq-habit p{ font-size:12.5px; line-height:1.55; color:rgba(239,233,221,.78); margin:0; }
@media(max-width:900px){ .faq-smart__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .faq-smart__grid{ grid-template-columns:1fr; } }

/* Dishes — white section, cards lift on hover */
.faq-dishes{ background:var(--bg); border-top:1px solid var(--line); }
.faq-dishes.section--alt{ background:var(--bg); }
.faq-dishes__head{ margin-bottom:clamp(24px,3vw,38px); }
.faq-dishes__h2{ font-family:var(--serif); font-weight:400; font-size:clamp(26px,3.6vw,42px); line-height:1.04; letter-spacing:-.01em; color:var(--cream); margin:0; }
.faq-dishes__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.6vw,20px); }
.faq-dish{ position:relative; border:1px solid var(--line); border-radius:8px; padding:24px 22px; background:#FBFAF6; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.faq-dish:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -26px rgba(60,55,40,.4); border-color:rgba(202, 187, 146,.3); }
.faq-dish__t{ font-family:var(--serif); font-weight:400; font-size:20px; line-height:1.1; color:var(--cream); margin:0 0 10px; padding-left:16px; position:relative; }
.faq-dish__t::before{ content:""; position:absolute; left:0; top:4px; bottom:2px; width:3px; border-radius:2px; background:linear-gradient(#CABB92,#96763A); }
.faq-dish p{ font-size:13px; line-height:1.6; color:var(--cream-70); margin:0; }
.faq-dish:nth-child(5){ grid-column:span 2; }
.faq-dish:nth-child(6){ grid-column:span 2; }
@media(max-width:820px){ .faq-dishes__grid{ grid-template-columns:repeat(2,1fr); } .faq-dish:nth-child(5),.faq-dish:nth-child(6){ grid-column:span 1; } }
@media(max-width:460px){ .faq-dishes__grid{ grid-template-columns:1fr; } .faq-dish:nth-child(5),.faq-dish:nth-child(6){ grid-column:span 1; } }

/* FAQ page — alternating section backgrounds: glance tan, then white/tan/white… */
.faq-glance{ background:#F3F0EC !important; }
.faq-cat{ background:#FFFFFF !important; }
.faq-cat.section--alt{ background:#F3F0EC !important; }
.faq-dishes, .faq-dishes.section--alt{ background:#FFFFFF !important; }

/* Kenya Journeys listing hero (stylesheet-relative path so it resolves in all browsers) */
.page-hero--kej::before{ background-image:url('../assets/tours/kenya-journeys-hero.jpg'); background-position:center 42%; }

/* Kenya listing "Inspiration, not a fixed menu" → tan band */
.tzp-inspire--tan{ background:#F3F0EC; color:#2B2720; }
.tzp-inspire--tan .kicker{ color:#5F4A1F; }
.tzp-inspire--tan .tzp-inspire__h2{ color:#2B2720; }
.tzp-inspire--tan .tzp-inspire__text p{ color:rgba(43,39,32,.70); }

/* Tour pages: "your journey" CTA on white */
body.tour-page .cta-strip.hp-cta,
body.safaris-listing .cta-strip.hp-cta{ background:#FFFFFF; border-top:1px solid var(--line); }

/* Safaris mega-menu: single-column tour lists + Travel Info/FAQs foot row */
@media (min-width:1000px){
  .nav__menu.nav__mega--saf{ width:min(720px,78vw) !important; left:50% !important; right:auto !important; transform:translateX(-50%) translateY(6px) !important; }
  .nav__group:hover .nav__menu.nav__mega--saf,
  .nav__group:focus-within .nav__menu.nav__mega--saf,
  .nav__group.is-tapopen .nav__menu.nav__mega--saf{ transform:translateX(-50%) translateY(0) !important; }
  .nav__mega--saf .nav__mega-list{ columns:1; }
  .nav__mega-foot{ grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:8px 24px; border-top:1px solid var(--line); margin-top:8px; padding-top:12px; }
  .nav__mega-foot a{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:#5F4A1F; }
  .nav__mega-foot a:hover{ color:#9C8B5C; }
}

/* Excursions mega-menu: category deep-links */
@media (min-width:1000px){
  .nav__menu.nav__mega--exc{ width:min(520px,66vw) !important; left:50% !important; right:auto !important; transform:translateX(-50%) translateY(6px) !important; grid-template-columns:1fr !important; }
  .nav__group:hover .nav__menu.nav__mega--exc, .nav__group:focus-within .nav__menu.nav__mega--exc, .nav__group.is-tapopen .nav__menu.nav__mega--exc{ transform:translateX(-50%) translateY(0) !important; }
  .nav__mega--exc .nav__mega-list{ columns:2; }
}


/* ============================================================
   TAN BRAND (site-wide): dark/legible content on recolored
   (was dark-green) surfaces, since #CABB92 is a light tan.
   ============================================================ */
/* homepage why-cards */
.hp-wcard{ color:#2B2720; }
.hp-wcard__ico{ background:rgba(43,39,32,.10); color:#5F4A1F; }
.hp-wcard__title{ color:#2B2720; }
.hp-wcard p{ color:rgba(43,39,32,.72); }
/* footer (site-wide) */
.site-footer{ color:rgba(43,39,32,.78); }
.site-footer__logo{ filter:brightness(0); opacity:.82; }
.footcol a{ color:rgba(43,39,32,.80); }
.footcol a:hover{ color:#5F4A1F; }
.footcol__head{ color:#5F4A1F; }
.site-footer__bar{ color:rgba(43,39,32,.62); }
.site-footer__tagline{ color:#5F4A1F; }
.site-footer__social a, .site-footer__social svg{ color:#2B2720; }
/* buttons that were green */
.btn--gold{ --btn-fg:#2B2720; color:#2B2720; }
.btn--gold:hover{ color:#2B2720; }
/* faint tan accents on white -> readable darker tan/khaki */
.kicker{ color:#8A784C; }
.hp-jcard__cta, .hp-sig__all, .link-underline, .tour-card__cta, .hp-wcard__cta{ color:#7E6C3E; }
/* about + travel-info Why cards */
.why-card{ color:#2B2720; }
.why-card__title{ color:#2B2720; }
.why-card p, .why-card li{ color:rgba(43,39,32,.75); }
/* about Mission/Values panels + value cards (were green) */
.mvv2__row--mission .mvv2__panel, .mvv2__row--values .mvv2__panel{ color:#2B2720; }
.ab-mvv__mission, .ab-value{ color:#2B2720; }
.ab-value, .ab-value p{ color:rgba(43,39,32,.78); }
.ab-value__ico{ color:#5F4A1F; border-color:rgba(43,39,32,.3); }
/* tour listing "Inspiration" band (plain tzp-inspire now tan) */
.tzp-inspire{ color:#2B2720; }
.tzp-inspire .kicker{ color:#8A784C; }
.tzp-inspire__h2{ color:#2B2720; }
.tzp-inspire__text p, .tzp-inspire p{ color:rgba(43,39,32,.72); }
/* FAQ travel-smart band (was green) */
.faq-smart{ color:#2B2720; }
.faq-smart .kicker, .faq-smart h2, .faq-smart h3{ color:#2B2720; }
.faq-smart p, .faq-smart li{ color:rgba(43,39,32,.75); }
/* small badges / numbers / icons (white glyph -> dark) */
.tzp-step__num{ color:#2B2720; }
.tourmap__num, .route-pin{ color:#2B2720; }
.xc__badge, .xc__btn{ color:#2B2720; }
.tv-tip svg{ color:#5F4A1F; }
/* WhatsApp floaty (was green) */
.floaty--wa{ color:#2B2720; }

/* ============================================================
   LAUNCH: button + khaki-surface text CONSISTENCY
   Every khaki (#CABB92) button/badge uses DARK text site-wide
   (overrides all earlier white-on-khaki rules, incl. ti-carbon).
   ============================================================ */
.btn--gold,
.btn--gold:hover,
body.ti-carbon .btn--gold,
body.ti-carbon .mobile-menu__foot .btn--gold,
body.ti-carbon .cta-strip__actions .btn--gold{
  --btn-bg:#CABB92 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important;
}
.btn--gold:hover,
body.ti-carbon .btn--gold:hover{ --btn-bg:#B3A478 !important; }
.btn[href*="whatsapp"]{ --btn-bg:#CABB92 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important; }
.tv-country .btn,
body.ti-carbon .tv-country .btn{ --btn-bg:#CABB92 !important; --btn-fg:#2B2720 !important; color:#2B2720 !important; }
.floaty--wa{ color:#2B2720 !important; }
.xc__badge{ color:#2B2720 !important; }
.tourmap__sw.is-active{ color:#2B2720 !important; }
