/*
 Theme Name: Udzungwa Mountains
 Theme URI: https://udzungwamountains.com
 Author: Udzungwa Mountains
 Author URI: https://udzungwamountains.com
 Description: Elementor-compatible WordPress theme for Udzungwa Mountains National Park. Walking-only park featuring primates, waterfalls, and rainforest trails.
 Version: 1.0.1
 Requires at least: 5.9
 Requires PHP: 7.0
 License: GNU General Public License v2 or later
 License URI: https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain: udzungwa-theme
 Tags: custom-menu, custom-logo, elementor, tourism, travel
*/

/* ═══════════════════════════════════════════════════════════
   1. DESIGN TOKENS
   ═══════════════════════════════════════════════════════════ */

:root {
  --accent:       #da6f66;
  --accent-hover: #c45b52;
  --navy:         #132736;
  --navy-light:   #1e3a50;
  --offwhite:     #efefef;
  --beige:        #dbd6ce;
  --beige-mid:    #bcb8aa;
  --beige-dark:   #887d73;
  --white:        #ffffff;
  --text:         #132736;
  --text-light:   #5a6a78;
  --font-heading: 'DM Serif Display', Georgia, serif;
  --font-body:    'Plus Jakarta Sans', 'Helvetica Neue', sans-serif;
  --container:    min(80%, 1200px);
  --radius:       10px;
  --transition:   .4s ease-in;
}

/* ═══════════════════════════════════════════════════════════
   2. RESET
   ═══════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-size: clamp(15px, 15px + (18 - 15) * (100vw - 1000px) / (1920 - 1000), 18px);
  font-weight: 400;
  line-height: 1.7;
  color: var(--text);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; transition: all var(--transition); }
h1, h2, h3, h4 {
  font-family: var(--font-heading);
  font-weight: 500;
  letter-spacing: 1px;
  line-height: 1.2;
}
h1 { font-size: clamp(30px, 30px + (50 - 30) * (100vw - 1000px) / (1920 - 1000), 50px); }
h2 { font-size: clamp(20px, 20px + (40 - 20) * (100vw - 1000px) / (1920 - 1000), 40px); }
h3 { font-size: clamp(15px, 15px + (30 - 15) * (100vw - 1000px) / (1920 - 1000), 30px); }
.container { max-width: var(--container); margin: 0 auto; }

/* ═══════════════════════════════════════════════════════════
   3. BUTTONS
   ═══════════════════════════════════════════════════════════ */

.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 50px;
  border: 2px solid var(--accent);
  border-radius: var(--radius);
  color: var(--accent);
  background: transparent;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: clamp(11px, 11px + (14 - 11) * (100vw - 1000px) / (1920 - 1000), 14px);
  text-transform: uppercase;
  letter-spacing: 2px;
  cursor: pointer;
  transition: all var(--transition);
}
.btn:hover { background: var(--accent); color: var(--offwhite); }
.btn--filled { background: var(--accent); color: var(--navy); }
.btn--filled:hover { background: transparent; color: var(--accent); }
.btn--white { border-color: var(--white); color: var(--white); }
.btn--white:hover { background: var(--white); color: var(--navy); }

/* ═══════════════════════════════════════════════════════════
   4. SUBHEADING
   ═══════════════════════════════════════════════════════════ */

.subheading {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--accent);
  letter-spacing: 2px;
  margin-bottom: 16px;
}

/* ═══════════════════════════════════════════════════════════
   5. HEADER
   ═══════════════════════════════════════════════════════════ */

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  padding: 20px 0;
  transition: background .4s ease, padding .4s ease;
}
.header.scrolled {
  background: var(--navy);
  padding: 12px 0;
}
.header--inner { background: var(--navy); }
.header__inner {
  max-width: var(--container);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header__logo {
  font-family: var(--font-heading);
  font-size: clamp(18px, 18px + (28 - 18) * (100vw - 1000px) / (1920 - 1000), 28px);
  font-weight: 400;
  color: var(--white);
  letter-spacing: 1px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.header__logo i { color: var(--accent); font-size: 1.1em; }
.header__nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 18px + (40 - 18) * (100vw - 1000px) / (1920 - 1000), 40px);
}
.header__nav > a,
.header__nav > .dropdown > a {
  white-space: nowrap;
}
.header__nav a {
  color: var(--white);
  font-size: clamp(11px, 11px + (13 - 11) * (100vw - 1000px) / (1920 - 1000), 13px);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  position: relative;
}
.header__nav a:hover { color: var(--accent); }
.header__nav .dropdown { position: relative; padding-bottom: 16px; margin-bottom: -16px; }
.header__nav .dropdown-menu {
  position: absolute;
  top: 100%;
  left: -10px;
  background: var(--navy);
  border-radius: var(--radius);
  padding: 16px 0;
  min-width: 240px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0);
  transition: opacity .3s ease;
  margin-top: 0;
  padding-top: 12px;
}
.header__nav .dropdown-menu > a:first-child { border-radius: var(--radius) var(--radius) 0 0; }
.header__nav .dropdown:hover .dropdown-menu { opacity: 1; pointer-events: auto; }
.dropdown-menu a { display: block; padding: 8px 24px; font-size: 13px; white-space: nowrap; }
.dropdown-menu a:hover { color: var(--accent); }
.header__cta .btn { padding: 7px 30px; }
/* Hamburger */
.header__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.header__toggle span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--white);
  transition: all .3s ease;
  border-radius: 1px;
}
.header__toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.header__toggle.active span:nth-child(2) { opacity: 0; }
.header__toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* Mobile nav overlay */
.mobile-nav {
  position: fixed;
  inset: 0;
  background: rgba(19, 39, 54, 0.97);
  z-index: 9998;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.mobile-nav.active { opacity: 1; pointer-events: auto; }
.mobile-nav a {
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 24px;
  letter-spacing: 1px;
}
.mobile-nav a:hover { color: var(--accent); }

/* ═══════════════════════════════════════════════════════════
   6. PAGE HERO
   ═══════════════════════════════════════════════════════════ */

.page-hero {
  position: relative;
  height: 50svh;
  min-height: 350px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: clamp(40px, 40px + (80 - 40) * (100vw - 1000px) / (1920 - 1000), 80px);
  background-size: cover;
  background-position: center;
  color: var(--white);
  text-align: center;
}
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(19,39,54,.2) 0%, rgba(19,39,54,.85) 100%);
}
.page-hero__content { position: relative; z-index: 2; }
.page-hero__eyebrow {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--accent);
  margin-bottom: 12px;
}
.page-hero h1 { margin-bottom: 12px; }
.page-hero h1 em { font-style: italic; color: var(--accent); }
.breadcrumb {
  font-size: 12px;
  opacity: .6;
}
.breadcrumb a:hover { color: var(--accent); opacity: 1; }
.breadcrumb span { margin: 0 8px; }

/* ═══════════════════════════════════════════════════════════
   7. HOMEPAGE SECTIONS
   ═══════════════════════════════════════════════════════════ */

