/*
Theme Name:  ClickUpLocal
Template:    hello-elementor
Description: ClickUpLocal child theme — GeoDirectory directory listings with a clean, local-first design.
Version:     1.1.0
Author:      ClickUpLocal
Text Domain: clickuplocal
*/

/* ── Design tokens ─────────────────────────────────────────────────────────── */
:root {
  --cul-brand:        #1B3A5C;
  --cul-brand-hover:  #152e4a;
  --cul-accent:       #E87722;
  --cul-green:        #4caf50;
  --cul-green-light:  #e8f5e9;
  --cul-yellow:       #f5a623;
  --cul-yellow-light: #FDF7E3;
  --cul-g50:          #EEF4FB;
  --cul-g100:         #e0e8f0;
  --cul-g200:         #d0dce8;
  --cul-g500:         #888;
  --cul-g700:         #444;
  --cul-g900:         #1a1a2e;
  --cul-white:        #ffffff;
  --cul-radius-card:  12px;
  --cul-radius-pill:  100px;
  --cul-font:         'DM Sans', system-ui, sans-serif;
  --cul-font-display: 'Poppins', sans-serif;
  --font-heading:     'Poppins', sans-serif;
  --font-body:        'DM Sans', sans-serif;
  --cul-shadow-card:  0 1px 3px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.06);
}

/* ── Base resets ───────────────────────────────────────────────────────────── */
body {
  font-family: var(--cul-font);
}

body.page-template-default,
body.archive-gd_place,
body.gd_place-archive {
  background: var(--cul-g50);
  color: var(--cul-g900);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--cul-font-display);
  font-weight: 700;
}

/* ── Neutralize Hello Elementor .site-main width cap on archive pages ────── */
body.archive-gd_place .site-main,
body.post-type-archive-gd_place .site-main,
body.gd_place-archive .site-main {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
}

