html {
  scroll-behavior: smooth;
  scroll-padding-top: 128px; /* 80px nav + 48px breadcrumb */
}

/* ==========================================================================
   Modern Interaction Utilities (Transitions & Hovers)
   ========================================================================== */
:root {
  --tr-fast: all 0.2s ease;
  --tr-base: all 0.3s ease;
  --tr-slow: all 0.5s ease;
  --tr-bounce: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* --- Transition Speeds --- */
.tr-fast   { transition: var(--tr-fast) !important; }
.tr-base   { transition: var(--tr-base) !important; }
.tr-slow   { transition: var(--tr-slow) !important; }
.tr-bounce { transition: var(--tr-bounce) !important; }

/* --- Hover Effects --- */
/* Lifts element up and adds a soft shadow */
.hover-lift {
  transition: var(--tr-base);
}
.hover-lift:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.08) !important;
}

/* Larger lift for prominent cards */
.hover-lift-lg {
  transition: var(--tr-bounce);
}
.hover-lift-lg:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.12) !important;
}

/* Subtle scaling growth */
.hover-scale {
  transition: var(--tr-base);
}
.hover-scale:hover {
  transform: scale(1.05);
}

/* More pronounced growth */
.hover-grow {
  transition: var(--tr-base);
}
.hover-grow:hover {
  transform: scale(1.1);
}

/* Slight rotation for playful UI */
.hover-rotate {
  transition: var(--tr-base);
}
.hover-rotate:hover {
  transform: rotate(3deg) scale(1.05);
}

/* Slider / Reveal Effect for arrows */
.hover-reveal-right {
  transition: var(--tr-base);
}
.hover-reveal-right:hover {
  transform: translateX(6px);
}

/* Apply to parent to move child arrow */
.hover-arrow-move .fa-chevron-right, 
.hover-arrow-move .fa-arrow-right {
  transition: transform 0.3s ease;
}
.hover-arrow-move:hover .fa-chevron-right, 
.hover-arrow-move:hover .fa-arrow-right {
  transform: translateX(5px);
}

/* Visual Feedback for Buttons/Links */
.hover-opacity:hover {
  opacity: 0.8;
}

/* Glassmorphism Utility */
.glass-panel {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.4);
}

/* ========================================================================== */

/* hide google captcha badge */
.grecaptcha-badge {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Container that wraps image or fallback — base defined in style.css (aspect-ratio approach) */
.listing-image-container {
  position: relative;
  border-radius: 0.5rem;
  background-color: #f2f2f2;
}

.top-banner-container {
    padding-top: 5rem !important;
    padding-bottom: 3rem !important;
    background-image: url("data:image/svg+xml,%3Csvg width='40' height='35' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 17.5L10 0h20l10 17.5L30 35H10L0 17.5z' fill='none' stroke='%23954C2E' stroke-opacity='0.1' stroke-width='1'/%3E%3C/svg%3E") !important;
    background-color: #EFE4D2 !important;
    background-repeat: repeat !important;
    background-size: auto !important;
  }

@media (min-width: 991px) {
 .top-banner-container {
    padding-top: 8rem !important;
  }
}

/* ===== Hero Search Pill ===== */
.hero-headline {
  font-size: 2.4rem;
  line-height: 1.3;
}

.hero-subtitle {
  font-size: 1.05rem;
}

.hero-search-pill {
  border-radius: 50px;
  overflow: hidden;
  padding: 6px 6px 6px 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.30);
  background-color: #fff;
}

.hero-search-field {
  min-width: 0;
}

/* --- Shared Select2 Customizations for Pill Search Components --- */
.hero-search-pill .select2-container--default .select2-selection--single,
#mobile-search-wrapper .select2-container--default .select2-selection--single {
  border: 0 !important;
  background-color: transparent !important;
  display: flex !important;
  align-items: center !important;
}

.hero-search-pill .select2-container--default .select2-selection--single .select2-selection__rendered,
#mobile-search-wrapper .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-left: 0 !important;
  color: #374151 !important;
  font-weight: 500;
}

.hero-search-pill .select2-container--default .select2-selection--single .select2-selection__arrow,
#mobile-search-wrapper .select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 0 !important;
}

/* Specific heights and arrows */
.hero-search-pill .select2-container--default .select2-selection--single,
.hero-search-pill .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 54px !important;
}

.hero-search-pill .select2-container--default .select2-selection--single .select2-selection__clear {
  top: 16px !important;
}

.hero-search-input {
  height: 54px !important;
  padding: 0 !important;
  outline: none !important;
  border-radius: 0 !important;
  color: #374151;
  font-weight: 500;
}

.hero-search-input:focus,
.header-search-container input:focus {
  box-shadow: none !important;
  outline: none !important;
}

.hero-search-input::placeholder {
  color: #9ca3af;
}

.hero-search-divider {
  width: 1px;
  height: 28px;
  background-color: #e5e7eb;
}

.hero-search-btn {
  height: 48px;
  padding: 0 24px !important;
}

/* Mobile: pill stacks vertically */
@media (max-width: 767.98px) {
  .hero-search-pill {
    flex-direction: column;
    border-radius: 16px !important;
    padding: 12px;
    align-items: stretch;
  }

  .hero-search-field {
    border-bottom: 1px solid #f3f4f6;
    padding-bottom: 4px;
    padding-top: 4px;
    width: 100%;
  }

  .hero-search-field:last-of-type {
    border-bottom: none;
  }

  .hero-search-pill .select2-container--default .select2-selection--single,
  .hero-search-pill .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
  }

  .hero-search-pill .select2-container--default .select2-selection--single .select2-selection__clear {
    top: 11px !important;
  }

  .hero-search-input {
    height: 44px !important;
  }

  .hero-search-btn {
    width: 100% !important;
    justify-content: center;
    border-radius: 10px !important;
    height: 46px;
    margin-top: 4px;
  }

  .hero-headline {
    font-size: 1.75rem;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .hero-headline {
    font-size: 2rem;
  }
}
/* ===== End Hero Search Pill ===== */

/* The actual image */
.listing-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Fallback when no image is available */
.listing-image-fallback {
  width: 100%;
  height: 100%;
  background: #000000;
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
}

/* Optional initials style */
.listing-initials {
  letter-spacing: 1px;
}

/* Rating stars */
.listing-rating-box {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.average-rating-stars {
  display: flex;
  align-items: center;
  justify-content: center;
}
.average-rating-stars img {
  width: 13px;
  height: 13px;
}

/* Home Category Cards */
.category-card {
  min-height: 120px;
  border-radius: 0.75rem;
  transition: var(--tr-base);
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

.category-title {
  font-size: 1rem;
  font-weight: 600;
  white-space: wrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.require-star {
  color: red;
  padding: 0px 5px;
}

/* Login Registration Model */

.errorValidation:not(.edit-review-box) {
  display: block;
  color: red !important;
  position: static !important;
  text-align: left;
  font-weight: 400 !important;
}

.iti {
  display: block !important;
}

.cursor-pointer {
  cursor: pointer;
}

/* Forget password model  */

/* Overlay */
.reg-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  z-index: 9998;
  display: none;
}

/* Modal box */
.lost-password-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 400px;
  background: #fefefe;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
  border-radius: 8px;
  z-index: 9999;
  display: none;
}

body.dark-theme .lost-password-modal {
  background: #1f2940;
}

.lost-password-modal p {
  margin-bottom: 10px;
  font-weight: 500;
  color: #333;
}
body.dark-theme .lost-password-modal p {
  color: white;
}

.lost-password-modal input[type='email'] {
  width: 100%;
  padding: 10px;
  margin-bottom: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.lost-password-modal button {
  width: 100%;
  padding: 10px;
  color: #fff;
  border: none;
  border-radius: 4px;
}

/* Close icon */
.close-lpt {
  position: absolute;
  top: 5px;
  right: 12px;
  font-size: 20px;
  color: #999;
  cursor: pointer;
}

.close-lpt:hover {
  color: #333;
}

/* Contact Us Page  */

#recaptcha-hidden {
  visibility: hidden !important;
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

#characters-count {
  position: absolute;
  right: 0;
  margin: 10px 0;
}

body.dark-theme #contact-form textarea {
  background-color: rgb(31, 41, 64);
}

body.dark-theme #contact-form {
  border: 1px solid #32436a;
}

.contact-badge {
  background-color: #dfc2b7;
  color: #954c2e !important;
  letter-spacing: 1px;
  font-weight: 600 !important;
}

.hero-description {
  color: #cbd5e1;
}

.contact-help-label {
  color: #954c2e;
  letter-spacing: 2px;
  font-size: 0.75rem;
}

.contact-help-icon {
  width: 48px;
  height: 48px;
  min-width: 48px;
  background-color: #254d70;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.2rem;
}

.contact-quote-card {
  border-left: 4px solid #954c2e;
  background-color: #fdf5ec;
  border-radius: 8px;
}

.contact-cta-section {
  background-color: #131d4f;
}

.contact-icon-tile {
  aspect-ratio: 3/2;
  background-color: rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 2rem;
}

.shadow-none {
  box-shadow: none !important;
}

body.dark-theme .pricingTable.advance-pricing {
  border: 1px solid #eb115b !important;
}

/* Cities Page – Editorial Design */
.cities-state-name {
  color: #0d2040;
}

.cities-state-badge {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  background-color: #4a7c8e;
  padding: 2px 8px;
  border-radius: 3px;
  vertical-align: middle;
}

.cities-section-divider {
  border-color: #d4c9b8;
  opacity: 1;
}

/* Grid view - Container */
.view-container.grid-view {
  display: flex;
  flex-wrap: wrap;
}

/* Grid view - Item */
.view-container.grid-view .listing-item {
  width: 100%;
}

/* Make the listing item fill available height */
.view-container.list-view .listing-item {
  display: flex;
  height: 100%;
}