/* Hero slideshow */
.hero {
  position: relative;
  height: 100svh;
  min-height: 600px;
  overflow: hidden;
  background: var(--navy);
}
.hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero__slide.active { opacity: 1; }
.hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 6s ease-in-out;
}
.hero__slide.active img { transform: scale(1.05); }
.hero__slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(359deg, rgba(0,0,0,0.76) 0%, rgba(84,84,84,0) 100%);
}
.hero__content {
  position: absolute;
  bottom: 15%;
  left: 0;
  right: 0;
  z-index: 2;
  text-align: center;
  color: var(--white);
  padding: 0 24px;
}
.hero__content h1 {
  margin-bottom: 20px;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.hero__content h1 em {
  font-style: italic;
  color: var(--accent);
}
.hero__content p {
  max-width: 600px;
  margin: 0 auto 32px;
  font-size: clamp(15px, 15px + (18 - 15) * (100vw - 1000px) / (1920 - 1000), 18px);
  opacity: 0.85;
  line-height: 1.8;
}
.hero__ctas {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
.hero__scroll {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  color: var(--white);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 3px;
  text-align: center;
  opacity: 0.6;
}
.hero__scroll i {
  display: block;
  margin-top: 10px;
  font-size: 14px;
  animation: scrollBounce 2s infinite;
}
@keyframes scrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

/* Hero dots */
.hero__dots {
  position: absolute;
  bottom: 100px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 12px;
}
.hero__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.5);
  background: transparent;
  cursor: pointer;
  transition: all .3s;
}
.hero__dot.active {
  background: var(--accent);
  border-color: var(--accent);
}

/* Intro section */
.intro {
  padding: clamp(80px, 80px + (200 - 80) * (100vw - 1000px) / (1920 - 1000), 200px) 0;
  text-align: center;
}
.intro h2 {
  margin-bottom: 24px;
}
.intro h2 em { font-style: italic; }
.intro p {
  max-width: 700px;
  margin: 0 auto 40px;
  color: var(--text-light);
  line-height: 1.9;
}

/* Destinations grid */
.destinations {
  padding: clamp(60px, 60px + (128 - 60) * (100vw - 1000px) / (1920 - 1000), 128px) 0;
  background: var(--offwhite);
}
.destinations__header {
  text-align: center;
  margin-bottom: clamp(40px, 40px + (80 - 40) * (100vw - 1000px) / (1920 - 1000), 80px);
}
.destinations__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(20px, 20px + (64 - 20) * (100vw - 1000px) / (1920 - 1000), 64px);
}
.dest-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 1;
  cursor: pointer;
}
.dest-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 6s ease-in-out;
}
.dest-card:hover img { transform: scale(1.05); }
.dest-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(359deg, rgba(0,0,0,0.76) 0%, rgba(84,84,84,0) 100%);
  transition: opacity var(--transition);
}
.dest-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: clamp(20px, 20px + (48 - 20) * (100vw - 1000px) / (1920 - 1000), 48px);
  color: var(--white);
}
.dest-card__content h3 { margin-bottom: 16px; }
.dest-card__content .btn {
  border-color: var(--white);
  color: var(--white);
  padding: 7px 30px;
}
.dest-card__content .btn:hover {
  background: var(--white);
  color: var(--navy);
}

/* Featured grid */
.featured {
  padding: clamp(80px, 80px + (200 - 80) * (100vw - 1000px) / (1920 - 1000), 200px) 0;
}
.featured__header {
  text-align: center;
  margin-bottom: clamp(40px, 40px + (80 - 40) * (100vw - 1000px) / (1920 - 1000), 80px);
}
.featured__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 16px + (32 - 16) * (100vw - 1000px) / (1920 - 1000), 32px);
}
.feat-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 3/5;
}
.feat-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 6s ease-in-out;
}
.feat-card:hover img { transform: scale(1.05); }
.feat-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(359deg, rgba(0,0,0,0.76) 0%, rgba(84,84,84,0) 100%);
}
.feat-card__content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: clamp(20px, 20px + (40 - 20) * (100vw - 1000px) / (1920 - 1000), 40px);
  color: var(--white);
}
.feat-card__eyebrow {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent);
  margin-bottom: 8px;
}
.feat-card__content h3 { margin-bottom: 12px; }
.feat-card__content h3 a { color: var(--white); }
.feat-card__content h3 a:hover { color: var(--accent); }
.feat-card__link {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent);
}
.feat-card__link:hover { color: var(--white); }

/* About section */
.about-section {
  padding: clamp(80px, 80px + (200 - 80) * (100vw - 1000px) / (1920 - 1000), 200px) 0;
  background: var(--offwhite);
}
.about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 32px + (80 - 32) * (100vw - 1000px) / (1920 - 1000), 80px);
  align-items: center;
}
.about__img {
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 3/4;
}
.about__img img { width: 100%; height: 100%; object-fit: cover; }
.about__features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 24px + (48 - 24) * (100vw - 1000px) / (1920 - 1000), 48px);
}
.about__item { text-align: center; }
.about__item-icon {
  width: clamp(48px, 48px + (100 - 48) * (100vw - 1000px) / (1920 - 1000), 100px);
  height: clamp(48px, 48px + (100 - 48) * (100vw - 1000px) / (1920 - 1000), 100px);
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(24px, 24px + (44 - 24) * (100vw - 1000px) / (1920 - 1000), 44px);
  color: var(--accent);
}
.about__item h4 {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--text);
}

/* Stats bar */
.stats {
  padding: clamp(60px, 60px + (100 - 60) * (100vw - 1000px) / (1920 - 1000), 100px) 0;
  background: var(--navy);
  color: var(--white);
}
.stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  text-align: center;
}
.stats__number {
  font-family: var(--font-heading);
  font-size: clamp(28px, 28px + (52 - 28) * (100vw - 1000px) / (1920 - 1000), 52px);
  font-weight: 500;
  color: var(--accent);
  margin-bottom: 8px;
}
.stats__label {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  opacity: 0.6;
}

/* Operators teaser */
.operators-teaser {
  padding: clamp(80px, 80px + (200 - 80) * (100vw - 1000px) / (1920 - 1000), 200px) 0;
}
.operators-teaser__header {
  text-align: center;
  margin-bottom: clamp(40px, 40px + (80 - 40) * (100vw - 1000px) / (1920 - 1000), 80px);
}
.operators-teaser__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 16px + (32 - 16) * (100vw - 1000px) / (1920 - 1000), 32px);
  margin-bottom: 48px;
}
.op-card {
  border: 1px solid var(--beige);
  border-radius: var(--radius);
  padding: clamp(24px, 24px + (40 - 24) * (100vw - 1000px) / (1920 - 1000), 40px);
  text-align: center;
  transition: all var(--transition);
}
.op-card:hover {
  box-shadow: 0 4px 8px 0 rgba(0,0,0,.16);
  transform: translateY(-4px);
}
.op-card__initials {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 500;
  color: var(--white);
}
.op-card h4 {
  font-family: var(--font-heading);
  margin-bottom: 4px;
}
.op-card h4 a:hover { color: var(--accent); }
.op-card__type {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--accent);
  margin-bottom: 12px;
}
.op-card p {
  font-size: 15px;
  color: var(--text-light);
  line-height: 1.7;
  margin-bottom: 14px;
}
.op-card__stars { color: var(--accent); font-size: 14px; }
.operators-teaser__cta { text-align: center; }

