/* =========================================================================
   Store listing — Dokan [dokan-stores]   (markup verified against Dokan source)
   Component rules are scoped to Dokan's own IDs, so they win over Dokan's
   theme-colour CSS and work even if the page isn't detected. Page-frame rules
   use :is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) = body.fmke-store-listing OR any page containing the listing.
   ========================================================================= */

:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) {
  --fmke-i-store-sl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M4 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 0'/%3E%3C/svg%3E");
  --fmke-i-funnel-sl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E");
  --fmke-i-pin-sl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
  --fmke-i-search-sl: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.3-4.3'/%3E%3C/svg%3E");
}

/* ---- Page frame ------------------------------------------------------ */
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .site-content { background: #F6F3EE; padding: 8px 0 56px; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .site-content > .col-full { max-width: 1280px; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .content-area { float: none !important; width: 100% !important; margin: 0 !important; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .widget-area,
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) #secondary { display: none !important; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .hentry { margin-bottom: 0; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-header { margin: 0 0 24px; padding: 0; border: 0; text-align: center; }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-title {
  position: relative; margin: 30px 0 0; padding-bottom: 14px;
  font-family: 'Fraunces', Georgia, serif; font-size: 32px; font-weight: 600; line-height: 1.2; color: var(--fmke-dark);
}
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-title::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 44px; height: 4px; border-radius: 4px; background: var(--fmke-primary);
}
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-content { margin: 0; color: var(--fmke-dark); }
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-content::after,
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .dokan-seller-wrap::before,
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .dokan-seller-wrap::after,
:is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .dokan-clearfix { display: none !important; }

/* =========================================================================
   Toolbar: count · Filter · Sort · grid/list toggle
   ========================================================================= */
#dokan-store-listing-filter-wrap {
  display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px;
  box-sizing: border-box; width: 100%;
  margin: 0 0 18px !important; padding: 12px 16px !important;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 16px; box-shadow: var(--fmke-shadow);
}
#dokan-store-listing-filter-wrap::before,
#dokan-store-listing-filter-wrap::after { display: none !important; }
#dokan-store-listing-filter-wrap .left,
#dokan-store-listing-filter-wrap .right {
  float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important;
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}
#dokan-store-listing-filter-wrap .item { float: none !important; margin: 0 !important; padding: 0 !important; display: flex; align-items: center; gap: 8px; }
#dokan-store-listing-filter-wrap .dokan-icons { display: none !important; }   /* decorative mobile dots */

/* Count, with an orange store icon on a tinted circle (two background layers) */
#dokan-store-listing-filter-wrap .store-count {
  display: flex; align-items: center; gap: 10px; margin: 0;
  font-size: 14.5px; font-weight: 700; color: var(--fmke-dark);
}
#dokan-store-listing-filter-wrap .store-count::before {
  content: ""; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M4 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0 5 0'/%3E%3C/svg%3E") center / 18px 18px no-repeat,
    var(--fmke-primary-light);
}

/* Filter button: outlined orange pill with a funnel */
#dokan-store-listing-filter-wrap .dokan-store-list-filter-button {
  display: inline-flex !important; align-items: center; gap: 8px;
  box-sizing: border-box; min-height: 42px; margin: 0; padding: 0 20px !important;
  background: #fff !important; background-image: none !important; color: var(--fmke-primary-dark) !important;
  border: 0 !important; border-radius: 999px !important;
  box-shadow: inset 0 0 0 1.5px var(--fmke-primary) !important;
  font-size: 14px !important; font-weight: 800 !important; line-height: 1 !important; text-transform: none !important; text-shadow: none !important; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#dokan-store-listing-filter-wrap .dokan-store-list-filter-button::before {
  content: ""; width: 16px; height: 16px; background-color: currentColor;
  -webkit-mask: var(--fmke-i-funnel-sl) center / contain no-repeat; mask: var(--fmke-i-funnel-sl) center / contain no-repeat;
}
#dokan-store-listing-filter-wrap .dokan-store-list-filter-button:hover { background: var(--fmke-primary) !important; color: #fff !important; }

