/* Self-hosted fonts (see fonts/) — no requests to Google Fonts, so visitors' IP addresses aren't sent to Google. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/cormorant-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/manrope-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/manrope-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/manrope-700-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/manrope-700-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/manrope-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --cream:#F8F7F3;
  --sand:#F1E0C8;
  --forest:#2B2019;
  --forest-2:#1C1410;
  --charcoal:#2B2019;
  --olive:#8A7A68;
  --clay:#C1552F;
  --clay-dark:#9C4223;
  --btn-bg:#414A32;
  --btn-bg-hover:#303824;
  --btn-text:#FFFFFF;
  --max:1320px;
  --page-gutter:clamp(20px,4.3vw,64px);
  --page-max:1600px;
  --gap:24px;
  --radius-card:6px;
  --radius-input:4px;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:500;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--charcoal);
  font-family:var(--sans);
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (max-width:600px){
  body{font-size:16px;}
}
img{display:block;width:100%;height:100%;object-fit:cover;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}

.wrap{max-width:var(--max);margin:0 auto;padding:0 40px;}
.eyebrow{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--clay-dark);
  background:var(--sand);
  font-weight:500;
  margin:0 0 20px;
  padding:7px 16px;
  border-radius:999px;
  display:inline-block;
}
.serif{font-family:var(--serif);font-weight:500;}
.section-supertitle{
  font-family:var(--sans);font-weight:400;font-style:italic;
  font-size:clamp(20px,2.4vw,26px);color:var(--olive);
  margin:0 0 40px;
}
.kenya-offer{background:var(--cream);}
.kenya-offer-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.kenya-offer-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-card);}
.kenya-offer-media img{width:100%;height:100%;object-fit:cover;}
.kenya-offer-text h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,44px);line-height:1.15;margin:0 0 32px;color:var(--forest);}
.kenya-offer-list{list-style:none;margin:0;padding:0;}
.kenya-offer-list li{font-size:17px;color:var(--olive);line-height:1.6;padding:16px 0;border-top:1px solid rgba(43,32,25,.12);}
.kenya-offer-list li:last-child{border-bottom:1px solid rgba(43,32,25,.12);}
@media (max-width:900px){
  .kenya-offer-grid{grid-template-columns:1fr;gap:32px;}
  .kenya-offer-media{aspect-ratio:4/3;}
}
.serif-italic{font-family:var(--sans);font-style:italic;font-weight:400;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:17px 32px;
  font-size:15px;
  font-weight:500;
  letter-spacing:.01em;
  border-radius:999px;
  border:1px solid transparent;
  transition:background 200ms ease, color 200ms ease, border-color 200ms ease;
  white-space:nowrap;
}
.btn-primary{background:var(--btn-bg);color:var(--btn-text);}
.btn-primary:hover{background:var(--btn-bg-hover);}
.btn-arrow{transition:transform .35s ease;font-size:14px;}
.btn:hover .btn-arrow{transform:translateX(4px);}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:21px 0;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:padding .4s ease, background-color .25s ease, border-color .25s ease, backdrop-filter .25s ease, box-shadow .25s ease;
}
.site-header .wrap{display:flex;align-items:center;justify-content:flex-end;position:relative;}
.site-header--tour .wrap{justify-content:space-between;}
.header-back{
  font-family:var(--sans);font-size:16px;font-weight:500;
  color:#FFFFFF;text-decoration:none;white-space:nowrap;
  transition:color .3s ease;
}
.header-back:hover{text-decoration:underline;}
.site-header.is-scrolled .header-back{color:var(--forest);}
.site-header.is-scrolled{
  padding:16px 0;
  background:rgba(250,249,246,.96);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom-color:rgba(30,25,20,.06);
  box-shadow:none;
}
.logo{
  font-family:var(--serif);
  font-weight:500;
  font-size:17px;
  letter-spacing:.01em;
  color:var(--cream);
  transition:color .4s ease;
  white-space:nowrap;
}
.site-header.is-scrolled .logo{color:var(--forest);}
.nav-links{
  display:flex;align-items:center;gap:28px;
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  padding:11px 24px;
  border-radius:999px;
  background:rgba(35,30,25,.18);
  backdrop-filter:blur(14px) saturate(115%);
  -webkit-backdrop-filter:blur(14px) saturate(115%);
  border:1px solid rgba(255,255,255,.20);
  box-shadow:0 4px 24px rgba(0,0,0,.06);
  transition:background-color .25s ease, border-color .25s ease, backdrop-filter .25s ease, box-shadow .25s ease, padding .25s ease;
}
.nav-links a,.nav-links .nav-trigger{
  font-family:var(--sans);
  font-size:18px;
  font-weight:500;
  letter-spacing:-.01em;
  line-height:1;
  color:#FFFFFF;
  border-radius:4px;
  padding:4px 6px;
  margin:-4px -6px;
  transition:background-color .22s ease, color .25s ease;
  position:relative;
  white-space:nowrap;
}
.nav-trigger{display:inline-block;background:none;border:none;cursor:pointer;font:inherit;}
.nav-links a:hover,.nav-links .nav-trigger:hover{color:#FFFFFF;background:rgba(255,255,255,.12);}
.site-header.is-scrolled .nav-links{
  padding:11px 0;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:1px solid transparent;
  border-radius:0;
  box-shadow:none;
}
.site-header.is-scrolled .nav-links a,.site-header.is-scrolled .nav-links .nav-trigger{color:var(--forest);}
.site-header.is-scrolled .nav-links a:hover,.site-header.is-scrolled .nav-links .nav-trigger:hover{background:rgba(43,32,25,.06);}

.nav-item-dropdown{position:relative;display:flex;align-items:center;}
.nav-item-dropdown::after{
  content:'';position:absolute;top:100%;left:-6px;
  width:300px;height:16px;
}
.nav-dropdown{
  position:absolute;top:calc(100% + 16px);left:-6px;
  transform:translateY(-6px);
  min-width:300px;
  background:#FAF9F6;
  border:1px solid rgba(40,30,20,.08);
  border-radius:6px;
  padding:14px 0;
  box-shadow:0 8px 24px rgba(30,30,25,.06);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:10;
  text-align:left;
}
.nav-item-dropdown.is-open .nav-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateY(0);
}
.nav-dropdown-group + .nav-dropdown-group{margin-top:10px;padding-top:10px;border-top:1px solid rgba(40,30,20,.08);}
.nav-dropdown-label{
  display:block;font-family:var(--sans);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--olive);
  padding:4px 20px 8px;
}
.nav-dropdown .nav-dropdown-link{
  display:block;
  font-family:var(--sans);font-size:16px;font-weight:400;line-height:1.3;
  letter-spacing:normal;white-space:normal;
  color:var(--forest);
  padding:9px 20px;
  margin:0;
  border-radius:0;
  opacity:1;
  transition:background .2s ease,color .2s ease;
}
.nav-dropdown .nav-dropdown-link.is-primary{font-weight:600;}
.nav-dropdown .nav-dropdown-link:hover{background:rgba(138,122,104,.12);color:var(--olive);}
.nav-dropdown .nav-dropdown-link:focus-visible{background:rgba(138,122,104,.12);color:var(--olive);outline:none;}

.header-cta{display:flex;align-items:center;gap:28px;}
.header-link{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--sans);
  font-size:13px;font-weight:500;color:var(--btn-text);
  background:var(--btn-bg);
  padding:12px 20px;border-radius:999px;
  transition:background 200ms ease, color 200ms ease;
}
.header-link:hover{background:var(--btn-bg-hover);}
.header-link .btn-arrow{transition:transform .35s ease;}
.header-link:hover .btn-arrow{transform:translateX(4px);}
.burger{
  display:none;
  width:26px;height:20px;position:relative;background:none;border:none;padding:0;
}
.burger span{
  position:absolute;left:0;right:0;height:1px;background:var(--cream);
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));
  transition:transform .3s ease, opacity .3s ease, background .4s ease, filter .4s ease;
}
.site-header.is-scrolled .burger span{background:var(--forest);filter:none;}
.burger span:nth-child(1){top:0;}
.burger span:nth-child(2){top:50%;transform:translateY(-50%);}
.burger span:nth-child(3){bottom:0;}

.mobile-menu{
  position:fixed;inset:0;z-index:99;
  background:var(--forest);
  display:flex;flex-direction:column;
  justify-content:center;
  padding:40px;
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu a{
  color:var(--cream);
  font-family:var(--serif);
  font-weight:500;
  font-size:34px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.mobile-menu-accordion{border-bottom:1px solid rgba(255,255,255,.15);}
.mobile-menu-accordion-trigger{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;background:none;border:none;padding:8px 0;
  color:var(--cream);font-family:var(--sans);font-weight:500;font-size:34px;
  text-align:left;cursor:pointer;
}
.mobile-menu-accordion-icon{position:relative;width:20px;height:20px;flex:none;}
.mobile-menu-accordion-icon::before,.mobile-menu-accordion-icon::after{
  content:'';position:absolute;left:2px;right:2px;top:50%;height:1px;background:var(--cream);
  transition:transform .3s ease;
}
.mobile-menu-accordion-icon::after{transform:rotate(90deg);}
.mobile-menu-accordion.is-open .mobile-menu-accordion-icon::after{transform:rotate(0deg);}
.mobile-menu-accordion-panel{
  max-height:0;overflow:hidden;
  transition:max-height .4s cubic-bezier(.4,0,.2,1);
}
.mobile-menu-accordion-panel a{
  display:block;color:var(--cream);opacity:.8;
  font-family:var(--sans);font-weight:500;font-size:19px;
  padding:10px 0 10px 4px;border-bottom:none;
}
.mobile-menu-accordion-panel a.is-primary{font-weight:700;opacity:1;}
.mobile-menu-group-label{
  display:block;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:rgba(248,247,243,.5);
  padding:16px 0 4px 4px;
}
.mobile-menu-group-label:first-child{padding-top:4px;}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  padding-top:110px;
  display:flex;
  align-items:stretch;
  overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0;background:var(--forest-2);}
.hero-media-zoom{position:absolute;inset:0;transform:scale(1.1);transform-origin:center 95%;}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;will-change:transform;}
.hero-media video{filter:contrast(1.16) saturate(1.18) brightness(0.97);}
@media (max-width:600px){
  .hero-media-zoom{transform:scale(1.09);transform-origin:center 90%;}
}
.hero-media::after{
  content:'';position:absolute;inset:0;z-index:2;
  background:
    radial-gradient(ellipse 55% 45% at 50% 52%, rgba(20,15,10,.18) 0%, rgba(20,15,10,0) 72%),
    linear-gradient(180deg, rgba(35,25,18,.3) 0%, rgba(35,25,18,.12) 12%, rgba(35,25,18,.03) 28%, rgba(35,25,18,0) 42%);
}
.hero-content{
  position:relative;z-index:1;
  width:100%;
  padding-bottom:0;
  color:var(--cream);
  display:flex;
  flex-direction:column;
}
.hero-content .wrap{max-width:640px;margin:0 auto;text-align:center;position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding-bottom:clamp(32px,10vh,100px);}
@media (min-width:901px){
  .hero-content .wrap{padding-bottom:calc(clamp(32px,10vh,100px) + 26px);}
}
.hero-eyebrow{
  display:block;
  color:var(--cream);
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  opacity:.95;font-weight:500;margin-bottom:26px;
  text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.hero-rule{display:block;width:40px;height:1px;background:rgba(255,255,255,.5);margin:0 auto 26px;}
.hero-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(38px,5.4vw,64px);
  line-height:1.06;
  margin:0 0 24px;
  max-width:640px;
  letter-spacing:-.04em;
  text-shadow:0 4px 34px rgba(0,0,0,.55),0 2px 10px rgba(0,0,0,.5);
}
.hero-title em{font-style:italic;color:var(--sand);}
.hero-sub{
  max-width:520px;
  margin:0 0 36px;
  font-size:17px;
  line-height:1.6;
  opacity:.95;
  text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.hero-price{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:8px 0 32px;text-shadow:0 2px 14px rgba(0,0,0,.5);}
.hp-amount{font-family:var(--sans);font-weight:500;font-size:clamp(32px,4.4vw,48px);color:var(--cream);}
.hp-unit{font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--sand);opacity:.85;}
.kenya-price{display:flex;align-items:baseline;gap:14px;margin:22px 0 4px;}
.kenya-price-amount{font-family:var(--sans);font-weight:500;font-size:clamp(44px,6.4vw,68px);color:var(--forest);line-height:1;}
.kenya-price-unit{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--olive);}
.hero-caption{font-size:13px;font-style:italic;opacity:.7;margin:18px 0 0;text-shadow:0 2px 10px rgba(0,0,0,.5);}
.hero-secondary{font-family:var(--sans);font-weight:400;font-size:16px;font-style:italic;opacity:.6;margin:14px 0 0;text-shadow:0 2px 10px rgba(0,0,0,.5);}

/* ---------- Post-hero strip ---------- */
.strip{background:var(--cream);text-align:center;padding-top:100px;padding-bottom:100px;}
.strip-title{font-size:clamp(24px,3vw,34px);font-weight:500;color:var(--forest);margin:0 0 14px;}
.strip-sub{font-size:16px;color:var(--olive);margin:0;}
@media (max-width:900px){.strip{padding-top:64px;padding-bottom:64px;}}