/* Newsletter */
.newsletter {
  padding: clamp(60px, 60px + (128 - 60) * (100vw - 1000px) / (1920 - 1000), 128px) 0;
  background: var(--navy);
  color: var(--white);
  text-align: center;
}
.newsletter h2 { margin-bottom: 16px; }
.newsletter h2 em { font-style: italic; color: var(--accent); }
.newsletter p {
  opacity: 0.6;
  margin-bottom: 32px;
  font-size: 14px;
}
.newsletter__form {
  display: flex;
  max-width: 480px;
  margin: 0 auto;
  gap: 0;
}
.newsletter__form input {
  flex: 1;
  padding: 12px 18px;
  border: 2px solid rgba(255,255,255,0.2);
  border-right: none;
  border-radius: var(--radius) 0 0 var(--radius);
  background: transparent;
  color: var(--white);
  font-family: var(--font-body);
  font-size: 14px;
}
.newsletter__form input::placeholder { color: rgba(255,255,255,0.4); }
.newsletter__form input:focus { outline: none; border-color: var(--accent); }
.newsletter__form button {
  padding: 12px 28px;
  border: 2px solid var(--accent);
  border-radius: 0 var(--radius) var(--radius) 0;
  background: var(--accent);
  color: var(--navy);
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 2px;
  cursor: pointer;
  transition: all var(--transition);
}
.newsletter__form button:hover { background: transparent; color: var(--accent); }

/* ═══════════════════════════════════════════════════════════
   8. CONTENT COMPONENTS (shared across inner pages)
   ═══════════════════════════════════════════════════════════ */

/* Enhanced content tables */
.content-table{width:100%;border-collapse:separate;border-spacing:0;margin:28px 0;font-size:15px;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 12px rgba(19,39,54,.08)}
.content-table thead{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-light) 100%);color:var(--white)}
.content-table th{padding:14px 20px;text-align:left;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:1.5px}
.content-table td{padding:14px 20px;border-bottom:1px solid var(--beige);color:var(--text-light)}
.content-table tbody tr:nth-child(even){background:var(--offwhite)}
.content-table tbody tr:hover{background:rgba(218,111,102,.06)}
.content-table tbody tr:last-child td{border-bottom:none}
.content-table td:first-child{font-weight:600;color:var(--text)}
.content-table a{color:var(--accent);font-weight:600}

/* Blockquotes */
.content-blockquote{position:relative;padding:28px 32px 28px 40px;margin:36px 0;background:linear-gradient(135deg,rgba(218,111,102,.06) 0%,rgba(218,111,102,.02) 100%);border:1px solid rgba(218,111,102,.15);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0}
.content-blockquote::before{content:'\201C';position:absolute;top:12px;left:12px;font-family:var(--font-heading);font-size:48px;color:var(--accent);opacity:.3;line-height:1}
.content-blockquote p{font-family:var(--font-heading);font-size:clamp(17px,17px + (21 - 17)*(100vw - 1000px)/(1920 - 1000),21px);color:var(--text);font-style:italic;margin-bottom:0;line-height:1.6}

/* Key takeaways box */
.key-takeaways{background:var(--navy);border-radius:var(--radius);padding:clamp(20px,20px + (32 - 20)*(100vw - 1000px)/(1920 - 1000),32px);margin-bottom:32px;color:var(--white)}
.key-takeaways-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:14px}
.key-takeaways-label i{font-size:16px}
.key-takeaways ul{list-style:none;margin:0;padding:0}
.key-takeaways li{position:relative;padding:6px 0 6px 24px;font-size:14px;line-height:1.7;opacity:.85}
.key-takeaways li::before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:9px;color:var(--accent);font-size:11px}

/* Content sections */
.content-section{padding:clamp(20px,20px + (32 - 20)*(100vw - 1000px)/(1920 - 1000),32px);margin-bottom:2px;border-radius:var(--radius)}
.content-section:nth-child(even){background:var(--offwhite)}

/* Tip, info, warning boxes */
.tip-box{background:rgba(218,111,102,.06);border:1px solid rgba(218,111,102,.15);border-radius:var(--radius);padding:20px 24px;margin:20px 0;font-size:14px;line-height:1.7;color:var(--text-light)}
.tip-box::before{content:'\f0eb';font-family:'Font Awesome 6 Free';font-weight:900;color:var(--accent);margin-right:8px}
.tip-box p{margin-bottom:0;color:var(--text)}
.tip-box strong{color:var(--accent)}
.info-box{background:var(--navy);color:var(--white);border-radius:var(--radius);padding:20px 24px;margin:20px 0;font-size:14px;line-height:1.7}
.info-box::before{content:'\f05a';font-family:'Font Awesome 6 Free';font-weight:900;color:var(--accent);margin-right:8px}
.info-box p{margin-bottom:0;color:rgba(255,255,255,.85)}
.info-box strong{color:var(--white)}
.warning-box{background:rgba(255,193,7,.08);border:1px solid rgba(255,193,7,.25);border-radius:var(--radius);padding:20px 24px;margin:20px 0;font-size:14px;line-height:1.7;color:var(--text-light)}
.warning-box::before{content:'\f071';font-family:'Font Awesome 6 Free';font-weight:900;color:#ffc107;margin-right:8px}
.warning-box p{margin-bottom:0;color:var(--text)}

/* Enhanced bullet lists */
.activity-body ul,.about-long ul,.safari-body ul{list-style:none;margin:0 0 24px 0;padding:0}
.activity-body ul li,.about-long ul li,.safari-body ul li{position:relative;padding:6px 0 6px 28px;color:var(--text-light);line-height:1.8}
.activity-body ul li::before,.about-long ul li::before,.safari-body ul li::before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:9px;color:var(--accent);font-size:12px}
.key-takeaways + .activity-body ul li::before{content:'\f111';font-size:6px;top:14px}

/* Ordered lists styling */
.activity-body ol,.about-long ol,.safari-body ol{list-style:none;counter-reset:steps;margin:0 0 24px 0;padding:0}
.activity-body ol li,.about-long ol li,.safari-body ol li{position:relative;padding:10px 0 10px 44px;color:var(--text-light);line-height:1.8;counter-increment:steps;border-bottom:1px solid var(--beige)}
.activity-body ol li:last-child,.about-long ol li:last-child,.safari-body ol li:last-child{border-bottom:none}
.activity-body ol li::before,.about-long ol li::before,.safari-body ol li::before{content:counter(steps);position:absolute;left:0;top:8px;width:28px;height:28px;background:var(--accent);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:13px;font-weight:700}

/* Article heading accents */
.activity-body h3,.about-long h3,.safari-body h3{position:relative;padding-bottom:12px;margin-bottom:18px;margin-top:40px}
.activity-body h3::after,.about-long h3::after,.safari-body h3::after{content:'';position:absolute;bottom:0;left:0;width:40px;height:3px;background:var(--accent);border-radius:2px}

/* Sidebar visual enhancement */
.activity-layout>aside,.safari-layout>aside{position:sticky;top:100px}
.quick-facts,.safari-quick,.safari-includes{border:1px solid var(--beige)}
.related-acts,.other-safaris{background:var(--offwhite);border-radius:var(--radius);padding:24px;border:1px solid var(--beige)}