/* Sort */
#dokan-store-listing-filter-wrap form.sort-by { display: flex; align-items: center; gap: 8px; margin: 0 !important; }
#dokan-store-listing-filter-wrap form.sort-by label { margin: 0; font-size: 13px; font-weight: 700; color: var(--fmke-muted); white-space: nowrap; }
#dokan-store-listing-filter-wrap select,
#dokan-store-listing-filter-form-wrap select {
  box-sizing: border-box; height: 42px; min-height: 42px; margin: 0; padding: 0 36px 0 16px !important;
  border: 1.5px solid var(--fmke-border) !important; border-radius: 999px !important;
  background-color: #fff !important; color: var(--fmke-dark);
  font-size: 14px; font-weight: 700; box-shadow: none !important; cursor: pointer;
}
#dokan-store-listing-filter-wrap select:focus { outline: none; border-color: var(--fmke-primary) !important; box-shadow: 0 0 0 3px rgba(255,106,0,.16) !important; }

/* Grid / list toggle (Dokan uses dashicons spans) */
#dokan-store-listing-filter-wrap .toggle-view { display: flex; gap: 6px; }
#dokan-store-listing-filter-wrap .toggle-view .dashicons {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 40px; height: 40px; margin: 0 !important; padding: 0 !important; box-sizing: border-box;
  border: 1.5px solid var(--fmke-border); border-radius: 12px; background: #fff;
  color: var(--fmke-muted); font-size: 20px; line-height: 1; cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
#dokan-store-listing-filter-wrap .toggle-view .dashicons:hover,
#dokan-store-listing-filter-wrap .toggle-view .dashicons.active {
  border-color: var(--fmke-primary); color: var(--fmke-primary); background: var(--fmke-primary-light);
}

/* =========================================================================
   Filter panel (a <form>; Dokan toggles its inline display, so don't set display)
   ========================================================================= */
#dokan-store-listing-filter-form-wrap {
  box-sizing: border-box; margin: 0 0 18px !important; padding: 20px !important;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 16px; box-shadow: var(--fmke-shadow);
}
#dokan-store-listing-filter-form-wrap .store-search { float: none !important; width: 100% !important; margin: 0 0 16px !important; padding: 0 !important; position: relative; }
#dokan-store-listing-filter-form-wrap .store-search::before {
  content: ""; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; pointer-events: none;
  background-color: var(--fmke-primary);
  -webkit-mask: var(--fmke-i-search-sl) center / contain no-repeat; mask: var(--fmke-i-search-sl) center / contain no-repeat;
}
#dokan-store-listing-filter-form-wrap .store-search-input,
#dokan-store-listing-filter-form-wrap input[type="search"],
#dokan-store-listing-filter-form-wrap input[type="text"] {
  width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 16px 12px 44px;
  border: 1.5px solid var(--fmke-border) !important; border-radius: 999px !important;
  background: #fff !important; color: var(--fmke-dark); font-size: 15px; box-shadow: none !important;
}
#dokan-store-listing-filter-form-wrap input:focus { outline: none; border-color: var(--fmke-primary) !important; box-shadow: 0 0 0 3px rgba(255,106,0,.16) !important; }
#dokan-store-listing-filter-form-wrap select { width: 100%; }
#dokan-store-listing-filter-form-wrap .apply-filter { display: flex; justify-content: flex-end; gap: 10px; margin: 0; padding: 0; }
#dokan-store-listing-filter-form-wrap .apply-filter .dokan-btn {
  display: inline-flex !important; align-items: center; justify-content: center; box-sizing: border-box; min-height: 42px; margin: 0;
  padding: 0 26px !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important;
  font-size: 14px !important; font-weight: 800 !important; line-height: 1 !important; text-transform: none !important; text-shadow: none !important; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
#dokan-store-listing-filter-form-wrap #apply-filter-btn { background: var(--fmke-primary) !important; color: #fff !important; }
#dokan-store-listing-filter-form-wrap #apply-filter-btn:hover { background: var(--fmke-primary-dark) !important; }
#dokan-store-listing-filter-form-wrap #cancel-filter-btn { background: #fff !important; color: var(--fmke-muted) !important; box-shadow: inset 0 0 0 1.5px var(--fmke-border) !important; }
#dokan-store-listing-filter-form-wrap #cancel-filter-btn:hover { background: var(--fmke-primary-light) !important; color: var(--fmke-primary-dark) !important; }

/* =========================================================================
   Store cards
   ========================================================================= */