/* Force card to take 100% height */
.view-container.list-view .card {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
}

/* Make item-wrapper grow to fill height */
.view-container.list-view .item-wrapper {
  display: flex;
  flex-direction: row;
  flex: 1 1 auto;
}

/* Listing image stays fixed width */
.view-container.list-view .listing-image-container {
  width: 25%;
  flex-shrink: 0;
}



/* Body expands vertically */
.view-container.list-view .card-body {
  flex-grow: 1;
}

/* Footer hugs the bottom */
.view-container.list-view .card-footer {
  margin-top: auto;
  border-top: 1px solid #dedede;
}

@media (min-width: 768px) {
  .view-container.grid-view:not(.category-listing-wrapper) .listing-item {
    width: 50%;
  }

  .view-container.grid-view.category-listing-wrapper .listing-item{
    width: 50%;
  }
}

@media (min-width: 992px) {
  .view-container.grid-view:not(.category-listing-wrapper) .listing-item {
    width: 50%;
  }
  .search-listing-items{
    width: 33.33% !important;
  }
  .view-container.grid-view.category-listing-wrapper .listing-item{
    width: 33.33333333%;
  }
}

@media (min-width: 1400px) {
  .view-container.grid-view:not(.category-listing-wrapper) .listing-item {
    width: 33.33%;
  }
  .view-container.grid-view.category-listing-wrapper .listing-item{
    width: 25%;
  }
}

/* select2 clear button style */
.select2-selection__clear {
  right: 10px;
  top: 11px;
  display: inline-block;
  width: auto;
  height: auto;
  line-height: 1;
  font-size: 16px;
  padding: 0;
  margin-left: 30px;
  border: none;
  background: none;
  cursor: pointer;
}

.map-container-detail-page {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* Aspect ratio 16:9 */
}

.map-container-detail-page iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.avatar-giant {
  width: 10rem !important;
  height: 10rem !important;
}



.fallback-listing-details-logo {
  height: 21vh;
  width: 50vh;
  margin: 0px 50px;
}

.reviews-average-rating-stars img {
  height: 15px;
  width: 15px;
}

/* Swiper */

/* Make swiper full width and height properly */
#photo-gallery-slider {
  width: 100%;
  height: 100%;
}

/* Each slide should take 100% width */
.swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

/* Image styling: center + scale nicely */
.photo-gallery-image {
  max-width: 100%;
  max-height: 500px; /* You can tweak this */
  width: auto;
  height: auto;
  display: block;
  margin: auto;
  object-fit: contain;
}

.add-review-rating img,
form .edit-review-rating img {
  height: 16px !important;
  width: 16px !important;
}

#review-not-allow-message, #edit-delete-review-not-allow-message, #alert-message-box{
  background-color: rgba(252, 252, 0, 0.1); 
  border: 1px solid #ffc107;
  color: black;
}

/* Fix Header Jump on Scroll & Sticky Styles */
.sticky-wrapper.is-sticky .horizontal-main {
  height: auto !important;
  transition: var(--tr-base);
}

.sticky-wrapper.is-sticky .horizontalMenu > .horizontalMenu-list > li {
  padding-top: 1.5rem !important; /* py-4 equivalent */
  padding-bottom: 1.5rem !important;
}

.sticky-wrapper.is-sticky .desktoplogo,
.sticky-wrapper.is-sticky .desktoplogo-1 {
  padding-top: 0.5rem !important; /* py-2 equivalent */
  padding-bottom: 0.5rem !important;
}

#main section {
  height: 100% !important;
}

/* base styling for both icons */
.btn-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
}

.btn-remove {
  background-color: #dc3545;
}
section.main-dashboard-sec {
  padding-top: 40px;
}
section.main-dashboard-sec.verify-email-message-section {
  padding-bottom: 0px !important;
}
.fl-wrap.verify-email-message {
  border: 1px solid #f2ca4c;
  border-radius: 5px;
  background-color: #fff3cd4f !important;
}
.fl-wrap.verify-email-message .resend-email {
  margin-left: 10px;
  font-weight: bold;
}
.warning {
  background-color: #eed47f !important;
  margin-bottom: 0px;
  height: 50px;
  padding-top: 18px;
}
.resend-email {
  color: #4db7fe !important;
  cursor: pointer;
}

.add-list {
  float: right;
  position: relative;
  height: 40px;
  line-height: 40px;
  border-radius: 4px;
  font-weight: 500;
  font-size: 13px;
  margin-top: 5px;
  margin-bottom: 5px;
}
.add-list:hover {
  box-shadow: 0px 0px 0px 6px rgba(255, 255, 255, 0);
}
.add-list span {
  color: #fff;
  padding-left: 10px;
}
/* Default toggle button (used in reset-password and other pages) */
.password-toggle-button {
  position: absolute;
  top: 40px;
  right: 22px;
  font-size: 18px;
  cursor: pointer;
}

.profile-pwd-field .password-toggle-button,
.profile-pwd-field .new-password-toggle-button,
.profile-pwd-field .confirm-password-toggle-button {
  position: absolute;
  top: 20px;
  transform: translateY(-50%);
  right: 15px;
  font-size: 18px;
  cursor: pointer;
}

/* Force next-line behavior */
.review-reply-section {
  flex-basis: 100%;
  max-width: 100%;
}

/* Push them to align with media-body */
.review-reply-section {
  margin-left: calc(3rem + 20px); /* adjust based on avatar size + spacing */
}
.clear-btn {
  position: absolute;
  right: 100px;
  top: 46%;
  transform: translateY(-50%);
  border: none;
  font-size: 16px;
  cursor: pointer;
  color: #141b2d;
  display: none;
}

.clear-btn:hover {
  color: #6d6d6d;
}

.profile-listing-badge {
  position: absolute;
  top: 3px;
  right: 200px;
}
textarea.form-control {
  height: 100% !important;
  padding-top: 10px !important;
}
.hidden {
  display: none;
}
.add-interval-btn-block {
  display: flex;
  align-items: center;     /* vertical centering */
  gap: 0.5rem;             /* space between button and icon */
}

/* Optional: tweak icon positioning if needed */
.info-icon-edit-listing {
  font-size: 1.1rem;       /* a bit larger */
  line-height: 1;          /* avoid extra descender space */
  cursor: pointer;
}
/*-------------map ,  infobox and markers ---------------------------------------*/
.map-container {
  float: left;
  width: 100%;
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
}
.fw-map {
  height: 500px;
}
.fw-map.big_map {
  height: 550px;
}
.fw-map2 #singleMap,
.fw-map2 {
  height: 500px;
}
.hidden-map-container {
  display: none;
  background: #fff;
  overflow: hidden;
}
#singleMap,
.fw-map-small-map {
  height: 420px;
}
#singleMap {
  height: 390px;
}
.map-container.column-map.right-pos-map {
  right: 0;
}
.map-container.column-map.left-pos-map {
  left: 0;
}
.map-container #map-main {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 990;
}
.map-container.column-map {
  width: calc(100% - 850px);
  position: absolute;
  overflow: hidden;
}
.map-container.column-map.no-fix-scroll-map {
  position: fixed;
  right: 0;
}
.edit-listing-icon {
  position: absolute;
  top: 102px;
  left: 19px;
}
.service-area-input {
  padding-left: 25px !important;
}

/* ------ Business-hours-section-main Start ------ */
.business-hours-section,
.business-hours-section-main {
  padding: 0 !important;
}

.business-hours-section {
  overflow-x: auto;
  width: 100% !important;
}

.business-hours-section-main {
  display: flex;
  min-width: 826px;
  width: auto;
  height: 100% !important;
  color: #f5f5f5; /* off-white text */
}

.form-group {
  margin-bottom: 1rem;
}

.business-hours-section-main .working-hours-block {
  display: flex;
}
.business-hours-section-main .block-to-clone {
  display: flex;
}

.business-hours-section-main .step-1,
.business-hours-section-main .step-2,
.business-hours-section-main .step-3,
.business-hours-section-main .step-4 {
  padding-left: 10px;
  padding-right: 10px;
}

.business-hours-section-main .step-1 {
  width: 100px;
  margin-top: 10px;
}

.business-hours-section-main .step-2 {
  width: 110px;
}

.business-hours-section-main .step-3 {
  width: 300px;
}

.business-hours-section-main .step-4 {
  width: 165px;
}

.business-hours-section-main .step-4.add-interval-btn-block {
  width: 164px;
}

.business-hours-section-main .step-row-1,
.business-hours-section-main .step-row-2 {
  width: 260px;
  padding-left: 8px;
  padding-right: 8px;
}

.business-hours-section-main .step-row-3 {
  width: 70px;
  padding-left: 8px;
}

.business-hours-section-main .input-group {
  display: flex;
  align-items: center;
  position: relative;
}

.business-hours-section-main .input-group input {
  width: 100%;
  padding: 8px 35px 8px 10px;
  border-radius: 4px;
  background-color: #ffffff;
  color: #212529;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.business-hours-section-main .input-group input:disabled {
  background-color: #e9ecef;
  color: #6c757d;
  opacity: 1;
}

.business-hours-section-main .input-group .bootstrap-timepicker-widget {
  position: absolute;
  border: 1px solid #e1d5d5;
  top: 32px !important;
  left: 0 !important;
  right: 0 !important;
  margin: 0 auto !important;
  background-color: #fff !important;
  height: 127px;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175);
}

.business-hours-section-main .working-hours-block:nth-child(7) .input-group .bootstrap-timepicker-widget,
.business-hours-section-main .working-hours-block:nth-child(6) .input-group .bootstrap-timepicker-widget,
.business-hours-section-main .working-hours-block:nth-child(5) .input-group .bootstrap-timepicker-widget {
  bottom: 32px !important;
  top: unset !important;
}

