.logo-text{
    font-family: "marigny", sans-serif;
    font-weight: 900;
    font-style: italic;
    font-size: 2.3rem;
    color: #50483d;      /* Main Safari Earth Tone */
    line-height: 1;
    letter-spacing: 0;
}

/* =========================================================
   KRUGER PARK HOSTEL THEME
   Bootstrap 5 Colour System Override
   Earthy Safari / Bushveld Brand Palette
   ========================================================= */
html {
    scroll-behavior: smooth;
}

img {
    max-width: 100%;
    height: auto;
}

svg {
    max-width: 100%;
    height: auto;
}
/* ================================
   CORE COLOUR SYSTEM
   ================================ */

:root {
  /* Main Safari Earth Tone */
  --bs-primary: #50483d;
  --bs-primary-rgb: 80, 72, 61;

  /* Marloth Bushveld Green */
  --bs-secondary: #6f8a63;
  --bs-secondary-rgb: 111, 138, 99;

  /* Nature Green */
  --bs-success: #5f8750;
  --bs-success-rgb: 95, 135, 80;

  /* Warm Brick / Alert */
  --bs-danger: #a65a4a;
  --bs-danger-rgb: 166, 90, 74;

  /* Safari Sunset Gold */
  --bs-warning: #c9a24b;
  --bs-warning-rgb: 201, 162, 75;

  /* Muted River Blue */
  --bs-info: #6c9fa3;
  --bs-info-rgb: 108, 159, 163;

  /* Brand Accent */
  --kph-accent: #b8a685;
  --kph-accent-rgb: 184, 166, 133;

  /* Darker Hover States */
  --kph-primary-dark: #40392f;
  --kph-secondary-dark: #5d7352;
  --kph-success-dark: #4f7143;
  --kph-danger-dark: #8f4d40;
  --kph-warning-dark: #b18d3f;
  --kph-info-dark: #5b888c;

  /* Softer Hover States */
  --kph-primary-soft: #b8a685;
  --kph-secondary-soft: #8faa80;
  --kph-success-soft: #7ea16f;
  --kph-danger-soft: #c37463;
  --kph-warning-soft: #e0bb63;
  --kph-info-soft: #88b7bb;

  /* General Theme Helpers */
  --kph-body-bg: #f8f5ef;
  --kph-card-bg: #ffffff;
  --kph-muted-heading: #6c675f;
  --kph-border-soft: #ded6c8;
}


/* ================================
   BODY / GENERAL BASE
   ================================ */

body {
  background-color: var(--kph-body-bg);
  color: #2f2a24;
}

::selection {
  background-color: var(--kph-accent);
  color: #fff;
}


/* ================================
   BUTTONS
   ================================ */

/* PRIMARY BUTTON */
.btn.btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus {
  background-color: var(--kph-primary-dark);
  border-color: var(--kph-primary-dark);
  color: #fff;
}

.btn.btn-primary:active,
.btn.btn-primary.active,
.show > .btn.btn-primary.dropdown-toggle {
  background-color: var(--kph-primary-soft);
  border-color: var(--kph-primary-soft);
  color: #fff;
}


/* SECONDARY BUTTON */
.btn.btn-secondary {
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
  color: #fff;
}

.btn.btn-secondary:hover,
.btn.btn-secondary:focus {
  background-color: var(--kph-secondary-dark);
  border-color: var(--kph-secondary-dark);
  color: #fff;
}

.btn.btn-secondary:active,
.btn.btn-secondary.active,
.show > .btn.btn-secondary.dropdown-toggle {
  background-color: var(--kph-secondary-soft);
  border-color: var(--kph-secondary-soft);
  color: #fff;
}


/* SUCCESS BUTTON */
.btn.btn-success {
  background-color: var(--bs-success);
  border-color: var(--bs-success);
  color: #fff;
}

.btn.btn-success:hover,
.btn.btn-success:focus {
  background-color: var(--kph-success-dark);
  border-color: var(--kph-success-dark);
  color: #fff;
}

