:root {
    --green: #1f3327;
    --green-dark: #101812;
    --sand: #f5eddd;
    --gold: #c99b4a;
    --gold-soft: #e3c278;
    --brown: #80613b;
    --text: #263026;
}

body {
    color: var(--text);
    background: #fff;
    font-family: Arial, Helvetica, sans-serif;
}

h1, h2, h3, h4, h5, .navbar-brand {
    font-family: Georgia, 'Times New Roman', serif;
}

.site-navbar {
    background: rgba(16, 24, 18, 0.98);
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.brand-logo {
    max-height: 54px;
    width: 210px;
    object-fit: contain;
    border-radius: 6px;
}

.footer-logo {
    max-width: 260px;
    width: 100%;
    border-radius: 8px;
}

.navbar .nav-link.active,
.navbar .nav-link:hover,
.dropdown-item.active,
.dropdown-item:hover {
    color: var(--gold-soft) !important;
}

.dropdown-menu-dark {
    background: #141f17;
    border: 1px solid rgba(201,155,74,.28);
}

.btn-gold {
    background: var(--gold);
    border-color: var(--gold);
    color: #121f18;
    font-weight: 700;
}

.btn-gold:hover {
    background: #b88a3a;
    border-color: #b88a3a;
    color: #121f18;
}

.btn-outline-gold {
    border: 1px solid var(--gold);
    color: var(--gold);
}

.btn-outline-gold:hover {
    background: var(--gold);
    color: var(--green-dark);
}

.hero {
    min-height: 78vh;
    background:
        linear-gradient(rgba(16,24,18,.50), rgba(16,24,18,.82)),
        url('../images/hero-lodge.jpeg') center/cover no-repeat;
    color: #fff;
    display: flex;
    align-items: center;
}

.page-hero {
    min-height: 44vh;
    background:
        linear-gradient(rgba(16,24,18,.48), rgba(16,24,18,.82)),
        var(--page-bg, url('../images/campfire-guests.jpeg')) center/cover no-repeat;
    color: #fff;
    display: flex;
    align-items: center;
}

.hero h1, .page-hero h1 {
    font-size: clamp(2.4rem, 5vw, 5rem);
    line-height: 1.05;
}

.section-pad { padding: 70px 0; }
.bg-sand { background: var(--sand); }
.text-gold { color: var(--gold); }

.feature-card,
.content-card,
.package-card,
.species-card,
.gallery-card {
    border: 0;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 14px 40px rgba(18,31,24,.10);
    height: 100%;
}

.feature-card {
    padding: 28px;
    background: #fff;
}

.card-img-top,
.article-card-img {
    height: 230px;
    object-fit: cover;
}

.gallery-card img {
    width: 100%;
    height: 250px;
    object-fit: contain;
    object-position: center;
    background: var(--sand);
    transition: none;
}

.gallery-card:hover img { transform: none; }

.badge-safari {
    background: rgba(201,155,74,.18);
    color: #6d4d1f;
    border: 1px solid rgba(201,155,74,.35);
}

.hero .badge-safari,
.page-hero .badge-safari {
    color: #ffe6ad;
    border-color: rgba(255,230,173,.45);
}

.cta-band {
    background: linear-gradient(135deg, var(--green-dark), var(--green));
    color: #fff;
    border-radius: 26px;
    padding: 48px;
}

.section-kicker {
    text-transform: uppercase;
    letter-spacing: .13em;
    font-weight: 700;
    color: var(--gold);
    font-size: .78rem;
}

.safari-list {
    padding-left: 0;
    list-style: none;
}

.safari-list li {
    position: relative;
    padding-left: 1.7rem;
    margin-bottom: .65rem;
}

.safari-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--gold);
    font-weight: 700;
}

.content-section h3 {
    color: var(--green);
    margin-bottom: 1rem;
}

.content-section {
    border-bottom: 1px solid rgba(31,51,39,.12);
    padding-bottom: 1.2rem;
}

.footer { background: var(--green-dark); color: #e7dfd0; }
.footer a { color: var(--gold-soft); text-decoration: none; }
.footer a:hover { text-decoration: underline; }
.footer-links { list-style: none; padding-left: 0; margin: 0; }
.footer-links li { margin-bottom: .35rem; }

.table thead th { background: var(--green); color: #fff; }

.admin-sidebar { min-height: 100vh; background: var(--green-dark); }
.admin-sidebar a { color: #e7dfd0; display: block; padding: 10px 14px; border-radius: 8px; text-decoration: none; }
.admin-sidebar a:hover,
.admin-sidebar a.active { background: rgba(201,155,74,.18); color: var(--gold); }
.form-help { font-size: .875rem; color: #6c757d; }

@media (max-width: 1199px) {
    .brand-logo { width: 190px; max-height: 48px; }
}
@media (max-width: 767px) {
    .section-pad { padding: 45px 0; }
    .cta-band { padding: 30px; }
    .gallery-card img { height: 190px; }
    .brand-logo { width: 170px; }
}


/* Package detail page: prevent includes/excludes cards from stretching over the footer */
.package-detail-side .feature-card {
    height: auto;
}


/* Destination detail: use the selected destination photo as a larger hero background */
.destination-detail-hero {
    min-height: 64vh;
    background:
        linear-gradient(90deg, rgba(16,24,18,.82), rgba(16,24,18,.45)),
        var(--page-bg, url('../images/hero-lodge.jpeg')) center/cover no-repeat;
}

.destination-detail-hero .lead {
    max-width: 820px;
    text-shadow: 0 2px 10px rgba(0,0,0,.35);
}

.destination-detail-hero h1 {
    text-shadow: 0 3px 14px rgba(0,0,0,.45);
}

/* Destination detail hero: background image is set directly by destination_detail.php from the selected admin destination photo. */
.destination-detail-hero {
    min-height: 64vh;
}


/* Destination cards: show square/portrait uploaded destination images without cutting them off */
.destination-card-img {
    width: 100%;
    height: 260px;
    object-fit: contain;
    object-position: center;
    background: var(--sand);
    padding: 8px;
}

@media (max-width: 767px) {
    .destination-card-img {
        height: 220px;
    }
}