.business-hours-section-main .input-group .bootstrap-timepicker-widget::before,
.business-hours-section-main .input-group .bootstrap-timepicker-widget::after {
  display: none;
}

.btn-font-13{
  font-size: 13px !important;
}

.business-hours-section-main .apply-btn {
  white-space: nowrap;
  padding: 6px 0;
  color: #ff3366;  /* vibrant magenta */
  display: block;
  cursor: pointer;
}

.business-hours-section-main .apply-btn .fa-arrow-down {
  margin-right: 4px;
  font-size: 12px;
}

.business-hours-section-main .record {
  padding-left: 10px;
  padding-right: 10px;
}

.business-hours-section-main .form-select {
  padding: 7px 20px 7px 10px;
  border: 1px solid #ced4da; 
  border-radius: 4px;
  background-color: #ffffff; 
  appearance: none;
  color: #495057;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.business-hours-section-main .form-select:focus {
  background-color: #ffffff;
  border-color: #ffa033;
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 150, 51, 0.25);
}

.business-hours-section-main .input-group .input-group-text {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 8px;
  color: #495057;
  display: flex;
  z-index: 10;
}
.start-time,.end-time{
  overflow: hidden;
}

.business-hours-section-main .select-box {
  position: relative;
}
.input-group-text{
  border: none !important;
}
.business-hours-section-main .select-box:before {
  border-bottom: 2px solid #000000;
  border-right: 2px solid #000000;
  content: '';
  display: block;
  height: 4px;
  margin-top: -4px;
  pointer-events: none;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: rotate(45deg);
  transition: var(--tr-fast);
  width: 4px;
}

/* Add Interval Button - Orange Theme */

body.forest-sage .business-hours-section-main .add-interval-btn:disabled {
  background-color: #1E293B !important; /* a muted navy-slate tone */
  color: #e0e0e0 !important;
  cursor: not-allowed !important;
  opacity: 0.7;
}

.business-hours-section-main .add-interval-btn:hover {
  color: #0d6efd !important;
  text-decoration: underline !important;
}

.business-hours-section-main .remove-interval-btn {
  background-color: #e74c3c;
  color: #ffffff;
  width: 35px;
  height: 35px;
  border: none;
  border-radius: 26px;
  margin-top: 2px;
}

.business-hours-section-main .fa-info {
  padding: 5px;
  border-radius: 50%;
  height: 20px;
  width: 20px;
  font-size: 10px;
  background-color: #252a44;
  text-align: center;
}

.business-hours-section-main .geodir-category_price {
  margin-right: 0;
  top: 10px;
  cursor: pointer;
}

.business-hours-section-main label {
  color: #a3a5b5; /* muted label color */
}

.business-hours-section-main .geodir-opt-tooltip,
.business-hours-section-main .price-name-tooltip {
  position: absolute;
  opacity: 0;
  height: auto;
  line-height: 17px;
  left: 22px;
  top: unset;
  color: #ffffff;
  font-size: 12px;
  border-radius: 2px;
  background: #ff3366;
  width: 100%;
  min-width: 100px;
  padding: 5px;
}

.business-hours-section-main .working-hours-block:last-child .geodir-opt-tooltip,
.business-hours-section-main .working-hours-block:last-child .price-name-tooltip {
  top: -30px;
}

.business-hours-section-main .time-picker-box {
  display: flex;
  flex-direction: column;
  position: relative;
}
.bootstrap-timepicker-hour,.bootstrap-timepicker-minute,.bootstrap-timepicker-meridian{
  color: #000000;
}
/* ------ Business-hours-section-main End ------ */

.custom-form ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.custom-form ul li {
  box-sizing: border-box;
}
.bootstrap-tagsinput .tag {
  color: white !important;
  background: rgba(231, 235, 243, 0.1019607843) !important;
}

/* ------ multiple select tag css start ------ */
.input-icon-box {
  position: relative;
  margin-bottom: 1.5rem !important;
  z-index: 9;
}

.input-icon-box .bootstrap-tagsinput {
  background-color: #FFFFFF !important;
  border-radius: 8px !important;
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  min-height: 48px;
  line-height: 1.6;
  transition: var(--tr-fast);
  box-shadow: none !important;
}

.input-icon-box .bootstrap-tagsinput:focus-within {
  border-color: #254D70 !important;
  box-shadow: 0 0 0 4px rgba(37, 77, 112, 0.1) !important;
}

.input-icon-box .bootstrap-tagsinput .tag {
  margin-right: 6px;
  margin-bottom: 4px;
  padding: 5px 28px 5px 12px !important; /* Spacing for the right-side close button */
  border-radius: 20px !important;
  background-color: #254D70 !important;
  color: #FFFFFF !important;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  position: relative;
  font-size: 13px;
  border: none !important;
  transition: var(--tr-fast);
}

.input-icon-box .bootstrap-tagsinput .tag:hover {
  background-color: #131D4F !important;
  transform: translateY(-1px);
}

.input-icon-box .bootstrap-tagsinput .tag [data-role="remove"] {
  position: absolute;
  right: 8px;
  cursor: pointer;
  opacity: 0.8;
  margin-left: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  padding-left: 6px;
  height: 14px;
  display: flex;
  align-items: center;
}

.input-icon-box .bootstrap-tagsinput .tag [data-role="remove"]:hover {
  opacity: 1;
}

.input-icon-box .bootstrap-tagsinput input {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: transparent !important;
  padding: 6px 0 !important;
  margin: 0 !important;
  width: auto !important;
  max-width: inherit;
  color: #131D4F !important;
  font-size: 14px;
}

.input-icon-box .bootstrap-tagsinput input::placeholder {
  color: #94A3B8 !important;
  opacity: 1;
}
/* ------ multiple select tag css end ------ */

/* Status Pill Styling */
.status-pill {
  position: absolute;
  top: 15px;
  right: 15px;
  background-color: rgba(255, 255, 255, 0.95);
  padding: 5px 10px;
  border-radius: 50px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  z-index: 5;
}

.status-pill.open {
  color: #0d9488; /* Teal color for Open Now */
}

.status-pill.closed {
  color: #dc2626; /* Red color for Closed */
}

.status-pill.warning {
  color: #d97706; /* Amber color for Closed Until... */
  height: fit-content !important;
}


.ribbon-wrapper-right {
  position: absolute;
  top: 10px;
  right: 0;
}
/* container */
#additional-details-section .detail-row {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

/* icon */
#additional-details-section .icon-box {
  font-size: 1.05rem;
  width: 36px;
  text-align: center;
}

/* title + value */
#additional-details-section .detail-content {
  display: block;
  min-width: 0;
}
#additional-details-section .detail-value {
  display: inline-block;
  margin-top: 2px;
  word-break: break-word;
  line-height: 1;
}

/* Mobile: icon slightly bigger, title stays to right of icon, value moves below */
@media (max-width: 575.98px) {
  #additional-details-section .detail-row {
    align-items: flex-start;
  }
  #additional-details-section .icon-box {
    font-size: 1.3rem;
    width: 44px;
    margin-top: 3px;
  }
  #additional-details-section .detail-title {
    font-size: 0.98rem;
  }
  #additional-details-section .detail-value {
    display: block;
    margin-top: 4px;
    font-size: 0.95rem;
  }
}

body.forest-sage .active-color:hover{
  color: #55a24d !important;
}

.location-details-navigation:not(:first-child)::before {
  content: '|' !important;
}

/* Completed = success (green) */
.invoice-payment-status-badge .completed {
  background-color: #d4edda; /* pale green */
  color: #155724; /* deep green */
}

/* Pending = warning (yellow/orange) */
.invoice-payment-status-badge .pending {
  background-color: #fff3cd; /* soft amber */
  color: #856404; /* dark golden */
}

/* Failed = danger (red) */
.invoice-payment-status-badge .failed {
  background-color: #f8d7da; /* light red/pink */
  color: #721c24; /* strong crimson */
}

/* Cancelled = neutral grey */
.invoice-payment-status-badge .cancelled {
  background-color: #e2e3e5; /* light gray */
  color: #383d41; /* dark gray */
}

@media (max-width: 575.98px) {
  .invoice-list-page .nav-icon-wrapper {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }
}

/* Invoice Style  */
.profile-invoice-details-page .invoice-data td,
.profile-invoice-details-page .invoice-data th {
  border: 1px solid #3a4257;
}
.profile-invoice-details-page .invoice-data thead {
  background-color: #27304a;
}
.profile-invoice-details-page .invoice-details {
  background-color: #27304a;
}
.profile-invoice-details-page .total-amount {
  color: #82b1ff; 
}
.profile-invoice-details-page .invoice-box {
  padding: 10px;
}
.z-top {
    z-index: 1 !important;
}

/* Payment Profile Page CSS */
.payment-profile-cards, .payment-profile-cards::before{
  border-radius: 5px;
}
.payment-profile-cards .accordion-toggle::before{
  content: none !important;
}

.payment-profile-cards.panel{
  border: 3px dotted rgba(31, 31, 31, 0.342) !important
}

.my-account-card-icon, .verification-card-icon, .subscription-card-icon {
  position: absolute;
  right: 8px;
  top: 2px;
  width: 35px;
  height: auto;
  z-index: 5;
  pointer-events: none;
}

/* Modern Stripe Element styles - overriding legacy styles */
.StripeElement {
  margin-top: 18px;
  padding: 5px;
  border: 1px solid #141b2d;
  border-radius: 4px;
  background-color: #141b2d;
}

#payment-method .StripeElement {
  border: 1px solid #954c2e;
  margin-top: 0px;
  padding: 7px 10px;
  border-radius: 4px;
  background-color: #fff;
  height: 38px;
  line-height: 38px;
}

/* States */
.StripeElement--focus {
  border-color: #4a90e2 !important; /* Blue border when focused */
}