.btn.btn-success:active,
.btn.btn-success.active,
.show > .btn.btn-success.dropdown-toggle {
  background-color: var(--kph-success-soft);
  border-color: var(--kph-success-soft);
  color: #fff;
}


/* DANGER BUTTON */
.btn.btn-danger {
  background-color: var(--bs-danger);
  border-color: var(--bs-danger);
  color: #fff;
}

.btn.btn-danger:hover,
.btn.btn-danger:focus {
  background-color: var(--kph-danger-dark);
  border-color: var(--kph-danger-dark);
  color: #fff;
}

.btn.btn-danger:active,
.btn.btn-danger.active,
.show > .btn.btn-danger.dropdown-toggle {
  background-color: var(--kph-danger-soft);
  border-color: var(--kph-danger-soft);
  color: #fff;
}


/* WARNING BUTTON */
.btn.btn-warning {
  background-color: var(--bs-warning);
  border-color: var(--bs-warning);
  color: #212529;
}

.btn.btn-warning:hover,
.btn.btn-warning:focus {
  background-color: var(--kph-warning-dark);
  border-color: var(--kph-warning-dark);
  color: #212529;
}

.btn.btn-warning:active,
.btn.btn-warning.active,
.show > .btn.btn-warning.dropdown-toggle {
  background-color: var(--kph-warning-soft);
  border-color: var(--kph-warning-soft);
  color: #212529;
}


/* INFO BUTTON */
.btn.btn-info {
  background-color: var(--bs-info);
  border-color: var(--bs-info);
  color: #fff;
}

.btn.btn-info:hover,
.btn.btn-info:focus {
  background-color: var(--kph-info-dark);
  border-color: var(--kph-info-dark);
  color: #fff;
}

.btn.btn-info:active,
.btn.btn-info.active,
.show > .btn.btn-info.dropdown-toggle {
  background-color: var(--kph-info-soft);
  border-color: var(--kph-info-soft);
  color: #fff;
}


/* ================================
   OUTLINE BUTTONS
   ================================ */

/* OUTLINE PRIMARY */
.btn.btn-outline-primary {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  background-color: transparent;
}