/* ---------- Intro editorial (post-hero) ---------- */
.intro-editorial{background:var(--cream);}
.intro-editorial-grid{
  display:grid;
  grid-template-columns:minmax(180px,22%) minmax(0,1fr);
  column-gap:14%;
  align-items:start;
}
.intro-editorial-label{
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(12px,.9vw,13px);
  letter-spacing:.18em;
  line-height:1.45;
  text-transform:uppercase;
  color:var(--olive);
}
.intro-editorial-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(48px,4vw,64px);
  line-height:1;
  letter-spacing:-.04em;
  margin:0 0 28px;
}
.intro-editorial-title .is-dark{color:var(--forest);}
.intro-editorial-title .is-muted{color:var(--olive);}
.intro-editorial-text{
  font-family:var(--sans);
  font-size:clamp(17px,1vw,18px);
  line-height:1.58;
  color:var(--olive);
  max-width:720px;
  margin:0;
}
.intro-editorial-divider{
  margin:96px 0 0;
  border:none;
  border-top:1px solid rgba(43,32,25,.12);
}
.intro-editorial.section-pad{padding-top:96px;padding-bottom:0;}
.route-visual.section-pad{padding-top:72px;padding-bottom:40px;}
.scenarios.section-pad{padding-top:48px;padding-bottom:56px;}
@media (max-width:900px){
  .intro-editorial.section-pad{padding-top:56px;padding-bottom:0;}
  .route-visual.section-pad{padding-top:48px;padding-bottom:32px;}
  .scenarios.section-pad{padding-top:32px;padding-bottom:40px;}
}
@media (max-width:768px){
  .intro-editorial-grid{grid-template-columns:1fr;column-gap:0;row-gap:32px;}
  .intro-editorial-label{margin-bottom:0;}
  .intro-editorial-title{font-size:clamp(38px,10vw,44px);margin:0 0 20px;}
  .intro-editorial-divider{margin-top:56px;}
}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:0;}
.hero-countries{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:13px;letter-spacing:.03em;opacity:.85;
  flex-wrap:wrap;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}
@media (max-width:600px){
  .hero{padding-top:96px;}
  .hero-eyebrow{font-size:11px;margin-bottom:18px;}
  .hero-title{font-size:clamp(30px,8.4vw,40px);line-height:1.14;margin-bottom:18px;}
  .hero-sub{font-size:15px;line-height:1.5;margin-bottom:26px;}
  .hero-actions{margin-bottom:24px;}
  .hero-countries{font-size:12px;row-gap:6px;}
}
.scroll-cue{
  position:absolute;right:40px;bottom:40px;z-index:1;
  color:var(--cream);opacity:.75;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}
.scroll-cue .line{width:1px;height:38px;background:currentColor;opacity:.5;animation:cue 2.2s ease-in-out infinite;}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top;}45%{transform:scaleY(1);transform-origin:top;}55%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* ---------- Emotion ---------- */
.emotion-split{background:var(--cream);}
.emotion-split.section-pad{padding:132px 0;}
.emotion-grid{display:grid;grid-template-columns:.47fr .53fr;gap:80px;align-items:center;}
.emotion-text-col{max-width:560px;}
.emotion-label{
  display:block;
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--clay-dark);
  line-height:1.5;
  margin:0 0 28px;
}
.emotion-heading{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(54px,4vw,72px);
  line-height:1.0;
  letter-spacing:-.045em;
  color:var(--forest);
  margin:0 0 28px;
}
.emotion-serif-line{
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(40px,4vw,56px);
  line-height:1;
  color:var(--clay-dark);
  margin:0;
}
.emotion-media-col{display:flex;flex-direction:column;}
.emotion-photo{width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-card);}
.emotion-photo img{width:100%;height:100%;object-fit:cover;}
@media (max-width:900px){
  .emotion-split.section-pad{padding:80px 0;}
  .emotion-grid{grid-template-columns:1fr;gap:36px;}
  .emotion-text-col{max-width:none;}
  .emotion-heading{font-size:clamp(42px,10vw,48px);}
  .emotion-serif-line{font-size:clamp(38px,9vw,44px);}
  .emotion-photo{aspect-ratio:4/3;}
}

/* ---------- Section skeleton ---------- */
section{position:relative;}
.section-pad{padding:100px 0;}
@media (max-width:900px){.section-pad{padding:64px 0;}}

/* ---------- Editorial intro ---------- */
.editorial{background:var(--cream);}
.editorial-grid{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:0 64px;
  align-items:center;
}
.editorial-text{max-width:400px;}
.editorial-title{
  font-size:clamp(36px,4.4vw,54px);
  line-height:1.04;
  margin:0 0 26px;
}
.editorial-text p{font-size:17px;color:var(--olive);margin:0 0 26px;}
.editorial-link{
  font-size:14px;letter-spacing:.02em;color:var(--forest);
  display:inline-flex;align-items:center;gap:8px;
  border-bottom:1px solid rgba(43,32,25,.3);padding-bottom:3px;
  transition:opacity .3s ease;
}
.editorial-link:hover{opacity:.6;}
.editorial-media-wrap{display:flex;flex-direction:column;gap:22px;}
.editorial-media{position:relative;padding-right:14%;}
.editorial-media .img-main{
  aspect-ratio:4/3.1;
  border-radius:var(--radius-card);
  overflow:hidden;
}
.editorial-media .img-detail{
  position:absolute;
  width:34%;
  aspect-ratio:1/1;
  left:-10%;
  bottom:-15%;
  border:8px solid var(--cream);
  overflow:hidden;
  box-shadow:0 24px 60px rgba(43,32,25,.18);
  z-index:1;
}
.editorial-media .img-detail-2{
  position:absolute;
  width:30%;
  aspect-ratio:4/3;
  right:0;
  top:-12%;
  border:8px solid var(--cream);
  overflow:hidden;
  box-shadow:0 18px 44px rgba(43,32,25,.16);
}
.editorial-quote{
  font-family:var(--sans);font-style:italic;font-weight:500;
  font-size:19px;line-height:1.45;color:var(--forest);
  max-width:320px;margin:0 0 0 auto;text-align:right;
  padding-top:8px;border-top:1px solid rgba(43,32,25,.15);
}
@media (max-width:900px){
  .editorial-grid{grid-template-columns:1fr;gap:80px;}
  .editorial-media-wrap{order:-1;margin-top:32px;}
  .editorial-text{max-width:none;}
  .editorial-media{padding-right:12%;}
  .editorial-media .img-detail{left:auto;right:20px;bottom:-14%;width:42%;}
  .editorial-media .img-detail-2{top:-6%;width:34%;}
  .editorial-quote{text-align:left;margin:0;}
}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal-delay-1.is-visible{transition-delay:.1s;}
.reveal-delay-2.is-visible{transition-delay:.2s;}
.reveal-delay-3.is-visible{transition-delay:.3s;}

/* ---------- Kenya formats (typographic cards) ---------- */
.kenya-formats-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:24px;
  margin-bottom:48px;
}
.kenya-formats-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(48px,4vw,56px);
  line-height:1;
  letter-spacing:-.035em;
  color:var(--forest);
  margin:14px 0 0;
}
@media (max-width:768px){
  .kenya-formats-top{flex-direction:column;align-items:flex-start;gap:16px;}
}

/* ---------- Kenya routes — luxury editorial cards ---------- */
.kenya-routes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:44px;
  margin-bottom:0;
}
.kenya-route{
  display:flex;
  flex-direction:column;
  color:inherit;
}
.kenya-route-media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-card);}
.kenya-route-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.kenya-route:hover .kenya-route-media img{transform:scale(1.035);}
.kenya-route-info{
  display:flex;
  flex-direction:column;
  padding-top:22px;
}
.kenya-route-tag{
  font-family:var(--sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:10px;
}
.kenya-route-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(24px,2vw,28px);
  line-height:1.12;
  letter-spacing:-.02em;
  color:var(--forest);
  margin:0 0 10px;
}
.kenya-route-desc{
  font-family:var(--sans);
  font-size:14.5px;
  line-height:1.55;
  color:var(--olive);
  margin:0 0 20px;
  max-width:36ch;
}
.kenya-route-bottom{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding-top:16px;
  border-top:1px solid rgba(43,32,25,.1);
  margin-bottom:16px;
}
.kenya-route-meta{font-family:var(--sans);font-size:13px;color:var(--olive);}
.kenya-route-price{font-family:var(--sans);font-weight:500;font-size:17px;color:var(--forest);white-space:nowrap;}
.kenya-route-price small{font-weight:400;font-size:12px;color:var(--olive);margin-left:4px;}
.kenya-route-link{
  display:inline-flex;align-items:center;gap:5px;
  font-family:var(--sans);font-weight:500;font-size:14px;
  color:var(--forest);
  width:fit-content;
  transition:color .25s ease;
}
.kenya-route-arrow{display:inline-block;transition:transform .3s ease;}
.kenya-route:hover .kenya-route-link{color:var(--btn-bg);}
.kenya-route:hover .kenya-route-arrow{transform:translate(2px,-2px);}

@media (max-width:900px){
  .kenya-routes{grid-template-columns:1fr;gap:40px;}
  .kenya-formats-title{font-size:clamp(38px,11vw,46px);line-height:1;}
}