.StripeElement--invalid {
  border-color: #e74c3c !important; /* Red border for invalid input */
}

.StripeElement--complete {
  border-color: #2ecc71 !important; /* Green border for valid input */
}



/* Enable Pointer Events */
.bs-stepper .step-trigger.disabled, .bs-stepper .step-trigger:disabled {
    pointer-events: all !important;
}

.verification-error-message, .billing-error-message {
  color: #eb0000 !important;
  font-size: 12px; 
  text-align: start;
  display: block;
}
#verification-characters-count{
  float:right;
}
#otp-container {
  display: none;
}

/* Hover effect on input fields */
.otp-box:focus {
  border-color: #0f5132 !important;
  outline: none; 
}

/* Resend OTP Button Styling */
#resend-otp-button {
  color: #0f5132;
  display: none;
}

/* Timer Styling */
#timer {
  color: #999;
}

/* Loading icon spin */
.icon-spin {
  display: inline-block;
  animation: icon-spin 1s infinite linear;
}

/* Highlight Selected Card */
.payment-profile-cards:has(input[type="radio"]:checked) {
  box-shadow: 0 0 20px #0f5132 !important;
  border: 2px solid #0f5132;
  border-radius: 0.5rem
}

@keyframes icon-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(359deg);
  }
}

/* make the placeholder visible */
.select2-search__field {
  width: 100% !important;
}

/* Dispute Claim Badge - Light Theme */
.dispute-claim-status-badge .requested {
  background-color: #fff3cd; /* soft amber/yellow */
  color: #856404; /* dark golden text */
}

.dispute-claim-status-badge .approved {
  background-color: #d4edda; /* light mint green */
  color: #155724; /* deep green text */
}

.dispute-claim-status-badge .rejected {
  background-color: #f8d7da; /* light pink/red */
  color: #721c24; /* strong crimson text */
}

.dispute-claim-status-badge .canceled {
  background-color: #e2e3e5; /* light gray */
  color: #383d41; /* dark gray text */
}

.select-box{
  background-color: transparent !important;
}
.mw-50{
  max-width: 50% !important;
  height: 50% !important;
}

/* Profile Section photo gallery  */

/* Ensure each slide is positioned for overlay */
.profile-gallery-section .swiper-slide {
  position: relative;
  overflow: hidden;
}

/* Dark overlay on hover */
.profile-gallery-section .swiper-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: var(--tr-base);
  z-index: 1;
}

/* On hover: show overlay + icons */
.profile-gallery-section .swiper-slide:hover::after {
  opacity: 1;
}

.profile-gallery-section .swiper-slide:hover .d-flex {
  opacity: 1;
}

.profile-gallery-section .swiper-slide .d-flex a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease;
  padding: 0;
}

.profile-gallery-section .swiper-slide .d-flex {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  gap: 15px;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
}

/* Youtube Gallery - Light Theme */
#video-upload-error-message {
  background-color: #f8d7da;   
  border: 1px solid #f5c6cb;   
  color: #721c24;              
}

#video-upload-success-message {
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;           
}

#lg-actual-size{
  display: none !important;
}

/* Reset LG defaults */
.lg-toolbar .lg-icon:before,
.lg-toolbar .lg-icon:after,
.lg-actions .lg-icon:before,
.lg-actions .lg-icon:after {
  content: none !important;
}
/* Override default LightGallery icons with FontAwesome v4 */
.lg-toolbar .lg-icon,
.lg-actions .lg-icon {
  font-family: "FontAwesome";
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  text-align: center;
  font-size: 18px;
  line-height: 38px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  padding: 0px !important ;
  background: rgba(0,0,0,0.6); /* dark semi-transparent background */
  color: #fff;                 /* white icon */
  display: inline-block;
  margin: 4px;
  transition: var(--tr-fast);
}
.lg-toolbar .lg-icon:hover,
.lg-actions .lg-icon:hover {
  background: rgba(0,0,0,0.85);
}
/* Close (fa-times) */
.lg-toolbar .lg-close:after {
  content: "\f00d" !important; /* fa-times */
}
/* Zoom In (fa-search-plus) */
.lg-toolbar #lg-zoom-in:after {
  content: "\f00e" !important; /* fa-search-plus */
}
/* Zoom Out (fa-search-minus) */
.lg-toolbar #lg-zoom-out:after {
  content: "\f010" !important; /* fa-search-minus */
}
/* Actual size (fa-arrows-alt) */
.lg-toolbar #lg-actual-size:after {
  content: "\f0b2" !important; /* fa-arrows-alt */
}
/* Prev (fa-chevron-left) */
.lg-actions .lg-prev:after {
  content: "\f104" !important; /* fa-chevron-left */
}
/* Next (fa-chevron-right) */
.lg-actions .lg-next:after {
  content: "\f105" !important; /* fa-chevron-right */
}


.vertical-scroll {
  overflow-y: auto;
  padding-left: 0;
}

.vertical-scroll li {
  padding: 6px 0;
  border-bottom: 1px solid #eee;
}
.vertical-scroll li:last-child {
  border-bottom: none;
}

.wideget-user-tab .tabs-menu1 ul li {
  width: 50%; /* each li takes half */
}

.wideget-user-tab .tabs-menu1 ul li a {
  display: block;
  text-align: center;
  padding: 17px 0; /* top/bottom only */
  width: 100%;     /* make link stretch to full li width */
}

.auth-tab-link {
  color: #6c757d !important;
  text-decoration: none;
  display: block;
  text-align: center;
  padding: 17px 0;
  width: 100%;
}

/* --- Authentication Modal Modernization --- */
.auth-tabs.nav-pills .auth-tab-link.active {
  background-color: var(--color-primary);
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(var(--color-primary-rgb, 37, 77, 112), 0.2);
}

.auth-input-wrap .auth-input-icon {
  position: absolute;
  left: 1rem;
  top: 24px;
  transform: translateY(-50%);
  color: #9ca3af;
  pointer-events: none;
  z-index: 5;
  transition: color 0.3s ease;
}

.auth-input.has-icon {
  padding-left: 2.75rem !important;
  padding-right: 2.75rem !important;
  height: 48px;
  font-size: 0.95rem;
}

.auth-input:focus {
  background-color: #fff;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb), 0.1);
}

.auth-input:focus+.auth-input-icon {
  color: var(--color-primary);
}

.auth-input-wrap .password-toggle-button {
  position: absolute;
  top: 24px;
  right: 1rem;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: #9ca3af;
  z-index: 5;
}

.auth-input-wrap .password-toggle-button:hover {
  color: #374151;
}

.auth-pw-rule.check {
  color: #10b981 !important;
}

.auth-pw-rule.check i {
  color: #10b981;
}

.auth-pw-rule .auth-rule-checked {
  display: none;
}

.auth-pw-rule.check .auth-rule-unchecked {
  display: none;
}

.auth-pw-rule.check .auth-rule-checked {
  display: inline-block;
}

.auth-forgot-btn:hover {
  color: var(--color-primary) !important;
  text-decoration: underline !important;
}

.hover-lift-sm:hover {
  transform: translateX(4px);
}
.category-tile {
  text-decoration: none;
  color: inherit;
  width: 100%;
}

.category-box {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  padding: 20px;
  text-align: center;
  transition: var(--tr-base);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 120px;
  cursor: pointer;
}

.category-box:hover {
  background: linear-gradient(135deg, #0f5132, #198754);
  color: #fff;
  transform: translateY(-6px);
  box-shadow: 0 10px 20px rgba(15, 81, 50, 0.25);
  border-color: transparent;
}

.category-name {
  font-size: 1rem;
  font-weight: 600;
  color: #212529;
  transition: var(--tr-base);
}

.category-code {
  font-size: 0.85rem;
  color: #6c757d;
  transition: var(--tr-base);
}

.category-box:hover .category-name {
  color: #fff;
}

.category-box:hover .category-code {
  color: #FBFADA;
}

#back-to-top i {
  padding-top: 16px !important;
  font-size: 18px !important;
  transform: rotate(0deg) !important;
  margin-left: 0px !important;
}

.premium-badge-ribbon::before,
.premium-badge-ribbon::after {
  content: none !important;
}

/* Premium Pill Badge */
.premium-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px; 
  background: linear-gradient(135deg, #ff7e29, #ffae42); 
  color: #fff;
  padding: 6px 14px;
  border-radius: 0px 10px 10px 0px;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15); 
  position: relative;
  z-index: 20;
  cursor: default;
  user-select: none;
  transition: var(--tr-fast);
  transform: translateY(-2px) !important;
  border: 1px solid;
}

.premium-badge:hover {
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

.premium-badge::before {
  content: "★"; 
  font-size: 12px;
  color: #fff;
  margin-left: 5px;
  padding: 3px;
}

.premium-badge-listing-details-page {
  border-radius: 10px !important;
  top: 0px !important;
}
.premium-badge-listing-details-page::before {
  padding-left: 10px !important;
}

.sep {
  color: #aaa; /* subtle separator */
  margin: 0 4px;
}

#details-section .opening-hours-day{
    width: 110px;
    min-width: 110px;
}

textarea {
  resize: none !important;
}

.add-listing-btn{
  background-color: #FBFADA !important;
}
/* Review section css */
.review-comments-avatar img,
.media img {
  width: 60px;
  height: 60px;
  border-radius: 50%;
}

.review-comment-body {
  background-color: rgba(130,128,128,0.2);
  padding: 20px 20px 15px;;
  border-radius: 10px;
  position: relative;
  flex: 1;
  min-width: 0;
}

.review-comment-body::before {
  content: '';
  position: absolute;
  left: -10px;
  top: 22px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 10px solid rgba(130,128,128,0.2);
  z-index: 1;
}

.review-reply-section .media {
  position: relative;
  display: block !important;
  background-color: rgba(130,128,128,0.2);
  padding: 15px 20px;
  border-radius: 8px;
  margin-left: 60px;
  min-width: 0;
}

