.city-section {
      background: #fafafa;
      padding: 48px 0 52px;
   }
   .city-section-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      margin-bottom: 32px;
      gap: 16px;
   }
   .city-section-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.45rem;
      font-weight: 800;
      color: #1a1a2e;
      margin-bottom: 6px;
   }
   .city-section-sub {
      font-size: .88rem;
      color: #999;
      margin: 0;
   }
   .city-view-all {
      font-size: .85rem;
      font-weight: 700;
      color: #8B1A2B;
      text-decoration: none;
      white-space: nowrap;
      transition: opacity .2s;
      margin-top: 4px;
   }
   .city-view-all:hover { opacity: .75; color: #8B1A2B; }
   .city-pills-wrap {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
   }
   .city-pill-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 20px;
      border-radius: 50px;
      border: 1.5px solid #e0e0e0;
      background: #fff;
      color: #1a1a2e;
      font-size: .88rem;
      font-weight: 600;
      text-decoration: none;
      transition: all .2s;
      white-space: nowrap;
      cursor: pointer;
   }
   .city-pill-btn:hover {
      border-color: #8B1A2B;
      color: #8B1A2B;
      background: #fff5f7;
      text-decoration: none;
   }
   .city-pill-btn--active {
      background: #8B1A2B;
      border-color: #8B1A2B;
      color: #fff !important;
   }
   .city-pill-btn--active:hover {
      background: #e0284c;
      border-color: #e0284c;
      color: #fff !important;
   }
   .city-count {
      font-size: .75rem;
      font-weight: 500;
      opacity: .75;
   }
   .city-pill-btn--active .city-count {
      opacity: .85;
      color: #fff;
   }
   @media (max-width: 575px) {
      .city-section-head { flex-direction: column; }
      .city-pill-btn { font-size: .82rem; padding: 9px 16px; }
   }

.tsc-section {
      background: #fff;
      padding: 56px 0 24px;
   }
   .tsc-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.9rem;
      font-weight: 800;
      color: #1a1a2e;
      text-align: center;
      margin-bottom: 40px;
      letter-spacing: -.3px;
   }
   .tsc-pills-wrap {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 14px;
   }
   .tsc-pill {
      display: inline-block;
      padding: 14px 28px;
      background: #f5f5f3;
      border: none;
      border-radius: 50px;
      font-size: .95rem;
      font-weight: 500;
      color: #1a1a2e;
      text-decoration: none;
      transition: all .2s;
      white-space: nowrap;
   }
   .tsc-pill:hover {
      background: #8B1A2B;
      color: #fff;
      transform: translateY(-2px);
      box-shadow: 0 6px 20px rgba(139,26,43,.25);
      text-decoration: none;
   }
    @media (max-width: 575px) {
       .tsc-section { padding: 32px 0 20px; }
       .tsc-title { font-size: 1.45rem; margin-bottom: 24px; }
       .tsc-pills-wrap { gap: 8px; }
       .tsc-pill  { font-size: .82rem; padding: 9px 18px; }
    }