/* ---------- Scenarios ---------- */
.scenarios{background:var(--cream);}
.scenarios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.scenarios-card{aspect-ratio:4/3;}
.dest-card-arrow{
  position:absolute;top:20px;right:20px;z-index:2;
  color:var(--cream);font-size:18px;line-height:1;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
}
@media (max-width:1024px){
  .scenarios-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .scenarios-grid{grid-template-columns:1fr;}
}
.dest-mosaic{display:flex;flex-direction:column;gap:24px;}
.dest-card-row{display:flex;gap:24px;align-items:flex-start;}
.dest-card{
  position:relative;overflow:hidden;border-radius:var(--radius-card);
  background:var(--forest-2);
  box-shadow:0 16px 40px rgba(43,32,25,.16);
  display:flex;align-items:flex-end;
  transition:transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s cubic-bezier(.16,1,.3,1);
}
.dest-card:hover{transform:translateY(-6px);box-shadow:0 26px 52px rgba(43,32,25,.26);}
.dest-card-lg{aspect-ratio:1.6/1;}
.dest-card-wide{aspect-ratio:21/9;}
.dest-card-row .dest-card-lg{flex:1;}
.dest-card-row .dest-card-sm{flex:1;aspect-ratio:1/1;}
.dest-card-row .dest-card-short{aspect-ratio:1.7/1;flex:1;}
.dest-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1);}
.dest-card:hover img{transform:scale(1.07);}
.dest-card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,20,16,0) 0%,rgba(28,20,16,0) 52%,rgba(28,20,16,.5) 100%);
  transition:background .5s ease;
}
.dest-card:hover::after{background:linear-gradient(180deg,rgba(28,20,16,.02) 0%,rgba(28,20,16,.46) 100%);}
.dest-card-plain::after{background:none;}
.why-kenya-mosaic{margin-top:8px;}
.dest-card-placeholder{background:#F8EFE2;}
.dest-card-ph{
  position:absolute;top:34%;left:50%;transform:translate(-50%,-50%);
  width:15%;max-width:56px;color:rgba(43,32,25,.22);
}
.dest-card-placeholder::after{background:none;}
.dest-card-overlay{
  position:relative;z-index:1;width:100%;
  padding:36px;text-align:center;color:var(--cream);
}
.dest-card-placeholder .dest-card-overlay{color:var(--charcoal);}
.dest-card-overlay h3{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(26px,3.2vw,40px);
  text-transform:uppercase;letter-spacing:.02em;
  margin:0;text-shadow:0 2px 14px rgba(0,0,0,.35);
}
.dest-card-placeholder .dest-card-overlay h3{text-shadow:none;}
.dest-card-overlay p{
  margin:10px 0 0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  opacity:.9;text-shadow:0 2px 10px rgba(0,0,0,.35);
}
@media (max-width:900px){
  .dest-card-row{flex-direction:column;}
  .dest-card-row .dest-card-sm{aspect-ratio:16/10;}
  .dest-card-lg{aspect-ratio:4/3;}
  .dest-card-wide{aspect-ratio:4/3;}
}
.route-facts{justify-content:flex-start;color:var(--olive);opacity:1;text-shadow:none;margin-top:20px;font-size:13px;}
.section-head{max-width:640px;margin-bottom:72px;}
.section-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4.4vw,56px);line-height:1.08;margin:0;}
.section-head p{font-size:17px;line-height:1.55;color:var(--olive);margin:22px 0 0;max-width:520px;}
.section-head-center{max-width:none;text-align:center;margin-left:auto;margin-right:auto;}
.section-head-center p{margin-left:auto;margin-right:auto;}

/* ---------- Other destinations (interactive) ---------- */
.dest-interactive-top{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;
  gap:24px;margin-top:28px;margin-bottom:44px;
}
.dest-interactive-title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(48px,4vw,56px);
  line-height:1;letter-spacing:-.035em;
  color:var(--forest);margin:14px 0 0;
}
.dest-interactive-kicker{
  font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--olive);
  margin:0;text-align:right;max-width:260px;
}
.dest-interactive-grid{display:grid;grid-template-columns:.66fr .34fr;gap:56px;align-items:stretch;}

.dest-interactive-visual{position:relative;overflow:hidden;border-radius:var(--radius-card);aspect-ratio:4/3;}
.dest-interactive-visual img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:1;
  transition:opacity .38s ease;
}
.dest-interactive-visual.is-swapping img{opacity:0;}
.dest-interactive-visual img.is-corrected{filter:brightness(.98) contrast(.96) saturate(.90);}
.dest-visual-scrim{
  position:absolute;left:0;right:0;bottom:0;height:55%;
  background:linear-gradient(180deg,rgba(20,14,10,0) 0%,rgba(20,14,10,.62) 100%);
  pointer-events:none;
}
.dest-visual-scrim.is-soft{
  background:linear-gradient(to top,rgba(20,15,10,.55) 0%,rgba(20,15,10,.18) 35%,rgba(20,15,10,0) 60%);
}
.dest-visual-caption{position:absolute;left:40px;right:40px;bottom:36px;z-index:1;}
.dest-visual-title{
  font-family:var(--serif);font-weight:500;color:#fff;
  font-size:clamp(36px,3vw,46px);line-height:1.08;margin:0 0 10px;
  text-shadow:0 2px 14px rgba(0,0,0,.3);
}
.dest-visual-desc{font-family:var(--sans);font-size:17px;line-height:1.5;color:rgba(255,255,255,.88);margin:0 0 18px;max-width:420px;}
.dest-visual-desc:empty{display:none;}
.dest-visual-cta{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--sans);font-weight:500;font-size:15px;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px;
}

.dest-interactive-list{display:flex;flex-direction:column;justify-content:center;margin-top:-12px;}
.dest-list-label{
  display:block;font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--clay-dark);margin:0 0 20px;
}
.dest-list{display:flex;flex-direction:column;}
.dest-list-item{
  position:relative;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;background:none;border:none;border-top:1px solid rgba(43,32,25,.14);
  padding:24px 0;font:inherit;text-align:left;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.dest-list-item:last-child{border-bottom:1px solid rgba(43,32,25,.14);}
.dest-list-name{
  display:inline-block;
  font-family:var(--sans);font-size:21px;font-weight:500;color:var(--forest);
  transition:color .28s ease,transform .28s ease;
}
.dest-list-item:hover .dest-list-name{color:var(--forest-2);transform:translateX(3px);}
.dest-list-item.is-active{border-top-color:rgba(43,32,25,.3);}
.dest-list-item.is-active .dest-list-name{font-weight:500;color:var(--forest-2);}
.dest-list-item.is-active::before{
  content:'';
  position:absolute;
  left:-16px;top:50%;
  transform:translateY(-50%);
  width:2px;height:44px;
  background:var(--clay-dark);
}
.dest-list-item:focus-visible{outline:2px solid var(--clay-dark);outline-offset:4px;}

@media (max-width:900px){
  .dest-interactive-grid{grid-template-columns:1fr;gap:32px;}
  .dest-interactive-top{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:32px;}
  .dest-interactive-kicker{text-align:left;max-width:none;}
}
@media (max-width:768px){
  .dest-interactive-title{font-size:clamp(38px,11vw,46px);line-height:1;}
}
@media (max-width:600px){
  .dest-visual-caption{left:22px;right:22px;bottom:22px;}
  .dest-visual-title{font-size:clamp(24px,7vw,30px);}
  .dest-visual-desc{max-width:none;}
  .dest-list-name{font-size:17px;}
}
.scenario-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px 28px;
}
.scenario-card{display:block;color:var(--charcoal);}
.scenario-media{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  border-radius:var(--radius-card);
  margin-bottom:22px;
}
.scenario-media img{transition:transform 1.3s cubic-bezier(.16,1,.3,1);}
.scenario-card:hover .scenario-media img{transform:scale(1.06);}
.scenario-num{
  position:absolute;top:18px;left:18px;z-index:1;
  font-family:var(--sans);font-style:italic;font-weight:500;
  font-size:16px;color:var(--cream);
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.scenario-card h3{font-family:var(--serif);font-weight:500;font-size:24px;margin:0 0 10px;line-height:1.12;}
.scenario-card p{font-size:14px;line-height:1.55;color:var(--olive);margin:0 0 16px;}
.scenario-link{font-size:16px;color:var(--forest);display:inline-block;transition:transform .3s ease;}
.scenario-card:hover .scenario-link{transform:translateX(5px);}
@media (max-width:1080px){.scenario-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.scenario-grid{grid-template-columns:1fr;}}

/* ---------- Kenya product block (main offer) ---------- */
.kenya-product-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(48px,4vw,56px);
  line-height:1;
  letter-spacing:-.035em;
  color:var(--forest);
  margin:0 0 44px;
}
.kenya-product-grid{
  display:grid;
  grid-template-columns:55% 45%;
  box-shadow:0 20px 48px rgba(43,32,25,.1);
  border-radius:var(--radius-card);
  overflow:hidden;
}
.kenya-product-media{position:relative;aspect-ratio:1.1549;overflow:hidden;}
.kenya-product-media img{width:100%;height:100%;object-fit:cover;object-position:center bottom;filter:brightness(.96) contrast(1.06) saturate(.92);}
.kenya-product-media::after{content:'';position:absolute;inset:0;background:var(--sand);opacity:.035;pointer-events:none;}
.kenya-product-info{
  background:#F8EFE2;
  padding:36px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.kenya-product-info-text{
  font-family:var(--sans);
  font-weight:400;
  font-size:17px;
  line-height:1.6;
  color:var(--olive);
  max-width:440px;
  margin:0 0 32px;
}
.kenya-product-route-label{
  display:block;
  font-family:var(--sans);
  font-weight:500;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--clay-dark);
  margin:0 0 8px;
}
.kenya-product-route{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.4;
  color:var(--olive);
  white-space:normal;
  margin:0 0 28px;
}
.kenya-product-divider{height:1px;background:rgba(43,32,25,.12);margin:0 0 26px;}
.kenya-product-params-row{
  display:flex;
  align-items:baseline;
  gap:16px;
  margin:0 0 28px;
}
.kenya-product-params-divider{
  align-self:center;
  width:1px;
  height:18px;
  background:rgba(43,32,25,.14);
}
.kenya-product-duration{
  font-family:var(--sans);
  font-weight:500;
  font-size:18px;
  color:var(--forest);
  margin:0;
}
.kenya-product-price-group{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.kenya-product-price{
  font-family:var(--sans);
  font-weight:500;
  font-size:clamp(34px,3.2vw,44px);
  color:var(--forest);
  white-space:nowrap;
}
.kenya-product-price-unit{
  font-family:var(--sans);
  font-size:14px;
  color:var(--olive);
  white-space:nowrap;
}
.kenya-product-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:fit-content;
  height:52px;
  padding:0 32px;
  border:1px solid var(--btn-bg);
  border-radius:999px;
  background:var(--btn-bg);
  color:var(--btn-text);
  font-family:var(--sans);
  font-weight:500;
  font-size:15px;
  transition:background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.kenya-product-cta:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);}
.kenya-product-cta .btn-arrow{transition:transform .28s ease;}
.kenya-product-cta:hover .btn-arrow{transform:translateX(3px);}
@media (max-width:1024px) and (min-width:769px){
  .kenya-product-info{padding:40px 32px;}
}
@media (max-width:768px){
  .kenya-product-title{font-size:clamp(38px,11vw,46px);line-height:1;margin:0 0 32px;}
  .kenya-product-grid{grid-template-columns:1fr;}
  .kenya-product-info{padding:32px 24px;}
  .kenya-product-info-text{font-size:16px;}
  .kenya-product-params-row{flex-direction:column;align-items:flex-start;gap:10px;}
  .kenya-product-params-divider{display:none;}
  .kenya-product-cta{width:100%;}
}

