/* =========================================================
   Storemapper / Search Results — Cleaned Styles
   Grouped: Layout • Card • Ratings/Hours • Contact • Reviews • Map Popup
   ========================================================= */

/* ---------- Layout / Height ---------- */

/* Adjust if you have a fixed header; set to 0 if not */
:root { --header-h: 72px; }

/* Make the Storemapper section fill ~90% viewport minus header */
#storemapper {
  min-height: calc(90dvh - var(--header-h));
}

/* Map column should stretch to container height */
#storemapper .strmpr-map,
#storemapper .strmpr-map > div,   /* inner wrapper */
#storemapper .gm-style {          /* Google map root */
  height: 100% !important;
  min-height: 100% !important;
}

/* Left results column scrolls within available height */
#storemapper-results,
#storemapper .strmpr-search-results-wrapper {
  max-height: calc(90dvh - var(--header-h));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

/* Fallback for browsers without dvh */
@supports not (height: 100dvh) {
  #storemapper { min-height: calc(90vh - var(--header-h)); }
  #storemapper-results,
  #storemapper .strmpr-search-results-wrapper {
    max-height: calc(90vh - var(--header-h));
  }
}


/* ---------- Card Base ---------- */

.strmpr-search-result .strmpr-field-bucket-general {
  display: block;
  align-content: start;
  /* grid-auto-rows has no effect on non-grid containers; removed */
}

/* Remove any pseudo-aspect shims */
.strmpr-field-logo::before {
  content: none !important;
  display: none !important;
}

/* Responsive logo area — 3:2 ratio, full width */
.strmpr-search-result .strmpr-field-logo {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  display: block;
  line-height: 0;
  margin: 0 0 12px 0;
  padding: 0;
  border-radius: 10px;
}

/* Make image fill container proportionally */
.strmpr-search-result .strmpr-field-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

/* Bigger store name */
.strmpr-search-result.tier .strmpr-field-bucket-general .strmpr-field-name {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  margin: 8px 0 10px;
}


/* ---------- Ratings / Hours Row ---------- */

.strmpr-search-result.tier .strmpr-google-details-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.strmpr-search-result.tier .strmpr-business-hours-open {
  font-size: 12px;
  padding: 3px 8px;
}

/* Compact rating typography */
.strmpr-search-result.tier .strmpr-store-rating {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  line-height: 1.2;
}

.strmpr-search-result.tier .strmpr-store-rating p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}

.strmpr-search-result.tier .strmpr-store-rating-star,
.strmpr-search-result.tier .strmpr-store-rating-blank-star {
  font-size: 14px;
  line-height: 1;
  color: #f5b301;
}

.strmpr-search-result.tier .strmpr-store-rating > p:last-child {
  color: #888;
  font-weight: 400;
  font-size: 12px;
}

/* Operating Hours summary label + value */
.strmpr-search-result.tier .strmpr-business-hours-field > p:first-child {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #333;
  margin: 0;
}

.strmpr-search-result.tier .strmpr-business-hours-field .strmpr-business-hours-description {
  font-size: 13px;
  color: #1e66cc;
  margin: 0;
}

/* Full hours list */
.strmpr-search-result.tier .strmpr-business-hours-list {
  font-size: 13px;
  line-height: 1.4;
  gap: 4px 12px;
}

.strmpr-search-result.tier .strmpr-business-hours-days p,
.strmpr-search-result.tier .strmpr-business-hours-item {
  font-size: 13px;
  line-height: 1.4;
  margin: 0;
}

.strmpr-search-result.tier .strmpr-business-hours-days p { font-weight: 600; }
.strmpr-search-result.tier .strmpr-business-hours-item { font-weight: 400; }

.strmpr-search-result.tier .strmpr-business-hours-text {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  margin: 10px 0 6px;
}


/* ---------- Contact / Links ---------- */

.strmpr-search-result.tier .strmpr-field-address,
.strmpr-search-result.tier .strmpr-field-directions,
.strmpr-search-result.tier .strmpr-field-phone,
.strmpr-search-result.tier .strmpr-field-email,
.strmpr-search-result.tier .strmpr-field-url {
  font-size: 15px;   /* from 14 → 15 */
  line-height: 1.5;
  color: #222;
}

