/* Make our container use the full available width even if the theme clamps content */
.tm-wrap{
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto;
  padding: 0 16px 24px;
}

/* Toolbar */
.tm-toolbar{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 8px 0 12px;
}
#tm-country{ min-width: 240px; font-size: 14px; }
#tm-place{ flex: 1 1 320px; min-width: 260px; }
.tm-btn{ padding: 6px 10px; font-size: 14px; line-height: 1; }

/* Map stays centered, list uses full width */
#tm-map{
  width: min(1100px, 100%);
  height: clamp(360px, 60vh, 680px);
  margin: 0 auto 14px;       /* centered */
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

/* Summary + pager */
.tm-summary{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 6px 0 8px;
}

/* Table area — full width */
.tm-table-wrap{
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tm-table{
  width: 100%;
  border-collapse: collapse;
  table-layout: auto; /* allow columns to grow naturally */
}
.tm-table th, .tm-table td{
  border-bottom: 1px solid #eee;
  padding: 8px 10px;
  vertical-align: top;
}
.tm-table th{ text-align: left; font-weight: 600; }

/* Prefer more room for Address and Website to reduce wrapping */
.tm-table td:nth-child(1){ width: 18%; }
.tm-table td:nth-child(2){ width: 40%; word-break: break-word; }
.tm-table td:nth-child(3){ width: 10%; white-space: nowrap; }
.tm-table td:nth-child(4), .tm-table td:nth-child(5){ width: 8%; white-space: nowrap; }
.tm-table td:nth-child(6){ width: 16%; word-break: break-all; }

/* Popup */
.tm-popup{ font-size: 13px; line-height: 1.35; }
.tm-popup b{ font-weight: 600; }

/* Mobile tweaks */
@media (max-width: 680px){
  #tm-place{ flex: 1 1 100%; }
  #tm-country{ flex: 1 1 100%; }
  #tm-map{ width: 100%; }
}