/* ---------- Route visual (day timeline) ---------- */
.route-visual{background:var(--cream);}
.route-visual .wrap{max-width:1480px;}
#safaris .wrap,.scenarios .wrap{max-width:1200px;padding:0 32px;}
.kenya-facts-line{font-size:16px;color:var(--olive);margin:0 0 48px;}
.kenya-hero-grid{display:flex;flex-direction:column;margin-bottom:88px;}
.kenya-hero-media{width:100%;aspect-ratio:21/9;overflow:hidden;border-radius:var(--radius-card);box-shadow:0 20px 48px rgba(43,32,25,.16);transition:box-shadow .5s ease;}
.kenya-hero-media:hover{box-shadow:0 28px 60px rgba(43,32,25,.24);}
.kenya-hero-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1);}
.kenya-hero-media:hover img{transform:scale(1.05);}
.kenya-hero-card{
  background:var(--cream);color:var(--charcoal);
  padding:0 0 44px;display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;
}
.kenya-hero-card .eyebrow{margin:0 auto 18px;}
.kenya-hero-card h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(44px,5.4vw,68px);line-height:1.08;
  margin:0 0 18px;color:var(--forest);
}
.kenya-hero-card .kenya-facts-line{font-size:18px;margin:0 0 6px;}
.kenya-hero-card-amount{font-family:var(--sans);font-weight:500;font-size:clamp(28px,3vw,36px);display:block;margin:0 0 6px;color:var(--forest);}
.kenya-hero-card-amount .amount-unit{font-family:var(--sans);font-weight:400;font-size:15px;color:var(--olive);letter-spacing:.01em;}
.kenya-hero-desc{font-size:16px;color:var(--olive);line-height:1.5;margin:0 auto 32px;max-width:420px;}
.kenya-hero-card-list{list-style:none;margin:0 0 36px;padding:0;}
.kenya-hero-card-list li{font-size:16px;padding:14px 0;border-top:1px solid rgba(43,32,25,.12);opacity:.85;}
.kenya-hero-card-list li:last-child{border-bottom:1px solid rgba(43,32,25,.12);}
.kenya-hero-card .btn{align-self:center;}
@media (max-width:900px){
  .kenya-hero-media{aspect-ratio:4/3;}
  .kenya-hero-grid{margin-bottom:56px;}
}


/* ---------- Page hero (sub-page intro, photo as backdrop) ---------- */
.page-hero{
  position:relative;
  min-height:100svh;
  padding-top:140px;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.page-hero-media{position:absolute;inset:0;z-index:0;background:var(--forest-2);}
.page-hero-media img{width:100%;height:100%;object-fit:cover;}
.page-hero-media::after{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse at center, rgba(20,14,11,.32) 0%, rgba(20,14,11,.2) 45%, rgba(20,14,11,.4) 100%),
    linear-gradient(180deg,rgba(20,14,11,.2) 0%,rgba(20,14,11,.14) 45%,rgba(20,14,11,.4) 100%);
}
.page-hero-content{position:relative;z-index:1;width:100%;padding-bottom:64px;}
.page-hero-content .wrap{max-width:640px;margin:0 auto;text-align:center;}
.page-hero-content h1,
.page-hero-content h2{
  font-family:var(--serif);font-weight:500;color:var(--cream);
  font-size:clamp(38px,4.6vw,60px);line-height:1.1;
  margin:0 0 18px;text-shadow:0 4px 28px rgba(0,0,0,.65),0 2px 8px rgba(0,0,0,.6);
}
.page-hero-content .kenya-facts-line{color:var(--cream);opacity:.95;text-shadow:0 2px 12px rgba(0,0,0,.7),0 1px 4px rgba(0,0,0,.6);}
.page-hero-content .kenya-hero-card-amount{color:var(--cream);text-shadow:0 2px 12px rgba(0,0,0,.7),0 1px 4px rgba(0,0,0,.6);}
.page-hero-content .kenya-hero-card-amount .amount-unit{color:rgba(255,255,255,.85);}
.page-hero-content .kenya-hero-desc{color:#fff;margin-left:auto;margin-right:auto;text-shadow:0 2px 12px rgba(0,0,0,.7),0 1px 4px rgba(0,0,0,.6);}
.page-hero-content .btn{align-self:center;}
@media (max-width:600px){
  .page-hero{min-height:100svh;padding-top:110px;}
  .page-hero-content h1,
  .page-hero-content h2{font-size:clamp(30px,8vw,40px);}
}

/* ---------- Quick facts strip (editorial, dividers) ---------- */
.quick-facts{background:var(--cream);padding:48px 0;border-top:1px solid rgba(43,32,25,.1);border-bottom:1px solid rgba(43,32,25,.1);}
.quick-facts-row{display:flex;}
.quick-facts-item{flex:1;padding:0 28px;text-align:center;}
.quick-facts-item:not(:last-child){border-right:1px solid rgba(43,32,25,.12);}
.quick-facts-value{display:block;font-family:var(--sans);font-weight:500;font-size:clamp(20px,2vw,26px);color:var(--forest);margin-bottom:8px;}
.quick-facts-label{display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--olive);}
@media (max-width:640px){
  .quick-facts{padding:32px 0;}
  .quick-facts-row{display:grid;grid-template-columns:1fr 1fr;row-gap:28px;}
  .quick-facts-item{border-right:none !important;padding:0 12px;}
  .quick-facts-item:nth-child(odd){border-right:1px solid rgba(43,32,25,.12) !important;}
  .quick-facts-item:nth-child(1),.quick-facts-item:nth-child(2){padding-bottom:24px;border-bottom:1px solid rgba(43,32,25,.12);}
}
.route-heading{text-align:center;}
.route-editorial-title{
  font-family:var(--serif);font-weight:500;color:var(--forest);
  font-size:clamp(32px,3.6vw,44px);line-height:1.1;
}
.route-subline{
  font-size:17px;color:var(--olive);margin:0 0 48px;
}
.route-cta-wrap{text-align:center;margin-top:32px;}

/* Kenya route mosaic — scoped sizing, does not affect .dest-card elsewhere */
.kenya-mosaic{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.kenya-mosaic-row{display:flex;gap:14px;}
.kenya-mosaic-row-split{align-items:stretch;}
.kenya-mosaic .dest-card{border-radius:var(--radius-card);cursor:default;}
.kenya-mosaic .dest-card,
.kenya-mosaic .dest-card:hover{transform:none;box-shadow:0 16px 40px rgba(43,32,25,.16);}
.kenya-mosaic .dest-card img,
.kenya-mosaic .dest-card:hover img{transform:none;}
.kenya-mosaic .dest-card:hover::after{background:linear-gradient(180deg,rgba(28,20,16,0) 0%,rgba(28,20,16,0) 52%,rgba(28,20,16,.5) 100%);}
.kenya-mosaic-wide-lg{width:100%;height:400px;}
.kenya-mosaic-mid{flex:1;height:280px;}
.kenya-mosaic-wide-md{width:100%;height:360px;}
@media (max-width:900px){
  .kenya-mosaic-row,.kenya-mosaic-row-split{flex-direction:column;}
  .kenya-mosaic-wide-lg,.kenya-mosaic-mid,.kenya-mosaic-wide-md{width:100%;height:260px;flex:none;}
}
.route-card-overlay{
  position:relative;z-index:1;width:100%;
  padding:28px;text-align:left;color:var(--cream);
}
.route-card-tag{
  display:block;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--sand);margin-bottom:8px;text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.route-card-overlay h3{
  font-family:var(--serif);font-weight:500;font-size:clamp(22px,2.4vw,30px);
  line-height:1.2;margin:0 0 8px;text-shadow:0 2px 14px rgba(0,0,0,.35);
}
.route-card-overlay p{
  font-size:14px;line-height:1.5;margin:0;max-width:360px;
  opacity:.92;text-shadow:0 2px 10px rgba(0,0,0,.35);
}

/* ---------- New Year Kenya tour ---------- */
.nye-tour{background:var(--cream);}
.nye-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start;margin-bottom:72px;}
.nye-card h2{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4.2vw,54px);line-height:1.1;margin:0 0 18px;color:var(--forest);}
.nye-facts{font-size:16px;color:var(--olive);margin:0 0 20px;}
.nye-amount{font-family:var(--sans);font-weight:500;font-size:clamp(26px,2.8vw,34px);display:block;margin:0 0 20px;color:var(--forest);}
.nye-desc{font-size:16px;color:var(--olive);line-height:1.55;margin:0 0 30px;max-width:420px;}
.nye-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-card);box-shadow:0 20px 48px rgba(43,32,25,.16);}
.nye-media img{width:100%;height:100%;object-fit:cover;}
.nye-itinerary{list-style:none;margin:0 0 56px;padding:0;max-width:960px;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;border-bottom:1px solid rgba(43,32,25,.12);}
.nye-itinerary li{display:flex;gap:20px;padding:14px 0;border-top:1px solid rgba(43,32,25,.12);}
.nye-date{flex:0 0 110px;font-family:var(--sans);font-weight:500;color:var(--clay-dark);font-size:15px;}
.nye-day-desc{font-size:14px;color:var(--forest);line-height:1.45;}
.nye-fine-print{font-size:17px;color:var(--olive);line-height:1.65;max-width:760px;margin:0 auto 22px;text-align:center;}
.nye-note{font-size:16px;font-style:italic;color:var(--clay-dark);max-width:620px;margin:0 auto;text-align:center;}
.nye-story{display:flex;flex-direction:column;gap:24px;margin-bottom:0;}
.nye-story-item{border-radius:var(--radius-card);overflow:hidden;box-shadow:0 16px 40px rgba(43,32,25,.16);}
.nye-story-item img{width:100%;height:100%;object-fit:cover;display:block;}
.nye-story-lg{aspect-ratio:16/9;}
.nye-story-row{display:flex;gap:24px;}
.nye-story-row .nye-story-sm{flex:1;aspect-ratio:1/1;}
@media (max-width:900px){
  .nye-grid{grid-template-columns:1fr;gap:32px;margin-bottom:48px;}
  .nye-itinerary{grid-template-columns:1fr;}
  .nye-itinerary li{gap:16px;}
  .nye-date{flex:0 0 100px;}
  .nye-story-lg{aspect-ratio:4/3;}
  .nye-story-row{flex-direction:column;}
  .nye-story-row .nye-story-sm{aspect-ratio:4/3;}
}

/* ---------- Honest pricing ---------- */
.honest{background:var(--cream);}
.honest .section-head p{font-family:var(--sans);font-weight:500;font-size:22px;color:var(--forest);font-style:italic;}
.honest-cols{display:grid;grid-template-columns:1fr 1fr;gap:64px;max-width:760px;}
.honest-col-label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:20px;}
.honest-list{display:flex;flex-direction:column;}
.honest-list li{
  font-family:var(--sans);font-weight:400;font-size:19px;color:var(--forest);
  padding:14px 0;border-top:1px solid rgba(43,32,25,.14);
}
.honest-list li:last-child{border-bottom:1px solid rgba(43,32,25,.14);}
@media (max-width:600px){
  .honest-cols{grid-template-columns:1fr;gap:40px;}
}

