        body {
            /*background: #f0f8ff; */
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            font-family: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
        }
        header {
            background-color: #007bff; /* bootstrap blue */
            color: white;
            padding: 1rem 0;
            text-align: center;
        }
        footer {
            margin-top: auto;
            background: #343a40;
            color: #ccc;
            text-align: center;
            padding: 0.5rem;
            font-size: 0.9rem;
        }

footer a {
  color: #f8f9fa !important;
  text-decoration: none;
  transition: color 0.2s ease, text-decoration 0.2s ease;
}

footer a:hover {
  color: #0d6efd !important;
  text-decoration: underline;
}


        .form-section {
            background: white;
            padding: 1.5rem;
            margin-top: 0;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
        }

.hotel-preview {
    max-height: 300px;
    width: auto;
    height: auto;
    display: block;
    margin: 0 auto;
}


.navbar {
  min-height: 3.2rem;
  align-items: center;
}

.navbar .nav-link {
    color: #ffffff !important; /* Set to bright white */
    font-weight: bold;         /* Makes the text bolder */
    font-size: 1rem;           /* Adjust font size if necessary */
}

.navbar .nav-link:hover {
    color: #f8f9fa;            /* Slightly lighter shade on hover */
} 

{#
section + section {
  margin-top: 2rem;
}
#}

.container {
  max-width: 1000px;
}

.navbar-spacer {
  margin-top: 100px !important; /* Match navbar height */
}

.slogan {
  align-self: flex-start;
  padding-left: 10px;
}

/* Increase icon slightly without distorting */
.logo-icon {
  height: 2.3rem;
  margin-right: 0.5rem;
  flex-shrink: 0;
}

#results {
  scroll-margin-top: 90px; /* or tweak based on navbar height */
}

#discuss-textarea, .discuss-textarea {
  border: 1px solid black;
  background-color: ivory;
  padding: 10px;
  border-radius: 6px;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
}

.navbar .ms-auto {
  white-space: nowrap;
}

.auth-links-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
/*
.carousel-inner img {
    max-height: 400px;
    object-fit: cover;
}

.carousel-item img {
  max-height: 500px;
  object-fit: contain;
  margin: auto;
}
*/

.carousel-img-container {
  height: 480px;
  overflow: hidden;
  background: #f8f9fa;
  display: flex;
  justify-content: center;
  align-items: center;
}

.carousel-img-container img {
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}


.logo-text {
  font-size: 1.8rem;
}

.logo-subtext {
  font-size: 0.6rem;
  color: red;
}

.report-popup {
  display: none;
  position: fixed;
  top: 30%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fff;
  border: 2px solid #dc3545;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  border-radius: 10px;
  padding: 20px;
  min-width: 300px;
  z-index: 1050;
}


.vote-btn.btn-outline-secondary {
  border: 1px solid #6c757d; /* Bootstrap’s outline-secondary border */
}

.vote-btn.btn-trust-low {
    background-color: #ffa07a !important;
    color: black !important;
}
.vote-btn.btn-trust-medium {
    background-color: #ffd966 !important;
    color: black !important;
}
.vote-btn.btn-trust-high {
    background-color: #90ee90 !important;
    color: black !important;
}
.vote-btn.btn-trust-zero {
    background-color: #ff4d4d !important;
    color: white !important;
}


.scroll-fade-wrapper::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 30px;
  height: 100%;
  background: linear-gradient(to right, transparent, #f8f9fa);
  pointer-events: none;
}

.recent-search-link {
  transition: all 0.2s ease;
  white-space: nowrap;
}

.recent-search-link:hover {
  background-color: #f0f8ff;
  transform: translateY(-2px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

[id^="trust-disclaimer"]::before {
    content: "";
    display: block;
    height: 120px;       /* height of your fixed navbar */
    margin-top: -120px;
}

#suggestionBox .list-group-item {
  font-size: 0.7rem; /* or try 0.8rem */
  padding: 0.4rem 0.75rem;
}

#review-dropzone .dz-preview img[data-dz-thumbnail] {
  width: 80px !important;
  height: 80px !important;
  object-fit: cover;
  border-radius: 0.375rem;
  box-shadow: var(--bs-box-shadow-sm);
}

