/* Luxury theme utilities and effects */
:root {
  --gold: #FFD700;
  --ink: #0a0a0a;
  --charcoal: #1C1C1C;
}

/* Navbar states */
#navbar { background: linear-gradient(to bottom, rgba(0,0,0,0.35), transparent); }
#navbar.nav-solid { background: rgba(255,215,0,0.95); backdrop-filter: saturate(180%) blur(6px); border-bottom: 1px solid rgba(0,0,0,0.1); }
.nav-solid .nav-link { color: #000 !important; }
.nav-solid .nav-link:hover { color: #222 !important; }
.nav-solid .cta-gold { background: #000; color: var(--gold); box-shadow: 0 10px 24px rgba(0,0,0,.35); }

.nav-link { color: rgba(255,255,255,0.75); transition: color .2s ease; }
.nav-link:hover { color: white; }

/* Buttons */
.cta-gold { background: var(--gold); color: #000; padding: 0.75rem 1.25rem; border-radius: 9999px; font-weight: 600; box-shadow: 0 10px 30px rgba(255,215,0,.25); transition: transform .2s ease, box-shadow .2s ease; }
.cta-gold:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(255,215,0,.35); }
.btn-ghost { background: rgba(255,255,255,0.08); color: #fff; padding: 0.75rem 1.25rem; border-radius: 9999px; border: 1px solid rgba(255,255,255,0.16); transition: background .2s ease, transform .2s ease; }
.btn-ghost:hover { background: rgba(255,255,255,0.14); transform: translateY(-2px); }

/* Glassmorphism */
.glass { background: radial-gradient(120% 120% at 0% 0%, rgba(255,255,255,0.08), rgba(255,255,255,0.02)); border: 1px solid rgba(255,255,255,0.12); backdrop-filter: blur(10px); }

/* Preloader */
.km-spinner { width: 56px; height: 56px; border-radius: 9999px; border: 2px solid rgba(255,255,255,0.15); border-top-color: var(--gold); animation: spin 1s linear infinite; box-shadow: 0 0 24px rgba(255,215,0,0.45); }
@keyframes spin { to { transform: rotate(360deg); } }

/* Fields */
.field { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); color: #fff; border-radius: 16px; padding: 0.9rem 1rem; outline: none; transition: border .2s ease, box-shadow .2s ease; }
.field:focus { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(255,215,0,0.15); }

/* Timeline */
.timeline { display: grid; gap: 1rem; }
.tl-item { position: relative; padding-left: 1rem; }
.tl-dot { position: absolute; left: -7px; top: 0.4rem; width: 10px; height: 10px; background: var(--gold); border-radius: 9999px; box-shadow: 0 0 10px rgba(255,215,0,0.6); }
.tl-card { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); backdrop-filter: blur(8px); padding: 0.9rem 1rem; border-radius: 14px; }

/* Pricing */
.price-card { border-radius: 22px; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)); box-shadow: 0 20px 40px rgba(0,0,0,.35); transition: transform .25s ease, box-shadow .25s ease; }
.price-card:hover { transform: translateY(-6px); box-shadow: 0 28px 60px rgba(0,0,0,.45), 0 0 30px rgba(255,215,0,.25); }
.price-head { background: rgba(255,215,0,0.1); color: var(--gold); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 1rem; text-align: center; }
.price-body { padding: 1.25rem; }
.price-value { font-size: 2.35rem; font-weight: 800; letter-spacing: -0.02em; margin: .25rem 0 .5rem; }
.price-value .currency { color: var(--gold); margin-right: .15rem; font-size: 1.2rem; }
.price-features { color: rgba(255,255,255,0.75); font-size: .95rem; display: grid; gap: .4rem; margin: .75rem 0 1rem; }
.price-ctas { display: grid; gap: .5rem; }

/* Testimonials Carousel */
.carousel { overflow: hidden; position: relative; }
.carousel-track { display: flex; gap: 1rem; transition: transform .5s ease; }
.testimonial { min-width: 80%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 18px; padding: 1rem; }
.testimonial .stars { color: var(--gold); letter-spacing: .1em; margin-bottom: .35rem; }
.testimonial .author { color: rgba(255,255,255,0.7); font-size: .9rem; margin-top: .5rem; }

/* Logos marquee */
.logo-marquee { position: relative; overflow: hidden; }
.logo-marquee .track { display: inline-flex; gap: 1rem; white-space: nowrap; animation: marquee 20s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.logo-pill { display: inline-flex; align-items: center; justify-content: center; padding: .6rem 1rem; border-radius: 9999px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.85); }

/* Underline animation */
.underline-anim { position: relative; }
.underline-anim::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px; background: var(--gold); transition: right .3s ease; }
.underline-anim:hover::after { right: 0; }

