
/* =====================================================================
   Volcan v3 (27 Oct 2026): new logo, colour blocks and navigation.
   Benchmark: naturespride.eu (bold brand colour bands, big rounded tiles,
   full screen menu with large rows, floating Menu pill on phones),
   translated into the logo colours: teal #0f3743, sunrise #f28820.
   ===================================================================== */
:root {
	--vx-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.04' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 22 L50 84 L82 22'/%3E%3Cpath d='M98 98 L120 140 L142 98'/%3E%3C/g%3E%3Cg fill='%23f28820' fill-opacity='.1'%3E%3Cpath d='M40 44a10 10 0 0 1 20 0z'/%3E%3Cpath d='M113 112a7 7 0 0 1 14 0z'/%3E%3C/g%3E%3C/svg%3E");
	--vx-radius: 16px;
}

/* ---------- One font everywhere ---------- */
body :is(h1, h2, h3, h4, h5, h6, p, a, span, li, button, input, select, textarea, label, small, strong, b, i, div, td, th, dt, dd, blockquote, figcaption, legend, summary, nav):not([class*="dashicon"]):not([class*="icon"]):not(.ti-star):not(.v-num):not(.loc-num) {
	font-family: var(--sans) !important;
}
body :is(h1, h2, h3, .h1, .h2, .h3, .lede) em,
.value-item .v-num, .loc-num {
	font-family: var(--serif) !important;
}

/* ---------- Logo ---------- */
.brand { display: inline-flex; align-items: center; }
.brand .brand-name, .brand .brand-sub { display: none !important; }
.brand .vx-logo, .header .brand-logo.vx-logo { height: 46px !important; width: auto !important; max-width: none !important; }
.mnav-top .vx-logo { height: 38px; width: auto; }
.footer .brand .vx-logo { height: 58px !important; width: auto !important; }
@media (max-width: 760px) {
	.brand .vx-logo, .header .brand-logo.vx-logo { height: 42px !important; }
}

