/* BookieFinder 1.3.7 — editorial visual polish and mobile-first refinement. */
.bf-container { max-width: 1240px; }
.bf-single-shop { padding-top: 22px; }
.bf-breadcrumbs { font-size: 12px; letter-spacing: .01em; margin-bottom: 22px; }
.bf-shop-head { padding: 6px 0 24px; margin-bottom: 0; }
.bf-shop-head h1 { max-width: 900px; font-size: clamp(32px, 4.8vw, 52px); letter-spacing: -.035em; line-height: .98; }
.bf-shop-head-meta { gap: 8px 16px; margin-top: 2px; }
.bf-shop-head-meta .bf-finder-status { display:inline-flex; align-items:center; min-height:28px; padding: 4px 9px; border-radius: 999px; background: rgba(31,122,77,.08); letter-spacing:.035em; }
.bf-shop-head-meta .bf-finder-status--closed { background: rgba(179,38,30,.08); }
.bf-shop-grid { gap: 0 56px; }
.bf-shop-section { padding: 34px 0; }
.bf-shop-section-title { font-size: 25px; letter-spacing: -.02em; margin-bottom: 20px; }
.bf-hours-table { max-width: 560px; }
.bf-hours-table th, .bf-hours-table td { padding: 11px 0; }
.bf-hours-table tbody tr:last-child th, .bf-hours-table tbody tr:last-child td { border-bottom: 0; }
.bf-hours-table tr.is-today { background: linear-gradient(90deg, rgba(18,72,56,.06), transparent); }
.bf-hours-table tr.is-today th { padding-left: 10px; border-radius: 4px 0 0 4px; }
.bf-hours-table tr.is-today td { padding-right: 10px; border-radius: 0 4px 4px 0; }
.bf-info-list { gap: 22px 40px; }
.bf-info-list dd { font-size: 16px; }
.bf-shop-photo { border-radius: 8px; overflow: hidden; box-shadow: 0 10px 30px rgba(29,28,25,.08); }
.bf-shop-actions { gap: 10px; margin-top: 8px; }
.bf-shop-actions .bf-btn { min-height: 46px; padding-left: 16px; padding-right: 16px; }
.bf-single-map { border: 1px solid var(--bf-border); border-radius: 10px; overflow: hidden; background: var(--bf-white); box-shadow: 0 8px 26px rgba(29,28,25,.06); }
.bf-live-map { display:block; width:100%; height:340px; border:0; }
.bf-map-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; border-top:1px solid var(--bf-border-light); color:var(--bf-muted); font-size:11px; }
.bf-map-footer a { color:var(--bf-brand); font-weight:700; }
.bf-verification-section { margin-top: 2px; }
.bf-verification-section .bf-info-list--verify { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:700px; padding:18px 20px; margin:0; border:1px solid rgba(31,122,77,.20); border-radius:8px; background:rgba(31,122,77,.045); }
.bf-verification-section .bf-info-list--verify > div { gap:4px; }
.bf-verification-section .bf-info-list--verify dd { font-weight:600; }
.bf-nearby-shops { padding-top: 34px; }
.bf-nearby-list { border-top: 0; }
.bf-nearby-list li { padding:15px 0; }
.bf-nearby-list li:first-child { border-top:1px solid var(--bf-border); }
.bf-nearby-list a strong { font-size:15px; }

/* Finder: make the map/list relationship feel intentional rather than utilitarian. */
.bf-finder-layout { gap:24px; }
.bf-finder-map { border-radius:10px; box-shadow:0 8px 26px rgba(29,28,25,.06); }
.bf-finder-row { padding:15px 8px; }
.bf-finder-row:hover { background:rgba(18,72,56,.035); }
.bf-finder-page-form input { border-radius:7px; min-height:48px; }
.bf-finder-page-form .bf-btn, .bf-finder-page-form .bf-finder-locate { min-height:48px; border-radius:7px; }
.bf-finder-filters { border-radius:8px; box-shadow:0 4px 18px rgba(29,28,25,.04); }

/* Cards and content pages get a more editorial rhythm without changing their content. */
.bf-card, .bf-widget-card { border-radius:8px; }
.bf-section-head { margin-bottom:18px; }

@media (max-width: 760px) {
  .bf-container { padding-left:16px; padding-right:16px; }
  .bf-single-shop { padding-top:14px; padding-bottom:38px; }
  .bf-breadcrumbs { white-space:normal; overflow:visible; text-overflow:clip; margin-bottom:18px; line-height:1.45; }
  .bf-shop-head { padding-bottom:20px; }
  .bf-shop-head h1 { font-size:clamp(31px, 10vw, 42px); line-height:1.02; }
  .bf-shop-head-meta { font-size:13px; gap:8px 10px; }
  .bf-shop-grid { display:block; }
  .bf-shop-col-secondary { margin-top:0; }
  .bf-shop-section { padding:25px 0; }
  .bf-shop-section-title { font-size:22px; margin-bottom:15px; }
  .bf-hours-table { font-size:14px; }
  .bf-hours-table th, .bf-hours-table td { padding:10px 0; }
  .bf-info-list { gap:17px 20px; }
  .bf-info-list dd { font-size:15px; }
  .bf-live-map { height:250px; }
  .bf-finder-live-map { height:250px; }
  .bf-map-footer { font-size:10px; padding:8px 10px; }
  .bf-shop-actions { display:flex; flex-direction:column; gap:8px; }
  .bf-shop-actions .bf-btn { width:100%; justify-content:center; min-height:48px; }
  .bf-shop-actions .bf-save-shop { order:3; }
  .bf-verification-section .bf-info-list--verify { grid-template-columns:1fr; padding:15px 16px; gap:14px; }
  .bf-nearby-list li { grid-template-columns:minmax(0,1fr) auto; }
  .bf-finder-layout { gap:16px; }
  .bf-finder-map { order:-1; }
}

@media (max-width: 420px) {
  .bf-shop-head-meta .bf-finder-status { min-height:26px; }
  .bf-live-map { height:220px; }
  .bf-finder-live-map { height:220px; }
  .bf-map-footer span { max-width:70%; }
}


/* v1.5.2 — one-line intro under homepage section headings */
.bf-section-intro { margin: 6px 0 0; max-width: 62ch; font-size: 15px; line-height: 1.5; color: var(--bf-muted); }

.bf-404 { padding-top: 48px; padding-bottom: 64px; }
.bf-404-search { max-width: 720px; margin: 24px auto 14px; }
.bf-404-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 18px; }

#shop-finder { scroll-margin-top: calc(var(--bf-header-h) + 18px); }

@media (max-width: 640px) {
  .bf-offer-actions { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
  .bf-offer-actions .bf-btn { width:100%; min-height:46px; justify-content:center; }
  .bf-offer-terms { align-self:flex-start; }
}
