/* =========================================================================
   BashMaps — Hobby Shops landing page
   Page-specific styles only. Everything else comes from bm-tokens.css
   and bm-home.css so the page stays visually locked to the front page.
   ========================================================================= */

/* ---- Hero — reuses #hero-solid treatment; device stage swaps in for
       the dual-iPhone stage, so it needs its own vertical rhythm ---- */
.bm-shops-hero .bm-device-stage {
  max-width: 300px;
  margin: 0 auto;
}

/* Proof cards must always paint above the tilting phone. The shared
   .bm-hero-device sets transform-style: preserve-3d, which lets the
   3D-tilted stage depth-sort in front of its flat siblings; flatten it
   here so stacking is decided by z-index again. (The phones' own 3D
   lives inside .bm-iphone17-stage and is unaffected.) */
.bm-shops-hero .bm-hero-device {
  transform-style: flat;
}
.bm-shops-hero .bm-hero-device .bm-proof-card {
  z-index: 3;
}

.bm-shops-hero .hero-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--sp-4);
  align-items: stretch;
}

/* Match the outline button's height to the gold CTA beside it */
.bm-shops-hero .hero-actions .bm-btn-outline,
#download .bm-btn-outline {
  padding: 12px 28px;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.bm-shops-hero .hero-actions .bm-btn-gold,
#download .bm-btn-gold {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* ---- Editorial quote cards (Shop Love section, navy surface) ---- */
.bm-quote-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: var(--sp-6);
  background: rgba(13, 15, 26, 0.35);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}

.bm-quote-mark {
  font-family: var(--font-anchor);
  font-weight: 900;
  font-size: 56px;
  line-height: 0.6;
  color: var(--gold);
  margin-bottom: var(--sp-4);
}

.bm-quote-text {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--lh-relaxed);
  color: var(--fg-2);
  flex: 1;
  margin-bottom: var(--sp-5);
}

.bm-quote-who {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
}

.bm-quote-shop {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  letter-spacing: 0.08em;
  color: var(--fg-3);
  margin-top: var(--sp-1);
}

/* ---- Contact modal — dark navy skin over Bootstrap's modal ---- */
.bm-modal .modal-content {
  background: var(--navy-deep);
  color: var(--fg-1);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
}

.bm-modal .modal-title {
  font-family: var(--font-anchor);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--pearl);
}

.bm-modal .bm-modal-sub {
  color: var(--fg-2);
}

.bm-modal .form-label {
  color: var(--fg-1);
  font-weight: var(--w-medium);
  font-size: var(--text-body-sm);
}

.bm-modal .form-control {
  background: rgba(245, 240, 225, 0.06);
  border: 1px solid rgba(245, 240, 225, 0.18);
  color: var(--pearl);
  border-radius: var(--radius-sm);
}

.bm-modal .form-control::placeholder {
  color: var(--fg-3);
}

.bm-modal .form-control:focus {
  background: rgba(245, 240, 225, 0.09);
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(224, 145, 60, 0.2);
  color: var(--pearl);
}

.bm-modal .form-text {
  color: var(--fg-3);
}

.bm-modal .bm-captcha-canvas {
  border-radius: var(--radius-sm);
  border: 1px solid rgba(245, 240, 225, 0.18);
}

.bm-modal .bm-captcha-refresh {
  color: var(--gold);
  text-decoration: none;
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  letter-spacing: 0.06em;
}

.bm-modal .bm-captcha-refresh:hover {
  color: var(--gold-hi);
  text-decoration: underline;
}

.bm-modal .bm-required {
  color: var(--orange);
}