/* Social */
.soc { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); }
.soc-float { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); box-shadow: 0 10px 30px rgba(0,0,0,.35); transition: transform .2s ease; }
.soc-float:hover { transform: translateY(-3px) scale(1.03); }
/* Icon gold spark */
.icon-gold { width: 14px; height: 14px; border-radius: 9999px; background: radial-gradient(circle at 40% 40%, #FFF3A3, #FFD700 60%, #B99600); box-shadow: 0 0 18px rgba(255,215,0,0.55); display: inline-block; }

/* Back to top */
#backToTop.show { display: grid !important; }

/* Counters look smoother with tabular nums */
.counter { font-variant-numeric: tabular-nums; }

/* Image framing to avoid face crops */
.framed-img {
  object-fit: contain !important;
  background: rgba(255,255,255,0.06);
}

/* Tour flag backgrounds */
.tour-card { position: relative; overflow: hidden; box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.tour-card::before, .tour-card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; }
/* Increase base flag visibility */
.tour-card::before { opacity: 0.5; filter: saturate(1.35) brightness(1.05); }
/* Keep content readable while letting color show through */
.tour-card::after { background: radial-gradient(120% 120% at 50% -10%, rgba(0,0,0,0.0), rgba(0,0,0,0.35)); }

.flag-default::before { background: linear-gradient(135deg, rgba(255,215,0,0.15), rgba(0,0,0,0.2)); }
.flag-kenya::before { background: linear-gradient(180deg,#000000 0 33%,#ffffff 33% 36%,#c8102e 36% 66%,#ffffff 66% 69%,#006938 69% 100%); }
.flag-uganda::before { background: linear-gradient(180deg,#000000 0 16.66%, #ffdd00 16.66% 33.33%, #d00000 33.33% 50%, #000000 50% 66.66%, #ffdd00 66.66% 83.33%, #d00000 83.33% 100%); }
.flag-south-africa::before { background: linear-gradient(135deg, #007a4d 0 32%, #ffb612 32% 35%, #000000 35% 47%, #de3831 47% 74%, #ffffff 74% 77%, #0033a0 77% 100%); }
.flag-ghana::before { background: linear-gradient(180deg, #ce1126 0 33.33%, #fcd116 33.33% 66.66%, #006b3f 66.66% 100%); }
.flag-nigeria::before { background: linear-gradient(90deg, #008753 0 33.33%, #ffffff 33.33% 66.66%, #008753 66.66% 100%); }
.flag-zambia::before { background: linear-gradient(90deg, #198a00 0 82%, #ef7d00 82% 100%); }
.flag-zimbabwe::before { background: linear-gradient(180deg,#006400 0 16.66%,#ffd700 16.66% 33.33%,#de2010 33.33% 50%,#000000 50% 66.66%,#de2010 66.66% 83.33%,#006400 83.33% 100%); }
.flag-tanzania::before { background: linear-gradient(135deg, #1eb53a 0 44%, #f7e017 44% 49%, #000000 49% 51%, #f7e017 51% 56%, #00a3dd 56% 100%); }
.flag-rwanda::before { background: linear-gradient(180deg, #00a3e0 0 50%, #f7df00 50% 65%, #20603d 65% 100%); }