@media (max-width: 575.98px) {
  .reviews-comments-item .d-flex.w-100 { flex-direction: column; gap: .5rem; align-items: stretch; }
  .review-comment-body::before {
    content: '';
    position: absolute;
    top: -20px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 10px solid rgba(130,128,128,0.2);
  }
  .review-reply-section .media{
    background-color: rgba(130,128,128,0.2);
    margin-left: 0;
    padding: 12px;
    border-radius: 10px;
  }
}

/* Fix for location input with icon */
.location-wrapper {
  position: relative;
}

.location-wrapper input {
  padding-right: 40px;
}

.location-wrapper .location-icon {
  position: absolute;
  right: 15px;
  top: 70%;
  transform: translateY(-50%);
  pointer-events: none;
}
#searchFilters {
  transition: var(--tr-base);
  background-color: #FBFADA !important;
}

[data-bs-toggle="collapse"][aria-expanded="true"] .fa-chevron-down {
  transform: rotate(180deg);
}

[data-bs-toggle="collapse"] .fa-chevron-down {
  transition: var(--tr-base);
}

#filter-tab{
  background-color: #FBFADA !important;
  color:#12372A !important;
}
#list-sorting-filter + .select2 .select2-selection--single {
  padding-left: 20px;
}
.sort-icon{
  position: relative;
  z-index: 1;
  left: 24px;
}
.icon-w-18 {
  width: 18px !important;
  min-width: 18px !important;
}

.input-with-icon {
  padding-right: 42px !important;
}
.product-tags a{
  text-align: center;
  padding:5px !important;
}
.custom-ml{
  margin-left: 1px;
}
#user-profile{
  object-fit: cover;
}

.popular-categories-section {
  row-gap: 1rem !important;

  .btn {
    color: #0f5132 !important;

    &:hover {
      color: #55a24d !important;
    }
  }
}

.alphabet-diamond-grid {
  gap: 12px;
  padding: 10px 0;
  width: fit-content;
}

.alphabet-filter {
  width: 34px !important;
  height: 34px !important;
  font-size: 14px !important;
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: blur(8px);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
  border-radius: 8px !important;
}

.alphabet-filter:hover {
  background-color: #ffffff !important;
  color: #0d121f !important;
  border-color: #ffffff !important;
  transform: translateY(-8px) scale(1.15) rotate(var(--random-rotate, 0deg));
  box-shadow: 0 15px 30px rgba(255, 255, 255, 0.2) !important;
  z-index: 10;
}

/* Mobile Responsiveness for 8-10-8 Layout */
@media (max-width: 767.98px) {
  .alphabet-diamond-grid {
    gap: 8px;
  }

  .alphabet-filter {
    width: 28px !important;
    height: 28px !important;
    font-size: 11px !important;
  }
}

@media (max-width: 400px) {
  .alphabet-diamond-grid {
    gap: 5px;
  }

  .alphabet-filter {
    width: 22px !important;
    height: 22px !important;
    font-size: 10px !important;
  }
}

/* ===== Featured Businesses Section ===== */
.featured-hero-card {
  min-height: 310px;
}

.featured-hero-overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.80) 0%, rgba(0,0,0,0.30) 55%, transparent 100%);
}

.featured-hero-content {
  min-height: 100%; /* Fill the card height */
}

.featured-category-pill {
  background-color: rgba(240, 168, 120, 0.25);
  color: #954C2E;
  border: 1px solid rgba(149, 76, 46, 0.30);
  font-size: 0.75rem;
}

.featured-biz-icon {
  width: 48px;
  height: 48px;
  font-size: 0.8rem;
  letter-spacing: 1px;
}

.hero-review-glass {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 6px 14px;
  border-radius: 10px;
}
/* ===== End Featured Businesses Section ===== */

.gap-1\.5 {
  gap: 0.375rem !important;
}

.footer-list > li > a:hover {
  color: #954c2e !important;
}

/* ===== About Us Page ===== */
.about-quality-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
  margin-bottom: 1rem;
}

.about-quality-icon--trust {
  background: #dfc2b7;
}

.about-quality-icon--visibility {
  background: rgba(37, 77, 112, 0.12);
  color: #254d70;
}

.about-quality-icon--growth {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
}

/* Darken standard text paragraphs globally on standard light/cream backgrounds */
p:not(.hero-description) {
  color: #2b2b2b !important;
}

/* Darken muted paragraphs and text on standard light/cream backgrounds */
p.text-muted:not(.hero-description),
.text-muted:not(.hero-description) {
  color: #374151 !important;
}
/* ===== End About Us Page ===== */

/* ===== FAQ Page ===== */
.faq-sidebar-link {
  color: #495057;
  border-radius: 6px;
  padding: 8px 12px;
  transition: var(--tr-fast);
}

.faq-sidebar-link:hover,
.faq-sidebar-link.active {
  background-color: #f0e8de;
  color: #254d70;
}

.faq-sidebar-link i {
  color: #254d70;
  width: 20px;
  text-align: center;
}

.faq-cta-section {
  background-color: #254d70;
  border-radius: 16px;
}
/* ===== End FAQ Page ===== */

/* ===== Privacy Policy Page ===== */
.policy-toc {
  top: 100px;
  border-radius: 12px;
  padding: 1.25rem;
}

.policy-toc-link:hover,
.policy-toc-link.active {
  background-color: #f0e8de;
}

.policy-section-heading {
  border-bottom: 2px solid #954c2e;
}

.policy-definition-item {
  background-color: #fdf5ec;
  border-left: 3px solid #954c2e !important;
}

.policy-data-card--email {
  background-color: rgba(37, 77, 112, 0.08);
  color: #254d70;
}

.policy-data-card--name {
  background-color: rgba(149, 76, 46, 0.08);
  color: #954c2e;
}

.policy-data-card--phone {
  background-color: rgba(16, 185, 129, 0.1);
  color: #0d7a5f;
}

.policy-use-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  background-color: rgba(149, 76, 46, 0.1);
}

.policy-section-num {
  font-weight: 400;
  vertical-align: middle;
}

.policy-content-area p,
.policy-content-area li,
.policy-content-area .text-muted,
.policy-content-area .small,
.policy-content-area .definitions-list div,
.policy-content-area .policy-definition-item {
  font-size: 15px !important;
  font-family: var(--font-family-sans-serif, "Segoe UI", Roboto, Arial, sans-serif) !important;
  color: #2b2b2b !important;
  line-height: 1.6 !important;
}
/* ===== End Privacy Policy Page ===== */

/* Mobile Policy TOC / Terms TOC */
.policy-mobile-toc-btn {
  position: fixed;
  bottom: 24px;
  z-index: 1040;
  width: auto !important;
  pointer-events: none;
}

.policy-mobile-toc-btn .btn {
  pointer-events: auto;
  background-color: var(--color-secondary) !important;
  border: 2px solid var(--color-cream) !important;
  color: #FFFFFF !important;
  font-size: 0.9rem;
  padding: 10px 24px !important;
}

.policy-mobile-toc-btn .btn:hover {
  background-color: #7A3A22 !important;
}

.policy-toc-offcanvas {
  height: 60vh !important;
  border-top-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
  border: none !important;
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.15) !important;
}

.policy-toc-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--color-cream);
}

/* ===== Profile Page ===== */
.profile-nav-link {
  transition: var(--tr-base);
  font-weight: 500;
  letter-spacing: 0.01em;
}

.profile-nav-link:hover {
  background-color: #f8f9fa;
  color: #254d70 !important;
}

.profile-nav-link:hover .nav-icon-wrapper {
  background-color: #954c2e;
  color: #ffffff;
  transform: scale(1.1) rotate(5deg);
}

.profile-nav-link.active {
  background-color: #f0e8de;
  color: #954c2e !important;
  border-left-color: #954c2e !important;
  font-weight: 600;
}

.profile-nav-link.active .nav-icon-wrapper {
  background-color: #254d70;
  color: #ffffff;
}

.profile-nav-link.active .fa-chevron-right {
  opacity: 1 !important;
  color: #954c2e !important;
  transform: translateX(3px);
}

.nav-icon-wrapper {
  width: 32px;
  height: 32px;
  background-color: #f1f3f5;
  color: #6c757d;
  font-size: 14px;
  transition: var(--tr-base);
}
/* ===== End Profile Page ===== */
/* ===== Change Password Page ===== */
.cp-lock-circle {
  width: 56px;
  height: 56px;
  background-color: #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-card);
}
/* ===== End Change Password Page ===== */

/* ===== My Listings Page Card Redesign ===== */
.listing-logo-wrapper {
  transition: var(--tr-fast);
  z-index: 10;
  border: 4px solid #fff;
  width: 70px;
  height: 70px;

  img {
    object-fit: contain !important;
  }
}

.mt-n4-custom {
  margin-top: -2.5rem !important;
}

.premium-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 90px;
  height: 90px;
  overflow: hidden;
}

.premium-ribbon span {
  position: absolute;
  display: block;
  width: 130px;
  padding: 6px 0;
  background: linear-gradient(135deg, #ff9d2e 0%, #ff6b00 100%);
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  left: -32px;
  top: 20px;
  transform: rotate(-45deg);
  letter-spacing: 0.5px;
  border-top: 1px solid rgba(255,255,255,0.2);
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.premium-ribbon span i {
  font-size: 7px;
  vertical-align: middle;
  margin: 0 1px;
}

.bg-soft-primary {
  background-color: rgba(37, 77, 112, 0.1) !important;
}

.bg-soft-success {
  background-color: rgba(25, 135, 84, 0.1) !important;
}

.bg-soft-warning {
  background-color: rgba(255, 193, 7, 0.1) !important;
}

.bg-soft-danger {
  background-color: rgba(220, 53, 69, 0.1) !important;
}
/* ===== End My Listings Page Card Redesign ===== */

.premium-unlock-section {
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)) !important
}