.btn.btn-outline-primary:hover,
.btn.btn-outline-primary:focus {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.btn.btn-outline-primary:active,
.btn.btn-outline-primary.active {
  color: #fff;
  background-color: var(--kph-primary-soft);
  border-color: var(--kph-primary-soft);
}


/* OUTLINE SECONDARY */
.btn.btn-outline-secondary {
  color: var(--bs-secondary);
  border-color: var(--bs-secondary);
  background-color: transparent;
}

.btn.btn-outline-secondary:hover,
.btn.btn-outline-secondary:focus {
  color: #fff;
  background-color: var(--bs-secondary);
  border-color: var(--bs-secondary);
}

.btn.btn-outline-secondary:active,
.btn.btn-outline-secondary.active {
  color: #fff;
  background-color: var(--kph-secondary-soft);
  border-color: var(--kph-secondary-soft);
}


/* OUTLINE SUCCESS */
.btn.btn-outline-success {
  color: var(--bs-success);
  border-color: var(--bs-success);
  background-color: transparent;
}

.btn.btn-outline-success:hover,
.btn.btn-outline-success:focus {
  color: #fff;
  background-color: var(--bs-success);
  border-color: var(--bs-success);
}


/* OUTLINE DANGER */
.btn.btn-outline-danger {
  color: var(--bs-danger);
  border-color: var(--bs-danger);
  background-color: transparent;
}

.btn.btn-outline-danger:hover,
.btn.btn-outline-danger:focus {
  color: #fff;
  background-color: var(--bs-danger);
  border-color: var(--bs-danger);
}


/* OUTLINE WARNING */
.btn.btn-outline-warning {
  color: var(--bs-warning);
  border-color: var(--bs-warning);
  background-color: transparent;
}

.btn.btn-outline-warning:hover,
.btn.btn-outline-warning:focus {
  color: #212529;
  background-color: var(--bs-warning);
  border-color: var(--bs-warning);
}


/* OUTLINE INFO */
.btn.btn-outline-info {
  color: var(--bs-info);
  border-color: var(--bs-info);
  background-color: transparent;
}

.btn.btn-outline-info:hover,
.btn.btn-outline-info:focus {
  color: #fff;
  background-color: var(--bs-info);
  border-color: var(--bs-info);
}


/* ================================
   TEXT COLOURS
   ================================ */

.text-primary {
  color: var(--bs-primary) !important;
}

.text-secondary {
  color: var(--bs-secondary) !important;
}

.text-success {
  color: var(--bs-success) !important;
}

.text-danger {
  color: var(--bs-danger) !important;
}

.text-warning {
  color: var(--bs-warning) !important;
}

.text-info {
  color: var(--bs-info) !important;
}


/* ================================
   MUTED HEADING UTILITY
   Useful for h4 class="h6 ..."
   ================================ */

.text-muted-heading {
  color: var(--kph-muted-heading) !important;
  letter-spacing: 0.03em;
  font-weight: 600;
}


/* Optional uppercase muted section label */
.text-section-label {
  color: var(--kph-muted-heading) !important;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
}


/* ================================
   BACKGROUNDS
   ================================ */

.bg-primary {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}

.bg-secondary {
  background-color: var(--bs-secondary) !important;
  color: #fff !important;
}

.bg-success {
  background-color: var(--bs-success) !important;
  color: #fff !important;
}

.bg-danger {
  background-color: var(--bs-danger) !important;
  color: #fff !important;
}

.bg-warning {
  background-color: var(--bs-warning) !important;
  color: #212529 !important;
}

.bg-info {
  background-color: var(--bs-info) !important;
  color: #fff !important;
}


/* Soft brand backgrounds */
.bg-kph-light {
  background-color: var(--kph-body-bg) !important;
}

.bg-kph-accent {
  background-color: var(--kph-accent) !important;
  color: #fff !important;
}

.bg-kph-soft-green {
  background-color: #eef3ea !important;
}

.bg-kph-soft-brown {
  background-color: #f3eee6 !important;
}

.bg-kph-soft-gold {
  background-color: #f7efd9 !important;
}


/* ================================
   BORDERS
   ================================ */

.border-primary {
  border-color: var(--bs-primary) !important;
}

.border-secondary {
  border-color: var(--bs-secondary) !important;
}

.border-success {
  border-color: var(--bs-success) !important;
}

.border-danger {
  border-color: var(--bs-danger) !important;
}

.border-warning {
  border-color: var(--bs-warning) !important;
}

.border-info {
  border-color: var(--bs-info) !important;
}

.border-kph-soft {
  border-color: var(--kph-border-soft) !important;
}

/* ================================
   CARDS
   ================================ */

.card {
  background-color: var(--kph-card-bg);
  border-color: var(--kph-border-soft);
}

.card-header.bg-primary,
.card-header.bg-secondary,
.card-header.bg-success,
.card-header.bg-danger,
.card-header.bg-info {
  color: #fff !important;
}

.card-header.bg-warning {
  color: #212529 !important;
}


/* ================================
   BADGES
   ================================ */

.badge.bg-primary,
.badge.bg-secondary,
.badge.bg-success,
.badge.bg-danger,
.badge.bg-info {
  color: #fff !important;
}

.badge.bg-warning {
  color: #212529 !important;
}


/* ================================
   ALERTS
   Theme-aligned alert styling
   ================================ */

.alert-primary {
  background-color: #f3eee6;
  border-color: var(--kph-accent);
  color: var(--bs-primary);
}

.alert-secondary {
  background-color: #eef3ea;
  border-color: var(--bs-secondary);
  color: #42553b;
}

.alert-success {
  background-color: #edf4e9;
  border-color: var(--bs-success);
  color: #3f5d35;
}

.alert-warning {
  background-color: #f7efd9;
  border-color: var(--bs-warning);
  color: #5f4b1d;
}

.alert-danger {
  background-color: #f4e6e2;
  border-color: var(--bs-danger);
  color: #703b31;
}

.alert-info {
  background-color: #e8f2f3;
  border-color: var(--bs-info);
  color: #3c6669;
}


/* ================================
   FORM FOCUS STATES
   ================================ */

.form-control:focus,
.form-select:focus {
  border-color: var(--kph-accent);
  box-shadow: 0 0 0 0.25rem rgba(var(--kph-accent-rgb), 0.25);
}


/* ================================
   ACCORDIONS
   ================================ */

.accordion-button:not(.collapsed) {
  background-color: #f3eee6;
  color: var(--bs-primary);
}

.accordion-button:focus {
  border-color: var(--kph-accent);
  box-shadow: 0 0 0 0.25rem rgba(var(--kph-accent-rgb), 0.25);
}


/* ================================
   LIST GROUPS
   ================================ */

.list-group-item.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}