/* FAQ items */
.faq-section h3,.faq-block h3{position:relative;margin-top:0;margin-bottom:10px;padding:16px 0;border-bottom:2px solid var(--beige);font-size:clamp(16px,16px + (20 - 16)*(100vw - 1000px)/(1920 - 1000),20px);color:var(--text)}
.faq-section p,.faq-block p{color:var(--text-light);line-height:1.9;margin-bottom:24px}
.faq-item{background:var(--white);border:1px solid var(--beige);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px;transition:box-shadow var(--transition)}
.faq-item:hover{box-shadow:0 2px 12px rgba(19,39,54,.06)}
.faq-item h3{border-bottom:none;padding:0;margin-bottom:8px;font-size:clamp(15px,15px + (18 - 15)*(100vw - 1000px)/(1920 - 1000),18px)}
.faq-item h3::before{content:'\f059';font-family:'Font Awesome 6 Free';font-weight:900;color:var(--accent);margin-right:10px;font-size:16px}
.faq-item p{margin-bottom:0;font-size:15px}

/* Stat inline */
.stat-inline{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--accent)}

/* ═══════════════════════════════════════════════════════════
   9. FOOTER
   ═══════════════════════════════════════════════════════════ */

.footer {
  background: var(--navy);
  color: var(--offwhite);
  padding: clamp(60px, 60px + (130 - 60) * (100vw - 1000px) / (1920 - 1000), 130px) 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}
.footer__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(32px, 32px + (64 - 32) * (100vw - 1000px) / (1920 - 1000), 64px);
}
.footer__logo {
  font-family: var(--font-heading);
  font-size: 22px;
  font-weight: 500;
  color: var(--white);
  margin-bottom: 20px;
  display: block;
}
.footer__logo span { color: var(--accent); }
.footer p { font-size: 15px; line-height: 1.8; opacity: 0.6; margin-bottom: 20px; }
.footer__social { display: flex; gap: 12px; }
.footer__social a {
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; color: rgba(255,255,255,0.5);
}
.footer__social a:hover { border-color: var(--accent); color: var(--accent); }
.footer h4 {
  font-family: var(--font-body);
  font-size: 14px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 2px;
  color: var(--white); margin-bottom: 24px;
}
.footer ul { list-style: none; }
.footer li { margin-bottom: 12px; }
.footer li a { font-size: 15px; opacity: 0.6; }
.footer li a:hover { opacity: 1; color: var(--accent); }
.footer__bottom {
  margin-top: clamp(40px, 40px + (80 - 40) * (100vw - 1000px) / (1920 - 1000), 80px);
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; opacity: 0.4;
}
.footer__bottom-links a { margin-left: 20px; }
.footer__bottom-links a:hover { color: var(--accent); opacity: 1; }

/* Pagination */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 60px; }
.pagination a, .pagination span { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius); font-size: 14px; font-weight: 600; color: var(--navy); border: 1px solid var(--beige); transition: all 0.3s ease; }
.pagination a:hover { background: var(--accent); color: var(--white); border-color: var(--accent); }
.pagination .current { background: var(--accent); color: var(--white); border-color: var(--accent); }

/* ═══════════════════════════════════════════════════════════
   10. SCROLL TO TOP
   ═══════════════════════════════════════════════════════════ */

#scrollTop {
  position: fixed; bottom: 28px; right: 28px;
  width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid var(--accent); background: transparent;
  color: var(--accent); cursor: pointer; font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: all var(--transition); z-index: 900;
  backdrop-filter: blur(10px);
}
#scrollTop.visible { opacity: 1; pointer-events: auto; }
#scrollTop:hover { background: var(--accent); color: var(--white); }

/* ═══════════════════════════════════════════════════════════
   11. PAGE-SPECIFIC CSS
   ═══════════════════════════════════════════════════════════ */

/* ── Safari Detail ── */
.safari-detail{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.safari-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(32px,32px + (60 - 32)*(100vw - 1000px)/(1920 - 1000),60px)}
.safari-body h3{margin-top:32px;margin-bottom:14px}
.safari-body h4{font-family:var(--font-body);font-size:15px;font-weight:700;margin-top:20px;margin-bottom:8px;color:var(--text)}
.safari-body p{color:var(--text-light);line-height:1.9;margin-bottom:16px}
.safari-pullquote{border-left:3px solid var(--accent);padding:16px 24px;margin:28px 0;background:var(--offwhite);border-radius:0 var(--radius) var(--radius) 0}
.safari-pullquote p{font-family:var(--font-heading);font-size:clamp(16px,16px + (20 - 16)*(100vw - 1000px)/(1920 - 1000),20px);color:var(--text);font-style:italic;margin-bottom:0}
.safari-sidebar{position:sticky;top:100px}
.safari-price-box{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:28px;text-align:center}
.safari-price-box .from{font-size:12px;color:var(--text-light)}
.safari-price-box .amount{font-family:var(--font-heading);font-size:clamp(32px,32px + (44 - 32)*(100vw - 1000px)/(1920 - 1000),44px);font-weight:500;color:var(--accent);display:block;margin:4px 0}
.safari-price-box .per{font-size:12px;color:var(--text-light);margin-bottom:20px}
.safari-price-box .btn{width:100%;padding:12px;margin-bottom:10px;display:block;text-align:center}
.safari-includes{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:28px}
.safari-includes h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.safari-includes li{display:flex;gap:10px;padding:6px 0;font-size:14px;color:var(--text-light);list-style:none}
.safari-includes i{color:var(--accent);font-size:12px;margin-top:4px}
.safari-quick{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:28px}
.safari-quick h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.safari-quick-item{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;color:var(--text-light)}
.safari-quick-item i{color:var(--accent);width:18px;text-align:center}
.safari-quick-item strong{color:var(--text);font-weight:600}
.other-safaris{margin-bottom:28px}
.other-safaris h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.other-safari-card{display:flex;gap:14px;margin-bottom:14px;align-items:center}
.other-safari-card img{width:80px;height:60px;object-fit:cover;border-radius:var(--radius);flex-shrink:0}
.other-safari-card h5{font-family:var(--font-body);font-size:14px;font-weight:600;margin-bottom:2px}
.other-safari-card h5 a{color:var(--text)}
.other-safari-card h5 a:hover{color:var(--accent)}
.other-safari-card p{font-size:12px;color:var(--text-light)}