#dokan-seller-listing-wrap { margin: 0; }
#dokan-seller-listing-wrap ul.dokan-seller-wrap {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
  gap: 22px;
  list-style: none !important; margin: 0 !important; padding: 0 !important;
}
#dokan-seller-listing-wrap ul.dokan-seller-wrap > li.dokan-single-seller {
  float: none !important; width: auto !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important; min-width: 0; list-style: none;
}
#dokan-seller-listing-wrap .store-wrapper {
  position: relative; display: flex; flex-direction: column; height: 100%;
  box-sizing: border-box; overflow: hidden;
  background: #fff; border: 1px solid var(--fmke-border) !important; border-radius: 18px !important;
  box-shadow: var(--fmke-shadow) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
#dokan-seller-listing-wrap .store-wrapper:hover { transform: translateY(-4px); box-shadow: var(--fmke-shadow-hover) !important; border-color: var(--fmke-primary) !important; }

/* Banner */
#dokan-seller-listing-wrap .store-header { position: relative; margin: 0; padding: 0; }
/* Dokan forces .store-banner{min-height:220px} at higher specificity, so this needs !important */
#dokan-seller-listing-wrap .store-banner { position: relative; height: 152px; min-height: 0 !important; margin: 0; overflow: hidden; background: linear-gradient(135deg, var(--fmke-primary-light), #FFE3C2); }
/* Stores with no banner get Dokan's grey placeholder image: hide it so the orange gradient + a store icon show instead */
#dokan-seller-listing-wrap .store-banner img[src*="default-store-banner"] { display: none; }
#dokan-seller-listing-wrap .store-banner:has(img[src*="default-store-banner"])::before {
  content: ""; position: absolute; left: 50%; top: 42%; width: 54px; height: 54px; transform: translate(-50%, -50%); pointer-events: none;
  background-color: rgba(255,106,0,.38);
  -webkit-mask: var(--fmke-i-store-sl) center / contain no-repeat; mask: var(--fmke-i-store-sl) center / contain no-repeat;
}
#dokan-seller-listing-wrap .store-banner::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(31,61,44,.10), rgba(31,61,44,0) 45%, rgba(31,61,44,.30));
}
#dokan-seller-listing-wrap .store-banner a { display: block; height: 100%; }
#dokan-seller-listing-wrap .store-banner img { display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: cover; transition: transform .35s ease; }
#dokan-seller-listing-wrap .store-wrapper:hover .store-banner img { transform: scale(1.05); }

/* Avatar overlaps the banner edge.
   Dokan makes .store-footer position:relative and places the avatar top:-70px / right:20px / 80px
   relative to it (at higher specificity). That only lines up when the text overlays the banner; with the
   text in normal flow it would land on the store name. So the footer goes static and the avatar is
   anchored to .store-wrapper (position:relative) instead. */
#dokan-seller-listing-wrap .store-wrapper .store-footer { position: static !important; }
#dokan-seller-listing-wrap .store-wrapper .store-footer .seller-avatar {
  position: absolute !important; top: 120px !important; left: 18px !important; right: auto !important; bottom: auto !important; z-index: 2;
  width: 64px !important; height: 64px !important; margin: 0 !important; padding: 0 !important; overflow: hidden;
  background: #fff; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 4px 12px rgba(31,61,44,.2);
}
#dokan-seller-listing-wrap .seller-avatar a { display: block; width: 100%; height: 100%; }
#dokan-seller-listing-wrap .seller-avatar img { display: block; width: 100% !important; height: 100% !important; max-width: none; margin: 0; object-fit: cover; border-radius: 50%; }

/* Featured badge (top-left) + Open/Closed status (top-right) */
#dokan-seller-listing-wrap .featured-favourite {
  position: absolute; top: 12px; left: 12px; z-index: 3; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 8px;
}
#dokan-seller-listing-wrap .featured-label {
  float: none !important; position: static !important; margin: 0 !important; padding: 5px 12px;
  background: var(--fmke-primary) !important; color: #fff !important; border-radius: 999px;
  font-size: 11.5px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase; line-height: 1.2;
  box-shadow: 0 4px 10px rgba(255,106,0,.35);
}
#dokan-seller-listing-wrap .dokan-store-is-open-close-status {
  position: absolute !important; top: 12px; right: 12px; left: auto !important; bottom: auto !important; z-index: 3;
  margin: 0 !important; padding: 5px 12px !important; border-radius: 999px !important;
  font-size: 11.5px !important; font-weight: 800 !important; line-height: 1.2 !important; text-transform: uppercase; letter-spacing: .3px;
  color: #fff !important; box-shadow: 0 4px 10px rgba(0,0,0,.18);
}
#dokan-seller-listing-wrap .dokan-store-is-open-status { background: #1E8E3E !important; }
#dokan-seller-listing-wrap .dokan-store-is-closed-status { background: var(--fmke-sale) !important; }