/* ================================
   PAGINATION
   ================================ */

.page-link {
  color: var(--bs-primary);
}

.page-link:hover,
.page-link:focus {
  color: #fff;
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}


/* ================================
   PROGRESS BARS
   ================================ */

.progress-bar {
  background-color: var(--bs-primary);
}


/* ================================
   TABLES
   ================================ */

.table-primary {
  --bs-table-bg: #f3eee6;
  --bs-table-border-color: #ded6c8;
  --bs-table-striped-bg: #eee6da;
  --bs-table-striped-color: #2f2a24;
  --bs-table-active-bg: #e8ddcf;
  --bs-table-active-color: #2f2a24;
  --bs-table-hover-bg: #ebe1d4;
  --bs-table-hover-color: #2f2a24;
  color: #2f2a24;
}

.table-secondary {
  --bs-table-bg: #eef3ea;
  --bs-table-border-color: #d5dfcf;
  --bs-table-striped-bg: #e5eddf;
  --bs-table-striped-color: #2f2a24;
  --bs-table-active-bg: #dce8d6;
  --bs-table-active-color: #2f2a24;
  --bs-table-hover-bg: #e0ead9;
  --bs-table-hover-color: #2f2a24;
  color: #2f2a24;
}


/* ================================
   FOOTER SAFETY
   Optional: keeps footer links readable
   ================================ */

footer a:not(.btn) {
  color: inherit;
  text-decoration: none;
}

footer a:not(.btn):hover,
footer a:not(.btn):focus {
  color: var(--kph-accent);
  text-decoration: underline;
}


/* ================================
   ACCESSIBILITY / FOCUS VISIBILITY
   ================================ */

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus-visible,
.form-select:focus-visible {
  outline: 3px solid rgba(var(--kph-accent-rgb), 0.55);
  outline-offset: 2px;
}


/* ================================
   UTILITY CLASSES
   ================================ */

.kph-shadow-soft {
  box-shadow: 0 0.5rem 1.5rem rgba(47, 42, 36, 0.08);
}

.kph-rounded {
  border-radius: 1rem;
}

.kph-accent-line {
  border-left: 4px solid var(--kph-accent);
  padding-left: 1rem;
}

.kph-earth-line {
  border-left: 4px solid var(--bs-primary);
  padding-left: 1rem;
}

.kph-green-line {
  border-left: 4px solid var(--bs-secondary);
  padding-left: 1rem;
}

/* ================================
   CONTENT LINKS ONLY
   Excludes buttons, nav, dropdowns,
   pagination and other Bootstrap UI.
   ================================ */

main a:not(.btn),
article a:not(.btn),
.card-body a:not(.btn),
.blog-content a:not(.btn),
.page-content a:not(.btn) {
    color: var(--bs-primary);
    font-weight: 500;
    text-decoration: none;
}

main a:not(.btn):visited,
article a:not(.btn):visited,
.card-body a:not(.btn):visited,
.blog-content a:not(.btn):visited,
.page-content a:not(.btn):visited {
    color: var(--bs-primary);
}