/* ---------- Top strip: Pay online and Book a call always in reach ---------- */
.vc-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; }
.vc-strip__pay, .vc-strip__call {
	display: inline-flex; align-items: center; gap: .45em;
	padding: .3em .95em; border-radius: 999px;
	font-weight: 600 !important; font-size: .86rem !important;
	text-decoration: none !important;
}
.vc-strip__pay { background: var(--lx-orange); color: #fff !important; }
.vc-strip__pay svg { width: 15px; height: 15px; fill: currentColor; }
.vc-strip__call { border: 1px solid rgba(255,255,255,.4); color: #fff !important; }
.vc-strip__pay:hover { background: var(--lx-orange-deep); }
@media (max-width: 760px) { .vc-strip__call, .vc-strip__tag { display: none !important; } }

/* ---------- Header ---------- */
.header-cta { display: flex; align-items: center; gap: 12px; }
.vx-pay {
	display: inline-flex; align-items: center; gap: .45em;
	padding: .62em 1.15em; border-radius: 999px;
	border: 1.5px solid currentColor; color: inherit;
	font-weight: 600 !important; font-size: .95rem !important; text-decoration: none !important;
	transition: background .25s, color .25s, border-color .25s;
}
.vx-pay:hover { background: var(--lx-orange); border-color: var(--lx-orange); color: #fff !important; }
@media (max-width: 1100px) { .header-cta .vx-pay { display: none; } }
.nav a { position: relative; }
.nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px;
	background: var(--lx-orange); transform: scaleX(0); transform-origin: left;
	transition: transform .3s var(--lx-ease);
}
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }

/* ---------- Full screen menu (phones and the drawer) ---------- */
.mobile-nav {
	background: var(--lx-teal) var(--vx-pattern) !important;
	color: #fff;
}
.mobile-nav .mnav-top { border-bottom: 1px solid rgba(255,255,255,.12); }
.mobile-nav .mnav-close { color: #fff; border-color: rgba(255,255,255,.3); }
.vx-langs {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px;
	padding: 14px 24px; color: rgba(255,255,255,.75);
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.vx-langs a { color: rgba(255,255,255,.75) !important; font-size: .95rem !important; text-decoration: none; }
.vx-langs a:hover, .vx-langs a:first-of-type { color: #fff !important; font-weight: 600 !important; }
.mobile-nav .mnav-list > li { border-bottom: 1px solid rgba(255,255,255,.12); }
.mobile-nav .mnav-link {
	color: var(--lx-sun) !important; padding-block: 18px !important;
	display: flex; justify-content: space-between; align-items: center; width: 100%;
	background: none; border: 0;
}
.mobile-nav .mnav-link:hover { color: #fff !important; }
.mobile-nav .mnav-idx { display: none !important; }
.mobile-nav .mnav-caret { color: #fff; width: 22px; height: 22px; }
.mobile-nav .mnav-sub a, .mobile-nav .mnav-country a { color: #fff !important; }
.mobile-nav .mnav-parks a { color: rgba(255,255,255,.7) !important; }
.mobile-nav .mnav-contact a { color: #fff !important; }
.vx-quick { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.vx-quick a {
	flex: 1 1 auto; text-align: center; padding: .7em 1em; border-radius: 999px;
	border: 1px solid rgba(255,255,255,.35); color: #fff !important; text-decoration: none;
	font-weight: 500 !important; font-size: .98rem !important;
}
.vx-quick a:hover { background: rgba(255,255,255,.1); }

/* ---------- Floating Menu pill on phones (the Nature's Pride touch) ---------- */
.vx-dock { display: none; }
@media (max-width: 760px) {
	.vx-dock {
		position: fixed; z-index: 9991; left: 50%; bottom: 14px; transform: translateX(-50%);
		display: flex; align-items: stretch; border-radius: 999px; overflow: hidden;
		background: var(--lx-teal); box-shadow: 0 14px 34px -12px rgba(8,29,36,.7), 0 0 0 3px rgba(255,255,255,.9);
	}
	.vx-dock button, .vx-dock a {
		display: inline-flex; align-items: center; gap: .45em; padding: .85em 1.1em; white-space: nowrap;
		background: none; border: 0; color: var(--lx-sun) !important; text-decoration: none;
		font-weight: 600 !important; font-size: 1rem !important; letter-spacing: .02em; cursor: pointer;
	}
	.vx-dock a { background: var(--lx-orange); color: #fff !important; }
	.vx-dock svg { width: 20px; height: 20px; }
	body .vbc-fab { display: none !important; }
	body .volcan-wa { bottom: 84px !important; }
	body:has(.vcc-banner:not([hidden])) .vx-dock { display: none; }
	main { padding-bottom: 20px; }
}

/* ---------- Colour blocks, home page ---------- */
.featured-tours, .vt-abroad, .vt-guides-teaser { background: #fff; }
.vt-reviews-strip, .section--alt { background: var(--lx-sand) !important; }
.vt-abroad + .section, .section--deep, .home main > .section--paper:last-of-type {
	background: var(--lx-teal) var(--vx-pattern) !important;
	color: #e7eef0;
}
:is(.vt-abroad + .section, .section--deep, .home main > .section--paper:last-of-type) :is(h2, h3, .h2, .h3) { color: #fff !important; }
:is(.vt-abroad + .section, .section--deep, .home main > .section--paper:last-of-type) p { color: #d3e0e3 !important; }
:is(.vt-abroad + .section, .section--deep, .home main > .section--paper:last-of-type) .eyebrow { color: var(--lx-sun) !important; }
:is(.vt-abroad + .section, .section--deep, .home main > .section--paper:last-of-type) a:not(.btn):not(.tour-view) { color: var(--lx-sun); }
.specialist {
	background: var(--lx-orange) !important;
	color: var(--lx-teal-ink);
}
.specialist :is(h2, h3, .h2, p, .eyebrow) { color: var(--lx-teal-ink) !important; }
.specialist .btn:not(.btn--ghost) { background: var(--lx-teal) !important; color: #fff !important; }
.specialist .btn--ghost { color: var(--lx-teal-ink) !important; }
.section-head h2::after, .section-head .h2::after { width: 72px; height: 4px; border-radius: 4px; }

/* ---------- Bigger, rounder tiles ---------- */
.tour-card, .stay-card, .dest-card, .vt-guide, .vpo-card { border-radius: var(--vx-radius) !important; }
.tour-card { position: relative; }
.tour-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tour-card .tour-view, .tour-card .tour-card-foot a { position: relative; z-index: 2; }
.tour-card .tour-view {
	display: inline-flex; align-items: center; gap: .4em;
	padding: .55em 1.1em; border-radius: 999px;
	background: var(--lx-orange); color: #fff !important; text-decoration: none !important;
}
.tour-card .tour-view::after { content: "\2192"; }
.tour-card:hover .tour-view { background: var(--lx-orange-deep); }
.tour-card-photo { border-radius: var(--vx-radius) var(--vx-radius) 0 0; }
.tour-tag { background: var(--lx-orange) !important; color: #fff !important; }

/* ---------- Footer ---------- */
.footer { background: var(--lx-teal-ink) var(--vx-pattern) !important; }
.footer a:hover { color: var(--lx-sun) !important; }

/* ---------- Single tour: itinerary links ---------- */
.vt-itin .f b a, .vt-itin .f span a { color: inherit; text-decoration: underline; text-decoration-color: var(--lx-orange); text-underline-offset: 3px; }

/* ---------- Pay online page ---------- */
.vpo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin: 10px 0 30px; }
.vpo-card {
	background: #fff; padding: clamp(22px, 3vw, 34px); box-shadow: var(--shadow-1);
	display: flex; flex-direction: column; gap: 12px; align-items: flex-start;
}
.vpo-card svg { color: var(--lx-orange); }
.vpo-card h2 { font-size: clamp(1.45rem, 2.2vw, 1.8rem) !important; margin: 0; color: var(--lx-teal); }
.vpo-card p { margin: 0; }
.vpo-card--main { background: var(--lx-teal) var(--vx-pattern); color: #e7eef0; box-shadow: var(--shadow-2); }
.vpo-card--main h2 { color: #fff !important; }
.vpo-card--main p { color: #d3e0e3 !important; }
.vpo-form { display: grid; gap: 12px; width: 100%; }
.vpo-form label { display: grid; gap: 6px; font-size: .95rem; color: #fff; }
.vpo-form input { width: 100%; padding: .85em 1em; border-radius: 10px; border: 0; font-size: 1rem; }
.vpo-form .btn { justify-self: start; border: 0; cursor: pointer; }
.vpo-ghost { color: var(--lx-teal) !important; }
.vpo-trust { list-style: none; padding: 22px 26px; margin: 0; background: var(--lx-sand); border-radius: var(--vx-radius); display: grid; gap: 10px; }
.vpo-trust li { padding-left: 30px; position: relative; }
.vpo-trust li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--lx-orange); font-weight: 700; }

/* Menu fixes: full screen on phones, compact language row, dock steps aside while the menu is open */
@media (max-width: 760px) { .mobile-nav { width: 100% !important; max-width: none !important; } }
.mobile-nav .vx-langs a { display: inline-block !important; width: auto !important; padding: 4px 2px !important; border: 0 !important; margin: 0 !important; background: none !important; }
body.nav-open .vx-dock, body.nav-open .volcan-wa, body.nav-open .vbc-fab { display: none !important; }
.mobile-nav .mnav-foot { background: rgba(8,29,36,.55) !important; border-top: 1px solid rgba(255,255,255,.12); }
.mobile-nav .mnav-foot .vt-social a { color: #fff !important; }

/* Planning guides block on destination pages */
.vx-guides { background: var(--lx-sand); }
.vx-guide-list { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.vx-guide-list a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 20px; background: #fff; border-radius: 14px; box-shadow: var(--shadow-1); color: var(--lx-teal); text-decoration: none; font-weight: 500; min-height: 48px; }
.vx-guide-list a::after { content: "\2192"; color: var(--lx-orange); }
.vx-guide-list a:hover { box-shadow: var(--shadow-2); }

/* Homepage trip entry points */
.vx-entry { background: var(--lx-teal); padding: 18px 0; }
.vx-entry .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.vx-entry a { display: grid; gap: 2px; padding: 16px 18px; border-radius: 14px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); color: #fff !important; text-decoration: none; min-height: 48px; transition: background .25s, border-color .25s; }
.vx-entry a:hover, .vx-entry a:focus-visible { background: var(--lx-orange); border-color: var(--lx-orange); }
.vx-entry-k { font-weight: 600 !important; font-size: 1.08rem !important; }
.vx-entry-s { font-size: .9rem !important; color: rgba(255,255,255,.75); }
.vx-entry a:hover .vx-entry-s { color: #fff; }
@media (max-width: 900px) { .vx-entry .wrap { grid-template-columns: repeat(2, 1fr); } }

/* =====================================================================
   Volcan v4 (27 Oct 2026): elephant logo. Ivory base from the approved
   artwork, teal #0F3743 and sunrise orange #F28820 throughout, photos
   graded towards the same palette (images themselves untouched).
   ===================================================================== */
:root { --b2-teal:#0F3743; --b2-teal-ink:#0A2730; --b2-orange:#F28820; --b2-orange-deep:#D8741A; --b2-ivory:#FDFCF7; --b2-sand:#F5EFE3; }
body { background: var(--b2-ivory) !important; }
.section--paper, .section--alt, .vt-reviews-strip { background: var(--b2-sand) !important; }
.featured-tours, .vt-guides-teaser { background: var(--b2-ivory) !important; }
.brand .vx-logo, .header .brand-logo.vx-logo { height: 58px !important; }
.mnav-top .vx-logo { height: 46px !important; }
.footer .brand .vx-logo--stack { height: 132px !important; width: auto !important; }
@media (max-width: 760px) { .brand .vx-logo, .header .brand-logo.vx-logo { height: 46px !important; } }
.header.is-solid, .header--always-solid { background: #FDFCF7 !important; box-shadow: 0 1px 0 rgba(15,55,67,.10); }
.nav a { font-weight: 600 !important; }
.eyebrow { color: var(--b2-orange-deep) !important; }
.btn:not(.btn--ghost) { background: var(--b2-orange) !important; color: #fff !important; border-color: var(--b2-orange) !important; }
.btn:not(.btn--ghost):hover { background: var(--b2-teal) !important; border-color: var(--b2-teal) !important; }
.hero { position: relative; isolation: isolate; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: radial-gradient(120% 70% at 75% 0%, rgba(242,136,32,.22), transparent 60%),
		linear-gradient(to top, rgba(10,39,48,.78) 0%, rgba(15,55,67,.35) 45%, rgba(15,55,67,.10) 100%); }
.hero > .hero-content { position: relative; z-index: 2; }
.hero .hero-media img, .hero .hero-media video { filter: saturate(1.06) contrast(1.04); }
.tour-card-photo, .stay-card-photo, .dest-card-photo { position: relative; overflow: hidden; }
.tour-card-photo::after, .stay-card-photo::after, .dest-card-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
	background: linear-gradient(to top, rgba(15,55,67,.42), rgba(15,55,67,0) 55%), linear-gradient(to bottom, rgba(242,136,32,.12), rgba(242,136,32,0) 40%); }
.tour-card-photo .tour-tag { z-index: 2; background: var(--b2-teal) !important; }
.tour-card img, .stay-card img, .dest-card img { filter: saturate(1.05) contrast(1.03); transition: transform .6s ease; }
.tour-card:hover img, .stay-card:hover img, .dest-card:hover img { transform: scale(1.04); }
.tour-card { background: #fff; border: 1px solid rgba(15,55,67,.08); box-shadow: 0 10px 30px -18px rgba(15,55,67,.35); }
.vx-entry .wrap > a:nth-child(odd) { background: var(--b2-teal) !important; color: #fff !important; }
.vx-entry .wrap > a:nth-child(even) { background: var(--b2-orange) !important; color: #fff !important; }
.vx-entry .wrap > a * { color: #fff !important; }
.footer { background: var(--b2-teal-ink) !important; border-top: 4px solid var(--b2-orange); }
.vx-entry { background: var(--b2-ivory) !important; padding-block: 22px !important; }
.vx-entry .wrap > a { border: 0 !important; box-shadow: 0 12px 26px -16px rgba(15,55,67,.55); }
:root { --vx-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='160' viewBox='0 0 220 160'%3E%3Cg fill='%23F28820' fill-opacity='.13'%3E%3Cpath d='M30 70a26 26 0 0 1 52 0z'/%3E%3Cpath d='M150 140a16 16 0 0 1 32 0z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='3' stroke-linejoin='round'%3E%3Cpath d='M6 76 L40 62 L52 52 L58 56 L64 50 L72 60 L106 76'/%3E%3Cpath d='M132 146 L152 137 L160 131 L164 134 L168 130 L174 136 L196 146'/%3E%3C/g%3E%3C/svg%3E"); }

/* ---------- 27 Oct, round 3: socials top right, centred content, sentence case ---------- */
.vc-strip .vc-strip__social { display: flex !important; gap: 8px; margin: 0 0 0 auto !important; padding: 0; list-style: none; }
.vc-strip .vc-strip__social li { margin: 0; }
.vc-strip .vc-strip__social a { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; color: var(--b2-teal) !important; }
.vc-strip .vc-strip__social a:hover { background: var(--b2-orange); color: #fff !important; }
.vc-strip .vc-strip__social svg { width: 14px; height: 14px; }
@media (max-width: 760px) {
	.vc-strip .vc-strip__email, .vc-strip .vc-strip__wa { display: none !important; }
	.vc-strip .vc-strip__social a { width: 24px; height: 24px; }
}

/* No all-capitals anywhere: sentence case reads calmer and is easier to scan */
body :not(#vx-none), body :not(#vx-none)::before, body :not(#vx-none)::after { text-transform: none !important; font-variant-caps: normal !important; }
.eyebrow, .tour-tag, .footer h4, .hero-trust, .vc-strip__tag, .tour-meta, .tour-card-meta, .stay-kicker, .f-langs-lb, .vbc-fab, .vcc-btn, small { letter-spacing: .01em !important; }
.eyebrow { font-size: 1rem !important; font-weight: 600 !important; }

/* Centred content on every page */
.hero-content, .page-hero, .page-hero .wrap { text-align: center !important; margin-inline: auto !important; }
.hero-content { display: flex; flex-direction: column; align-items: center; }
.hero-content > * { margin-inline: auto !important; max-width: 920px; }
.hero-content [class*="cta"], .hero-content [class*="btn"]:not(.btn), .hero-content .hero-actions { justify-content: center !important; }
.section-head, .section-head--split { text-align: center !important; margin-inline: auto !important; justify-content: center !important; flex-direction: column !important; align-items: center !important; max-width: 820px; }
.section-head > *, .section-head--split > * { margin-inline: auto !important; text-align: center !important; }
.section-head h2::after, .section-head .h2::after, h2.h2::after { margin-inline: auto !important; left: 0; right: 0; }
.eyebrow { justify-content: center; }
main .wrap > p, main .wrap > h1, main .wrap > h2, main .wrap > h3, .lede, .cta-band, .cta-band .wrap, .specialist, .specialist .wrap { text-align: center !important; margin-inline: auto !important; }
.cta-band .wrap > *, .specialist .wrap > * { margin-inline: auto !important; justify-content: center !important; }
.tour-card-body, .stay-card-body, .dest-card-body, .vt-guide-body { text-align: center; }
.tour-card-body > *, .tour-card-foot { justify-content: center !important; margin-inline: auto; }
.split-2 > div:not(.split-media) { text-align: center; }
.entry-content, .page-content, .legal, .vt-legal, article .wrap, .single-content { max-width: 780px; margin-inline: auto !important; }
.entry-content h2, .entry-content h3, .page-content h2, .page-content h3 { text-align: center; }
.footer .footer-top > div { text-align: center; }
.footer .footer-top ul { padding: 0; list-style: none; }
.footer .vt-social, .footer .brand { justify-content: center; margin-inline: auto; display: flex; }
.footer-bottom { text-align: center; justify-content: center !important; }
.f-langs { justify-content: center; }
.vc-strip { align-items: center !important; }
.vc-strip .vc-strip__social { align-items: center; }

/* Professional framing: every photo fills its frame without distortion, framed slightly above centre so heads, horizons and skylines stay in shot */
.tour-card-photo img, .stay-card-photo img, .dest-card-photo img, .vt-guide-photo img, .split-media img, .fleet-shot img, .gallery img, .vt-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.tour-card-photo, .stay-card-photo, .dest-card-photo { aspect-ratio: 3 / 2; }
.hero .hero-media img, .page-hero img { object-fit: cover; object-position: 50% 45%; }
img { image-rendering: auto; }

/* Centred headings and intros on single safari, lodge and park pages too */
main h1, main h2, main .h1, main .h2 { text-align: center !important; margin-inline: auto !important; }
main h1 + p, main h2 + p, main .lede, main .intro, main [class*="lede"], main [class*="intro"] { text-align: center !important; margin-inline: auto !important; max-width: 760px; }
main .eyebrow, main [class*="eyebrow"], main [class*="kicker"] { display: flex; justify-content: center; text-align: center !important; }
.single-tour_package main .wrap, .single-accommodation main .wrap, .single-park main .wrap { margin-inline: auto !important; }
.single-tour_package main [class*="facts"], .single-accommodation main [class*="facts"], main [class*="actions"], main [class*="ctas"] { justify-content: center !important; text-align: center; }
main h2.h2::after, main h2::after { margin-inline: auto !important; }

/* =====================================================================
   Round 4 (27 Oct): Konza Tropicals style layout in Volcan colours.
   Centred large logo, Menu pill left, action pill right, calmer type,
   hero with key figures and photo tiles, off-brand colours remapped.
   ===================================================================== */
/* ---------- Header: centred logo ---------- */
.header .header-inner { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; column-gap: 16px; row-gap: 4px; padding-block: 10px !important; }
.header .header-cta { display: contents !important; }
.header .brand { grid-column: 2; grid-row: 1; justify-self: center; margin: 0 !important; }
.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 84px !important; }
.header .header-cta .btn { grid-column: 3; grid-row: 1; justify-self: end; border-radius: 999px !important; }
.header .menu-btn { grid-column: 1; grid-row: 1; justify-self: start; display: flex !important; position: relative; width: auto !important; height: 42px !important; padding: 0 18px 0 16px !important; padding-right: 64px !important; border-radius: 999px; background: var(--b2-teal) !important; color: #fff !important; align-items: flex-start !important; }
.header .menu-btn span { width: 18px !important; }
.header .menu-btn::after { content: "Menu"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-weight: 600; font-size: .95rem; letter-spacing: .01em; }
.header .nav { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
.header .nav a { font-size: .98rem !important; }
@media (max-width: 1024px) {
	.header .nav { display: none !important; }
	.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 58px !important; }
	.header .menu-btn { padding-right: 16px !important; }
	.header .menu-btn::after { content: none; }
}
@media (max-width: 760px) {
	.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 50px !important; }
	.header .header-cta .btn { padding: .55em .95em !important; font-size: .85rem !important; }
}

/* ---------- Calmer type scale ---------- */
.hero h1, .hero .h1 { font-size: clamp(2rem, 4.4vw, 3.4rem) !important; line-height: 1.06 !important; font-weight: 700 !important; letter-spacing: -.01em; max-width: 16ch; }
.page-hero h1, .page-hero .h1, .detail-hero h1 { font-size: clamp(1.9rem, 3.8vw, 3rem) !important; line-height: 1.1 !important; }
main h2, main .h2 { font-size: clamp(1.55rem, 2.6vw, 2.2rem) !important; line-height: 1.15 !important; }
main h3, main .h3 { font-size: clamp(1.15rem, 1.6vw, 1.35rem) !important; }
.hero .lede, .page-hero .lede, main .lede { font-size: clamp(1rem, 1.25vw, 1.12rem) !important; line-height: 1.6 !important; max-width: 60ch; }
main p { font-size: 1.02rem; }
.eyebrow { font-size: .9rem !important; letter-spacing: .02em !important; }
.section { padding-block: clamp(56px, 7vw, 96px) !important; }

/* ---------- Hero: Konza style ---------- */
.home .hero { min-height: 88vh !important; padding-bottom: 120px !important; }
.home .hero .hero-content { padding-top: clamp(150px, 18vh, 200px) !important; }
.hero .eyebrow { color: var(--b2-orange) !important; }
.hero h1 em { color: var(--b2-orange) !important; }
.hero .hero-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.hero .hero-actions .btn { border-radius: 999px !important; }
.vx-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 40px; list-style: none; padding: 0; margin: 30px auto 0 !important; }
.vx-stats li { display: grid; justify-items: center; gap: 2px; min-width: 110px; }
.vx-stats b { font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1; font-weight: 700; color: var(--b2-orange); }
.vx-stats span { font-size: .88rem; color: #E7EEF0; }

/* ---------- Photo tiles overlapping the hero ---------- */
.home .vx-entry { background: transparent !important; margin-top: -96px !important; position: relative; z-index: 3; padding-block: 0 36px !important; }
.vx-entry .wrap { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.vx-entry .wrap > a:nth-child(n) { min-height: 200px; border-radius: 18px; padding: 18px !important; display: flex !important; flex-direction: column; justify-content: flex-end; align-items: center; text-align: center; color: #fff !important; text-decoration: none;
	background: linear-gradient(to top, rgba(10,39,48,.88), rgba(10,39,48,.15) 62%), var(--vx-img) center / cover no-repeat !important; box-shadow: 0 18px 36px -18px rgba(10,39,48,.7); transition: transform .3s ease; }
.vx-entry .wrap > a:nth-child(n):hover { transform: translateY(-4px); }
.vx-entry .vx-entry-k { font-weight: 700; font-size: 1.1rem; }
.vx-entry .vx-entry-s { font-size: .88rem; opacity: .92; }
.vx-entry .wrap > a::after { content: ""; width: 34px; height: 3px; border-radius: 3px; background: var(--b2-orange); margin-top: 10px; }
@media (max-width: 900px) { .vx-entry .wrap { grid-template-columns: repeat(2, 1fr); } .vx-entry .wrap > a:nth-child(n) { min-height: 150px; } }
.vt-trade-strip { text-align: center; }

/* ---------- Buttons as pills, like the benchmark ---------- */
.btn { border-radius: 999px !important; }

/* ---------- Off-brand colours mapped to the logo palette (teal, orange, ivory, greys) ---------- */
.vc-strip > span.vc-strip__tag { color:#8A9BA1 !important; }
.ft-head > form.vf.vf--link, .wrap > form.vf.vf--live { border-color:rgba(15,55,67,.30) !important; }
.vf-head > span.vf-kicker { color:#F6B56B !important; }
.vf-field > legend, .vf-field > label, .vf-field > span.vf-scale, .vf-scale > span, .vf-foot > button.vf-clear { color:#E7EEF0 !important; }
.vf > div.vf-foot { border-color:rgba(15,55,67,.27) !important; }
.tour-card-body > p.tour-meta { color:#3D4C52 !important; }
.specialist-photo > span.specialist-status { background-color:#F28820 !important; }
.f-news-copy > p, .f-news-form > label.f-news-consent, .f-news-consent > input, .f-news-consent > span { color:#9FB3BA !important; }
.vt-chat > button.vt-chat-btn { background-color:#0F3743 !important; }
.vt-chat-tip > button { color:#5A6A70 !important; }
.top > span.n.js-n { color:#F6B56B !important; }
.top > span.of.js-of { color:#8A9BA1 !important; }
.prog > span.fill.js-fill { background-color:#F28820 !important; }
.kick > i, .spot > span.hi, .months > div.best, .igal-grid > button.igal-t { background-color:#FDF1E4 !important; }
.months > div.ok { background-color:rgba(242,136,32,.2) !important; }
.in > p.sub, .spot > span, .vt-lbx > div.vt-lbx-n { color:#E7EEF0 !important; }
.f > b, .rv > span.tag.tag--gold, .rule > span.sublabel, span.fold-lb, .leg > i, .foot > a.jump, .wrapx > a.jump.jump--m, .in > span.tag.tag--gold, .price > span.from { color:#F6B56B !important; }
.acts > a.b.b--soft, .foot > a.b.b--soft, .stop > span.mk { background-color:#0F3743 !important; }
.rv > div.sub, .sub > p, .fold-body > div.mkey, .mkey > span, .in > p, .price > span { color:#8A9BA1 !important; }
.fold-body > p.fine, .months > div, .bits > span.bit, .car-head > span, .car > div.swipe, .stayb-head > span.nights, .who > span.mini, .stayb > div.quiet, .quiet > span, .col > p.note, .pricetab > p.pt-note, p.note, .in > p.fine, .tour-tags > span, .tour-price > small { color:#5A6A70 !important; }
.head > span.tag.tag--terra, .dayrail > b, .top > div.n, p.place, .car-head > b, .stayb-head > h4, .who > span.loc, span.go, .go > span.t1, .go > span.t2, .body > button.all, .col > h3, span.mk, .pricetab > span.pt-lb, .wrapx > a.vrev-more, .vq-copy > span.tag.tag--terra, span.vt-share-done, p.form-status, .note > a, .in > div.price, .vtco-sec > span.vtco-err { color:#D8741A !important; }
span.mk { background-color:rgba(242,136,32,.16) !important; }
.head > p.lead, div.txt, .txt > p, .nav > button.prev, .nav > button.next, .body > p.desc, .qa-a > p, .vq-copy > p.lead, .vq-points > li, .vt-share > span.vt-share-lb, p.qp-sub, label.form-consent, .form-consent > input, .form-consent > span { color:#3D4C52 !important; }
.foot > a.jump, .wrapx > a.jump.jump--m, .stayb-head > span.nights, .stayrow > div.body, div.day, .wrapx > div.pricetab.rv, .wrapx > a.vrev-more, .qa > div.wrapx.qa-in, .qa-list > details.qa-i, .vq-points > li, .form-field > input, .form-field > select, .form-field > textarea, .tour-tags > span { border-color:rgba(15,55,67,.16) !important; }
.footer-bottom, .footer-bottom > span, .footer small.f-reg { color:#9FB3BA !important; }
.vt-chat-btn > span.vt-chat-dot, .vt-chat-btn > span.vt-chat-n { background-color:#F28820 !important; }
.lede, .lede > p { color:#3D4C52 !important; border-color:rgba(15,55,67,.16) !important; }
:is(.hero, .page-hero, .detail-hero, .detail-hero-content, .section--deep, .cta-band, .specialist) :is(.lede, .lede > p) { color:#E7EEF0 !important; }
a.volcan-wa { background-color:#0F3743 !important; color:#fff !important; box-shadow:0 0 0 3px rgba(242,136,32,.55), 0 10px 26px -10px rgba(10,39,48,.6) !important; }
.mobile-nav .mnav-link { color:#FFFFFF !important; }
.mobile-nav .mnav-link:hover { color:var(--b2-orange) !important; }
.hero .hero-content > .eyebrow { order: -1 !important; margin-bottom: 14px; font-weight: 600 !important; }

/* ---------- Book with confidence ---------- */
.vx-trust { background: var(--b2-ivory) !important; }
.vx-trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.vx-q { background: #fff; border: 1px solid rgba(15,55,67,.1); border-top: 4px solid var(--b2-orange); border-radius: 16px; padding: 22px 22px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; box-shadow: 0 12px 28px -20px rgba(15,55,67,.45); }
.vx-q h3 { margin: 0; color: var(--b2-teal) !important; font-size: 1.15rem !important; }
.vx-q p { margin: 0; color: #3D4C52; font-size: .98rem; line-height: 1.6; }
.vx-q a { margin-top: auto; font-weight: 600; color: var(--b2-orange-deep) !important; text-decoration: none; }
.vx-q a::after { content: " \2192"; }
@media (max-width: 900px) { .vx-trust-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .vx-trust-grid { grid-template-columns: 1fr; } }

/* ---------- Taller header so the full logo and menu row fit (27 Oct, round 4b) ---------- */
:root { --header-h: 168px !important; }
.header .header-inner { height: var(--header-h) !important; min-height: var(--header-h) !important; padding-block: 12px 10px !important; overflow: visible; }
.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 100px !important; width: auto !important; max-width: none !important; image-rendering: auto; }
.header .nav { align-self: end; padding-bottom: 2px; }
.header, .header.is-solid, .header--always-solid { min-height: var(--header-h); }
@media (max-width: 1024px) {
	:root { --header-h: 92px !important; }
	.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 66px !important; }
}
@media (max-width: 760px) {
	:root { --header-h: 84px !important; }
	.header .brand .vx-logo, .header .brand-logo.vx-logo { height: 60px !important; }
}

html body .header, html body .header .header-inner { --header-h: 168px !important; }
html body .header .header-inner { height: 168px !important; min-height: 168px !important; }
@media (max-width: 1024px) { html body .header, html body .header .header-inner { --header-h: 92px !important; } html body .header .header-inner { height: 92px !important; min-height: 92px !important; } }
@media (max-width: 760px) { html body .header, html body .header .header-inner { --header-h: 84px !important; } html body .header .header-inner { height: 84px !important; min-height: 84px !important; } }
@media (min-width: 1025px) {
	.page-hero { padding-top: 290px !important; }
	.home .hero .hero-content { padding-top: 280px !important; }
	.home .hero { min-height: 92vh !important; }
}
@media (min-width: 1025px) { .vt-booking-form main > .vtco { padding-top: 220px !important; } }
@media (max-width: 1024px) { .vt-booking-form main > .vtco { padding-top: 140px !important; } }

/* =====================================================================
   Round 5 (27 Oct): compact header while reading, itinerary panels in
   logo colours, price estimate notes.
   ===================================================================== */
/* ---------- Compact header once the visitor scrolls ---------- */
.vc-strip, .header, .header .header-inner, .header .brand .vx-logo, .header .nav { transition: transform .35s ease, top .35s ease, height .35s ease, min-height .35s ease, opacity .25s ease; }
html body.vx-compact .vc-strip { transform: translateY(-110%); }
body.vx-compact .header { top: 0 !important; box-shadow: 0 6px 20px -12px rgba(10,39,48,.45); }
body.admin-bar.vx-compact .header { top: 32px !important; }
html body.vx-compact .header, html body.vx-compact .header .header-inner { --header-h: 76px !important; }
html body.vx-compact .header .header-inner { height: 76px !important; min-height: 76px !important; padding-block: 8px !important; }
html body.vx-compact .header .brand .vx-logo, html body.vx-compact .header .brand-logo.vx-logo { height: 56px !important; }
html body.vx-compact .header .nav { opacity: 0; pointer-events: none; height: 0; overflow: hidden; }
@media (max-width: 1024px) {
	html body.vx-compact .header, html body.vx-compact .header .header-inner { --header-h: 64px !important; }
	html body.vx-compact .header .header-inner { height: 64px !important; min-height: 64px !important; }
	html body.vx-compact .header .brand .vx-logo, html body.vx-compact .header .brand-logo.vx-logo { height: 44px !important; }
}
@media (max-width: 782px) { body.admin-bar.vx-compact .header { top: 0 !important; } }
.mobile-nav { top: 0 !important; }

/* ---------- Itinerary and lodge pages: dark panels in deep teal ---------- */
.vt-itin section.ov, .vt-itin section.book, section.ov, section.book, header.ihero { background-color: #0A2730 !important; }
.vt-itin .daybar, .daybar { background-color: rgba(10,39,48,.94) !important; }
.lb { background-color: rgba(8,29,36,.96) !important; }
span.badge { background-color: rgba(10,39,48,.85) !important; color: #fff !important; }
span.igal-more { background-color: rgba(10,39,48,.55) !important; }
.ov span[style*="background"], .book span[style*="background"] { background-color: #0F3743 !important; }
.ov, .book, .ihero { color: #E7EEF0 !important; }
.ov .fold-lb, .book .fold-lb, .ov .eyebrow { color: #F28820 !important; letter-spacing: .02em !important; font-size: .9rem !important; }
/* Wildlife chips: solid = seen on almost every departure, outline = possible */
.spot > span { background: transparent !important; color: #E7EEF0 !important; border: 1px solid rgba(231,238,240,.55) !important; }
.spot > span.hi { background: #F28820 !important; color: #fff !important; border-color: #F28820 !important; }
/* Best months: orange = best, soft orange = quieter, outline = green season */
.months > div { background: transparent !important; color: #E7EEF0 !important; border: 1px solid rgba(231,238,240,.35) !important; }
.months > div.best { background: #F28820 !important; color: #fff !important; border-color: #F28820 !important; }
.months > div.ok { background: rgba(242,136,32,.38) !important; color: #fff !important; border-color: rgba(242,136,32,.6) !important; }
.leg i { color: inherit !important; }
.leg i:nth-of-type(1), .leg > i:first-child { background: #F28820 !important; border-color: #F28820 !important; }
.leg i:nth-of-type(2) { background: rgba(242,136,32,.38) !important; border-color: rgba(242,136,32,.6) !important; }
.leg i:nth-of-type(3) { background: transparent !important; border: 1px solid rgba(231,238,240,.6) !important; }
.leg, .leg span { color: #E7EEF0 !important; }
.ov p.fine, .ov .fine, .fold-body > p.fine { color: #B9C8CD !important; }
.ov a, .book a:not(.btn):not(.b) { color: #F6B56B !important; }

/* ---------- Price estimates ---------- */
.vx-estimate { margin: 0; padding: 14px 20px; text-align: center; background: #FDF1E4; color: #0F3743; font-size: .95rem; font-weight: 600; border-top: 3px solid #F28820; }
.tour-price::after, .tour-card .price::after { content: "Estimated price"; display: block; font-size: .75rem; font-weight: 500; color: #5A6A70; letter-spacing: .01em; }

/* ---------- Kenya eTA box ---------- */
.vx-eta { background: #0F3743 var(--vx-pattern); color: #E7EEF0; padding: clamp(36px, 5vw, 56px) 0; text-align: center; border-top: 4px solid #F28820; }
.vx-eta h2 { color: #fff !important; font-size: clamp(1.35rem, 2.2vw, 1.8rem) !important; margin: 0 0 10px; }
.vx-eta p { max-width: 760px; margin: 0 auto 14px; color: #D3E0E3; font-size: 1rem; line-height: 1.65; }
.vx-eta .vx-eta-links { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 0; }
.vx-eta .btn--ghost { border-color: #fff !important; color: #fff !important; }
/* ---------- Longer action button in the header ---------- */
.header .header-cta .btn { white-space: nowrap; font-size: .95rem !important; padding: .7em 1.3em !important; }
@media (max-width: 1180px) and (min-width: 1025px) { .header .header-cta .btn { font-size: .85rem !important; padding: .6em 1em !important; } }
@media (max-width: 1024px) { .header .header-cta .btn { display: none !important; } }


/* ---------- 27 Oct: no top strip, socials in the header, WhatsApp green ---------- */
html:root, html body { --vc-strip-h: 0px !important; }
.vc-strip { display: none !important; }
.header .vx-head-right { grid-column: 3; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: 12px; }
.header .vx-head-social { display: flex !important; gap: 8px; margin: 0; padding: 0; list-style: none; }
.header .vx-head-social li { margin: 0; }
.header .vx-head-social a { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--b2-teal); color: #fff !important; box-shadow: 0 0 0 2px rgba(255,255,255,.85); transition: background .2s ease; }
.header .vx-head-social a:hover, .header .vx-head-social a:focus-visible { background: var(--b2-orange); }
.header .vx-head-social svg { width: 17px; height: 17px; fill: currentColor; }
@media (max-width: 760px) { .header .vx-head-social { gap: 6px; } .header .vx-head-social a { width: 30px; height: 30px; } .header .vx-head-social svg { width: 15px; height: 15px; } }
a.volcan-wa, html body a.volcan-wa { background-color: #25D366 !important; color: #fff !important; box-shadow: 0 10px 26px -10px rgba(7,94,84,.7) !important; }
a.volcan-wa:hover, a.volcan-wa:focus-visible { background-color: #128C7E !important; }
a.volcan-wa svg { fill: #fff !important; }
.header .vx-head-right .vx-head-social { flex-direction: row !important; flex-wrap: nowrap !important; position: static !important; }
@media (max-width: 420px) { .header .vx-head-social a { width: 26px; height: 26px; } .header .vx-head-social svg { width: 13px; height: 13px; } .header .vx-head-social { gap: 4px; } }
@media (max-width: 1024px) { .header .vx-head-right { gap: 0; min-width: 0; } .header .vx-head-social { gap: 5px; } .header .vx-head-social a { width: 30px; height: 30px; } .header .vx-head-social svg { width: 14px; height: 14px; } }
@media (max-width: 560px) { .header .vx-head-social a { width: 26px; height: 26px; box-shadow: 0 0 0 1.5px rgba(255,255,255,.85); } .header .vx-head-social svg { width: 12px; height: 12px; } .header .vx-head-social { gap: 4px; } }
@media (max-width: 1024px) { html body .header .brand .vx-logo { height: clamp(36px, 9vw, 76px) !important; width: auto !important; max-width: none !important; } }

/* ---------- 27 Oct: one bottom help button (Marion + WhatsApp) ---------- */
.vbc-fab, .vx-dock, .vt-chat, a.volcan-wa, html body a.volcan-wa { display: none !important; }
body { padding-bottom: 0 !important; }
.vx-help { position: fixed; right: 18px; bottom: 18px; z-index: 90; display: inline-flex; align-items: center; gap: 10px; padding: 5px 18px 5px 5px; border-radius: 999px; background: #25D366; color: #fff !important; text-decoration: none !important; box-shadow: 0 12px 28px -12px rgba(7,94,84,.75), 0 0 0 3px #fff; font-family: inherit; line-height: 1.1; transition: background .2s ease, transform .2s ease; }
.vx-help:hover, .vx-help:focus-visible { background: #128C7E; transform: translateY(-2px); }
.vx-help:focus-visible { outline: 3px solid #F28820; outline-offset: 3px; }
.vx-help__img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; flex: 0 0 auto; }
.vx-help__txt { display: flex; flex-direction: column; gap: 3px; }
.vx-help__q { font-size: .8rem; font-weight: 600; opacity: .95; }
.vx-help__a { display: inline-flex; align-items: center; gap: 6px; font-size: 1rem; font-weight: 700; }
.vx-help__a svg { fill: currentColor; }
body.nav-open .vx-help { display: none !important; }
@media (max-width: 560px) { .vx-help { right: 12px; bottom: 12px; padding-right: 14px; gap: 8px; } .vx-help__img { width: 44px; height: 44px; } .vx-help__a { font-size: .92rem; } }
@media print { .vx-help { display: none !important; } }

/* ---------- 27 Oct: centred block, left-aligned lists ---------- */
main ul:not([class]), main ol:not([class]) { text-align: left !important; width: fit-content; max-width: min(760px, 100%); margin-left: auto !important; margin-right: auto !important; padding-left: 1.4em !important; }
main ul:not([class]) > li, main ol:not([class]) > li { text-align: left !important; margin: 0 0 .55em; padding-left: .2em; }
main ul:not([class]) > li::marker { color: var(--b2-orange); }
main ol:not([class]) > li::marker { color: var(--b2-teal); font-weight: 700; }

/* ---------- 27 Oct: tour hero, calmer title and price basis beside the price ---------- */
html body .ihero h1 { font-size: clamp(1.9rem, 5.6vw, 3.6rem) !important; line-height: 1.08 !important; text-wrap: balance; }
html body .ihero .in { padding-top: 24px; }
html body .ihero .vx-hero-price i { display: block !important; font-style: normal; font-size: .74rem; line-height: 1.35; opacity: .9; max-width: 30ch; margin-top: 4px; letter-spacing: 0; }
@media (max-width: 760px) { body { padding-bottom: 76px; } }
html body .ihero .vx-hero-price i { color: #E7EEF0 !important; }

/* 27 Oct: park counts in the mobile menu did not match the links listed; hidden */
.mobile-nav .mnav-country > a > span[style] { display: none !important; }

/* 27 Oct: the help button steps aside while the cookie choice is open */
body:has(#vcc-banner:not([hidden])) .vx-help { display: none !important; }

/* Card price basis line, 27 Oct 2026 */
.tour-price .vx-cnote{display:block;margin-top:3px;font-size:11.5px;line-height:1.35;font-weight:500;color:#5C6B70;letter-spacing:0;white-space:normal;max-width:24ch}
/* Find your safari panel in the logo colours: teal panel, orange accents (27 Oct 2026) */
form.vf{background:radial-gradient(120% 90% at 100% 0%,rgba(242,136,32,.18),rgba(242,136,32,0) 60%),linear-gradient(160deg,#0F3743 0%,#0A2730 100%) !important;border:1px solid rgba(242,136,32,.28) !important;box-shadow:0 18px 40px rgba(15,55,67,.22) !important;color:#E7EEF0}
form.vf .vf-head{border-color:rgba(231,238,240,.16) !important}
form.vf .vf-kicker{color:#F28820 !important}
form.vf .vf-kicker::before{background:#F28820 !important}
form.vf label,form.vf legend,form.vf .vf-label{color:#E7EEF0 !important}
form.vf button:not(.vf-cta):not([type=submit]){background:rgba(255,255,255,.04) !important;border:1px solid rgba(231,238,240,.28) !important;color:#FFFFFF !important}
form.vf button:not(.vf-cta):not([type=submit]):hover{border-color:#F28820 !important;color:#FFFFFF !important}
form.vf button[aria-pressed="true"]:not(.vf-cta){background:#F28820 !important;border-color:#F28820 !important;color:#0F3743 !important;font-weight:600}
form.vf button:focus-visible{outline:2px solid #F28820 !important;outline-offset:2px}
form.vf output,form.vf .vf-out,form.vf .vf-val{color:#FFFFFF !important}
form.vf small,form.vf .vf-min,form.vf .vf-max{color:#B9CBD1 !important}
form.vf input[type=range]{accent-color:#F28820}
form.vf input[type=range]::-webkit-slider-thumb{background:#F28820 !important;border-color:#FFFFFF !important}
form.vf input[type=range]::-moz-range-thumb{background:#F28820 !important;border-color:#FFFFFF !important}
/* WhatsApp button collapses to the photo while it would cover a button (27 Oct 2026) */
.vx-help.vx-help--mini{padding:4px;gap:0}
.vx-help.vx-help--mini .vx-help__txt{display:none}