/* ---------- Special teaser ---------- */
.special-teaser{margin-top:56px;padding-top:40px;border-top:1px solid rgba(43,32,25,.12);}
.special-teaser .eyebrow{margin-bottom:12px;}
.special-teaser p{font-size:16px;color:var(--olive);margin:0;max-width:520px;font-style:italic;}

/* ---------- Philosophy ---------- */
.philosophy-quote{
  font-family:var(--sans);font-style:italic;font-weight:500;
  font-size:clamp(24px,3.2vw,36px);line-height:1.4;color:var(--forest);
  margin:0 0 20px;
}
.philosophy-quote:last-child{margin-bottom:0;}
.philosophy-quote-lines{line-height:1.55;}

/* ---------- Journal ---------- */
.journal{background:var(--cream);}
.articles-grid{
  display:flex;flex-wrap:wrap;
  border-top:1px solid rgba(43,32,25,.12);border-left:1px solid rgba(43,32,25,.12);
}
.article-card{
  flex:1 1 260px;background:var(--cream);padding:36px 28px;
  display:flex;flex-direction:column;gap:16px;min-height:160px;justify-content:space-between;
  border-right:1px solid rgba(43,32,25,.12);border-bottom:1px solid rgba(43,32,25,.12);
}
.article-tag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);opacity:.8;}
.article-card h3{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.3;margin:0;}
@media (max-width:560px){.article-card{flex-basis:100%;}}

/* ---------- Routes ---------- */
.routes{background:var(--cream);}
.routes-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:24px;
}
.route-card{grid-column:span 2;}
.route-card.is-large{grid-column:span 4;}
.route-media{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:var(--radius-card);
  margin-bottom:22px;
}
.route-card.is-large .route-media{aspect-ratio:16/11;}
.route-media img{transition:transform 1.2s cubic-bezier(.16,1,.3,1);}
.route-card:hover .route-media img{transform:scale(1.05);}
.route-price{
  position:absolute;right:16px;top:16px;
  background:rgba(255,255,255,.94);
  color:var(--charcoal);
  font-size:12px;letter-spacing:.03em;
  padding:9px 14px;border-radius:20px;
}
.route-price-note{font-size:13px;font-style:italic;color:var(--olive);margin:-6px 0 16px;}
.route-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;}
.route-region{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--clay);}
.route-duration{font-size:13px;color:var(--olive);}
.route-card h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 10px;}
.route-card p{font-size:15px;color:var(--olive);margin:0 0 18px;max-width:420px;}
.route-link{
  font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:8px;
  color:var(--forest);border-bottom:1px solid var(--forest);padding-bottom:2px;
  transition:opacity .3s ease;
}
.route-link:hover{opacity:.6;}
@media (max-width:980px){
  .routes-grid{grid-template-columns:repeat(2,1fr);}
  .route-card,.route-card.is-large{grid-column:span 2;}
  .route-card.is-large .route-media{aspect-ratio:1/1;}
}
@media (max-width:620px){
  .routes-grid{grid-template-columns:1fr;}
  .route-card,.route-card.is-large{grid-column:span 1;}
}

/* ---------- Route block (featured itinerary) ---------- */
.route-block{background:var(--forest-2);color:var(--cream);}
.route-block .section-head{max-width:320px;}
.route-block .eyebrow{color:var(--clay);}
.route-block-title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(26px,3.2vw,42px);line-height:1.2;
  max-width:760px;
}
.route-summary{
  display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
  border-top:1px solid rgba(255,255,255,.16);
  padding-top:40px;margin-top:16px;
}
.route-summary-item{display:flex;flex-direction:column;gap:10px;}
.rs-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sand);opacity:.6;}
.rs-value{font-family:var(--sans);font-weight:500;font-size:20px;}
.route-note{
  margin:36px 0 0;font-size:14px;font-style:italic;opacity:.55;max-width:620px;line-height:1.6;
}
.route-block .btn{white-space:normal;text-align:center;}
.marquee{overflow:hidden;width:100%;margin:28px 0 40px;}
.marquee-track{
  display:flex;width:max-content;gap:64px;white-space:nowrap;
  animation:marquee-scroll 26s linear infinite;
}
.marquee-track span{
  font-family:var(--sans);font-weight:500;color:var(--sand);
  font-size:clamp(32px,6vw,64px);line-height:1;opacity:.9;
}
@keyframes marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(calc(-50% - 32px));}
}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none;}
}
@media (max-width:900px){
  .route-summary{grid-template-columns:1fr 1fr;gap:28px;}
}
@media (max-width:560px){
  .route-summary{grid-template-columns:1fr;}
}

/* ---------- Country chips ---------- */
.country-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px;}
.country-chip{
  padding:10px 20px;border:1px solid rgba(43,32,25,.18);border-radius:20px;
  font-size:14px;letter-spacing:.02em;color:var(--charcoal);
}

/* ---------- Not just a tour ---------- */
.notour{background:var(--cream);color:var(--charcoal);}
.notour-title{font-size:clamp(34px,4vw,50px);line-height:1.08;margin:0 0 28px;}
.notour-text p{font-size:17px;color:var(--olive);margin:0 0 30px;max-width:460px;}
.notour-quote{
  font-family:var(--sans);font-weight:500;font-style:italic;
  font-size:clamp(24px,2.6vw,32px);
  color:var(--clay);
  border-top:1px solid rgba(43,32,25,.15);
  padding-top:28px;margin:0;max-width:440px;
}

/* ---------- Advantages ---------- */
.advantages{background:var(--cream);}
.adv-grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:48px;
  border-top:1px solid rgba(43,32,25,.1);
  padding-top:56px;
}
.adv-item{padding-right:20px;}
.adv-num{font-family:var(--sans);font-weight:500;font-size:20px;color:var(--clay);display:block;margin-bottom:22px;}
.adv-item h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:0 0 12px;line-height:1.3;}
.adv-item p{font-size:15px;color:var(--olive);margin:0;}
@media (max-width:900px){.adv-grid{grid-template-columns:1fr 1fr;gap:40px 32px;}}
@media (max-width:560px){.adv-grid{grid-template-columns:1fr;}}

/* ---------- Process ---------- */
.process{background:var(--cream);}
.process .wrap{max-width:1200px;padding:0 32px;}
.process.section-pad{padding-top:48px;padding-bottom:40px;}
.process .section-head{margin-bottom:32px;}
.steps-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  margin-top:32px;
}
.step-item{text-align:center;padding:0 12px;}
.step-circle{
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;margin:0 auto 16px;
  border:1px solid rgba(43,32,25,.25);border-radius:50%;
  font-size:17px;font-weight:500;color:var(--forest);
}
.step-item h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:0 0 8px;line-height:1.3;}
.step-item p{font-size:15px;color:var(--olive);margin:0 auto;max-width:280px;}
@media (max-width:900px){
  .process.section-pad{padding-top:36px;padding-bottom:32px;}
  .steps-grid{grid-template-columns:1fr;gap:28px;max-width:360px;margin-left:auto;margin-right:auto;}
}
.steps-grid-5{display:flex;flex-wrap:wrap;justify-content:center;gap:48px 36px;}
.steps-grid-5 .step-item{flex:1 1 180px;max-width:210px;padding:0;}
@media (max-width:900px){.steps-grid-5{max-width:none;}.steps-grid-5 .step-item{flex:1 1 100%;max-width:360px;}}

/* ---------- Safety ---------- */
.safety{background:var(--sand);}
.safety-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.safety-media{aspect-ratio:5/4;overflow:hidden;border-radius:var(--radius-card);}
.safety-list{margin:34px 0 0;display:flex;flex-direction:column;gap:0;}
.safety-list li{
  display:flex;align-items:baseline;gap:18px;
  padding:18px 0;border-top:1px solid rgba(43,32,25,.12);
  font-size:16px;
}
.safety-list li:last-child{border-bottom:1px solid rgba(43,32,25,.12);}
.safety-list .si{font-family:var(--sans);font-weight:500;color:var(--clay);font-size:14px;min-width:24px;}
.safety-quote{
  font-family:var(--sans);font-weight:500;font-style:italic;font-size:22px;
  margin:34px 0 0;color:var(--forest);line-height:1.4;
}
.not-included{margin-top:32px;padding-top:24px;border-top:1px solid rgba(43,32,25,.12);}
.ni-label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin-bottom:10px;font-weight:500;}
.not-included p{font-size:15px;color:var(--olive);margin:0;}
@media (max-width:900px){
  .safety-grid{grid-template-columns:1fr;gap:44px;}
  .safety-media{order:-1;}
}

/* ---------- Africa gallery (carousel) ---------- */
.africa-gallery{background:var(--cream);}
.africa-gallery.section-pad{padding:72px 0 56px;}
.africa-gallery .wrap{max-width:1200px;padding:0 32px;}
.gallery-top{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;
  gap:24px;margin-bottom:36px;
}
.gallery-eyebrow{
  display:block;font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--clay-dark);
  margin:0 0 14px;
}
.gallery-title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(48px,4vw,56px);line-height:1;letter-spacing:-.035em;
  color:var(--forest);margin:0;
}
.gallery-nav{display:flex;gap:12px;}
.gallery-arrow{
  width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(43,32,25,.2);
  background:transparent;color:var(--forest);
  display:flex;align-items:center;justify-content:center;
  transition:background 200ms ease,border-color 200ms ease,color 200ms ease;
}
.gallery-arrow svg{width:18px;height:18px;}
.gallery-arrow:hover{background:var(--btn-bg);border-color:var(--btn-bg);color:var(--btn-text);}
.gallery-arrow:disabled{opacity:.35;cursor:default;}
.gallery-arrow:disabled:hover{background:transparent;color:var(--forest);border-color:rgba(43,32,25,.2);}