.premium-unlock-section::before {
  content: '';
  position: absolute;
  top: -50px;
  right: -50px;
  width: 200px;
  height: 200px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
}

.social-input-group {
  background-color: #FFFFFF !important;
  border: 1px solid var(--color-secondary) !important;
  border-radius: var(--radius-md) !important;
  transition: var(--tr-fast);
}

.social-input-group:focus-within {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 4px rgba(37, 77, 112, 0.1) !important;
}

.social-input-group .form-control {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--color-primary-dark) !important;
}

/* ===== End Social Links Redesign ===== */

/* Business Logo & Photo Gallery Redesign */
.upload-zone {
  border: 2px dashed var(--color-secondary, #954C2E);
  background-color: var(--color-cream, #EFE4D2);
  transition: var(--transition-base, all 0.3s ease);
  min-height: 220px;
  border-radius: var(--radius-lg, 12px);
  cursor: pointer;
}

@media (max-width: 768px) {
  .upload-zone {
    min-height: 160px !important;
    padding: 1.25rem !important;
  }

  .upload-zone h5 {
    font-size: 1.1rem;
  }

  .upload-zone p {
    font-size: 0.8rem;
    margin-bottom: 0.5rem !important;
  }

  .upload-icon-circle {
    width: 54px !important;
    height: 54px !important;
    margin-bottom: 10px !important;
  }

  .upload-icon-circle i {
    font-size: 20px;
  }
}

.upload-zone.dragover {
  background-color: #fcf1de;
  border-color: var(--color-primary, #254D70);
  transform: scale(1.01);
}

.upload-icon-circle {
  width: 70px;
  height: 70px;
  background-color: rgba(37, 77, 112, 0.1);
  color: var(--color-primary, #254D70);
  transition: var(--tr-base);
}

.upload-zone:hover .upload-icon-circle {
  background-color: var(--color-primary, #254D70);
  color: white;
  transform: translateY(-5px);
}

/* Preview Card Enhancements */
.uploaded-logo-container {
  width: 160px;
  height: 160px;
  padding: 10px;
}

@media (max-width: 576px) {
  .uploaded-logo-container {
    width: 120px;
    height: 120px;
  }
}

/* Photo Gallery Enhancements */
.gallery-item-card {
  transition: var(--tr-base);
  height: 200px;
}

@media (max-width: 768px) {
  .gallery-item-card {
    height: 180px;
  }
}

.gallery-item-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.gallery-item-card:hover img {
  transform: scale(1.1);
}

.gallery-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  flex-direction: row;
  gap: 8px;
  z-index: 5;
  transition: var(--tr-base);
}

/* On mobile/touch devices, keep actions visible but slightly transparent until tapped */
@media (max-width: 1024px) {
  .gallery-actions {
    opacity: 0.9;
    background: rgba(255, 255, 255, 0.2);
    padding: 5px;
    border-radius: 20px;
  }
}

.gallery-action-btn {
  width: 36px;
  height: 36px;
  background: rgba(0, 0, 0, 0.6) !important;
  border-radius: 50%;
  border: none;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  transition: var(--tr-bounce);
  cursor: pointer;
  text-decoration: none !important;
}

.gallery-action-btn:hover {
  background: var(--color-primary, #254D70);
  color: white !important;
  transform: translateY(-2px) scale(1.1);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.gallery-action-btn.btn-remove:hover {
  background: #ef4444;
}

.gallery-item-card .badge-default {
  position: absolute;
  bottom: 12px;
  left: 12px;
  z-index: 5;
  background: var(--color-primary, #254D70);
  font-size: 10px;
  letter-spacing: 0.5px;
}

/* Responsive Gallery Height Utility */
.gallery-featured-height {
  height: 350px;
}

@media (max-width: 768px) {
  .gallery-featured-height {
    height: 220px;
  }
}

@media (max-width: 576px) {
  .gallery-featured-height {
    height: 180px;
  }
}

/* Floating Remove Button */
.remove-logo-btn {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #ef4444;
  color: white;
  border: 2px solid white;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  transition: var(--tr-fast);
  padding: 0;
}

.remove-logo-btn:hover {
  background: #dc2626;
  transform: scale(1.1);
  color: white;
}

/* Video Gallery Redesign */
.video-card {
  transition: var(--tr-bounce);
  border-radius: 12px !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
  background: #fff;
}

.video-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08) !important;
}

.empty-video-icon {
  transition: var(--tr-slow);
}

.empty-video-icon:hover {
  transform: rotate(10deg) scale(1.05);
  background: #f8f9fa !important;
  border-color: #dee2e6 !important;
}

/* Global Utility & Claim Details Help Styles */
.transition-all {
  transition: var(--tr-fast) !important;
}

.shadow-sm-hover:hover {
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05) !important;
  background-color: rgba(255, 255, 255, 0.4) !important;
}

.icon-container {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* --- Listing Card Modern Redesign (Minimal) --- */
.listing-card-modern .card-content-wrap {
  border-radius: 2.25rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.listing-card-modern:hover .card-content-wrap {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08);
}

.listing-card-modern .img-container-wrap {
  border-radius: 1.75rem;
  height: 250px;
}

.glass-overlay-box {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* --- List View Logic for Modern Card --- */
.list-details-title-rating {
  display: none;
}

.view-container.list-view .listing-item {
  width: 100% !important;
}

.view-container.list-view .listing-card-modern .card-content-wrap {
  flex-direction: row !important;
  gap: 1.5rem;
}

.view-container.list-view .img-container-wrap {
  width: 35% !important;
  max-width: 300px;
  height: 160px !important;
  flex-shrink: 0;
}

.view-container.list-view .card-details-box-modern {
  padding-top: 0 !important;
  padding-left: 0.5rem !important;
  justify-content: center;
}

@media (max-width: 991px) {
  .view-container.list-view .listing-card-modern .card-content-wrap {
    flex-direction: column !important;
    gap: 0;
  }
  .view-container.list-view .img-container-wrap {
    width: 100% !important;
    max-width: none;
    height: 250px !important;
  }
  .view-container.list-view .card-details-box-modern {
    padding-top: 1.5rem !important;
  }
}

@media (min-width: 992px) {
  .view-container.list-view .glass-overlay-box {
    display: none !important;
  }
  .view-container.list-view .list-details-title-rating {
    display: block !important;
  }
  .view-container.list-view .card-details-box-modern .btn-primary {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    margin-top: 0.75rem !important;
  }
  .view-container.list-view .card-details-box-modern .description-text-modern {
    margin-bottom: 0.5rem !important;
  }
}
/* States Page – Territory Design */
#categories-grid {
  counter-reset: territory-counter;
}

.territory-item {
  counter-increment: territory-counter;
}

.territory-card:hover {
  box-shadow: 0 15px 35px rgba(0,0,0,0.05);
  transform: translateY(-5px);
}

.territory-index::before {
  content: counter(territory-counter, decimal-leading-zero) " . ";
}

.territory-arrow {
  font-size: 0.9rem;
  transition: var(--tr-base);
}

.territory-card:hover .territory-arrow {
  transform: translateX(5px);
}

.territory-line {
  height: 2px;
  width: 40px;
}

@media (max-width: 768px) {
  .territory-card {
    padding: 1.5rem;
  }
}
/* Modern Empty State Sections */
.location-not-found-container {
  max-width: 900px;
  margin: 0 auto;
}

.empty-state-icon {
  transition: var(--tr-base);
}

.location-not-found-container .card:hover .empty-state-icon {
  transform: scale(1.1);
}

.hover-shadow-sm:hover {
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important;
  background-color: #fff !important;
  border-color: var(--bs-secondary) !important;
  color: var(--bs-secondary) !important;
}

/* Header Search Component Specifics */
#mobile-search-wrapper .select2-container--default .select2-selection--single,
#mobile-search-wrapper .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 48px !important;
}

#mobile-search-wrapper .select2-container--default .select2-selection--single .select2-selection__clear {
  top: 14px !important;
}

#mobile-search-wrapper .btn-search-header {
  height: 48px;
  font-weight: 700;
  transition: var(--tr-fast);
}

/* details.hbs mockup redesign styles */
.details-banner-container {
  height: 380px;
  background-size: cover;
  background-position: center;
}

@media (max-width: 767px) {
  .details-banner-container {
    height: auto;
    min-height: 420px;
  }
}

.details-banner-overlay {
  background: linear-gradient(to top, rgba(14,42,69,0.95) 0%, rgba(14,42,69,0.5) 50%, transparent 100%);
}

@media (max-width: 767px) {
  .details-banner-overlay {
    padding: 1.5rem 1rem !important;
    position: relative !important;
    min-height: inherit;
  }
}
.details-tag {
  background-color: #EBEBE6;
  color: #555;
  font-size: 0.8rem;
}
.details-tag-orange {
  background-color: #F8EAE4;
  color: #B45431;
  font-size: 0.8rem;
}
.text-shadow { text-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.max-w-600 { max-width: 600px; }
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bg-orange { background-color: #B45431 !important; }
.listing-details-logo-wrapper {
  width: 200px;
  height: 200px;
  min-width: 200px;
}

@media (max-width: 767px) {
  .listing-details-logo-wrapper {
    width: 140px;
    height: 140px;
    min-width: 140px;
  }
}

.listing-details-logo-img {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}

/* Minimal helper classes for Report Modal */
.btn-check:checked + .report-btn-check {
  background-color: #F8EAE4 !important; /* light orange tint */
  border-color: #B45431 !important;
  color: #B45431 !important;
}

.report-btn-check:hover {
  background-color: #f8f9fa !important;
  color: #B45431 !important;
  border-color: #B45431 !important;
}

.btn-check:checked + .report-btn-check:hover {
  background-color: #F2DAD0 !important;
  color: #B45431 !important;
}

.no-resize {
  resize: none;
}
/* Claim Verification Redesign Utilities */
.btn-hover-grow { transition: var(--tr-fast) !important; }
.btn-hover-grow:hover { transform: scale(1.02) !important; }

/* Custom Sizing Utilities */
.wh-32 { width: 32px !important; height: 32px !important; }
.wh-44 { width: 44px !important; height: 44px !important; }
.wh-72 { width: 72px !important; height: 72px !important; }
.wh-88 { width: 88px !important; height: 88px !important; }
.rounded-4 { border-radius: 1rem !important; }

/* Radio Button & Card Selection Styling */
.btn-check:checked + .custom-radio-btn,
.btn-check:checked + .payment-card-modern {
    border-color: var(--primary-bg-color) !important;
    background-color: var(--primary-bg-transparentcolor) !important;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.08) !important;
}

.btn-check:checked + .custom-radio-btn .radio-icon-bg {
    background-color: var(--primary-bg-color) !important;
    color: #fff !important;
}

.dropzone-refined:hover {
    background-color: var(--primary-bg-transparentcolor) !important;
    border-color: var(--primary-bg-color) !important;
}

/* Stepper Refinements */
.bs-stepper-header .line {
    background-color: #e8ebf3;
}

.step.active .bs-stepper-label {
    color: var(--primary-bg-color) !important;
    font-weight: 700 !important;
}

.step.active .wh-32.bg-primary {
    box-shadow: 0 0 0 4px var(--primary-bg-transparentcolor);
}

/* Payment Card Modern */
.payment-card-modern {
    cursor: pointer;
    transition: var(--tr-bounce);
    border: 1px solid #e8ebf3;
    background: #fff;
    position: relative;
    border-radius: 1rem;
}

.payment-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,0.1) !important;
}

.payment-brand-logo img {
    max-height: 24px;
    max-width: 100%;
}

/* Premium Success Visuals */
.success-icon-wrapper {
    width: 80px;
    height: 80px;
    background: #e1fbd0;
    color: #33a000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    margin: 0 auto 24px;
}

/* Cities Directory – Refactored Premium Design */
.search-pill-modern {
  background: #fff;
  border-radius: 50px;
  padding: 6px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  max-width: 600px;
  margin: 20px auto;
}

.city-pill-link {
  background-color: var(--color-cream) !important;
  color: var(--color-primary-dark) !important;
}

.alphabet-floating-menu {
  right: 25px;
  top: 95px;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(149, 76, 46, 0.1);
  max-height: 70vh;
}

/* Hide scrollbar completely */
.alphabet-floating-menu {
  -ms-overflow-style: none;
  scrollbar-width: none;
  overflow-y: auto;
}

.alphabet-floating-menu::-webkit-scrollbar {
  display: none;
}

.alphabet-link:hover {
  background: #954C2E;
  color: #fff !important;
  transform: scale(1.1);
}

/* Search Highlight Styling */
.search-highlight {
  background: rgba(149, 76, 46, 0.2);
  color: #954C2E;
  padding: 0 2px;
  border-radius: 4px;
  font-weight: 600;
}

.state-cities-content .city-pill-link:hover .search-highlight,
.category-item-link:hover .search-highlight {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.2) !important;
}