body.archive-gd_place .site-main .page-content,
body.post-type-archive-gd_place .site-main .page-content,
body.archive-gd_place .site-main .entry-content,
body.post-type-archive-gd_place .site-main .entry-content,
body.archive-gd_place .site-main > article,
body.post-type-archive-gd_place .site-main > article,
body.geodir-page-search .site-main,
body.geodir-page-search .site-main .page-content,
body.geodir-page-search .site-main .entry-content,
body.geodir-page-search .site-main > .page-content > article,
body.geodir-page-search .site-main > article,
body.geodir-archive .site-main,
body.geodir-archive .site-main .page-content,
body.geodir-archive .site-main .entry-content,
body.geodir-archive .site-main > .page-content > article,
body.geodir-archive .site-main > article {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.archive-gd_place,
body.post-type-archive-gd_place,
body.gd_place-archive {
  overflow-x: hidden;
}

/* ── Hide GD default archive header ("Place post type." / "All Places") ──── */
body.archive-gd_place .geodir-category-description,
body.post-type-archive-gd_place .geodir-category-description,
body.archive-gd_place .archive-description,
body.post-type-archive-gd_place .archive-description,
body.archive-gd_place .page-header,
body.post-type-archive-gd_place .page-header,
body.archive-gd_place .entry-header,
body.post-type-archive-gd_place .entry-header,
body.archive-gd_place .page-title,
body.post-type-archive-gd_place .page-title,
body.archive-gd_place .geodir-common .geodir-cat-list-title,
body.post-type-archive-gd_place .geodir-common .geodir-cat-list-title,
body.archive-gd_place .geodir-archive-title,
body.post-type-archive-gd_place .geodir-archive-title,
body.archive-gd_place h1.entry-title,
body.post-type-archive-gd_place h1.entry-title,
body.archive-gd_place .geodir_category_list_main .geodir-cat-list-title,
body.post-type-archive-gd_place .geodir_category_list_main .geodir-cat-list-title,
body.post-type-archive-gd_place .site-main > article > header,
body.post-type-archive-gd_place .site-main h1.entry-title,
body.post-type-archive-gd_place .site-main > .page-header,
body.post-type-archive-gd_place .site-main h1,
body.archive-gd_place .site-main h1,
body.geodir-page-search .site-main h1,
body.geodir-page-search .site-main h2.entry-title,
body.geodir-archive .site-main h2.entry-title,
body.post-type-archive-gd_place .site-main h2.entry-title {
  display: none !important;
}

/* ── Neutralize Hello Elementor .site-main width cap on single listing ────── */
body.single-gd_place .site-main {
  max-width: 100%;
  width: 100%;
  padding-inline-start: 0;
  padding-inline-end: 0;
}

/* ── GeoDirectory list container ───────────────────────────────────────────── */
.geodir-category-list-view {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.geodir-category-list-view li {
  overflow: hidden;
  min-width: 0;
  width: 100%;
}

/* ── Old v1 card styles removed — see "Business Card v3" block below ───────── */

/* ── Score bars ────────────────────────────────────────────────────────────── */
.cul-score-bars {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}
.cul-score-bar-row {
  width: 100%;
}
.cul-score-bar-track {
  position: relative;
  width: 100%;
  height: 20px;
  background: #e8e5e0;
  border-radius: 100px;
  overflow: hidden;
}
.cul-score-bar-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  border-radius: 100px;
  width: var(--w);
  animation: cul-bar-grow 0.8s cubic-bezier(.25,.8,.25,1) both;
}
.cul-score-bar-inner-label {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  z-index: 2;
  white-space: nowrap;
  pointer-events: none;
}

/* ── Archive hero ──────────────────────────────────────────────────────────── */
.cul-archive-hero {
  width: 100%;
  background: #1B3A5C;
  padding: 32px 20px;
  box-sizing: border-box;
}

.cul-archive-hero__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.cul-archive-hero__title {
  font-family: var(--cul-font-display);
  font-size: clamp(18px, 3vw, 26px);
  color: var(--cul-white);
  margin: 0 0 4px;
  font-weight: 400;
  text-align: left;
}

.cul-archive-hero__sub {
  font-size: 14px;
  color: rgba(255,255,255,0.5);
  margin: 0 0 16px;
}

.cul-search-bar--hero .cul-search-bar__input {
  background: #ffffff;
  border: none;
  border-radius: 10px;
  padding: 14px 20px;
  font-size: 17px;
  width: 100%;
  max-width: 100%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
.cul-search-bar--hero .cul-search-bar__input:focus {
  outline: none;
  box-shadow: 0 4px 24px rgba(0,0,0,0.25);
}

.cul-cat-filter--hero .cul-cat-filter__btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.5);
  color: rgba(255,255,255,0.9);
}

.cul-cat-filter--hero .cul-cat-filter__btn:hover,
.cul-cat-filter--hero .cul-cat-filter__btn.is-active {
  background: #ffffff;
  border-color: #ffffff;
  color: #1B3A5C;
}

/* ── Archive CTA card ──────────────────────────────────────────────────────── */
.cul-archive-cta {
  background: #f0f0f0;
  border-radius: 0;
  padding: 40px 36px;
  text-align: center;
  margin: 20px 0 0;
  width: 100%;
  box-sizing: border-box;
}

.cul-archive-cta__heading {
  font-size: 23px;
  font-weight: 700;
  color: #1B3A5C;
  margin: 0 0 12px;
}

.cul-archive-cta__sub {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
  margin: 0 0 24px;
}

.cul-archive-cta__btn {
  display: inline-block;
  background: #E87722;
  color: #ffffff;
  text-decoration: none;
  padding: 12px 28px;
  border-radius: 8px;
  border: 2px solid #E87722;
  font-size: 16px;
  font-weight: 700;
  transition: background 0.2s;
}

.cul-archive-cta__btn:hover {
  background: #d06a1e;
  border-color: #d06a1e;
  color: #ffffff;
}

