/**
 * Bumshum Store Locator — styles for the [bumshum_store_locator] shortcode.
 * Everything is scoped under .bumshum-store-locator so it can't leak into the
 * rest of the theme. Type inherits the theme's Catamaran font.
 */
.bumshum-store-locator{
  --bsl-ink:#0A1E33;
  --bsl-ink-soft:#5A6B78;
  --bsl-coral:#E46A4B;
  --bsl-sage:#99B8BA;
  --bsl-sage-soft:#C9DBDB;
  --bsl-ground-soft:#EAF0F2;
  --bsl-sun:#F2C24B;
  --bsl-line:#E7ECED;
  --bsl-warn:#B4741C;
  --bsl-shadow:0 1px 2px rgba(10,30,51,.05), 0 12px 28px rgba(10,30,51,.07);
  color:var(--bsl-ink);
  line-height:1.55;
  /* Clear the theme footer's decorative torn-wave top edge, which overlaps
     upward into the content and would otherwise cover the last row of cards. */
  padding-bottom:90px;
}
.bumshum-store-locator *{box-sizing:border-box}
.bsl-wrap{max-width:1120px; margin:0 auto; padding:0 20px}

/* hero */
.bsl-hero{position:relative; text-align:center; padding:20px 0 26px; overflow:hidden}
.bsl-eyebrow{text-transform:uppercase; letter-spacing:.22em; font-size:12px; font-weight:700; color:var(--bsl-ink-soft); margin:0 0 12px}
.bsl-hero h2.bsl-title{font-size:clamp(30px,5vw,48px); line-height:1.05; font-weight:800; margin:0; display:inline-block; letter-spacing:-.015em; color:var(--bsl-ink)}
.bsl-script{font-family:'Pacifico',cursive; color:var(--bsl-coral); font-weight:400; font-size:.62em; display:block; transform:rotate(-3deg); margin:0 0 -4px}
.bsl-underline{display:block; margin:4px auto 18px; width:min(340px,64%); height:15px; color:var(--bsl-coral)}
.bsl-lede{font-size:clamp(16px,2.1vw,19px); color:var(--bsl-ink-soft); margin:0 auto 20px; max-width:56ch}
.bsl-meta{display:flex; gap:22px; justify-content:center; flex-wrap:wrap; font-size:14.5px; font-weight:600}
.bsl-meta .bsl-m{display:flex; align-items:center; gap:9px}
.bsl-meta .bsl-m i{width:9px; height:9px; border-radius:50%; background:var(--bsl-coral); display:inline-block}
.bsl-meta .bsl-m i.bsl-is-sage{background:var(--bsl-sage)}
.bsl-doodle{position:absolute; pointer-events:none}
.bsl-d-sun{top:0; right:2%; width:74px; color:var(--bsl-sun)}
.bsl-d-heart{top:70px; left:4%; width:32px; color:var(--bsl-coral); opacity:.85}
@media (max-width:760px){.bsl-d-sun{width:52px} .bsl-d-heart{display:none}}

/* section heads + map */
.bsl-sec-head{text-align:center; margin:30px 0 16px}
.bsl-sec-head .bsl-eyebrow{color:var(--bsl-coral)}
.bsl-sec-head h3{font-size:clamp(22px,3.2vw,30px); font-weight:800; margin:6px 0 0; color:var(--bsl-ink)}
.bsl-map{position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--bsl-line); box-shadow:var(--bsl-shadow); background:var(--bsl-ground-soft); height:400px}
/* Crop Google My Maps' top title bar (map name + owner) out of view by making
   the iframe taller and pulling it up; the frame's overflow:hidden clips it. */
.bsl-map iframe{display:block; width:100%; height:468px; margin-top:-68px; border:0}
@media (max-width:600px){.bsl-map{height:340px} .bsl-map iframe{height:408px}}