.strmpr-search-result.tier .strmpr-field-directions a,
.strmpr-search-result.tier .strmpr-field-url a {
  font-weight: 600;
}

/* Buttons / CTAs */
.strmpr-search-result.tier .btn,
.strmpr-search-result.tier .storemapper-storelink,
.strmpr-search-result.tier .strmpr-reviews-view-more-btn {
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 6px;
  line-height: 1.2;
}

.strmpr-search-result.tier .strmpr-reviews-view-more-btn {
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* Tighten the “View on Map” button */
.strmpr-search-result.tier .storemapper-storelink,
.strmpr-search-result.tier .strmpr-field-show-on-map {
  margin-top: 16px;
  display: block;
}

.strmpr-search-result.tier .storemapper-storelink {
  margin-top: 12px;
  padding: 6px 14px;
}


/* ---------- Reviews ---------- */

.strmpr-search-result.tier .strmpr-reviews-list {
  font-size: 14px;
  line-height: 1.5;
  color: #0f1c2e;
}

.strmpr-search-result.tier .strmpr-review-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 12px 0 6px;
}

.strmpr-search-result.tier .strmpr-review-header-photo img,
.strmpr-search-result.tier .strmpr-review-photo {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.strmpr-search-result.tier .strmpr-review-header-text { line-height: 1.2; }

.strmpr-search-result.tier .strmpr-review-reader-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.strmpr-search-result.tier .strmpr-review-header-text p {
  margin: 2px 0 0;
  font-size: 13px;
}

/* “5 ★★★★★ a week ago” */
.strmpr-search-result.tier .strmpr-review-rating {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.2;
}
.strmpr-search-result.tier .strmpr-review-rating p { margin: 0; }

.strmpr-search-result.tier .strmpr-store-rating-star { 
  font-size: 14px; 
  line-height: 1;
}

/* NOTE: original had color: #ffff (invalid-ish). Using #bbb for readable, neutral text */
.strmpr-search-result.tier .strmpr-review-relative-time {
  color: #bbb;
  font-weight: 400;
  font-size: 12px;
}

/* Review text */
.strmpr-search-result.tier .strmpr-review-text {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.5;
  color: #fff;   /* assuming dark card bg for selected state */
}

/* Divider & spacing */
.strmpr-search-result.tier .strmpr-reviews-list hr {
  margin: 12px 0;
  border: 0;
  border-top: 1px solid rgba(0,0,0,.08);
}

/* Only make the address white on the selected card */
.strmpr-search-result.tier.strmpr-selected .strmpr-field-address { color: #fff; }

/* Force reviewer name white if you’re on dark bg cards */
.strmpr-review-reader-title { color: #fff; }


/* ---------- Google Map Popup (InfoWindow) ---------- */

.gm-style-iw.gm-style-iw-c,
.gm-style-iw-d.strmpr-iw-inner {
  width: 300px !important;
  max-width: 300px !important; /* keep narrow footprint */
}

.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup {
  max-width: 100% !important;
  padding: 12px 14px !important;
  box-sizing: border-box;
  color: #0f1c2e;
  line-height: 1.45;
}

/* Hide popup image entirely (removes earlier visibility tweak) */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-logo {
  display: none !important;
}

/* Name */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-name {
  font-size: 20px;
  font-weight: 700;
  margin: 6px 0 8px;
}

/* Address & contact */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-address,
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-phone a,
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-email a,
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-url a {
  font-size: 14px;
  line-height: 1.4;
  color: #0f1c2e;
  text-decoration: none;
}
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-field-url a { font-weight: 700; }

/* Rating row */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-store-rating {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 8px;
  font-size: 13px;
}
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-store-rating p { margin: 0; }

.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-store-rating-star,
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-store-rating-blank-star {
  font-size: 14px;
  line-height: 1;
  color: #f5b301;
}
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-store-rating p:last-child {
  color: #777;
  font-size: 12px;
}

/* Open + hours */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-popup-business-hours-field {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0 10px;
  font-size: 13px;
  line-height: 1.4;
}
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup .strmpr-popup-business-hours-open {
  background: #eaf7ee;
  color: #157f3b;
  border: 1px solid #cdebd6;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  margin: 0;
}

/* “Get Directions” button */
.strmpr-map-popup .strmpr-field-directions {
  border: 0 !important;
  background: none !important;
  padding: 0 !important;
  text-align: center;
}
.strmpr-map-popup .strmpr-field-directions a {
  display: inline-block;
  font-size: 13px;
  color: #2a65c7;
  border: 1px solid #2a65c7;
  border-radius: 8px;
  padding: 6px 14px;
  text-decoration: none;
  background: #fff;
  line-height: 1.2;
}
.strmpr-map-popup .strmpr-field-directions a:hover {
  background: #2a65c7;
  color: #fff;
}

/* Focus ring */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup a:focus {
  outline: 2px solid rgba(42, 101, 199, .35);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Prevent long text overflow */
.gm-style-iw-d.strmpr-iw-inner .strmpr-map-popup * {
  word-wrap: break-word;
  white-space: normal;
}

/* ----- Fill screen top-to-bottom ----- */
:root { --header-h: 72px; } /* adjust if your header height changes */

#storemapper {
  min-height: calc(100dvh - var(--header-h)) !important;  /* was 90dvh */
}

/* If the two-column wrapper isn't already stretching, help it */
#storemapper .strmpr-map,
#storemapper .strmpr-map > div,
#storemapper .gm-style {
  height: 100% !important;
  min-height: 100% !important;
}

/* Left column = full-height flex column */
#storemapper-results {
  height: calc(100dvh - var(--header-h)) !important;      /* was 90dvh */
  max-height: calc(100dvh - var(--header-h)) !important;
  display: flex !important;
  flex-direction: column !important;
  box-sizing: border-box;
}

/* Keep the search + filter visible; results take remaining space */
#storemapper-results .strmpr-search-bar,
#storemapper-results .strmpr-filters {
  position: sticky;
  top: 0;                 /* stick under the site header */
  z-index: 3;
}

