/* =============================================================
   La Fleur — Where We Ship map
   Self-contained: inherits the theme palette when present,
   falls back to the same values when used with another theme.
   ============================================================= */
.lsm{
  --lsm-forest:#234B36;
  --lsm-moss:#4A6741;
  --lsm-sage:#8FAE8B;
  --lsm-ivory:#FAF8F2;
  --lsm-sand:#EDE4D6;
  --lsm-taupe:#C4B5A0;
  --lsm-charcoal:#3F3A34;
  --lsm-soft:#6B645B;
  --lsm-gold:#C9A34E;
  --lsm-clay:#B56A4C;
  --lsm-deep:#7A3F2A;
  --lsm-ok:#EDF1EA;
  --lsm-ease:cubic-bezier(.22,.61,.36,1);
  --lsm-font:"Inter",-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --lsm-display:"Cormorant Garamond",'Iowan Old Style',Georgia,serif;

  font-family:var(--lsm-font);
  color:var(--lsm-charcoal);
  margin:0 0 44px;
}
.lsm *,.lsm *::before,.lsm *::after{box-sizing:border-box}
.lsm__title{font-family:var(--lsm-display);color:var(--lsm-forest);font-size:clamp(1.7rem,3vw,2.4rem);margin:0 0 18px}

/* ---- bar ---- */
.lsm__bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.lsm__filters{display:flex;gap:6px;background:var(--lsm-sand);padding:4px;border-radius:30px}
.lsm__filter{
  border:0;background:transparent;color:var(--lsm-soft);cursor:pointer;
  font-family:inherit;font-size:.79rem;font-weight:600;letter-spacing:.06em;
  padding:9px 17px;border-radius:24px;transition:all .22s var(--lsm-ease);
}
.lsm__filter:hover{color:var(--lsm-forest)}
.lsm__filter.is-active{background:var(--lsm-forest);color:#fff}
.lsm__reviewed{
  margin:0 0 0 auto;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--lsm-soft);font-weight:600;
}

/* ---- summary ---- */
.lsm__summary{
  list-style:none;margin:0 0 22px;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;
}
.lsm__summary li{
  background:var(--lsm-ivory);border:1px solid var(--lsm-taupe);border-radius:8px;
  padding:14px 16px;display:flex;flex-direction:column;gap:2px;
}
.lsm__summary strong{font-family:var(--lsm-display);font-size:1.9rem;color:var(--lsm-forest);line-height:1}
.lsm__summary span{font-size:.78rem;color:var(--lsm-soft);line-height:1.35}

/* ---- layout ---- */
.lsm__layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:24px;align-items:start}
.lsm__mapwrap{position:relative}

/* ---- grid ---- */
.lsm__grid{
  display:grid;
  grid-template-columns:repeat(var(--lsm-cols),minmax(0,1fr));
  grid-template-rows:repeat(var(--lsm-rows),auto);
  gap:5px;
}
.lsm__tile{
  aspect-ratio:1/1;border-radius:5px;cursor:pointer;
  border:1.5px solid transparent;
  font-family:var(--lsm-font);font-size:clamp(.52rem,1.05vw,.78rem);font-weight:700;
  letter-spacing:.03em;display:grid;place-items:center;padding:0;
  transition:transform .18s var(--lsm-ease),box-shadow .18s var(--lsm-ease),filter .18s var(--lsm-ease);
  background:var(--lsm-ok);color:var(--lsm-moss);border-color:#DCE4D8;
}
.lsm__tile:hover,.lsm__tile:focus-visible{
  transform:translateY(-3px) scale(1.06);
  box-shadow:0 6px 18px rgba(35,75,54,.22);
  z-index:5;outline:none;
}
.lsm__tile:focus-visible{border-color:var(--lsm-forest);box-shadow:0 0 0 3px rgba(201,163,78,.55)}
.lsm__tile.is-pinned{border-color:var(--lsm-forest);box-shadow:0 0 0 2px var(--lsm-forest)}

