/* =========================================================
   Safari Explorer - main theme stylesheet
   Palette: deep safari green + terracotta accent + warm sand
   ========================================================= */

:root {
	--se-green-900: #16281f;
	--se-green-800: #1f3d2c;
	--se-green-700: #2c5240;
	--se-green-600: #3c6b53;
	--se-terracotta: #c9622d;
	--se-terracotta-dark: #a84f22;
	--se-sand: #f7f3ea;
	--se-sand-dark: #efe8d8;
	--se-cream: #fffdf8;
	--se-text: #2b2b26;
	--se-text-light: #6b6a5f;
	--se-border: #e4ded0;
	--se-white: #ffffff;
	--se-radius: 10px;
	--se-radius-sm: 6px;
	--se-shadow: 0 10px 30px rgba(22, 40, 31, 0.09);
	--se-shadow-sm: 0 2px 10px rgba(22, 40, 31, 0.08);
	--se-font-heading: 'Tenor Sans', 'Helvetica Neue', Arial, sans-serif;
	--se-font-body: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
	--se-container: 1360px;
}

html { scroll-behavior: smooth; }

body {
	font-family: var(--se-font-body);
	color: var(--se-text);
	background: var(--se-cream);
	margin: 0;
	line-height: 1.6;
	font-size: 16px;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--se-font-heading);
	color: var(--se-green-900);
	line-height: 1.2;
	margin: 0 0 0.5em;
	font-weight: 600;
}

a { color: var(--se-green-700); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--se-terracotta); }

ul { margin: 0; padding: 0; list-style: none; }
p { margin: 0 0 1em; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px);
	width: 1px; height: 1px; overflow: hidden;
}
.se-skip-link:focus {
	position: fixed !important; clip: auto !important; width: auto !important; height: auto !important;
	top: 10px; left: 10px; z-index: 9999; background: var(--se-terracotta); color: #fff;
	padding: 12px 20px; border-radius: var(--se-radius-sm); font-weight: 600;
}

.se-container {
	max-width: var(--se-container);
	margin: 0 auto;
	padding: 0 24px;
}
.se-container-wide {
	max-width: 1560px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- Buttons ---------- */
.se-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 26px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 15px;
	letter-spacing: .2px;
	cursor: pointer;
	border: 2px solid transparent;
	transition: all .18s ease;
	white-space: nowrap;
}
.se-btn-primary {
	background: var(--se-terracotta);
	color: var(--se-white);
	border-color: var(--se-terracotta);
}
.se-btn-primary:hover { background: var(--se-terracotta-dark); border-color: var(--se-terracotta-dark); color: var(--se-white); }
.se-btn-outline {
	background: transparent;
	color: var(--se-green-800);
	border-color: var(--se-green-800);
}
.se-btn-outline:hover { background: var(--se-green-800); color: var(--se-white); }
.se-btn-outline-light {
	background: transparent;
	color: var(--se-white);
	border-color: rgba(255,255,255,.5);
}
.se-btn-outline-light:hover { background: rgba(255,255,255,.12); color: var(--se-white); border-color: #fff; }

/* ---------- Top bar ----------
   Measured from the reference at 1440px wide: a 44px bar, 13px text, 22px between groups with a 1px divider, 27px
   outlined buttons, a 32px currency box. Colours come from --se-hdr-bg and --se-hdr-accent (Customizer → Header). */
.se-topbar { background: var(--se-hdr-bg, #100e1a); color: #bcbac8; font-size: 13px; line-height: 1; }
.se-topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 44px; padding: 0 33px 0 26px; }
.se-topbar-left, .se-topbar-right { display: flex; align-items: center; min-width: 0; }
.se-topbar-right { justify-content: flex-end; }
.se-topbar a { color: inherit; }
.se-topbar a:hover { color: #fff; }
.se-topbar-group { display: inline-flex; align-items: center; min-height: 17px; }
.se-topbar-group + .se-topbar-group { margin-left: 23px; }
.se-topbar-group + .se-topbar-group::before { content: ""; flex: 0 0 auto; width: 1px; height: 17px; margin-right: 23px; background: rgba(255,255,255,.12); }
.se-topbar-message { margin: 0; white-space: nowrap; }
.se-topbar-menu { display: flex; gap: 16px; }
.se-topbar-status { display: inline-flex; align-items: center; gap: 4px; color: #c3c1ce; font-weight: 500; white-space: nowrap; }
.se-status-dot { width: 10px; height: 10px; border-radius: 50%; background: #e0b074; box-shadow: 0 0 0 2.5px rgba(224,176,116,.22); }
.se-topbar-status.is-open .se-status-dot { background: #4cc38a; box-shadow: 0 0 0 2.5px rgba(76,195,138,.25); animation: se-status-pulse 2.2s ease-out infinite; }
@keyframes se-status-pulse { 0% { box-shadow: 0 0 0 0 rgba(76,195,138,.5); } 70%, 100% { box-shadow: 0 0 0 7px rgba(76,195,138,0); } }
@media (prefers-reduced-motion: reduce) { .se-topbar-status.is-open .se-status-dot { animation: none; } }
.se-topbar-hours { margin-left: 5px; padding-left: 5px; border-left: 1px solid rgba(255,255,255,.12); color: #b4b3bf; font-size: 12px; line-height: 16px; white-space: nowrap; }
.se-topbar-phone, .se-topbar-email { display: inline-flex; align-items: center; gap: 10px; color: #b4b3bf; white-space: nowrap; }
.se-topbar-phone i, .se-topbar-email i { color: var(--se-hdr-accent-light, #c58a56); font-size: 17px; }
.se-flag { display: inline-block; flex: 0 0 auto; width: 16px; height: auto; border-radius: 2px; vertical-align: middle; }
.se-topbar-icons { display: inline-flex; align-items: center; }
.se-topbar-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--se-hdr-accent-light, #c58a56); }
.se-topbar-chat { width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.07); font-size: 14px; }
.se-topbar-heart { width: 20px; height: 26px; margin-left: -1px; font-size: 17px; }
.se-topbar-pill { display: inline-flex; align-items: center; gap: 6px; height: 27px; padding: 0 8px; border: 1px solid rgba(var(--se-hdr-accent-rgb, 184,115,51), .38); border-radius: 999px; color: var(--se-hdr-accent-light, #c58a56); font-size: 14px; font-weight: 500; white-space: nowrap; transition: background-color .15s ease, color .15s ease; }
.se-topbar-pill i { font-size: 15px; }
.se-topbar-pill:hover, .se-topbar-icon:hover { color: #fff; }
.se-topbar-pill:hover { background: rgba(var(--se-hdr-accent-rgb, 184,115,51), .18); }

/* Dropdowns: currency and language */
.se-dropdown { position: relative; }
.se-dropdown-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; background: none; color: inherit; font: inherit; line-height: 1; cursor: pointer; }
.se-currency .se-dropdown-toggle { height: 32px; padding: 0 6px 0 17px; gap: 4px; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(255,255,255,.03); color: #fff; font-size: 15px; font-weight: 500; }
.se-currency-bullet { margin-left: 6px; font-size: 12px; opacity: .9; }
.se-currency-symbol:empty { display: none; }
.se-caret { width: 0; height: 0; margin-left: 3px; border-left: 4.5px solid transparent; border-right: 4.5px solid transparent; border-top: 6px solid #fff; }
.se-lang .se-dropdown-toggle { gap: 7px; color: #b4b3bf; font-size: 13px; }
.se-lang .se-dropdown-toggle i { font-size: 16px; }
.se-topbar .se-dropdown-toggle:hover { color: #fff; }
.se-dropdown-menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 300; min-width: 168px; margin: 0; padding: 6px; list-style: none; border-radius: 12px; background: #fff; color: var(--se-text); box-shadow: 0 14px 36px rgba(0,0,0,.28); text-align: left; }
.se-dropdown-menu[hidden] { display: none; }
.se-dropdown-menu li { margin: 0; }
.se-topbar .se-dropdown-menu a, .se-dropdown-menu button { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 11px; border: 0; border-radius: 8px; background: none; color: var(--se-text); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer; }
.se-topbar .se-dropdown-menu a:hover, .se-dropdown-menu button:hover, .se-dropdown-menu [aria-current], .se-dropdown-menu .is-active { background: var(--se-sand); color: var(--se-terracotta); }
.se-dropdown-note { padding: 6px 11px 4px; color: var(--se-text-light); font-size: 11.5px; line-height: 1.4; }
@media (max-width: 1260px) { .se-topbar-group-email { display: none; } }
@media (max-width: 1060px) { .se-topbar-group-account, .se-topbar-group-partner, .se-topbar-hours { display: none; } }
@media (max-width: 700px) { .se-topbar-inner { padding: 0 16px; } .se-topbar-group-message, .se-topbar-group-icons { display: none; } .se-topbar-group + .se-topbar-group { margin-left: 16px; } .se-topbar-group + .se-topbar-group::before { margin-right: 16px; } }
@media (max-width: 520px) { .se-topbar-phone span { display: none; } .se-currency .se-dropdown-toggle { padding: 0 10px; font-size: 13px; } }

/* ---------- Header ---------- */
.se-header { background: var(--se-white); box-shadow: var(--se-shadow-sm); position: relative; z-index: 100; }

/* Site-wide header banner image (Appearance → Customize → Header Image) */
.se-header-image { width: 100%; overflow: hidden; line-height: 0; max-height: 500px; }
.se-header-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 780px) {
	.se-header-image { max-height: 220px; }
}
.se-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 24px; }
.se-branding img { max-height: 56px; width: auto; display: block; }
.se-site-title { font-family: var(--se-font-heading); font-size: 26px; font-weight: 700; color: var(--se-green-900); }

.se-primary-nav { flex: 1; display: none; }
.se-menu { display: flex; align-items: center; gap: 6px; justify-content: center; }
.se-menu > li { position: relative; }
.se-menu > li > .menu-link {
	display: flex; align-items: center; gap: 4px;
	padding: 12px 14px; font-weight: 500; color: var(--se-text);
	border-radius: var(--se-radius-sm);
}
.se-menu > li > .menu-link:hover, .se-menu > li.has-mega-menu:hover > .menu-link, .se-menu > li.has-dropdown:hover > .menu-link {
	color: var(--se-terracotta);
	background: var(--se-sand);
}
.menu-caret { font-size: 16px; transition: transform .15s ease; }
.se-menu > li:hover .menu-caret { transform: rotate(180deg); }

/* Simple (non-mega) dropdown */
.se-menu li.has-dropdown > .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 240px;
	background: var(--se-white); box-shadow: var(--se-shadow); border-radius: var(--se-radius);
	padding: 10px; opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: all .18s ease; z-index: 50;
}
.se-menu li.has-dropdown:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.se-menu li.has-dropdown .sub-menu li a { display: block; padding: 9px 12px; border-radius: var(--se-radius-sm); color: var(--se-text); }
.se-menu li.has-dropdown .sub-menu li a:hover { background: var(--se-sand); color: var(--se-terracotta); }

/* Mega menu */
.se-menu li.has-mega-menu { position: static; }
.mega-menu-panel {
	position: absolute; left: 0; right: 0; top: 100%;
	background: var(--se-white); box-shadow: var(--se-shadow);
	display: flex; flex-wrap: wrap; gap: 32px;
	padding: 32px 40px; opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: all .18s ease; z-index: 50;
	border-top: 3px solid var(--se-terracotta);
}
.se-menu li.has-mega-menu:hover > .mega-menu-panel,
.se-menu li.has-mega-menu.is-open > .mega-menu-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.se-menu li.has-dropdown.is-open > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.mega-menu-panel > .mega-menu-column { min-width: 190px; }
.mega-menu-panel > .mega-menu-column > .menu-link {
	display: block; font-family: var(--se-font-heading); font-weight: 600; color: var(--se-green-800);
	margin-bottom: 10px; padding: 0; font-size: 15px;
}
.mega-menu-column-links li a { display: block; padding: 6px 0; color: var(--se-text-light); font-size: 14px; }
.mega-menu-column-links li a:hover { color: var(--se-terracotta); }

.se-header-actions { display: flex; align-items: center; gap: 10px; }
.se-search-toggle, .se-mobile-toggle {
	background: none; border: none; font-size: 22px; color: var(--se-green-900);
	cursor: pointer; padding: 8px; line-height: 1; border-radius: 50%;
}
.se-search-toggle:hover, .se-mobile-toggle:hover { background: var(--se-sand); }
.se-mobile-toggle { display: inline-flex; }
.se-header-cta { display: none; }

.se-search-panel { background: var(--se-sand); border-top: 1px solid var(--se-border); padding: 20px 0; }
.se-search-panel[hidden] { display: none; }
.se-search-form { display: flex; max-width: 640px; margin: 0 auto; }
.se-search-field { flex: 1; padding: 12px 16px; border: 1px solid var(--se-border); border-right: none; border-radius: 999px 0 0 999px; font-family: var(--se-font-body); font-size: 15px; }
.se-search-submit { border: none; background: var(--se-terracotta); color: #fff; padding: 0 20px; border-radius: 0 999px 999px 0; cursor: pointer; }

/* Mobile menu */
.se-mobile-menu { background: var(--se-white); border-top: 1px solid var(--se-border); padding: 16px 24px 24px; }
.se-mobile-menu[hidden] { display: none; }
.se-mobile-menu-list li { border-bottom: 1px solid var(--se-border); }
.se-mobile-menu-list > li > a { display: block; padding: 13px 4px; font-weight: 500; color: var(--se-text); }
.se-mobile-menu-list .sub-menu { padding-left: 14px; }
.se-mobile-menu-list .sub-menu a { color: var(--se-text-light); font-size: 14px; padding: 9px 4px; display: block; }
.se-mobile-cta { display: flex; width: 100%; margin-top: 16px; }

/* ---------- Hero ---------- */
.se-hero {
	position: relative; background: linear-gradient(160deg, var(--se-green-800), var(--se-green-700));
	background-size: cover; background-position: center;
	padding: 70px 0 120px; min-height: 460px;
	color: var(--se-white); text-align: left !important;
	display: flex; flex-direction: column; justify-content: center;
}
.se-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,.55), rgba(22,40,31,.75)); }
.se-hero-inner { position: relative; z-index: 2; max-width: 100% !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; padding-left: 24px !important; padding-right: 24px !important; box-sizing: border-box; }
.se-hero-heading { color: var(--se-white) !important; font-family: 'Merriweather', Georgia, serif !important; font-weight: 400 !important; font-style: italic !important; text-align: left !important; font-size: clamp(30px, 5vw, 48px); max-width: 820px; margin: 0 0 16px; }
.se-hero-subheading { max-width: 620px; margin: 0 0 40px; font-size: 17px; opacity: .92; }

/* ---------- Hero/Banner text alignment & position (Safari Explorer → Colours & Typography → General Layout) ---------- */
body.se-hero-position-top .se-hero,
body.se-hero-position-top .se-single-hero,
body.se-hero-position-top .se-package-hero,
body.se-hero-position-top .se-blog-hero { justify-content: flex-start !important; }
body.se-hero-position-bottom .se-hero,
body.se-hero-position-bottom .se-single-hero,
body.se-hero-position-bottom .se-package-hero,
body.se-hero-position-bottom .se-blog-hero { justify-content: flex-end !important; }

body.se-hero-align-center .se-hero,
body.se-hero-align-center .se-single-hero,
body.se-hero-align-center .se-single-hero-inner,
body.se-hero-align-center .se-package-hero,
body.se-hero-align-center .se-blog-hero-inner,
body.se-hero-align-center .se-hero-heading,
body.se-hero-align-center .se-hero-subheading,
body.se-hero-align-center .se-single-hero h1,
body.se-hero-align-center .se-package-hero h1,
body.se-hero-align-center .se-blog-hero h1,
body.se-hero-align-center .se-single-hero-meta,
body.se-hero-align-center .se-single-hero .safari-price { text-align: center !important; }
body.se-hero-align-center .se-hero-heading,
body.se-hero-align-center .se-hero-subheading { margin-left: auto !important; margin-right: auto !important; }
body.se-hero-align-center .se-single-hero-meta { justify-content: center !important; }
body.se-hero-align-center .se-single-hero-category { display: flex; justify-content: center; }

body.se-hero-align-right .se-hero,
body.se-hero-align-right .se-single-hero,
body.se-hero-align-right .se-single-hero-inner,
body.se-hero-align-right .se-package-hero,
body.se-hero-align-right .se-blog-hero-inner,
body.se-hero-align-right .se-hero-heading,
body.se-hero-align-right .se-hero-subheading,
body.se-hero-align-right .se-single-hero h1,
body.se-hero-align-right .se-package-hero h1,
body.se-hero-align-right .se-blog-hero h1,
body.se-hero-align-right .se-single-hero-meta,
body.se-hero-align-right .se-single-hero .safari-price { text-align: right !important; }
body.se-hero-align-right .se-hero-heading,
body.se-hero-align-right .se-hero-subheading { margin-left: auto !important; margin-right: 0 !important; }
body.se-hero-align-right .se-single-hero-meta { justify-content: flex-end !important; }
body.se-hero-align-right .se-single-hero-category { display: flex; justify-content: flex-end; }

.se-hero-search-form {
	background: var(--se-white); border-radius: var(--se-radius);
	box-shadow: var(--se-shadow); padding: 20px; max-width: 920px; margin: 0 auto;
	display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 14px; align-items: end;
	text-align: left;
}
.se-hero-field label { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--se-text-light); margin-bottom: 6px; }
.se-hero-field select {
	width: 100%; padding: 11px 12px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm);
	font-family: var(--se-font-body); font-size: 14px; color: var(--se-text); background: var(--se-cream);
}
.se-hero-submit { padding: 13px 24px; }

/* ---------- Hero Slider (Hero Slides CPT - homepage only, when 1+ exist) ---------- */
.se-hero-slider { position: relative; height: 640px; max-height: 85vh; overflow: hidden; background: var(--se-green-800); }
.se-hero-slides { position: relative; width: 100%; height: 100%; }
.se-hero-slide {
	position: absolute; inset: 0; background-size: cover; background-position: center;
	opacity: 0; visibility: hidden; transition: opacity 1s ease; display: flex; align-items: center; justify-content: center;
}
.se-hero-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.se-hero-slide-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.se-hero-slide-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,.45), rgba(22,40,31,.75)); z-index: 1; }
.se-hero-slide-content { position: relative; z-index: 2; text-align: center; color: #fff; max-width: 760px; padding: 0 24px; }
.se-hero-slide-content h1 { color: #fff; font-size: clamp(32px, 5.5vw, 54px); margin-bottom: 16px; }
.se-hero-slide-content p { font-size: 18px; opacity: .92; max-width: 600px; margin: 0 auto 30px; }

/* Matata skin: right-aligned text, elegant serif heading, bordered button */
.se-hero-slider-matata .se-hero-slide-content { text-align: right; max-width: 640px; margin-left: auto; margin-right: 6%; }
.se-hero-slider-matata .se-hero-slide-content h1 {
	font-family: 'Merriweather', Georgia, serif; font-weight: 400; font-style: italic;
	font-size: clamp(38px, 6vw, 64px); line-height: 1.15;
}
.se-hero-slider-matata .se-hero-slide-content p { margin-left: auto; margin-right: 0; text-align: right; }
.se-hero-slider-matata .se-hero-slide-overlay { background: linear-gradient(90deg, rgba(22,40,31,.15), rgba(22,40,31,.55)); }
.se-hero-slider-matata .se-btn-outline-light { border-radius: 2px; padding: 16px 30px; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; }
@media (max-width: 780px) {
	.se-hero-slider-matata .se-hero-slide-content { text-align: center; margin-left: auto; margin-right: auto; }
	.se-hero-slider-matata .se-hero-slide-content p { text-align: center; margin-left: auto; margin-right: auto; }
}
.se-hero-slider-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%;
	background: rgba(255,255,255,.18); border: none; color: #fff; font-size: 22px; display: flex; align-items: center; justify-content: center;
	cursor: pointer; transition: background .15s ease;
}
.se-hero-slider-arrow:hover { background: var(--se-terracotta); }
.se-hero-slider-prev { left: 20px; }
.se-hero-slider-next { right: 20px; }
.se-hero-slider-dots { position: absolute; left: 0; right: 0; bottom: 22px; z-index: 3; display: flex; justify-content: center; gap: 10px; }
.se-hero-slider-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.45); border: none; cursor: pointer; padding: 0; transition: background .15s ease, transform .15s ease; }
.se-hero-slider-dot.is-active { background: var(--se-terracotta); transform: scale(1.25); }
@media (max-width: 640px) {
	.se-hero-slider { height: 480px; }
	.se-hero-slider-arrow { width: 38px; height: 38px; font-size: 18px; }
}

/* ---------- Breadcrumbs ---------- */
.se-breadcrumbs { padding: 18px 0 0; font-size: 13px; color: var(--se-text-light); }
.se-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.se-breadcrumbs li { list-style: none; }
.se-breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: 6px; color: var(--se-border); }

/* ---------- Archive layout ---------- */
.se-archive-section { padding: 40px 0 80px; }
.se-archive-layout { display: grid; grid-template-columns: 280px 1fr; gap: 40px; align-items: start; }

.se-filter-sidebar {
	background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius);
	padding: 22px; position: sticky; top: 20px;
}
.se-filter-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.se-filter-header h3 { font-size: 18px; margin: 0; }
.se-filter-clear { font-size: 13px; }
.se-filter-group { border-top: 1px solid var(--se-border); padding: 16px 0; }
.se-filter-group:first-of-type { border-top: none; padding-top: 0; }
.se-filter-group h4 { font-size: 14px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 10px; color: var(--se-green-800); }
.se-filter-options li { margin-bottom: 6px; }
.se-filter-options li.se-filter-hidden { display: none; }
.se-filter-options label { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--se-text); cursor: pointer; }
.se-filter-count { color: var(--se-text-light); font-size: 12px; }
.se-filter-viewmore { background: none; border: none; color: var(--se-green-700); font-size: 13px; padding: 4px 0; cursor: pointer; text-decoration: underline; }
.se-filter-range { width: 100%; }
.se-filter-range-output { display: block; margin-top: 6px; font-size: 13px; color: var(--se-text-light); }
.se-filter-days-inputs { display: flex; align-items: center; gap: 8px; }
.se-filter-days-inputs input { width: 100%; padding: 8px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm); }
.se-filter-submit { width: 100%; margin-top: 6px; }