/* ── Safari Listing ── */
.safaris-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.pkg-detail{margin-bottom:clamp(40px,40px + (80 - 40)*(100vw - 1000px)/(1920 - 1000),80px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--beige)}
.pkg-detail-hero{position:relative;height:320px;background-size:cover;background-position:center}
.pkg-detail-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(359deg,rgba(0,0,0,.76) 0%,rgba(84,84,84,0) 100%)}
.pkg-detail-label{position:absolute;bottom:28px;left:32px;z-index:2;color:var(--white)}
.pkg-tag{display:inline-block;background:var(--accent);color:var(--white);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:4px 12px;border-radius:4px;margin-bottom:10px}
.pkg-detail-label h2 a{color:var(--white)}
.pkg-detail-label h2 a:hover{color:var(--accent)}
.pkg-detail-body{display:grid;grid-template-columns:1fr 320px;gap:40px;padding:clamp(24px,24px + (40 - 24)*(100vw - 1000px)/(1920 - 1000),40px)}
.pkg-detail-body p{color:var(--text-light);line-height:1.9;margin-bottom:14px}
.pkg-sidebar{background:var(--offwhite);padding:28px;border-radius:var(--radius)}
.sidebar-price .from{font-size:12px;color:var(--text-light);display:block}
.sidebar-price .amount{font-family:var(--font-heading);font-size:clamp(28px,28px + (40 - 28)*(100vw - 1000px)/(1920 - 1000),40px);font-weight:500;color:var(--accent);display:block}
.sidebar-price .per{font-size:12px;color:var(--text-light);display:block;margin-bottom:20px}
.btn-block{display:block;text-align:center;width:100%;padding:12px;margin-bottom:10px}
.view-full{display:block;text-align:center;margin-top:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent)}
.includes-list{list-style:none;margin-top:20px}
.includes-list li{display:flex;gap:10px;padding:6px 0;font-size:13px;color:var(--text-light)}
.includes-list i{color:var(--accent);font-size:12px;margin-top:3px}

/* ── Activity Listing ── */
.act-index{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.act-filter-bar{display:flex;gap:10px;justify-content:center;margin-bottom:clamp(32px,32px + (60 - 32)*(100vw - 1000px)/(1920 - 1000),60px);flex-wrap:wrap}
.act-filter-btn{padding:8px 24px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;border:2px solid var(--beige);border-radius:var(--radius);background:transparent;color:var(--text-light);cursor:pointer;transition:all var(--transition);font-family:var(--font-body)}
.act-filter-btn:hover,.act-filter-btn.active{background:var(--accent);color:var(--white);border-color:var(--accent)}
.activities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px)}
.act-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/5;cursor:pointer}
.act-card img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease-in-out}
.act-card:hover img{transform:scale(1.05)}
.act-card::after{content:'';position:absolute;inset:0;background:linear-gradient(359deg,rgba(0,0,0,.76) 0%,rgba(84,84,84,0) 100%)}
.act-card__content{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:clamp(20px,20px + (40 - 20)*(100vw - 1000px)/(1920 - 1000),40px);color:var(--white)}
.act-card__tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:6px}
.act-card__content h3{margin-bottom:8px}
.act-card__content h3 a{color:var(--white)}
.act-card__content h3 a:hover{color:var(--accent)}
.act-card__content h3 em{font-style:italic}
.act-card__meta{font-size:11px;opacity:.7;margin-bottom:10px}
.act-card__link{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent)}

/* ── Activity Detail ── */
.activity-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.activity-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(32px,32px + (60 - 32)*(100vw - 1000px)/(1920 - 1000),60px)}
.activity-body h3{margin-top:32px;margin-bottom:14px}
.activity-body p{color:var(--text-light);line-height:1.9;margin-bottom:16px}
.activity-body ul{margin:0 0 20px 24px;color:var(--text-light);line-height:1.9}
.activity-body li{margin-bottom:6px}
.activity-pullquote{border-left:3px solid var(--accent);padding:16px 24px;margin:28px 0;background:var(--offwhite);border-radius:0 var(--radius) var(--radius) 0}
.activity-pullquote p{font-family:var(--font-heading);font-size:clamp(16px,16px + (20 - 16)*(100vw - 1000px)/(1920 - 1000),20px);color:var(--text);font-style:italic;margin-bottom:0}
.quick-facts{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:28px}
.quick-facts h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.quick-fact{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;color:var(--text-light)}
.quick-fact i{color:var(--accent);width:18px;text-align:center}
.quick-fact strong{color:var(--text);font-weight:600}
.sidebar-cta{background:var(--navy);border-radius:var(--radius);padding:28px;color:var(--white);text-align:center;margin-bottom:28px}
.sidebar-cta h4{color:var(--white);margin-bottom:10px}
.sidebar-cta p{font-size:13px;opacity:.7;margin-bottom:20px;line-height:1.7}
.sidebar-cta .btn{border-color:var(--white);color:var(--white);width:100%;padding:12px}
.sidebar-cta .btn:hover{background:var(--white);color:var(--navy)}
.related-acts{margin-bottom:28px}
.related-acts h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.related-act{display:flex;gap:14px;margin-bottom:14px;align-items:center}
.related-act img{width:70px;height:70px;object-fit:cover;border-radius:var(--radius);flex-shrink:0}
.related-act h5{font-family:var(--font-body);font-size:14px;font-weight:600;margin-bottom:2px}
.related-act h5 a{color:var(--text)}
.related-act h5 a:hover{color:var(--accent)}
.related-act p{font-size:12px;color:var(--text-light)}

/* ── Stay Listing ── */
.stay-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.stay-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px);margin-bottom:60px}
.lodge-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:1;cursor:pointer}
.lodge-card img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease-in-out}
.lodge-card:hover img{transform:scale(1.05)}
.lodge-card::after{content:'';position:absolute;inset:0;background:linear-gradient(359deg,rgba(0,0,0,.76) 0%,rgba(84,84,84,0) 100%)}
.lodge-card__content{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:clamp(20px,20px + (40 - 20)*(100vw - 1000px)/(1920 - 1000),40px);color:var(--white)}
.lodge-card__type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:6px}
.lodge-card__content h3{margin-bottom:6px}
.lodge-card__content p{font-size:13px;opacity:.8;margin-bottom:10px}
.lodge-card__price{font-family:var(--font-heading);font-size:18px;color:var(--accent)}
.stay-cta{background:var(--offwhite);border-radius:var(--radius);padding:clamp(40px,40px + (80 - 40)*(100vw - 1000px)/(1920 - 1000),80px);text-align:center}
.stay-cta h3{margin-bottom:16px}
.stay-cta p{color:var(--text-light);max-width:500px;margin:0 auto 28px;line-height:1.8}

/* ── Stay Detail ── */
.accom-detail{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.accom-layout{display:grid;grid-template-columns:1fr 340px;gap:clamp(32px,32px + (60 - 32)*(100vw - 1000px)/(1920 - 1000),60px)}
.accom-body h3{margin-top:32px;margin-bottom:14px}
.accom-body p{color:var(--text-light);line-height:1.9;margin-bottom:16px}
.accom-body ul{list-style:none;margin:0 0 24px;padding:0}
.accom-body li{position:relative;padding:6px 0 6px 28px;color:var(--text-light);line-height:1.8}
.accom-body li::before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:9px;color:var(--accent);font-size:12px}
.accom-sidebar{position:sticky;top:100px}
.accom-price-box{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:28px;text-align:center;border:1px solid var(--beige)}
.accom-price-box .type-badge{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:8px}
.accom-price-box .amount{font-family:var(--font-heading);font-size:clamp(28px,28px + (40 - 28)*(100vw - 1000px)/(1920 - 1000),40px);font-weight:500;color:var(--accent);display:block;margin:4px 0}
.accom-price-box .per{font-size:12px;color:var(--text-light);margin-bottom:20px}
.accom-price-box .btn{width:100%;padding:12px;margin-bottom:10px;display:block;text-align:center}
.other-stays{background:var(--offwhite);border-radius:var(--radius);padding:24px;border:1px solid var(--beige);margin-bottom:28px}
.other-stays h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;color:var(--accent)}
.other-stay-card{display:flex;gap:14px;margin-bottom:14px;align-items:center}
.other-stay-card img{width:80px;height:60px;object-fit:cover;border-radius:var(--radius);flex-shrink:0}
.other-stay-card h5{font-family:var(--font-body);font-size:14px;font-weight:600;margin-bottom:2px}
.other-stay-card h5 a{color:var(--text)}
.other-stay-card h5 a:hover{color:var(--accent)}
.other-stay-card p{font-size:12px;color:var(--text-light)}