/* Text */
/* Dokan's grid view makes .store-content an absolutely-positioned, full-height overlay
   (rgba(0,0,0,.45), white text) sitting ON TOP of the banner. Put it back in normal flow, below the banner. */
#dokan-seller-listing-wrap .store-wrapper .store-content {
  position: static !important; width: auto !important; height: auto !important;
  flex: 1; margin: 0; padding: 0 !important; background: transparent !important; color: var(--fmke-dark) !important; border: 0;
}
/* top padding clears the avatar; !important because Dokan sets .store-data-container{padding:5px 20px} at higher specificity */
#dokan-seller-listing-wrap .store-wrapper .store-content .store-data-container { padding: 42px 18px 6px !important; }
#dokan-seller-listing-wrap .store-data { margin: 0; padding: 0; }
#dokan-seller-listing-wrap .store-data h2 {
  margin: 0 0 6px; padding: 0;
  font-family: 'Fraunces', Georgia, serif; font-size: 20px; font-weight: 600; line-height: 1.25; color: var(--fmke-dark);
}
#dokan-seller-listing-wrap .store-data h2 a { color: var(--fmke-dark) !important; font-size: inherit !important; text-shadow: none !important; text-decoration: none !important; transition: color .15s ease; }
#dokan-seller-listing-wrap .store-data h2 a:hover { color: var(--fmke-primary-dark) !important; }

/* Rating: dashicon stars + "4.5 out of 5" */
#dokan-seller-listing-wrap .dokan-seller-rating { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; margin: 0 0 8px; line-height: 1; }
#dokan-seller-listing-wrap .dokan-seller-rating .dashicons { width: 17px; height: 17px; font-size: 17px; line-height: 1; color: #F5A623; }
#dokan-seller-listing-wrap .dokan-seller-rating .dashicons-star-empty { color: #D9CFC4; }
#dokan-seller-listing-wrap .dokan-seller-rating p.rating { margin: 0; font-size: 12px; font-weight: 600; color: var(--fmke-muted); }

#dokan-seller-listing-wrap .store-address,
#dokan-seller-listing-wrap .store-phone {
  margin: 6px 0 0 !important; padding: 0 0 0 23px !important; position: relative;
  font-size: 13.5px; line-height: 1.5; color: #4A5F52 !important; overflow-wrap: anywhere;
}
#dokan-seller-listing-wrap .store-address { display: block; }
#dokan-seller-listing-wrap .store-address br { display: none; }
#dokan-seller-listing-wrap .store-address::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 15px; height: 15px; background-color: var(--fmke-primary);
  -webkit-mask: var(--fmke-i-pin-sl) center / contain no-repeat; mask: var(--fmke-i-pin-sl) center / contain no-repeat;
}
#dokan-seller-listing-wrap .store-phone i { position: absolute; left: 0; top: 4px; font-size: 13px; color: var(--fmke-primary); }

/* Footer: round "visit store" arrow button (it's a dashicon span in Dokan) */
#dokan-seller-listing-wrap .store-footer {
  display: flex; align-items: center; justify-content: flex-end;
  margin: 0; padding: 10px 18px 18px; background: transparent; border: 0;
}
#dokan-seller-listing-wrap .store-footer a { text-decoration: none !important; }
#dokan-seller-listing-wrap .store-footer .dokan-btn-round,
#dokan-seller-listing-wrap .store-footer .dokan-btn-theme {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 42px !important; height: 42px !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box;
  background: var(--fmke-primary) !important; background-image: none !important; color: #fff !important;
  border: 0 !important; border-radius: 50% !important; box-shadow: 0 6px 14px rgba(255,106,0,.30) !important;
  font-size: 22px !important; line-height: 1 !important;
  transition: background .15s ease, transform .15s ease;
}
#dokan-seller-listing-wrap .store-wrapper:hover .store-footer .dokan-btn-round { background: var(--fmke-primary-dark) !important; transform: translateX(3px); }

