.nh-place-page {
  padding-bottom: 56px;
  background: #fff;
}

.nh-place-page .nh-wrap {
  width: 1200px;
}

.nh-place-hero {
  padding: 24px 0 34px;
  border-bottom: 1px solid #f0f1f3;
  background: linear-gradient(180deg, #fff7ef 0%, #fff 100%);
}

.nh-place-hero-estate {
  background: linear-gradient(180deg, #f5fbf7 0%, #fff 100%);
}

.nh-place-hero-school {
  background: linear-gradient(180deg, #f6f9ff 0%, #fff 100%);
}

.nh-place-hero-group {
  background: linear-gradient(180deg, #fff4f1 0%, #fff 100%);
}

.nh-place-crumb,
.nh-place-detail-crumb .nh-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #8b8f98;
  font-size: 13px;
}

.nh-place-crumb a,
.nh-place-detail-crumb a {
  color: #666;
}

.nh-place-crumb a:hover,
.nh-place-detail-crumb a:hover {
  color: #ff7800;
}

.nh-place-detail-crumb {
  padding: 18px 0;
  background: #fff;
}

.nh-place-hero-row {
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.nh-place-hero h1 {
  margin: 0;
  color: #17191f;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.25;
}

.nh-place-hero p {
  margin: 10px 0 0;
  color: #626874;
  font-size: 15px;
}

.nh-place-search {
  width: 470px;
  height: 46px;
  display: flex;
  border: 2px solid #ff7800;
  background: #fff;
}

.nh-place-search input {
  flex: 1;
  min-width: 0;
  height: 42px;
  padding: 0 16px;
  border: 0;
  outline: none;
  color: #222;
}

.nh-place-search button,
.nh-place-hero-btn {
  width: 118px;
  border: 0;
  background: #ff7800;
  color: #fff;
  font-weight: 700;
  text-align: center;
}

.nh-place-hero-btn {
  height: 42px;
  line-height: 42px;
}

.nh-place-filter-section {
  padding: 22px 0 0;
  background: #fff;
}

.nh-place-filter-card {
  border: 1px solid #edf0f4;
  background: #fff;
}

.nh-place-filter-row {
  display: flex;
  min-height: 48px;
  border-bottom: 1px solid #f1f3f6;
}

.nh-place-filter-row:last-child {
  border-bottom: 0;
}

.nh-place-filter-label {
  width: 86px;
  padding: 15px 0 0 18px;
  color: #9097a3;
  background: #fafbfc;
}

.nh-place-filter-options {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 12px 18px;
}

.nh-place-filter-options a {
  color: #3f444d;
  line-height: 24px;
  white-space: nowrap;
}

.nh-place-filter-options a:hover,
.nh-place-filter-options a.active {
  color: #ff7800;
}

.nh-place-content,
.nh-place-detail-content {
  padding: 28px 0 0;
}

.nh-place-grid {
  display: grid;
  grid-template-columns: 850px 300px;
  gap: 50px;
  align-items: start;
}

.nh-place-main,
.nh-place-side-card,
.nh-place-section {
  min-width: 0;
}

.nh-place-list-head {
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid #f3f4f6;
}

.nh-place-list-head h2,
.nh-place-section-title h2,
.nh-place-side-title h3 {
  margin: 0;
  color: #1f2329;
  font-size: 22px;
  font-weight: 700;
}

.nh-place-list-head p {
  margin: 3px 0 0;
  color: #8a9099;
}

.nh-place-list-head em {
  color: #ff7800;
  font-style: normal;
}

.nh-place-list-head > a,
.nh-place-section-title a,
.nh-place-side-title a {
  color: #8a9099;
  font-size: 13px;
}

.nh-place-list-head > a:hover,
.nh-place-section-title a:hover,
.nh-place-side-title a:hover {
  color: #ff7800;
}

.nh-place-sort {
  display: flex;
  align-items: center;
  gap: 18px;
}

.nh-place-sort a {
  color: #5a606a;
}

.nh-place-sort a.active,
.nh-place-sort a:hover {
  color: #ff7800;
}

.nh-school-list,
.nh-estate-list,
.nh-group-list {
  display: grid;
  gap: 0;
}

.nh-school-card,
.nh-estate-card,
.nh-group-card {
  display: grid;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid #f0f1f3;
}

.nh-school-card {
  grid-template-columns: 220px 1fr;
}

.nh-school-card img,
.nh-estate-cover img,
.nh-group-cover img,
.nh-place-mini-list img,
.nh-place-house-grid img,
.nh-place-near-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f4f5f7;
}

.nh-school-card > img {
  height: 160px;
}

.nh-school-card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.nh-school-card h3,
.nh-estate-card h3,
.nh-group-card h3 {
  margin: 0;
  color: #222;
  font-size: 20px;
  line-height: 1.35;
}

.nh-school-card h3:hover,
.nh-estate-card h3 a:hover,
.nh-group-card h3 a:hover {
  color: #ff7800;
}

.nh-school-card-title span,
.nh-place-tags span,
.nh-group-badge,
.nh-estate-cover span {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 9px;
  background: #fff4e8;
  color: #ff7800;
  font-size: 12px;
  white-space: nowrap;
}

.nh-school-card p,
.nh-estate-card p {
  margin: 12px 0 0;
  color: #68707c;
  line-height: 1.7;
}

.nh-school-card-actions {
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.nh-school-card-actions span,
.nh-school-card-actions em {
  height: 30px;
  padding: 0 14px;
  line-height: 30px;
  background: #f7f8fa;
  color: #59606b;
  font-style: normal;
}

.nh-estate-card {
  grid-template-columns: 220px 1fr 130px;
}

.nh-estate-cover {
  position: relative;
  height: 160px;
}

.nh-estate-cover span {
  position: absolute;
  left: 10px;
  top: 10px;
  background: rgba(255, 120, 0, .92);
  color: #fff;
}

.nh-estate-card-links {
  margin-top: 16px;
  display: flex;
  gap: 20px;
}

.nh-estate-card-links a {
  color: #3f444d;
}

.nh-estate-card-links strong,
.nh-estate-price strong,
.nh-estate-price-main strong {
  color: #e94b35;
}

.nh-estate-card-links a:hover {
  color: #ff7800;
}

.nh-estate-price {
  padding-top: 28px;
  text-align: right;
}

.nh-estate-price strong {
  display: block;
  font-size: 24px;
  line-height: 1.2;
}

.nh-estate-price span {
  color: #8a9099;
}

.nh-place-side {
  display: grid;
  gap: 22px;
}

.nh-place-side-card {
  border: 1px solid #edf0f4;
  background: #fff;
  padding: 20px;
}

.nh-place-side-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.nh-place-side-title h3 {
  font-size: 18px;
}

.nh-place-rank-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nh-place-rank-list li {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  gap: 8px;
  align-items: center;
  height: 34px;
  color: #5f6672;
}

.nh-place-rank-list em {
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  background: #f3f4f6;
  color: #9aa0aa;
  font-size: 12px;
  font-style: normal;
}

.nh-place-rank-list li:nth-child(-n+3) em {
  background: #ff7800;
  color: #fff;
}

.nh-place-rank-list a {
  overflow: hidden;
  color: #333;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-rank-list a:hover {
  color: #ff7800;
}

.nh-place-rank-list span {
  color: #9aa0aa;
  font-size: 12px;
}

.nh-place-mini-list {
  display: grid;
  gap: 15px;
}

.nh-place-mini-list a {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
}

.nh-place-mini-list img {
  height: 72px;
}

.nh-place-mini-list h4 {
  margin: 0;
  overflow: hidden;
  color: #252932;
  font-size: 14px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-mini-list p {
  margin: 6px 0;
  overflow: hidden;
  color: #8a9099;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-mini-list strong {
  color: #e94b35;
  font-size: 13px;
}

.nh-group-card {
  grid-template-columns: 330px 1fr;
  border: 1px solid #edf0f4;
  padding: 0;
  margin-bottom: 22px;
}

.nh-place-group-content .nh-place-list-head {
  margin-bottom: 22px;
}

.nh-group-cover {
  position: relative;
  height: 230px;
}

.nh-group-cover span {
  position: absolute;
  left: 16px;
  top: 16px;
  height: 28px;
  padding: 0 10px;
  line-height: 28px;
  background: #e94b35;
  color: #fff;
  font-size: 13px;
}

.nh-group-card-body {
  padding: 24px 24px 20px 0;
}

.nh-group-card-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.nh-group-card-head p {
  margin: 3px 0 0;
  color: #7b828e;
  white-space: nowrap;
}

.nh-group-price-row {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.nh-group-price-row div {
  padding: 14px;
  background: #fafbfc;
}

.nh-group-price-row span {
  display: block;
  color: #8a9099;
  font-size: 12px;
}

.nh-group-price-row strong {
  display: block;
  margin-top: 4px;
  color: #e94b35;
  font-size: 18px;
}

.nh-group-discount {
  margin: 16px 0 0;
  color: #4d535f;
}

.nh-group-card-foot {
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.nh-place-countdown {
  color: #7b828e;
  font-size: 13px;
}

.nh-place-countdown strong {
  margin: 0 4px;
  color: #e94b35;
  font-size: 18px;
}

.nh-group-card-foot button,
.nh-group-submit,
.nh-place-contact-card button,
.nh-place-contact-card a {
  min-width: 116px;
  height: 38px;
  padding: 0 18px;
  border: 0;
  background: #ff7800;
  color: #fff;
  font-weight: 700;
  text-align: center;
  line-height: 38px;
}

.nh-place-pages {
  padding: 28px 0 0;
  text-align: center;
}

.nh-place-empty {
  padding: 58px 0;
  text-align: center;
  color: #8a9099;
}

.nh-place-empty img {
  width: 120px;
  height: 120px;
  margin: 0 auto 16px;
}

.nh-place-empty a {
  display: inline-block;
  margin-top: 10px;
  color: #ff7800;
}

.nh-place-detail-hero {
  padding: 0 0 30px;
  border-bottom: 1px solid #edf0f4;
}

.nh-school-detail-hero,
.nh-estate-detail-hero,
.nh-group-detail-hero {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 36px;
}

.nh-place-gallery {
  min-width: 0;
}

.nh-place-gallery > img,
.nh-place-gallery-stage {
  width: 560px;
  height: 370px;
  background: #f5f6f8;
}

.nh-place-gallery-stage {
  position: relative;
  overflow: hidden;
}

.nh-place-gallery-stage img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .18s ease;
}

.nh-place-gallery-stage img.active {
  opacity: 1;
}

.nh-place-gallery-thumbs {
  margin-top: 12px;
  display: flex;
  gap: 10px;
  overflow: hidden;
}

.nh-place-gallery-thumbs button {
  width: 92px;
  height: 62px;
  padding: 0;
  border: 2px solid transparent;
  background: #f4f5f7;
}

.nh-place-gallery-thumbs button.active {
  border-color: #ff7800;
}

.nh-place-gallery-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nh-place-detail-info {
  min-width: 0;
}

.nh-place-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.nh-place-title-row h1 {
  margin: 0;
  color: #17191f;
  font-size: 30px;
  line-height: 1.28;
}

.nh-place-title-row button {
  height: 34px;
  padding: 0 14px;
  border: 1px solid #ff7800;
  background: #fff;
  color: #ff7800;
}

.nh-place-title-row button.on {
  background: #ff7800;
  color: #fff;
}

.nh-place-address {
  margin: 12px 0 0;
  color: #626874;
  line-height: 1.7;
}

.nh-school-stats {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #edf0f4;
}

.nh-school-stats a {
  padding: 18px;
  border-right: 1px solid #edf0f4;
  text-align: center;
}

.nh-school-stats a:last-child {
  border-right: 0;
}

.nh-school-stats strong {
  display: block;
  color: #e94b35;
  font-size: 24px;
}

.nh-school-stats span {
  color: #7b828e;
}

.nh-place-meta-grid {
  margin: 24px 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
}

.nh-place-meta-grid div,
.nh-estate-info-table div {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 10px;
  min-width: 0;
}

.nh-place-meta-grid dt,
.nh-estate-info-table dt {
  color: #8a9099;
}

.nh-place-meta-grid dd,
.nh-estate-info-table dd {
  margin: 0;
  min-width: 0;
  color: #333;
}

.nh-estate-price-main {
  margin-top: 18px;
}

.nh-estate-price-main strong {
  font-size: 34px;
}

.nh-estate-price-main span {
  margin-left: 6px;
  color: #e94b35;
}

.nh-estate-action-row {
  margin-top: 18px;
  display: flex;
  gap: 12px;
}

.nh-estate-action-row a {
  height: 34px;
  padding: 0 14px;
  line-height: 34px;
  background: #f7f8fa;
  color: #3f444d;
}

.nh-estate-action-row a:hover {
  background: #ff7800;
  color: #fff;
}

.nh-place-tags {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.nh-place-anchor {
  height: 54px;
  border-bottom: 1px solid #edf0f4;
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 20;
}

.nh-place-anchor .nh-wrap {
  height: 54px;
  display: flex;
  align-items: center;
  gap: 34px;
}

.nh-place-anchor a {
  height: 54px;
  line-height: 54px;
  border-bottom: 2px solid transparent;
  color: #333;
  font-size: 15px;
}

.nh-place-anchor a.active,
.nh-place-anchor a:hover {
  border-bottom-color: #ff7800;
  color: #ff7800;
}

.nh-place-section {
  margin-bottom: 28px;
  padding-bottom: 4px;
}

.nh-place-section-title {
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid #f3f4f6;
}

.nh-place-section-title h2 {
  font-size: 22px;
}

.nh-place-richtext {
  padding: 18px 0 4px;
  color: #444b55;
  line-height: 1.9;
}

.nh-place-richtext p {
  margin: 0 0 12px;
}

.nh-place-table-list {
  display: grid;
}

.nh-place-table-list a {
  display: grid;
  grid-template-columns: 180px 1fr 130px;
  gap: 18px;
  align-items: center;
  min-height: 52px;
  border-bottom: 1px solid #f1f3f6;
  color: #454b55;
}

.nh-place-table-list a:hover span {
  color: #ff7800;
}

.nh-place-table-list em {
  overflow: hidden;
  color: #7b828e;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-table-list strong,
.nh-place-house-grid strong,
.nh-place-near-grid strong {
  color: #e94b35;
}

.nh-place-house-grid,
.nh-place-near-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  padding-top: 18px;
}

.nh-place-house-grid a,
.nh-place-near-grid a {
  min-width: 0;
}

.nh-place-house-grid img {
  height: 132px;
}

.nh-place-near-grid img {
  height: 150px;
}

.nh-place-house-grid h3,
.nh-place-near-grid h3 {
  margin: 10px 0 6px;
  overflow: hidden;
  color: #242832;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-house-grid p,
.nh-place-near-grid p {
  margin: 0 0 6px;
  overflow: hidden;
  color: #838a95;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nh-place-empty-text,
.nh-place-side-empty {
  margin: 18px 0;
  color: #8a9099;
}

.nh-place-contact-card h3 {
  margin: 0 0 10px;
  color: #1f2329;
  font-size: 20px;
}

.nh-place-contact-card p {
  margin: 0 0 16px;
  color: #747b86;
  line-height: 1.8;
}

.nh-place-contact-card strong {
  display: block;
  margin-bottom: 8px;
  color: #e94b35;
  font-size: 24px;
}

.nh-place-contact-card a {
  display: inline-block;
}

.nh-group-detail-hero {
  grid-template-columns: 620px 1fr;
}

.nh-group-detail-hero .nh-place-gallery-stage {
  width: 620px;
  height: 420px;
}

.nh-group-buy-panel {
  padding: 10px 0;
}

.nh-group-buy-panel h1 {
  margin: 14px 0 0;
  color: #17191f;
  font-size: 30px;
  line-height: 1.28;
}

.nh-group-special {
  margin: 16px 0 0;
  color: #4f5661;
}

.nh-group-detail-price {
  margin-top: 24px;
  padding: 18px 20px;
  background: #fff4ef;
}

.nh-group-detail-price span {
  color: #9b5a44;
}

.nh-group-detail-price strong {
  margin-left: 14px;
  color: #e94b35;
  font-size: 30px;
}

.nh-group-detail-tags {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.nh-group-detail-tags span {
  height: 28px;
  padding: 0 10px;
  line-height: 28px;
  background: #f7f8fa;
  color: #59606b;
}

.nh-group-detail-countdown {
  margin-top: 24px;
}

.nh-group-submit {
  margin-top: 22px;
  min-width: 160px;
}

.nh-estate-info-table {
  margin: 18px 0 0;
  padding: 18px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px 24px;
  background: #fafbfc;
}

.nh-place-pano {
  width: 100%;
  height: 480px;
  margin-top: 18px;
  background: #f5f6f8;
}

.nh-place-record-table {
  padding-top: 18px;
}

.nh-place-record-table table {
  width: 100%;
  border-collapse: collapse;
}

.nh-place-record-table th {
  height: 42px;
  background: #fafbfc;
  color: #717985;
  text-align: left;
  font-weight: 400;
}

.nh-place-record-table td {
  height: 46px;
  border-bottom: 1px solid #f0f1f3;
  color: #3f444d;
}

.nh-place-record-table th,
.nh-place-record-table td {
  padding: 0 14px;
}

.nh-place-full-section {
  margin-top: 4px;
}

.nh-place-full-section .map_box,
.nh-place-full-section .peitao {
  max-width: 100%;
}