.gallery-track-wrap{max-width:1200px;margin:0 auto;padding-left:32px;}
.gallery-track{
  display:flex;gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 40px 16px 0;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.gallery-track::-webkit-scrollbar{display:none;}

.gallery-card{
  position:relative;
  flex:0 0 auto;
  display:flex;flex-direction:column;
  background:none;border:none;padding:0;
  font:inherit;text-align:left;color:inherit;
  scroll-snap-align:start;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.gallery-card.is-lg{width:36%;}
.gallery-card.is-md{width:24%;}
.gallery-card.is-narrow{width:19%;}
.gallery-card img{
  display:block;width:100%;height:360px;
  object-fit:cover;
  border-radius:var(--radius-card);
  filter:brightness(.97) contrast(1.04) saturate(.90);
  transition:transform .4s ease;
}
.gallery-card:hover img{transform:scale(1.015);}
.gallery-caption{
  display:block;margin-top:14px;
  font-family:var(--sans);font-size:14px;color:var(--olive);
}

@media (max-width:900px){
  .africa-gallery.section-pad{padding:72px 0 80px;}
  .gallery-top{margin-bottom:28px;}
  .gallery-title{font-size:clamp(38px,11vw,46px);line-height:1;}
  .gallery-track{gap:14px;padding:4px 24px 16px 0;}
  .gallery-card.is-lg,.gallery-card.is-md{width:86%;}
  .gallery-card.is-narrow{width:50%;}
  .gallery-card img{height:auto;aspect-ratio:1.17;}
}
@media (max-width:600px){
  .gallery-card.is-lg,.gallery-card.is-md{width:88%;}
  .gallery-card.is-narrow{width:52%;}
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  background:rgba(20,14,10,.94);
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
  padding:40px;
}
.lightbox.is-open{opacity:1;visibility:visible;}
.lightbox-figure{
  display:flex;flex-direction:column;align-items:center;
  max-width:min(1100px,90vw);
  max-height:90vh;
}
.lightbox-image{
  display:block;
  max-width:100%;
  max-height:80vh;
  width:auto;height:auto;
  object-fit:contain;
  border-radius:var(--radius-card);
}
.lightbox-caption{
  margin-top:16px;
  font-family:var(--sans);font-size:14px;color:rgba(248,247,243,.75);
}
.lightbox-close{
  position:absolute;top:28px;right:32px;
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(248,247,243,.3);
  background:transparent;color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease,border-color .25s ease;
}
.lightbox-close svg{width:18px;height:18px;}
.lightbox-close:hover{background:rgba(248,247,243,.12);border-color:rgba(248,247,243,.5);}
.lightbox-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(248,247,243,.3);
  background:transparent;color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease,border-color .25s ease;
}
.lightbox-arrow svg{width:20px;height:20px;}
.lightbox-arrow:hover{background:rgba(248,247,243,.12);border-color:rgba(248,247,243,.5);}
.lightbox-prev{left:24px;}
.lightbox-next{right:24px;}
@media (max-width:768px){
  .lightbox{padding:20px;}
  .lightbox-close{top:16px;right:16px;width:40px;height:40px;}
  .lightbox-arrow{width:44px;height:44px;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
}

/* ---------- Author feature (Zhanna) ---------- */
.author-feature{background:var(--cream);}
.author-feature.section-pad{padding:88px 0;}
.author-feature .wrap{max-width:1200px;padding:0 32px;}
.author-feature-grid{
  display:grid;
  grid-template-columns:54% 1fr;
  gap:76px;
  align-items:start;
}
@media (min-width:769px){
  .author-feature-text{margin-top:12.7%;}
}
.author-feature-media{position:relative;aspect-ratio:1.42;overflow:hidden;border-radius:var(--radius-card);}
.author-feature-media img{width:100%;height:100%;object-fit:cover;object-position:center 61%;transform:scale(1.123);transform-origin:28.6% 100%;filter:brightness(.98) contrast(1.03) saturate(.94);}
.author-feature-label{
  display:block;
  font-family:var(--sans);
  font-weight:500;
  font-size:13px;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:22px;
}
.author-feature-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(48px,4vw,64px);
  line-height:1.02;
  letter-spacing:-.04em;
  color:var(--forest);
  margin:0 0 28px;
}
.author-feature-text p{
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  color:var(--olive);
  max-width:540px;
  margin:0 0 20px;
}
.author-feature-signature{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin:36px 0 28px;
}
.author-feature-name{
  font-family:var(--serif);
  font-weight:500;
  font-size:26px;
  color:var(--forest);
}
.author-feature-role{
  font-family:var(--sans);
  font-size:14px;
  color:var(--olive);
}
.author-feature-cta{
  display:inline-block;
  font-family:var(--sans);
  font-weight:500;
  font-size:15px;
  color:var(--forest);
  border-bottom:1px solid rgba(43,32,25,.3);
  padding-bottom:4px;
  transition:opacity .3s ease;
}
.author-feature-cta:hover{opacity:.6;}
@media (max-width:768px){
  .author-feature.section-pad{padding:72px 0;}
  .author-feature-grid{grid-template-columns:1fr;gap:40px;}
  .author-feature-media{aspect-ratio:1;}
  .author-feature-media img{object-position:center 98%;transform:scale(1.123);transform-origin:28.6% 100%;}
  .author-feature-title{font-size:clamp(38px,10vw,44px);}
}

/* ---------- Author ---------- */
.author{background:var(--cream);}
.author-grid{display:grid;grid-template-columns:.72fr 1fr;gap:56px;align-items:center;}
.author-side{display:flex;flex-direction:column;gap:28px;}
@media (min-width:901px){
  #author .author-grid{grid-template-columns:1.15fr .85fr;align-items:start;}
}
.author-byline{
  display:block;font-family:var(--sans);font-weight:500;
  font-size:14px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--forest);margin:0 0 18px;
}
#author h2{font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.2vw,54px);line-height:1.08;margin:24px 0 20px;}
.author-text > p{font-size:17px;line-height:1.6;color:var(--olive);margin:0 0 26px;max-width:480px;}
.author-countries-row{
  font-size:17px;line-height:1.5;color:var(--forest);font-weight:500;
  margin:0 0 8px;max-width:none;
}
.author-countries-row.is-secondary{font-size:17px;font-weight:400;color:var(--olive);margin:0;}
.author-gallery{min-width:0;width:calc(100% + max(40px, (100vw - 1320px) / 2 + 40px));}
.gallery-scroll{
  display:flex;gap:18px;overflow-x:auto;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  cursor:grab;user-select:none;
  scrollbar-width:none;
}
.gallery-scroll::-webkit-scrollbar{display:none;}
.gallery-scroll.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;}
.gallery-item{
  flex:0 0 clamp(220px,24vw,335px);
  height:clamp(390px,29vw,440px);
  overflow:hidden;border-radius:var(--radius-card);
  scroll-snap-align:start;
}
.gallery-item:nth-child(odd){flex-basis:clamp(280px,30vw,420px);}
.gallery-item img{width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;}
@media (max-width:900px){
  .author-grid{display:flex;flex-direction:column;gap:28px;}
  .author-text{display:contents;}
  .author-text > .eyebrow{order:1;}
  .author-text > .author-byline{order:2;}
  .author-text > h2{order:3;}
  .author-text > p:not(.author-countries-row){order:4;}
  .author-text > .author-countries-row{order:5;}
  .author-side{display:contents;}
  .author-side > .author-approach{order:6;}
  .author-side > .editorial-media{order:7;}
  .author-gallery{order:7;width:100%;}
  .gallery-item{flex-basis:82vw;height:clamp(400px,58vw,460px);}
  .gallery-item:nth-child(odd){flex-basis:82vw;}
}
@media (max-width:600px){
  .gallery-item{flex-basis:72vw;}
  .gallery-item:nth-child(odd){flex-basis:72vw;}
}

/* ---------- Memories ---------- */
.memories{background:var(--cream);}
.mem-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:120px;
  gap:16px;
}
.mem-item{position:relative;overflow:hidden;border-radius:var(--radius-card);grid-column:span 2;grid-row:span 2;}
.mem-item.tall{grid-row:span 3;}
.mem-item.wide{grid-column:span 3;}
.mem-item img{transition:transform 1.4s cubic-bezier(.16,1,.3,1);}
.mem-item:hover img{transform:scale(1.06);}
.mem-item .mem-caption{
  position:absolute;left:0;right:0;bottom:0;
  padding:22px;
  background:linear-gradient(180deg,rgba(28,20,16,0) 55%,rgba(28,20,16,.85) 100%);
  font-family:var(--sans);font-weight:500;font-style:italic;font-size:19px;line-height:1.3;
}
@media (max-width:900px){
  .mem-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}
  .mem-item,.mem-item.wide{grid-column:span 1;grid-row:span 1;}
  .mem-item.tall{grid-row:span 1;}
}

/* ---------- FAQ merged with "how it works" ---------- */
.faq-merged{background:var(--cream);padding:40px 0 80px;}
.faq-merged .wrap{max-width:1200px;padding:0 32px;}
.faq-merged-grid{display:grid;grid-template-columns:1fr 2fr;gap:64px;align-items:start;}
.faq-merged-intro .eyebrow{margin:0 0 18px;}
.faq-merged-intro h2{font-family:var(--serif);font-weight:500;font-size:clamp(48px,4vw,64px);line-height:1;color:var(--forest);margin:0;}
@media (max-width:900px){
  .faq-merged{padding:28px 0 56px;}
  .faq-merged-grid{grid-template-columns:1fr;gap:28px;}
}

/* ---------- FAQ accordion ---------- */
.faq-wrap{max-width:820px;}
.faq-item{border-top:1px solid rgba(43,32,25,.14);scroll-margin-top:120px;}
.faq-item:last-child{border-bottom:1px solid rgba(43,32,25,.14);}
.faq-q{
  width:100%;text-align:left;background:none;border:none;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 0;font-size:19px;font-weight:500;color:var(--charcoal);font-family:var(--sans);
}
.faq-q .plus{
  position:relative;width:18px;height:18px;flex:none;
  transition:transform .35s ease;
}
.faq-q .plus::before,.faq-q .plus::after{
  content:'';position:absolute;background:var(--forest);
}
.faq-q .plus::before{left:0;top:50%;width:100%;height:1px;transform:translateY(-50%);}
.faq-q .plus::after{top:0;left:50%;width:1px;height:100%;transform:translateX(-50%);}
.faq-item.is-open .plus{transform:rotate(45deg);}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .5s cubic-bezier(.16,1,.3,1);
}
.faq-a p{font-size:17px;line-height:1.6;color:var(--olive);padding:0 0 28px;margin:0;max-width:640px;}

/* ---------- Final CTA ---------- */
.final-cta{background:var(--sand);}
#cta .wrap{max-width:1200px;padding:0 32px;}
.final-cta.section-pad{padding:96px 0;}
.final-cta-grid{display:grid;grid-template-columns:.42fr .58fr;gap:96px;align-items:center;}
.final-cta-label{
  display:block;
  font-family:var(--sans);
  font-size:12px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--clay-dark);
  line-height:1.5;
  margin:0 0 28px;
}
.final-cta-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(58px,5vw,78px);
  line-height:.98;
  letter-spacing:-.045em;
  color:var(--forest);
  margin:0 0 28px;
}
.final-cta-desc{font-size:17px;line-height:1.6;color:var(--olive);margin:0;max-width:460px;}
.final-cta-form{display:flex;flex-direction:column;gap:22px;}
.cta-field{display:flex;flex-direction:column;gap:8px;}
.cta-field label{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--forest);}
.cta-field input,.cta-field select{
  width:100%;
  height:54px;
  padding:0 18px;
  font-family:var(--sans);
  font-size:16px;
  color:var(--forest);
  background:rgba(255,255,255,.45);
  border:1px solid rgba(43,32,25,.16);
  border-radius:var(--radius-input);
  transition:border-color .25s ease,background .25s ease;
}
.cta-field select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232B2019' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;}
.cta-field input::placeholder{color:var(--olive);}
.cta-field input:focus,.cta-field select:focus{
  outline:none;
  border-color:var(--clay-dark);
  background:rgba(255,255,255,.7);
}
.cta-consent{display:flex;align-items:flex-start;gap:10px;font-family:var(--sans);font-size:13px;line-height:1.4;color:var(--olive);cursor:pointer;}
.cta-consent input[type="checkbox"]{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--btn-bg);cursor:pointer;}
.cta-consent a{color:var(--forest);text-decoration:underline;}
.final-cta-submit{width:fit-content;height:52px;justify-content:center;border-radius:999px;padding:0 32px;margin-top:6px;}
.final-cta-submit:disabled{opacity:.6;cursor:default;}
.cta-success{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.4;color:var(--forest);margin:0;padding:12px 0;}
.cta-error{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--clay-dark);margin:12px 0 0;padding:0;}
.cta-error a{color:inherit;text-decoration:underline;}
@media (max-width:900px){
  .final-cta-grid{grid-template-columns:1fr;gap:32px;}
  .final-cta.section-pad{padding:64px 0;}
  .final-cta-title{font-size:clamp(40px,11vw,50px);}
  .final-cta-desc{max-width:none;}
  .final-cta-submit{width:100%;height:56px;}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--cream);color:var(--charcoal);padding:96px 0 0;overflow-x:hidden;}
