/* 商家、闲置、活动沿用乡镇和便民页面的栏目样式。 */
.life-page [hidden] { display: none !important; }
.life-page .panel { border-top: 2px solid var(--blue); }
.life-page .detail-title { font-family: inherit; font-size: 24px; line-height: 1.45; overflow-wrap: anywhere; }
.life-page .layout > *, .life-page .form > * { min-width: 0; }
.life-page .pre { font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
.life-page .facts { grid-template-columns: 80px minmax(0,1fr); gap: 13px 14px; font-size: 15px; margin: 20px 0; }
.life-page .facts dd { overflow-wrap: anywhere; word-break: normal; }
.life-page .hero-img { max-height: 600px; object-fit: contain; background: #eef1f4; border: 1px solid var(--line); }
.life-page .gallery img { object-fit: contain; background: #eef1f4; }
.life-section-title { font-size: 18px; color: var(--ink); margin: 0 0 14px; }
.life-price { color: var(--brand-dark); font-size: 24px; font-weight: 700; margin: 10px 0; }
.life-category-filter { display: flex; align-items: flex-start; gap: 20px; background: white; border: 1px solid var(--line); border-radius: 5px; padding: 15px 20px; }
.life-category-filter > strong { flex-shrink: 0; padding: 9px 0; color: var(--ink); }
.life-category-filter > div { display: flex; flex-wrap: wrap; gap: 3px 6px; }
.life-category-filter a { padding: 9px 12px; min-height: 44px; font-size: 14px; border-radius: 4px; }
.life-category-filter .on, .life-category-filter a:hover { background: var(--brand-soft); color: var(--brand-dark); }
.life-category-filter .on { font-weight: 600; box-shadow: inset 0 -2px var(--orange); }
.life-page .card .body h3 { font-size: 16px; line-height: 1.6; }
.life-page .card .meta, .life-page .shop .meta { font-size: 14px; line-height: 1.8; }
.life-page .shop h3 { font-size: 17px; }
.life-page .life-form { max-width: 820px; margin: 0 auto; padding: 28px 32px; }
.life-form > .page-title { margin-bottom: 12px; }
.life-form .form { max-width: none; gap: 24px; }
.life-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; counter-reset: life-step; padding: 0; margin: 22px 0; border: 1px solid var(--line); border-radius: 5px; background: #f3f7fa; }
.life-steps li { counter-increment: life-step; padding: 14px 10px; text-align: center; font-size: 14px; color: var(--ink); }
.life-steps li + li { border-left: 1px solid var(--line); }
.life-steps li::before { content: counter(life-step) ". "; color: var(--blue); font-weight: 700; }
.life-fields { border: 0; padding: 18px 0 0; margin: 0; min-width: 0; display: grid; gap: 17px; border-top: 1px solid var(--line); }
.life-fields legend { padding: 0 12px 0 0; font-size: 18px; font-weight: 600; color: var(--ink); }
.life-form .form label { font-size: 15px; color: var(--text); gap: 8px; }
.life-form .form input, .life-form .form select, .life-form .form textarea { min-width: 0; max-width: 100%; border-color: #bfc8d1; border-radius: 5px; font-size: 15px; min-height: 46px; }
.life-form .form input[type=file] { padding: 10px; font-size: 14px; }
.life-form .form label.req span::after { color: #a33126; }
.life-field-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; min-width: 0; }
.life-field-row > label { min-width: 0; }
.life-private { background: #f3f7fa; padding: 18px; border: 1px solid #d9e4ed; border-radius: 5px; }
.life-private legend { background: white; padding: 0 8px; }
.field-help { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 0; }
.life-form > .field-help { margin-bottom: 24px; }
.life-optional { border: 1px solid var(--line); padding: 0 15px; border-radius: 5px; }
.life-optional summary { cursor: pointer; color: var(--blue); padding: 14px 0; }
.life-optional .life-fields { padding: 16px 0; }
.life-submit { border-top: 1px solid var(--line); padding-top: 18px; }
.life-submit > p { margin: 0 0 18px; color: var(--muted); font-size: 14px; }
.life-submit > .btn { margin: 0 8px 8px 0; }
.life-form .form .consent { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 22px; line-height: 1.8; font-size: 14px; }
.life-form .form .consent input { width: 18px; height: 18px; min-height: 18px; margin-top: 5px; flex: 0 0 18px; padding: 0; }
.life-receipt { border: 1px solid #c6dcd3; background: #f5faf7; border-radius: 5px; padding: 24px; margin-top: 24px; overflow-wrap: anywhere; }
.life-receipt h2 { font-size: 22px; color: #29634c; }
.life-page .community-code input { max-width: 100%; min-width: 0; }
.life-page .community-mine-card { border-radius: 5px; background: white; }
.life-page .community-mine-card > .muted { color: var(--brand-dark); font-size: 15px; }
.life-page .community-restore { border-top: 1px solid var(--line); padding-top: 20px; }
.life-page .community-restore summary { color: var(--blue); cursor: pointer; min-height: 44px; }
.life-page .community-restore .form { max-width: 560px; }
@media(max-width:760px) {
  .life-category-filter { display: block; padding: 14px; }
  .life-category-filter > strong { display: block; padding: 0 0 8px; }
  .life-category-filter a { padding: 9px 10px; }
  .life-page .life-form { padding: 22px 18px; }
  .life-page .detail-title { font-size: 22px; }
  .life-page .directory-heading .filter-actions { width: 100%; }
  .life-page .directory-heading .filter-actions .btn { flex: 1; }
  .life-field-row { grid-template-columns: 1fr; gap: 17px; }
  .life-private { padding: 16px 12px; }
  .life-steps li { padding: 12px 5px; font-size: 14px; }
  .life-receipt { padding: 18px; }
  .life-page .facts { grid-template-columns: 68px minmax(0,1fr); gap: 12px 10px; }
}
@media(max-width:480px) {
  .life-steps li::before { display: block; }
}
@media(max-width:359px) {
  .life-page .life-form { padding: 20px 14px; }
}

/* 手机输入框保留 16px，标题和说明使用上面较紧凑的字号。 */
@media(max-width:760px) {
  .search input,
  .form input, .form select, .form textarea,
  .filters select, .filters input[type=text],
  .market-filters input, .market-filters select,
  .directory-page .directory-filter input, .directory-page .directory-filter select,
  .life-form .form input, .life-form .form select, .life-form .form textarea { font-size: 16px; }
  .life-form .form input[type=file] { font-size: 14px; }
}