.dz-preview .dz-details,
.dz-preview .dz-filename,
.dz-preview .dz-size,
.dz-preview .dz-progress {
  display: none !important;
}

.gbtn {
  background: red !important;
  z-index: 999999 !important;
  opacity: 1 !important;
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 50px !important;
  height: 50px !important;
}

.gprev {
  left: 20px !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
}

.gnext {
  right: 20px !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
}

.gprev, .gnext, .gclose {
  background-color: transparent !important;
}

.gbtn svg {
  fill: white !important;
  width: 24px;
  height: 24px;
}

#photoMeta {
  color: white !important;
  background: transparent !important;
}

/* Red border for error files */
.dz-error {
  border: 4px solid red;
  position: relative;
}

/* Message under thumbnail */
.dz-error .dz-error-message {
  display: block;
  color: red;
  font-size: 0.85rem;
  text-align: center;
  margin-top: 4px;
  word-wrap: break-word;
  max-width: 100%;
}

/* Image wrapper to allow overlay positioning */
.dz-thumbnail-wrapper {
  position: relative;
  display: inline-block;
}

/* Hidden overlay label (shown only for errors) */
.dz-error-overlay {
  display: none;
  position: absolute;
  top: 4px;
  left: 4px;
  background: rgba(255, 0, 0, 0.85);
  color: white;
  padding: 2px 6px;
  font-size: 0.75rem;
  border-radius: 3px;
  z-index: 10;
}

/* Force overlay to show on error thumbnails */
.dz-error .dz-error-overlay {
  display: block;
}

.btn:hover .fa-users {
  color: inherit !important;
}

  .copy-link-btn {
    display: inline-block;
    padding: 5px 10px;
    border: 1px solid #000;
    border-radius: 5px;
    text-decoration: none;
    color: #000;
  }

  .copy-link-btn:hover {
    background-color: #f0f0f0;
    cursor: pointer;
  }

/* Hamburger icon */
.navbar-toggler.collapsed .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.7%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* X icon */
.navbar-toggler:not(.collapsed) .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.7%29' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M6 6l18 18M6 24L24 6'/%3e%3c/svg%3e");
}

.logo-text {
  font-size: 1.8rem;
  white-space: nowrap;   /* prevent wrapping */
  flex-shrink: 0;        /* don’t let flexbox squeeze it */
  overflow: visible;     /* ensure no clipping */
}

/* 🔽 Sticky directory header */
.directory-header {
  position: sticky;
  top: 60px;         /* adjust if you have a navbar/header above */
  z-index: 1020;     /* keep it above list items */
  background: #f8f9fa; /* matches bg-light */
  border-bottom: 1px solid #ddd;
}

.select2-container .select2-selection--single {
    height: 45px !important;          /* keep your custom height */
    font-size: 1rem;
    display: flex !important;         /* flex for vertical centering */
    align-items: center !important;   /* center text vertically */
    padding-left: 0.75rem;            /* match Bootstrap spacing */
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: normal !important;   /* reset line-height */
    padding-left: 0 !important;       /* prevent double padding */
}

.select2-container--default .select2-selection--single .select2-selection__clear {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%);
    margin: 0 !important;
    font-size: 1.2rem;
    color: #dc3545;
    cursor: pointer;
}

.business-card {
  margin-bottom: 1.5rem; /* adds spacing between cards */
}

/* Business name */
.list-group-item strong a {
    font-size: 1.25rem;   /* larger */
    font-weight: 700;     /* bolder */
    color: #0d6efd;       /* Bootstrap primary blue */
    text-decoration: none;
}
.list-group-item strong a:hover {
    text-decoration: underline;
}

/* Category + location + phone */
.list-group-item small,
.list-group-item .text-muted {
    color: #6c757d !important;  /* lighter gray */
    font-size: 0.9rem;
}

/* Business directory cards */
.business-directory-list .business-card {
  border-radius: 0.5rem;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.business-directory-list .business-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}

/* Card body typography */
.business-directory-list .business-card .card-body {
  padding: 1.25rem;
}