.footer-top{
  display:grid;grid-template-columns:1fr 1.6fr;gap:56px;
  padding-bottom:64px;border-bottom:1px solid rgba(43,32,25,.12);margin-bottom:32px;
}
.footer-intro{max-width:420px;}
.footer-statement{
  display:block;font-family:var(--serif);font-weight:500;
  font-size:clamp(30px,2.8vw,40px);line-height:1.12;letter-spacing:-.02em;
  color:var(--forest);margin:0 0 18px;
}
.footer-tagline{font-size:15px;line-height:1.6;color:var(--olive);max-width:320px;margin:0 0 28px;}
.footer-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:52px;padding:0 32px;width:fit-content;
  border:1px solid var(--btn-bg);border-radius:999px;
  background:var(--btn-bg);color:var(--btn-text);
  font-family:var(--sans);font-weight:500;font-size:15px;
  transition:background 200ms ease,color 200ms ease,border-color 200ms ease;
}
.footer-cta:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);}
.footer-cta .btn-arrow{transition:transform .28s ease;}
.footer-cta:hover .btn-arrow{transform:translateX(3px);}
.footer-cols{
  display:grid;grid-template-columns:repeat(2,1fr);gap:32px;
}
.footer-col h4{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--clay);margin:0 0 20px;font-weight:500;}
.footer-col ul{display:flex;flex-direction:column;gap:12px;}
.footer-col a{font-size:15px;opacity:.85;transition:opacity .3s ease;}
.footer-col a:hover{opacity:1;}
.footer-tbd{font-size:15px;font-style:italic;opacity:.45;}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  font-size:13px;opacity:.6;
  padding-bottom:28px;
}
.footer-bottom a{opacity:1;}
.footer-bottom .footer-tbd{font-size:13px;}
.footer-wordmark{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(72px,13vw,180px);line-height:.85;letter-spacing:-.03em;
  color:var(--forest);opacity:.06;
  white-space:nowrap;margin:0;padding-bottom:24px;
  pointer-events:none;user-select:none;
}
@media (max-width:900px){
  .footer-top{grid-template-columns:1fr;gap:40px;padding-bottom:48px;margin-bottom:32px;}
  .footer-cols{grid-template-columns:1fr 1fr;gap:36px 24px;}
  .footer-wordmark{font-size:clamp(56px,20vw,110px);}
}
@media (max-width:560px){
  .footer-cols{grid-template-columns:1fr;}
}

/* ---------- Footer (homepage compact variant) ---------- */
.site-footer--compact{padding:56px 0 0;}
.site-footer--compact .wrap{max-width:1200px;padding:0 32px;}
.site-footer--compact .footer-top{
  display:grid;grid-template-columns:.40fr .35fr .25fr;gap:40px;
  padding-bottom:40px;margin-bottom:24px;
}
.site-footer--compact .footer-intro{max-width:none;}
.footer-name{
  display:block;font-family:var(--serif);font-weight:500;
  font-size:clamp(24px,2vw,28px);line-height:1.2;
  color:var(--forest);margin:0 0 10px;
}
.site-footer--compact .footer-tagline{margin:0;max-width:280px;}
.site-footer--compact .footer-col h4{margin-bottom:16px;}
.site-footer--compact .footer-col ul{gap:10px;}
.site-footer--compact .footer-bottom{padding-bottom:40px;}
.footer-legal{display:flex;gap:24px;flex-wrap:wrap;}
.footer-legal span{opacity:.7;cursor:default;}
.footer-legal a{opacity:.7;text-decoration:underline;transition:opacity .2s ease;}
.footer-legal a:hover{opacity:1;}
@media (max-width:900px){
  .site-footer--compact .footer-top{grid-template-columns:1fr;gap:32px;padding-bottom:32px;margin-bottom:20px;}
}
@media (max-width:560px){
  .site-footer--compact .footer-bottom{flex-direction:column;align-items:flex-start;gap:12px;}
}

/* ---------- general responsive ---------- */
@media (max-width:900px){
  .wrap{padding:0 24px;}
  #safaris .wrap,.scenarios .wrap,.process .wrap,.africa-gallery .wrap,.author-feature .wrap,.faq-merged .wrap,#cta .wrap,.site-footer--compact .wrap{padding:0 20px;}
  .gallery-track-wrap{padding-left:20px;}
  .nav-links{display:none;}
  .header-cta .header-link{display:none;}
  .burger{display:block;}
  .site-header--tour .wrap{justify-content:flex-end;gap:20px;}
  .hero-content{padding-bottom:0;}
  .scroll-cue{display:none;}
  .logo{font-size:14px;max-width:160px;overflow:hidden;text-overflow:ellipsis;}
}

/* ---------- Tour page template (reusable for kenya.html and future tours) ---------- */
.tour-wrap{max-width:1200px;margin:0 auto;padding:0 32px;}
.tour-section{padding:72px 0;}
.tour-section-title{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3vw,40px);line-height:1.08;letter-spacing:-.02em;color:var(--forest);margin:0 0 40px;}

/* Hero */
.tour-hero{position:relative;height:560px;overflow:hidden;}
.tour-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.tour-hero::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(20,14,10,.62) 0%,rgba(20,14,10,.3) 40%,rgba(20,14,10,0) 68%),
    linear-gradient(0deg,rgba(20,14,10,.5) 0%,rgba(20,14,10,0) 46%);
  pointer-events:none;
}
.tour-hero-inner{position:absolute;left:0;bottom:0;z-index:1;width:100%;padding:0 0 48px;}
.tour-hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(36px,4.6vw,58px);line-height:1;letter-spacing:-.03em;color:#fff;margin:0 0 12px;}
.tour-hero-route{font-family:var(--sans);font-size:18px;color:#fff;opacity:.92;margin:0 0 10px;}
.tour-hero-price{font-family:var(--sans);font-weight:600;font-size:18px;color:#fff;margin:0 0 26px;}
@media (max-width:768px){
  .tour-hero{height:auto;min-height:480px;}
  .tour-hero-inner{padding:0 0 36px;}
  .tour-hero-title{font-size:clamp(32px,9vw,42px);}
  .tour-hero-route,.tour-hero-price{font-size:16px;}
}

/* Intro + params */
.tour-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.tour-intro-lead{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2vw,26px);line-height:1.3;color:var(--forest);margin:0 0 16px;}
.tour-intro-text{font-size:16px;line-height:1.6;color:var(--olive);margin:0;max-width:440px;}
.tour-params{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 24px;}
.tour-param svg{width:26px;height:26px;color:var(--clay-dark);margin-bottom:10px;}
.tour-param-value{display:block;font-family:var(--sans);font-weight:600;font-size:16px;color:var(--forest);margin-bottom:4px;}
.tour-param-label{display:block;font-family:var(--sans);font-size:13px;color:var(--olive);}

/* Places (two parks, and reusable 1/3/4-card variants) */
.tour-parks-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.tour-parks-grid.cols-1{grid-template-columns:1fr;max-width:460px;}
.tour-parks-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.tour-parks-grid.cols-4{grid-template-columns:repeat(4,1fr);}
.tour-park-media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-card);margin-bottom:20px;}
.tour-park-media img{width:100%;height:100%;object-fit:cover;}
.tour-park-name{font-family:var(--serif);font-weight:500;font-size:24px;color:var(--forest);margin:0 0 8px;}
.tour-park-desc{font-size:15px;line-height:1.55;color:var(--olive);margin:0;max-width:440px;}
.tour-parks-grid.cols-3 .tour-park-name,.tour-parks-grid.cols-4 .tour-park-name{font-size:19px;}

/* Days */
.tour-day-list{display:flex;flex-direction:column;}
.tour-day{display:grid;grid-template-columns:72px 1fr 260px;gap:32px;align-items:center;padding:28px 0;border-top:1px solid rgba(43,32,25,.14);}
.tour-day:last-child{border-bottom:1px solid rgba(43,32,25,.14);}
.tour-day.no-media{grid-template-columns:72px 1fr;}
.tour-day-num{font-family:var(--serif);font-weight:500;font-size:34px;color:var(--btn-bg);line-height:1;}
.tour-day.is-labeled .tour-day-num{font-size:16px;font-weight:600;font-family:var(--sans);}
.tour-day-title{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--forest);margin:0 0 6px;}
.tour-day-desc{font-size:15px;line-height:1.5;color:var(--olive);margin:0;}
.tour-day-media{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-card);}
.tour-day-media img{width:100%;height:100%;object-fit:cover;}

/* Compact text-only itinerary days (no photos) */
.tour-day-list.is-two-col .tour-day{grid-template-columns:72px 1fr;}

/* Darker body-text variant — opt-in per element via .is-dark */
.tour-intro-text.is-dark,.tour-park-desc.is-dark,.tour-stay-desc.is-dark{color:#473F34;}

/* Four-day block wide-photo variant (kenya.html "Четыре дня в Кении" only) */
.tour-day-list.is-wide-media .tour-day{grid-template-columns:64px 1fr 1fr;gap:36px;align-items:start;padding:28px 0;}
.tour-day-list.is-wide-media .tour-day-num{font-size:46px;}
.tour-day-list.is-wide-media .tour-day-title{margin:0 0 4px;}
.tour-day-list.is-wide-media .tour-day-mood{
  font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:19px;line-height:1.4;color:var(--forest);
  margin:0 0 8px;
}
.tour-day-list.is-wide-media .tour-day-desc{font-size:17px;line-height:1.58;color:#473F34;}
.tour-day-list.is-wide-media .tour-day-media{aspect-ratio:2/1;}
@media (max-width:900px){
  .tour-day-list.is-wide-media .tour-day{
    grid-template-columns:56px 1fr;
    grid-template-areas:"num text" "media media";
    gap:10px 16px;padding:24px 0;align-items:start;
  }
  .tour-day-list.is-wide-media .tour-day-num{grid-area:num;font-size:32px;}
  .tour-day-list.is-wide-media .tour-day > div:not(.tour-day-media){grid-area:text;}
  .tour-day-list.is-wide-media .tour-day-media{grid-area:media;aspect-ratio:16/10;margin-top:4px;}
}

/* Stay + transport */
.tour-stay-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.tour-stay-media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-card);margin-bottom:20px;}
.tour-stay-media img{width:100%;height:100%;object-fit:cover;}
.tour-stay-title{font-family:var(--serif);font-weight:500;font-size:22px;color:var(--forest);margin:0 0 8px;}
.tour-stay-desc{font-size:15px;line-height:1.55;color:var(--olive);margin:0;}

/* Pricing */
.tour-pricing-grid{display:grid;grid-template-columns:.85fr 1fr 1fr;gap:40px;}
.tour-pricing-grid.cols-2{grid-template-columns:.85fr 1fr;}
.tour-pricing-label{display:block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--clay-dark);margin:0 0 16px;}
.tour-price-amount{font-family:var(--serif);font-weight:500;font-size:clamp(34px,3.2vw,46px);color:var(--forest);margin:0 0 6px;line-height:1;}
.tour-price-note{font-size:14px;color:var(--olive);}
.tour-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;}
.tour-list li{font-size:15px;color:var(--forest);padding-left:22px;position:relative;line-height:1.4;}
.tour-list.is-included li::before{content:'';position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--btn-bg);}
.tour-list.is-excluded li::before{content:'';position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:rgba(43,32,25,.3);}