.state-cities-content .city-pill-link:hover {
  background-color: #954C2E !important;
  color: #fff !important;
  transform: translateY(-3px);
  box-shadow: 0 10px 15px rgba(149, 76, 46, 0.15);
}

.bg-primary-soft { background-color: var(--primary-bg-transparentcolor) !important; }
.shadow-xs { box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.min-vh-15 { min-height: 15vh; }
.btn-white { background: #fff; color: var(--dark-color); border: 1px solid #e8ebf3; }
.btn-white:hover { background: #f8f9fa; color: var(--primary-bg-color); }

/* Custom Footer Styles */
.footer-heading::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 2px;
  background-color: #954c2e;
  transition: var(--tr-base);
}

.footer-list li {
  transition: var(--tr-fast);
}

.footer-list li:hover {
  transform: translateX(5px);
}

.view-all-link:hover {
  gap: 8px;
  color: #7a3e26 !important;
}

.footer-icon-box i {
  transition: var(--tr-base);
}

.footer-column:hover .footer-icon-box {
  background: #954c2e;
  color: #fff;
}

.footer-column:hover .footer-icon-box i {
  transform: scale(1.1);
}

.footer-column:hover .footer-heading::after {
  width: 100%;
}

/* Stats Section Redesign */
.stat-card {
  transition: var(--tr-bounce);
}

.stat-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 20px 40px rgba(149, 76, 46, 0.12) !important;
}

.stat-icon {
  transition: var(--tr-bounce);
}

.stat-card:hover .stat-icon {
  background: #954c2e;
  color: #fff;
  transform: rotateY(180deg);
}

.footer-links a:hover {
  color: #EFE4D2 !important;
}

.payment-option-card {
  transition: var(--tr-base);
}

.payment-option-card.border-primary {
  border-width: 2px !important;
  border-color: var(--color-primary) !important;
}

.payment-option-card .check-icon {
  opacity: 0;
  transform: scale(0.6);
  transition: var(--tr-bounce);
}

.payment-option-card.border-primary .check-icon {
  opacity: 1;
  transform: scale(1);
}

.payment-option-card:hover {
  transform: translateY(-10px);
}

/* Pricing Horizontal Layout */
@media (min-width: 768px) {
  .border-md-end {
    border-right: 1px solid #dee2e6 !important;
  }
}

/* Premium Loader Design */
#global-loader {
  position: fixed;
  z-index: 100000;
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  background: rgba(255, 255, 255, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.loader-logo-wrapper {
  width: 70px;
  height: 70px;
  z-index: 2;
}

/* Outer spinning ring - more elegant */
.loader-ring {
  position: absolute;
  width: 125px;
  height: 125px;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #12372A;
  border-right-color: #12372A;
  animation: loader-spin 1.5s cubic-bezier(0.5, 0.1, 0.4, 0.9) infinite;
  z-index: 1;
}

.loader-ring::before {
  content: '';
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  bottom: 8px;
  border-radius: 50%;
  border: 3px solid transparent;
  border-top-color: #436850;
  animation: loader-spin 2.5s cubic-bezier(0.5, 0.1, 0.4, 0.9) infinite reverse;
}

@keyframes loader-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Page Load Animation for Header Logo */
@keyframes logo-fade-in {
  0% {
    transform: translateY(-15px);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

.select2-selection--multiple .select2-selection__rendered .select2-search__field {
  height: 38px;
  margin-top: 0 !important;
}

/* Category Ledger Refinements */
.category-item-link {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid transparent !important;
}

.category-item-link:hover {
  background-color: #954C2E !important;
  color: #fff !important;
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 20px rgba(149, 76, 46, 0.2);
  z-index: 2;
}

.state-ledger-block {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.state-ledger-block:hover {
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.05) !important;
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-10px);
  }

  100% {
    transform: translateY(0px);
  }
}

.error-glass-card {
  max-width: 550px;
  background: rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.7);
  padding: 4rem 2rem;
  box-shadow: 0 30px 60px rgba(149, 76, 46, 0.15);
  position: relative; /* Ensure ::before is positioned correctly */
}

.error-icon-box {
  animation: float 4s infinite ease-in-out;
}

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-20px); }
}

/* --- Premium Header Search Trigger --- */
.search-trigger-inner {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.header-search-trigger:hover .search-trigger-inner {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.3);
}

.header-search-trigger:hover .search-trigger-inner span {
  color: #fff !important;
}

.header-search-icon {
  transition: transform 0.4s var(--tr-bounce);
  display: inline-block;
}

.header-search-trigger:hover .header-search-icon {
  transform: rotate(15deg) scale(1.1);
}

.top-bar .header-search-trigger .search-trigger-inner {
  background: #131D4F !important;
  color: #fff;
}
.password-requirements-list li.check { 
  color: var(--bs-success) !important; 
}

.password-requirements-list li.check i { 
  opacity: 1 !important; 
  color: var(--bs-success); 
}

/* Prevent tooltip flickering when cursor is hovering near or over the tooltip element */
.tooltip {
  pointer-events: none !important;
}

/* Ensure that interactive tooltip triggers display a pointer cursor */
[data-toggle="tooltip"], [data-bs-toggle="tooltip"] {
  cursor: pointer !important;
}

.google-map-bg{
  background-color: #fff;
}

@media (max-width: 767px) {
  .tolt-multiline::after {
    width: 180px !important;
    font-size: 10px !important;
    padding: 8px 12px !important;
  }
}

.ml-1 {
  margin-left: 0.2rem !important;
}

/* Specific fix for centered bottom tooltips on small icons */
.tolt-bottom-fix {
  position: relative !important;
  display: inline-flex !important;
  width: fit-content !important;
  align-items: center;
}

.tolt-bottom-fix[data-microtip-position="bottom"]::after {
  left: 50% !important;
  top: 100% !important;
  transform: translate3d(-50%, 5px, 0) !important;
}

.tolt-bottom-fix[data-microtip-position="bottom"]::before {
  left: 50% !important;
  top: 100% !important;
  transform: translate3d(-50%, 0, 0) !important;
}

/* Custom Search Input for View All Pages */
.custom-search-container {
    width: 100%;
    float: left;
    padding: 0 15px;
    margin-bottom: 40px;
}
.custom-search-wrapper {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    position: relative;
}
.custom-search-input {
    width: 100%;
    padding: 15px 20px 15px 50px;
    font-size: 16px;
    border: 1px solid #e5e7f2;
    border-radius: 30px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    outline: none;
    transition: all 0.3s ease;
    background-color: #fff;
    box-sizing: border-box;
    color: #333;
}
.custom-search-input:focus {
    border-color: #4DB7FE;
    box-shadow: 0 4px 20px rgba(77, 183, 254, 0.15);
}
.custom-search-icon {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
    font-size: 18px;
    pointer-events: none;
}