/* ---- List view (Dokan JS swaps grid-view / list-view on the wrapper) ---- */
@media (min-width: 783px) {
  #dokan-seller-listing-wrap.list-view ul.dokan-seller-wrap { grid-template-columns: 1fr; gap: 16px; }
  #dokan-seller-listing-wrap.list-view .store-wrapper { flex-direction: row; align-items: stretch; }
  #dokan-seller-listing-wrap.list-view .store-header { flex: 0 0 300px; }
  #dokan-seller-listing-wrap.list-view .store-banner { height: 100%; min-height: 176px !important; }
  #dokan-seller-listing-wrap.list-view .store-wrapper .store-footer .seller-avatar { top: auto !important; bottom: 16px !important; left: 16px !important; }
  #dokan-seller-listing-wrap.list-view .store-content { display: flex; align-items: center; }
  #dokan-seller-listing-wrap.list-view .store-wrapper .store-content .store-data-container { padding: 22px 24px !important; }
  #dokan-seller-listing-wrap.list-view .store-footer { align-self: center; padding: 18px 26px; }
  #dokan-seller-listing-wrap.list-view .dokan-store-is-open-close-status { right: auto !important; left: 12px; top: auto; bottom: 12px; display: none; }
}

/* ---- Pagination: ul.pagination > li > a.page-numbers / span.current ---- */
#dokan-seller-listing-wrap .pagination-container { margin: 30px 0 0; padding: 0; text-align: center; }
#dokan-seller-listing-wrap .pagination-wrap { margin: 0; padding: 0; }
#dokan-seller-listing-wrap ul.pagination {
  display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  list-style: none; margin: 0; padding: 0; border: 0; box-shadow: none; background: none;
}
#dokan-seller-listing-wrap ul.pagination li { margin: 0; padding: 0; border: 0; float: none; display: block; background: none; }
#dokan-seller-listing-wrap ul.pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  min-width: 42px; height: 42px; margin: 0; padding: 0 16px;
  border: 1.5px solid var(--fmke-border) !important; border-radius: 999px !important;
  background: #fff !important; color: var(--fmke-dark) !important;
  font-size: 14px; font-weight: 700; line-height: 1; text-decoration: none !important;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
#dokan-seller-listing-wrap ul.pagination a.page-numbers:hover { border-color: var(--fmke-primary) !important; background: var(--fmke-primary-light) !important; color: var(--fmke-primary-dark) !important; }
#dokan-seller-listing-wrap ul.pagination .page-numbers.current { background: var(--fmke-primary) !important; border-color: var(--fmke-primary) !important; color: #fff !important; }
#dokan-seller-listing-wrap ul.pagination .page-numbers.dots { border-color: transparent !important; background: none !important; min-width: 0; padding: 0 4px; }

/* ---- Empty state ---- */
#dokan-seller-listing-wrap .dokan-error {
  margin: 0 0 18px !important; padding: 36px 20px !important; box-sizing: border-box;
  background: #fff !important; color: var(--fmke-dark) !important;
  border: 1.5px dashed #E8D5C2 !important; border-radius: 18px !important;
  text-align: center; font-size: 15.5px; font-weight: 600;
}

/* =========================================================================
   Small screens
   ========================================================================= */