/* Fine-print note (reusable under any tour-section block) */
.tour-note{font-size:14px;line-height:1.6;color:var(--olive);margin:24px 0 0;max-width:720px;}

/* FAQ (2-col) */
.tour-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}

/* Final CTA */
.tour-final{position:relative;overflow:hidden;}
.tour-final img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.tour-final::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,14,10,.62) 0%,rgba(20,14,10,.3) 50%,rgba(20,14,10,.08) 100%);}
.tour-final-inner{position:relative;z-index:1;padding:88px 0;}
.tour-final-title{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3vw,42px);color:#fff;margin:0 0 14px;}
.tour-final-text{font-size:16px;line-height:1.5;color:rgba(255,255,255,.85);margin:0 0 28px;max-width:480px;}

@media (max-width:900px){
  .tour-wrap{padding:0 20px;}
  .tour-section{padding:44px 0;}
  .tour-section-title{margin-bottom:28px;}
  .tour-intro-grid{grid-template-columns:1fr;gap:32px;}
  .tour-parks-grid,.tour-parks-grid.cols-1,.tour-parks-grid.cols-3,.tour-parks-grid.cols-4{grid-template-columns:1fr;gap:40px;max-width:none;}
  .tour-day,.tour-day.no-media{grid-template-columns:1fr;gap:14px;}
  .tour-day-media{aspect-ratio:16/10;}
  .tour-stay-grid{grid-template-columns:1fr;gap:40px;}
  .tour-pricing-grid,.tour-pricing-grid.cols-2{grid-template-columns:1fr;gap:32px;}
  .tour-faq-grid{grid-template-columns:1fr;gap:0;}
  .tour-final-inner{padding:56px 0;}
}
@media (max-width:560px){
  .tour-params{grid-template-columns:1fr 1fr;gap:24px 16px;}
}

/* ---------- Cookie consent banner ---------- */
.cookie-banner{
  position:fixed;left:20px;right:20px;bottom:20px;z-index:200;
  max-width:720px;margin:0 auto;
  display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;
  background:var(--forest);color:var(--cream);
  border-radius:var(--radius-card);
  padding:20px 24px;
  box-shadow:0 12px 32px rgba(20,14,10,.25);
  transition:opacity .3s ease,transform .3s ease;
}
.cookie-banner.is-hidden{opacity:0;transform:translateY(12px);pointer-events:none;}
.cookie-banner-text{flex:1 1 320px;font-family:var(--sans);font-size:14px;line-height:1.5;color:rgba(248,247,243,.88);margin:0;}
.cookie-banner-text a{color:var(--cream);text-decoration:underline;}
.cookie-banner-accept{flex:none;height:44px;padding:0 24px;}
@media (max-width:560px){
  .cookie-banner{left:12px;right:12px;bottom:12px;padding:18px;}
  .cookie-banner-accept{width:100%;}
}

/* ---------- New Year Kenya page (draft template) ---------- */
.btn-outline-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.btn-outline-light:hover{background:rgba(255,255,255,.22);}

.ny-hero{position:relative;height:clamp(560px,88vh,880px);overflow:hidden;}
.ny-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ny-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,10,.3) 0%,rgba(20,14,10,.08) 32%,rgba(20,14,10,.78) 100%);}
.ny-hero-inner{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:0 0 72px;}
.ny-hero-eyebrow{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);margin:0 0 18px;}
.ny-hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(44px,6.4vw,78px);line-height:1.0;letter-spacing:-.02em;color:#fff;margin:0 0 16px;}
.ny-hero-sub{font-family:var(--sans);font-size:19px;color:rgba(255,255,255,.92);margin:0 0 28px;max-width:520px;}
.ny-hero-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;margin:0 0 36px;}
.ny-hero-dates{font-family:var(--sans);font-size:16px;color:rgba(255,255,255,.88);}
.ny-hero-price{font-family:var(--sans);font-weight:700;font-size:26px;color:#fff;}
.ny-hero-price-note{font-size:14px;color:rgba(255,255,255,.7);margin-left:8px;font-weight:400;}
.ny-hero-actions{display:flex;gap:16px;flex-wrap:wrap;}
@media (max-width:600px){
  .ny-hero{height:clamp(520px,92vh,720px);}
  .ny-hero-inner{padding-bottom:40px;}
  .ny-hero-actions{width:100%;}
  .ny-hero-actions .btn{flex:1 1 auto;justify-content:center;}
}

.ny-section{padding:90px 0;}
@media (max-width:900px){.ny-section{padding:52px 0;}}

.ny-eyebrow{display:block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-dark);margin:0 0 14px;}
.ny-heading{font-family:var(--serif);font-weight:500;font-size:clamp(28px,2.8vw,36px);line-height:1.12;letter-spacing:-.01em;color:var(--forest);margin:0 0 16px;}
.ny-heading-lg{font-size:clamp(34px,4vw,52px);line-height:1.05;}
.ny-text{font-size:17px;line-height:1.6;color:#473F34;margin:0 0 14px;max-width:560px;}
.ny-text:last-child{margin-bottom:0;}
.ny-text-muted{color:var(--olive);font-style:italic;}
.ny-note{font-size:13px;color:var(--olive);font-style:italic;margin:24px 0 0;}

.ny-highlights-head{max-width:680px;margin:0 0 48px;}
.ny-highlights-grid{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:1fr 1fr;gap:20px;}
.ny-highlights-grid .ny-media:first-child{grid-row:1 / 3;}
.ny-media{position:relative;overflow:hidden;border-radius:var(--radius-card);aspect-ratio:4/3;}
.ny-highlights-grid .ny-media:first-child{aspect-ratio:auto;}
.ny-media img{width:100%;height:100%;object-fit:cover;}
.ny-media-caption{position:absolute;left:18px;bottom:16px;color:#fff;font-family:var(--sans);font-size:13px;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.45);}
@media (max-width:900px){
  .ny-highlights-grid{grid-template-columns:1fr;grid-template-rows:none;}
  .ny-highlights-grid .ny-media:first-child{grid-row:auto;aspect-ratio:4/3;}
}

.ny-wide-media{width:100%;aspect-ratio:16/8;overflow:hidden;border-radius:var(--radius-card);margin:0 0 56px;}
.ny-wide-media.is-tall{aspect-ratio:16/9;margin-bottom:48px;}
.ny-wide-media img{width:100%;height:100%;object-fit:cover;}
@media (max-width:900px){
  .ny-wide-media{aspect-ratio:4/3;margin-bottom:32px;}
  .ny-wide-media.is-tall{aspect-ratio:4/3;}
}

.ny-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.ny-split-media .ny-media{aspect-ratio:3/4;}
.ny-split-media.has-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ny-split-media.has-two .ny-media{aspect-ratio:3/4;}
@media (max-width:900px){
  .ny-split{grid-template-columns:1fr;gap:28px;}
  .ny-split-media .ny-media{aspect-ratio:4/3;}
  .ny-split-media.has-two .ny-media{aspect-ratio:1/1;}
}

.ny-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;background:linear-gradient(135deg,var(--sand),#EDE2CC);color:var(--olive);}
.ny-placeholder span{max-width:220px;font-family:var(--sans);font-size:13px;line-height:1.5;}

.ny-itin-list{display:flex;flex-direction:column;border-top:1px solid rgba(43,32,25,.14);margin-top:40px;}
.ny-itin-item{border-bottom:1px solid rgba(43,32,25,.14);}
.ny-itin-q{width:100%;display:flex;align-items:center;gap:24px;padding:22px 0;background:none;border:none;text-align:left;cursor:pointer;position:relative;}
.ny-itin-date{flex:none;width:150px;font-family:var(--sans);font-weight:700;font-size:15px;color:var(--olive);}
.ny-itin-item.is-confirmed .ny-itin-date{color:var(--btn-bg);}
.ny-itin-title{flex:1;font-family:var(--serif);font-weight:500;font-size:19px;color:var(--forest);}
.ny-itin-plus{flex:none;position:relative;width:16px;height:16px;}
.ny-itin-plus::before,.ny-itin-plus::after{content:'';position:absolute;background:var(--forest);transition:transform .25s ease;}
.ny-itin-plus::before{left:0;top:50%;width:100%;height:1px;transform:translateY(-50%);}
.ny-itin-plus::after{top:0;left:50%;width:1px;height:100%;transform:translateX(-50%);}
.ny-itin-item.is-open .ny-itin-plus{transform:rotate(45deg);}
.ny-itin-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.ny-itin-a p{font-size:15px;line-height:1.6;color:var(--olive);padding:0 0 24px;margin:0;max-width:640px;}
@media (max-width:600px){
  .ny-itin-q{flex-wrap:wrap;gap:4px 0;padding:18px 0;}
  .ny-itin-date{width:100%;font-size:13px;}
  .ny-itin-title{font-size:17px;}
}

.ny-author-grid{display:grid;grid-template-columns:.4fr .6fr;gap:64px;align-items:center;}
.ny-author-media{aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius-card);max-width:360px;}
.ny-author-name{font-family:var(--serif);font-weight:500;font-size:24px;color:var(--forest);margin:0 0 4px;}
.ny-author-role{font-family:var(--sans);font-size:13px;color:var(--clay-dark);text-transform:uppercase;letter-spacing:.08em;margin:0 0 22px;}
.ny-author-quote{font-family:var(--serif);font-weight:500;font-style:italic;font-size:clamp(21px,2.1vw,27px);line-height:1.35;color:var(--forest);margin:0 0 18px;}
@media (max-width:900px){
  .ny-author-grid{grid-template-columns:1fr;gap:28px;}
  .ny-author-media{aspect-ratio:4/3;max-width:320px;}
}

.ny-pricing{background:var(--forest);color:#fff;border-radius:var(--radius-card);padding:56px;margin-top:8px;}
.ny-pricing-label{display:block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin:0 0 16px;}
.ny-pricing-amount{font-family:var(--serif);font-weight:500;font-size:clamp(38px,4vw,54px);color:#fff;margin:0 0 4px;line-height:1;}
.ny-pricing-note{font-size:14px;color:rgba(255,255,255,.7);margin:0 0 40px;}
.ny-pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:40px;border-top:1px solid rgba(255,255,255,.18);}
.ny-pricing-col-label{display:block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.85);margin:0 0 10px;}
.ny-pricing-col-text{font-size:15px;color:rgba(255,255,255,.62);font-style:italic;margin:0;}
.ny-pricing-terms{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:40px 0 0;padding-top:40px;border-top:1px solid rgba(255,255,255,.18);}
.ny-pricing-terms dt{font-family:var(--sans);font-size:13px;font-weight:600;color:rgba(255,255,255,.85);margin:0 0 4px;}
.ny-pricing-terms dd{font-size:14px;color:rgba(255,255,255,.6);margin:0;font-style:italic;}
@media (max-width:900px){
  .ny-pricing{padding:36px 24px;}
  .ny-pricing-grid{grid-template-columns:1fr;gap:24px;}
  .ny-pricing-terms{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .ny-pricing-terms{grid-template-columns:1fr;}
}