/* ── Blog Listing ── */
.blog-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px)}
.blog-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/5}
.blog-card img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease-in-out}
.blog-card:hover img{transform:scale(1.05)}
.blog-card::after{content:'';position:absolute;inset:0;background:linear-gradient(359deg,rgba(0,0,0,.76) 0%,rgba(84,84,84,0) 100%)}
.blog-card__content{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:clamp(20px,20px + (40 - 20)*(100vw - 1000px)/(1920 - 1000),40px);color:var(--white)}
.blog-card__meta{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:8px}
.blog-card__content h3{margin-bottom:8px}
.blog-card__content h3 a{color:var(--white)}
.blog-card__content h3 a:hover{color:var(--accent)}
.blog-card__content p{font-size:13px;opacity:.75;margin-bottom:10px}
.blog-card__link{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent)}

/* ── Blog Post ── */
.post-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.post-layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(32px,32px + (64 - 32)*(100vw - 1000px)/(1920 - 1000),64px)}
.post-header{margin-bottom:32px}
.post-tag{display:inline-block;background:var(--accent);color:var(--white);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:4px 12px;border-radius:4px;margin-bottom:14px}
.post-title{font-size:clamp(24px,24px + (36 - 24)*(100vw - 1000px)/(1920 - 1000),36px);margin-bottom:14px}
.post-meta{font-size:12px;color:var(--text-light);letter-spacing:1px}
.post-meta span{margin-right:20px}
.post-body p{color:var(--text-light);line-height:1.9;margin-bottom:20px}
.post-body h3{margin-top:32px;margin-bottom:14px;color:var(--text)}
.post-pullquote{border-left:4px solid var(--accent);background:var(--offwhite);padding:28px 32px;margin:32px 0;border-radius:0 var(--radius) var(--radius) 0}
.post-pullquote p{font-family:var(--font-heading);font-style:italic;font-size:clamp(15px,15px + (18 - 15)*(100vw - 1000px)/(1920 - 1000),18px);color:var(--text);margin:0;line-height:1.6}
.post-tags{display:flex;gap:8px;margin-top:32px;padding-top:24px;border-top:1px solid var(--beige)}
.post-tags a{font-size:11px;padding:5px 14px;border:2px solid var(--beige);border-radius:var(--radius);color:var(--text-light);font-weight:600}
.post-tags a:hover{border-color:var(--accent);color:var(--accent)}
.sidebar{position:sticky;top:100px}
.sidebar-widget{background:var(--offwhite);border-radius:var(--radius);padding:28px;margin-bottom:24px}
.sidebar-widget h4{font-family:var(--font-body);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:16px}
.recent-post{display:flex;gap:12px;margin-bottom:16px}
.recent-post img{width:56px;height:56px;object-fit:cover;border-radius:6px;flex-shrink:0}
.recent-post h5{font-family:var(--font-body);font-size:13px;font-weight:600;line-height:1.4}
.recent-post h5 a{color:var(--text)}
.recent-post h5 a:hover{color:var(--accent)}
.recent-post p{font-size:11px;color:var(--text-light)}
.related-section{padding:clamp(40px,40px + (80 - 40)*(100vw - 1000px)/(1920 - 1000),80px) 0;background:var(--offwhite)}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px);margin-top:32px}
.related-card{border-radius:var(--radius);overflow:hidden;background:var(--white);box-shadow:0 4px 8px rgba(0,0,0,.06)}
.related-card img{width:100%;height:180px;object-fit:cover}
.related-card__body{padding:20px}
.related-card__body h4{margin-bottom:4px}
.related-card__body h4 a{color:var(--text)}
.related-card__body h4 a:hover{color:var(--accent)}
.related-card__body p{font-size:12px;color:var(--text-light)}

/* ── About Page ── */
.about-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,32px + (80 - 32)*(100vw - 1000px)/(1920 - 1000),80px);align-items:start;margin-bottom:clamp(60px,60px + (120 - 60)*(100vw - 1000px)/(1920 - 1000),120px)}
.about-text h2{margin-bottom:20px}
.about-text h2 em{font-style:italic;color:var(--accent)}
.about-text p{color:var(--text-light);margin-bottom:16px;line-height:1.9}
.about-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4}
.about-img img{width:100%;height:100%;object-fit:cover}
.about-long{max-width:860px;margin:0 auto}
.about-long h2{margin-top:clamp(40px,40px + (60 - 40)*(100vw - 1000px)/(1920 - 1000),60px);margin-bottom:16px}
.about-long h2 em{font-style:italic;color:var(--accent)}
.about-long h3{margin-top:28px;margin-bottom:12px}
.about-long p{color:var(--text-light);margin-bottom:16px;line-height:1.9}
.about-long ul,.about-long ol{margin:0 0 20px 24px;color:var(--text-light);line-height:1.9}
.about-long li{margin-bottom:6px}
.about-long strong{color:var(--text)}
.wildlife-section{text-align:center;margin-bottom:clamp(60px,60px + (120 - 60)*(100vw - 1000px)/(1920 - 1000),120px)}
.wildlife-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px);margin-top:40px}
.wildlife-card{background:var(--offwhite);border-radius:var(--radius);padding:clamp(24px,24px + (40 - 24)*(100vw - 1000px)/(1920 - 1000),40px);text-align:center}
.wildlife-card i{font-size:32px;color:var(--accent);margin-bottom:16px}
.wildlife-card h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:10px}
.wildlife-card p{font-size:13px;color:var(--text-light);line-height:1.7}
.getting-section{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0;background:var(--offwhite)}
.getting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px);margin-top:40px}
.transport-card{background:var(--white);border-radius:var(--radius);padding:clamp(24px,24px + (40 - 24)*(100vw - 1000px)/(1920 - 1000),40px);border:1px solid var(--beige)}
.transport-card i{font-size:28px;color:var(--accent);margin-bottom:14px}
.transport-card h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:10px}
.transport-card p{font-size:13px;color:var(--text-light);line-height:1.7}
.faq-block{background:var(--offwhite);border-radius:var(--radius);padding:clamp(32px,32px + (48 - 32)*(100vw - 1000px)/(1920 - 1000),48px);margin-top:40px}
.faq-block h3{margin-top:20px;margin-bottom:8px;font-size:clamp(16px,16px + (20 - 16)*(100vw - 1000px)/(1920 - 1000),20px)}
.faq-block h3:first-child{margin-top:0}
.faq-block p{color:var(--text-light);line-height:1.9;margin-bottom:16px}