.business-directory-list .business-card .card-body strong a {
  font-size: 1.25rem;      /* larger name */
  font-weight: 600;        /* semi-bold */
  color: #212529;          /* darker text */
  text-decoration: none;
}

.business-directory-list .business-card .card-body strong a:hover {
  text-decoration: underline;
}

/* Secondary info */
.business-directory-list .business-card .card-body small {
  color: #6c757d;          /* muted text */
  display: block;
  margin-top: 0.25rem;
}

.navbar .nav-link {
  color: #000 !important;
}

/* Hide the native 'x' only for the #q search input */
#q::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.shadow-separator {
  box-shadow: inset 0 -12px 12px -6px rgba(0, 0, 0, 0.25);
}

/* Ensure dropdown menus are never clipped by navbar/container */
.navbar,
.navbar-nav,
.dropdown,
.dropdown-menu {
  overflow: visible !important;
}


.dropdown-menu {
  position: absolute !important;
  z-index: 1050;  /* higher than navbar (Bootstrap navbars use ~1030) */
  width: 100% !important;
}

.container-narrow {
  max-width: 900px;   /* keeps lines readable */
  margin: 0 auto;     /* centers the block */
  padding: 0 15px;    /* adds breathing room on small screens */
}

@media (max-width: 575.98px) {
  .logo-text {
    font-size: 1.2rem;
  }
  .logo-subtext {
    font-size: 0.4rem;
  }
  .dropdown-menu-end {
    right: auto !important;
    left: 0 !important;
  }
  .pagination .page-link {
      padding: 0.6rem 0.9rem;   /* bigger tap area */
      font-size: 0.95rem;       /* slightly larger text */
    }
    .pagination {
      gap: 0.25rem;             /* space between buttons */
    }
  /*
  .badge {
    font-size: 0.9rem;        /* slightly larger text */
    padding: 0.6rem 0.9rem;   /* bigger tap target */
  }
  .badge a {
    font-size: 1rem;          /* make the ✕ icon clear and tappable */
    margin-left: 0.4rem;
  }
  */
  .d-flex.flex-wrap.gap-2 {
    gap: 0.5rem !important;   /* extra spacing between chips on wrap */
  }
}

/* Under 450px: shrink text + hide subtext */
@media (max-width: 449px) {
  .logo-text {
    font-size: 1.1rem;
  }
  .logo-subtext {
    display: none;
  }
  .logo-icon {
    height: 1.5rem !important;
  }
}

/* 👇 NEW FIX for tight mid-breakpoints like 404px */
@media (max-width: 410px) {
  .logo-icon {
    height: 1.3rem !important;
  }
  .logo-text {
    font-size: 1rem;
  }
}

@media (max-width: 385px) {
  .logo-icon {
    height: 1.2rem !important;
  }
  .logo-text {
    font-size: 0.95rem;
  }
}


/* Hide logo text under 375px */
@media (max-width: 374px) {
  .logo-text {
    display: none;
  }
}


@media (max-width: 767.98px) {
  .navbar .navbar-brand {
    margin-bottom: 0.5rem;
  }
  #auth-links {
    margin-top: 0.5rem;
  }
}

@media (max-width: 767.98px) {
  .slogan-desktop {
    display: none;
  }
}

@media (min-width: 768px) {
  .slogan-mobile {
    display: none;
  }
  #results-spacer {
    height: 130px; /* match desktop navbar */
  }
}

@media (max-width: 600px) {
  .navbar-brand {
    flex-direction: row;
    align-items: flex-start;
  }
  .navbar-brand img {
    height: 1.5rem;
  }
  .brand-text {
    display: flex;
    flex-direction: column;
    margin-left: 5px;
  }
  .brand-name {
    font-size: 1rem;
  }
  .slogan {
    margin-top: 1px;
    font-size: 0.65rem;
    line-height: 1.1;
    padding: 0;
  }
}

@media (max-width: 375px) {
  .navbar-brand {
    flex-wrap: wrap;
  }

  .navbar-brand img {
    margin-bottom: 4px;
  }

  .navbar-brand > div {
    align-items: center;
    text-align: center;
  }
}