/* ── Archive layout ────────────────────────────────────────────────────────── */
.cul-archive-wrap {
  max-width: 1140px;
  width: 100%;
  margin: 0 auto;
  padding: 20px 20px 0;
  box-sizing: border-box;
  overflow: hidden;
  overflow-x: hidden;
}

/* ── Category filter pills ─────────────────────────────────────────────────── */
.cul-cat-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.cul-cat-filter:last-of-type {
  margin-bottom: 20px;
}

.cul-cat-filter__btn {
  font-family: var(--cul-font);
  font-size: 13px;
  font-weight: 500;
  padding: 5px 14px;
  border-radius: var(--cul-radius-pill);
  border: none;
  background: var(--cul-g100);
  color: var(--cul-g700);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}

.cul-cat-filter__btn:hover,
.cul-cat-filter__btn.is-active {
  background: var(--cul-brand);
  color: var(--cul-white);
}

.cul-cat-filter--sub {
  padding-left: 6px;
  border-left: 2px solid var(--cul-g200);
  margin-bottom: 20px;
}

.cul-cat-filter--sub .cul-cat-filter__btn {
  font-size: 14px;
  padding: 3px 11px;
  background: transparent;
  border: 0.5px solid var(--cul-g200);
  color: var(--cul-g500);
}

.cul-cat-filter--sub .cul-cat-filter__btn:hover,
.cul-cat-filter--sub .cul-cat-filter__btn.is-active {
  background: var(--cul-brand);
  border-color: var(--cul-brand);
  color: var(--cul-white);
}

/* ── Search bar ────────────────────────────────────────────────────────────── */
.cul-search-bar {
  margin-bottom: 12px;
}

.cul-search-bar__input {
  width: 100%;
  font-family: var(--cul-font);
  font-size: 15px;
  color: var(--cul-g900);
  background: var(--cul-white);
  border: 1px solid var(--cul-g200);
  border-radius: var(--cul-radius-pill);
  padding: 9px 18px;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.cul-search-bar__input:focus {
  border-color: var(--cul-brand);
  box-shadow: 0 0 0 3px rgba(28,58,92,0.1);
}

.cul-search-bar__input::placeholder {
  color: var(--cul-g500);
}

/* ── Results count ─────────────────────────────────────────────────────────── */
.cul-results-count {
  font-size: 15px;
  color: var(--cul-g500);
  margin: 0 0 12px;
}

.cul-no-results {
  text-align: center;
  padding: 48px 0;
  color: var(--cul-g500);
  font-size: 15px;
  margin: 0;
}

/* ── Mobile ────────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .geodir-category-list-view {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .cul-archive-hero {
    padding: 24px 16px;
  }

  .cul-archive-wrap {
    padding: 16px 12px 48px;
  }


}

/* ── Pagination ────────────────────────────────────────────────────────────── */
.cul-pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
}

.cul-pagination .page-numbers {
  font-family: var(--cul-font);
  font-size: 14px;
  font-weight: 500;
  padding: 7px 14px;
  border-radius: var(--cul-radius-pill);
  border: 0.5px solid var(--cul-g200);
  background: var(--cul-white);
  color: var(--cul-brand);
  text-decoration: none;
  transition: background 0.15s;
}

.cul-pagination .page-numbers.current,
.cul-pagination .page-numbers:hover {
  background: var(--cul-brand);
  color: var(--cul-white);
  border-color: var(--cul-brand);
}

/* ── Unclaimed / unverified badge ──────────────────────────────────────────── */
.geodir-unclaimed,
.gd-unclaimed-badge,
.geodir-claim-listing-badge,
.cul-badge-unclaimed {
  background: transparent !important;
  border: none !important;
  color: #9AA5B1 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  display: inline !important;
  box-shadow: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* ── [cul_more_in_category] shortcode ──────────────────────────────────────── */
.cul-more-in-category {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 0.5px solid #D6E6F5;
}

.cul-more-in-category__heading {
  font-size: 13px;
  font-weight: 600;
  color: #1B3A5C;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin: 0 0 14px;
}

.cul-more-in-category__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cul-more-in-category__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 0.5px solid #EEF4FB;
}