/* city + cards */
.bsl-city{display:flex; align-items:center; gap:16px; margin:40px 0 18px}
.bsl-city h3{font-size:23px; font-weight:800; margin:0; color:var(--bsl-ink)}
.bsl-city .bsl-count{color:var(--bsl-ink-soft); font-size:14px; font-weight:600}
.bsl-city .bsl-rule{flex:1; height:1px; background:var(--bsl-line)}
.bsl-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px}
@media (max-width:760px){.bsl-grid{grid-template-columns:1fr}}

.bsl-card{background:#fff; border:1px solid var(--bsl-line); border-radius:20px; overflow:hidden; box-shadow:var(--bsl-shadow); display:flex; flex-direction:column}
.bsl-photo{height:150px; position:relative; display:flex; align-items:center; justify-content:center; color:var(--bsl-sage);
  background:radial-gradient(130% 130% at 82% 6%, rgba(228,106,75,.12), transparent 55%), linear-gradient(150deg,var(--bsl-sage-soft),var(--bsl-ground-soft))}
/* Cards with a real photo size to the photo's own 1024x478 ratio, so the store
   signage (which sits in the upper third of these shots) is never cropped off.
   Placeholder cards keep the original fixed height. */
.bsl-photo.bsl-has-photo{height:auto; aspect-ratio:1024/478}
.bsl-photo img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0}
.bsl-photo .bsl-storeicon{width:44px; height:44px; opacity:.8}
.bsl-body{padding:18px 22px 22px; display:flex; flex-direction:column; gap:12px; flex:1}
.bsl-tag{text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:800; color:var(--bsl-coral)}
.bsl-name{font-size:21px; font-weight:800; margin:0; color:var(--bsl-ink)}
.bsl-addr{color:var(--bsl-ink-soft); font-size:14.5px; margin:0}
.bsl-rows{display:flex; flex-direction:column; gap:7px}
.bsl-rows .bsl-r{display:flex; align-items:center; gap:9px; font-size:14px; color:var(--bsl-ink)}
.bsl-rows .bsl-r svg{width:16px; height:16px; color:var(--bsl-sage); flex:none}
.bsl-rows .bsl-r a{color:inherit; text-decoration:none}
.bsl-btns{display:flex; gap:10px; margin-top:auto; padding-top:6px; flex-wrap:wrap}
.bsl-btn{display:inline-flex; align-items:center; gap:8px; border-radius:999px; padding:11px 18px; font-size:14px; font-weight:700; text-decoration:none; cursor:pointer; border:1.5px solid transparent; transition:transform .12s ease, box-shadow .12s ease}
.bsl-btn svg{width:15px; height:15px}
.bsl-btn-cta{background:var(--bsl-ink); color:#fff}
.bsl-btn-cta:hover{transform:translateY(-1px); box-shadow:0 7px 18px rgba(10,30,51,.22); color:#fff}
.bsl-btn-call{background:#fff; color:var(--bsl-ink); border-color:var(--bsl-line)}
.bsl-btn-call:hover{border-color:var(--bsl-coral); color:var(--bsl-coral)}

.bsl-wave{display:block; width:100%; height:56px; margin:8px 0}
@media (prefers-reduced-motion:reduce){.bumshum-store-locator *{transition:none!important}}

/* ---- overrides that defeat parent-theme link styling inside the cards ---- */
/* Parent theme colours/underlines content <a> tags; keep our buttons correct. */
.bumshum-store-locator a.bsl-btn{text-decoration:none !important}
.bumshum-store-locator a.bsl-btn-cta,
.bumshum-store-locator a.bsl-btn-cta:hover,
.bumshum-store-locator a.bsl-btn-cta:focus{color:#fff !important}
.bumshum-store-locator a.bsl-btn-call,
.bumshum-store-locator a.bsl-btn-call:hover{color:var(--bsl-ink) !important}
.bumshum-store-locator .bsl-rows a{color:inherit !important; text-decoration:none !important}
.bumshum-store-locator a.bsl-btn-call:hover{color:var(--bsl-coral) !important}

/* Hide the theme's page-title banner on pages that use the locator shortcode,
   so our hero isn't duplicated. Body class added via body_class filter (PHP). */
.has-bumshum-locator .elementor-page-title{display:none}
