.edition-village {
  --paper: #fff;
  --ink: #111;
  --muted: #555;
  --line: #c7c7c7;
}

.edition-village #content { margin: 0; padding-top: 0; }
.edition-village .house-header { min-height: 46px; }
.edition-village .house-footer nav { max-width: none; }
.edition-village :focus-visible { outline: 2px solid #111; outline-offset: 3px; }

.cunli-cover {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  min-height: 350px;
  aspect-ratio: 2.25 / 1;
  border-bottom: 1px solid #111;
  color: #fff;
  background: #151515;
}
.cunli-cover-art { position: relative; align-self: stretch; }
.cunli-cover-art img {
  position: absolute;
  inset: 0;
  margin: auto;
  display: block;
  width: min(82%, 990px);
  height: 90%;
  object-fit: contain;
  filter: grayscale(1) invert(1) brightness(1.18);
}
.cunli-cover-copy { text-align: center; padding: 12px var(--house-gutter) 25px; }
.cunli-cover-copy h1 { margin: 0 0 12px; font-size: clamp(1.3rem, 1.1rem + .5vw, 1.65rem); letter-spacing: .12em; line-height: 1.2; }
.cunli-cover-actions { display: flex; justify-content: center; gap: 8px; }
.cunli-cover-actions .button {
  display: inline-grid;
  place-items: center;
  justify-content: center;
  min-height: 42px;
  min-width: 138px;
  padding: 7px 12px;
  border: 1px solid #111;
  border-radius: 3px;
  background: #fff;
  color: #111;
  font-size: 12px;
}
.cunli-cover-actions .button:hover { background: #161616; color: #fff; border-color: #fff; }
.cunli-cover :focus-visible { outline-color: #fff; }

.edition-village .places-section, .edition-village .mine-content {
  padding: clamp(24px, 3.5vw, 46px) var(--house-gutter) clamp(32px, 4vw, 60px);
}
.edition-village .section-head { align-items: center; gap: 12px; margin: 0 0 18px; }
.edition-village .section-head h2 { margin: 0; font-size: clamp(1.2rem, 1rem + .6vw, 1.55rem); letter-spacing: 0; }
.edition-village .button.outline { border-color: #111; border-radius: 3px; }
.edition-village .section-head .button { min-height: 40px; padding: 8px 14px; }
.edition-village .section-head .button:hover { background: #111; color: #fff; }
.edition-village .collection-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0 18px;
  border-block: 1px solid #c7c7c7;
  padding: 0;
}
.edition-village .collection-tools .filters { display: flex; gap: 0 14px; flex-wrap: wrap; margin: 0; }
.edition-village .filters button {
  min-height: 44px;
  padding: 0 6px;
  border: 0;
  border-radius: 0;
  font-size: 12px;
  color: #333;
  background: none;
}
.edition-village .filters button[aria-pressed='true'] { box-shadow: inset 0 -2px #111; color: #111; background: none; font-weight: 700; }
.cunli-search { display: flex; gap: 10px; align-items: center; width: min(100%, 300px); }
.cunli-search > span { position: relative; display: block; flex: 0 0 13px; width: 13px; height: 13px; border: 1px solid; border-radius: 50%; }
.cunli-search > span::after { position: absolute; width: 6px; height: 1px; bottom: -2px; right: -5px; transform: rotate(45deg); background: currentColor; content: ''; }
.cunli-search input { min-width: 0; width: 100%; min-height: 44px; padding: 4px; border: 0; background: #fff; color: #111; font: inherit; font-size: 1rem; }
.cunli-search input::placeholder { color: #666; font-size: 12px; }
.edition-village .collection-note { margin: 13px 0; color: #555; font-size: 12px; }

.edition-village .place-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; padding: 1px; background: #c7c7c7; }
.edition-village .place-grid > div, .edition-village .place-grid > .empty-state { background: #fff; }
.edition-village .place-grid > .empty-state { grid-column: 1 / -1; padding: 26px; }
.edition-village .place-card { height: 100%; padding: 0; border: 0; background: #fff; }
.edition-village .place-art {
  display: grid;
  place-items: center;
  aspect-ratio: 2 / 1;
  padding: 12px;
  background: #f3f3f3;
  border-bottom: 1px solid #c7c7c7;
}
.edition-village .place-art i,
.edition-village .place-art i::after {
  position: static;
  width: 20%;
  max-width: 72px;
  height: auto;
  aspect-ratio: 1;
  inset: auto;
  transform: none;
  border: 1px solid #777;
  border-radius: 0;
  background: none;
}
.edition-village .place-art i::after { display: block; width: 72%; max-width: none; margin: auto; }
.edition-village .art-shop i { border-top: 9px double #777; }
.edition-village .art-experience i { transform: rotate(45deg); }
.edition-village .art-service i, .edition-village .art-service i::after { border-radius: 50%; }
.edition-village .place-card-copy { padding: 15px 16px 18px; }
.edition-village .place-card-copy .card-topline { margin: 0 0 6px; color: #666; font-size: 11px; }
.edition-village .place-card-copy h3 { margin: 0; font-weight: 700; font-size: clamp(1rem, .9rem + .4vw, 1.25rem); }
.edition-village .place-card-copy p { margin: 6px 0 0; color: #555; font-size: 12px; }
.edition-village .place-card-copy .content-badge { margin-top: 10px; border: 0; padding: 0; color: #666; }
.edition-village .place-card a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.edition-village .favorite-card { border: 1px solid #aaa; border-radius: 3px; background: #fff; }

.edition-village .breadcrumb { display: flex; padding: 14px var(--house-gutter); gap: 10px; border-bottom: 1px solid #c7c7c7; font-size: 12px; }
.edition-village .breadcrumb a:hover { text-decoration: underline; }
.cunli-village-hero { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); border-bottom: 1px solid #111; }
.cunli-village-hero figure { margin: 0; display: grid; align-content: center; gap: 12px; padding: clamp(26px, 5vw, 80px); background: #f3f3f3; }
.cunli-village-hero img { width: 100%; height: auto; filter: grayscale(1); }
.cunli-village-hero figcaption { color: #555; font-size: 11px; text-align: center; }
.cunli-village-copy { align-self: center; padding: clamp(22px, 4vw, 56px); }
.cunli-village-copy h1, .edition-village .place-heading h1, .edition-village .mine-heading h1 { font-size: clamp(2rem, 1.5rem + 1.8vw, 3.5rem); font-weight: 700; letter-spacing: -.055em; }
.cunli-village-copy p { margin: 12px 0 20px; color: #555; font-size: 14px; line-height: 1.7; }
.cunli-village-copy dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; padding-top: 13px; border-top: 1px solid #aaa; font-size: 12px; }
.cunli-related { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid #c7c7c7; }
.cunli-related a { display: flex; justify-content: space-between; padding: 18px var(--house-gutter); font-size: 13px; }
.cunli-related a + a { border-left: 1px solid #c7c7c7; }
.cunli-related a:hover { background: #f3f3f3; }
.edition-village .place-info, .edition-village .recommendations article, .edition-village .detail-notice { background: #f4f4f4; }
.edition-village .place-heading h1 > span { color: inherit; }
.edition-village .mine-heading { border-bottom: 1px solid #111; background: #f5f5f5; }
.edition-village dialog { background: #fff; }
.edition-village dialog::backdrop { background: #0008; backdrop-filter: none; }

@media (max-width: 740px) {
  .cunli-cover { min-height: 295px; aspect-ratio: 1.3; }
  .cunli-cover-art img { width: min(96%, 600px); }
  .edition-village .place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cunli-village-hero { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .edition-village .collection-tools { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .edition-village .collection-tools .filters { justify-content: space-between; gap: 0; border-bottom: 1px solid #ddd; }
  .cunli-search { width: 100%; }
  .edition-village .place-card-copy { padding: 10px; }
  .edition-village .favorite-card { top: 5px; right: 5px; }
  .cunli-related { grid-template-columns: minmax(0, 1fr); }
  .cunli-related a + a { border-left: 0; border-top: 1px solid #c7c7c7; }
}