.cul-more-in-category__item:last-child {
  border-bottom: none;
}

.cul-more-in-category__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.cul-more-in-category__name {
  font-size: 15px;
  font-weight: 500;
  color: #1B3A5C;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cul-more-in-category__name:hover {
  text-decoration: underline;
}

.cul-more-in-category__cat {
  font-size: 12px;
  color: #7A8A9A;
  margin-top: 2px;
}

.cul-mic-score {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 100px;
  flex-shrink: 0;
  margin-left: 8px;
}

.cul-mic-score.cul-score--high {
  background: #E8F5E9;
  color: #2E7D32;
}

.cul-mic-score.cul-score--mid {
  background: #FFF3E0;
  color: #E65100;
}

.cul-mic-score.cul-score--low {
  background: #FDECEA;
  color: #B71C1C;
}

/* ── Hide logo on single listing page ──────────────────────────────────────── */
body.single-gd_place .geodir_post_meta_logo,
body.single-gd_place .geodir-listing-logo,
body.single-gd_place .gd-logo-wrap,
body.single-gd_place .geodir_post_meta_image,
body.single-gd_place .cul-listing-logo {
  display: none !important;
}

@keyframes cul-bar-grow {
    from { width: 0%; }
    to { width: var(--w); }
}

/* ── Score explainer ──────────────────────────────────────────────────────── */
.cul-score-explainer {
  margin-top: 8px;
}
.cul-score-explainer__toggle {
  background: none;
  border: none;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  color: #3d5a99;
  cursor: pointer;
  text-decoration: underline;
  font-family: var(--cul-font);
}
.cul-score-explainer__toggle:hover {
  color: #1B3A5C;
}
.cul-score-explainer__panel {
  display: none;
  margin-top: 10px;
  padding: 12px;
  background: #f5f4f0;
  border-radius: 8px;
  flex-direction: column;
  gap: 10px;
}
.cul-score-explainer__panel.is-open {
  display: flex;
}
.cul-score-explainer__row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.cul-score-explainer__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.cul-score-explainer__row strong {
  font-size: 12px;
  font-weight: 700;
  color: #1B3A5C;
  display: block;
}
.cul-score-explainer__row p {
  font-size: 12px;
  color: #666;
  margin: 0;
  line-height: 1.4;
}

.cul-score-tap-hint {
  font-size: 11px;
  color: #aaa;
  margin-top: 4px;
  text-align: left;
}

.cul-score-bars:hover {
  opacity: 0.85;
  transition: opacity 0.2s;
}

/* ── Archive split layout ─────────────────────────────────────────────────── */
.cul-archive-split {
    display: grid;
    grid-template-columns: 1fr 420px;
    align-items: start;
    max-width: 100%;
}
.cul-archive-split__listings {
    order: 1;
    padding: 24px;
    min-width: 0;
}
.cul-archive-split__map {
    order: 2;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}
.cul-archive-split__map > div,
.cul-archive-split__map .geodir-map-canvas {
    width: 100% !important;
    height: 100% !important;
}
@media (max-width: 900px) {
    .cul-archive-split {
        grid-template-columns: 1fr;
    }
    .cul-archive-split__map {
        position: relative;
        height: 350px;
    }
}