/* Search Highlight Overrides */
mark, .mark,
.dark-theme mark, .dark-theme .mark {
    background-color: #ffc107 !important;
    color: #000 !important;
    padding: 0 2px !important;
    border-radius: 2px !important;
}

/* Overriding style.css high specificity display rule for empty cards */
.cities-state-section .grid-wrapper > div.d-none,
.cities-state-section .card-box.d-none {
    display: none !important;
}

/* How It Works & Timeline Custom Styling */
.process-item_time-line {
  float: left;
  width: 33.333%;
  position: relative;
  z-index: 2;
  padding: 0 15px;
}
.process-item_time-line:before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  top: 20px;
  z-index: 1;
  background: linear-gradient(90deg, rgba(51, 51, 51, 0.1) 0%, var(--primary-bg-color) 50%, rgba(51, 51, 51, 0.1) 100%);
}
.process-item_time-line:first-child:before {
  left: 50%;
}
.process-item_time-line:last-child:before {
  right: 50%;
}
.pi_head {
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 50%;
  font-weight: 800;
  color: #000;
  z-index: 20;
  position: relative;
  text-align: center;
  box-shadow: 0 0 0 6px rgba(51, 51, 51, 0.15);
}
.pi-text {
  background: #fff;
  border-radius: 16px;
  padding: 35px 25px;
  box-shadow: 0 12px 40px rgba(58, 87, 135, 0.05);
  border: 1px solid rgba(51, 51, 51, 0.08);
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  margin-top: 20px;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.pi-text:hover {
  transform: translateY(-8px);
  border-color: rgba(51, 51, 51, 0.3);
  box-shadow: 0 20px 40px rgba(51, 51, 51, 0.12) !important;
}
.icon-wrapper {
  width: 70px;
  height: 70px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin-bottom: 24px;
  transition: all 0.35s ease;
  background: linear-gradient(135deg, rgba(51, 51, 51, 0.05) 0%, rgba(51, 51, 51, 0.12) 100%);
  border: 1px solid rgba(51, 51, 51, 0.1);
}
.icon-wrapper i {
  color: var(--primary-bg-color);
  transition: all 0.35s ease;
}
.pi-text:hover .icon-wrapper {
  transform: scale(1.1) rotate(5deg);
  background: var(--primary-bg-color);
  border-color: var(--primary-bg-color);
  box-shadow: 0 8px 20px rgba(51, 51, 51, 0.3);
}
.pi-text:hover .icon-wrapper i {
  color: #ffffff;
}
.step-title {
  color: var(--primary-bg-color);
  font-weight: 700;
  margin-bottom: 12px;
  font-size: 1.2rem;
  letter-spacing: -0.3px;
}
.step-desc {
  color: #7d93b2;
  font-size: 0.92rem;
  line-height: 1.6;
}
.featured-section {
  padding-bottom: 40px;
}
.how-it-works-section {
  padding-top: 40px;
}
.how-it-works-section .section-title {
  text-align: center;
  padding-bottom: 0.5rem;
}
.how-it-works-section .section-title h2 {
  color: var(--color-primary-dark);
  font-weight: 700;
  font-size: 2.25rem;
  margin-bottom: 0.5rem;
}
.how-it-works-section .section-subtitle {
  color: var(--color-secondary);
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 2px;
  margin-bottom: 0.75rem;
}
.how-it-works-section .section-separator {
  display: inline-block;
  width: 60px;
  height: 3px;
  background-color: var(--color-secondary);
  border-radius: 2px;
}

@media only screen and (max-width: 768px) {
  .process-item_time-line {
    width: 100%;
    margin-bottom: 40px;
  }
  .process-item_time-line:before {
    display: none;
  }
}


/* Nearby Businesses Premium Refactoring */

.nearby-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.nearby-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 8px;
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.nearby-row:hover {
  background: #fafbfd !important;
  border-color: rgba(51, 51, 51, 0.25) !important;
  transform: translateY(-1.5px);
  box-shadow: 0 6px 16px -4px rgba(51, 51, 51, 0.12);
}

.nearby-logo-wrapper {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #f1f5f9;
  background-color: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.nearby-logo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nearby-logo-initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  color: #3e4b5b;
  background: #f9faff;
}

.nearby-info {
  min-width: 0;
  flex: 1;
  padding-left: 10px;
  text-align: left;
}

.nearby-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: #3e4b5b;
  margin-bottom: 2px;
  line-height: 1.3;
}

.nearby-row:hover .nearby-name {
  color: var(--primary-bg-color);
}

.nearby-address {
  font-size: 0.72rem;
  color: #747f93;
  display: flex;
  align-items: flex-start;
  gap: 4px;
  white-space: normal;
}

.nearby-address i {
  color: var(--primary-bg-color);
  font-size: 0.7rem;
  margin-top: 2px;
}

.nearby-meta {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 3px;
  margin-left: 10px;
}

.nearby-distance-badge {
  background-color: rgba(51, 51, 51, 0.08);
  color: var(--primary-bg-color);
  font-size: 0.65rem;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 4px;
  border: 1px solid rgba(51, 51, 51, 0.15);
  white-space: nowrap;
}

.nearby-rating-stars {
  font-size: 0.65rem !important;
}

/* FAQ accordion panels - theme-matched styling (base style.css uses a flat
   #fff background + generic gray border that clashes with the theme) */
.panel.panel-default {
  border: 1px solid var(--primary-3) !important;
  border-radius: 10px !important;
  overflow: hidden;
  box-shadow: 0 2px 6px var(--primary-1);
}

.panel-heading1,
body.forest-sage .panel-heading1.bg-white {
  background-color: var(--primary-1) !important;
}

.panel-title1 a,
.panel-title1 a.collapsed {
  color: var(--dark-color) !important;
}

.panel-title1 a:hover {
  color: var(--primary-bg-hover) !important;
}

.panel-heading1 a:before,
.panel-heading1 a.collapsed:before {
  color: var(--primary-bg-color);
}

/* How It Works cards - theme-matched (base style used a flat white card
   with a neutral gray icon wrapper that clashes with the theme) */
.pi-text {
  background: var(--primary-1) !important;
  border: 1px solid var(--primary-3) !important;
}

.pi-text:hover {
  border-color: var(--primary-bg-color) !important;
}

.icon-wrapper {
  background: linear-gradient(135deg, var(--primary-1) 0%, var(--primary-3) 100%) !important;
  border: 1px solid var(--primary-3) !important;
}

/* Base .icon-wrapper background above is !important, so the pre-existing
   hover rule that darkens it to solid green no longer applies - keep the
   icon color as-is instead of turning white, since white on the light tint
   would be invisible. */
.pi-text:hover .icon-wrapper i {
  color: var(--primary-bg-color) !important;
}

/* Recently Viewed mini-cards - theme-matched (base style used a flat white
   card with a neutral gray icon chip that clashes with the theme).
   Scoped under body.forest-sage to out-specificity the !important rule in
   assets/css/style.css, which loads after this file. */
body.forest-sage .recently-viewed-mini-card {
  background: var(--primary-1) !important;
  border: 1px solid var(--primary-3) !important;
}

body.forest-sage .recently-viewed-mini-card:hover {
  border-color: var(--primary-bg-color) !important;
}

body.forest-sage .mini-card-icon {
  background: var(--primary-1) !important;
  border: 1px solid var(--primary-3) !important;
}

/* Base .mini-card-icon background above is !important, so the pre-existing
   hover rule that darkens it to solid green no longer applies - keep the
   icon color as-is instead of turning white, since white on the light tint
   would be invisible (same issue as the How It Works icon hover). */
.recently-viewed-mini-card:hover .mini-card-icon {
  color: var(--primary-bg-color) !important;
}

/* Listing details FAQ section title - not wrapped in a .card like its
   sibling sections, so it misses the theme's dark-green .card .card-header
   rule and falls back to a rule that sets both background and text to the
   same cream color, making the title invisible. */
#accordion-listing-faq > .card-header {
  background-color: var(--primary-bg-color) !important;
}

#accordion-listing-faq > .card-header .card-title {
  color: var(--secondary-color) !important;
}

/* Common/general utilities if not already defined */
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.min-w-0 {
  min-width: 0 !important;
}

/* Nearby Businesses list rows - theme-matched (flat white/light-blue
   backgrounds that clash with the theme, same pattern as other fixed
   components above). */
.nearby-row {
  background: var(--primary-1) !important;
  border: 1px solid var(--primary-3) !important;
}

.nearby-logo-wrapper {
  background-color: var(--primary-1) !important;
  border: 1px solid var(--primary-3) !important;
}

.nearby-logo-initials {
  background: var(--primary-1) !important;
}

/* "Search Business By Letter" footer card has its own light .card
   background (overriding the ancestor <footer class="bg-dark">'s dark
   background), but its text still inherited the ancestor's forced white
   color !important rule, making the heading invisible against the light
   card. Reset text color for just this card back to the theme's dark
   green - the actually-dark footer section below it (.bg-dark.text-white)
   is untouched since it's a sibling, not a descendant, of this card. */
.main-footer > .card {
  color: var(--dark-color);
}

/* Inner-page hero banners (FAQ, listings, categories, pricing, etc.) wrap
   their title in .text-white, assuming a dark banner background - but
   .top-banner-container's actual background in this theme is a pale mint
   tint (#dbfbda), not dark, so the white title/breadcrumb text washed out
   nearly invisible. The home page's own hero doesn't use .text-white and
   is unaffected. */
.top-banner-container .text-white {
  color: var(--dark-color) !important;
}