.faq-section { background: #fafafa; }
      .faq-cat-title {
         font-family: 'Montserrat', sans-serif;
         font-weight: 700;
         font-size: 1.25rem;
         color: #8B1A2B;
         margin-bottom: 24px;
         display: flex;
         align-items: center;
      }
      .faq-item {
         background: #fff;
         border: 1px solid #eaeaea;
         border-radius: 12px;
         margin-bottom: 16px;
         overflow: hidden;
         transition: all .2s;
      }
      .faq-item:hover {
         border-color: #8B1A2B;
         box-shadow: 0 4px 15px rgba(139,26,43,0.08);
      }
      .faq-btn {
         width: 100%;
         text-align: left;
         padding: 18px 24px;
         background: transparent;
         border: none;
         font-weight: 600;
         font-size: .95rem;
         color: #1a1a2e;
         display: flex;
         justify-content: space-between;
         align-items: center;
         cursor: pointer;
         transition: color .2s;
      }
      .faq-btn:hover { color: #8B1A2B; }
      .faq-btn i {
         transition: transform .3s;
         color: #8B1A2B;
         font-size: .85rem;
      }
      .faq-btn.active i { transform: rotate(180deg); }
      .faq-content {
         max-height: 0;
         overflow: hidden;
         transition: max-height .3s ease-in-out;
         background: #fff;
      }
      .faq-content p {
         padding: 0 24px 18px;
         margin: 0;
         font-size: .9rem;
         color: #555;
         line-height: 1.6;
      }

/* Autocomplete Dropdown for Homepage Search */
   .hero-search {
       overflow: visible !important;
   }
   .hero-search-field-wrapper {
       position: relative;
       flex: 1;
       display: flex;
       align-items: center;
       min-width: 0;
   }
   .hero-search-field {
       width: 100%;
       display: flex;
       align-items: center;
       gap: 10px;
       padding: 0 16px;
   }
    @keyframes srpFadeIn {
        from { opacity: 0; transform: translateY(8px); }
        to { opacity: 1; transform: translateY(0); }
    }
    .home-autocomplete-dropdown {
        position: absolute;
        top: calc(100% + 8px);
        left: 50%;
        transform: translateX(-50%);
        width: 600px;
        background: #fff;
        border-radius: 14px;
        box-shadow: 0 10px 40px rgba(0,0,0,0.18);
        border: 1px solid #efefef;
        z-index: 9999;
        max-height: 320px;
        overflow-y: auto;
        text-align: left;
        animation: srpFadeIn 0.15s ease-out forwards;
    }
    @media (max-width: 640px) {
        .home-autocomplete-dropdown {
            width: calc(100vw - 32px);
            left: 0;
            transform: none;
        }
    }
    .home-autocomplete-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 16px;
        cursor: pointer;
        transition: background .15s;
        border-bottom: 1px solid #f5f5f5;
        text-decoration: none;
        color: #1a1a2e !important;
    }
    .home-autocomplete-item:last-child {
        border: none;
    }
    .home-autocomplete-item:hover, .home-autocomplete-item.active-highlight {
        background: #fff5f7;
        color: #8B1A2B !important;
        text-decoration: none;
    }
   .home-autocomplete-img {
       width: 36px;
       height: 36px;
       border-radius: 8px;
       object-fit: cover;
       flex-shrink: 0;
   }
   .home-autocomplete-text {
       flex: 1;
       min-width: 0;
   }
   .home-autocomplete-name {
       font-size: .85rem;
       font-weight: 700;
       white-space: nowrap;
       overflow: hidden;
       text-overflow: ellipsis;
   }
   .home-autocomplete-sub {
       font-size: .72rem;
       color: #aaa;
       white-space: nowrap;
       overflow: hidden;
       text-overflow: ellipsis;
   }

   /* old hero-pill removed */
   
   
   .activity-card{border-radius:14px;border:1px solid #f0f0f0;overflow:hidden;transition:transform .22s,box-shadow .22s;background:#fff;}
   .activity-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.10);}
   .activity-card .card-img-top{height:160px;object-fit:cover;}
   .star-filled{color:#f5a623;}.star-empty{color:#ddd;}
   .cat-card{border-radius:14px;border:1.5px solid #f0f0f0;padding:22px 16px;text-align:center;cursor:pointer;transition:all .22s;background:#fff;text-decoration:none;color:inherit;display:block;}
   .cat-card:hover{border-color:#8B1A2B;box-shadow:0 6px 24px rgba(139,26,43,.12);transform:translateY(-3px);color:inherit;}
   .cat-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-size:1.4rem;}
   .city-pill{border:1.5px solid #e0e0e0;color:#444;background:#fff;font-size:.85rem;transition:all .2s;}
   .city-pill:hover{background:#8B1A2B !important;color:#fff !important;border-color:#8B1A2B !important;}
   .search-tag{background:#f5f5f5;color:#444;font-size:.82rem;font-weight:500;text-decoration:none;border:1px solid #e8e8e8;transition:all .2s;}
   .search-tag:hover{background:#8B1A2B !important;color:#fff !important;border-color:#8B1A2B !important;}
   .blog-card{border-radius:14px;overflow:hidden;border:1px solid #f0f0f0;background:#fff;transition:transform .22s,box-shadow .22s;}
   .blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.10);}
   .blog-card img{height:180px;object-fit:cover;width:100%;}
   .ebc-explore-btn{display:inline-block;background:#8B1A2B;color:#fff;padding:13px 40px;border-radius:50px;font-size:.88rem;font-weight:700;letter-spacing:1px;text-decoration:none;text-transform:uppercase;transition:opacity .2s,transform .2s;}
   .ebc-explore-btn:hover{opacity:.88;color:#fff;transform:translateY(-2px);text-decoration:none;}
   /* old gallery-masonry removed */
   
   
   
   @media(max-width:991px){/* old gallery-masonry removed */}
   @media(max-width:767px){/* old gallery-masonry removed */}
   @media(max-width:480px){/* old gallery-masonry removed */}
/* ===== RECENT ACTIVITY SECTION ===== */
.ra-section {
  background: #f0eeeb;
  padding: 60px 0 70px;
}
.ra-title {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.75rem;
  font-weight: 800;
  color: #1a1a2e;
  margin-bottom: 4px;
}
.ra-sub {
  font-size: .92rem;
  color: #888;
  margin: 0;
}

/* ── Featured Card (left) ─────────────────── */
.ra-feat-card {
  background: #fff;
  border-radius: 20px;
  padding: 22px 22px 18px;
  border: 1px solid #eaeaea;
  box-shadow: 0 2px 16px rgba(0,0,0,.05);
  display: flex;
  flex-direction: column;
}

/* Header row */
.ra-header {
  display: flex;
  align-items: center;
  gap: 12px;
}
.ra-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  flex-shrink: 0;
  overflow: hidden;
}
.ra-meta { display: flex; flex-direction: column; }
.ra-username {
  font-weight: 700;
  font-size: .92rem;
  color: #1a1a2e;
  line-height: 1.25;
}
.ra-time {
  font-size: .78rem;
  color: #999;
}
.ra-more-btn {
  margin-left: auto;
  color: #bbb;
  cursor: pointer;
  font-size: 1rem;
}

/* Featured image grid: fixed 300px total height, Row1=big-left+2stacked-right | Row2=2stacked-left+big-right */
.ra-feat-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 8px;
  height: 360px;
  border-radius: 14px;
  overflow: hidden;
}
.ra-feat-big-left {
  grid-column: 1;
  grid-row: 1;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.ra-feat-grid .ra-feat-stack:nth-of-type(1) {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ra-feat-grid .ra-feat-stack:nth-of-type(2) {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: row;
  gap: 8px;
}
.ra-feat-big-right {
  grid-column: 2;
  grid-row: 2;
  border-radius: 12px;
  overflow: hidden;
}
.ra-feat-img-wrap {
  height: 100%;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.ra-feat-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  border-radius: 10px;
}
.ra-feat-stack { overflow: hidden; }
.ra-feat-stack .ra-feat-img { flex: 1; min-height: 0; }
.ra-feat-left  { display: none; }
.ra-feat-right { display: none; }
.ra-feat-right-row { display: none; }

/* Featured badges */
.ra-feat-badges {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ra-badge {
  font-size: .72rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: .3px;
}
.ra-badge--red   { background: #8B1A2B; color: #fff; }
.ra-badge--light { background: rgba(255,255,255,.92); color: #333; border: 1px solid #eee; }

/* Comment quote */
.ra-feat-comment {
  font-size: .9rem;
  color: #555;
  font-style: italic;
  line-height: 1.6;
  margin: 0 0 14px;
  flex: 1;
}

/* Business row */
.ra-feat-biz-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: #fafafa;
  border-radius: 12px;
  border: 1px solid #eee;
  margin-bottom: 4px;
}
.ra-feat-biz-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.ra-feat-biz-icon {
  width: 36px;
  height: 36px;
  background: #f0f0f0;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #888;
  flex-shrink: 0;
}
.ra-feat-bizname {
  font-weight: 800;
  font-size: .9rem;
  color: #1a1a2e;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.ra-feat-bizname:hover { color: #8B1A2B; }
.ra-feat-stars {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-top: 2px;
}
.ra-feat-stars .fa-star  { color: #f5a623; font-size: .78rem; }
.ra-feat-stars .fa-star-o { color: #ddd; font-size: .78rem; }
.ra-feat-rating-num {
  font-weight: 800;
  font-size: .78rem;
  color: #1a1a2e;
  margin-left: 4px;
}
.ra-feat-review-count {
  font-size: .73rem;
  color: #aaa;
  margin-left: 3px;
}
.ra-feat-visit-btn {
  flex-shrink: 0;
  background: #fff;
  border: 1.5px solid #ddd;
  color: #333;
  font-size: .78rem;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color .15s, color .15s;
}
.ra-feat-visit-btn:hover { border-color: #8B1A2B; color: #8B1A2B; text-decoration: none; }

/* Reactions row */
.ra-reactions {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 12px;
  border-top: 1px solid #f0f2f5;
  margin-top: auto;
}
.ra-react {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .84rem;
  font-weight: 600;
  color: #666;
  cursor: pointer;
  transition: color .15s;
}
.ra-react:hover { color: #111; }
.ra-react-icon         { font-size: 1rem; }
.ra-react-icon--heart  { color: #8B1A2B; }
.ra-react-icon--thumb  { color: #3b82f6; }
.ra-react-icon--comment { color: #3b82f6; }
.ra-react-actions      { display: flex; align-items: center; }

/* ── Sidebar Items (right column) ─────────── */
.ra-sidebar {
  justify-content: space-between;
}
.ra-side-item {
  background: #fff;
  border-radius: 16px;
  padding: 16px 16px;
  border: 1px solid #eaeaea;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  display: flex;
  align-items: flex-start;
  gap: 14px;
  transition: transform .18s, box-shadow .18s;
  flex: 1;
}
.ra-side-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
}

/* Colored icon badge */
.ra-side-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .82rem;
  flex-shrink: 0;
  margin-top: 2px;
}

/* Text content */
.ra-side-content {
  flex: 1;
  min-width: 0;
}
.ra-side-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 4px;
}
.ra-side-user {
  font-weight: 700;
  font-size: .85rem;
  color: #1a1a2e;
}
.ra-side-dot {
  color: #bbb;
  font-size: .75rem;
}
.ra-side-time {
  font-size: .78rem;
  color: #999;
}
.ra-side-comment {
  font-size: .83rem;
  color: #555;
  line-height: 1.55;
  margin: 0 0 8px;
}
.ra-side-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.ra-side-bizname {
  font-weight: 700;
  font-size: .8rem;
  color: #8B1A2B;
  text-decoration: none;
}
.ra-side-bizname:hover { text-decoration: underline; }
.ra-side-rating {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: #8B1A2B;
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
}
.ra-side-rating .fa-star { font-size: .68rem; }
.ra-side-tag {
  background: #f3f3f3;
  color: #666;
  font-size: .72rem;
  padding: 2px 8px;
  border-radius: 20px;
  border: 1px solid #e8e8e8;
}

/* Thumbnail */
.ra-side-thumb-wrap {
  flex-shrink: 0;
}
.ra-side-thumb {
  width: 72px;
  height: 72px;
  border-radius: 10px;
  object-fit: cover;
  display: block;
}

/* View More button */
.ra-view-more-btn {
  display: inline-block;
  background: #8B1A2B;
  color: #fff;
  padding: 15px 44px;
  border-radius: 50px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-decoration: none;
  text-transform: uppercase;
  transition: opacity .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 8px 24px rgba(139,26,43,.3);
}
.ra-view-more-btn:hover {
  opacity: .88;
  color: #fff;
  transform: translateY(-2px);
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(139,26,43,.4);
}

/* Responsive tweaks */
@media(max-width: 991px) {
  .ra-sidebar { gap: 14px; }
  .ra-feat-grid { height: 260px; }
}
@media(max-width: 767px) {
  .ra-feat-grid { grid-template-columns: 1fr 1fr; height: 220px; }
  .ra-side-thumb { width: 60px; height: 60px; }
}

/* ===== TURN LOCAL SEARCH SECTION ===== */
.tls-section {
  background: linear-gradient(135deg, #fff5f5 0%, #fff 50%, #fff5f5 100%);
}
.tls-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 900;
  letter-spacing: 1px;
  line-height: 1.1;
}
.tls-black { color: #1a1a1a; }
.tls-red   { color: #8B1A2B; }
.tls-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.2rem, 2.5vw, 1.8rem);
  font-weight: 800;
  color: #555;
  letter-spacing: 2px;
  margin-top: 4px;
}

/* Left column feature icons */
.tls-features-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-left: 0;
}
.tls-feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 140px;
  text-align: center;
}
.tls-feature--active .tls-icon-wrap { box-shadow: 0 8px 28px rgba(0,0,0,.18); }
.tls-icon-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  margin-bottom: 10px;
  transition: transform .2s;
}
.tls-icon-wrap--teal {
  background: #1a9e9e;
  color: #fff;
}
.tls-icon-wrap--light {
  background: #f5f5f5;
  color: #888;
  border: 1.5px dashed #ddd;
}
.tls-feature-label {
  font-size: .85rem;
  font-weight: 600;
  color: #1a1a1a;
  text-align: center;
  line-height: 1.3;
}
.tls-feature-label--muted { color: #888; font-weight: 400; }
/* tls-connector styles moved to animated block below */

/* Right column feature points */
.tls-point {
  padding-left: 18px;
  border-left: 3px solid #e8e8e8;
  transition: border-color .2s;
}
.tls-point--active {
  border-left-color: #8B1A2B;
}
.tls-point-title {
  font-size: .95rem;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
}
.tls-point-title--red { color: #8B1A2B; }
.tls-point-desc {
  font-size: .85rem;
  color: #666;
  line-height: 1.6;
  margin-bottom: 0;
}
.tls-btn {
  display: inline-flex;
  align-items: center;
  background: #1a1a1a;
  color: #fff;
  padding: 13px 28px;
  border-radius: 50px;
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
  transition: background .2s, transform .2s;
  letter-spacing: .3px;
}
.tls-btn:hover {
  background: #8B1A2B;
  color: #fff;
  transform: translateY(-2px);
}

/* Left column - VERTICAL layout */
.tls-features-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-left: 0;
}
.tls-feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 140px;
  text-align: center;
}
.tls-feature--active .tls-icon-wrap { box-shadow: 0 8px 28px rgba(0,0,0,.18); }
.tls-icon-wrap {
  width: 80px; height: 80px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.7rem;
  margin-bottom: 12px;
  flex-shrink: 0;
}
.tls-icon-wrap--teal { background: #1a9e9e; color: #fff; }
.tls-icon-wrap--light { background: #f0f0f0; color: #888; border: 2px dashed #ccc; }
.tls-feature-label { font-size: .88rem; font-weight: 700; color: #1a1a1a; text-align: center; line-height: 1.4; }
.tls-feature-label--muted { color: #999; font-weight: 400; }
/* ===== ANIMATED CURVED CONNECTOR (SVG) ===== */
.tls-connector {
  width: 50px;
  height: 80px;
  align-self: center;
  margin: 0;
  flex-shrink: 0;
}
.tls-conn-svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
/* Gray background track */
.tls-conn-bg {
  fill: none;
  stroke: #ddd;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 6 5;
}
/* Animated colored fill path */
.tls-conn-fill {
  fill: none;
  stroke: #8B1A2B;
  stroke-width: 2.5;
  stroke-linecap: round;
  /* dashoffset set by JS via getTotalLength() */
  stroke-dasharray: 9999;
  stroke-dashoffset: 9999;
  transition: stroke-dashoffset 1.9s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Pulse dot - rendered as a small SVG circle via filter trick on connector wrapper */
.tls-connector.tls-connector--active .tls-conn-fill {
  filter: drop-shadow(0 0 4px rgba(139,26,43, 0.5));
}
.tls-connector.tls-connector--done .tls-conn-bg {
  stroke: transparent;
}

/* Active icon state */
.tls-icon-wrap--active {
  background: #8B1A2B !important;
  color: #fff !important;
  border-color: #8B1A2B !important;
  box-shadow: 0 8px 28px rgba(139,26,43, 0.35) !important;
  transform: scale(1.08);
}
/* Active right-column point */
.tls-point--step-active {
  border-left-color: #8B1A2B !important;
}
.tls-point--step-active .tls-point-title {
  color: #8B1A2B !important;
}

/* Animated connector enabled for mobile */

/* ===== EXPLORE BY CATEGORY CARDS ===== */
.ebc-card {
  display: block;
  text-decoration: none;
  border-radius: 18px;
  padding: 28px 24px 24px;
  transition: transform .22s, box-shadow .22s;
  height: 100%;
  color: inherit;
}
.ebc-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 36px rgba(0,0,0,.10);
  color: inherit;
  text-decoration: none;
}
.ebc-icon {
  font-size: 1.8rem;
  color: #2d2d2d;
  margin-bottom: 20px;
  line-height: 1;
}
.ebc-name {
  font-size: .95rem;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 6px;
  font-family: 'Montserrat', sans-serif;
}
.ebc-sub {
  font-size: .82rem;
  color: #888;
  line-height: 1.4;
}

/* ===== BLOG CARDS ===== */
.blog-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #f0f0f0;
  transition: transform .22s, box-shadow .22s;
  display: flex;
  flex-direction: column;
}
.blog-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 40px rgba(0,0,0,.10);
}
.blog-card-img-wrap { display: block; overflow: hidden; }
.blog-card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}
.blog-card:hover .blog-card-img { transform: scale(1.04); }
.blog-card-img--placeholder {
  width: 100%;
  height: 200px;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ccc;
  font-size: 2rem;
}
.blog-card-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog-card-date {
  font-size: .75rem;
  color: #8B1A2B;
  font-weight: 600;
  letter-spacing: .3px;
  margin-bottom: 8px;
  display: block;
}
.blog-card-title {
  font-size: .97rem;
  font-weight: 700;
  color: #1a1a1a;
  text-decoration: none;
  line-height: 1.4;
  margin-bottom: 10px;
  display: block;
  font-family: 'Montserrat', sans-serif;
}
.blog-card-title:hover { color: #8B1A2B; }
.blog-card-desc {
  font-size: .82rem;
  color: #777;
  line-height: 1.6;
  flex: 1;
  margin-bottom: 14px;
}
.blog-card-author {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #f5f5f5;
}
.blog-author-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.blog-author-av--letter {
  background: #8B1A2B;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  font-weight: 700;
}
.blog-author-name {
  font-size: .8rem;
  color: #555;
  font-weight: 500;
}

/* ===== BLOG CARDS (Screenshot Style) ===== */
.blg-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #f0f0f0;
  transition: transform .22s, box-shadow .22s;
}
.blg-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 40px rgba(0,0,0,.12);
  color: inherit;
  text-decoration: none;
}
.blg-img-wrap {
  position: relative;
  overflow: hidden;
}
.blg-img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}
.blg-card:hover .blg-img { transform: scale(1.05); }
.blg-img-placeholder {
  width: 100%;
  height: 180px;
  background: #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ccc;
  font-size: 2rem;
}
.blg-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.blg-rating {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #fff;
  color: #1a1a1a;
  font-size: .78rem;
  font-weight: 700;
  padding: 4px 9px;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.blg-rating .fa-star { color: #f5a623; font-size: .75rem; }
.blg-body {
  padding: 16px;
}
.blg-title {
  font-size: .95rem;
  font-weight: 700;
  color: #1a1a1a;
  margin-bottom: 4px;
  font-family: 'Montserrat', sans-serif;
  line-height: 1.3;
}
.blg-sub {
  font-size: .72rem;
  color: #999;
  font-weight: 600;
  letter-spacing: .5px;
  margin-bottom: 14px;
  text-transform: uppercase;
}
.blg-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid #f5f5f5;
}
.blg-footer-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.blg-footer-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.blg-av-stack {
  display: flex;
  align-items: center;
}
.blg-av {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid #fff;
  margin-left: -6px;
  object-fit: cover;
  flex-shrink: 0;
}
.blg-av:first-child { margin-left: 0; }
.blg-av-letter {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .65rem;
  font-weight: 700;
  color: #fff;
}
.blg-reviews {
  font-size: .72rem;
  color: #999;
  font-weight: 500;
}
.blg-read {
  font-size: .7rem;
  color: #999;
  font-weight: 600;
  letter-spacing: .3px;
}
.blg-arrow {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid #ddd;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  color: #555;
  transition: all .2s;
}
.blg-card:hover .blg-arrow {
  background: #8B1A2B;
  border-color: #8B1A2B;
  color: #fff;
}
.blg-explore-btn {
  display: inline-block;
  background: #8B1A2B;
  color: #fff;
  padding: 14px 40px;
  border-radius: 50px;
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity .2s, transform .2s;
}
.blg-explore-btn:hover {
  opacity: .9;
  transform: translateY(-2px);
  color: #fff;
  text-decoration: none;
}

/* ===== GALLERY MASONRY (Screenshot Style) ===== */
.gal-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.gal-grid-bottom {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}
.gal-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gal-item {
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}
.gal-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.gal-item:hover img { transform: scale(1.05); }
.gal-item--tall  { height: 220px; }
.gal-item--mid   { height: 160px; }
.gal-item--short { height: 140px; }
.gal-item--wide  { height: 240px; }

/* Responsive */
@media (max-width: 991px) {
  .gal-grid { grid-template-columns: repeat(2, 1fr); }
  .gal-grid-bottom { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .gal-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .gal-grid-bottom { gap: 8px; }
  .gal-item--tall  { height: 160px; }
  .gal-item--mid   { height: 130px; }
  .gal-item--short { height: 110px; }
  .gal-item--wide  { height: 180px; }
}

/* ===== STATIC GALLERY (Screenshot Exact) ===== */
.sg-wrap { display: flex; flex-direction: column; gap: 12px; }

.sg-top {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  align-items: stretch;
}
.sg-bottom {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 12px;
}
.sg-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.sg-item {
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
}
.sg-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.sg-item:hover img { transform: scale(1.05); }
.sg-item--wide { height: 250px; border-radius: 14px; overflow: hidden; }
.sg-item--wide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s; }
.sg-item--wide:hover img { transform: scale(1.04); }

/* ── Gallery cursor pointer ── */
.sg-item[data-gal-index] { cursor: zoom-in; }

/* ── Lightbox ── */
.gal-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.92);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: galFadeIn .2s ease;
}
@keyframes galFadeIn { from { opacity:0; } to { opacity:1; } }

.gal-lb-img-wrap {
  max-width: 90vw;
  max-height: 88vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gal-lb-img {
  max-width: 90vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 8px 48px rgba(0,0,0,.6);
  animation: galImgIn .2s ease;
}
@keyframes galImgIn { from { transform:scale(.96); opacity:0; } to { transform:scale(1); opacity:1; } }

.gal-lb-close {
  position: fixed;
  top: 18px;
  right: 22px;
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
  z-index: 10001;
}
.gal-lb-close:hover { background: rgba(255,255,255,.3); }

.gal-lb-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.15);
  border: none;
  color: #fff;
  font-size: 3rem;
  line-height: 1;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
  z-index: 10001;
  user-select: none;
}
.gal-lb-nav:hover { background: rgba(255,255,255,.3); }
.gal-lb-prev { left: 16px; }
.gal-lb-next { right: 16px; }

.gal-lb-counter {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  background: rgba(0,0,0,.4);
  padding: 5px 16px;
  border-radius: 20px;
  z-index: 10001;
}

@media (max-width: 575px) {
  .gal-lb-nav { width: 42px; height: 42px; font-size: 2.2rem; }
  .gal-lb-prev { left: 6px; }
  .gal-lb-next { right: 6px; }
}

@media (max-width: 991px) {
  .sg-top { grid-template-columns: repeat(2, 1fr); }
  .sg-bottom { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .sg-top { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .sg-bottom { gap: 8px; }
  .sg-top .sg-item { height: 130px !important; }
  .sg-item--wide { height: 180px; }
  
  /* Reduce gallery in phone view: hide middle row and bottom row */
  .sg-wrap > .sg-top:nth-of-type(2),
  .sg-wrap > .sg-bottom {
     display: none !important;
  }

  /* Hide the 2nd stacked image in columns so they are all uniform height and eliminate blank gaps */
  .sg-col > .sg-item:nth-child(n+2) {
     display: none !important;
  }

  /* Add simple mobile animations for a more dynamic feel */
  @keyframes mobileFadeUp {
     from { opacity: 0; transform: translateY(15px); }
     to { opacity: 1; transform: translateY(0); }
  }
  .ra-section .row > div {
     animation: mobileFadeUp 0.6s ease forwards;
  }
  .ebc-card {
     animation: mobileFadeUp 0.6s ease forwards;
  }

  /* Explore by Category: show two cards in one row phone styling */
  .ebc-card {
     padding: 16px 14px !important;
     border-radius: 14px !important;
  }
  .ebc-icon {
     font-size: 1.5rem !important;
     margin-bottom: 12px !important;
  }
  .ebc-name {
     font-size: 0.82rem !important;
     margin-bottom: 4px !important;
  }
  .ebc-sub {
     font-size: 0.7rem !important;
  }

  /* Horizontal Scrollable Blog Section for Phone View */
  #blogCardsGrid {
     display: flex !important;
     flex-wrap: nowrap !important;
     overflow-x: auto !important;
     scroll-snap-type: x mandatory;
     -webkit-overflow-scrolling: touch;
     padding-bottom: 16px !important;
     margin-right: -15px !important;
     margin-left: -15px !important;
     padding-right: 15px !important;
     padding-left: 15px !important;
  }
  #blogCardsGrid::-webkit-scrollbar {
     display: none !important;
  }
  #blogCardsGrid > div {
     flex: 0 0 260px !important;
     max-width: 260px !important;
     width: 260px !important;
     scroll-snap-align: start;
  }
}

/* ===== HERO SECTION (Screenshot Match) ===== */
.hero-section {
  position: relative;
  min-height: 560px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* overflow: hidden removed — was clipping the search autocomplete dropdown */
}

/* Slider background slides */
.hero-slides {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden; /* clip slides here instead, not on the whole section */
}
.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.4s ease-in-out;
}
.hero-slide.active {
  opacity: 1;
}
/* Dark overlay on top of every slide */
.hero-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.52);
}

.hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  padding: 60px 20px 70px;
  text-align: center;
  color: #fff;
}

/* Category pills */
.hero-pills-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 36px;
}
.hero-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 50px;
  border: 1.5px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: .88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all .2s;
  backdrop-filter: blur(4px);
}
.hero-cat-pill:hover {
  background: rgba(255,255,255,0.25);
  border-color: rgba(255,255,255,0.8);
}
.hero-cat-pill--active {
  background: #8B1A2B !important;
  border-color: #8B1A2B !important;
  color: #fff !important;
}
.hero-cat-pill i { font-size: .82rem; }

/* Heading */
.hero-heading {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.15;
  margin-bottom: 12px;
  letter-spacing: -.5px;
}
.hero-sub {
  font-size: .95rem;
  color: rgba(255,255,255,.75);
  margin-bottom: 10px;
  font-weight: 400;
}
.hero-desc {
  font-size: .92rem;
  color: rgba(255,255,255,.8);
  line-height: 1.7;
  margin-bottom: 32px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* Search bar */
.hero-search {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 50px;
  overflow: hidden;
  max-width: 700px;
  margin: 0 auto;
  box-shadow: 0 8px 40px rgba(0,0,0,.22);
  padding: 6px 6px 6px 0;
}
.hero-search-field {
  display: flex;
  align-items: center;
  flex: 1;
  padding: 0 18px;
  gap: 10px;
  min-width: 0;
}
.hero-search-icon {
  color: #aaa;
  font-size: .9rem;
  flex-shrink: 0;
}
.hero-search-input {
  border: none;
  outline: none;
  background: transparent;
  font-size: .92rem;
  color: #333;
  width: 100%;
  padding: 10px 0;
}
.hero-search-input::placeholder { color: #aaa; }
.hero-search-divider {
  width: 1px;
  height: 28px;
  background: #e5e5e5;
  flex-shrink: 0;
}
.hero-search-btn {
  background: #8B1A2B;
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 12px 32px;
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .2s;
  flex-shrink: 0;
  margin-left: 6px;
}
.hero-search-btn:hover { opacity: .88; }

@media (max-width: 575px) {
  .hero-search { flex-wrap: wrap; border-radius: 16px; padding: 10px; gap: 8px; }
  .hero-search-field { width: 100%; }
  .hero-search-divider { display: none; }
  .hero-search-btn { width: 100%; border-radius: 10px; text-align: center; }
  .hero-pills-row { gap: 7px; }
  .hero-cat-pill { font-size: .78rem; padding: 7px 14px; }
}