/* Match Elementor header width to content on archive pages */
body.archive-gd_place .elementor-location-header .e-con,
body.archive-gd_place .elementor-location-header .elementor-container,
body.archive-gd_place .elementor-location-header .elementor-section .elementor-container {
    max-width: 1100px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Remove underlines on dashboard listing cards */
.cul-dash .cul-dash__listings-grid a,
.cul-dash .cul-dash__listings-grid a:hover {
    text-decoration: none;
}

/* Override Hello Elementor width cap on full-width CUL pages */
body.cul-full-width-page .site-main,
body.cul-full-width-page .content-area,
body.cul-full-width-page .page-content {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background-color: #EEF4FB !important;
}

/* Business Card — Final ────────────────────────────────────────────────────── */
.cul-fcard {
  display: flex;
  align-items: stretch;
  background: #ffffff;
  border: 0.5px solid rgba(0,0,0,0.1);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  font-family: var(--cul-font);
  transition: box-shadow 0.15s, transform 0.15s;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
}

.cul-fcard * {
  box-sizing: border-box;
  text-decoration: none;
}
a.cul-fcard,
a.cul-fcard:hover,
a.cul-fcard:focus,
a.cul-fcard:active,
a.cul-fcard *  {
  text-decoration: none !important;
}

.cul-fcard:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,.06), 0 6px 20px rgba(0,0,0,.07);
  transform: translateY(-1px);
  text-decoration: none;
}

/* ── Card state: offer ─────────────────────────────────────────────────────── */
.cul-fcard--offer {
  border: 1.5px solid #E87722;
  box-shadow: 0 2px 12px rgba(232,119,34,0.1);
}
.cul-fcard--offer .cul-fcard__score {
  background: #E87722;
}

/* ── Card state: claimed ───────────────────────────────────────────────────── */
.cul-fcard--claimed {
  border: 1.5px solid rgba(76,175,80,0.4);
  background: #FAFFFA;
}
.cul-fcard--claimed .cul-fcard__score {
  background: #388E3C;
}

/* ── Card state: unclaimed ─────────────────────────────────────────────────── */
.cul-fcard--unclaimed {
  border: 0.5px solid rgba(0,0,0,0.1);
  background: #ffffff;
}

/* ── Score block (left edge) ───────────────────────────────────────────────── */
.cul-fcard__score {
  width: 72px;
  min-width: 72px;
  flex-shrink: 0;
  background: #1B3A5C;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
}

.cul-score-num {
  font-family: var(--cul-font);
  font-size: 23px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: #ffffff;
  line-height: 1;
}

/* ── Content area (middle) ─────────────────────────────────────────────────── */
.cul-fcard__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16px 18px;
  min-height: 160px;
}

.cul-fcard__name {
  font-family: var(--font-heading);
  font-size: 19px;
  font-weight: 700;
  color: #1a1a2e;
  line-height: 1.2;
  margin-bottom: 3px;
}

.cul-fcard__subtitle {
  font-size: 15px;
  color: #888;
  margin-bottom: 10px;
}

.cul-fcard__desc {
  font-size: 17px;
  color: #555;
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Footer row ────────────────────────────────────────────────────────────── */
.cul-fcard__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 0.5px solid rgba(0,0,0,0.08);
}

/* ── Status badge (shared) ─────────────────────────────────────────────────── */
.cul-fcard__badge {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}

.cul-fcard__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cul-fcard__badge-check {
  display: none;
  flex-shrink: 0;
}

/* Badge: offer */
.cul-fcard__badge--offer {
  background: #FFF3E0;
  color: #B25B00;
}
.cul-fcard__badge--offer .cul-fcard__badge-dot {
  background: #E87722;
}

/* Badge: claimed */
.cul-fcard__badge--claimed {
  background: rgba(76,175,80,0.15);
  color: #4caf50;
  border: 1px solid rgba(76,175,80,0.4);
}
.cul-fcard__badge--claimed .cul-fcard__badge-dot {
  display: none;
}
.cul-fcard__badge--claimed .cul-fcard__badge-check {
  display: flex;
}

/* Badge: unclaimed */
.cul-fcard__badge--unclaimed {
  background: #F3F4F6;
  color: #999;
}
.cul-fcard__badge--unclaimed .cul-fcard__badge-dot {
  background: #D1D5DB;
}