@media (max-width: 782px) {
  :is(body.fmke-store-listing, body:has(#dokan-seller-listing-wrap)) .entry-title { font-size: 26px; margin-top: 22px; }
  #dokan-store-listing-filter-wrap { padding: 12px 14px !important; gap: 12px; }
  #dokan-store-listing-filter-wrap .left { width: 100% !important; }
  #dokan-store-listing-filter-wrap .right { width: 100% !important; justify-content: space-between; flex-wrap: nowrap; gap: 8px; }
  #dokan-store-listing-filter-wrap .right .item:first-child { flex: 0 0 auto; }
  #dokan-store-listing-filter-wrap form.sort-by { flex: 1 1 auto; min-width: 0; justify-content: flex-end; }
  #dokan-store-listing-filter-wrap form.sort-by label { display: none; }
  #dokan-store-listing-filter-wrap select { max-width: 100%; font-size: 13px; padding: 0 30px 0 12px !important; }
  #dokan-store-listing-filter-wrap .toggle-view { display: none; }          /* grid only on phones */
  #dokan-store-listing-filter-form-wrap { padding: 16px !important; }
  #dokan-store-listing-filter-form-wrap .apply-filter .dokan-btn { flex: 1; }
  #dokan-seller-listing-wrap ul.dokan-seller-wrap { grid-template-columns: 1fr; gap: 16px; }
  #dokan-seller-listing-wrap .store-banner { height: 140px; }
  #dokan-seller-listing-wrap .store-wrapper .store-footer .seller-avatar { top: 108px !important; }
  /* 16px stops iOS zooming into the field on focus */
  #dokan-store-listing-filter-form-wrap input { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  #dokan-seller-listing-wrap .store-wrapper,
  #dokan-seller-listing-wrap .store-banner img,
  #dokan-seller-listing-wrap .store-footer .dokan-btn-round { transition: none !important; transform: none !important; }
}

/* =========================================================================
   Fuller-looking store cards (stores with no banner / address yet)
   ========================================================================= */

/* 1. Placeholder banner: bold brand gradient + soft dot pattern + white icon,
      and no muddy dark overlay. Stores with a real banner are untouched. */
#dokan-seller-listing-wrap .store-banner:has(img[src*="default-store-banner"]) {
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255,255,255,.22) 1.5px, transparent 1.6px) 0 0 / 16px 16px,
    linear-gradient(135deg, #FF8A33, #FF6A00);
}
#dokan-seller-listing-wrap .store-banner:has(img[src*="default-store-banner"])::before {
  width: 58px; height: 58px; top: 44%;
  background-color: rgba(255,255,255,.92);
}
#dokan-seller-listing-wrap .store-banner:has(img[src*="default-store-banner"])::after { display: none; }
/* vary the colour a little so a row of new stores doesn't look identical */
#dokan-seller-listing-wrap li.dokan-single-seller:nth-child(3n+2) .store-banner:has(img[src*="default-store-banner"]) {
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255,255,255,.18) 1.5px, transparent 1.6px) 0 0 / 16px 16px,
    linear-gradient(135deg, #2F5D44, #1F3D2C);
}
#dokan-seller-listing-wrap li.dokan-single-seller:nth-child(3n) .store-banner:has(img[src*="default-store-banner"]) {
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255,255,255,.22) 1.5px, transparent 1.6px) 0 0 / 16px 16px,
    linear-gradient(135deg, #FFB347, #F58F1D);
}

/* 2. Avatar placeholder: warm tint instead of flat grey/white */
#dokan-seller-listing-wrap .store-wrapper .store-footer .seller-avatar { background: #FFF3E6; }

/* 3. No address added: show a muted placeholder line so the card isn't blank */
#dokan-seller-listing-wrap .store-data:not(:has(.store-address))::before {
  content: "Location not added yet";
  display: block; margin: 6px 0 0; padding-left: 23px; order: 0;
  font-size: 13px; font-style: italic; color: #9AA89F;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9BBAA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11a7 7 0 1 0-14 0c0 4.8 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") left center / 15px 15px no-repeat;
}
#dokan-seller-listing-wrap .store-data:not(:has(.store-address)) { display: flex; flex-direction: column; }
#dokan-seller-listing-wrap .store-data:not(:has(.store-address)) h2 { order: -2; }
#dokan-seller-listing-wrap .store-data:not(:has(.store-address))::before { order: -1; }

/* 4. Footer: a "Visit store" label next to the arrow instead of a lone button */
#dokan-seller-listing-wrap .store-footer { justify-content: space-between; border-top: 1px solid var(--fmke-border); background: #FBFAF8; padding: 10px 14px 10px 18px; }
#dokan-seller-listing-wrap .store-footer::before {
  content: "Visit store"; font-size: 13.5px; font-weight: 700; color: var(--fmke-primary-dark); letter-spacing: .2px;
}
#dokan-seller-listing-wrap .store-footer .dokan-btn-round,
#dokan-seller-listing-wrap .store-footer .dokan-btn-theme { width: 36px !important; height: 36px !important; font-size: 20px !important; }
