/* กล่องข้อมูลสถานที่ — ตั้งใจให้เรียบ กลืนกับธีมของเว็บที่ติดตั้ง
   ใช้ตัวอักษรและสีลิงก์ของธีมเจ้าบ้าน ไม่บังคับฟอนต์หรือพาเลตต์ของตัวเอง */

.cbp-card {
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 10px;
  overflow: hidden;
  margin: 1.5em 0;
  background: #fff;
}

.cbp-cover img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.cbp-body { padding: 16px 18px 14px; }

.cbp-name { margin: 0 0 4px; font-size: 1.25em; line-height: 1.3; }

.cbp-meta {
  margin: 0 0 10px;
  font-size: .875em;
  opacity: .75;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
}
.cbp-rating { font-weight: 600; opacity: 1; }

.cbp-desc { margin: 0 0 12px; }

.cbp-facts { margin: 0 0 12px; display: grid; gap: 6px; }
.cbp-facts > div { display: grid; grid-template-columns: 8.5em 1fr; gap: 10px; font-size: .925em; }
.cbp-facts dt { margin: 0; opacity: .65; }
.cbp-facts dd { margin: 0; }

.cbp-chips { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cbp-chips li {
  font-size: .8em;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, .14);
  opacity: .85;
}

.cbp-contact { margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 14px; font-size: .925em; }

.cbp-actions { margin: 0 0 8px; display: flex; flex-wrap: wrap; gap: 8px; }
.cbp-btn {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 8px;
  border: 1px solid currentColor;
  font-size: .9em;
  text-decoration: none;
}
.cbp-btn-plain { border-color: rgba(0, 0, 0, .18); }

.cbp-source { margin: 0; font-size: .8em; opacity: .6; }

.cbp-error {
  border: 1px solid #e0a2a2;
  background: #fdf3f3;
  border-radius: 8px;
  padding: 12px 15px;
  margin: 1.5em 0;
  font-size: .925em;
}
.cbp-error em { opacity: .7; }

@media (max-width: 480px) {
  .cbp-facts > div { grid-template-columns: 1fr; gap: 0; }
  .cbp-facts dt { font-size: .85em; }
}