/* ── View listing link ─────────────────────────────────────────────────────── */
.cul-fcard__action {
  font-size: 15px;
  font-weight: 500;
  color: #1B3A5C !important;
  white-space: nowrap;
  flex-shrink: 0;
}

.cul-fcard:hover .cul-fcard__action {
  text-decoration: underline;
}

/* ── Photo (right edge) ────────────────────────────────────────────────────── */
.cul-fcard__photo {
  position: relative;
  width: 180px;
  min-width: 180px;
  flex-shrink: 0;
  overflow: hidden;
}

.cul-fcard__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── Final card mobile ─────────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .cul-fcard {
    flex-direction: column;
  }
  .cul-fcard__score {
    width: 100%;
    min-width: 0;
    padding: 12px 0;
    order: 1;
  }
  .cul-fcard__content {
    order: 2;
  }
  .cul-fcard__photo {
    width: 100%;
    min-width: 0;
    height: 180px;
    order: 3;
  }
}

/* Business Card v3 — cul-card ──────────────────────────────────────────────── */
.cul-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 0.5px solid #d0dce8;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(27,58,92,0.04);
}
.cul-card *,
.cul-card *::before,
.cul-card *::after {
  box-sizing: border-box;
}
a.cul-card,
a.cul-card:hover,
a.cul-card:focus,
a.cul-card:active,
a.cul-card * {
  text-decoration: none !important;
}
.cul-card:hover {
  border-color: #E87722;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(27,58,92,0.10);
}
.cul-card--offer:hover {
  box-shadow: 0 6px 18px rgba(232,119,34,0.18);
}
/* ── Image row (only present when cul-card--has-image) ──────────────────────── */
.cul-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  width: 100%;
  flex: 1;
}
.cul-card__col {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.cul-card__image {
  overflow: hidden;
  background-color: #eef2f9;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
@media (max-width: 640px) {
  .cul-card__row   { grid-template-columns: 1fr; }
  .cul-card__image { display: none; }
  .cul-card__col   { display: block; }
}

/* ── Card body ───────────────────────────────────────────────────────────────── */
.cul-card__body {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
}
.cul-card__name {
  font-family: 'Poppins', sans-serif !important;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #1B3A5C;
  white-space: normal;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.25;
}
.cul-card__meta {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px;
  font-weight: 500;
  color: #7a9ab8;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: normal;
  flex-wrap: wrap;
  overflow: visible;
}
.cul-card__desc {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px;
  color: #44607f;
  line-height: 1.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* ── Card footer ─────────────────────────────────────────────────────────────── */
.cul-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 20px 16px;
  border-top: 0;
  background: transparent;
}
.cul-card__footer-score {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 16px;
  font-weight: 600;
  color: #3d5a99;
}
.cul-card__footer-link {
  font-family: 'Poppins', sans-serif !important;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #E87722;
}
/* ── Offer strip ─────────────────────────────────────────────────────────────── */
.cul-card__offer-strip {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #f0c898;
  cursor: pointer;
}
.cul-card__offer-left {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  background: #fdecd8;
  transition: background 0.15s;
}
.cul-card:hover .cul-card__offer-left {
  background: #faddbe;
}
.cul-card__offer-right {
  display: flex;
  align-items: center;
  padding: 10px 20px;
  background: #E87722;
  transition: background 0.15s;
}
.cul-card:hover .cul-card__offer-right {
  background: #c85f10;
}
.cul-card__offer-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c85f10;
  flex-shrink: 0;
  animation: cul-blink 1.8s ease-in-out infinite;
}
@keyframes cul-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}
.cul-card__offer-name {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 17px;
  color: #a04a0a;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1;
}
.cul-card__offer-cta {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-size: 17px;
  color: white;
  font-weight: 500;
  white-space: nowrap;
}
/* ── Load more button ────────────────────────────────────────────────────────── */
.cul-loadmore-wrap {
  text-align: center;
  margin-top: 20px;
}
.cul-loadmore-btn,
.cul-loadmore-btn:hover,
.cul-loadmore-btn:active,
.cul-loadmore-btn:focus,
.cul-loadmore-btn:visited {
  background: none !important;
  border: none !important;
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 15px;
  font-weight: 600;
  padding: 0 !important;
  cursor: pointer;
  outline: none !important;
  -webkit-tap-highlight-color: transparent;
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none !important;
}
.cul-loadmore-btn {
  color: #1B3A5C !important;
  transition: color 0.15s;
}
.cul-loadmore-btn:hover {
  color: #E87722 !important;
}
.cul-loadmore-btn:active,
.cul-loadmore-btn:focus {
  color: #1B3A5C !important;
}
/* ── Mobile ──────────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .cul-card__name {
    white-space: normal;
  }
}

/* ── Hero category buttons ──────────────────────────────────────────────── */
.cul-cat-btn-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.cul-cat-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.12);
  border: 0.5px solid rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
  padding: 6px 12px;
  text-decoration: none;
  transition: background 0.15s ease;
}
.cul-cat-btn:hover {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}
.cul-cat-chevron {
  color: rgba(255, 255, 255, 0.35);
  font-size: 17px;
  line-height: 1;
}