.se-archive-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; flex-wrap: wrap; gap: 10px; }
.se-results-count { color: var(--se-text-light); margin: 0; }
.se-sort-form select { padding: 9px 12px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm); font-family: var(--se-font-body); }

/* ---------- Safari cards / grid ---------- */
.safari-grid { display: grid; grid-template-columns: repeat(var(--se-grid-cols, 3), 1fr); gap: 26px; }
@media (max-width: 900px) {
	.safari-grid { grid-template-columns: repeat(2, 1fr); }
}

.safari-card {
	background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius);
	overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; display: flex; flex-direction: column;
}
.safari-card:hover { transform: translateY(-4px); box-shadow: var(--se-shadow); }
.safari-card-media { position: relative; display: block; aspect-ratio: 4/3; background: var(--se-sand-dark); overflow: hidden; }
.safari-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.safari-card:hover .safari-card-media img { transform: scale(1.06); }
.safari-card-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 32px; color: var(--se-border); }
.safari-card-badge {
	position: absolute; top: 12px; left: 12px; background: var(--se-terracotta); color: #fff;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	padding: 5px 10px; border-radius: 999px;
}
.safari-card-destination {
	position: absolute; bottom: 12px; left: 12px; background: rgba(22,40,31,.75); color: #fff;
	font-size: 12px; padding: 5px 10px; border-radius: 999px; display: inline-flex; align-items: center; gap: 4px;
}
.safari-card-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.safari-card-title { font-size: 19px; margin-bottom: 8px; }
.safari-card-title a { color: var(--se-green-900); }
.safari-card-excerpt { color: var(--se-text-light); font-size: 14px; flex: 1; }
.safari-card-meta { display: flex; align-items: center; justify-content: space-between; margin: 10px 0 16px; font-size: 13px; flex-wrap: wrap; gap: 8px; }
.safari-duration { color: var(--se-text-light); display: inline-flex; align-items: center; gap: 4px; }
.safari-price .amount { font-weight: 700; color: var(--se-terracotta); font-size: 16px; }
.safari-price-on-request a { font-weight: 700; color: var(--se-terracotta); font-size: 16px; text-decoration: underline; }
.safari-price-on-request a:hover { color: var(--se-terracotta-dark); }
.se-single-hero .safari-price-on-request a { color: #fff; font-size: clamp(20px, 2.8vw, 28px); text-decoration-color: rgba(255,255,255,.5); }
.safari-price .was { text-decoration: line-through; color: var(--se-text-light); font-size: 13px; margin-right: 4px; }
.safari-price .save-badge { display: inline-block; margin-left: 8px; background: #e7f4ea; color: #2c6b3f; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; vertical-align: middle; }
.safari-price .note { color: var(--se-text-light); font-size: 12px; display: block; }
.safari-card-cta { display: flex; width: fit-content; margin: 0 auto; padding: 10px 24px; font-size: 14px; } /* medium (default) - see the size setting */

/* ---------- Safari category badges (Private / Group / Mid-range / Luxury) ---------- */
.safari-card-category { margin-bottom: 8px; }
.se-category-badge {
	display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
	padding: 4px 12px; border-radius: 999px; background: var(--se-sand); color: var(--se-green-800);
}
.se-category-badge:hover { color: var(--se-green-800); background: var(--se-sand-dark); }
.se-category-private { background: #eef0fb; color: #3d4a9e; }
.se-category-group { background: #e6f3fb; color: #1c6e96; }
.se-category-mid-range { background: #e7f4ea; color: #2c6b3f; }
.se-category-luxury { background: #f8ecd8; color: #93630f; }
.se-single-hero-category { margin-bottom: 6px; }
.se-single-hero-category .se-category-badge { background: rgba(255,255,255,.15); color: #fff; }

/* ---------- Package landing page (taxonomy archives) ---------- */
.se-package-hero { position: relative; background: var(--se-green-800); background-size: cover; background-position: center; padding: 26px 0 40px; min-height: 340px; color: #fff; display: flex; flex-direction: column; justify-content: center; text-align: left !important; }
.se-package-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,.35), rgba(22,40,31,.75)); }
.se-package-hero-inner { position: relative; z-index: 2; padding-bottom: 50px; max-width: 100% !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; padding-left: 24px !important; padding-right: 24px !important; box-sizing: border-box; }
.se-package-hero .se-breadcrumbs { color: rgba(255,255,255,.8); }
.se-package-hero h1 { color: #fff !important; font-family: 'Merriweather', Georgia, serif !important; font-weight: 400 !important; font-style: italic !important; text-align: left !important; font-size: clamp(30px, 5vw, 46px); margin: 12px 0 0; }
.se-package-gallery-strip { position: relative; z-index: 2; display: flex; gap: 8px; overflow-x: auto; padding: 0 24px 20px; max-width: var(--se-container); margin: 0 auto; }
.se-package-gallery-thumb { flex: 0 0 110px; height: 76px; border-radius: var(--se-radius-sm); overflow: hidden; display: block; border: 2px solid rgba(255,255,255,.3); }
.se-package-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.se-package-gallery-thumb:hover { border-color: var(--se-terracotta); }

.se-package-intro { padding: 60px 0 20px; }
.se-package-intro-inner { max-width: 820px; }
.se-package-intro-text { font-size: 17px; color: var(--se-text); line-height: 1.7; }
.se-video-embed { position: relative; padding-bottom: 56.25%; height: 0; margin-top: 24px; border-radius: var(--se-radius); overflow: hidden; }
.se-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.se-package-plan-cta { background: var(--se-sand); padding: 30px 0; margin: 30px 0; }
.se-package-plan-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.se-package-plan-cta-inner h3 { margin-bottom: 4px; }
.se-package-plan-cta-inner p { margin: 0; color: var(--se-text-light); }

.se-package-listing { padding: 20px 0 60px; }
.safari-list { display: flex; flex-direction: column; gap: 22px; }

.safari-list-card {
	display: flex; background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius);
	overflow: hidden; transition: box-shadow .18s ease;
}
.safari-list-card:hover { box-shadow: var(--se-shadow); }
.safari-list-card-media { position: relative; flex: 0 0 280px; display: block; overflow: hidden; background: var(--se-sand-dark); }
.safari-list-card-media img { width: 100%; height: 100%; object-fit: cover; }
.safari-list-card-body { padding: 22px 26px; flex: 1; display: flex; flex-direction: column; }
.safari-list-card-header { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 12px; }
.safari-list-card-title { font-size: 20px; margin-bottom: 6px; }
.safari-list-card-price { text-align: right; white-space: nowrap; }
.safari-list-card-highlights { margin-bottom: 12px; }
.safari-list-card-highlights li { display: flex; gap: 8px; padding: 4px 0; font-size: 14px; color: var(--se-text); }
.safari-list-card-highlights li i { color: var(--se-terracotta); margin-top: 3px; }
.safari-list-card-destinations { font-size: 13px; color: var(--se-text-light); margin-bottom: 16px; }
.safari-list-card-destinations strong { color: var(--se-green-900); }
.safari-list-card-cta { align-self: flex-start; margin-top: auto; padding: 10px 22px; font-size: 14px; } /* medium (default) */

.se-package-browse-all { text-align: center; margin-top: 40px; }

.se-package-tips { padding: 60px 0; background: var(--se-sand); }
.se-package-tips-content { max-width: 720px; margin: 0 auto; font-size: 16px; line-height: 1.7; }

@media (max-width: 780px) {
	.safari-list-card { flex-direction: column; }
	.safari-list-card-media { flex: 0 0 auto; aspect-ratio: 16/9; }
	.safari-list-card-header { flex-direction: column; }
	.safari-list-card-price { text-align: left; }
	.se-package-plan-cta-inner { flex-direction: column; align-items: flex-start; }
}
.se-no-results i { font-size: 44px; color: var(--se-border); }
.se-no-results { text-align: center; padding: 60px 20px; grid-column: 1/-1; }
.se-no-results .se-discover-more-buttons { margin-top: 20px; }
.se-no-results .se-discover-destinations { margin-top: 26px; justify-content: center; }

/* ---------- Pagination ---------- */
.se-pagination { margin-top: 40px; display: flex; justify-content: center; }
.se-pagination ul { display: flex; gap: 6px; }
.se-pagination a, .se-pagination span {
	display: flex; align-items: center; justify-content: center; min-width: 38px; height: 38px;
	border-radius: var(--se-radius-sm); border: 1px solid var(--se-border); color: var(--se-text);
}
.se-pagination .current { background: var(--se-terracotta); border-color: var(--se-terracotta); color: #fff; }
.se-pagination a:hover { border-color: var(--se-terracotta); color: var(--se-terracotta); }

/* ---------- Homepage sections ---------- */
.se-section-title { text-align: center; font-size: clamp(26px, 4vw, 34px); }
.se-section-subtitle { text-align: center; color: var(--se-text-light); max-width: 560px; margin: 0 auto 40px; }
.se-showcase, .se-featured-safaris { padding: 70px 0; }
.se-showcase { background: var(--se-sand); }

/* ---------- Section heading component (used natively and by the Elementor widget) ---------- */
.se-heading { margin-bottom: 34px; }
.se-heading.se-align-left { text-align: left; }
.se-heading.se-align-center { text-align: center; }
.se-heading.se-align-right { text-align: right; }
.se-heading-eyebrow {
	display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; color: var(--se-terracotta); margin-bottom: 10px;
}
.se-heading-title { margin: 0 0 10px; }
.se-heading-subtitle { color: var(--se-text-light); max-width: 620px; }
.se-heading.se-align-center .se-heading-subtitle { margin-left: auto; margin-right: auto; }
.se-heading.se-align-right .se-heading-subtitle { margin-left: auto; }
.se-heading-accent-bar .se-heading-title::before {
	content: ''; display: block; width: 56px; height: 4px; background: var(--se-terracotta);
	border-radius: 2px; margin-bottom: 14px;
}
.se-heading-accent-bar.se-align-center .se-heading-title::before { margin-left: auto; margin-right: auto; }
.se-heading-accent-bar.se-align-right .se-heading-title::before { margin-left: auto; }
.se-heading-underline .se-heading-title { position: relative; padding-bottom: 16px; display: inline-block; }
.se-heading-underline .se-heading-title::after {
	content: ''; position: absolute; bottom: 0; left: 0; width: 70px; height: 3px; background: var(--se-green-700);
}
.se-heading-underline.se-align-center .se-heading-title::after { left: 50%; transform: translateX(-50%); }
.se-heading-underline.se-align-right .se-heading-title::after { left: auto; right: 0; }
.se-heading-boxed .se-heading-eyebrow {
	background: var(--se-sand); padding: 6px 16px; border-radius: 999px; color: var(--se-green-800);
}

/* ---------- Grid column overrides (native homepage + Elementor widgets) ---------- */
.se-grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.se-grid-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.se-grid-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
@media (max-width: 900px) {
	.se-grid-cols-3, .se-grid-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
	.se-grid-cols-2, .se-grid-cols-3, .se-grid-cols-4 { grid-template-columns: 1fr !important; }
}
.se-hide-excerpt .safari-card-excerpt { display: none; }
.se-elementor-empty-notice { padding: 30px; text-align: center; color: var(--se-text-light); background: var(--se-sand); border-radius: var(--se-radius); }

/* ---------- Testimonials (native homepage + Elementor widget) ---------- */
.se-testimonial-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); }
.se-testimonial-scroller {
	display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px;
	-webkit-overflow-scrolling: touch;
}
.se-testimonial-scroller::-webkit-scrollbar { height: 6px; }
.se-testimonial-scroller::-webkit-scrollbar-thumb { background: var(--se-border); border-radius: 3px; }
.se-testimonial-scroller .se-testimonial-card { flex: 0 0 320px; scroll-snap-align: start; }
.se-testimonial-card {
	background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius);
	padding: 26px; box-shadow: var(--se-shadow-sm);
}
.se-testimonial-stars { color: #e0a63a; font-size: 15px; margin-bottom: 12px; letter-spacing: 2px; }
.se-testimonial-review { font-style: italic; color: var(--se-text); margin-bottom: 18px; }
.se-testimonial-author { display: flex; align-items: center; gap: 12px; }
.se-testimonial-author img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.se-testimonial-author strong { display: block; color: var(--se-green-900); font-size: 14px; }
.se-testimonial-author span { font-size: 12px; color: var(--se-text-light); }
@media (max-width: 900px) {
	.se-testimonial-grid { grid-template-columns: 1fr; }
}

.se-home-testimonials { padding: 70px 0; }
.se-home-testimonials-note { text-align: center; color: var(--se-text-light); font-size: 13px; margin-top: 28px; }

/* ---------- Hero trust strip (homepage) ---------- */
.se-hero-trust-strip { background: var(--se-green-900); padding: 14px 0; }
.se-hero-trust-strip .se-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 30px; }
.se-hero-trust-strip span { display: inline-flex; align-items: center; gap: 8px; color: #dbe6d8; font-size: 13px; font-weight: 500; }
.se-hero-trust-strip i { color: var(--se-terracotta); font-size: 16px; }

/* ---------- About/intro section (homepage) ---------- */
.se-about-section { padding: 70px 0; }
.se-about-inner { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px; align-items: center; }
.se-about-inner.se-about-no-image { grid-template-columns: 1fr; max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; }
.se-about-inner.se-about-no-image .se-heading { text-align: center; }
.se-about-inner.se-about-no-image .se-heading-accent-bar .se-heading-title::before { margin-left: auto; margin-right: auto; }
.se-about-media img { width: 100%; border-radius: var(--se-radius); aspect-ratio: 4/3; object-fit: cover; }
.se-about-content p { color: var(--se-text-light); font-size: 16px; margin-bottom: 18px; }

/* ---------- Explore teaser (3-column: Activities / Destinations / Types) ---------- */
.se-explore-teaser { padding: 70px 0; background: var(--se-sand); }
.se-explore-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.se-explore-tile { display: block; background: var(--se-white); border-radius: var(--se-radius); overflow: hidden; box-shadow: var(--se-shadow-sm); transition: transform .18s ease; }
.se-explore-tile:hover { transform: translateY(-4px); }
.se-explore-tile-media { position: relative; aspect-ratio: 4/3; background: var(--se-sand-dark); overflow: hidden; }
.se-explore-tile-media img { width: 100%; height: 100%; object-fit: cover; }
.se-explore-tile-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 34px; color: var(--se-border); }
.se-explore-tile-icon {
	position: absolute; bottom: -20px; left: 20px; width: 46px; height: 46px; border-radius: 50%; background: var(--se-terracotta);
	color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: var(--se-shadow-sm);
}
.se-explore-tile h3 { padding: 32px 22px 6px; font-size: 19px; }
.se-explore-tile p { padding: 0 22px; color: var(--se-text-light); font-size: 14px; margin-bottom: 14px; }
.se-explore-tile-link { display: block; padding: 0 22px 22px; font-size: 13px; font-weight: 600; color: var(--se-green-700); }
.se-explore-tile:hover .se-explore-tile-link { color: var(--se-terracotta); }

/* ---------- Press logos strip ---------- */
.se-press-strip { padding: 40px 0; border-top: 1px solid var(--se-border); border-bottom: 1px solid var(--se-border); }
.se-press-heading { text-align: center; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--se-text-light); margin-bottom: 24px; }
.se-press-logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 46px; }
.se-press-logos img { max-height: 32px; width: auto; opacity: .55; filter: grayscale(100%); transition: opacity .15s ease; }
.se-press-logos img:hover { opacity: 1; }

/* ---------- Homepage guide profile ---------- */
.se-home-guide { padding: 70px 0; }
.se-home-guide-inner { display: grid; grid-template-columns: 280px 1fr; gap: 46px; align-items: center; }
.se-home-guide-photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.se-home-guide-content p { color: var(--se-text-light); font-size: 16px; margin-bottom: 16px; }
.se-home-guide-name { color: var(--se-green-900); font-size: 15px; }

/* ---------- Plan-your-trip CTA band (homepage) ---------- */
.se-plan-trip { background: var(--se-green-800); padding: 70px 0; }
.se-plan-trip-inner { max-width: 560px; margin: 0 auto; text-align: center; }
.se-plan-trip-form { text-align: left; background: var(--se-white); border-radius: var(--se-radius); padding: 30px; box-shadow: var(--se-shadow); }
.se-plan-trip-form .se-booking-form-title { display: none; }
.se-plan-trip-phone { text-align: center; margin-top: 22px; color: #d9e3da; font-size: 14px; }
.se-plan-trip-phone a { color: #fff; font-weight: 700; text-decoration: underline; }

@media (max-width: 900px) {
	.se-about-inner { grid-template-columns: 1fr; }
	.se-explore-grid { grid-template-columns: 1fr; }
	.se-home-guide-inner { grid-template-columns: 1fr; text-align: center; }
	.se-home-guide-photo { max-width: 220px; margin: 0 auto; }
}

/* ---------- CTA banner (native homepage + Elementor widget) ---------- */
.se-cta-banner { position: relative; padding: 60px 0; text-align: center; background-size: cover; background-position: center; }
.se-cta-overlay { position: absolute; inset: 0; }
.se-cta-inner { position: relative; z-index: 2; max-width: 640px; margin: 0 auto; }
.se-cta-inner h2 { margin-bottom: 12px; }
.se-cta-inner p { margin-bottom: 24px; }
.se-cta-skin-green { background-color: var(--se-green-800); color: #fff; }
.se-cta-skin-green .se-cta-overlay { background: rgba(22,40,31,.55); }
.se-cta-skin-green h2 { color: #fff; }
.se-cta-skin-green p { color: #d9e3da; }
.se-cta-skin-terracotta { background-color: var(--se-terracotta); color: #fff; }
.se-cta-skin-terracotta .se-cta-overlay { background: rgba(168,79,34,.5); }
.se-cta-skin-terracotta h2 { color: #fff; }
.se-cta-skin-terracotta p { color: #fbe6da; }
.se-cta-skin-terracotta .se-btn-primary { background: var(--se-green-900); border-color: var(--se-green-900); }
.se-cta-skin-sand { background-color: var(--se-sand); color: var(--se-text); }
.se-cta-skin-sand .se-cta-overlay { background: rgba(247,243,234,.6); }
.se-cta-skin-sand h2 { color: var(--se-green-900); }

/* ---------- Latest from the blog (homepage) ---------- */
.se-home-blog { padding: 70px 0; background: var(--se-sand); }
.se-home-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.se-home-blog-card { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); overflow: hidden; transition: transform .18s ease; }
.se-home-blog-card:hover { transform: translateY(-4px); }
.se-home-blog-card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; }
.se-home-blog-card-body { padding: 18px 20px; }
.se-home-blog-card-body .se-post-meta { margin-bottom: 8px; }
.se-home-blog-card-body h3 { font-size: 16px; margin-bottom: 0; }
@media (max-width: 900px) {
	.se-home-blog-grid { grid-template-columns: 1fr; }
}

/* The older "Term Showcase" widget (Elementor). These used to share names with the Signature Collection / Country Showcase
   cards (se-showcase-*), and their aspect-ratio:4/3 got merged into those cards' photo boxes - so they have their own names now. */
.se-termcard-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 24px; }
.se-termcard { display: block; background: var(--se-white); border-radius: var(--se-radius); overflow: hidden; box-shadow: var(--se-shadow-sm); transition: transform .18s ease; }
.se-termcard:hover { transform: translateY(-4px); }
.se-termcard-media { aspect-ratio: 4/3; background: var(--se-sand-dark); overflow: hidden; }
.se-termcard-media img { width: 100%; height: 100%; object-fit: cover; }
.se-termcard-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 28px; color: var(--se-border); }
.se-termcard h3 { padding: 16px 18px 4px; font-size: 18px; }
.se-termcard p { padding: 0 18px 18px; color: var(--se-text-light); font-size: 13px; }
.se-showcase-more { text-align: center; margin-top: 40px; }

.se-trust-strip { background: var(--se-green-900); color: #fff; padding: 40px 0; }
.se-trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; text-align: center; }
.se-trust-grid i { font-size: 30px; color: var(--se-terracotta); display: block; margin-bottom: 10px; }
.se-trust-grid p { margin: 0; font-size: 14px; }

/* ---------- Single safari ---------- */
.se-single-hero { position: relative; background: var(--se-green-800); background-size: cover; background-position: center; padding: 40px 0 26px; color: #fff; display: flex; flex-direction: column; justify-content: center; text-align: left !important; }
.se-single-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,.35), rgba(22,40,31,.8)); }
.se-single-hero-inner { position: relative; z-index: 2; text-align: left !important; max-width: 100% !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; padding-left: 24px !important; padding-right: 24px !important; box-sizing: border-box; }
.se-single-hero-breadcrumbs { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.se-single-hero .se-breadcrumbs { color: rgba(255,255,255,.8); padding-top: 22px; }
.se-single-hero h1 { color: #fff !important; font-family: 'Merriweather', Georgia, serif !important; font-weight: 400 !important; font-style: italic !important; text-align: left !important; font-size: clamp(32px, 5vw, 52px); margin: 10px 0 14px; }
.se-single-hero .safari-price { display: block; margin-bottom: 16px; }
.se-single-hero .safari-price .amount { font-size: clamp(24px, 3.4vw, 34px); color: #fff; }
.se-single-hero .safari-price .was { font-size: 16px; color: rgba(255,255,255,.65); }
.se-single-hero .safari-price .note { color: rgba(255,255,255,.8); font-size: 14px; margin-top: 2px; }
.se-single-hero-meta { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14px; margin-bottom: 20px; }
.se-single-hero-meta span { display: inline-flex; align-items: center; gap: 6px; color: #fff; }
.se-single-hero-gallery-btn {
	display: inline-flex; align-items: center; gap: 8px; background: rgba(0,0,0,.4); color: #fff; padding: 11px 20px;
	border-radius: 999px; font-weight: 600; font-size: 14px; backdrop-filter: blur(2px); width: fit-content;
}
.se-single-hero-gallery-btn:hover { background: rgba(0,0,0,.6); color: #fff; }

/* Horizontal gallery filmstrip directly under the hero, above the tab content */
.se-single-gallery-strip { background: var(--se-cream); padding: 16px 0; border-bottom: 1px solid var(--se-border); }
.se-single-gallery-strip-inner { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px; }
.se-single-gallery-strip-item {
	flex: 0 0 auto; width: 150px; scroll-snap-align: start; border-radius: var(--se-radius-sm); overflow: hidden;
	display: block; padding: 0; border: none; background: none; cursor: pointer; position: relative;
}
.se-single-gallery-strip-item-zoom {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	font-size: 22px; color: #fff; background: rgba(22,40,31,0); opacity: 0; transition: all .15s ease;
}
.se-single-gallery-strip-item:hover .se-single-gallery-strip-item-zoom,
.se-single-gallery-strip-item:focus-visible .se-single-gallery-strip-item-zoom { opacity: 1; background: rgba(22,40,31,.35); }
.se-single-gallery-strip-item img { width: 100%; height: 100px; object-fit: cover; display: block; transition: transform .2s ease; }
.se-single-gallery-strip-item:hover img { transform: scale(1.06); }
@media (max-width: 640px) {
	.se-single-gallery-strip-item { width: 110px; }
	.se-single-gallery-strip-item img { height: 78px; }
}

/* ---------- Gallery lightbox ---------- */
.se-lightbox {
	position: fixed; inset: 0; z-index: 9999; background: rgba(10,16,12,.94);
	display: flex; align-items: center; justify-content: center;
}
.se-lightbox[hidden] { display: none; }
.se-lightbox-stage { position: relative; max-width: 90vw; max-height: 85vh; display: flex; flex-direction: column; align-items: center; }
.se-lightbox-image { max-width: 90vw; max-height: 80vh; object-fit: contain; border-radius: var(--se-radius-sm); display: block; }
.se-lightbox-counter { color: rgba(255,255,255,.8); font-size: 13px; margin-top: 14px; }
.se-lightbox-close {
	position: absolute; top: 20px; right: 20px; z-index: 2; width: 44px; height: 44px; border-radius: 50%;
	background: rgba(255,255,255,.12); border: none; color: #fff; font-size: 24px; display: flex; align-items: center; justify-content: center;
	cursor: pointer; transition: background .15s ease;
}
.se-lightbox-close:hover { background: var(--se-terracotta); }
.se-lightbox-arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 52px; height: 52px; border-radius: 50%;
	background: rgba(255,255,255,.12); border: none; color: #fff; font-size: 26px; display: flex; align-items: center; justify-content: center;
	cursor: pointer; transition: background .15s ease;
}
.se-lightbox-arrow:hover { background: var(--se-terracotta); }
.se-lightbox-prev { left: 24px; }
.se-lightbox-next { right: 24px; }
@media (max-width: 640px) {
	.se-lightbox-arrow { width: 40px; height: 40px; font-size: 20px; }
	.se-lightbox-prev { left: 8px; }
	.se-lightbox-next { right: 8px; }
	.se-lightbox-close { top: 10px; right: 10px; width: 38px; height: 38px; font-size: 20px; }
}

.se-single-layout { display: grid; grid-template-columns: 1fr 340px; gap: 50px; padding: 50px 24px; max-width: var(--se-container); margin: 0 auto; }
.se-safari-section { scroll-margin-top: 90px; margin-bottom: 46px; }
.se-safari-section:last-child { margin-bottom: 0; }
.se-safari-section > h2 { margin-bottom: 20px; }
.se-single-body { font-size: 16px; }
.se-single-body img { border-radius: var(--se-radius); }
.se-single-highlights { margin-top: 34px; }
.se-single-highlights ul li { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--se-border); }
.se-single-highlights ul li i { color: var(--se-terracotta); margin-top: 3px; }

/* ---------- Animals to Encounter ---------- */
.se-animal-encounters-block { margin-top: 34px; }
.se-animal-encounters { display: flex; flex-wrap: wrap; gap: 10px; }
.se-animal-badge {
	display: inline-flex; align-items: center; gap: 8px; background: var(--se-sand); border: 1px solid var(--se-border);
	border-radius: 999px; padding: 8px 16px 8px 10px; font-size: 14px; font-weight: 600; color: var(--se-green-900);
	transition: background .15s ease, transform .15s ease;
}
a.se-animal-badge:hover { background: var(--se-terracotta); color: #fff; border-color: var(--se-terracotta); transform: translateY(-2px); }
.se-animal-emoji { font-size: 20px; line-height: 1; }
.se-animal-name { white-space: nowrap; }

/* Compact variant for cards - smaller, no border, wraps tightly */
.safari-card-animals, .safari-list-card-animals { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.safari-card-animals .se-animal-badge, .safari-list-card-animals .se-animal-badge {
	padding: 3px 9px 3px 7px; font-size: 12px; font-weight: 500; background: var(--se-cream); border-color: var(--se-border);
}
.safari-card-animals .se-animal-emoji, .safari-list-card-animals .se-animal-emoji { font-size: 15px; }
.se-animal-more { font-size: 12px; color: var(--se-text-light); align-self: center; padding: 0 4px; }

.se-single-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }
.se-single-gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--se-radius-sm); }
.se-single-tax { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.se-tag { background: var(--se-sand); padding: 6px 14px; border-radius: 999px; font-size: 13px; }
.se-tag:hover { background: var(--se-terracotta); color: #fff; }

/* ---------- Sticky section tab nav (single safari) ---------- */
.se-section-tabs { position: sticky; top: 0; z-index: 60; background: var(--se-white); border-bottom: 1px solid var(--se-border); box-shadow: var(--se-shadow-sm); }
.se-section-tabs-inner { display: flex; gap: 4px; overflow-x: auto; }
.se-section-tabs a {
	display: inline-block; padding: 16px 18px; font-weight: 600; font-size: 14px; color: var(--se-text-light);
	white-space: nowrap; border-bottom: 3px solid transparent;
}
.se-section-tabs a:hover { color: var(--se-terracotta); }

/* ---------- Accordions: itinerary & FAQ (native <details>/<summary>, no JS) ---------- */
.se-accordion-item {
	border: 1px solid var(--se-border); border-radius: var(--se-radius); margin-bottom: 12px; overflow: hidden; background: var(--se-white);
}
.se-accordion-item summary {
	cursor: pointer; list-style: none; padding: 16px 20px; font-weight: 600; color: var(--se-green-900);
	display: flex; align-items: center; gap: 10px; position: relative;
}
.se-accordion-item summary::-webkit-details-marker { display: none; }
.se-accordion-item summary::after {
	content: ''; width: 9px; height: 9px; margin-left: auto; flex-shrink: 0;
	border-right: 2px solid var(--se-text-light); border-bottom: 2px solid var(--se-text-light);
	transform: rotate(45deg); transition: transform .2s ease;
}
.se-accordion-item[open] summary::after { transform: rotate(-135deg); }
.se-accordion-body { padding: 0 20px 18px; color: var(--se-text-light); font-size: 15px; }
.se-accordion-body p:last-child { margin-bottom: 0; }
.se-accordion-body ul, .se-accordion-body ol { list-style: revert; padding-left: 1.3em; margin: 0 0 1em; }
.se-accordion-body ul li, .se-accordion-body ol li { margin-bottom: .4em; }
.se-accordion-body a { text-decoration: underline; color: var(--se-green-700); }
.se-accordion-body strong { color: var(--se-text); }
.se-itinerary-day-number {
	background: var(--se-terracotta); color: #fff; font-size: 12px; font-weight: 700; padding: 4px 10px;
	border-radius: 999px; flex-shrink: 0;
}

/* ---------- Inclusions / exclusions checklist ---------- */
.se-inclusions-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.se-inclusions-col { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); padding: 20px; }
.se-inclusions-col h3 { font-size: 16px; display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.se-inclusions-yes h3 i { color: #2c6b3f; }
.se-inclusions-no h3 i { color: #b23b3b; }
.se-inclusions-col ul li { display: flex; gap: 8px; padding: 6px 0; font-size: 14px; color: var(--se-text); }
.se-inclusions-yes ul li i { color: #2c6b3f; margin-top: 3px; }
.se-inclusions-no ul li i { color: #b23b3b; margin-top: 3px; }

@media (max-width: 640px) {
	.se-inclusions-grid { grid-template-columns: 1fr; }
}

.se-booking-box { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); padding: 24px; position: sticky; top: 20px; box-shadow: var(--se-shadow-sm); }
.se-booking-box .safari-price { display: block; margin-bottom: 16px; }
.se-booking-box .amount { font-size: 26px; }
.se-booking-facts { margin-bottom: 20px; }
.se-booking-facts li { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--se-border); font-size: 14px; }
.se-booking-facts li i { color: var(--se-terracotta); }
.se-booking-cta { width: 100%; }
.se-booking-note { font-size: 12px; color: var(--se-text-light); margin-top: 14px; }

/* ---------- Inline booking/enquiry form (single safari sidebar) ---------- */
.se-booking-form-title { font-size: 13px; color: var(--se-text-light); margin-bottom: 10px; }
.se-booking-form-title strong { color: var(--se-green-900); }
.se-booking-row { margin-bottom: 10px; }
.se-booking-row-group { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.se-booking-form input, .se-booking-form textarea, .se-booking-form select {
	width: 100%; padding: 10px 12px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm);
	font-family: var(--se-font-body); font-size: 14px; background: var(--se-cream); color: var(--se-text);
}
.se-booking-form textarea { resize: vertical; }
.se-booking-submit-btn { display: flex; width: fit-content; min-width: 190px; margin: 6px auto 0; padding: 11px 26px; font-size: 14px; animation: se-cta-pulse 2.4s ease-in-out infinite; } /* medium (default) */
.se-booking-submit-btn:hover, .se-booking-submit-btn:focus { animation: none; }
@keyframes se-cta-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(201,98,45,.35); }
	50% { box-shadow: 0 0 0 8px rgba(201,98,45,0); }
}
.se-booking-success { text-align: center; padding: 20px 6px; }
.se-booking-success i { font-size: 38px; color: var(--se-green-700); }
.se-booking-success h4 { margin: 8px 0 4px; }
.se-booking-alt-link { display: block; text-align: center; font-size: 13px; margin-top: 14px; text-decoration: underline; }
.se-booking-form-wrap { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); padding: 26px; max-width: 480px; }
.se-booking-form-shortcode-title { margin-bottom: 16px; font-size: 20px; }

/* ---------- Mobile CTA helpers ---------- */
.se-mobile-cta-inline { display: none; margin-top: 30px; }
.se-mobile-cta-inline .se-btn { width: 100%; }
.se-mobile-sticky-cta {
	display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
	background: var(--se-white); border-top: 1px solid var(--se-border); box-shadow: 0 -6px 20px rgba(22,40,31,.12);
	padding: 12px 16px; align-items: center; justify-content: space-between; gap: 14px;
}
.se-mobile-sticky-price .amount { font-weight: 700; color: var(--se-terracotta); font-size: 16px; }
.se-mobile-sticky-price .note, .se-mobile-sticky-price .save-badge, .se-mobile-sticky-price .was { display: none; }
.se-mobile-sticky-cta .se-btn { padding: 10px 20px; white-space: nowrap; }

/* Floating round "Book Now" button - the desktop equivalent of the mobile
   sticky bar above, always visible while scrolling anywhere on a single
   safari page (a pulsing highlight to draw the eye, matching the booking
   form's own submit-button pulse). Jumps straight to the booking form. */
.se-floating-book-btn {
	display: none; position: fixed; right: 22px; bottom: 22px; z-index: 90;
	align-items: center; gap: 8px; background: var(--se-terracotta); color: #fff;
	padding: 10px 18px; border-radius: 999px; font-weight: 700; font-size: 13px;
	box-shadow: 0 6px 18px rgba(201,98,45,.38); animation: se-cta-pulse 2.4s ease-in-out infinite;
}
.se-floating-book-btn:hover { background: var(--se-terracotta-dark); color: #fff; animation: none; }
.se-floating-book-btn i { font-size: 16px; }
/* Size choice (Safari Explorer → Colours & Typography → General Layout). Medium is the default above. */
body.se-book-btn-large .se-floating-book-btn { right: 26px; bottom: 26px; gap: 10px; padding: 14px 22px; font-size: 14px; box-shadow: 0 8px 24px rgba(201,98,45,.4); }
body.se-book-btn-large .se-floating-book-btn i { font-size: 18px; }
body.se-book-btn-small .se-floating-book-btn { right: 18px; bottom: 18px; gap: 6px; padding: 8px 14px; font-size: 12px; }
body.se-book-btn-small .se-floating-book-btn i { font-size: 14px; }

@media (min-width: 1000px) {
	.se-floating-book-btn { display: flex; }
}

@media (max-width: 999px) {
	.se-mobile-cta-inline { display: block; }
	.se-mobile-sticky-cta { display: flex; }
	.se-has-sticky-cta { padding-bottom: 68px; }
}

.se-related-safaris { padding: 20px 0 70px; }
.se-related-safaris h2 { text-align: center; margin-bottom: 30px; }

/* ---------- Tour map ---------- */
.se-tour-map { width: 100%; border-radius: var(--se-radius); z-index: 1; }
.se-tour-map-attribution { font-size: 11px; color: var(--se-text-light); text-align: right; margin-top: 6px; }
.se-map-marker {
	background: var(--se-terracotta); color: #fff; border-radius: 50%; width: 30px; height: 30px;
	display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700;
	box-shadow: 0 2px 6px rgba(0,0,0,.35); border: 2px solid #fff;
}
.leaflet-popup-content strong { color: var(--se-green-900); }

/* Permanent location-name labels above each marker */
.se-map-tooltip {
	background: var(--se-green-900); color: #fff; border: none; border-radius: 999px;
	padding: 4px 12px; font-size: 12px; font-weight: 700; font-family: var(--se-font-body);
	box-shadow: 0 2px 6px rgba(0,0,0,.3); white-space: nowrap;
}
.se-map-tooltip::before { border-top-color: var(--se-green-900); }

/* ---------- Discover more: custom quote + explore destinations ---------- */
.se-discover-more {
	text-align: center; max-width: 640px; margin: 50px auto 0; padding-top: 44px; border-top: 1px solid var(--se-border);
}
.se-discover-more h3 { font-size: 22px; margin-bottom: 10px; }
.se-discover-more p { color: var(--se-text-light); margin-bottom: 24px; }
.se-discover-more-buttons { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.se-discover-destinations { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 30px; }
.se-destination-pill {
	display: inline-flex; align-items: center; gap: 6px; background: var(--se-sand); color: var(--se-green-800);
	font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 999px; transition: background .15s ease;
}
.se-destination-pill:hover { background: var(--se-terracotta); color: #fff; }
.se-destination-pill i { font-size: 14px; }

@media (max-width: 480px) {
	.se-discover-more-buttons .se-btn { width: 100%; }
	.se-footer-cta-buttons .se-btn { width: 100%; }
	.se-footer-cta-inner { text-align: center; justify-content: center; }
}

/* ---------- Generic page/blog ---------- */
.se-page-content { padding: 40px 24px 80px; }
.se-page-title { font-size: clamp(28px, 4vw, 38px); margin-bottom: 24px; }
.se-blog-layout { display: grid; grid-template-columns: 1fr 300px; gap: 50px; padding: 40px 24px 80px; }
.se-blog-layout.se-blog-no-sidebar { grid-template-columns: 1fr; }
.se-full-width-layout .se-blog-layout { grid-template-columns: 1fr; }
.se-post-card { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); overflow: hidden; margin-bottom: 30px; }
.se-post-card-media img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.se-post-card-body { padding: 20px; }
.se-post-meta { color: var(--se-text-light); font-size: 13px; }
.se-fullwidth-content { width: 100%; }

.se-404 { text-align: center; padding: 100px 24px; }
.se-404 i { font-size: 60px; color: var(--se-terracotta); }
.se-404 form { margin: 24px auto; max-width: 480px; }
.se-404 .se-btn { margin-top: 10px; }

/* ---------- Enquiry / contact form ---------- */
.se-enquiry-section { padding: 50px 0 90px; }
.se-enquiry-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 50px; align-items: start; }
.se-enquiry-intro .se-page-title { font-size: clamp(26px, 4vw, 36px); }
.se-enquiry-form-wrap { background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius); padding: 30px; box-shadow: var(--se-shadow-sm); }
.se-enquiry-row { margin-bottom: 18px; }
.se-enquiry-row-group { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.se-enquiry-form label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; color: var(--se-green-900); }
.se-enquiry-form input, .se-enquiry-form select, .se-enquiry-form textarea {
	width: 100%; padding: 12px 14px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm);
	font-family: var(--se-font-body); font-size: 15px; color: var(--se-text); background: var(--se-cream);
}
.se-enquiry-form textarea { resize: vertical; }
.se-enquiry-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.se-enquiry-submit { width: 100%; margin-top: 6px; }
.se-enquiry-success { text-align: center; padding: 30px 10px; }
.se-enquiry-success i { font-size: 46px; color: var(--se-green-700); }
.se-enquiry-error { background: #fbe9e4; border: 1px solid #e2a08c; color: #8a3a20; padding: 12px 16px; border-radius: var(--se-radius-sm); margin-bottom: 18px; font-size: 14px; }

@media (max-width: 900px) {
	.se-enquiry-layout { grid-template-columns: 1fr; }
	.se-enquiry-row-group { grid-template-columns: 1fr; }
}

.se-comments { max-width: 800px; margin: 0 auto 70px; }
.se-comment-list > li { border-bottom: 1px solid var(--se-border); padding: 16px 0; }

/* ---------- Footer ---------- */
.se-footer { background: var(--se-green-900); color: #cddaca; }

/* Conversion CTA band */
.se-footer-cta { background: var(--se-terracotta); padding: 34px 0; }
.se-footer-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.se-footer-cta-text h3 { color: #fff; margin-bottom: 4px; font-size: 20px; }
.se-footer-cta-text p { color: #fbe6da; margin: 0; }
.se-footer-cta-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.se-footer-cta .se-btn-primary { background: var(--se-green-900); border-color: var(--se-green-900); }
.se-footer-cta .se-btn-primary:hover { background: var(--se-green-800); border-color: var(--se-green-800); }

/* Trust badges strip */
.se-footer-trust { background: var(--se-green-800); padding: 16px 0; }
.se-footer-trust-inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 34px; }
.se-footer-trust-inner span { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #dbe6d8; font-weight: 500; }
.se-footer-trust-inner i { color: var(--se-terracotta); font-size: 16px; }

.se-newsletter { background: var(--se-green-800); padding: 44px 0; border-top: 1px solid rgba(255,255,255,.08); }
.se-newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.se-newsletter h3 { color: #fff; margin-bottom: 6px; }
.se-newsletter p { color: #cddaca; margin: 0; }
.se-newsletter-form { display: flex; gap: 10px; flex-wrap: wrap; }
.se-newsletter-form input { padding: 13px 16px; border-radius: 999px; border: none; min-width: 260px; font-family: var(--se-font-body); }

.se-footer-columns { padding: 50px 0 20px; }
.se-footer-columns-inner { display: grid; gap: 32px; grid-template-columns: 1fr; }
/* Column count adapts to how many footer widget areas are actually filled
   in, rather than a fixed template that leaves an empty gap when fewer
   than 4 are used. */
.se-footer-cols-1 { grid-template-columns: 1.4fr 1fr; }
.se-footer-cols-2 { grid-template-columns: 1.4fr 1fr 1fr; }
.se-footer-cols-3 { grid-template-columns: 1.4fr repeat(3, 1fr); }
.se-footer-cols-4 { grid-template-columns: 1.4fr repeat(4, 1fr); }

.se-footer-about img { max-height: 46px; margin-bottom: 14px; }
.se-footer-site-title { color: #fff; font-family: var(--se-font-heading); font-size: 22px; }
.se-footer-contact { margin-top: 14px; }
.se-footer-contact li { padding: 4px 0; }
.se-footer-contact a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 600; font-size: 14px; }
.se-footer-contact a:hover { color: var(--se-terracotta); }
.se-footer-contact i { color: var(--se-terracotta); }
.se-social-links { display: flex; gap: 10px; margin-top: 14px; }
.se-social-links a { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.08); display: flex; align-items: center; justify-content: center; color: #fff; }
.se-social-links a:hover { background: var(--se-terracotta); }
.se-footer-col .widget-title { color: #fff; font-size: 15px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 16px; }
.se-footer-col ul li { padding: 6px 0; }
.se-footer-col a { color: #b7c6b3; }
.se-footer-col a:hover { color: var(--se-terracotta); }
.se-footer-col p { color: #b7c6b3; font-size: 14px; }

/* ---------- Generic/core WordPress widgets (any sidebar or footer column) ---------- */
.widget { margin-bottom: 30px; }
.widget:last-child { margin-bottom: 0; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget ul ul { padding-left: 16px; margin-top: 6px; }
.widget select,
.widget input[type="text"],
.widget input[type="email"],
.widget input[type="search"],
.widget input[type="url"],
.widget textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--se-border); border-radius: var(--se-radius-sm);
	font-family: var(--se-font-body); font-size: 14px; background: var(--se-cream); color: var(--se-text);
}
.widget .search-form { display: flex; gap: 8px; }
.widget .search-form label { flex: 1; margin: 0; }
.widget .search-submit {
	border: none; background: var(--se-terracotta); color: #fff; padding: 0 16px; border-radius: var(--se-radius-sm);
	cursor: pointer; font-weight: 600;
}
.widget_categories li, .widget_archive li, .widget_pages li, .widget_meta li, .widget_recent_entries li, .widget_recent_comments li, .widget_nav_menu li {
	padding: 7px 0; border-bottom: 1px dashed var(--se-border);
}
.widget_categories .children, .widget_pages .children { padding-left: 16px; }
.widget_tag_cloud .tagcloud { display: flex; flex-wrap: wrap; gap: 8px; }
.widget_tag_cloud .tagcloud a {
	display: inline-block; padding: 5px 14px; background: var(--se-sand); border-radius: 999px;
	font-size: 12px !important; color: var(--se-green-800);
}
.widget_tag_cloud .tagcloud a:hover { background: var(--se-terracotta); color: #fff; }
.widget_calendar table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: center; }
.widget_calendar caption { font-weight: 700; padding-bottom: 8px; }
.widget_calendar th, .widget_calendar td { padding: 6px 4px; }
.widget_calendar #today { background: var(--se-terracotta); color: #fff; border-radius: var(--se-radius-sm); }
.widget_rss ul li { margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px dashed var(--se-border); }
.widget_rss .rss-date { display: block; font-size: 12px; color: var(--se-text-light); }
.widget_rss cite { font-size: 12px; color: var(--se-text-light); }

/* Dark-context overrides so the generic widget styles above stay legible
   inside the footer's dark columns. */
.se-footer-col .widget_categories li, .se-footer-col .widget_archive li, .se-footer-col .widget_pages li,
.se-footer-col .widget_meta li, .se-footer-col .widget_recent_entries li, .se-footer-col .widget_recent_comments li,
.se-footer-col .widget_nav_menu li, .se-footer-col .widget_rss ul li {
	border-color: rgba(255,255,255,.12);
}
.se-footer-col .widget_tag_cloud .tagcloud a { background: rgba(255,255,255,.1); color: #dbe6d8; }
.se-footer-col .widget_tag_cloud .tagcloud a:hover { background: var(--se-terracotta); color: #fff; }
.se-footer-col .widget_calendar caption { color: #fff; }
.se-footer-col .widget_calendar th { color: #dbe6d8; }

/* ---------- Classic widgets (Safari Search / Recent Safaris / Destinations / Contact) ---------- */
.widget .se-hero-search-form { flex-direction: column; box-shadow: none; padding: 0; background: none; }
.widget .se-hero-field { margin-bottom: 10px; }
.widget .se-hero-submit { width: 100%; }

.se-widget-safari-list li { border-bottom: 1px solid var(--se-border); padding: 10px 0; }
.se-widget-safari-list li:last-child { border-bottom: none; }
.se-widget-safari-item { display: flex; align-items: center; gap: 12px; }
.se-widget-safari-thumb { width: 60px; height: 46px; flex-shrink: 0; border-radius: var(--se-radius-sm); overflow: hidden; display: block; }
.se-widget-safari-thumb img { width: 100%; height: 100%; object-fit: cover; }
.se-widget-safari-info { flex: 1; min-width: 0; }
.se-widget-safari-title { display: block; font-size: 14px; font-weight: 600; color: var(--se-green-900); margin-bottom: 2px; }
.se-widget-safari-info .safari-price .amount { font-size: 13px; }
.se-widget-safari-info .safari-price .note, .se-widget-safari-info .safari-price .was, .se-widget-safari-info .safari-price .save-badge { display: none; }

.se-widget-destination-list li { border-bottom: 1px solid var(--se-border); }
.se-widget-destination-list li:last-child { border-bottom: none; }
.se-widget-destination-list a { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; font-size: 14px; }
.se-widget-destination-count { background: var(--se-sand); color: var(--se-text-light); font-size: 12px; padding: 2px 9px; border-radius: 999px; }

/* ---------- Our Destinations widget (visual grid) ---------- */
.se-our-destinations { display: grid; gap: 14px; }
.se-our-destination-card {
	display: block; border-radius: var(--se-radius-sm); overflow: hidden; position: relative;
	box-shadow: var(--se-shadow-sm); transition: transform .15s ease;
}
.se-our-destination-card:hover { transform: translateY(-3px); }
.se-our-destination-media { display: block; aspect-ratio: 4/3; background: var(--se-sand-dark); overflow: hidden; }
.se-our-destination-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.se-our-destination-card:hover .se-our-destination-media img { transform: scale(1.06); }
.se-our-destination-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 26px; color: var(--se-border); }
.se-our-destination-name {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 12px;
	background: linear-gradient(180deg, rgba(22,40,31,0), rgba(22,40,31,.85));
	color: #fff; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 6px;
}
.se-our-destination-count { font-size: 11px; font-weight: 500; opacity: .85; }

/* ---------- Experiences widget (same card style as Our Destinations) ---------- */
.se-experiences { display: grid; gap: 14px; }
.se-experience-card {
	display: block; border-radius: var(--se-radius-sm); overflow: hidden; position: relative;
	box-shadow: var(--se-shadow-sm); transition: transform .15s ease;
}
.se-experience-card:hover { transform: translateY(-3px); }
.se-experience-media { display: block; aspect-ratio: 4/3; background: var(--se-sand-dark); overflow: hidden; }
.se-experience-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.se-experience-card:hover .se-experience-media img { transform: scale(1.06); }
.se-experience-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 26px; color: var(--se-border); }
.se-experience-name {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 12px;
	background: linear-gradient(180deg, rgba(22,40,31,0), rgba(22,40,31,.85));
	color: #fff; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 6px;
}
.se-experience-count { font-size: 11px; font-weight: 500; opacity: .85; }
.se-footer-col .se-experience-name { color: #fff; }

/* "Safari Style" Experiences tiles - large photo, bold title, subtitle */
.se-experiences-safari-style .se-experience-media { aspect-ratio: 1/1; }
.se-experiences-safari-style .se-experience-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,0) 45%, rgba(22,40,31,.82)); pointer-events: none; }
.se-experiences-safari-style .se-experience-card { position: relative; }
.se-experiences-safari-style .se-experience-safari-text {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 18px 20px; color: #fff;
	display: flex; flex-direction: column; gap: 4px;
}
.se-experiences-safari-style .se-experience-safari-text .se-experience-name {
	position: static; background: none; padding: 0; font-family: 'Merriweather', Georgia, serif; font-weight: 700;
	font-size: 19px; display: block;
}
.se-experiences-safari-style .se-experience-subtitle { font-size: 13px; color: rgba(255,255,255,.85); }
@media (max-width: 680px) {
	.se-experiences-safari-style { grid-template-columns: repeat(2, 1fr) !important; }
}
/* Dark footer-column context */
.se-footer-col .se-our-destination-name { color: #fff; }

.se-widget-contact-list li { padding: 6px 0; }
.se-widget-contact-list a { display: inline-flex; align-items: center; gap: 8px; }

/* ---------- Footer Badges & CTA widget ---------- */
.se-footer-badges { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.se-footer-badge { display: block; opacity: .92; transition: opacity .15s ease; }
.se-footer-badge:hover { opacity: 1; }
.se-footer-badge img { display: block; max-width: 80px; height: auto; }
.se-footer-feature-cta { text-align: left; }
.se-footer-feature-tagline { font-family: 'Merriweather', Georgia, serif; font-style: italic; margin-top: 14px; font-size: 16px; color: rgba(255,255,255,.85); }

/* Dark-background contexts (footer columns / dark sidebars) need lighter widget text */
.se-footer-col .se-widget-destination-count { background: rgba(255,255,255,.1); color: #cddaca; }
.se-footer-col .se-widget-safari-title { color: #fff; }

.se-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 20px 0; }
.se-footer-bottom-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 13px; }
.se-footer-menu { display: flex; gap: 16px; }
.se-footer-menu a { color: #b7c6b3; }

/* ================= Responsive ================= */
@media (min-width: 1000px) {
	.se-primary-nav { display: flex; }
	.se-header-cta { display: inline-flex; }
	.se-mobile-toggle { display: none; }
}

@media (max-width: 999px) {
	.se-hero-search-form { grid-template-columns: 1fr; }
	.se-archive-layout { grid-template-columns: 1fr; }
	.se-filter-sidebar { position: static; margin-bottom: 30px; }
	.se-single-layout { grid-template-columns: 1fr; }
	.se-booking-box { position: static; }
	.se-blog-layout { grid-template-columns: 1fr; }
	.se-footer-columns-inner { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
	.se-hero { padding: 46px 0 80px; }
	.se-newsletter-inner { flex-direction: column; text-align: center; }
	.se-newsletter-form { width: 100%; }
	.se-newsletter-form input { flex: 1; min-width: 0; }
	.se-footer-columns-inner { grid-template-columns: 1fr; }
	.safari-grid { grid-template-columns: 1fr; }
}

/* ---------- Site FAQs widget (two-column accordion grid) ---------- */
.se-site-faqs { padding: 20px 0; }
.se-site-faqs-title { text-align: center; margin-bottom: 30px; }
.se-site-faqs-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 780px) {
	.se-site-faqs-columns { grid-template-columns: 1fr; }
}
.se-site-faqs-column {
	background: var(--se-white); border: 1px solid var(--se-border); border-radius: var(--se-radius);
	padding: 10px 26px;
}
.se-site-faq-item { border-bottom: 1px solid var(--se-border); padding: 18px 0; }
.se-site-faq-item:last-child { border-bottom: none; }
.se-site-faq-item summary {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	font-weight: 700; font-size: 17px; color: var(--se-green-800);
}
.se-site-faq-item summary::-webkit-details-marker { display: none; }
.se-site-faq-item summary i { transition: transform .2s ease; color: var(--se-terracotta); flex-shrink: 0; }
.se-site-faq-item[open] summary i { transform: rotate(180deg); }
.se-site-faq-answer { margin-top: 12px; color: var(--se-text-light); line-height: 1.7; }
.se-site-faq-answer p:last-child { margin-bottom: 0; }

/* ---------- About Us Feature widget ---------- */
.se-about-feature { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; margin: 20px 0; }
.se-about-feature-panel-right { direction: rtl; }
.se-about-feature-panel-right > * { direction: ltr; }
.se-about-feature-media { grid-row: 1; grid-column: 1 / -1; }
.se-about-feature-media img { width: 100%; height: 460px; object-fit: cover; display: block; border-radius: var(--se-radius); }
.se-about-feature-panel {
	position: relative; z-index: 2; background: var(--se-green-800); color: #fff; padding: 40px; border-radius: var(--se-radius);
	grid-row: 1; grid-column: 1 / span 1; margin-right: -8%; max-width: 460px; box-shadow: var(--se-shadow);
}
.se-about-feature-panel-right .se-about-feature-panel { grid-column: 2 / span 1; margin-right: 0; margin-left: -8%; margin-left: auto; }
.se-about-feature-panel h2 { color: #fff; margin-bottom: 16px; }
.se-about-feature-panel p { color: rgba(255,255,255,.9); margin-bottom: 24px; }
@media (max-width: 900px) {
	.se-about-feature { display: block; }
	.se-about-feature-media img { height: 320px; border-radius: var(--se-radius) var(--se-radius) 0 0; }
	.se-about-feature-panel { margin: 0 !important; max-width: none; border-radius: 0 0 var(--se-radius) var(--se-radius); }
}

/* ---------- Travel Guides widget ---------- */
.se-travel-guides { padding: 20px 0; }
.se-travel-guides-title { text-align: center; margin-bottom: 30px; }
.se-travel-guides-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) {
	.se-travel-guides-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.se-travel-guides-grid { grid-template-columns: 1fr; }
}
.se-travel-guide-card { position: relative; display: block; border-radius: var(--se-radius); overflow: hidden; aspect-ratio: 3/4; }
.se-travel-guide-media, .se-travel-guide-placeholder { position: absolute; inset: 0; }
.se-travel-guide-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.se-travel-guide-card:hover .se-travel-guide-media img { transform: scale(1.06); }
.se-travel-guide-placeholder { display: flex; align-items: center; justify-content: center; background: var(--se-sand-dark); font-size: 30px; color: var(--se-border); }
.se-travel-guide-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,0) 40%, rgba(22,40,31,.85)); }
.se-travel-guide-caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 20px; color: #fff; }
.se-travel-guide-title { display: block; font-weight: 700; font-size: 19px; margin-bottom: 8px; }
.se-travel-guide-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; opacity: .9; }
.se-travel-guides-cta { text-align: center; margin-top: 30px; }

/* ---------- Destinations Slider widget ---------- */
.se-destinations-slider { padding: 20px 0; }
.se-destinations-slider-header { text-align: center; max-width: 700px; margin: 0 auto 40px; }
.se-destinations-slider-body { display: grid; grid-template-columns: 1fr 1.6fr; gap: 50px; align-items: center; }
.se-destinations-slider-panels { position: relative; }
.se-destinations-slide-panel { display: none; }
.se-destinations-slide-panel.is-active { display: block; }
.se-destinations-slide-eyebrow { color: var(--se-terracotta); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 13px; display: block; margin-bottom: 10px; }
.se-destinations-slide-panel h3 { margin-bottom: 16px; }
.se-destinations-slide-panel p { color: var(--se-text-light); margin-bottom: 26px; line-height: 1.7; }
.se-destinations-slider-dots { display: flex; gap: 8px; margin-top: 26px; }
.se-destinations-slider-dot { width: 10px; height: 10px; border-radius: 50%; border: none; background: var(--se-border); cursor: pointer; padding: 0; transition: all .2s ease; }
.se-destinations-slider-dot.is-active { background: var(--se-terracotta); width: 28px; border-radius: 6px; }
.se-destinations-slider-images { position: relative; }
.se-destinations-slide-images { display: none; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.se-destinations-slide-images.is-active { display: grid; }
.se-destinations-slide-images img { width: 100%; height: 420px; object-fit: cover; border-radius: var(--se-radius); display: block; }
.se-destinations-slider-cta { text-align: center; margin-top: 50px; }
@media (max-width: 900px) {
	.se-destinations-slider-body { grid-template-columns: 1fr; }
	.se-destinations-slide-images img { height: 220px; }
}
@media (max-width: 560px) {
	.se-destinations-slide-images { grid-template-columns: 1fr; }
	.se-destinations-slide-images img { height: 200px; }
}

/* ---------- Footer v2: newsletter band (eyebrow + serif heading + link) ---------- */
.se-newsletter-inner-v2 { display: flex; align-items: center; justify-content: space-between; gap: 50px; flex-wrap: wrap; }
.se-newsletter-text-v2 { flex: 1 1 420px; }
.se-newsletter-eyebrow { display: block; color: var(--se-terracotta); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 10px; }
.se-newsletter-heading-v2 { color: #fff; font-family: var(--se-font-heading); text-transform: uppercase; letter-spacing: .02em; font-size: clamp(24px, 3.2vw, 36px); margin-bottom: 14px; }
.se-newsletter-text-v2 p { color: #cddaca; margin: 0 0 10px; max-width: 480px; }
.se-newsletter-link { color: var(--se-terracotta); font-weight: 700; text-decoration: underline; }
.se-newsletter-link:hover { color: #fff; }
.se-newsletter-form-wrap { flex: 0 1 420px; }
.se-newsletter-form-v2 { display: flex; gap: 10px; flex-wrap: wrap; }
.se-newsletter-form-v2 input { flex: 1; min-width: 220px; }
.se-newsletter-note { color: #a9bba5; font-size: 12px; margin: 10px 0 0; }

/* ---------- Footer v2: auto-populated 4-column layout ---------- */
.se-footer-columns-v2 { background: var(--se-green-900); padding: 50px 0 40px; }
.se-footer-columns-inner-v2 { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.1fr; gap: 40px; }
.se-footer-col-brand .se-footer-site-title { color: #fff; font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.se-footer-col-brand p { color: #b9c7b5; margin: 14px 0; }
.se-footer-col-v2 h4, .se-footer-col-contact h4 {
	color: #fff; font-size: 16px; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 14px;
	padding-bottom: 10px; border-bottom: 2px solid var(--se-terracotta); display: inline-block;
}
.se-footer-col-v2 ul { list-style: none; margin: 0; padding: 0; }
.se-footer-col-v2 ul li { margin-bottom: 10px; }
.se-footer-col-v2 ul a { color: #b9c7b5; }
.se-footer-col-v2 ul a:hover { color: #fff; }
.se-footer-contact-line { display: flex; align-items: flex-start; gap: 10px; color: #b9c7b5; margin: 0 0 14px; }
.se-footer-contact-line i { margin-top: 3px; color: var(--se-terracotta); flex-shrink: 0; }
.se-footer-contact-line a { color: #b9c7b5; }
.se-footer-contact-line a:hover { color: #fff; }
@media (max-width: 1000px) {
	.se-footer-columns-inner-v2 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.se-footer-columns-inner-v2 { grid-template-columns: 1fr; }
	.se-newsletter-inner-v2 { text-align: center; }
	.se-newsletter-text-v2 p { margin-left: auto; margin-right: auto; }
	.se-footer-contact-line { justify-content: center; }
	.se-footer-col-v2 h4, .se-footer-col-contact h4 { display: block; }
}

/* ---------- Best Time to Travel (seasonal calendar) ----------
   One row of twelve cards, exactly as in the reference at 1440px wide (a 900px row, 7px gaps, 11.2px notes under a
   13.3px month, a brown 1px border and a round check badge on the recommended months).
   The reference row is a constant ~62.5% of the window (804px at 1288, 900px at 1440), so it SCALES DOWN with the
   window and stays one row. Here every size is in em on the grid, and the grid's font-size follows the window width
   (11.2px at 1440px and wider, shrinking proportionally below that), so all the cards, text and gaps scale together
   and the notes wrap at the same words at every width. Only phones (below 680px) change: the single row then swipes
   sideways instead of shrinking to unreadable sizes. */
.se-best-time { text-align: center; padding: 10px 0; }
.se-best-time-heading { margin: 0 0 32px; color: #b87233; font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em; }
.se-best-time-description { max-width: 940px; margin: 0 auto 24px; color: #5c5c5a; font-size: 15.5px; line-height: 1.6; }
.se-best-time-grid {
	/* --se-bt-n is set by the widget to the number of months, so the row reshapes when you add or remove one.
	   Twelve months make the reference's row: 12 x 6.125em + 11 x .625em = 900px at 11.2px. */
	--se-bt-n: 12; font-size: clamp(8px, .7778vw, 11.2px);
	display: grid; grid-template-columns: repeat(var(--se-bt-n), minmax(min-content, 1fr)); gap: .625em;
	max-width: calc(var(--se-bt-n) * 6.125em + (var(--se-bt-n) - 1) * .625em); margin: 0 auto;
}
.se-best-time-month {
	position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; box-sizing: border-box;
	/* The 1px border is an inset ring (it takes no layout space) and its width is folded into the em padding, so at 11.2px the
	   card is exactly the reference's and at every other size the whole card scales in proportion. */
	padding: 1.1607em .4464em 1.4286em; border-radius: .8036em; background: #fff; box-shadow: inset 0 0 0 1px #ebe2d6;
}
.se-best-time-month strong { margin-bottom: .4511em; color: #373a40; font-size: 1.1875em; font-weight: 600; line-height: 1.3534; }
.se-best-time-month > span:not(.se-best-time-check) { display: block; margin-top: .1339em; color: #6b675c; font-size: 1em; line-height: 1.5179; }
.se-best-time-month strong + span { margin-top: 0; }
.se-best-time-month.is-recommended { background: #fbf3e5; box-shadow: inset 0 0 0 1px #876c36; }
.se-best-time-check {
	position: absolute; top: -.4464em; right: -.4464em; width: 1.6071em; height: 1.6071em; border-radius: 50%; background: #8a6c31; color: #fff;
	display: flex; align-items: center; justify-content: center;
}
.se-best-time-check i { font-size: .9821em; line-height: 1; }
.se-best-time-legend { display: flex; justify-content: center; gap: 25px; margin-top: 22px; color: #373a40; font-size: 13.4px; }
.se-best-time-legend span { display: inline-flex; align-items: center; }
.se-bt-swatch { display: inline-block; flex: 0 0 auto; width: 12px; height: 12px; margin-right: 8.5px; border: 1px solid #e9dfd1; border-radius: 50%; background: #fff; box-sizing: border-box; }
.se-bt-swatch.is-recommended { border-color: #876c36; background: #fbf3e5; }
@media (max-width: 680px) {
	/* Phones: keep it ONE row, at a readable size, and let it swipe sideways. */
	.se-best-time-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 10px 14px 8px; scroll-snap-type: x proximity; }
	.se-best-time-grid { font-size: 11.2px; width: max-content; max-width: none; grid-template-columns: repeat(var(--se-bt-n), minmax(min-content, 6.125em)); }
	.se-best-time-month { scroll-snap-align: start; }
}

/* ---------- CTA Banner widget ---------- */
.se-cta-banner { background: linear-gradient(160deg, var(--se-green-900), var(--se-green-800)); border-radius: var(--se-radius); padding: 50px 30px; text-align: center; }
.se-cta-banner h2 { color: #fff; margin-bottom: 10px; }
.se-cta-banner-subtitle { color: #cddaca; margin-bottom: 26px; font-size: 17px; }
.se-cta-banner-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.se-cta-banner-whatsapp { background: #25d366; color: #fff; }
.se-cta-banner-whatsapp:hover { background: #1fb959; color: #fff; }
.se-cta-banner-contact { display: flex; justify-content: center; gap: 26px; flex-wrap: wrap; margin-bottom: 14px; }
.se-cta-banner-contact a { color: #cddaca; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.se-cta-banner-contact a:hover { color: #fff; }
.se-cta-banner-urgency { color: var(--se-sand); font-size: 13px; margin: 0; }

/* ---------- Contact popup (the Contact Modal widget AND the floating WhatsApp icon) ----------
   Measured from the reference at 1440px: a 560px glass card on dark navy, gold (#dfb867 -> copper) accents, the heading at 52px in small
   caps, 30px stat numbers, 46px fields in two columns, a 60px gold button and a 55px green WhatsApp button, the whole card about 2,200px tall.
   Colours and photo come from the Customizer (WhatsApp Button & Popup). */
body.se-modal-open { overflow: hidden; }
.se-contact-modal { --se-cm-gold: #dfb867; position: fixed; inset: 0; z-index: 9999; display: none; flex-direction: column; align-items: center; overflow-y: auto; padding: 40px 16px 36px; color: #e4e9f0; font-family: var(--se-font-body); }
.se-contact-modal.is-open { display: flex; }
.se-contact-modal-overlay { position: fixed; inset: 0; background: rgba(9, 19, 33, .95); }
.se-contact-modal.has-bg .se-contact-modal-overlay { background: linear-gradient(rgba(9, 19, 33, .9), rgba(9, 19, 33, .95)), var(--se-cm-bg) center / cover no-repeat; }
.se-cm-home { position: fixed; top: 18px; left: 18px; z-index: 3; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 17px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(255,255,255,.08); color: #fff; font-size: 14px; font-weight: 500; backdrop-filter: blur(6px); }
.se-cm-home:hover { background: rgba(255,255,255,.16); color: #fff; }
.se-contact-modal-close { position: fixed; top: 18px; right: 18px; z-index: 3; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: #0e1a2b; font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.3); }
.se-contact-modal-close:hover { background: var(--se-cm-gold); }
.se-contact-modal-dialog { position: relative; z-index: 1; width: 100%; max-width: 560px; margin: 0 auto; border: 1px solid rgba(255,255,255,.1); border-radius: 24px; background: linear-gradient(180deg, rgba(38, 50, 68, .8), rgba(26, 36, 52, .86)); box-shadow: 0 30px 80px rgba(0,0,0,.45); backdrop-filter: blur(14px); }
.se-contact-modal-body { padding: 44px 34px 40px; text-align: center; }
.se-contact-modal-badge { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 18px; border-radius: 999px; background: linear-gradient(90deg, #e6cb85, #bb7b42); color: #1d2230; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; box-shadow: 0 6px 24px rgba(214, 170, 90, .35); }
.se-contact-modal-logo { margin: 42px 0 56px; }
.se-contact-modal-logo img { display: block; width: auto; max-width: 100%; max-height: 150px; margin: 0 auto; }
.se-contact-modal-badge + .se-contact-modal-heading { margin-top: 36px; }
.se-contact-modal-heading { margin: 0 0 10px; color: #fff; font-family: var(--se-font-heading); font-size: clamp(34px, 9vw, 52px); font-style: normal; font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em; line-height: .97; text-transform: none; }
.se-contact-modal-subheading { margin: 0 0 20px; color: var(--se-cm-gold); font-size: 16px; font-weight: 600; letter-spacing: .15em; line-height: 24px; text-transform: uppercase; }
.se-contact-modal-rating { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 17px; color: #d7dde6; font-size: 13.7px; }
.se-contact-modal-stars i, .se-contact-modal-testimonial-stars i { color: var(--se-cm-gold); font-size: 17px; }
.se-contact-modal-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 25px; padding: 12px 0; border-top: 1px solid rgba(255,255,255,.09); border-bottom: 1px solid rgba(255,255,255,.09); }
.se-contact-modal-stats strong { display: block; color: var(--se-cm-gold); font-family: var(--se-font-heading); font-size: 30px; font-variant-caps: small-caps; font-weight: 700; line-height: 34px; }
.se-contact-modal-stats span { display: block; margin-top: 4px; color: #8f9aab; font-size: 11px; letter-spacing: .04em; line-height: 14px; text-transform: uppercase; }
.se-contact-modal-online { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; min-height: 35px; margin: 0 auto 15px; padding: 7px 20px; border: 1px solid rgba(37,211,102,.28); border-radius: 18px; background: rgba(37,211,102,.1); color: #d4eadd; font-size: 13.2px; line-height: 1.4; text-align: left; }
.se-contact-modal-online-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: #2fd37d; box-shadow: 0 0 0 3px rgba(47,211,125,.2); animation: se-pulse-dot 1.8s ease-in-out infinite; }
@keyframes se-pulse-dot { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.se-contact-modal-online.is-closed { border-color: rgba(223,184,103,.35); background: rgba(223,184,103,.08); color: #efe3c6; }
.se-contact-modal-online.is-closed .se-contact-modal-online-dot { background: var(--se-cm-gold); box-shadow: 0 0 0 3px rgba(223,184,103,.2); animation: none; }
.se-cm-dept { display: flex; align-items: center; gap: 9px; width: fit-content; height: 36px; margin: 0 auto 25px; padding: 0 22px; border: 1px solid rgba(223,184,103,.55); border-radius: 999px; color: #f1f3f7; font-size: 13.3px; font-weight: 500; }
.se-cm-dept i { color: var(--se-cm-gold); font-size: 15px; }
a.se-cm-dept:hover { background: rgba(223,184,103,.12); color: #fff; }
.se-contact-modal-online + .se-cm-testimonials { margin-top: 10px; }   /* no department pill between them: keep the gap */
.se-contact-modal-testimonial { display: flex; flex-direction: column; justify-content: center; min-height: 149px; padding: 20px 24px; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; background: rgba(255,255,255,.05); }
.se-cm-slide { margin: 0; }
.se-cm-slide[hidden] { display: none; }
.se-contact-modal-testimonial-stars { margin-bottom: 12px; }
.se-cm-slide blockquote { margin: 0 0 14px; padding: 0; border: 0; }
.se-cm-slide blockquote p { margin: 0; color: #e3e8ef; font-family: var(--se-font-heading); font-size: 22px; font-style: italic; font-variant-caps: small-caps; font-weight: 500; letter-spacing: .02em; line-height: 1.15; }
.se-cm-slide figcaption { display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--se-cm-gold); font-size: 14px; font-weight: 700; }
.se-cm-dots { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 20px 0 24px; }
.se-cm-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.28); cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.se-cm-dot.is-active { background: var(--se-cm-gold); transform: scale(1.3); }
.se-contact-modal-trust-points { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, auto); grid-auto-flow: column; gap: 12px 18px; margin: 0 0 30px; text-align: left; }
.se-contact-modal-trust-points span { display: flex; align-items: flex-start; gap: 10px; color: #e1e6ee; font-size: 13.6px; line-height: 1.45; }
.se-contact-modal-trust-points i { flex: 0 0 auto; margin-top: 1px; color: var(--se-cm-gold); font-size: 17px; }
.se-contact-modal-form { padding: 22px 22px 28px; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: rgba(255,255,255,.04); }
.se-contact-modal-form h3 { margin: 0 0 6px; color: var(--se-cm-gold); font-family: var(--se-font-heading); font-size: 27px; font-style: normal; font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em; line-height: 1; text-align: center; }
.se-contact-modal-form > p { margin: 0 0 14px; color: #a7b2c1; font-size: 13.2px; text-align: center; }
.se-contact-modal-form .se-booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 14px; text-align: left; }
.se-contact-modal-form .se-booking-row-group { display: contents; }
.se-contact-modal-form .se-booking-row { margin: 0; }
.se-contact-modal-form .se-booking-row--name { grid-column: 1 / -1; order: 1; }
.se-contact-modal-form .se-booking-row--email { order: 2; }
.se-contact-modal-form .se-booking-row--phone { order: 3; }
.se-contact-modal-form .se-booking-row--date { order: 4; }
.se-contact-modal-form .se-booking-row--travellers { order: 5; }
.se-contact-modal-form .se-booking-row--country { order: 6; }
.se-contact-modal-form .se-booking-row--children { grid-column: 1 / -1; order: 7; }
.se-contact-modal-form .se-booking-row--interest { order: 8; }
.se-contact-modal-form .se-booking-row--timeframe { order: 9; }
.se-contact-modal-form .se-booking-row--budget { grid-column: 1 / -1; order: 10; }
.se-contact-modal-form .se-booking-row--safari { grid-column: 1 / -1; order: 11; }
.se-contact-modal-form .se-booking-row--message { grid-column: 1 / -1; order: 12; }
.se-contact-modal-form .se-booking-submit-btn { grid-column: 1 / -1; order: 13; }
.se-contact-modal-form .se-cm-form-note, .se-contact-modal-form .se-enquiry-honeypot { order: 14; }
/* "Tour of interest": the chosen tour as one line with a (change) link, or the drop-down when none is chosen */
.se-cm-enquiring { display: flex; align-items: center; gap: 9px; box-sizing: border-box; min-height: 46px; margin: 0; padding: 0 16px; border: 1px solid rgba(223,184,103,.4); border-radius: 12px; background: rgba(223,184,103,.08); color: #f1f3f7; font-size: 14px; line-height: 1.3; }
.se-cm-enquiring[hidden], .se-contact-modal-form .se-booking-form select[hidden] { display: none; }
.se-cm-enquiring i { flex: 0 0 auto; color: var(--se-cm-gold); }
.se-cm-enquiring-text { flex: 1; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.se-cm-change { flex: 0 0 auto; padding: 0; border: 0; background: none; color: var(--se-cm-gold); font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.se-contact-modal-form .se-booking-form > :not(.se-booking-row):not(.se-booking-row-group):not(.se-booking-submit-btn) { grid-column: 1 / -1; }
.se-contact-modal-form .se-booking-form input[type="hidden"] { display: none; }
.se-booking-label { display: block; margin: 0 0 8px; color: #aeb8c6; font-size: 11.7px; font-weight: 600; letter-spacing: .04em; line-height: 14px; text-transform: uppercase; }
.se-contact-modal-form .se-booking-form input[type="text"], .se-contact-modal-form .se-booking-form input[type="email"], .se-contact-modal-form .se-booking-form input[type="tel"],
.se-contact-modal-form .se-booking-form select, .se-contact-modal-form .se-booking-form textarea { box-sizing: border-box; width: 100%; height: 46px; padding: 0 16px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.07); color: #fff; font-family: var(--se-font-body); font-size: 15px; box-shadow: none; }
.se-contact-modal-form .se-booking-form textarea { height: 88px; padding: 12px 16px; line-height: 1.45; resize: vertical; }
.se-contact-modal-form .se-booking-form select { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M0 0h12L6 8z' fill='%23dfb867'/%3E%3C/svg%3E"); background-position: right 16px center; background-repeat: no-repeat; }
.se-contact-modal-form .se-booking-form select option { background: #1d2938; color: #fff; }
.se-contact-modal-form .se-booking-form input::placeholder, .se-contact-modal-form .se-booking-form textarea::placeholder { color: #6f7c8e; opacity: 1; }
.se-contact-modal-form .se-booking-form input:focus, .se-contact-modal-form .se-booking-form select:focus, .se-contact-modal-form .se-booking-form textarea:focus { border-color: var(--se-cm-gold); outline: 0; box-shadow: 0 0 0 3px rgba(223,184,103,.18); }
.se-contact-modal-form .se-cm-submit { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 60px; margin-top: 2px; padding: 0 20px; border: 0; border-radius: 12px; background: linear-gradient(90deg, #e6cb85, #bb7b42); color: #1a1d27; font-size: 18px; font-weight: 700; box-shadow: 0 10px 28px rgba(214, 170, 90, .28); cursor: pointer; }
.se-contact-modal-form .se-cm-submit:hover { filter: brightness(1.06); }
.se-contact-modal-form .se-cm-submit i { font-size: 20px; }
.se-cm-form-note { margin: -2px 0 0; color: #8f9aab; font-size: 11.5px; line-height: 1.3; text-align: center; }
.se-cm-form-note i { color: var(--se-cm-gold); }
.se-contact-modal-form .se-booking-success { padding: 18px 8px; color: #e4e9f0; text-align: center; }
.se-contact-modal-form .se-booking-success i { color: #2fd37d; font-size: 40px; }
.se-contact-modal-form .se-booking-success h4 { margin: 8px 0 4px; color: var(--se-cm-gold); font-family: var(--se-font-heading); font-size: 24px; }
.se-contact-modal-form .se-enquiry-error { padding: 12px 14px; border: 1px solid rgba(255,120,120,.4); border-radius: 12px; background: rgba(255,90,90,.1); color: #ffd6d6; font-size: 14px; }
.se-contact-modal-divider { display: flex; align-items: center; gap: 16px; margin: 19px 0; color: #9aa6b6; font-size: 12.5px; letter-spacing: .08em; }
.se-contact-modal-divider::before, .se-contact-modal-divider::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.13); }
.se-contact-modal-whatsapp { display: flex; align-items: center; justify-content: center; gap: 10px; height: 55px; border-radius: 14px; background: linear-gradient(90deg, #25d165, #1dad56); color: #fff; font-size: 16.4px; font-weight: 700; box-shadow: 0 10px 28px rgba(37, 209, 101, .25); }
.se-contact-modal-whatsapp i { font-size: 22px; }
.se-contact-modal-whatsapp:hover { color: #fff; filter: brightness(1.07); }
.se-contact-modal-whatsapp-note { margin: 12px 0 28px; color: #a3aebc; font-size: 12.5px; }
.se-contact-modal-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 29px; }
.se-contact-modal-badges span { display: inline-flex; align-items: center; gap: 8px; height: 33px; padding: 0 18px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; background: rgba(255,255,255,.05); color: #dfe5ee; font-size: 11.6px; font-weight: 500; }
.se-contact-modal-badges i { color: var(--se-cm-gold); font-size: 14px; }
.se-contact-modal-press-label { margin: 0 0 7px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08); color: #8895a7; font-size: 11.3px; letter-spacing: .2em; text-transform: uppercase; }
.se-contact-modal-press { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 23px; opacity: .85; }
.se-contact-modal-press img { max-height: 24px; width: auto; filter: grayscale(100%) brightness(2); }
.se-cm-press-names span { color: #b6bfcb; font-family: var(--se-font-heading); font-size: 19px; font-variant-caps: small-caps; font-weight: 500; letter-spacing: .02em; line-height: 34px; }
.se-cm-more { margin: 19px 0 0; color: #aab4c2; font-size: 14.2px; }
.se-cm-more a { color: var(--se-cm-gold); font-weight: 600; }
.se-cm-fineprint { position: relative; z-index: 1; margin-top: 30px; color: #7f8b9b; text-align: center; }
.se-cm-fineprint p { margin: 0 0 6px; font-size: 15.5px; }
.se-cm-fineprint .se-cm-fineprint-small { color: #5f6b7b; font-size: 11.1px; }
@media (max-width: 560px) {
	.se-contact-modal { padding: 64px 12px 28px; }
	.se-cm-home { top: 12px; left: 12px; height: 34px; padding: 0 13px; font-size: 13px; }
	.se-contact-modal-close { top: 12px; right: 12px; width: 40px; height: 40px; }
	.se-contact-modal-body { padding: 36px 20px 30px; }
	.se-contact-modal-stats { grid-template-columns: repeat(2, 1fr); gap: 14px 8px; }
	.se-contact-modal-trust-points { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; }
	.se-contact-modal-form { padding: 20px 16px 22px; }
	.se-contact-modal-form .se-booking-form { grid-template-columns: 1fr; }
	.se-contact-modal-form .se-booking-row--name, .se-contact-modal-form .se-booking-row--message { grid-column: auto; }
	.se-contact-modal-subheading { font-size: 13px; letter-spacing: .1em; }
	.se-cm-slide blockquote p { font-size: 19px; }
}

/* ---------- The floating WhatsApp icon ---------- */
.se-wa-float { position: fixed; bottom: 28px; z-index: 9990; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: linear-gradient(135deg, #14af74, #0e7870); color: #fff; font-size: 34px; line-height: 1; box-shadow: 0 8px 26px rgba(20, 175, 116, .4), 0 0 0 7px rgba(20, 175, 116, .14); transition: transform .2s ease; }
.se-wa-float-right { right: 28px; }
.se-wa-float-left { left: 28px; }
.se-wa-float:hover { color: #fff; transform: scale(1.06); }
.se-wa-float::after { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0 rgba(20, 175, 116, .5); animation: se-wa-ring 2.6s ease-out infinite; }
@keyframes se-wa-ring { 0% { box-shadow: 0 0 0 7px rgba(20, 175, 116, .38); } 70%, 100% { box-shadow: 0 0 0 22px rgba(20, 175, 116, 0); } }
@media (prefers-reduced-motion: reduce) { .se-wa-float::after, .se-contact-modal-online-dot { animation: none; } }
body.se-modal-open .se-wa-float { display: none; }
@media (max-width: 999px) { body.single-safari .se-wa-float { bottom: 92px; } }

/* ---------- Signature Collection / Country Showcase widgets ---------- */
.se-showcase { padding: 10px 0; }
.se-showcase-header { text-align: center; max-width: 820px; margin: 0 auto 40px; }
.se-showcase-eyebrow { display: block; color: var(--se-terracotta); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .24em; margin-bottom: 14px; }
.se-showcase-heading { margin-bottom: 16px; }
.se-showcase-heading-italic { font-style: italic; color: var(--se-terracotta); font-weight: 400; }
.se-showcase-description { color: var(--se-text-light); line-height: 1.7; }
.se-showcase-grid { display: grid; gap: 18px; }
.se-showcase-cols-3 { grid-template-columns: repeat(3, 1fr); }
.se-showcase-cols-4 { grid-template-columns: repeat(4, 1fr); }
.se-showcase-cols-5 { grid-template-columns: repeat(5, 1fr); }
.se-showcase-card { position: relative; display: block; border-radius: var(--se-radius-sm); overflow: hidden; aspect-ratio: 3/4; }
.se-showcase-media, .se-showcase-placeholder { position: absolute; inset: 0; aspect-ratio: auto; }
.se-showcase-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.se-showcase-card:hover .se-showcase-media img { transform: scale(1.07); }
.se-showcase-placeholder { display: flex; align-items: center; justify-content: center; background: var(--se-sand-dark); font-size: 30px; color: var(--se-border); }
.se-showcase-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,0) 30%, rgba(22,40,31,.4) 58%, rgba(22,40,31,.9) 100%); }
.se-showcase-badge {
	position: absolute; top: 14px; right: 14px; z-index: 2; background: var(--se-terracotta); color: #fff;
	font-size: 12px; font-weight: 700; padding: 7px 14px; border-radius: 999px; text-transform: uppercase; letter-spacing: .02em;
}
.se-showcase-caption { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 20px; color: #fff; }
.se-showcase-tagline { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin-bottom: 4px; }
.se-showcase-name { display: block; font-family: var(--se-font-heading); font-size: 26px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
@media (max-width: 1100px) {
	.se-showcase-cols-5 { grid-template-columns: repeat(3, 1fr); }
	.se-showcase-cols-4 { grid-template-columns: repeat(2, 1fr); }
	.se-showcase-cols-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.se-showcase-cols-5, .se-showcase-cols-4, .se-showcase-cols-3 { grid-template-columns: 1fr 1fr; }
	.se-showcase-name { font-size: 19px; }
}

/* ---------- Homepage kit + imported homepage template ---------- */
.se-home-section,
.se-builder-home .se-showcase,
.se-builder-home .safari-grid { max-width: var(--se-container); margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
.se-builder-home .se-cta-banner,
.se-builder-home .se-about-feature { width: calc(100% - 48px); max-width: calc(var(--se-container) - 48px); margin-left: auto; margin-right: auto; }
.se-builder-home .se-showcase { padding-top: 70px; padding-bottom: 20px; }
.se-showcase.se-mixed-heading { padding-top: 70px; padding-bottom: 10px; }
.se-mixed-heading .se-showcase-header { margin-bottom: 14px; }
.se-builder-home .safari-grid { padding-top: 10px; padding-bottom: 10px; }
.se-builder-home .se-about-feature, .se-builder-home .se-cta-banner { margin-top: 30px; margin-bottom: 70px; }
.se-cta-button-row { text-align: center; padding-top: 14px; padding-bottom: 20px; margin: 0 auto; }

/* Headline typography: the upright part in small caps, the accent in italic - set in the theme heading font. */
.se-showcase-heading { font-family: var(--se-font-heading); }
.se-showcase-heading-bold { font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em; font-size: 1.12em; }
.se-showcase-heading-italic { font-weight: 500; }

/* Image banner */
.se-image-banner {
	position: relative; display: flex; align-items: center; color: #fff; overflow: hidden;
	background: linear-gradient(160deg, var(--se-green-900), var(--se-green-700)) center / cover no-repeat;
}
.se-image-banner-hero { min-height: min(82vh, 760px); }
.se-image-banner-medium { min-height: 440px; }
.se-image-banner-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,40,31,.35), rgba(22,40,31,.72)); }
.se-image-banner-inner { position: relative; z-index: 2; width: 100%; text-align: center; padding-top: 80px; padding-bottom: 80px; }
.se-image-banner .se-showcase-eyebrow { color: #f1c9a9; }
.se-image-banner h1, .se-image-banner h2 {
	color: #fff; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em;
	font-size: clamp(34px, 6vw, 72px); line-height: 1.08; max-width: 900px; margin: 0 auto 18px;
}
.se-image-banner p { color: rgba(255,255,255,.9); max-width: 640px; margin: 0 auto 28px; font-size: 17px; line-height: 1.7; }
.se-image-banner-buttons { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }

/* How it works */
.se-how-it-works { background: var(--se-green-900); color: #fff; padding: 80px 0; }
.se-how-it-works .se-showcase-heading, .se-how-it-works .se-showcase-description { color: #fff; }
.se-how-it-works .se-showcase-description { opacity: .8; }
.se-how-it-works .se-showcase-eyebrow { color: #f1c9a9; }
.se-how-steps { list-style: none; margin: 10px 0 50px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; text-align: center; }
.se-how-step-number {
	display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%;
	border: 1px solid var(--se-terracotta); color: var(--se-terracotta); font-family: var(--se-font-heading); font-size: 22px; font-weight: 700; margin-bottom: 16px;
}
.se-how-steps h3 { color: #fff; font-size: 19px; margin-bottom: 8px; }
.se-how-steps p { color: #b9c7b5; font-size: 14px; line-height: 1.65; margin: 0; }
.se-how-cta {
	display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap;
	border: 1px solid rgba(255,255,255,.15); border-radius: var(--se-radius); padding: 30px 34px; background: rgba(255,255,255,.04);
}
.se-how-cta h3 { color: #fff; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-size: 24px; margin-bottom: 6px; }
.se-how-cta p { color: #b9c7b5; margin: 0; }
.se-how-cta-buttons { display: flex; gap: 12px; flex-wrap: wrap; }

/* Why choose us */
.se-why-us { padding-top: 70px; padding-bottom: 70px; text-align: center; }
.se-why-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; margin: 10px 0 44px; }
.se-why-feature h3 { font-size: 20px; margin-bottom: 8px; }
.se-why-feature p { color: var(--se-text-light); line-height: 1.65; margin: 0; }
.se-why-stats {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding: 28px 0;
	border-top: 1px solid var(--se-border); border-bottom: 1px solid var(--se-border);
}
.se-why-stats strong { display: block; font-family: var(--se-font-heading); font-size: clamp(26px, 3.4vw, 38px); color: var(--se-terracotta); }
.se-why-stats span { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--se-text-light); }
.se-why-press-label { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: var(--se-text-light); margin: 30px 0 12px; }
.se-why-press { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 34px; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-size: 18px; color: var(--se-green-800); opacity: .75; }

/* About-feature without a photo (e.g. straight from the imported template) */
.se-about-feature-media-empty { display: block; height: 420px; border-radius: var(--se-radius); background: linear-gradient(160deg, var(--se-green-800), var(--se-green-700)); }

@media (max-width: 1000px) {
	.se-how-steps { grid-template-columns: 1fr 1fr; }
	.se-why-features { grid-template-columns: 1fr; }
	.se-why-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.se-how-steps { grid-template-columns: 1fr; }
	.se-how-cta { padding: 24px 20px; }
}

/* ---------- Homepage hero title in the heading font (Typography Details → Homepage hero title font) ---------- */
body.se-hero-title-heading .se-hero-heading,
body.se-hero-title-heading .se-hero-slide-content h1,
body.se-hero-title-heading .se-hero-slide-content h2 {
	font-family: var(--se-font-heading) !important; font-style: normal !important; font-weight: 700 !important;
	font-variant-caps: small-caps; letter-spacing: .02em; font-size: clamp(36px, 6vw, 62px);
}

/* ---------- Overview "Read more" (native <details>, so it works with JavaScript off) ---------- */
.se-readmore { margin-top: 6px; }
.se-readmore > summary {
	display: inline-flex; align-items: center; gap: 6px; cursor: pointer; list-style: none;
	color: var(--se-terracotta); font-weight: 700; padding: 4px 0;
}
.se-readmore > summary::-webkit-details-marker { display: none; }
.se-readmore > summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s ease; }
.se-readmore[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
.se-readmore > summary:hover { color: var(--se-terracotta-dark); }
.se-readmore .se-readmore-less { display: none; }
.se-readmore[open] .se-readmore-more { display: none; }
.se-readmore[open] .se-readmore-less { display: inline; }
.se-readmore-body { margin-top: 10px; }

/* ---------- Safari Cards (tall photo cards; Explore link appears on hover) ---------- */
.se-safari-tiles { padding-top: 10px; padding-bottom: 20px; }
.se-safari-tiles-grid { display: grid; gap: 22px; }
.se-tiles-cols-4 { grid-template-columns: repeat(4, 1fr); }
.se-tiles-cols-3 { grid-template-columns: repeat(3, 1fr); }
.se-tiles-cols-2 { grid-template-columns: repeat(2, 1fr); }
.se-safari-tile {
	--tile-accent: #d9a874; --tile-pill: #f0c99b;
	position: relative; display: block; aspect-ratio: 3 / 4; border-radius: 14px; overflow: hidden; color: #fff;
	background: var(--se-green-900); box-shadow: 0 14px 34px rgba(30,20,10,.16);
	transition: transform .3s ease, box-shadow .3s ease;
}
/* Warm accent colours derived from the theme's primary colour where the browser supports it. */
@supports (background: color-mix(in srgb, red 50%, white)) {
	.se-safari-tile {
		--tile-accent: color-mix(in srgb, var(--se-terracotta) 55%, #fff);
		--tile-pill: color-mix(in srgb, var(--se-terracotta) 38%, #fff);
	}
}
.se-safari-tile:hover, .se-safari-tile:focus-visible { transform: translateY(-5px); box-shadow: 0 22px 46px rgba(30,20,10,.28); color: #fff; }
.se-safari-tile:focus-visible { outline: 3px solid var(--tile-accent); outline-offset: 3px; }
.se-tile-media { position: absolute; inset: 0; display: block; }
.se-tile-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.se-safari-tile:hover .se-tile-media img { transform: scale(1.06); }
.se-tile-overlay {
	position: absolute; inset: 0; display: block; transition: opacity .3s ease;
	background: linear-gradient(180deg, rgba(20,14,8,0) 26%, rgba(28,18,10,.55) 54%, rgba(34,22,12,.95) 100%);
}
.se-tile-tag {
	position: absolute; top: 22px; left: 22px; z-index: 2; background: var(--tile-pill); color: #2b1a0e;
	font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 10px 18px; border-radius: 999px;
}
.se-tile-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: block; padding: 0 24px 24px; }
.se-tile-location { display: flex; align-items: center; gap: 8px; color: var(--tile-accent); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 10px; }
.se-tile-title {
	display: block; color: #fff; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-weight: 700;
	font-size: clamp(22px, 2.1vw, 30px); line-height: 1.1; letter-spacing: .02em; margin-bottom: 12px;
}
.se-tile-desc {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
	min-height: 3em; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.86);
}
.se-tile-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.22); }
.se-tile-days { font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.se-tile-price { text-align: right; white-space: nowrap; }
.se-tile-from, .se-tile-pp { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.82); }
.se-tile-amount { font-family: var(--se-font-heading); font-size: 30px; font-weight: 700; line-height: 1; color: var(--tile-accent); }
/* The hover link: collapsed (no height) until the card is hovered/focused, so the text above glides up to make room. */
.se-tile-explore {
	display: flex; align-items: center; gap: 8px; max-height: 0; opacity: 0; overflow: hidden; margin-top: 0;
	color: var(--tile-accent); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	transition: max-height .35s ease, opacity .3s ease, margin-top .35s ease;
}
.se-safari-tile:hover .se-tile-explore, .se-safari-tile:focus-visible .se-tile-explore { max-height: 34px; opacity: 1; margin-top: 16px; }
.se-safari-tile:hover .se-tile-explore i { transform: translateX(4px); }
.se-tile-explore i { transition: transform .25s ease; }
/* Touch screens can't hover, so the link is always shown there. */
@media (hover: none) {
	.se-tile-explore { max-height: 34px; opacity: 1; margin-top: 16px; }
}
@media (max-width: 1100px) {
	.se-tiles-cols-4, .se-tiles-cols-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.se-tiles-cols-4, .se-tiles-cols-3, .se-tiles-cols-2 { grid-template-columns: 1fr; }
	.se-safari-tile { aspect-ratio: 4 / 5; }
}

/* ---------- "Book This Safari" button size: Large = the original full-width look, Small = compact ---------- */
body.se-book-btn-large .safari-card-cta { display: inline-flex; width: 100%; margin: 0; padding: 13px 26px; font-size: 15px; }
body.se-book-btn-large .se-booking-submit-btn { display: inline-flex; width: 100%; min-width: 0; margin: 4px 0 0; padding: 13px 26px; font-size: 15px; }
body.se-book-btn-large .safari-list-card-cta { padding: 13px 26px; font-size: 15px; }
body.se-book-btn-small .safari-card-cta { padding: 8px 18px; font-size: 13px; }
body.se-book-btn-small .se-booking-submit-btn { min-width: 150px; padding: 8px 20px; font-size: 13px; }
body.se-book-btn-small .safari-list-card-cta { padding: 8px 18px; font-size: 13px; }

/* ---------- Country cards: "Show the whole photo" - the entire picture over a soft blurred copy of itself ---------- */
.se-showcase-fit-whole .se-showcase-media { background: #1b1612; overflow: hidden; }
.se-showcase-fit-whole .se-showcase-media::before {
	content: ''; position: absolute; inset: -24px; background: var(--se-img) center / cover no-repeat;
	filter: blur(22px) brightness(.72) saturate(1.1);
}

/* ---------- Photos always fill their frame, edge to edge ----------
   Page builders (Elementor, WPBakery) and plugins ship their own global image rules, e.g.
   ".elementor img { height: auto; max-width: 100% }". Ours were the same strength, so whichever
   stylesheet loaded last won - and when the builder's won, a photo came out shorter than its card
   and left an empty strip. These are deliberately !important so a card's photo can never be
   resized by anything else. (Objects that only look right at their natural shape - logos, inline
   content images - are not in this list.) */
.se-showcase-media img,
.se-tile-media img,
.safari-card-media img,
.safari-list-card-media img,
.se-explore-tile-media img,
.se-our-destination-media img,
.se-experience-media img,
.se-travel-guide-media img {
	width: 100% !important; height: 100% !important; max-width: none !important;
	object-fit: cover !important; object-position: center !important; display: block;
}
/* Photos in fixed-height slots keep their height, just can't be overridden. */
.se-destinations-slide-images img { width: 100% !important; max-width: none !important; height: 420px !important; object-fit: cover !important; object-position: center !important; }
.se-about-feature-media img { width: 100% !important; max-width: none !important; height: 460px !important; object-fit: cover !important; object-position: center !important; }
@media (max-width: 900px) {
	.se-destinations-slide-images img { height: 220px !important; }
	.se-about-feature-media img { height: 320px !important; }
}
@media (max-width: 560px) {
	.se-destinations-slide-images img { height: 200px !important; }
}
/* "Show the whole photo" is an explicit choice, so it overrides the rule above (its blurred backdrop fills the rest). */
.se-showcase-fit-whole .se-showcase-media img {
	position: absolute; top: 0; left: 0; width: 100% !important; height: auto !important; max-height: 100% !important;
	object-fit: contain !important; object-position: top center !important;
	/* The photo's own bottom edge dissolves into the blurred copy behind it, so the whole picture runs
	   down toward the bottom of the card and fades out where the caption sits. */
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 64%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0%, #000 64%, transparent 100%);
}
.se-showcase-fit-whole .se-showcase-card:hover .se-showcase-media img { transform: scale(1.03); transform-origin: top center; }
/* While a photo loads (or if it fails), the card is dark rather than see-through, so its white caption stays readable. */
.se-showcase-card, .se-safari-tile { background-color: #2a211a; }

/* ---------- Signature Collection: the photo is the card's background ----------
   Tall 4:5 cards, a gradient tour-count pill top-right, a gold tagline over a large small-caps name,
   all sitting on a fade to dark at the bottom of the photo. */
.se-signature-collection { --sig-accent: #d9a874; }
@supports (background: color-mix(in srgb, red 50%, white)) {
	.se-signature-collection { --sig-accent: color-mix(in srgb, var(--se-terracotta) 55%, #fff); }
}
.se-signature-collection .se-showcase-card { aspect-ratio: 4 / 5; border-radius: 8px; box-shadow: 0 14px 34px rgba(30,20,10,.14); }
.se-signature-collection .se-showcase-overlay { background: linear-gradient(180deg, rgba(14,12,10,0) 40%, rgba(14,12,10,.42) 64%, rgba(14,12,10,.9) 100%); }
.se-signature-collection .se-showcase-badge {
	top: 12px; right: 12px; background: linear-gradient(135deg, var(--se-terracotta), var(--se-terracotta-dark));
	border: 1px solid rgba(255,255,255,.22); box-shadow: 0 4px 14px rgba(0,0,0,.28);
	color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .12em; padding: 7px 15px;
}
.se-signature-collection .se-showcase-caption { padding: 0 24px 26px; }
.se-signature-collection .se-showcase-tagline { color: var(--sig-accent); font-size: 12px; font-weight: 600; letter-spacing: .18em; opacity: 1; margin-bottom: 8px; }
.se-signature-collection .se-showcase-name {
	text-transform: none; font-variant-caps: small-caps; font-size: clamp(28px, 2.7vw, 38px); line-height: 1.05; letter-spacing: .02em;
}
@media (max-width: 640px) {
	.se-signature-collection .se-showcase-name { font-size: 26px; }
	.se-signature-collection .se-showcase-card { aspect-ratio: 4 / 5; }
}

/* =====================================================================
   LANDING-PAGE BLOCKS: hero search + stats, dark Safari Cards section,
   Wildlife Cards, Highlights Checklist, FAQ List, Destination Explorer
   ===================================================================== */

/* Shared warm accents (a plain colour first, the theme's own colour where the browser supports it). */
.se-safari-tile, .se-explorer, .se-tiles-dark { --tile-accent: #d9a874; --tile-pill: #f0c99b; }
@supports (background: color-mix(in srgb, red 50%, white)) {
	.se-safari-tile, .se-explorer, .se-tiles-dark {
		--tile-accent: color-mix(in srgb, var(--se-terracotta) 55%, #fff);
		--tile-pill: color-mix(in srgb, var(--se-terracotta) 38%, #fff);
	}
}

/* ---------- Hero: background video, search box, stats ---------- */
.se-image-banner-video { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; z-index: 0; }
.se-banner-search {
	display: flex; align-items: center; gap: 10px; max-width: 760px; margin: 30px auto 0; padding: 8px 8px 8px 24px;
	background: #fff; border-radius: 999px; box-shadow: 0 14px 38px rgba(0,0,0,.28);
}
.se-banner-search > i { color: var(--se-terracotta); font-size: 20px; flex: 0 0 auto; }
.se-banner-search input[type="search"] {
	flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; box-shadow: none; padding: 12px 6px;
	font-size: 16px; color: var(--se-text);
}
.se-banner-search .se-btn { padding: 12px 26px; white-space: nowrap; }
.se-banner-stats { display: flex; justify-content: center; gap: 60px; flex-wrap: wrap; margin-top: 42px; }
.se-banner-stat { text-align: center; }
.se-banner-stat strong { display: block; color: #fff; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.1; font-weight: 700; }
.se-banner-stat span { display: block; margin-top: 6px; color: rgba(255,255,255,.85); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 560px) {
	.se-banner-search { border-radius: 22px; flex-wrap: wrap; padding: 12px 14px; }
	.se-banner-search .se-btn { width: 100%; justify-content: center; }
	.se-banner-stats { gap: 30px; }
}

/* ---------- Safari Cards: heading, dark band, journey style, rating pill ---------- */
.se-tiles-dark { background: linear-gradient(180deg, #120d08 0%, #1c130b 100%); padding: 76px 0 84px; color: #fff; }
.se-tiles-dark .se-showcase-heading, .se-tiles-dark .se-showcase-heading-bold { color: #fff; }
.se-tiles-dark .se-showcase-heading-italic, .se-tiles-dark .se-showcase-eyebrow { color: var(--tile-accent); }
.se-tiles-dark .se-showcase-description { color: rgba(255,255,255,.78); }
.se-tiles-dark .se-safari-tile { box-shadow: none; border: 1px solid rgba(255,255,255,.12); }
.se-tiles-dark .se-tiles-header-btn { border-color: rgba(255,255,255,.4); color: #fff; }
.se-tiles-dark .se-tiles-header-btn:hover { background: #fff; color: #1c130b; }
.se-tiles-empty { padding: 18px 0; color: var(--se-text-light); }
.se-tiles-header-left { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.se-tiles-header-left .se-showcase-header { text-align: left; margin: 0; max-width: 760px; }
.se-tiles-header-btn { white-space: nowrap; }
.se-tile-rating {
	position: absolute; top: 22px; right: 22px; z-index: 2; display: inline-flex; align-items: center; gap: 6px;
	background: rgba(20,24,40,.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff;
	border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 9px 16px; font-size: 14px; font-weight: 700;
}
.se-tile-rating i { color: var(--tile-accent); }
.se-tile-rating small { font-weight: 400; opacity: .8; font-size: 13px; }
.se-safari-tile-journey .se-tile-kicker { display: block; color: var(--tile-accent); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 10px; }
.se-safari-tile-journey .se-tile-title { font-family: var(--se-font-body); font-variant-caps: normal; font-weight: 700; font-size: clamp(21px, 1.9vw, 26px); line-height: 1.2; letter-spacing: 0; }
.se-safari-tile-journey .se-tile-meta { justify-content: flex-end; }

/* ---------- Wildlife Cards ----------
   Every number below was measured from the reference design: 233px square cards, 24px gaps, 16px corners,
   a soft all-round shadow, an amber 29px "Big Five" pill 14px from the corner, a 20px/600 name beside a small
   emoji, a 13.8px/20px description (the reference's 14px at a lighter weight than this theme loads, so slightly smaller at 400 to wrap at the same words), 18px side and 20px bottom padding, and a neutral black fade that starts a
   quarter of the way down and reaches about 70% at the bottom. The 1310px container is what makes the cards
   233px wide, which is what makes the descriptions wrap at the same words as the reference. */
.se-wildlife { padding-top: 70px; padding-bottom: 70px; }
.se-wildlife.se-home-section { max-width: 1310px; }
.se-wildlife-grid { display: grid; gap: 24px; }
.se-wildlife-cols-5 { grid-template-columns: repeat(5, 1fr); }
.se-wildlife-cols-4 { grid-template-columns: repeat(4, 1fr); }
.se-wildlife-cols-3 { grid-template-columns: repeat(3, 1fr); }
.se-wildlife-card {
	position: relative; display: block; aspect-ratio: 1 / 1; border-radius: 16px; overflow: hidden; color: #fff;
	background-color: #2a211a; box-shadow: 0 8px 24px rgba(40,30,20,.14); transition: transform .3s ease, box-shadow .3s ease;
}
.se-wildlife-card:hover, .se-wildlife-card:focus-visible { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(40,30,20,.22); color: #fff; }
.se-wildlife-card:focus-visible { outline: 3px solid #d69d3f; outline-offset: 3px; }
.se-wildlife-media { position: absolute; inset: 0; display: block; aspect-ratio: auto; }
.se-wildlife-media img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; display: block; transition: transform .5s ease; }
.se-wildlife-card:hover .se-wildlife-media img { transform: scale(1.06); }
.se-wildlife-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 72px; background: linear-gradient(135deg, #3a2a1b, #1f1710); }
.se-wildlife-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,8,8,0) 25%, rgba(8,8,8,.7) 100%); }
.se-wildlife-tag {
	position: absolute; top: 14px; left: 14px; z-index: 2; background: rgba(214,157,63,.95); color: #fff;
	font-size: 11.5px; font-weight: 600; line-height: 15px; letter-spacing: .11em; text-transform: uppercase; padding: 7px 11px; border-radius: 999px;
}
.se-wildlife-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: block; padding: 0 18px 20px; }
.se-wildlife-name { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; font-family: var(--se-font-body); font-size: 20px; font-weight: 600; line-height: 1.2; }
.se-wildlife-emoji { flex: 0 0 auto; font-size: 16px; line-height: 1; }
.se-wildlife-title { min-width: 0; }
.se-wildlife-desc { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; font-size: 13.8px; font-weight: 400; line-height: 20px; color: rgba(255,255,255,.82); }
@media (max-width: 1100px) { .se-wildlife-cols-5, .se-wildlife-cols-4 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .se-wildlife-cols-5, .se-wildlife-cols-4, .se-wildlife-cols-3 { grid-template-columns: repeat(2, 1fr); gap: 14px; } .se-wildlife-body { padding: 0 14px 14px; } .se-wildlife-name { font-size: 18px; } }
@media (max-width: 440px) { .se-wildlife-cols-5, .se-wildlife-cols-4, .se-wildlife-cols-3 { grid-template-columns: 1fr; } .se-wildlife-body { padding: 0 18px 20px; } .se-wildlife-name { font-size: 20px; } }

/* ---------- Highlights Checklist ---------- */
.se-checklist-section { padding-top: 70px; padding-bottom: 70px; }
.se-checklist { list-style: none; margin: 0 auto; padding: 0; max-width: 1100px; display: grid; gap: 34px 70px; }
.se-checklist-cols-2 { grid-template-columns: repeat(2, 1fr); }
.se-checklist-cols-1 { grid-template-columns: 1fr; max-width: 720px; }
.se-checklist li { display: flex; align-items: flex-start; gap: 18px; font-size: 19px; line-height: 1.55; color: var(--se-text); }
.se-check {
	flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: #f6ead9; color: var(--se-terracotta); font-size: 22px;
}
@supports (background: color-mix(in srgb, red 50%, white)) { .se-check { background: color-mix(in srgb, var(--se-terracotta) 14%, #fff); } }
@media (max-width: 760px) { .se-checklist-cols-2 { grid-template-columns: 1fr; gap: 24px; } .se-checklist li { font-size: 17px; } }

/* ---------- FAQ List ---------- */
.se-faq-list { padding-top: 70px; padding-bottom: 70px; }
.se-faq-items { max-width: 920px; margin: 0 auto; }
.se-faq-item { border-bottom: 1px solid var(--se-border); }
.se-faq-item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 30px 0; cursor: pointer; }
.se-faq-item summary::-webkit-details-marker { display: none; }
.se-faq-item summary:focus-visible { outline: 3px solid var(--se-terracotta); outline-offset: 2px; }
.se-faq-q { font-family: var(--se-font-heading); font-variant-caps: small-caps; font-size: clamp(19px, 1.9vw, 24px); letter-spacing: .02em; color: var(--se-text); }
.se-faq-icon { position: relative; flex: 0 0 22px; width: 22px; height: 22px; }
.se-faq-icon::before, .se-faq-icon::after { content: ''; position: absolute; left: 50%; top: 50%; background: var(--se-terracotta); transition: transform .25s ease; }
.se-faq-icon::before { width: 22px; height: 2px; margin: -1px 0 0 -11px; }
.se-faq-icon::after { width: 2px; height: 22px; margin: -11px 0 0 -1px; }
.se-faq-item[open] .se-faq-icon::after { transform: scaleY(0); }
.se-faq-a { padding: 0 0 30px; max-width: 800px; color: var(--se-text-light); font-size: 17px; line-height: 1.75; }
.se-faq-a p:last-child { margin-bottom: 0; }

/* ---------- Destination Explorer ----------
   A rounded dark panel whose background IS the map (the country outlines, with the countries you operate in
   shaded amber), under a faint grid. The heading and chips sit over it at the top; the destination card and
   list sit over it on the right; the "All Africa" button sits beside the card. */
.se-explorer {
	position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 425px; grid-template-rows: auto 1fr; column-gap: 28px;
	box-sizing: border-box; width: calc(100% - 48px); max-width: 1240px; min-height: var(--se-explorer-h, 520px); margin: 70px auto;
	padding: 56px 40px 44px; border-radius: 26px; overflow: hidden; color: #fff; background: #10131d;
}
.se-explorer-map-wrap { position: absolute; inset: 0; z-index: 0; }
.se-explorer-map-wrap::after {   /* the faint grid, drawn over the land and under the markers */
	content: ''; position: absolute; inset: 0; z-index: 450; pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
	background-size: 17px 17px;
}
.se-explorer-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.se-explorer .leaflet-container { background: transparent; font-family: inherit; outline: 0; }
.se-explorer-head { position: relative; z-index: 2; grid-column: 1 / -1; grid-row: 1; pointer-events: none; }
.se-explorer-head .se-showcase-header { margin-bottom: 0; }
.se-explorer .se-showcase-heading, .se-explorer .se-showcase-heading-bold { color: #fff; }
.se-explorer .se-showcase-heading-italic, .se-explorer .se-showcase-eyebrow { color: var(--tile-accent); }
.se-explorer .se-showcase-description { color: rgba(255,255,255,.78); }
.se-explorer-chips { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 9px 8.5px; max-width: 1080px; margin: 28px auto 0; }
.se-explorer-regions, .se-explorer-countries { display: contents; }
.se-explorer-divider { width: 1px; height: 22px; margin: 0 6px; background: rgba(255,255,255,.24); }
.se-explorer-regions:empty + .se-explorer-divider { display: none; }
.se-explorer-chip, .se-explorer-region {
	pointer-events: auto; display: inline-flex; align-items: center; gap: 8px; height: 33px; padding: 0 15px; border-radius: 999px; line-height: 1;
	border: 1px solid rgba(255,255,255,.18); background: rgba(16,19,29,.58); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
	color: rgba(255,255,255,.9); font: inherit; font-size: 13.4px; text-decoration: none; cursor: pointer; transition: background .2s, border-color .2s, box-shadow .2s;
}
.se-explorer-chip[hidden] { display: none; }
.se-explorer-chip span { font-size: 12px; opacity: .7; }
.se-explorer-flag { width: 17px; height: 12.5px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.15); }
.se-explorer-chip:hover, .se-explorer-region:hover { border-color: var(--tile-accent); color: #fff; }
.se-explorer-chip.is-active, .se-explorer-region.is-active {
	border-color: transparent; color: #fff; font-weight: 600; background: linear-gradient(135deg, #e5ad5b, #cd8f3d); box-shadow: 0 6px 18px rgba(217,162,79,.38);
}
.se-explorer-chip.is-active span { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; border-radius: 50%; background: rgba(255,255,255,.3); opacity: 1; }
.se-explorer-tools { position: relative; z-index: 2; grid-column: 1; grid-row: 2; align-self: start; justify-self: end; margin: 14px 4px 0 0; pointer-events: none; }
.se-explorer-all {
	pointer-events: auto; display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 16px; border-radius: 999px; cursor: pointer;
	border: 1px solid rgba(255,255,255,.22); background: rgba(16,19,29,.82); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	color: #fff; font: inherit; font-size: 13.5px; font-weight: 600;
}
.se-explorer-all i { color: var(--tile-accent); }
.se-explorer-all:hover { border-color: var(--tile-accent); }
.se-explorer-dot-wrap { background: transparent; border: 0; }
.se-explorer-dot { display: block; width: 12px; height: 12px; margin: 6px; border-radius: 50%; background: #fff; border: 2.5px solid #e3a650; box-sizing: border-box; transition: transform .2s; }
.se-explorer-dot.is-active { width: 14px; height: 14px; margin: 5px; background: #f7dba8; box-shadow: 0 0 0 7px rgba(227,166,80,.3), 0 0 18px 5px rgba(227,166,80,.55); }
.se-explorer-label {
	background: transparent; border: 0; box-shadow: none; color: #fff; font-size: 13px; font-weight: 600; padding: 0;
	text-shadow: 0 1px 3px rgba(0,0,0,.95), 0 0 7px rgba(0,0,0,.8);
}
.se-explorer-label::before { display: none; }
.se-explorer-tip { background: #10131d; color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; box-shadow: none; font-weight: 600; }
.se-explorer-tip::before { border-top-color: #10131d; }
.se-explorer-panel { position: relative; z-index: 2; grid-column: 2; grid-row: 2; display: flex; flex-direction: column; gap: 22px; margin-top: 30px; min-width: 0; }
.se-explorer-card { border-radius: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,.14); background: rgba(17,20,29,.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.se-explorer-card-media { position: relative; aspect-ratio: 5 / 2; background: #1c2230; }
.se-explorer-card-media img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover !important; display: block; }
.se-explorer-card-region { position: absolute; top: 14px; left: 14px; padding: 7px 14px; border-radius: 99px; border: 1px solid rgba(255,255,255,.14); background: rgba(14,16,24,.72); color: var(--tile-accent); font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.se-explorer-card-body { padding: 20px 24px 24px; }
.se-explorer-card-country { display: block; color: var(--tile-accent); font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.se-explorer-card-name { margin: 4px 0 10px; color: #fff; font-family: var(--se-font-heading); font-variant-caps: small-caps; font-size: 29px; font-weight: 600; line-height: 1.15; }
.se-explorer-card-desc { margin: 0 0 16px; color: rgba(255,255,255,.8); font-size: 15px; line-height: 1.6; }
.se-explorer-card-link { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: 15px; font-weight: 600; }
.se-explorer-card-link:hover { color: var(--tile-accent); }
.se-explorer-list-title { margin: 0 0 12px; color: var(--tile-accent); font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.se-explorer-list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; }
.se-explorer-place {
	display: flex; align-items: center; gap: 10px; min-height: 31px; padding: 0 14px; border-radius: 10px; cursor: pointer; text-align: left;
	border: 1px solid rgba(255,255,255,.1); background: rgba(17,20,29,.78); color: #fff; font: inherit; font-size: 14.5px;
}
.se-explorer-place::before { content: ''; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: #c98a3c; box-shadow: 0 0 0 3px rgba(227,166,80,.25); }
.se-explorer-place-name { flex: 1; min-width: 0; }
.se-explorer-place small { margin-left: auto; color: rgba(255,255,255,.5); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; }
.se-explorer-place:hover { border-color: rgba(255,255,255,.32); }
.se-explorer-place.is-active { border-color: rgba(227,166,80,.75); background: rgba(227,166,80,.12); }
.se-explorer-place.is-active::before { background: #f1c47c; }
@media (max-width: 900px) {
	.se-explorer { display: flex; flex-direction: column; min-height: 0; padding: 38px 18px 24px; border-radius: 20px; }
	.se-explorer-head { order: 1; }
	.se-explorer-map-wrap { position: relative; inset: auto; order: 2; height: min(var(--se-explorer-h, 520px), 400px); margin: 20px 0 14px; border-radius: 16px; overflow: hidden; background: #0b0e14; }
	.se-explorer-tools { order: 3; align-self: flex-start; margin: 0 0 14px; }
	.se-explorer-panel { order: 4; margin-top: 0; }
}
@media (max-width: 520px) {
	.se-explorer-list { grid-template-columns: 1fr; }
	.se-explorer-chip, .se-explorer-region { height: 31px; padding: 0 12px; font-size: 12.5px; }
	.se-explorer-card-name { font-size: 25px; }
}

/* ---------- Travel Tips Cards ----------
   Measured against the reference: white cards 361px wide with 17px gaps (a 1118px content width), 14px padding,
   a 20px emoji in a 22px column, a 14px/600 title over an 11.4px note. At that width the notes break at the same
   words as the reference does. */
.se-tips-sand { padding: 78px 0 72px; background: #efe8dc; }
.se-tips.se-home-section { max-width: 1166px; }
.se-tips-sand .se-showcase-header { margin-bottom: 44px; }
.se-tips-grid { display: grid; gap: 17px; }
.se-tips-cols-3 { grid-template-columns: repeat(3, 1fr); }
.se-tips-cols-2 { grid-template-columns: repeat(2, 1fr); }
.se-tip { display: flex; align-items: flex-start; gap: 8px; padding: 14px; border-radius: 14px; background: #fff; box-shadow: 0 2px 14px rgba(60,45,20,.06); }
.se-tip-icon { flex: 0 0 22px; font-size: 20px; line-height: 20px; text-align: center; }
.se-tip-body { min-width: 0; }
.se-tip-title { margin: 0 0 2px; font-family: var(--se-font-body); font-size: 14px; font-weight: 600; line-height: 20px; letter-spacing: 0; text-transform: none; color: #161616; }
.se-tip-text { margin: 0; font-size: 11.4px; line-height: 1.55; color: #7b7872; }
@media (max-width: 900px) { .se-tips-cols-3 { grid-template-columns: repeat(2, 1fr); } .se-tips-sand { padding: 56px 0; } }
@media (max-width: 600px) { .se-tips-cols-3, .se-tips-cols-2 { grid-template-columns: 1fr; } .se-tip-text { font-size: 12.5px; } .se-tip-title { font-size: 15px; } }

/* ---------- Tour codes ---------- */
.se-tour-code {
	display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px;
	background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); color: #fff; font-size: 13px; letter-spacing: .04em;
}
.se-tour-code strong { font-weight: 700; letter-spacing: .06em; }
.se-tour-code-label { opacity: .85; text-transform: uppercase; font-size: 11px; letter-spacing: .12em; }
.safari-card-body .se-tour-code, .safari-list-card-body .se-tour-code { margin: 0 0 8px; padding: 2px 9px; background: var(--se-sand); border-color: var(--se-border); color: var(--se-text-light); font-size: 12px; }
.se-tile-code { display: block; margin-top: 8px; color: rgba(255,255,255,.72); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.se-tile-code strong { color: var(--tile-accent); font-weight: 700; }
.se-code-lookup { padding-top: 60px; padding-bottom: 60px; }
.se-code-lookup-form {
	display: flex; align-items: center; gap: 10px; max-width: 560px; margin: 0 auto; padding: 8px 8px 8px 22px;
	background: #fff; border: 1px solid var(--se-border); border-radius: 999px; box-shadow: 0 10px 30px rgba(30,20,10,.08);
}
.se-code-lookup-form > i { flex: 0 0 auto; color: var(--se-terracotta); font-size: 20px; }
.se-code-lookup-form input[type="text"] { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; box-shadow: none; padding: 10px 4px; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; color: var(--se-text); }
.se-code-lookup-form input[type="text"]::placeholder { text-transform: none; letter-spacing: 0; }
.se-code-lookup-form .se-btn { white-space: nowrap; }
@media (max-width: 520px) { .se-code-lookup-form { flex-wrap: wrap; border-radius: 22px; padding: 12px 14px; } .se-code-lookup-form .se-btn { width: 100%; justify-content: center; } }

/* ---------- Header: white / dark / transparent ----------
   One design, three looks (body class se-hdr-white | se-hdr-dark | se-hdr-transparent). Measured from the reference at
   1440px: a 110px bar, nav at 12.5px uppercase, a 40px search ring, a 34px sound disc and a 184 x 34px copper
   button. The transparent header is laid over the hero and turns solid once the page scrolls. */
.se-header {
	--hdr-fg: var(--se-text); --hdr-fg-hover: var(--se-terracotta); --hdr-circle-border: rgba(0,0,0,.16); --hdr-circle-bg: transparent;
	background: #fff; box-shadow: none; border-bottom: 1px solid rgba(0,0,0,.07); transition: background-color .25s ease, box-shadow .25s ease;
}
body.se-hdr-dark .se-header,
body.se-hdr-transparent .se-header:not(.is-stuck),
body.se-hdr-transparent.se-hdr-scrolled-dark .se-header.is-stuck {
	--hdr-fg: #fff; --hdr-fg-hover: var(--se-hdr-accent-light, #c58a56); --hdr-circle-border: rgba(255,255,255,.22); --hdr-circle-bg: rgba(255,255,255,.05);
	border-bottom-color: rgba(255,255,255,.06);
}
body.se-hdr-dark .se-header,
body.se-hdr-transparent.se-hdr-scrolled-dark .se-header.is-stuck { background: var(--se-hdr-bg, #100e1a); }
body.se-hdr-transparent .se-header { position: absolute; left: 0; right: 0; background: transparent; }
body.se-hdr-transparent .se-header.is-stuck { position: fixed; top: 0; background: #fff; box-shadow: 0 6px 24px rgba(0,0,0,.12); }
body.se-hdr-transparent.se-hdr-scrolled-dark .se-header.is-stuck { background: var(--se-hdr-bg, #100e1a); }
body.se-hdr-sticky.se-hdr-white .se-header, body.se-hdr-sticky.se-hdr-dark .se-header { position: sticky; top: 0; }
body.se-hdr-white .se-header.is-stuck, body.se-hdr-dark .se-header.is-stuck { box-shadow: 0 6px 24px rgba(0,0,0,.12); }
body.admin-bar.se-hdr-sticky.se-hdr-white .se-header, body.admin-bar.se-hdr-sticky.se-hdr-dark .se-header, body.admin-bar.se-hdr-transparent .se-header.is-stuck { top: 32px; }
@media (max-width: 782px) { body.admin-bar.se-hdr-sticky.se-hdr-white .se-header, body.admin-bar.se-hdr-sticky.se-hdr-dark .se-header, body.admin-bar.se-hdr-transparent .se-header.is-stuck { top: 46px; } }
@media (max-width: 600px) { body.admin-bar.se-hdr-sticky.se-hdr-white .se-header, body.admin-bar.se-hdr-sticky.se-hdr-dark .se-header, body.admin-bar.se-hdr-transparent .se-header.is-stuck { top: 0; } }

.se-header .se-header-inner { max-width: 1310px; margin: 0 auto; min-height: 109px; padding: 0 24px; gap: 20px; }
.se-header .se-site-title { color: var(--hdr-fg); }

/* Logos: the light one (Branding page) is used on dark / transparent looks when one was uploaded */
.se-header.has-light-logo .se-logo-light { display: none; }
body.se-hdr-dark .se-header.has-light-logo .custom-logo-link:not(.se-logo-light),
body.se-hdr-transparent .se-header.has-light-logo:not(.is-stuck) .custom-logo-link:not(.se-logo-light),
body.se-hdr-transparent.se-hdr-scrolled-dark .se-header.has-light-logo.is-stuck .custom-logo-link:not(.se-logo-light) { display: none; }
body.se-hdr-dark .se-header.has-light-logo .se-logo-light,
body.se-hdr-transparent .se-header.has-light-logo:not(.is-stuck) .se-logo-light,
body.se-hdr-transparent.se-hdr-scrolled-dark .se-header.has-light-logo.is-stuck .se-logo-light { display: inline-block; }

/* Menu */
.se-header .se-primary-nav { margin-left: 36px; }
.se-header .se-menu { justify-content: flex-start; gap: 0; }
.se-header .se-menu > li > .menu-link { padding: 12px 6px; gap: 2px; background: none; color: var(--hdr-fg); font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: uppercase; }
.se-header .se-menu > li > .menu-link { gap: 0; }
/* The reference's arrows are small bold chevrons (about 8px wide), drawn here with two borders rather than the thin icon-font arrow */
.se-header .se-menu > li > .menu-link .menu-caret { position: relative; display: inline-block; flex: 0 0 auto; width: 8px; height: 8px; margin: 0 10px 0 6px; font-size: 0; }
.se-header .se-menu > li > .menu-link .menu-caret::before { content: ""; position: absolute; left: 50%; top: 50%; width: 3.4px; height: 3.4px; margin: -4.4px 0 0 -2.9px; border-right: 2.4px solid currentColor; border-bottom: 2.4px solid currentColor; transform: rotate(45deg); }
.se-header .se-menu > li > .menu-link:hover,
.se-header .se-menu > li.has-mega-menu:hover > .menu-link,
.se-header .se-menu > li.has-dropdown:hover > .menu-link { background: none; color: var(--hdr-fg-hover); }

/* Actions: search ring, sound disc, copper button */
.se-header .se-header-actions { gap: 11px; }
.se-header .se-search-toggle { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--hdr-circle-border); background: var(--hdr-circle-bg); color: var(--hdr-fg); font-size: 19px; }
.se-header .se-search-toggle:hover { border-color: var(--hdr-fg-hover); background: var(--hdr-circle-bg); color: var(--hdr-fg-hover); }
.se-header .se-mobile-toggle { color: var(--hdr-fg); }
.se-header .se-mobile-toggle:hover { background: var(--hdr-circle-bg); color: var(--hdr-fg-hover); }
.se-header-sound { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid rgba(0,0,0,.08); border-radius: 50%; background: #fff; color: var(--se-hdr-accent, #b87333); font-size: 16px; line-height: 1; cursor: pointer; transition: transform .15s ease; }
.se-header-sound[hidden] { display: none; }
.se-header-sound:hover { transform: scale(1.06); }
.se-header .se-header-cta { height: 34px; padding: 0 13px; gap: 5px; border: 0; border-radius: 999px; background: var(--se-hdr-accent, #b87333); color: #fff; font-size: 12.5px; font-weight: 600; letter-spacing: .01em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 6px 18px rgba(var(--se-hdr-accent-rgb, 184,115,51), .35); transition: filter .15s ease, transform .15s ease; }
.se-header .se-header-cta i { font-size: 13px; }
.se-header .se-header-cta:hover { background: var(--se-hdr-accent, #b87333); color: #fff; filter: brightness(1.1); transform: translateY(-1px); }
@media (max-width: 999px) {
	.se-header .se-header-inner { min-height: 72px; }
	.se-header .se-search-toggle { width: 36px; height: 36px; font-size: 17px; }
}

/* A transparent header sits ON the hero, so each hero makes room for it (the header's own height, measured by header.js) */
body.se-hdr-transparent .se-hero { padding-top: calc(70px + var(--se-header-h, 110px)); }
body.se-hdr-transparent .se-single-hero { padding-top: calc(40px + var(--se-header-h, 110px)); }
body.se-hdr-transparent .se-package-hero { padding-top: calc(26px + var(--se-header-h, 110px)); }
body.se-hdr-transparent .se-image-banner-inner { padding-top: calc(80px + var(--se-header-h, 110px)); }

/* ---------- Map: shown when the map background can't be loaded ---------- */
.se-map-notice { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 1000; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 10px 14px; border-radius: 10px; background: rgba(255,255,255,.96); box-shadow: 0 4px 16px rgba(0,0,0,.18); color: var(--se-text); font-size: 13px; line-height: 1.4; }
.se-map-notice a { color: var(--se-terracotta); font-weight: 600; white-space: nowrap; }

/* ---------- A sticky header must not cover what already sticks to the top of the page ---------- */
body.se-hdr-sticky .se-section-tabs { top: var(--se-header-h, 0px); }
body.se-hdr-sticky .se-booking-box, body.se-hdr-sticky .se-filter-sidebar { top: calc(var(--se-header-h, 0px) + 20px); }
body.admin-bar.se-hdr-sticky .se-section-tabs { top: calc(var(--se-header-h, 0px) + 32px); }
body.admin-bar.se-hdr-sticky .se-booking-box, body.admin-bar.se-hdr-sticky .se-filter-sidebar { top: calc(var(--se-header-h, 0px) + 52px); }
@media (max-width: 782px) {
	body.admin-bar.se-hdr-sticky .se-section-tabs { top: calc(var(--se-header-h, 0px) + 46px); }
	body.admin-bar.se-hdr-sticky .se-booking-box, body.admin-bar.se-hdr-sticky .se-filter-sidebar { top: calc(var(--se-header-h, 0px) + 66px); }
}
@media (max-width: 600px) {
	body.admin-bar.se-hdr-sticky .se-section-tabs { top: var(--se-header-h, 0px); }
	body.admin-bar.se-hdr-sticky .se-booking-box, body.admin-bar.se-hdr-sticky .se-filter-sidebar { top: calc(var(--se-header-h, 0px) + 20px); }
}

/* The mobile menu follows the header in the page. A transparent header floats over the page, so the menu starts below it; once the
   header is stuck to the top of the window the menu is fixed under it, so it is on screen wherever the page has been scrolled to. */
body.se-hdr-transparent .se-mobile-menu { position: relative; z-index: 99; margin-top: var(--se-header-h, 72px); }
body.se-hdr-sticky .se-header.is-stuck ~ .se-mobile-menu { position: fixed; top: var(--se-header-h, 72px); left: 0; right: 0; z-index: 99; margin-top: 0; max-height: calc(100vh - var(--se-header-h, 72px)); overflow-y: auto; }
body.admin-bar.se-hdr-sticky .se-header.is-stuck ~ .se-mobile-menu { top: calc(var(--se-header-h, 72px) + 32px); max-height: calc(100vh - var(--se-header-h, 72px) - 32px); }
@media (max-width: 782px) { body.admin-bar.se-hdr-sticky .se-header.is-stuck ~ .se-mobile-menu { top: calc(var(--se-header-h, 72px) + 46px); max-height: calc(100vh - var(--se-header-h, 72px) - 46px); } }
@media (max-width: 600px) { body.admin-bar.se-hdr-sticky .se-header.is-stuck ~ .se-mobile-menu { top: var(--se-header-h, 72px); max-height: calc(100vh - var(--se-header-h, 72px)); } }

/* ---------- Heading text style (size and colour options on every block heading) ----------
   Each option is a CSS custom property the block puts on its heading (--se-eb-size ...). A rule applies only when its property is
   present, so a block nobody has touched looks exactly as it did, and each rule out-ranks the dark-section colours above it
   (three selectors against two). Sizes shrink a little on phones so a large heading does not overflow. */
.se-showcase-header[style*="--se-eb-size"] .se-showcase-eyebrow { font-size: var(--se-eb-size); }
.se-showcase-header[style*="--se-eb-color"] .se-showcase-eyebrow { color: var(--se-eb-color); }
.se-showcase-header[style*="--se-h-size"] .se-showcase-heading { font-size: var(--se-h-size); }
.se-showcase-header[style*="--se-h-color"] .se-showcase-heading,
.se-showcase-header[style*="--se-h-color"] .se-showcase-heading-bold { color: var(--se-h-color); }
.se-showcase-header[style*="--se-hi-color"] .se-showcase-heading-italic { color: var(--se-hi-color); }
.se-showcase-header[style*="--se-d-size"] .se-showcase-description { font-size: var(--se-d-size); }
.se-showcase-header[style*="--se-d-color"] .se-showcase-description { color: var(--se-d-color); }
@media (max-width: 640px) {
	.se-showcase-header[style*="--se-eb-size"] .se-showcase-eyebrow { font-size: max(10px, calc(var(--se-eb-size) * .9)); }
	.se-showcase-header[style*="--se-h-size"] .se-showcase-heading { font-size: max(20px, calc(var(--se-h-size) * .7)); }
	.se-showcase-header[style*="--se-d-size"] .se-showcase-description { font-size: max(13px, calc(var(--se-d-size) * .92)); }
}

/* ---------- Contact Cards ----------
   Measured from the reference at 1440px: a #FCF7F6 section (96px above the eyebrow, 80px below the cards), four 265px cards 24px apart
   (the theme's 1132px content width), a 16px corner, a 64px icon circle, title 19px, value 15px, note 12.5px, link 15px, and
   the copper / green / near-black of the icons and links. */
.se-contact-cards { padding: 96px 0 80px; background: #fcf7f6; }
.se-contact-cards .se-showcase-eyebrow { margin-bottom: 7px; color: var(--se-hdr-accent, #b87333); letter-spacing: .3em; }
.se-contact-cards .se-showcase-header { margin-bottom: 28px; }
.se-contact-cards .se-showcase-heading, .se-contact-cards .se-showcase-heading-bold { color: #181f26; }
.se-contact-cards-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.se-cc { position: relative; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; overflow: hidden; padding: 33px 26px 40px; border: 1px solid #f0e6de; border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(120, 80, 40, .06); text-align: center; }
.se-cc::before { content: ""; position: absolute; top: 0; right: 0; width: 210px; height: 170px; background: radial-gradient(circle at 100% 0, rgba(245, 232, 221, .95), rgba(255, 255, 255, 0) 70%); pointer-events: none; }
.se-cc > * { position: relative; }
.se-cc-icon { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 64px; height: 64px; margin-bottom: 18px; border: 1px solid #e8dace; border-radius: 50%; background: #f6ede6; color: #b77333; font-size: 26px; }
.se-cc-email .se-cc-icon { color: #191f25; }
.se-cc-whatsapp .se-cc-icon { border-color: #c6d2cd; background: #eff3f2; color: #207a53; }
.se-cc-title { margin: 0 0 6px; color: #181f26; font-family: var(--se-font-body); font-size: 19px; font-weight: 600; line-height: 24px; }
.se-cc-value { margin: 0 0 3px; color: #181f26; font-size: 15px; font-weight: 600; line-height: 1.7; overflow-wrap: anywhere; }
.se-cc-value.is-long { font-size: 13px; }
.se-cc-value.is-xlong { font-size: 11px; }
.se-cc-note { margin: 0; color: #6e655a; font-size: 12.5px; line-height: 1.7; }
.se-cc-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 27px; color: #b77333; font-size: 15px; font-weight: 600; line-height: 24px; }
.se-cc-whatsapp .se-cc-link { color: #227a53; }
.se-cc-link:hover { filter: brightness(.85); }
.se-cc-link i { font-size: 15px; transition: transform .2s ease; }
.se-cc-link:hover i { transform: translateX(3px); }
@media (max-width: 999px) { .se-contact-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .se-contact-cards { padding: 64px 0 56px; } .se-contact-cards-grid { grid-template-columns: 1fr; } }

/* ---------- Story Hero ----------
   Read off the "Our Story" picture (1440px page): a 12px / .3em eyebrow, a 112px small-caps heading, a 20px light paragraph at 35px lines
   (about 650px wide), and a 12px / .24em scroll link; the block is centred in the window below the top bar. */
.se-story-hero { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #15110e center / cover no-repeat; color: #fff; text-align: center; }
.se-story-hero-full { min-height: calc(100vh - var(--se-topbar-h, 0px)); min-height: calc(100svh - var(--se-topbar-h, 0px)); }
.se-story-hero-large { min-height: 78vh; }
.se-story-hero-medium { min-height: 52vh; }
.se-story-hero .se-image-banner-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.se-story-hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 16, 22, .56) 0%, rgba(14, 16, 22, .36) 45%, rgba(14, 16, 22, .62) 100%); }
.se-story-hero-light .se-story-hero-shade { background: linear-gradient(180deg, rgba(14, 16, 22, .34) 0%, rgba(14, 16, 22, .16) 45%, rgba(14, 16, 22, .42) 100%); }
.se-story-hero-dark .se-story-hero-shade { background: linear-gradient(180deg, rgba(14, 16, 22, .72) 0%, rgba(14, 16, 22, .55) 45%, rgba(14, 16, 22, .8) 100%); }
.se-story-hero-inner { position: relative; z-index: 1; padding-bottom: 40px; }
.se-story-hero-eyebrow { display: block; margin-bottom: 8px; color: #d4a76a; font-size: 12px; font-weight: 600; letter-spacing: .3em; line-height: 19px; text-transform: uppercase; }
.se-story-hero-heading { margin: 0; color: #fff; font-family: var(--se-font-heading); font-size: var(--se-sh-size, clamp(52px, 7.8vw, 112px)); font-style: normal; font-variant-caps: small-caps; font-weight: 700; letter-spacing: .02em; line-height: 1.05; text-transform: none; }
.se-story-hero-text { max-width: 650px; margin: 21px auto 0; color: rgba(255,255,255,.93); font-size: 20px; font-weight: 300; line-height: 35px; }
.se-story-hero-scroll { display: inline-flex; align-items: center; gap: 10px; margin-top: 42px; color: #d9ae72; font-size: 12px; font-weight: 600; letter-spacing: .24em; line-height: 24px; text-transform: uppercase; }
.se-story-hero-scroll:hover { color: #fff; }
.se-story-hero-scroll i { font-size: 17px; animation: se-nudge 2.2s ease-in-out infinite; }
@keyframes se-nudge { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .se-story-hero-scroll i { animation: none; } }
@media (max-width: 760px) { .se-story-hero-text { font-size: 17px; line-height: 1.65; } .se-story-hero-eyebrow, .se-story-hero-scroll { letter-spacing: .2em; } }
/* A transparent header floats over the hero, so the content is pushed down by the header's own height (header.js measures it); a white or dark header sits above it and needs nothing. */
body.se-hdr-transparent .se-story-hero-inner { padding-top: var(--se-header-h, 110px); }

/* ---------- Section Dots (read off the picture: pitch 34px, ring 10px, lit dot 11px, the active one named in gold) ---------- */
.se-section-dots { position: fixed; top: 50%; z-index: 90; transform: translateY(-50%); }
.se-section-dots-right { right: 27px; }
.se-section-dots-left { left: 27px; }
.se-section-dots[hidden], .se-section-dots li[hidden] { display: none; }
.se-section-dots ol { margin: 0; padding: 0; list-style: none; }
.se-section-dots li { margin: 0; }
.se-section-dots a { display: flex; align-items: center; justify-content: flex-end; gap: 12px; height: 34px; color: #fff; font-size: 14px; font-weight: 500; text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.se-section-dots-left a { flex-direction: row-reverse; justify-content: flex-end; }
.se-dot-label { opacity: 0; white-space: nowrap; transition: opacity .2s ease; }
.se-dot-num { margin-right: 6px; font-size: 11px; letter-spacing: .08em; opacity: .8; }
.se-section-dots li.is-active .se-dot-label, .se-section-dots a:hover .se-dot-label, .se-section-dots a:focus-visible .se-dot-label { opacity: 1; }
.se-section-dots li.is-active .se-dot-label { color: var(--se-hdr-accent, #b87333); text-shadow: 0 1px 8px rgba(0,0,0,.35); }
.se-dot { box-sizing: border-box; flex: 0 0 auto; width: 10px; height: 10px; border: 1.5px solid rgba(190,190,190,.85); border-radius: 50%; transition: all .2s ease; }
.se-section-dots li.is-active .se-dot { width: 11px; height: 11px; border-color: var(--se-hdr-accent, #b87333); background: var(--se-hdr-accent, #b87333); box-shadow: 0 0 0 4px rgba(var(--se-hdr-accent-rgb, 184,115,51), .22); }
@media (max-width: 1100px) { .se-section-dots { display: none; } }

/* ---------- Team Cards ---------- */
.se-team-cards { padding: 80px 0; }
.se-team-grid { display: grid; gap: 32px 28px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.se-team-grid.se-team-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.se-team-card { text-align: center; }
.se-team-photo { display: block; width: 150px; height: 150px; margin: 0 auto 18px; overflow: hidden; border-radius: 50%; background: var(--se-sand); }
.se-team-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.se-team-initials { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--se-terracotta); font-family: var(--se-font-heading); font-size: 44px; font-weight: 700; }
.se-team-name { margin: 0 0 4px; font-size: 19px; }
.se-team-role { margin: 0 0 10px; color: var(--se-terracotta); font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.se-team-bio { margin: 0; color: var(--se-text-light); font-size: 14px; line-height: 1.65; }
@media (max-width: 999px) { .se-team-grid, .se-team-grid.se-team-cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .se-team-grid, .se-team-grid.se-team-cols-3 { grid-template-columns: 1fr; } }

/* ---------- Enquiry Form section ---------- */
.se-enquiry-section { padding: 80px 0; background: #fff; }
.se-enquiry-card { max-width: 640px; margin: 0 auto; padding: 32px; border: 1px solid #f0e6de; border-radius: 16px; background: #fff; box-shadow: 0 10px 30px rgba(120, 80, 40, .06); }
.se-enquiry-trust { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 14px 0 0; color: var(--se-text-light); font-size: 12.5px; }
.se-enquiry-divider { display: flex; align-items: center; gap: 16px; max-width: 640px; margin: 24px auto; color: var(--se-text-light); font-size: 12.5px; letter-spacing: .08em; }
.se-enquiry-divider::before, .se-enquiry-divider::after { content: ''; flex: 1; height: 1px; background: var(--se-border); }
.se-enquiry-note { max-width: 640px; margin: 14px auto 0; color: var(--se-text-light); font-size: 13px; text-align: center; }
@media (max-width: 560px) { .se-enquiry-card { padding: 22px 18px; } }
.se-anchor { display: block; }

/* ---------- Values / Pillars grid ---------- */
.se-values-grid-section { padding: 60px 0; }
.se-values-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.se-values-card { background: var(--se-white); border-radius: var(--se-radius); box-shadow: var(--se-shadow); padding: 36px 30px; border: 1px solid var(--se-border); }
.se-values-icon {
	display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px;
	border-radius: 50%; background: rgba(201,98,45,.1); color: var(--se-terracotta); font-size: 22px; margin-bottom: 20px;
}
.se-values-card h3 { font-size: 19px; margin-bottom: 12px; }
.se-values-card p { color: var(--se-text-light); line-height: 1.7; }

/* ---------- Signature Destinations (per-country park/area cards) ---------- */
.se-signature-destinations { padding: 60px 0; }
.se-signature-destinations-header { text-align: center; max-width: 760px; margin: 0 auto 44px; }
.se-signature-destinations-header h2 { font-family: 'Merriweather', Georgia, serif; font-weight: 700; font-size: clamp(30px, 4.5vw, 46px); margin-bottom: 14px; }
.se-signature-destinations-header p { color: var(--se-text-light); font-size: 17px; line-height: 1.7; }
.se-signature-destinations-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.se-signature-destination-card {
	background: var(--se-white); border-radius: var(--se-radius); box-shadow: var(--se-shadow);
	padding: 36px 28px; text-align: center; border: 1px solid var(--se-border);
}
.se-signature-destination-emoji { display: block; font-size: 42px; margin-bottom: 18px; line-height: 1; }
.se-signature-destination-card h3 { font-size: 19px; margin-bottom: 12px; }
.se-signature-destination-card p { color: var(--se-text-light); line-height: 1.7; margin-bottom: 20px; }
.se-signature-destination-link { font-weight: 700; color: var(--se-terracotta); display: inline-flex; align-items: center; gap: 6px; text-transform: uppercase; font-size: 13px; letter-spacing: .04em; }
.se-signature-destination-link:hover { gap: 10px; }

/* ---------- Editor's Picks (rich safari cards: badge, rating, price) ---------- */
.se-editors-picks-section { padding: 60px 0; }
.se-editors-picks-grid { display: grid; gap: 24px; }
.se-editors-pick-card {
	position: relative; display: block; border-radius: var(--se-radius); overflow: hidden;
	aspect-ratio: 3/4; box-shadow: var(--se-shadow-sm); transition: transform .18s ease, box-shadow .18s ease;
}
.se-editors-pick-card:hover { transform: translateY(-4px); box-shadow: var(--se-shadow); }
.se-editors-pick-media { position: absolute; inset: 0; display: block; background: var(--se-sand-dark); }
.se-editors-pick-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.se-editors-pick-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,15,20,.1) 0%, rgba(15,15,20,.15) 35%, rgba(15,15,20,.9) 100%); }
.se-editors-pick-badge {
	position: absolute; top: 16px; left: 16px; z-index: 2; background: var(--se-sand); color: var(--se-green-900);
	padding: 6px 14px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
}
.se-editors-pick-rating {
	position: absolute; top: 16px; right: 16px; z-index: 2; background: rgba(15,15,20,.65); color: #fff;
	padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 4px;
	backdrop-filter: blur(2px);
}
.se-editors-pick-rating i { color: var(--se-sand); }
.se-editors-pick-rating span { opacity: .8; font-weight: 500; }
.se-editors-pick-text { position: absolute; left: 0; right: 0; bottom: 70px; z-index: 2; padding: 0 20px; color: #fff; }
.se-editors-pick-kicker { display: flex; align-items: center; gap: 5px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.8); margin-bottom: 8px; }
.se-editors-pick-title { display: block; font-family: 'Merriweather', Georgia, serif; font-weight: 700; font-size: 19px; line-height: 1.3; margin-bottom: 8px; }
.se-editors-pick-highlights { display: block; font-size: 12px; color: rgba(255,255,255,.75); line-height: 1.5; }
.se-editors-pick-footer {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 14px 20px;
	display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.15);
}
.se-editors-pick-duration { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.75); }
.se-editors-pick-price .safari-price .amount,
.se-editors-pick-price .safari-price-on-request a { color: var(--se-sand); font-size: 15px; font-weight: 700; }
.se-editors-pick-price .safari-price .was { color: rgba(255,255,255,.5); text-decoration: line-through; font-size: 11px; }
.se-editors-pick-price .safari-price .note { display: block; font-size: 10px; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .04em; }
.se-editors-pick-price .safari-price .save-badge { display: none; }
@media (max-width: 900px) {
	.se-editors-picks-grid.se-tiles-cols-4,
	.se-editors-picks-grid.se-tiles-cols-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.se-editors-picks-grid { grid-template-columns: 1fr !important; }
}