main a:not(.btn):hover,
main a:not(.btn):focus,
article a:not(.btn):hover,
article a:not(.btn):focus,
.card-body a:not(.btn):hover,
.card-body a:not(.btn):focus,
.blog-content a:not(.btn):hover,
.blog-content a:not(.btn):focus,
.page-content a:not(.btn):hover,
.page-content a:not(.btn):focus {
    color: var(--kph-accent);
    text-decoration: underline;
}

main a:not(.btn):active,
article a:not(.btn):active,
.card-body a:not(.btn):active,
.blog-content a:not(.btn):active,
.page-content a:not(.btn):active {
    color: var(--bs-secondary);
}
/* ================================
   BUTTON TEXT PROTECTION
   Prevent visited-link colours
   ================================ */

.btn,
.btn:visited,
.btn:hover,
.btn:focus,
.btn:active {
    text-decoration: none;
}

/* Dark buttons */
.btn-primary,
.btn-primary:visited,
.btn-secondary,
.btn-secondary:visited,
.btn-success,
.btn-success:visited,
.btn-danger,
.btn-danger:visited,
.btn-info,
.btn-info:visited {
    color: #fff !important;
}

/* Light buttons */
.btn-warning,
.btn-warning:visited {
    color: #212529 !important;
}

.site-header .nav-link {
    color: var(--bs-primary);
    font-weight: 600;
    letter-spacing: .04em;
    font-size: .92rem;
    transition: all .2s ease;
}

.site-header .nav-link:hover,
.site-header .nav-link:focus,
.site-header .dropdown-toggle:hover {
    color: var(--bs-secondary) !important;
}

.site-header .nav-item {
    position: relative;
}
.site-header .nav-link::after {
    content: "";
    position: absolute;
    left: .5rem;
    right: .5rem;
    bottom: 0;
    height: 2px;
    background: var(--kph-accent);
    transform: scaleX(0);
    transition: transform .25s ease;
}

.site-header .nav-link:hover::after,
.site-header .nav-link.active::after {
    transform: scaleX(1);
}
.dropdown-menu {
    border: 1px solid var(--kph-border-soft);
    border-radius: .75rem;
    box-shadow: 0 .75rem 2rem rgba(47,42,36,.10);
    padding: .75rem 0;
}

.dropdown-header {
    color: var(--bs-secondary);
    font-weight: 700;
}

.dropdown-item {
    color: var(--bs-primary);
    padding: .5rem 1.25rem;
}

.dropdown-item:hover {
    background-color: #f3eee6;
    color: var(--bs-secondary);
}
.site-header .language-switch {
    background: #f3eee6;
    border-radius: 50rem;
    padding: .4rem .9rem;
}
.offcanvas {
    background-color: var(--kph-body-bg);
}

.offcanvas-header {
    border-bottom: 1px solid var(--kph-border-soft);
}

.offcanvas .nav-link {
    color: var(--bs-primary);
    font-size: 1rem;
    padding: .75rem 0;
}

.offcanvas .dropdown-menu {
    background: transparent;
    border: none;
    box-shadow: none;
}
/* ================================
   WHATSAPP FLOAT BUTTON
   ================================ */

.whatsapp-float {
  position: fixed !important;
  right: 20px !important;
  bottom: 20px !important;

  width: 50px !important;
  height: 50px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  background-color: #075E54 !important;
  border-radius: 50% !important;

  z-index: 2147483647 !important;

  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28) !important;
  font-size: 1.5rem;
  color: #FFFFFF !important;
}

.whatsapp-float:hover {
  background-color: #FFFFFF !important;
  color: #075E54 !important;
  transform: scale(1.06) !important;
}


/* Mobile */
@media (max-width: 768px) {
  .whatsapp-float {
    right: 16px !important;
    bottom: 16px !important;
    width: 46px !important;
    height: 46px !important;
	font-size: 1.5rem;
	color: #FFFFFF !important;
  }
}