/* ── Best Time Page ── */
.bt-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.season-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,32px + (80 - 32)*(100vw - 1000px)/(1920 - 1000),80px);align-items:center;margin-bottom:clamp(60px,60px + (120 - 60)*(100vw - 1000px)/(1920 - 1000),120px)}
.season-block:nth-child(even){direction:rtl}
.season-block:nth-child(even)>*{direction:ltr}
.season-info h2{margin-bottom:8px}
.season-info h2 em{font-style:italic;color:var(--accent)}
.season-months-lg{font-size:13px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:2px;margin-bottom:16px}
.season-info p{color:var(--text-light);margin-bottom:14px;line-height:1.9}
.season-info strong{color:var(--text)}
.season-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3}
.season-img img{width:100%;height:100%;object-fit:cover}
.bt-tip{background:var(--offwhite);padding:clamp(40px,40px + (80 - 40)*(100vw - 1000px)/(1920 - 1000),80px);border-radius:var(--radius);text-align:center}
.bt-tip h3{margin-bottom:14px}
.bt-tip p{color:var(--text-light);max-width:600px;margin:0 auto;line-height:1.9}

/* ── Contact Page ── */
.contact-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,32px + (80 - 32)*(100vw - 1000px)/(1920 - 1000),80px)}
.contact-form label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--text-light);margin-bottom:6px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:12px 16px;border:2px solid var(--beige);border-radius:var(--radius);font-family:var(--font-body);font-size:14px;margin-bottom:20px;transition:border-color var(--transition);background:var(--white);color:var(--text)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}
.contact-form textarea{height:120px;resize:vertical}
.contact-form button{width:100%}
.contact-info{padding-top:12px}
.contact-info h3{margin-bottom:28px}
.contact-item{display:flex;gap:16px;margin-bottom:24px}
.contact-item i{width:44px;height:44px;border-radius:50%;border:2px solid var(--beige);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:16px;flex-shrink:0}
.contact-item h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px}
.contact-item p{font-size:13px;color:var(--text-light)}
.contact-item a{color:var(--accent)}

/* ── Operators Page ── */
.ops-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,16px + (32 - 16)*(100vw - 1000px)/(1920 - 1000),32px);margin-bottom:clamp(60px,60px + (120 - 60)*(100vw - 1000px)/(1920 - 1000),120px)}
.how-step{text-align:center;padding:clamp(24px,24px + (40 - 24)*(100vw - 1000px)/(1920 - 1000),40px);background:var(--offwhite);border-radius:var(--radius)}
.how-step__num{font-family:var(--font-heading);font-size:clamp(32px,32px + (52 - 32)*(100vw - 1000px)/(1920 - 1000),52px);color:var(--accent);margin-bottom:12px;font-weight:500}
.how-step h4{font-family:var(--font-body);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;margin-bottom:10px}
.how-step p{font-size:13px;color:var(--text-light);line-height:1.7}
.filter-bar{display:flex;gap:10px;justify-content:center;margin-bottom:clamp(32px,32px + (48 - 32)*(100vw - 1000px)/(1920 - 1000),48px);flex-wrap:wrap}
.filter-btn{padding:8px 24px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;border:2px solid var(--beige);border-radius:var(--radius);background:transparent;color:var(--text-light);cursor:pointer;transition:all var(--transition);font-family:var(--font-body)}
.filter-btn:hover,.filter-btn.active{background:var(--accent);color:var(--white);border-color:var(--accent)}
.operator-card{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--beige);border-radius:var(--radius);overflow:hidden;margin-bottom:28px;transition:box-shadow var(--transition)}
.operator-card:hover{box-shadow:0 4px 8px rgba(0,0,0,.16)}
.operator-logo-col{background:var(--offwhite);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;border-right:1px solid var(--beige)}
.op-initials{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:1.3rem;font-weight:500;color:var(--white);margin-bottom:14px}
.op-stars{color:var(--accent);font-size:13px;margin-bottom:8px}
.op-type-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent)}
.operator-content{padding:28px}
.operator-content h3{margin-bottom:4px}
.operator-content h3 a:hover{color:var(--accent)}
.op-location{font-size:12px;color:var(--text-light);margin-bottom:12px}
.op-desc{font-size:13px;color:var(--text-light);line-height:1.7;margin-bottom:16px}
.op-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.op-tags span{font-size:10px;padding:3px 10px;border:1px solid var(--beige);border-radius:4px;color:var(--text-light);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.op-stats{display:flex;border-top:1px solid var(--beige);border-bottom:1px solid var(--beige);margin-bottom:20px}
.op-stat{flex:1;text-align:center;padding:12px 8px;border-right:1px solid var(--beige)}
.op-stat:last-child{border-right:none}
.op-stat-val{font-family:var(--font-heading);font-size:18px;font-weight:500;color:var(--accent)}
.op-stat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-light)}
.op-ctas{display:flex;gap:10px}
.op-ctas .btn{padding:8px 24px;font-size:10px}
.op-verified{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--accent);margin-left:8px}
.join-section{background:var(--navy);padding:clamp(60px,60px + (120 - 60)*(100vw - 1000px)/(1920 - 1000),120px) 0;color:var(--white);text-align:center}
.join-section h2{margin-bottom:16px}
.join-section h2 em{color:var(--accent)}
.join-section p{opacity:.7;max-width:600px;margin:0 auto 32px;line-height:1.8}
.join-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:800px;margin:0 auto 40px;text-align:left}
.join-benefit{font-size:13px;display:flex;gap:8px;align-items:start}
.join-benefit i{color:var(--accent);margin-top:3px}

/* ── Legal Pages ── */
.legal-content{padding:clamp(60px,60px + (140 - 60)*(100vw - 1000px)/(1920 - 1000),140px) 0}
.legal-body{max-width:760px;margin:0 auto}
.legal-meta{font-size:12px;color:var(--text-light);margin-bottom:32px}
.legal-body h2{font-size:clamp(18px,18px + (24 - 18)*(100vw - 1000px)/(1920 - 1000),24px);margin-top:36px;margin-bottom:14px}
.legal-body p{color:var(--text-light);line-height:1.9;margin-bottom:16px}
.legal-body ul{margin:0 0 16px 24px;color:var(--text-light);line-height:1.9}
.legal-nav{display:flex;gap:20px;margin-top:40px;padding-top:24px;border-top:1px solid var(--beige)}
.legal-nav a{font-size:13px;font-weight:600;color:var(--accent)}

/* ═══════════════════════════════════════════════════════════
   12. ELEMENTOR COMPATIBILITY
   ═══════════════════════════════════════════════════════════ */

.elementor-section .container,
.elementor-widget-html .container {
  max-width: var(--container);
  margin: 0 auto;
}
.elementor-section { padding: 0; }
.elementor-widget-html { width: 100%; }

/* ═══════════════════════════════════════════════════════════
   13. RESPONSIVE
   ═══════════════════════════════════════════════════════════ */

