/* OB Restaurant Guide + Map v1.6.7 */
.obrg-card{ 
  display:grid; 
  grid-template-columns: var(--obrg-media-w, 240px) 1fr; 
  grid-template-areas: "media body";
  gap:16px; padding:16px; border:1px solid var(--global-palette8,#e5e7eb); border-radius:12px; background:#fff; margin-bottom:16px; 
}
.obrg-pos-right{ grid-template-columns: 1fr var(--obrg-media-w, 240px); grid-template-areas: "body media"; }
.obrg-pos-top{ grid-template-columns: 1fr; grid-template-areas: "media" "body"; }
.obrg-media{ grid-area: media; overflow:hidden; border-radius:10px; position:relative; }
.obrg-media figcaption{ font-size:.8rem; color:#6b7280; padding-top:6px; }
.obrg-img{ width:100%; height:auto; display:block; aspect-ratio: var(--obrg-aspect, 4 / 3); object-fit:cover; object-position: 50% 50%; }
.obrg-placeholder{ display:flex; align-items:center; justify-content:center; background:#f3f4f6; color:#6b7280; font-size:12px; aspect-ratio: var(--obrg-aspect, 4 / 3); }
.obrg-body{ grid-area: body; display:flex; flex-direction:column; gap: var(--obrg-gap, 10px); }
.obrg-title{ margin:0; font-size:1.35rem; line-height:1.2; }
.obrg-sub{ margin-top:-2px; color: var(--obrg-sub-color, inherit); font-size: var(--obrg-sub-size, 16px); line-height: 1.35; }
.obrg-meta{ display:flex; flex-wrap:wrap; align-items:center; gap: var(--obrg-meta-gap, 10px); font-size:.95rem; opacity:.9; }
.obrg-dot{ margin: 0 4px; opacity:.6; }
.obrg-bestforwrap{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.obrg-bestfor-label{ font-weight:600; font-size:.85rem; opacity:.85; }
.obrg-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.obrg-chip{ border:1px solid var(--global-palette8,#e5e7eb); border-radius:999px; padding:4px 10px; font-size:12px; line-height:1.2; background:transparent; }
.obrg-rich{ display:block; }
.obrg-map-wrap{ position:relative; }
.obrg-map{ width:100%; border-radius:12px; overflow:hidden; border:1px solid var(--global-palette8,#e5e7eb); }
.obrg-highlight{ animation: obflash 1.6s ease; }
@keyframes obflash{ 0%{ box-shadow:0 0 0 0 rgba(59,130,246,.5);} 60%{ box-shadow:0 0 0 10px rgba(59,130,246,0);} 100%{ box-shadow:none;} }

@media (min-width: 992px){
  .obrg-map-wrap[data-stickydesktop="1"] .obrg-map{
    position: sticky;
    top: var(--obrg-sticky-top, 96px);
  }
}

@media (max-width: 768px){ .obrg-card{ grid-template-columns: 1fr; grid-template-areas: "media" "body"; } }