/* The scrollable list grows to fill leftover height */
#storemapper .strmpr-search-results-wrapper {
  flex: 1 1 auto !important;
  min-height: 0 !important;        /* critical to allow flex child to shrink */
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* Fallback for older browsers w/o dvh */
@supports not (height: 100dvh) {
  #storemapper { min-height: calc(100vh - var(--header-h)) !important; }
  #storemapper-results {
    height: calc(100vh - var(--header-h)) !important;
    max-height: calc(100vh - var(--header-h)) !important;
  }
}

.strmpr-dropdown-btn,
.storemapper-dropdown-btn {
  font-size: 13px;         /* reduce from default 16px or 14px */
  font-weight: 500;        /* make less bold if it was 600 or 700 */
  letter-spacing: 0;       /* tighten text if it feels wide */
  padding: 4px 10px;       /* optional: smaller padding for a lighter look */
  line-height: 1.2;        /* ensures better vertical rhythm */
}

.strmpr-dropdown-btn span {
  font-size: inherit;
  font-weight: inherit;
}


/* Reduce font size on dropdown filter labels */
.strmpr-dropdown-options .strmpr-dropdown-option-label,
.storemapper-dropdown-menu .storemapper-category-link {
  font-size: 13px;      /* try 12–13px for better balance */
  font-weight: 400;     /* ensure normal weight, not bold */
  line-height: 1.3;     /* keeps it readable at smaller sizes */
}

/* Optional: also adjust checkbox alignment slightly */
.strmpr-dropdown-option input[type="checkbox"] {
  transform: scale(0.9); /* slightly smaller checkbox to match text scale */
  vertical-align: middle;
  margin-right: 6px;
}