/* ── Tablet & below (≤992px) ── */
@media (max-width: 992px) {
  :root { --container: 90%; }

  .header__nav, .header__cta { display: none; }
  .header__toggle { display: flex; }

  /* Homepage */
  .hero__content h1 { font-size: 32px; }
  .hero__content p { font-size: 15px; }
  .hero__ctas { gap: 12px; }
  .hero__ctas .btn { padding: 9px 32px; font-size: 11px; }
  .hero__scroll { bottom: 24px; }
  .hero__dots { bottom: 70px; }
  .destinations__grid { grid-template-columns: 1fr; gap: 24px; }
  .featured__grid { grid-template-columns: 1fr 1fr; }
  .feat-card { aspect-ratio: 2/3; }
  .about__grid { grid-template-columns: 1fr; }
  .about__img { max-height: 400px; }
  .stats__grid { grid-template-columns: repeat(2, 1fr); }
  .operators-teaser__grid { grid-template-columns: 1fr 1fr; }

  /* Footer */
  .footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer__bottom { flex-direction: column; gap: 12px; text-align: center; }
  .footer__bottom-links a { margin: 0 8px; }

  /* Newsletter */
  .newsletter__form { flex-direction: column; gap: 12px; }
  .newsletter__form input { border-right: 2px solid rgba(255,255,255,0.2); border-radius: var(--radius); }
  .newsletter__form button { border-radius: var(--radius); }

  /* Page-specific */
  .safari-layout { grid-template-columns: 1fr; }
  .safari-sidebar, .activity-layout > aside, .accom-sidebar, .sidebar { position: static; }
  .pkg-detail-body { grid-template-columns: 1fr; }
  .activities-grid { grid-template-columns: 1fr 1fr; }
  .activity-layout { grid-template-columns: 1fr; }
  .stay-grid { grid-template-columns: 1fr; }
  .accom-layout { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: 1fr 1fr; }
  .post-layout { grid-template-columns: 1fr; }
  .related-grid { grid-template-columns: 1fr 1fr; }
  .about-grid { grid-template-columns: 1fr; }
  .about-img { max-height: 400px; }
  .wildlife-grid, .getting-grid { grid-template-columns: 1fr 1fr; }
  .season-block, .season-block:nth-child(even) { grid-template-columns: 1fr; direction: ltr; }
  .contact-grid { grid-template-columns: 1fr; }
  .how-it-works { grid-template-columns: 1fr; }
  .operator-card { grid-template-columns: 1fr; }
  .operator-logo-col { border-right: none; border-bottom: 1px solid var(--beige); padding: 24px; }
  .join-benefits { grid-template-columns: 1fr; }

  /* Tables scroll horizontally */
  .content-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Sticky sidebars become static */
  .activity-layout > aside, .safari-layout > aside { position: static; }
}

/* ── Mobile (≤768px) ── */
@media (max-width: 768px) {
  :root { --container: 92%; }

  .header { padding: 14px 0; }
  .header.scrolled { padding: 10px 0; }
  .header__logo { font-size: 18px; }

  /* Hero */
  .hero { min-height: 500px; }
  .hero__content { bottom: 20%; padding: 0 20px; }
  .hero__content h1 { font-size: 28px; }
  .hero__ctas { flex-direction: column; align-items: center; gap: 10px; }
  .hero__ctas .btn { width: 100%; max-width: 280px; }

  /* Page hero */
  .page-hero { min-height: 280px; padding-bottom: 32px; }
  .page-hero h1 { font-size: 24px; }

  /* Grids to single column */
  .featured__grid { grid-template-columns: 1fr; }
  .activities-grid { grid-template-columns: 1fr; }
  .blog-grid { grid-template-columns: 1fr; }
  .related-grid { grid-template-columns: 1fr; }
  .operators-teaser__grid { grid-template-columns: 1fr; }
  .wildlife-grid, .getting-grid { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .about__features { grid-template-columns: 1fr 1fr; gap: 20px; }

  /* Buttons */
  .btn { padding: 10px 28px; font-size: 11px; letter-spacing: 1.5px; }

  /* Cards */
  .feat-card { aspect-ratio: 3/4; }
  .act-card { aspect-ratio: 3/4; }
  .blog-card { aspect-ratio: 3/4; }
  .dest-card { aspect-ratio: 4/3; }
  .lodge-card { aspect-ratio: 4/3; }

  /* Safari detail */
  .pkg-detail-hero { height: 220px; }
  .pkg-detail-label { bottom: 16px; left: 20px; }
  .pkg-detail-label h2 { font-size: 20px; }
  .pkg-detail-body { padding: 20px; }

  /* Operator card */
  .op-stats { flex-wrap: wrap; }
  .op-stat { flex: 1 1 40%; min-width: 100px; }
  .op-ctas { flex-direction: column; }
  .op-ctas .btn { width: 100%; text-align: center; }

  /* Mobile nav */
  .mobile-nav a { font-size: 20px; }
  .mobile-nav { gap: 20px; }

  /* Filter bar */
  .act-filter-bar, .filter-bar { gap: 8px; }
  .act-filter-btn, .filter-btn { padding: 6px 16px; font-size: 10px; }

  /* Contact */
  .contact-form button { padding: 14px; }

  /* Season blocks */
  .season-img { aspect-ratio: 16/9; }
}

/* ── Small mobile (≤480px) ── */
@media (max-width: 480px) {
  :root { --container: 94%; }

  body { font-size: 15px; }

  .hero__content h1 { font-size: 24px; }
  .hero__content p { font-size: 14px; max-width: 100%; }
  .hero__dots { bottom: 60px; gap: 8px; }
  .hero__scroll { display: none; }

  .page-hero h1 { font-size: 22px; }
  .page-hero__eyebrow { font-size: 11px; letter-spacing: 2px; }

  h2 { font-size: 22px; }
  h3 { font-size: 18px; }

  .subheading { font-size: 12px; letter-spacing: 1.5px; }

  /* Stats */
  .stats__grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .stats__number { font-size: 28px; }
  .stats__label { font-size: 11px; }

  /* About features 2-col still works on small */
  .about__features { gap: 16px; }
  .about__item-icon { width: 48px; height: 48px; font-size: 24px; }

  /* Key takeaways / tip boxes */
  .key-takeaways { padding: 16px; }
  .tip-box, .info-box, .warning-box { padding: 14px 16px; font-size: 13px; }

  /* Sidebar boxes */
  .quick-facts, .safari-quick, .safari-includes, .safari-price-box,
  .accom-price-box, .sidebar-cta, .sidebar-widget { padding: 20px; }

  /* Related cards */
  .related-act img, .other-safari-card img, .other-stay-card img { width: 64px; height: 48px; }

  /* Footer */
  .footer { padding: 40px 0; }
  .footer__social a { width: 36px; height: 36px; font-size: 13px; }

  /* Scroll to top */
  #scrollTop { width: 40px; height: 40px; font-size: 14px; bottom: 16px; right: 16px; }

  /* Breadcrumb */
  .breadcrumb { font-size: 11px; }
  .breadcrumb span { margin: 0 4px; }

  /* Post */
  .post-tags { flex-wrap: wrap; }
  .post-tags a { font-size: 10px; padding: 4px 10px; }

  /* Blockquotes */
  .content-blockquote { padding: 20px 16px 20px 28px; }
  .content-blockquote::before { font-size: 36px; left: 6px; }

  /* Join section */
  .join-benefits { gap: 14px; }
  .join-benefit { font-size: 12px; }
}

/* ── Prevent horizontal overflow globally ── */
html, body { overflow-x: hidden; }