.lsm__tile--kratom{background:var(--lsm-clay);color:#fff;border-color:#A55F42}
.lsm__tile--cbd{background:var(--lsm-gold);color:#4A3A14;border-color:#B8933F}
.lsm__tile--both{background:var(--lsm-deep);color:#fff;border-color:#6A351F}
.lsm__tile--local{background:var(--lsm-sand);color:#6E5A3C;border-color:var(--lsm-gold);border-style:dashed}

/* pattern differentiation for colour-blind readers */
.lsm__tile--cbd{
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.30) 0 3px,transparent 3px 7px);
}
.lsm__tile--both{
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 3px,transparent 3px 7px),
                   repeating-linear-gradient(-45deg,rgba(255,255,255,.16) 0 3px,transparent 3px 7px);
}

/* dimmed by the product filter */
.lsm__tile.is-dim{opacity:.32;filter:saturate(.25)}

/* ---- tooltip ---- */
.lsm__tip{
  position:absolute;z-index:40;pointer-events:none;
  background:var(--lsm-forest);color:#EFEAE0;
  border-radius:8px;padding:12px 14px;width:min(280px,80vw);
  box-shadow:0 12px 32px rgba(26,58,41,.34);
  font-size:.82rem;line-height:1.5;
  border-top:2px solid var(--lsm-gold);
  transform:translate(-50%,-100%);
}
.lsm__tip[hidden]{display:none}
.lsm__tip h4{margin:0 0 6px;font-family:var(--lsm-display);font-size:1.15rem;color:#fff;font-weight:600}
.lsm__tip p{margin:0 0 6px}
.lsm__tip p:last-child{margin:0}
.lsm__tip .lsm-status{display:flex;gap:7px;align-items:baseline;font-size:.79rem}
.lsm__tip .lsm-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transform:translateY(-1px)}
.lsm__tip .lsm-muted{color:#A9BBB0;font-size:.76rem}

/* ---- side panel ---- */
.lsm__panel{
  background:var(--lsm-ivory);border:1px solid var(--lsm-taupe);border-radius:10px;
  padding:20px;min-height:230px;position:sticky;top:96px;
}
.lsm__panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;min-height:190px;color:var(--lsm-soft)}
.lsm__panel-empty svg{width:30px;height:30px;color:var(--lsm-taupe)}
.lsm__panel-empty p{margin:0;font-size:.85rem;line-height:1.5;max-width:24ch}
.lsm__panel-body[hidden]{display:none}
.lsm__panel h3{font-family:var(--lsm-display);font-size:1.5rem;color:var(--lsm-forest);margin:0 0 4px}
.lsm__panel .lsm-code{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--lsm-gold);font-weight:700;display:block;margin-bottom:12px}
.lsm__row{display:flex;gap:9px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--lsm-taupe);font-size:.85rem;line-height:1.5}
.lsm__row .lsm-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:6px}
.lsm__row strong{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lsm-soft);margin-bottom:2px}
.lsm__places{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:5px}
.lsm__places li{background:#fff;border:1px solid var(--lsm-taupe);border-radius:14px;padding:4px 10px;font-size:.74rem;color:var(--lsm-charcoal)}
.lsm__places li span{color:var(--lsm-soft)}
.lsm__note{font-size:.78rem;color:var(--lsm-soft);line-height:1.5;margin:10px 0 0;font-style:italic}
.lsm__clear{
  margin-top:14px;background:none;border:1px solid var(--lsm-taupe);border-radius:5px;
  color:var(--lsm-soft);font-family:inherit;font-size:.74rem;padding:7px 13px;cursor:pointer;
  transition:all .2s var(--lsm-ease);
}
.lsm__clear:hover{background:var(--lsm-forest);border-color:var(--lsm-forest);color:#fff}

/* dots */
.lsm-dot--ok{background:var(--lsm-sage)}
.lsm-dot--bad{background:var(--lsm-clay)}
.lsm-dot--cbd{background:var(--lsm-gold)}
.lsm-dot--local{background:var(--lsm-taupe)}

/* ---- legend ---- */
.lsm__legend{
  list-style:none;margin:20px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px 20px;font-size:.78rem;color:var(--lsm-soft);
}
.lsm__legend li{display:flex;align-items:center;gap:8px}
.lsm__key{width:15px;height:15px;border-radius:4px;border:1.5px solid transparent;flex-shrink:0}
.lsm__key--ok{background:var(--lsm-ok);border-color:#DCE4D8}
.lsm__key--kratom{background:var(--lsm-clay)}
.lsm__key--cbd{background:var(--lsm-gold);background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 2px,transparent 2px 5px)}
.lsm__key--both{background:var(--lsm-deep)}
.lsm__key--local{background:var(--lsm-sand);border-color:var(--lsm-gold);border-style:dashed}

/* ---- text lists ---- */
.lsm__lists{
  margin-top:36px;display:grid;gap:26px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.lsm__list--wide{grid-column:1/-1}
.lsm__list h3{
  font-family:var(--lsm-display);font-size:1.35rem;color:var(--lsm-forest);
  margin:0 0 4px;padding-bottom:10px;border-bottom:2px solid var(--lsm-gold);
}
.lsm__list-intro{font-size:.82rem;color:var(--lsm-soft);margin:10px 0 0}
.lsm__list dl{margin:14px 0 0}
.lsm__list dt{font-weight:600;color:var(--lsm-forest);font-size:.92rem;margin-top:12px}
.lsm__list dd{margin:2px 0 0;font-size:.85rem;color:var(--lsm-soft);line-height:1.55}
.lsm__list dd em{display:block;margin-top:4px;font-size:.8rem;color:var(--lsm-clay)}

.lsm__disclaimer{
  margin-top:30px;padding:14px 16px;border-left:3px solid var(--lsm-gold);
  background:var(--lsm-sand);border-radius:0 6px 6px 0;
  font-size:.8rem;line-height:1.6;color:var(--lsm-charcoal);
}

/* ---- responsive ---- */
@media(max-width:900px){
  .lsm__layout{grid-template-columns:1fr}
  .lsm__panel{position:static;min-height:0}
  .lsm__panel-empty{min-height:0;padding:8px 0}
  .lsm__reviewed{margin-left:0;width:100%}
}
@media(max-width:560px){
  .lsm__tile{border-radius:4px;font-size:.5rem}
  .lsm__grid{gap:3px}
  .lsm__summary{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
  .lsm__tile{transition:none}
  .lsm__tile:hover,.lsm__tile:focus-visible{transform:none}
}
