/**
 * Physical stores list — [bk_stores] (inc/stores.php).
 *
 * Typography is inherited from the Elementor kit (Fragment Mono, 10px, #1F2937)
 * so the block reads as part of the editorial pages it sits on; everything here
 * is structure, hierarchy and rules.  Loaded only where the shortcode renders.
 *
 * Hierarchy, from loudest to quietest:
 *   continent  black, uppercase, hairline rule under it
 *   country    grey, uppercase, no rule — a sub-label of the continent
 *   store      black name, grey note/hours, links underlined on hover only
 * Nothing changes size or weight: the kit is a single 10px mono voice, so the
 * levels are told apart by colour, rules and space instead.
 *
 * EVERY rule is scoped under `.bk-stores` on purpose — the kit's own
 * `.elementor-kit-7 p` / `h2…h6` rules are (0,1,1) and would otherwise win over
 * a bare class, putting back the 20px paragraph margin and the 700 weight.
 *
 * Grouping levels the list doesn't need are absent from the markup entirely
 * (one continent → no continent headings), so the spacing below is written to
 * collapse gracefully; .bk-stores--has-continents says which levels exist.
 */

.bk-stores {
  line-height: 1.7;
  color: #1f2937;
}

/* ---- group headings ---- */

.bk-stores .bk-stores__title {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  font-weight: 400;
  line-height: 1.7;
  text-transform: uppercase;
  color: #000;
}

.bk-stores .bk-stores__title--continent {
  padding-bottom: 8px;
  border-bottom: var(--ck-edge);
}

/* Countries carry no rule of their own — inside a continent the rule above
   already opens the block, and a second line would read as a level of
   separation the list doesn't have. Grey until you reach the store names. */
.bk-stores .bk-stores__title--country {
  color: #6b7280;
}

/* ---- rhythm between the groups ----
   A continent break is the biggest gap on the page; a country break is half of
   it. Without continent headings the country sections become the top level and
   take the larger gap instead. */
.bk-stores .bk-stores__continent + .bk-stores__continent {
  margin-top: 56px;
}

.bk-stores .bk-stores__title--continent + .bk-stores__country {
  margin-top: 24px;
}

.bk-stores .bk-stores__country + .bk-stores__country {
  margin-top: 28px;
}

.bk-stores:not(.bk-stores--has-continents) .bk-stores__country + .bk-stores__country {
  margin-top: 40px;
}

.bk-stores .bk-stores__title--country + .bk-stores__grid {
  margin-top: 12px;
}

/* ---- the cards ----
   auto-fill, not auto-fit: a country with a single store keeps a column-width
   card instead of one stretched across the full text measure. */
.bk-stores .bk-stores__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 32px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bk-stores .bk-store {
  margin: 0;
}

.bk-stores .bk-store__name {
  margin: 0 0 6px;
  font-family: inherit;
  font-size: inherit;
  font-weight: 400;
  line-height: 1.7;
  text-transform: uppercase;
  color: #000;
}

.bk-stores .bk-store__address {
  margin: 0;
  font-style: normal; /* <address> italicises by default */
}

.bk-stores .bk-store__line {
  display: block;
}

.bk-stores .bk-store__note,
.bk-stores .bk-store__hours {
  margin: 6px 0 0;
  color: #6b7280;
}

.bk-stores .bk-store__links {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.bk-stores .bk-store__links li {
  margin: 0;
}

.bk-stores .bk-store__links a {
  color: #000;
  text-decoration: none;
  /* Long stockist URLs shouldn't push the card past its column. */
  overflow-wrap: anywhere;
}

/* Decoration only where a cursor exists — on touch a tapped link stays :hover
   until you tap elsewhere (see css/base.css). */
@media (hover: hover) {
  .bk-stores .bk-store__links a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}

/* Editors-only prompt when nothing is published yet. */
.bk-stores__empty {
  margin: 0;
  color: #6b7280;
}

@media (max-width: 767px) {
  .bk-stores .bk-stores__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .bk-stores .bk-stores__continent + .bk-stores__continent {
    margin-top: 40px;
  }
}