/* 1) Kill the big gap created by the Shop Now row */
.strmpr-field-url {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.strmpr-field-url a {
  display: inline;              /* many themes make it block with padding */
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2;
}

/* 2) Collapse the container’s bottom gap */
.strmpr-field-bucket-general {
  margin-bottom: 6px !important;   /* or 0 if you want it tighter */
  padding-bottom: 0 !important;
}

/* 3) Ensure the hours section sits close but not cramped */
.strmpr-field-bucket-general + .strmpr-store-list-tabs {
  margin-top: 6px !important;      /* space above “Opening Hours” */
  padding-top: 0 !important;
}

/* 4) Keep the hours list compact and add space before the button */
.strmpr-store-list-tabs .strmpr-business-hours-text { margin: 0 0 4px !important; }
.strmpr-store-list-tabs .strmpr-business-hours-list { margin: 0 0 10px !important; line-height: 1.35; }
.storemapper_view.storemapper-storelink { margin-top: 10px !important; }



/* Turn "Shop Now" into a button and place it below View On Map */
.strmpr-field-url {
  order: 99; /* push it after other elements if using flexbox */
  text-align: center;
  margin-top: 12px !important;
}

.strmpr-field-url a {
  display: inline-block;
  background-color: var(--accent-fg, #fff);
  color: var(--accent-bg, #1d2644);
  border: 1px solid #fff;
  padding: 8px 16px;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease-in-out;
}

.strmpr-field-url a:hover {
  background-color: #fff;
  color: #1d2644;
}

/* Stack it visually below "View on Map" */
.storemapper_view.storemapper-storelink + .strmpr-field-url {
  display: block;
}










/* Remove the small link icon */
.strmpr-field-url::before {
  display: none !important;
}

/* Style the link exactly like View On Map */
.strmpr-field-url a {
  display: block;
  text-align: center;
  width: 100%;
  box-sizing: border-box;

  /* match View On Map colors */
  border: 1px solid #1d2644;
  background: transparent;
  color: #1d2644 !important;

  border-radius: 4px;
  font-family: inherit !important;      /* match View On Map font exactly */	
  padding: 8px 16px !important;
  font-weight: 400 !important;
	font-size: 15px !important;
  text-decoration: none;
  transition: all 0.2s ease-in-out;

  /* spacing between email, hours, and map button */
  margin: 10px 0px;
}

/* identical hover state */
.strmpr-field-url a:hover {
  background: #1d2644;
  color: #fff !important;
}

/* optional: flatten any inherited margins/padding */
.strmpr-field-url {
  margin: 0 !important;
  padding: 0 !important;
}

/* Increase the store name font size */
.strmpr-field-name {
  font-size: 20px !important;    /* adjust up or down as needed */
  font-weight: 600 !important;   /* a little bolder looks nice */
  line-height: 1 !important;   /* keeps spacing balanced */
  margin-bottom: 0px !important; /* optional: tighten spacing below */
}

/* Reduce space below the Get Directions link */
.strmpr-field-directions {
  margin-bottom: 4px !important;   /* smaller gap – tweak to 2px if needed */
  padding-bottom: 0 !important;
}

/* Optional: remove any extra margin on the link itself */
.strmpr-field-directions a {
  margin-bottom: 0 !important;
  display: inline-block;           /* keeps it consistent with other rows */
}


/* Add space below the email row */
.strmpr-field-email {
  margin-bottom: 10px !important;   /* adjust value as needed */
}

/* Optional: ensure link itself doesn’t collapse spacing */
.strmpr-field-email a {
  display: inline-block;
  margin-bottom: 0 !important;
}

/* White border on Shop Now button when the tile is active */
.strmpr-search-result.tier.strmpr-selected .strmpr-field-url a {
  border-color: #fff !important;
  color: #fff !important;         /* optional: keep text visible */
}

/* Base style (so the border exists to recolor) */
.strmpr-search-result.tier .strmpr-field-url a {
  display: inline-block;
  border: 1px solid #2a65c7;      /* your default color */
  border-radius: 6px;
  padding: 8px 14px;
  color: #2a65c7;
  text-decoration: none;
  transition: border-color 0.25s, color 0.25s;
}

/* Hide the whole Opening Hours line on store tiles */
#storemapper .strmpr-field-bucket-general .strmpr-business-hours-field {
  display: none !important;
}