/* ── Category breadcrumbs (hero) ─────────────────────────────────────── */
.cul-breadcrumb-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.cul-breadcrumb-row .cul-breadcrumb-link,
.cul-breadcrumb-row a.cul-breadcrumb-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.12);
  border: 0.5px solid rgba(255, 255, 255, 0.25);
  color: #fff !important;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
  padding: 6px 12px;
  text-decoration: none;
  transition: background 0.15s ease;
}
.cul-breadcrumb-row .cul-breadcrumb-link:hover,
.cul-breadcrumb-row a.cul-breadcrumb-link:hover {
  background: rgba(255, 255, 255, 0.22);
  color: #fff !important;
}
.cul-breadcrumb-sep {
  color: rgba(255, 255, 255, 0.35);
  font-size: 17px;
  line-height: 1;
}

/* ── Contact Bar (inline in main content) ──────────────────────────────── */
.cul-contact-map-wrap {
  display: flex;
  gap: 0;
  border: 0.5px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  margin: 16px 0 24px;
  align-items: stretch;
}
.cul-contact-col {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}
.cul-contact-cell {
  padding: 10px 14px;
  border-bottom: 0.5px solid #e0e0e0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 500;
  color: #1a1a2e;
}
.cul-contact-col .cul-contact-cell:last-child {
  border-bottom: none;
}
.cul-contact-cell svg {
  flex-shrink: 0;
}
.cul-contact-address {
  color: #1B3A5C;
  text-decoration: none;
}
.cul-contact-phone {
  color: #1a1a2e;
  text-decoration: none;
}
.cul-contact-website {
  color: #1B3A5C;
  text-decoration: none;
}
.cul-contact-social {
  gap: 12px;
}
.cul-contact-social a {
  display: flex;
  align-items: center;
}
.cul-social-link {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: #1B3A5C;
  font-size: 16px;
  font-weight: 500;
}
.cul-social-link:hover {
  text-decoration: underline;
  color: #1B3A5C;
}
.cul-social-label {
  color: #1B3A5C;
}
.cul-map-col {
  flex: 0 0 50%;
  border-left: 0.5px solid #e0e0e0;
  overflow: hidden;
}
.cul-map-col iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 160px;
  border: none;
}
@media (max-width: 768px) {
  .cul-map-col {
    display: none;
  }
  .cul-contact-col .cul-contact-cell:last-child {
    border-bottom: none;
  }
  .cul-breadcrumb-row {
    justify-content: center;
  }
}

/* ── Hide GeoDirectory "no listings found" alert ──────────────────────────── */
.geodir-notice,
.geodir-notices-wrapper .geodir-alert-none,
.gd_notifications {
  display: none !important;
}