/* 自托管的拉丁字体，只用于数字、编号与小标签；中文使用系统字体。
   来源与许可见 assets/fonts/PROVENANCE.md。 */
@font-face {
  font-family: "Cormorant Garamond";
  src: url("/assets/fonts/CormorantGaramond-Regular.woff2") format("woff2");
  font-style: normal; font-weight: 400; font-display: swap;
}
@font-face {
  font-family: "Cormorant Garamond";
  src: url("/assets/fonts/CormorantGaramond-Italic.woff2") format("woff2");
  font-style: italic; font-weight: 400; font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/JetBrainsMono-Regular.woff2") format("woff2");
  font-style: normal; font-weight: 400; font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/JetBrainsMono-Medium.woff2") format("woff2");
  font-style: normal; font-weight: 500; font-display: swap;
}

/* User-selected 1A: 音乐厅 · 黑金. The CMS content remains the source of truth. */
:root {
  color-scheme: dark;
  --hall-black: #0e0e0d;
  --hall-deep: #141413;
  --hall-surface: #1a1a18;
  --hall-raised: #262624;
  --hall-rule: #3a3a36;
  --hall-ivory: #f7f4ee;
  --hall-muted: #aaa69e;
  --hall-brass: #b8975a;
  --hall-brass-light: #d8b979;
  --hall-alert: #8a5a3c;
  --hall-gutter: clamp(20px, 4.2vw, 60px);
  --hall-content: 1440px;
  --hall-serif: "Songti SC", "Noto Serif CJK SC", STSong, SimSun, serif;
  --hall-body: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  --hall-latin: "Cormorant Garamond", Georgia, serif;
  --hall-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
  --hall-ease: cubic-bezier(.2, .7, .3, 1);
  --paper: var(--hall-black);
  --paper-raised: var(--hall-surface);
  --ink: var(--hall-ivory);
  --ink-soft: var(--hall-muted);
  --rule: var(--hall-rule);
  --rule-soft: #ffffff14;
  --red: var(--hall-brass);
  --gutter: var(--hall-gutter);
  --content: var(--hall-content);
}

html { background: var(--hall-black); scrollbar-color: var(--hall-brass) var(--hall-black); }
body.cms-public { background: var(--hall-black); color: var(--hall-ivory); font-family: var(--hall-body); }
.cms-public ::selection { background: var(--hall-brass); color: var(--hall-black); }
.cms-public ::-webkit-scrollbar-track { background: var(--hall-black); }
.cms-public ::-webkit-scrollbar-thumb { background: var(--hall-brass); border-color: var(--hall-black); }
.cms-public input, .cms-public textarea { caret-color: var(--hall-brass-light); }
.cms-public :focus-visible { outline: 2px solid var(--hall-brass-light); outline-offset: 4px; }

/* Header */
.cms-public .masthead {
  position: sticky;
  top: 0;
  z-index: 50;
  min-height: 84px;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  gap: 24px;
  padding: 0 var(--hall-gutter);
  border-bottom: 1px solid #ffffff1a;
  background: var(--hall-black);
}
.cms-public .original-logo img { width: 56px; height: auto; }
.cms-public .desktop-nav { justify-content: center; gap: clamp(13px, 1.45vw, 25px); }
.cms-public .desktop-nav a,
.cms-public .header-tools > a {
  color: var(--hall-ivory);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .035em;
  text-decoration: none;
}
.cms-public .desktop-nav a { padding: 31px 0 28px; }
.cms-public .desktop-nav a::after,
.cms-public .header-tools > a::after { bottom: 1px; background: var(--hall-brass); }
.cms-public .header-tools { gap: 16px; }
.cms-public .header-cta {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 9px 17px !important;
  border: 1px solid var(--hall-brass);
  color: var(--hall-brass-light) !important;
  letter-spacing: .08em !important;
  transition: color 240ms var(--hall-ease), background 240ms var(--hall-ease);
}
.cms-public .header-cta::after { display: none; }
.cms-public .header-cta:hover { background: var(--hall-brass); color: var(--hall-black) !important; }
.cms-public .menu-toggle { border-color: var(--hall-rule); color: var(--hall-ivory); }
.cms-public .mobile-menu { background: #10100ff7; border-bottom: 1px solid var(--hall-rule); }
.cms-public .mobile-menu a { color: var(--hall-ivory); border-color: var(--hall-rule); }

/* Home hero */
.concert-hero {
  position: relative;
  isolation: isolate;
  min-height: min(720px, calc(100svh - 84px));
  overflow: hidden;
  border-bottom: 1px solid var(--hall-rule);
  background: #090909;
}
.concert-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, #0e0e0df7 0%, #0e0e0dce 31%, #0e0e0d5b 58%, transparent 78%),
    linear-gradient(0deg, #0e0e0dcf 0%, transparent 34%);
  content: "";
}
.concert-hero figure { position: absolute; z-index: -2; inset: 0; margin: 0; }
.concert-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 57% center;
  filter: saturate(.55) contrast(1.12) brightness(.67);
  animation: hall-image-reveal 1100ms var(--hall-ease) both;
}
@keyframes hall-image-reveal {
  from { opacity: .32; transform: scale(1.025); filter: saturate(.15) brightness(.43); }
  to { opacity: 1; transform: scale(1); filter: saturate(.55) contrast(1.12) brightness(.67); }
}
.concert-copy {
  width: min(100%, var(--hall-content));
  min-height: inherit;
  margin: 0 auto;
  padding: clamp(72px, 9vh, 122px) var(--hall-gutter) 96px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.concert-kicker,
.home-section-heading > div > p,
.home-services > header > p,
.home-feature > div > p {
  margin: 0 0 24px;
  color: var(--hall-brass-light);
  font: 11px/1.4 var(--hall-mono);
  letter-spacing: .17em;
}
.concert-kicker::before { display: inline-block; width: 28px; height: 1px; margin-right: 12px; background: var(--hall-brass); vertical-align: middle; content: ""; }
.concert-copy h1 {
  max-width: 950px;
  margin: 0;
  font-family: var(--hall-serif);
  font-size: clamp(54px, 5.7vw, 82px);
  font-weight: 300;
  line-height: 1.17;
  letter-spacing: -.035em;
}
.concert-copy h1 span { display: block; }
.concert-copy h1 em {
  color: var(--hall-brass-light);
  font-family: var(--hall-latin), var(--hall-serif);
  font-weight: 400;
  letter-spacing: -.02em;
}
.concert-intro { max-width: 36em; margin: 28px 0 0; color: #cbc7bf; font-size: 16px; font-weight: 300; line-height: 1.85; }
.concert-actions { display: flex; align-items: center; gap: 14px; margin-top: 36px; }
.concert-actions a {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  padding: 12px 24px;
  font-size: 14px;
  letter-spacing: .06em;
  text-decoration: none;
  transition: background 240ms var(--hall-ease), color 240ms var(--hall-ease), border 240ms var(--hall-ease);
}
.concert-actions svg { width: 18px; height: 18px; }
.brass-button { min-width: 176px; border: 1px solid var(--hall-brass); background: var(--hall-brass); color: var(--hall-black); }
.brass-button:hover { background: var(--hall-brass-light); border-color: var(--hall-brass-light); }
.outline-button { min-width: 150px; border: 1px solid #d8d3ca70; color: var(--hall-ivory); }
.outline-button:hover { border-color: var(--hall-ivory); background: #f7f4ee0d; }
.beat-bars { position: absolute; right: var(--hall-gutter); bottom: 42px; height: 62px; display: flex; align-items: flex-end; gap: 8px; }
.beat-bars i { width: 2px; height: 44%; background: var(--hall-brass); transform-origin: bottom; animation: hall-beat 1.4s ease-in-out infinite alternate; }
.beat-bars i:nth-child(2) { height: 95%; animation-delay: -.7s; }
.beat-bars i:nth-child(3) { height: 66%; animation-delay: -.3s; }
.beat-bars i:nth-child(4) { height: 28%; animation-delay: -.95s; }
@keyframes hall-beat { from { transform: scaleY(.28); opacity: .55; } to { transform: scaleY(1); opacity: 1; } }

/* Proof and section heading */
.heritage-stats {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: 0 var(--hall-gutter);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--hall-rule);
}
.heritage-stats > div { min-height: 178px; display: flex; flex-direction: column; justify-content: center; padding: 30px clamp(18px, 2.4vw, 38px); border-left: 1px solid var(--hall-rule); }
.heritage-stats > div:last-child { border-right: 1px solid var(--hall-rule); }
.heritage-stats strong { color: var(--hall-ivory); font: italic 400 clamp(36px, 4vw, 56px)/1 var(--hall-latin), var(--hall-serif); letter-spacing: -.025em; }
.heritage-stats span { margin-top: 13px; color: var(--hall-muted); font-size: 12px; letter-spacing: .08em; }
.home-section-heading {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(78px, 8vw, 112px) var(--hall-gutter) 42px;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(300px, .7fr);
  gap: 60px;
  align-items: end;
}
.home-section-heading h2,
.home-services h2,
.home-feature h2 {
  margin: 0;
  color: var(--hall-ivory);
  font-family: var(--hall-serif);
  font-size: clamp(42px, 4.7vw, 68px);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -.035em;
}
.home-section-heading > p { max-width: 34em; margin: 0 0 7px; color: var(--hall-muted); font-size: 15px; line-height: 1.85; }

/* The nine homepage links remain database-backed and become the category mosaic. */
.home-page .cms-page-surface > .home-hero { width: min(100%, var(--hall-content)); min-height: 0; margin: 0 auto; padding: 0 var(--hall-gutter) clamp(84px, 9vw, 126px); display: block; border: 0; }
.home-page .home-index { padding: 0; border: 0; }
.home-page .home-index ol { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; grid-auto-rows: 222px; gap: 12px; margin: 0; overflow: visible; }
.home-page .home-index li { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.home-page .home-index li:first-child { grid-column: span 6; grid-row: span 2; }
.home-page .home-index li:not(:first-child) { grid-column: span 3; }
.home-page .home-index li a { position: relative; z-index: 0; min-height: 100%; display: flex; align-items: flex-end; gap: 12px; padding: 22px; color: var(--hall-ivory); text-decoration: none; transform: none; }
.home-page .home-index li a::before,
.home-page .home-index li a::after { position: absolute; z-index: -2; inset: 0; background: center / cover no-repeat; content: ""; transition: transform 500ms var(--hall-ease), filter 300ms ease; }
/* Each card carries its own editable image, so this must win over the shorthand above. */
.home-page .home-index li a::before { background-image: var(--entry-image); }
.home-page .home-index li a::after { z-index: -1; background: linear-gradient(0deg, #0e0e0df5 0%, #0e0e0d82 42%, transparent 82%); }
.home-page .home-index li a:hover::before,
.home-page .home-index li a:focus-visible::before { transform: scale(1.045); filter: saturate(1.08) brightness(1.06); }
.home-page .home-index .index-number { align-self: center; color: var(--hall-brass-light); font: italic 400 13px/1 var(--hall-latin), serif; }
.home-page .home-index .index-label { flex: 1; }
.home-page .home-index .index-label strong { display: block; font-family: var(--hall-serif); font-size: clamp(17px, 1.4vw, 21px); font-weight: 400; letter-spacing: .01em; }
.home-page .home-index .index-label small { display: block; margin-top: 5px; color: #c0bbb1; font: 10px/1.4 var(--hall-mono); letter-spacing: .13em; }
.home-page .home-index li svg { width: 17px; height: 17px; color: var(--hall-brass-light); transition: transform 240ms var(--hall-ease); }
.home-page .home-index li a:hover svg { transform: translateX(4px); }
.home-page .home-index .index-base,
.home-page .home-image { display: none; }

/* Search strip */
.archive-search { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(24px, 4vw, 64px); align-items: center; width: min(100%, var(--hall-content)); max-width: none; margin: 0 auto; padding: clamp(40px, 5vw, 64px) var(--hall-gutter); border: 0; border-bottom: 1px solid var(--hall-rule); background: var(--hall-black); color: var(--hall-ivory); }
.archive-search > div, .archive-search form { width: auto; max-width: none; }
.archive-search h2 { margin: 0; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(26px, 2.6vw, 36px); font-weight: 300; letter-spacing: -.02em; }
.archive-search p { margin: 10px 0 0; color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .14em; }
.archive-search form { display: flex; margin: 0; border: 1px solid #5c5852; background: var(--hall-surface); transition: border-color 240ms var(--hall-ease); }
.archive-search form:focus-within { border-color: var(--hall-brass); }
.archive-search input { flex: 1; min-width: 0; height: 58px; padding: 0 20px; border: 0; border-radius: 0; background: transparent; color: var(--hall-ivory); font-size: 16px; }
.archive-search input:focus { outline: none; }
.archive-search input::placeholder { color: #8d8981; }
.archive-search button { width: 60px; display: grid; place-items: center; padding: 0; border: 0; border-left: 1px solid #5c5852; border-radius: 0; background: transparent; color: var(--hall-brass-light); cursor: pointer; transition: background 240ms var(--hall-ease), color 240ms var(--hall-ease); }
.archive-search button:hover { background: var(--hall-brass); color: var(--hall-black); }
.archive-search button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }

/* Preserved homepage content, retuned to the selected system. */
.legacy-home { overflow: hidden; padding-top: clamp(72px, 8vw, 104px); background: var(--hall-black); }
.legacy-home > .container_index,
.legacy-home > .cf.w1100.m_center { width: min(100%, var(--hall-content)); margin-inline: auto; padding-inline: var(--hall-gutter); }
.legacy-home > .container_index { margin-bottom: clamp(64px, 7vw, 96px); }
.legacy-home .container_index :is(.next, .prev, .hd, .slideBorder), .legacy-home .index_slide2 :is(.next, .prev) { display: none; }
.legacy-home .list_indexbanner { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border: 1px solid var(--hall-rule); background: #10100f; }
.legacy-home .list_indexbanner::-webkit-scrollbar { display: none; }
.legacy-home .list_indexbanner li { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.legacy-home .list_indexbanner a { display: block; }
.legacy-home .list_indexbanner img { width: 100%; height: clamp(220px, 28vw, 400px); object-fit: cover; filter: saturate(.3) contrast(1.05) brightness(.72); }
.legacy-home > .cf.w1100.m_center { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: clamp(40px, 6vw, 96px); align-items: start; margin-bottom: clamp(72px, 8vw, 112px); }
.legacy-home > .cf.w1100.m_center > * { width: auto; max-width: none; min-width: 0; }
.legacy-home .index_1 { margin: 0 0 22px; }
.legacy-home .index_1 .title { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(27px, 2.6vw, 36px); font-weight: 300; letter-spacing: -.02em; text-decoration: none; }
.legacy-home .index_1 .title:hover { color: var(--hall-brass-light); }
.legacy-home .index_1::after { width: 42px; height: 1px; display: block; margin-top: 18px; background: var(--hall-brass); content: ""; }
.legacy-home .list_news { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hall-rule); }
.legacy-home .list_news li { border-bottom: 1px solid var(--hall-rule); }
.legacy-home .list_news a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: baseline; padding: 15px 0; color: #d9d5cd; font-size: 15px; line-height: 1.6; text-decoration: none; transition: color 200ms ease; }
.legacy-home .list_news a:hover { color: var(--hall-brass-light); }
.legacy-home .list_news .txt { min-width: 0; }
.legacy-home .list_news .time { color: #8f8b83; font: 11px/1.6 var(--hall-mono); font-variant-numeric: tabular-nums; letter-spacing: .04em; white-space: nowrap; }
.legacy-home > .cf.w1100.m_center > .f_right { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.legacy-home > .cf.w1100.m_center > .f_right > * { min-width: 0; margin: 0; }
.legacy-home > .cf.w1100.m_center > .f_right > .of:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.legacy-home > .cf.w1100.m_center > .f_right > .of:first-child a,
.legacy-home > .cf.w1100.m_center > .f_right > .of:nth-child(2) > a { display: block; overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.legacy-home > .cf.w1100.m_center > .f_right img { width: 100%; height: 128px; object-fit: cover; filter: saturate(.62) brightness(.78); transition: filter 240ms ease, transform 500ms var(--hall-ease); }
.legacy-home > .cf.w1100.m_center > .f_right a:hover img { filter: saturate(.9) brightness(.92); transform: scale(1.03); }
.legacy-home > .cf.w1100.m_center > .f_right > .of:nth-child(2) { display: grid; grid-template-rows: 200px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.legacy-home > .cf.w1100.m_center > .f_right > .of:nth-child(2) > a { border: 0; }
.legacy-home > .cf.w1100.m_center > .f_right > .of:nth-child(2) img { height: 200px; }
.legacy-home > .cf.w1100.m_center > .f_right > .of:nth-child(2) > .index2 { display: flex; flex-direction: column; padding: 22px 22px 20px; }
.legacy-home .index2, .legacy-home .index_new { width: auto; max-width: none; }
.legacy-home .index2 p { margin: 0; }
.legacy-home .index2 .cn { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 21px; font-weight: 400; line-height: 1.3; }
.legacy-home .index2 .cn a, .legacy-home .index2 .en a { text-decoration: none; }
.legacy-home .index2 .en { margin-top: 6px; color: var(--hall-brass-light); font: italic 400 14px/1.4 var(--hall-latin), serif; }
.legacy-home .index2 .intro { margin-top: 14px; color: var(--hall-muted); font-size: 13px; line-height: 1.8; }
.legacy-home .more, .legacy-home .more_v { display: inline-flex; align-items: center; margin-top: auto; padding-top: 16px; color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.legacy-home .more:hover, .legacy-home .more_v:hover { color: var(--hall-ivory); }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 > a { position: relative; display: block; flex: 1; min-height: 200px; overflow: hidden; }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 > a img { height: 100%; min-height: 200px; }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 > a::after { position: absolute; top: 50%; left: 50%; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid #f7f4eeb0; background: #0e0e0d80; color: var(--hall-ivory); font-size: 12px; content: "▶"; transform: translate(-50%, -50%); }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 .z1 { display: none; }
.legacy-home > .cf.w1100.m_center > .f_right > .index2 > .more_v { margin: 0; padding: 16px 22px; border-top: 1px solid var(--hall-rule); }
.legacy-home .index_tj { margin: 0; padding: clamp(64px, 7vw, 96px) var(--hall-gutter); border-top: 1px solid var(--hall-rule); background: var(--hall-surface); }
.legacy-home .title_indextj { width: min(100%, calc(var(--hall-content) - 2 * var(--hall-gutter))); margin: 0 auto 34px; }
.legacy-home .title_indextj img { display: none; }
.legacy-home .title_indextj::before { display: block; color: var(--hall-ivory); content: "现场与展览"; font-family: var(--hall-serif); font-size: clamp(34px, 3.7vw, 54px); font-weight: 300; letter-spacing: -.03em; }
.legacy-home .title_indextj::after { display: block; margin-top: 10px; color: var(--hall-brass-light); content: "LIVE & EXHIBITION"; font: 10px/1.4 var(--hall-mono); letter-spacing: .16em; }
html[lang="en"] .legacy-home .title_indextj::before { content: "Live & exhibition"; }
.legacy-home .index_slide2 { width: min(100%, calc(var(--hall-content) - 2 * var(--hall-gutter))); margin: 0 auto; }
.legacy-home .index_slide2 .slider { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.legacy-home .index_slide2 .slider li { flex: 1 1 280px; min-width: 0; height: 216px; overflow: hidden; border: 1px solid var(--hall-rule); background: #10100f; }
.legacy-home .index_slide2 .slider li:first-child { flex: 2 1 580px; }
.legacy-home .index_slide2 .slider a,
.legacy-home .index_slide2 .slider img { width: 100%; height: 100%; display: block; }
.legacy-home .index_slide2 .slider img { object-fit: cover; filter: saturate(.48) brightness(.68); transition: filter 240ms ease, transform 500ms var(--hall-ease); }
.legacy-home .index_slide2 .slider a:hover img { filter: saturate(.9) brightness(.88); transform: scale(1.025); }

/* Services and festival feature */
.home-services { width: min(100%, var(--hall-content)); margin: 0 auto; padding: clamp(86px, 9vw, 126px) var(--hall-gutter); }
.home-services > header { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 40px; align-items: end; margin-bottom: 48px; }
.home-services > header > p { margin-bottom: 10px; }
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--hall-rule); border-bottom: 1px solid var(--hall-rule); }
.service-grid > a { position: relative; min-height: 310px; display: flex; flex-direction: column; padding: 28px 28px 26px; border-left: 1px solid var(--hall-rule); color: inherit; text-decoration: none; transition: background 240ms var(--hall-ease); }
.service-grid > a:last-child { border-right: 1px solid var(--hall-rule); }
.service-grid > a:hover { background: var(--hall-surface); }
.service-grid span { color: var(--hall-brass-light); font: italic 400 15px/1 var(--hall-latin), serif; }
.service-grid h3 { margin: auto 0 18px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 25px; font-weight: 300; }
.service-grid p { margin: 0; color: var(--hall-muted); font-size: 14px; font-weight: 300; line-height: 1.8; }
.service-grid i { position: absolute; top: 27px; right: 27px; color: #77736c; font-style: normal; transition: color 240ms ease, transform 240ms var(--hall-ease); }
.service-grid > a:hover i { color: var(--hall-brass-light); transform: translate(3px, -3px); }
.home-feature { position: relative; isolation: isolate; min-height: 610px; display: grid; place-items: center start; overflow: hidden; border-block: 1px solid var(--hall-rule); }
.home-feature::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #0e0e0df4 0%, #0e0e0dba 42%, #0e0e0d24 78%), linear-gradient(0deg, #0e0e0d9b, transparent); content: ""; }
.home-feature > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.48) contrast(1.08) brightness(.67); }
.home-feature > div { width: min(100%, var(--hall-content)); margin: 0 auto; padding: 90px var(--hall-gutter); }
.home-feature h2 { max-width: 720px; }
.home-feature span { max-width: 38em; display: block; margin-top: 25px; color: #c2beb6; font-size: 15px; line-height: 1.85; }
.home-feature a { display: inline-flex; gap: 42px; margin-top: 34px; padding-bottom: 8px; border-bottom: 1px solid var(--hall-brass); color: var(--hall-ivory); font-size: 14px; text-decoration: none; }
.home-feature b { color: var(--hall-brass-light); font-weight: 400; }
.mobile-actions { display: none; }

/* Interior pages */
.cms-page-surface .page-hero,
.page-hero { border: 0; border-bottom: 1px solid var(--hall-rule); background: var(--hall-surface); }
.page-title { padding: 0; border: 0; }
.page-eyebrow { margin: 0 0 22px; color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .16em; text-transform: uppercase; }
.page-eyebrow:empty { display: none; }
.page-eyebrow a { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; transition: color 200ms ease; }
.page-eyebrow a::before { width: 22px; height: 1px; background: var(--hall-brass); content: ""; }
.page-eyebrow a:hover { color: var(--hall-ivory); }
.page-title h1 { max-width: 1080px; margin: 0; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(42px, 4.6vw, 66px); font-weight: 300; line-height: 1.16; letter-spacing: -.03em; text-wrap: balance; }
.page-title h1[data-length="long"] { font-size: clamp(34px, 3.6vw, 52px); }
.page-title h1[data-length="xlong"] { max-width: 26ch; font-size: clamp(28px, 2.9vw, 42px); line-height: 1.3; }
.page-title .title-main { display: block; }
.page-title .title-alt { display: block; margin-top: 14px; color: var(--hall-brass-light); font: italic 400 clamp(18px, 1.7vw, 24px)/1.3 var(--hall-latin), serif; letter-spacing: .01em; }
.page-title h1::after { width: 46px; height: 1px; display: block; margin-top: 28px; background: var(--hall-brass); content: ""; }
.cms-page-surface > .page-content,
.cms-page-surface > .product-entry,
.cms-page-surface > .collection-grid,
.cms-page-surface > .editorial-grid { background: var(--hall-black); }
.legacy-content { color: #d1cdc5; font-family: var(--hall-body); }
.legacy-content a { color: var(--hall-ivory); text-decoration-color: #d8b97966; }
.legacy-content a:hover { color: var(--hall-brass-light); text-decoration-color: var(--hall-brass); }
.legacy-content .name_cp, .legacy-content .name_zl, .legacy-content .title_cy2,
.legacy-content h1, .legacy-content h2, .legacy-content h3 { color: var(--hall-ivory); }
.legacy-content h1, .legacy-content h2, .legacy-content h3 { font-family: var(--hall-serif); font-weight: 400; }
.legacy-content .title_page { border-color: var(--hall-rule); }
.legacy-content .title_page .back { color: var(--hall-brass-light); }
.list_subNav, .list_pp, .list_pp2, .list_dt, .collection-grid, .product-list, .artist-grid { border-color: var(--hall-rule); background: var(--hall-rule); }
.list_subNav li, .list_pp > li, .list_pp2 > li, .list_dt > li, .collection-grid li, .product-list li, .artist-grid li { border-color: var(--hall-rule); background: var(--hall-surface); }
.list_pp > li > a:first-child, .list_pp2 > li > a:first-child { background: #efede8; }
.legacy-content table, .legacy-content td, .legacy-content th { border-color: var(--hall-rule) !important; }
.legacy-content td, .legacy-content th { background: var(--hall-surface) !important; color: #d5d1c8 !important; }
.cms-pagination a { border-color: #625e57; color: var(--hall-ivory); background: transparent; }
.cms-pagination a:hover { background: var(--hall-raised); }

/* Search and admin notice */
.cms-search-page { width: min(100%, var(--hall-content)); min-height: 65vh; padding: 76px var(--hall-gutter) 100px; color: var(--hall-ivory); }
.cms-search-page h1 { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(42px, 5vw, 70px); font-weight: 300; }
.cms-search-form input, .cms-search-form select { border-color: #5c5852; border-radius: 0; background: var(--hall-surface); color: var(--hall-ivory); }
.cms-search-form button { border: 1px solid var(--hall-brass); border-radius: 0; background: var(--hall-brass); color: var(--hall-black); }
.cms-search-form button:hover { background: var(--hall-brass-light); }
.cms-result-count, .cms-results p, .cms-results small { color: var(--hall-muted); }
.cms-results li { border-color: var(--hall-rule); }
.cms-results a { color: var(--hall-ivory); }
.cms-edit-banner { border-bottom: 1px solid #836b3f; background: #2c2519; color: #f1dbaa; }

/* Four-column footer, sourced from navigation and site settings. */
.site-footer {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) minmax(190px, .8fr) minmax(170px, .7fr);
  gap: clamp(40px, 6vw, 90px);
  padding: 76px var(--hall-gutter) 28px;
  border-top: 1px solid var(--hall-rule);
  background: #0a0a09;
  color: var(--hall-ivory);
}
.footer-brand { max-width: 430px; }
.footer-mark strong { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 29px; font-weight: 400; }
.footer-mark span { color: var(--hall-brass-light); font: 10px/1.4 var(--hall-mono); letter-spacing: .16em; }
.site-footer p { margin-top: 24px; color: var(--hall-muted); font-size: 14px; line-height: 1.85; }
.footer-nav, .footer-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 22px; align-content: start; }
.footer-nav > span, .footer-resources > span { grid-column: 1 / -1; margin-bottom: 10px; color: var(--hall-brass-light); font: 10px/1.4 var(--hall-mono); letter-spacing: .15em; }
.footer-nav a, .footer-resources a { color: #c7c3bb; font-size: 13px; text-decoration: none; }
.footer-nav a:hover, .footer-resources a:hover { color: var(--hall-ivory); }
.footer-resources { grid-template-columns: 1fr; }
.footer-legal { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 30px; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--hall-rule); color: #77746e; font: 10px/1.5 var(--hall-mono); }
.footer-legal a { color: inherit; }

@media (max-width: 1260px) {
  .cms-public .masthead { width: 100%; max-width: 100vw; min-height: 76px; grid-template-columns: 1fr auto; }
  .cms-public .desktop-nav { display: none; }
  .cms-public .masthead > .header-tools { position: absolute; z-index: 3; inset: 16px var(--hall-gutter) auto auto; width: max-content; display: flex !important; align-items: center; visibility: visible; opacity: 1; }
  .cms-public .masthead > .header-tools > a:first-of-type { display: none; }
  .cms-public .masthead > .header-tools > a:not(.header-cta):last-of-type { min-width: 40px; min-height: 40px; padding: 7px; display: inline-flex !important; align-items: center; justify-content: center; border: 1px solid var(--hall-rule); color: var(--hall-ivory) !important; }
  .cms-public .masthead > .header-tools > .menu-toggle { width: 44px; height: 44px; padding: 10px; display: inline-flex !important; align-items: center; justify-content: center; visibility: visible; opacity: 1; border: 1px solid var(--hall-rule); background: transparent; color: var(--hall-ivory) !important; }
  .cms-public .masthead > .header-tools > .menu-toggle svg { width: 22px; height: 22px; }
  .home-page .home-index ol { grid-auto-rows: 204px; }
  .site-footer { grid-template-columns: 1.4fr 1fr 1fr; }
}

@media (max-width: 860px) {
  .concert-hero { min-height: 650px; }
  .concert-hero::before { background: linear-gradient(0deg, #0e0e0dfb 0%, #0e0e0dd7 34%, #0e0e0d4f 72%, transparent 100%); }
  .concert-hero img { object-position: 60% center; }
  .concert-copy { justify-content: flex-end; padding-bottom: 72px; }
  .heritage-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .heritage-stats > div:nth-child(2) { border-right: 1px solid var(--hall-rule); }
  .heritage-stats > div:nth-child(-n+2) { border-bottom: 1px solid var(--hall-rule); }
  .home-section-heading { grid-template-columns: 1fr; gap: 24px; }
  .home-page .home-index ol { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 220px; }
  .home-page .home-index li:first-child { grid-column: 1 / -1; grid-row: auto; min-height: 380px; }
  .home-page .home-index li:not(:first-child) { grid-column: auto; }
  .home-services > header { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-grid > a { border-bottom: 1px solid var(--hall-rule); }
  .service-grid > a:nth-child(2) { border-right: 1px solid var(--hall-rule); }
  .site-footer { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  :root { --hall-gutter: 20px; }
  body.home-page { padding-bottom: 58px; }
  .cms-public .masthead { min-height: 68px; }
  .cms-public .original-logo img { width: 45px; }
  .cms-public .header-cta { display: none !important; }
  .concert-hero { min-height: 520px; }
  .concert-copy { padding: 230px var(--hall-gutter) 46px; }
  .concert-copy h1 { font-size: clamp(42px, 12vw, 54px); line-height: 1.15; }
  .concert-kicker { margin-bottom: 17px; font-size: 9px; }
  .concert-intro { margin-top: 20px; font-size: 14px; line-height: 1.72; }
  .concert-actions { width: 100%; margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .concert-actions a { min-width: 0; min-height: 48px; padding: 10px 13px; gap: 12px; font-size: 13px; }
  .beat-bars { right: 20px; bottom: 16px; height: 31px; gap: 6px; }
  .heritage-stats { padding: 0; }
  .heritage-stats > div { min-height: 132px; padding: 24px 20px; }
  .heritage-stats strong { font-size: 38px; }
  .heritage-stats span { font-size: 11px; }
  .home-section-heading { padding-top: 72px; padding-bottom: 30px; }
  .home-section-heading h2, .home-services h2, .home-feature h2 { font-size: 39px; }
  .home-page .cms-page-surface > .home-hero { padding-bottom: 76px; }
  .home-page .home-index ol { grid-auto-rows: 185px; gap: 8px; }
  .home-page .home-index li:first-child { min-height: 310px; }
  .home-page .home-index li a { padding: 15px 13px; gap: 7px; }
  .home-page .home-index .index-number { display: none; }
  .home-page .home-index .index-label strong { font-size: 16px; }
  .home-page .home-index .index-label small { font-size: 8px; }
  .archive-search { grid-template-columns: 1fr; padding-block: 40px; }
  .home-services { padding-top: 76px; padding-bottom: 76px; }
  .home-services > header { margin-bottom: 34px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid > a { min-height: 235px; border-right: 1px solid var(--hall-rule); }
  .service-grid h3 { font-size: 23px; }
  .home-feature { min-height: 520px; }
  .home-feature::after { background: linear-gradient(0deg, #0e0e0df5 0%, #0e0e0dbd 55%, #0e0e0d4f 100%); }
  .home-feature > div { align-self: end; padding-block: 70px; }
  .cms-page-surface .page-hero, .page-hero { min-height: 250px; padding-top: 54px; }
  .page-title h1 { font-size: 40px; }
  .cms-search-page { padding-top: 48px; }
  .cms-search-form > div, .cms-search-form select, .cms-search-form button { width: 100%; }
  .site-footer { grid-template-columns: 1fr; gap: 38px; padding-top: 60px; }
  .footer-brand, .footer-legal { grid-column: auto; }
  .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-legal { display: grid; gap: 8px; }
  .mobile-actions { position: fixed; z-index: 48; right: 0; bottom: 0; left: 0; height: 58px; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--hall-rule); background: var(--hall-black); }
  .mobile-actions a { display: grid; place-items: center; color: var(--hall-ivory); font-size: 13px; text-decoration: none; }
  .mobile-actions a:first-child { background: var(--hall-brass); color: var(--hall-black); }
  .mobile-actions a + a { border-left: 1px solid var(--hall-rule); }
}

@media (prefers-reduced-motion: reduce) {
  .cms-public *, .cms-public *::before, .cms-public *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/*
 * Canonical public runtime
 * ------------------------
 * Imported pages used to inherit a second, light legacy stylesheet.  The rules
 * below intentionally provide their complete layout language here instead, so
 * every dynamic route shares the selected black-gold 1A system.
 */
body.cms-public { min-width: 320px; margin: 0; font-size: 16px; line-height: 1.75; }
.cms-public *, .cms-public *::before, .cms-public *::after { box-sizing: border-box; }
.cms-public main { min-width: 0; }
.cms-public a { color: inherit; }
.cms-public img, .cms-public video, .cms-public iframe { display: block; max-width: 100%; }
.cms-public button, .cms-public input, .cms-public select, .cms-public textarea { font: inherit; }
.cms-public figure, .cms-public p { margin-top: 0; }
.cms-public .sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.cms-public .skip-link {
  position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px;
  transform: translateY(-160%); border: 1px solid var(--hall-brass); background: var(--hall-black);
  color: var(--hall-ivory); text-decoration: none;
}
.cms-public .skip-link:focus { transform: translateY(0); }

/* Header and navigation never depend on the archived site CSS. */
.cms-public .masthead { display: grid; align-items: center; }
.cms-public .wordmark { display: inline-flex; align-items: center; width: max-content; }
.cms-public .original-logo img { display: block; max-width: none; }
.cms-public .desktop-nav, .cms-public .header-tools { display: flex; align-items: center; }
.cms-public .desktop-nav a, .cms-public .header-tools > a { position: relative; white-space: nowrap; }
.cms-public .desktop-nav a::after, .cms-public .header-tools > a:not(.header-cta)::after {
  position: absolute; right: 0; bottom: 22px; left: 0; height: 1px; transform: scaleX(0);
  transform-origin: right; content: ""; transition: transform 180ms var(--hall-ease);
}
.cms-public .desktop-nav a:hover::after, .cms-public .desktop-nav a:focus-visible::after,
.cms-public .header-tools > a:not(.header-cta):hover::after { transform: scaleX(1); transform-origin: left; }
.cms-public .menu-toggle {
  display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid;
  background: transparent; cursor: pointer;
}
.cms-public .menu-toggle svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.cms-public .mobile-menu { display: none; }

/* The editor is useful to administrators, but must not visually become a page banner. */
.cms-public .cms-edit-banner {
  position: fixed; z-index: 65; right: 20px; bottom: 20px; display: flex; align-items: center;
  gap: 0; padding: 0; overflow: hidden; border: 1px solid #806b40; background: #181612ee;
  box-shadow: none; font: 12px/1.2 var(--hall-body);
}
.cms-public .cms-edit-banner > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.cms-public .cms-edit-banner a { padding: 10px 12px; color: var(--hall-ivory); text-decoration: none; }
.cms-public .cms-edit-banner a + a { border-left: 1px solid #806b40; color: var(--hall-brass-light); }
.cms-public .cms-edit-banner a:hover { background: var(--hall-brass); color: var(--hall-black); }

/* Shared inner-page stage. A relevant image is kept; the repeated 2018 banner becomes title-only in rendering.py. */
.cms-public .cms-page-surface { overflow: clip; background: var(--hall-black); }
.cms-public .cms-page-surface .page-hero,
.cms-public .page-hero {
  display: grid; grid-template-columns: minmax(0, .94fr) minmax(360px, 1.06fr); align-items: stretch;
  min-height: clamp(400px, 38vw, 540px); padding: 0; border: 0; border-bottom: 1px solid var(--hall-rule);
  background: var(--hall-surface);
}
.cms-public .page-hero.hero-title-only { grid-template-columns: 1fr; min-height: clamp(310px, 28vw, 405px); background: #151513; }
.cms-public .page-title {
  display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start;
  min-width: 0; padding: clamp(48px, 7vw, 104px) var(--hall-gutter); border: 0;
}
.cms-public .page-hero.hero-title-only .page-title { width: min(100%, var(--hall-content)); margin: 0 auto; }
.cms-public .page-title h1 { margin: 0; text-wrap: balance; }
.cms-public .page-cover { min-width: 0; min-height: 0; margin: 0; overflow: hidden; background: #11110f; }
.cms-public .page-cover img { width: 100%; height: 100%; min-height: 100%; object-fit: cover; filter: saturate(.48) contrast(1.06) brightness(.74); }
.cms-public.page-product .page-cover { display: grid; place-items: center; padding: clamp(22px, 4vw, 54px); background: #efede8; }
.cms-public.page-product .page-cover img { object-fit: contain; filter: none; }

/* Imported content gets one measured column, regardless of its original float and width helpers. */
.cms-public .legacy-content { color: #d1cdc5; background: var(--hall-black); }
.cms-public .legacy-content > :not(.page-hero) {
  width: min(100%, var(--hall-content)); margin-right: auto; margin-left: auto; padding-right: var(--hall-gutter); padding-left: var(--hall-gutter);
}
.cms-public .legacy-content :is(.m_center, .w1100, .w1120, .w1160, .w1200, .w1000, .container) {
  width: auto !important; max-width: none !important; margin-right: 0; margin-left: 0;
}
.cms-public .legacy-content :is(.f_left, .f_right) { float: none !important; }
.cms-public .legacy-content .cf::after { display: block; clear: both; content: ""; }
.cms-public .legacy-content :is(.bg1, .bg2, .p20) { background: transparent; }
.cms-public .legacy-content .mb10 { margin-bottom: 10px !important; }
.cms-public .legacy-content .mb20 { margin-bottom: clamp(18px, 2vw, 28px) !important; }
.cms-public .legacy-content .mb30 { margin-bottom: clamp(28px, 4vw, 54px) !important; }
.cms-public .legacy-content :is(p, li, td, th) { overflow-wrap: anywhere; }
.cms-public .legacy-content p { margin-bottom: 1em; }
.cms-public .legacy-content ul, .cms-public .legacy-content ol { margin-top: 0; }
.cms-public .legacy-content h1, .cms-public .legacy-content h2, .cms-public .legacy-content h3, .cms-public .legacy-content h4 { text-wrap: balance; }
.cms-public .legacy-content a { text-underline-offset: 4px; }

/* Context labels retain useful categorisation without repeating the page title. */
.cms-public .legacy-content .title_page.section-eyebrow {
  display: flex; align-items: baseline; gap: 10px; margin: 0 0 clamp(24px, 3vw, 40px); padding: 0 0 15px;
  border: 0; border-bottom: 1px solid var(--hall-rule);
}
.cms-public .legacy-content .title_page .cn { color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .15em; }
.cms-public .legacy-content .title_page .en { color: #77736c; font: 10px/1.4 var(--hall-mono); letter-spacing: .13em; text-transform: uppercase; }
.cms-public .legacy-content .title_page .back { display: none; }

/* Section, product and people grids. Auto-fill prevents an empty grey second column for a single item. */
.cms-public .legacy-content :is(.list_subNav, .list_pp, .list_pp2, .list_zl, .list_zl2, .list_js, .list_user, .list_xs, .list_yp, .list_yp2) {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 245px), 1fr)); gap: 14px;
  padding: 0; list-style: none; border: 0; background: transparent;
}
.cms-public .legacy-content :is(.list_subNav, .list_pp, .list_pp2, .list_zl, .list_zl2, .list_js, .list_user, .list_xs, .list_yp, .list_yp2) > li {
  min-width: 0; padding: 0; overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface);
}
.cms-public .legacy-content .list_subNav a { display: block; height: 100%; color: var(--hall-ivory); text-decoration: none; }
.cms-public .legacy-content .list_subNav img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.55) brightness(.8); transition: filter 220ms var(--hall-ease), transform 420ms var(--hall-ease); }
.cms-public .legacy-content .list_subNav a:hover img { filter: saturate(.82) brightness(.95); transform: scale(1.025); }
.cms-public .legacy-content .list_subNav .txt { min-height: 66px; margin: 0; padding: 18px 19px; font-family: var(--hall-serif); font-size: 18px; font-weight: 400; }

.cms-public .legacy-content .list_pp { grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); }
.cms-public .legacy-content .list_pp > li { display: flex; flex-direction: column; padding: 17px; }
.cms-public .legacy-content .list_pp > li > a:first-child {
  display: grid; flex: 1; min-height: 198px; place-items: center; background: #efede8; text-decoration: none;
}
.cms-public .legacy-content .list_pp img { width: 100%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: normal; transition: transform 220ms var(--hall-ease); }
.cms-public .legacy-content .list_pp > li:hover img { transform: scale(1.025); }
.cms-public .legacy-content .list_pp > li > p { margin: 16px 0 1px; font-family: var(--hall-serif); font-size: 17px; line-height: 1.45; }
.cms-public .legacy-content .list_pp > li > p a { text-decoration: none; }

.cms-public .legacy-content .list_pp2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.cms-public .legacy-content .list_pp2 > li { display: grid; grid-template-columns: minmax(108px, .72fr) minmax(0, 1.28fr); gap: 18px; padding: 18px; }
.cms-public .legacy-content .list_pp2 .img, .cms-public .legacy-content .list_pp2 > li > a:first-child:has(img) { grid-row: span 2; align-self: start; }
.cms-public .legacy-content .list_pp2 .img img, .cms-public .legacy-content .list_pp2 > li > a:first-child img { width: 100%; aspect-ratio: 1; object-fit: contain; background: #efede8; mix-blend-mode: normal; }
.cms-public .legacy-content .list_pp2 .title { margin: 0; align-self: end; font-family: var(--hall-serif); font-size: 19px; font-weight: 400; line-height: 1.35; }
.cms-public .legacy-content .list_pp2 .title a { color: var(--hall-ivory); text-decoration: none; }
.cms-public .legacy-content .list_pp2 .intro { align-self: start; margin: 0; color: var(--hall-muted); font-size: 13px; line-height: 1.7; }
.cms-public .legacy-content .list_pp2 .line { display: none; }

.cms-public .legacy-content .list_dt { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hall-rule); background: transparent; }
.cms-public .legacy-content .list_dt > li { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: clamp(18px, 4vw, 54px); padding: 26px 0; border: 0; border-bottom: 1px solid var(--hall-rule); background: transparent; }
.cms-public .legacy-content .list_dt .time { display: flex; flex-direction: column; margin: 0; color: var(--hall-brass-light); font-variant-numeric: tabular-nums; }
.cms-public .legacy-content .list_dt .day { font: italic 400 clamp(39px, 4vw, 54px)/.84 var(--hall-latin), var(--hall-serif); }
.cms-public .legacy-content .list_dt .year { margin-top: 10px; color: #817d75; font: 10px/1.4 var(--hall-mono); letter-spacing: .08em; }
.cms-public .legacy-content .list_dt .title_dt { display: inline-block; margin-bottom: 8px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(20px, 2.4vw, 29px); font-weight: 400; line-height: 1.35; text-decoration: none; }
.cms-public .legacy-content .list_dt .intro_dt { max-width: 68ch; margin: 0; color: var(--hall-muted); font-size: 14px; line-height: 1.8; }

.cms-public .legacy-content :is(.list_zl, .list_zl2, .list_js, .list_user, .list_xs) > li { padding: 18px; }
.cms-public .legacy-content :is(.list_zl, .list_zl2, .list_js, .list_user, .list_xs) img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.56) brightness(.82); }
.cms-public .legacy-content :is(.list_zl, .list_zl2, .list_js, .list_user, .list_xs) :is(.name, .title, h3, p) { margin-top: 15px; }
.cms-public .legacy-content :is(.list_yp, .list_yp2) a { display: block; height: 100%; text-decoration: none; }
.cms-public .legacy-content :is(.list_yp, .list_yp2) img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.58) brightness(.82); }

/* Detail pages: instruments remain visually legible against the black site surface. */
.cms-public .legacy-content .img_cp {
  margin: 0 0 clamp(28px, 4vw, 52px); padding: clamp(22px, 5vw, 68px); border: 1px solid var(--hall-rule); background: #efede8;
}
.cms-public .legacy-content .img_cp img { width: min(100%, 940px); max-height: 660px; margin: 0 auto; object-fit: contain; mix-blend-mode: normal; }
.cms-public .legacy-content :is(.name_cp, .name_zl, .title_cy2) { max-width: 24ch; margin: 0 auto 18px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(31px, 4vw, 54px); font-weight: 300; line-height: 1.18; text-align: center; }
.cms-public .legacy-content .info_cy { margin: 0 0 38px !important; color: var(--hall-muted) !important; font: 11px/1.5 var(--hall-mono); letter-spacing: .08em; text-align: center; }
.cms-public .legacy-content :is(.editer, .intro_zl, .content) { max-width: 790px; margin-right: auto; margin-left: auto; font-size: 16px; line-height: 1.9; }
.cms-public .legacy-content :is(.editer, .intro_zl, .content) img { width: auto; max-width: 100%; height: auto; margin: 30px auto; }
.cms-public .legacy-content :is(.editer, .content) iframe { width: 100%; min-height: min(52vw, 450px); border: 0; }
.cms-public .legacy-content .xg { max-width: 790px; margin: 44px auto 0; padding-top: 22px; border-top: 1px solid var(--hall-rule); }
.cms-public .legacy-content .xg a { color: var(--hall-brass-light); }

/* Tables stay readable on phones instead of compressing their text into columns. */
.cms-public .legacy-content .table-scroll { width: 100%; margin: 26px 0; overflow-x: auto; border: 1px solid var(--hall-rule); background: var(--hall-surface); -webkit-overflow-scrolling: touch; }
.cms-public .legacy-content :is(.table_cpIntro, table) { width: 100%; margin: 0; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.cms-public .legacy-content :is(th, td) { padding: 12px 14px; border: 1px solid var(--hall-rule) !important; background: transparent !important; color: #d9d5cd !important; vertical-align: top; text-align: left; }
.cms-public .legacy-content th { color: var(--hall-ivory) !important; font-weight: 600; }

/* Historic and utility page families that were never represented in the old shared CSS. */
.cms-public .legacy-content .wrap_pp { padding: clamp(19px, 3vw, 34px); border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.cms-public .legacy-content .slide_year .bd { overflow-x: auto; }
.cms-public .legacy-content .list_year { display: flex; width: max-content; min-width: 100%; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cms-public .legacy-content .dsj_year { margin: 0; }
.cms-public .legacy-content .dsj_year :is(a, em) { display: block; min-width: 58px; padding: 9px 11px; border: 1px solid var(--hall-rule); color: var(--hall-muted); font: 12px/1.2 var(--hall-mono); font-style: normal; text-align: center; text-decoration: none; }
.cms-public .legacy-content .dsj_year :is(a:hover, a:focus-visible, em) { border-color: var(--hall-brass); color: var(--hall-brass-light); }
.cms-public .legacy-content .list_dsj { min-height: 0; margin-top: 22px; }
.cms-public .legacy-content .list_dsj .line { display: none; }
.cms-public .legacy-content .list_lx { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.cms-public .legacy-content .list_lx > li { padding: 22px; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.cms-public .legacy-content :is(.gallery, .list_img, .list_pic, .img_list) { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 14px; padding: 0; list-style: none; }
.cms-public .legacy-content :is(.gallery, .list_img, .list_pic, .img_list) img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.6) brightness(.82); }

/* Small compatibility primitives found across imported catalogue, artist and utility pages. */
.cms-public .legacy-content .page_website { display: none; }
.cms-public .legacy-content .title_js {
  margin: 0 0 20px; padding: 0 0 12px; border-bottom: 1px solid var(--hall-rule);
  color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .14em;
}
.cms-public .legacy-content :is(.align_center, .text_justify) { text-align: center; }
.cms-public .legacy-content .align_right { text-align: right; }
.cms-public .legacy-content .ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cms-public .legacy-content :is(.wrap_js, .btns) { display: inline-flex; align-items: center; gap: 0; border: 1px solid var(--hall-rule); }
.cms-public .legacy-content :is(.btn_input, .input_text) { width: 38px; height: 36px; padding: 0; border: 0; border-right: 1px solid var(--hall-rule); background: var(--hall-surface); color: var(--hall-ivory); text-align: center; }
.cms-public .legacy-content .btn_input:last-child { border-right: 0; cursor: pointer; color: var(--hall-brass-light); }
.cms-public .legacy-content :is(.btn-add, .btn-add2, .js-add, .catalog-action) { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 14px; border: 1px solid var(--hall-brass); background: transparent; color: var(--hall-brass-light); font-size: 13px; text-decoration: none; }
.cms-public .legacy-content :is(.btn-add, .btn-add2, .js-add, .catalog-action):hover { background: var(--hall-brass); color: var(--hall-black); }
.cms-public .legacy-content .bottom_intro { margin-top: 18px; color: var(--hall-muted); font-size: 13px; }
.cms-public .legacy-content :is(.editer2, .abTxt, .yp_intro) { max-width: 790px; margin-right: auto; margin-left: auto; line-height: 1.9; }
.cms-public .legacy-content :is(.yp_name, .name_cy) { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 21px; font-weight: 400; }
.cms-public .legacy-content :is(.wrap_video, .wrap_video2, .wrap_videoDetail, .container_video) { overflow: hidden; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.cms-public .legacy-content :is(.wrap_video, .wrap_video2, .wrap_videoDetail, .container_video) iframe { width: 100%; min-height: min(52vw, 460px); border: 0; }
.cms-public .legacy-content :is(.list_video, .list_video2, .list_video3, .list_mtzx, .list_cybig) { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.cms-public .legacy-content :is(.list_video, .list_video2, .list_video3, .list_mtzx, .list_cybig) > li { min-width: 0; padding: 17px; border: 1px solid var(--hall-rule); background: var(--hall-surface); }
.cms-public .legacy-content :is(.list_video, .list_video2, .list_video3, .list_mtzx, .list_cybig) img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cms-public .legacy-content :is(.fenye, .pageNum) { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 30px; }
.cms-public .legacy-content :is(.fenye, .pageNum) :is(a, span) { display: grid; min-width: 38px; min-height: 38px; place-items: center; padding: 6px 10px; border: 1px solid var(--hall-rule); text-decoration: none; }
.cms-public .legacy-content :is(.fenye, .pageNum) :is(a:hover, span) { border-color: var(--hall-brass); color: var(--hall-brass-light); }
.cms-public .legacy-content .source-unavailable { max-width: 720px; margin: 0 auto; padding: 38px; border: 1px solid var(--hall-rule); background: var(--hall-surface); color: var(--hall-muted); }

/* Pagination and archive search belong to the same runtime, not public.css. */
.cms-public :is(.page, .cms-pagination) { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 34px; }
.cms-public :is(.page, .cms-pagination) :is(a, span) { display: grid; min-width: 38px; min-height: 38px; place-items: center; padding: 6px 10px; border: 1px solid var(--hall-rule); color: var(--hall-ivory); text-decoration: none; }
.cms-public :is(.page, .cms-pagination) a:hover, .cms-public :is(.page, .cms-pagination) span { border-color: var(--hall-brass); color: var(--hall-brass-light); }
.cms-public .cms-search-page { width: min(100%, var(--hall-content)); margin: 0 auto; }
.cms-public .cms-search-form { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; }
.cms-public .cms-search-form > div { min-width: 170px; }
.cms-public .cms-search-form label { display: block; margin-bottom: 8px; color: var(--hall-muted); font-size: 13px; }
.cms-public .cms-query { flex: 1 1 360px; }
.cms-public .cms-query input, .cms-public .cms-search-form select { width: 100%; min-height: 48px; padding: 10px 12px; }
.cms-public .cms-search-form button { min-height: 48px; padding: 10px 24px; cursor: pointer; }
.cms-public .cms-results { margin: 0; padding: 0; list-style: none; }
.cms-public .cms-results li { padding: 25px 0; border-bottom: 1px solid var(--hall-rule); }
.cms-public .cms-results a { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(20px, 2vw, 27px); line-height: 1.35; }

/* Product sheet: image and specification side by side, empty specification rows already dropped in rendering.py. */
.cms-public .legacy-content .cf:has(> .img_cp) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 44px); align-items: start; margin-bottom: clamp(36px, 5vw, 64px) !important; }
.cms-public .legacy-content .cf:has(> .img_cp)::after { display: none; }
.cms-public .legacy-content .cf:has(> .img_cp) > .img_cp { margin: 0; padding: clamp(20px, 3vw, 40px); }
.cms-public .legacy-content .cf:has(> .img_cp) .img_cp img { max-height: 520px; }
.cms-public .legacy-content .cf:has(> .img_cp) > .table-scroll { margin: 0; border: 0; background: transparent; }
.cms-public .legacy-content .table_cpIntro { font-size: 15px; }
.cms-public .legacy-content .table_cpIntro td { padding: 15px 0 !important; border: 0 !important; border-bottom: 1px solid var(--hall-rule) !important; background: transparent !important; }
.cms-public .legacy-content .table_cpIntro tr:first-child td { border-top: 1px solid var(--hall-rule) !important; }
.cms-public .legacy-content .table_cpIntro td:first-child { width: 7em; color: var(--hall-muted) !important; font-size: 13px; letter-spacing: .04em; white-space: nowrap; }
.cms-public .legacy-content .table_cpIntro td + td { color: var(--hall-ivory) !important; }
.cms-public .legacy-content .table-scroll.table-narrow { border: 0; background: transparent; }
.cms-public .legacy-content .info_zl td { padding: 5px 0 !important; border: 0 !important; }
.cms-public .legacy-content .info_zl .name_zl { max-width: none; margin: 0; padding: 0 0 12px !important; color: var(--hall-ivory) !important; font-size: 21px; line-height: 1.35; text-align: left; }
.cms-public .legacy-content .info_cy { max-width: 790px; margin: 0 auto 32px !important; text-align: left; }

/* Section grids: no double frames, and text-only entries for sections without a usable cover. */
.cms-public .legacy-content .wrap_pp { padding: 0; border: 0; background: transparent; }
.cms-public .legacy-content .list_pp > li { padding: 12px; }
.cms-public .legacy-content .list_pp > li > a:first-child { min-height: 172px; }
.cms-public .legacy-content .list_pp > li > p { margin: 14px 0 3px; font-size: 16px; }
.cms-public .legacy-content .list_subNav > li.text-only { align-self: start; }
.cms-public .legacy-content .list_subNav > li.text-only a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 96px; padding: 22px 20px; transition: background 240ms var(--hall-ease); }
.cms-public .legacy-content .list_subNav > li.text-only .txt { min-height: 0; padding: 0; }
.cms-public .legacy-content .list_subNav > li.text-only a::after { flex: 0 0 auto; color: var(--hall-brass-light); content: "→"; transition: transform 240ms var(--hall-ease); }
.cms-public .legacy-content .list_subNav > li.text-only a:hover { background: var(--hall-raised); }
.cms-public .legacy-content .list_subNav > li.text-only a:hover::after { transform: translateX(4px); }

/* Search results and the not-found page share the interior typography. */
.cms-public .cms-search-page h1 { margin-bottom: 40px; }
.cms-public .cms-result-count { margin: 30px 0 4px; color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); letter-spacing: .12em; }
.cms-public .cms-results a { text-decoration: none; transition: color 200ms ease; }
.cms-public .cms-results a:hover { color: var(--hall-brass-light); }
.cms-public .cms-results p { max-width: 68ch; margin: 10px 0 8px; }
.cms-public .cms-results small { font: 11px/1.6 var(--hall-mono); letter-spacing: .08em; }
.cms-public .cms-empty { padding-top: 40px; color: var(--hall-muted); }
.cms-error-page { width: min(100%, var(--hall-content)); min-height: 60vh; margin: 0 auto; padding: clamp(80px, 12vw, 160px) var(--hall-gutter) 120px; }
.cms-error-page h1 { max-width: 16ch; margin: 0 0 22px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(38px, 5vw, 68px); font-weight: 300; line-height: 1.15; letter-spacing: -.03em; }
.cms-error-page > p:not(.page-eyebrow) { max-width: 36em; margin: 0; color: var(--hall-muted); font-size: 16px; line-height: 1.85; }


@media (max-width: 1260px) {
  .cms-public .masthead { grid-template-columns: 1fr auto; gap: 14px; }
  .cms-public .desktop-nav { display: none; }
  .cms-public .header-tools { gap: 8px; }
  .cms-public .header-tools > a { min-height: 40px; display: inline-flex; align-items: center; padding: 7px 10px; border: 1px solid var(--hall-rule); }
  .cms-public .header-tools > a::after { display: none; }
  .cms-public .menu-toggle { display: inline-grid; place-items: center; }
  .cms-public .mobile-menu { grid-column: 1 / -1; grid-row: 2; padding: 0 var(--hall-gutter) 18px; border-top: 1px solid var(--hall-rule); background: #10100ff7; }
  .cms-public .masthead[data-open="true"] .mobile-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .mobile-menu a { padding: 14px 10px; border-bottom: 1px solid var(--hall-rule); color: var(--hall-ivory); font-size: 14px; text-decoration: none; }
}

@media (max-width: 860px) {
  .cms-public .cms-page-surface .page-hero, .cms-public .page-hero { grid-template-columns: 1fr; min-height: 0; }
  .cms-public .page-title { min-height: 280px; padding-top: 66px; padding-bottom: 48px; }
  .cms-public .page-hero.hero-title-only { min-height: 270px; }
  .cms-public .page-cover { aspect-ratio: 16 / 8; }
  .cms-public .page-cover img { min-height: 0; }
  .cms-public .legacy-content .list_pp2 > li { grid-template-columns: 120px minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .cms-public .masthead { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 0; padding-right: 20px; padding-left: 20px; }
  .cms-public .masthead > .wordmark { flex: 0 0 auto; }
  .cms-public .masthead > .header-tools { position: relative !important; top: auto !important; right: auto !important; bottom: auto !important; left: auto !important; inset: auto !important; width: auto !important; margin-left: auto; display: flex !important; flex: 0 0 auto; gap: 8px; visibility: visible; opacity: 1; }
  .cms-public .masthead > .header-tools > a:first-of-type { display: none !important; }
  .cms-public .masthead > .header-tools > a:nth-of-type(2) { display: inline-flex !important; min-width: 40px; justify-content: center; padding-right: 8px; padding-left: 8px; font-size: 11px; }
  .cms-public .masthead > .header-tools > .header-cta { display: none !important; }
  .cms-public .masthead > .header-tools > .menu-toggle { position: static; display: inline-flex !important; flex: 0 0 44px; visibility: visible; opacity: 1; }
  .cms-public .masthead > .mobile-menu { flex: 0 0 100%; }
  .cms-public .mobile-menu { grid-template-columns: 1fr !important; }
  .cms-public .cms-edit-banner { right: 12px; bottom: 70px; }
  .cms-public .page-title { min-height: 250px; padding-top: 54px; padding-bottom: 38px; }
  .cms-public .page-title h1 { font-size: clamp(34px, 10vw, 45px); }
  .cms-public .page-cover { aspect-ratio: 4 / 3; }
  .cms-public .legacy-content > :not(.page-hero) { padding-right: 20px; padding-left: 20px; }
  .cms-public .legacy-content .title_page.section-eyebrow { margin-bottom: 22px; }
  .cms-public .legacy-content .list_pp { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .cms-public .legacy-content .list_pp > li { padding: 10px; }
  .cms-public .legacy-content .list_pp > li > a:first-child { min-height: 144px; }
  .cms-public .legacy-content .list_pp > li > p { margin-top: 11px; font-size: 15px; }
  .cms-public .legacy-content .list_pp2, .cms-public .legacy-content :is(.list_subNav, .list_zl, .list_zl2, .list_js, .list_user, .list_xs, .list_yp, .list_yp2) { grid-template-columns: 1fr; gap: 10px; }
  .cms-public .legacy-content .list_pp2 > li { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 13px; }
  .cms-public .legacy-content .list_pp2 .title { font-size: 17px; }
  .cms-public .legacy-content .list_dt > li { grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 20px 0; }
  .cms-public .legacy-content .list_dt .day { font-size: 38px; }
  .cms-public .legacy-content .list_dt .title_dt { font-size: 20px; }
  .cms-public .legacy-content :is(.editer, .intro_zl, .content) { font-size: 15px; line-height: 1.85; }
  .cms-public .legacy-content .table-scroll { margin: 20px 0; }
  .cms-public .legacy-content .table-scroll table { min-width: 680px; }
  .cms-public .legacy-content :is(.gallery, .list_img, .list_pic, .img_list) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .cms-public .legacy-content .list_lx { grid-template-columns: 1fr; }
  .cms-public.home-page .home-index .index-label small { font-size: 10px; }
}

@media (max-width: 860px) {
  .archive-search { grid-template-columns: 1fr; gap: 22px; }
  .legacy-home > .cf.w1100.m_center { grid-template-columns: 1fr; }
  .cms-public .legacy-content .cf:has(> .img_cp) { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .archive-search input { height: 52px; padding: 0 16px; }
  .legacy-home { padding-top: 60px; }
  .legacy-home > .container_index { margin-bottom: 56px; }
  .legacy-home > .cf.w1100.m_center { gap: 44px; margin-bottom: 64px; }
  .legacy-home > .cf.w1100.m_center > .f_right { grid-template-columns: 1fr; }
  .legacy-home > .cf.w1100.m_center > .f_right > .of:first-child { gap: 8px; }
  .legacy-home > .cf.w1100.m_center > .f_right > .of:first-child img { height: 88px; }
  .legacy-home .index_slide2 .slider { gap: 7px; }
  .legacy-home .index_slide2 .slider li, .legacy-home .index_slide2 .slider li:first-child { flex: 1 1 45%; height: 140px; }
  .cms-public .page-title h1[data-length="long"] { font-size: clamp(28px, 7.6vw, 36px); }
  .cms-public .page-title h1[data-length="xlong"] { font-size: clamp(24px, 6.4vw, 30px); }
  .cms-public .page-title .title-alt { margin-top: 10px; font-size: 17px; }
  .cms-public .legacy-content .table-scroll.table-narrow table { min-width: 0; }
  .cms-public .legacy-content .table_cpIntro td:first-child { width: 6em; }
  .cms-error-page { padding-top: 70px; padding-bottom: 80px; }
}

/*
 * Rebuilt inner-page system
 * -------------------------
 * These surfaces are assembled from the CMS at request time.  The imported
 * markup remains a content source, while products, catalogues, journals and
 * reading pages each get their own visual rhythm.
 */
.cms-public .interior-page {
  min-width: 0;
  overflow: clip;
  background: var(--hall-black);
}
.cms-public .interior-stage {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr);
  min-height: clamp(390px, 43vw, 620px);
  border-bottom: 1px solid var(--hall-rule);
  background: #151513;
}
.cms-public .interior-stage__copy {
  width: min(100%, 690px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: clamp(52px, 8vw, 122px) var(--hall-gutter) clamp(58px, 7vw, 100px);
}
.cms-public .interior-stage h1 {
  max-width: 12ch;
  margin: 0;
  color: var(--hall-ivory);
  font-family: var(--hall-serif);
  font-size: clamp(42px, 5.2vw, 76px);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.cms-public .interior-stage h1 > span,
.cms-public .interior-stage h1 > small { display: block; }
.cms-public .interior-stage h1 > small {
  margin-top: 14px;
  color: var(--hall-brass-light);
  font: italic 400 clamp(17px, 1.9vw, 27px)/1.2 var(--hall-latin), var(--hall-serif);
  letter-spacing: -.015em;
}
.cms-public .interior-stage h1[data-length="long"] { font-size: clamp(37px, 4.2vw, 62px); }
.cms-public .interior-stage h1[data-length="xlong"] { font-size: clamp(31px, 3.4vw, 50px); }
.cms-public .interior-stage__parent {
  display: inline-flex;
  align-items: center;
  margin: 0 0 28px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--hall-muted);
  color: var(--hall-muted);
  font-size: 13px;
  line-height: 1.3;
  text-decoration: none;
  transition: color 180ms var(--hall-ease), border-color 180ms var(--hall-ease);
}
.cms-public .interior-stage__parent:hover,
.cms-public .interior-stage__parent:focus-visible { border-color: var(--hall-brass); color: var(--hall-brass-light); }
.cms-public .interior-stage__summary {
  max-width: 36em;
  margin: 24px 0 0;
  color: #c8c3ba;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.82;
}
.cms-public .interior-stage__date {
  margin-top: 26px;
  color: var(--hall-brass-light);
  font: 12px/1.4 var(--hall-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: .09em;
}
.cms-public .interior-stage__media {
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  background: #0c0c0b;
}
.cms-public .interior-stage__media img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  filter: saturate(.56) contrast(1.06) brightness(.79);
}
.cms-public .interior-stage.text-stage { grid-template-columns: 1fr; min-height: clamp(300px, 29vw, 420px); }
.cms-public .interior-stage.text-stage .interior-stage__copy {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding-right: var(--hall-gutter);
  padding-left: var(--hall-gutter);
}
.cms-public .interior-stage.text-stage h1 { max-width: 15em; }
.cms-public .interior-stage.text-stage h1[data-length="long"] { font-size: clamp(35px, 4vw, 58px); }
.cms-public .interior-stage.text-stage h1[data-length="xlong"] { font-size: clamp(30px, 3.3vw, 48px); }
.cms-public .interior-stage--product { grid-template-columns: minmax(0, 1.16fr) minmax(360px, .84fr); }
.cms-public .interior-stage--product .interior-stage__media { grid-column: 1; grid-row: 1; display: grid; place-items: center; padding: clamp(32px, 5vw, 76px); background: #eeece6; }
.cms-public .interior-stage--product .interior-stage__media img { max-height: min(570px, 43vw); object-fit: contain; filter: none; }
.cms-public .interior-stage--product .interior-stage__copy { grid-column: 2; grid-row: 1; }
.cms-public .interior-stage--journal .interior-stage__media,
.cms-public .interior-stage--history .interior-stage__media { filter: grayscale(.1); }
.cms-public .interior-stage--people .interior-stage__media { background: #201f1d; }
.cms-public .interior-stage--people .interior-stage__media img { object-position: center top; }

/* Instrument dossier: an exhibit image above a sparse factual record. */
.cms-public .instrument-dossier {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(54px, 8vw, 118px) var(--hall-gutter) clamp(76px, 9vw, 134px);
}
.cms-public .instrument-dossier__grid {
  display: grid;
  grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr);
  gap: clamp(38px, 7vw, 118px);
  align-items: start;
}
.cms-public .instrument-dossier__grid--reader { grid-template-columns: minmax(0, 790px); }
.cms-public .instrument-facts { display: grid; gap: 0; margin: 0; }
.cms-public .instrument-facts > div {
  display: grid;
  grid-template-columns: minmax(74px, .42fr) minmax(0, 1fr);
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid var(--hall-rule);
}
.cms-public .instrument-facts > div:first-child { padding-top: 0; }
.cms-public .instrument-facts dt { color: var(--hall-muted); font-size: 13px; line-height: 1.65; }
.cms-public .instrument-facts dd { margin: 0; color: var(--hall-ivory); font-size: 15px; line-height: 1.65; }

/* Reading is deliberately narrow so a long import becomes a document, not a wall. */
.cms-public .story-layout {
  width: min(100%, 1040px);
  margin: 0 auto;
  padding: clamp(58px, 8vw, 122px) var(--hall-gutter) clamp(78px, 10vw, 148px);
}
.cms-public .interior-reader { max-width: 760px; color: #d7d2c9; }
.cms-public .interior-reader--article { max-width: 720px; }
.cms-public .interior-reader :is(.editer, .intro_zl, .content, .editer2, .abTxt, .yp_intro) { max-width: none; margin: 0; color: inherit; font-size: 17px; line-height: 2; }
.cms-public .interior-reader :is(p, li) { max-width: 44em; overflow-wrap: anywhere; }
.cms-public .interior-reader p { margin: 0 0 1.35em; }
.cms-public .interior-reader p:empty,
.cms-public .interior-reader p:has(> br:only-child) { display: none; }
.cms-public .interior-reader :is(h2, h3, h4) { margin: 2.45em 0 .72em; color: var(--hall-ivory); font-family: var(--hall-serif); font-weight: 400; line-height: 1.35; text-wrap: balance; }
.cms-public .interior-reader h2 { font-size: clamp(28px, 3vw, 42px); }
.cms-public .interior-reader h3 { font-size: clamp(22px, 2.1vw, 29px); }
.cms-public .interior-reader :is(img, video) { width: auto; max-width: 100%; height: auto; margin: clamp(28px, 4vw, 48px) 0; }
.cms-public .interior-reader iframe { width: 100%; min-height: min(52vw, 450px); margin: 34px 0; border: 0; }
.cms-public .interior-reader .table-scroll { width: 100%; margin: 30px 0; overflow-x: auto; }
.cms-public .interior-reader table { min-width: min(100%, 560px); border-collapse: collapse; }
.cms-public .interior-reader :is(th, td) { padding: 12px 14px; border-bottom: 1px solid var(--hall-rule); color: inherit; text-align: left; vertical-align: top; }
.cms-public .story-related { max-width: 760px; margin: 50px 0 0; padding-top: 24px; border-top: 1px solid var(--hall-rule); color: var(--hall-muted); }
.cms-public .story-related a { color: var(--hall-brass-light); }

/* Catalogue, journal and portrait pages share one data model but not one layout. */
.cms-public .interior-collection {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(48px, 7vw, 104px) var(--hall-gutter) clamp(76px, 10vw, 144px);
}
.cms-public .collection-grid { margin: 0; padding: 0; }
.cms-public .collection-card { min-width: 0; }
.cms-public .collection-card > a { display: block; height: 100%; color: inherit; text-decoration: none; }
.cms-public .collection-card figure { margin: 0; overflow: hidden; }
.cms-public .collection-card figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 480ms var(--hall-ease), filter 220ms var(--hall-ease); }
.cms-public .collection-card:hover figure img,
.cms-public .collection-card > a:focus-visible figure img { transform: scale(1.035); filter: saturate(1.04) brightness(1.04); }
.cms-public .collection-card__copy { min-width: 0; }
.cms-public .collection-card h2 { margin: 0; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(18px, 1.6vw, 23px); font-weight: 400; line-height: 1.38; text-wrap: balance; }
.cms-public .collection-card p { margin: 9px 0 0; color: var(--hall-muted); font-size: 13px; line-height: 1.72; }
.cms-public .collection-card time { display: block; margin-bottom: 10px; color: var(--hall-brass-light); font: 11px/1.4 var(--hall-mono); font-variant-numeric: tabular-nums; letter-spacing: .07em; }

.cms-public .collection-grid--catalogue { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 14px; }
.cms-public .collection-grid--catalogue .collection-card { grid-column: span 3; border: 1px solid var(--hall-rule); background: #171715; }
.cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) { grid-column: span 6; grid-row: span 2; }
.cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 4) { grid-column: span 3; }
.cms-public .collection-grid--catalogue .collection-card > a { display: flex; flex-direction: column; }
.cms-public .collection-grid--catalogue figure { flex: 1; min-height: 180px; display: grid; place-items: center; padding: clamp(18px, 2vw, 32px); background: #edebe5; }
.cms-public .collection-grid--catalogue figure img { object-fit: contain; filter: none; }
.cms-public .collection-grid--catalogue .collection-card__copy { min-height: 105px; padding: 17px 18px 18px; }
.cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) .collection-card__copy { padding: 24px 26px 25px; }

.cms-public .collection-grid--journal { border-top: 1px solid var(--hall-rule); }
.cms-public .collection-grid--journal .collection-card { border-bottom: 1px solid var(--hall-rule); }
.cms-public .collection-grid--journal .collection-card > a { display: grid; grid-template-columns: 104px minmax(0, 1fr) minmax(0, 180px); gap: clamp(20px, 4vw, 58px); align-items: center; padding: 27px 0; }
.cms-public .collection-grid--journal .collection-card__copy { grid-column: 2; }
.cms-public .collection-grid--journal .collection-card figure { grid-column: 3; grid-row: 1; aspect-ratio: 4 / 3; background: var(--hall-surface); }
.cms-public .collection-grid--journal .collection-card time { grid-column: 1; grid-row: 1; margin: 0; color: var(--hall-brass-light); font-size: 12px; }
.cms-public .collection-grid--journal .collection-card h2 { font-size: clamp(21px, 2.2vw, 31px); }

.cms-public .collection-grid--people { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.cms-public .collection-grid--people .collection-card { grid-column: span 4; border-bottom: 1px solid var(--hall-rule); }
.cms-public .collection-grid--people .collection-card:first-child { grid-column: span 5; }
.cms-public .collection-grid--people figure { aspect-ratio: 3 / 4; background: #24231f; }
.cms-public .collection-grid--people figure img { object-position: center top; }
.cms-public .collection-grid--people .collection-card__copy { padding: 17px 0 24px; }
.cms-public .collection-grid--people .collection-card h2 { font-size: clamp(21px, 2vw, 29px); }

/* Imported page fragments get a clear frame without going back to the old chrome. */
.cms-public .interior-remainder { margin-top: clamp(52px, 8vw, 112px); }
.cms-public .interior-remainder:first-child { margin-top: 0; }
.cms-public .interior-remainder .legacy-content { color: #d2cdc4; background: transparent; }
.cms-public .interior-remainder .legacy-content > :not(.page-hero) { width: min(100%, var(--hall-content)); margin-right: auto; margin-left: auto; padding-right: 0; padding-left: 0; }
.cms-public .interior-remainder :is(.list_subNav, .list_pp, .list_pp2, .list_zl, .list_zl2, .list_js, .list_user, .list_xs, .list_yp, .list_yp2) { gap: 14px; }
.cms-public .interior-remainder .legacy-content :is(.list_yp, .list_yp2) > li > a.img { height: auto; }
.cms-public .interior-remainder--navigation .list_subNav { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.cms-public .interior-remainder--navigation .list_subNav > li { grid-column: span 4; border: 1px solid var(--hall-rule); background: #181816; }
.cms-public .interior-remainder--navigation .list_subNav > li:first-child { grid-column: span 6; }
.cms-public .interior-remainder--navigation .list_subNav img { aspect-ratio: 16 / 9; }
.cms-public .interior-remainder--contact .list_lx { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--hall-rule); }
.cms-public .interior-remainder--contact .list_lx > li { min-height: 210px; padding: 28px; border: 0; border-right: 1px solid var(--hall-rule); border-bottom: 1px solid var(--hall-rule); background: transparent; }
.cms-public .interior-remainder--history .wrap_pp { padding: 0; border: 0; background: transparent; }
.cms-public .interior-remainder--history .list_year { gap: 0; border-top: 1px solid var(--hall-rule); border-bottom: 1px solid var(--hall-rule); }
.cms-public .interior-remainder--history .dsj_year :is(a, em) { min-width: 76px; padding: 14px 16px; border: 0; border-right: 1px solid var(--hall-rule); }
.cms-public .interior-remainder--venue :is(.editer, .intro_zl, .content, .abTxt) { max-width: 760px; margin-right: auto; margin-left: auto; font-size: 17px; line-height: 2; }
.cms-public .interior-remainder--product { max-width: 760px; margin-right: auto; margin-left: auto; }
.cms-public .interior-empty { max-width: 42em; margin: 0; padding: clamp(34px, 5vw, 62px) 0; border-bottom: 1px solid var(--hall-rule); color: var(--hall-muted); font-size: 16px; line-height: 1.8; }
.cms-public .unavailable-stage { width: min(100%, 850px); min-height: 32vh; margin: 0 auto; padding: clamp(60px, 9vw, 130px) var(--hall-gutter); }
.cms-public .unavailable-stage .source-unavailable { max-width: 660px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--hall-muted); font-size: 17px; line-height: 1.9; }

/* Archive search becomes a compact public catalogue rather than an admin form. */
.cms-public .cms-search-page { width: min(100%, var(--hall-content)); min-height: 60vh; margin: 0 auto; padding: clamp(58px, 8vw, 112px) var(--hall-gutter) clamp(80px, 10vw, 150px); }
.cms-public .cms-search-page h1 { max-width: 12ch; margin: 0 0 44px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(46px, 5.2vw, 76px); font-weight: 300; line-height: 1.1; letter-spacing: -.035em; }
.cms-public .cms-search-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, .24fr) minmax(150px, .24fr) auto; gap: 0; align-items: end; border: 1px solid var(--hall-rule); background: #171715; }
.cms-public .cms-search-form > div { min-width: 0; padding: 14px 16px 12px; border-right: 1px solid var(--hall-rule); }
.cms-public .cms-search-form label { margin-bottom: 7px; color: var(--hall-muted); font-size: 12px; }
.cms-public .cms-search-page :is(.cms-query input, .cms-search-form select) { min-height: 34px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--hall-ivory); box-shadow: none; }
.cms-public .cms-search-page .cms-query input:focus,
.cms-public .cms-search-page .cms-search-form select:focus { outline: none; }
.cms-public .cms-search-form button { min-height: 62px; padding: 0 28px; border: 0; border-radius: 0; background: var(--hall-brass); color: var(--hall-black); font-size: 14px; cursor: pointer; transition: background 180ms var(--hall-ease); }
.cms-public .cms-search-form button:hover { background: var(--hall-brass-light); }
.cms-public .cms-result-count { margin: 42px 0 10px; color: var(--hall-brass-light); font-size: 12px; letter-spacing: .06em; }
.cms-public .cms-results { border-top: 1px solid var(--hall-rule); }
.cms-public .cms-results li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 320px); column-gap: 48px; padding: 27px 0 29px; }
.cms-public .cms-results a { grid-column: 1; color: var(--hall-ivory); font-size: clamp(22px, 2.4vw, 32px); }
.cms-public .cms-results p { grid-column: 1; margin: 9px 0 0; color: var(--hall-muted); }
.cms-public .cms-results small { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--hall-brass-light); text-align: right; }

@media (max-width: 980px) {
  .cms-public .interior-stage { grid-template-columns: minmax(0, 1fr) minmax(340px, .92fr); }
  .cms-public .interior-stage--product { grid-template-columns: minmax(0, 1fr) minmax(310px, .8fr); }
  .cms-public .collection-grid--catalogue .collection-card { grid-column: span 4; }
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) { grid-column: span 8; }
  .cms-public .collection-grid--people .collection-card { grid-column: span 6; }
  .cms-public .collection-grid--people .collection-card:first-child { grid-column: span 6; }
  .cms-public .cms-search-form { grid-template-columns: minmax(0, 1fr) minmax(140px, .32fr) minmax(140px, .32fr) auto; }
}

@media (max-width: 760px) {
  .cms-public .interior-stage,
  .cms-public .interior-stage--product { grid-template-columns: 1fr; min-height: 0; }
  .cms-public .interior-stage__copy,
  .cms-public .interior-stage--product .interior-stage__copy { grid-column: 1; grid-row: auto; width: 100%; min-height: 310px; padding-top: 54px; padding-bottom: 50px; }
  .cms-public .interior-stage__media,
  .cms-public .interior-stage--product .interior-stage__media { grid-column: 1; grid-row: auto; min-height: 0; aspect-ratio: 4 / 3; padding: 0; }
  .cms-public .interior-stage--product .interior-stage__media { padding: 34px; }
  .cms-public .interior-stage--product .interior-stage__media img { max-height: 360px; }
  .cms-public .interior-stage.text-stage .interior-stage__copy { min-height: 280px; }
  .cms-public .instrument-dossier__grid { grid-template-columns: 1fr; gap: 44px; }
  .cms-public .instrument-facts { max-width: 620px; }
  .cms-public .collection-grid--catalogue .collection-card,
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1),
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 4) { grid-column: span 6; grid-row: auto; }
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) { grid-column: span 12; }
  .cms-public .collection-grid--journal .collection-card > a { grid-template-columns: 76px minmax(0, 1fr); gap: 18px; padding: 22px 0; }
  .cms-public .collection-grid--journal .collection-card figure { display: none; }
  .cms-public .collection-grid--journal .collection-card__copy { grid-column: 2; }
  .cms-public .collection-grid--journal .collection-card time { grid-column: 1; }
  .cms-public .interior-remainder--navigation .list_subNav > li,
  .cms-public .interior-remainder--navigation .list_subNav > li:first-child { grid-column: span 6; }
  .cms-public .interior-remainder--contact .list_lx { grid-template-columns: 1fr 1fr; }
  .cms-public .cms-search-form { grid-template-columns: 1fr 1fr; }
  .cms-public .cms-search-form > div:first-child { grid-column: 1 / -1; }
  .cms-public .cms-search-form button { min-height: 54px; }
  .cms-public .cms-results li { grid-template-columns: 1fr; row-gap: 8px; }
  .cms-public .cms-results small { grid-column: 1; grid-row: auto; text-align: left; }
}

@media (max-width: 520px) {
  .cms-public .interior-stage__copy { min-height: 270px; }
  .cms-public .interior-stage h1 { font-size: clamp(37px, 11vw, 50px); }
  .cms-public .interior-stage h1[data-length="long"] { font-size: clamp(30px, 8.8vw, 40px); }
  .cms-public .interior-stage h1[data-length="xlong"] { font-size: clamp(27px, 7.2vw, 35px); }
  .cms-public .interior-stage__summary { font-size: 14px; line-height: 1.75; }
  .cms-public .instrument-facts > div { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; }
  .cms-public .interior-reader :is(.editer, .intro_zl, .content, .editer2, .abTxt, .yp_intro) { font-size: 15px; line-height: 1.9; }
  .cms-public .collection-grid--catalogue { gap: 9px; }
  .cms-public .collection-grid--catalogue .collection-card,
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1),
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 4) { grid-column: span 6; }
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) { grid-column: span 12; }
  .cms-public .collection-grid--catalogue figure { min-height: 128px; padding: 13px; }
  .cms-public .collection-grid--catalogue .collection-card__copy,
  .cms-public .collection-grid--catalogue .collection-card:nth-child(6n + 1) .collection-card__copy { min-height: 0; padding: 13px 14px 16px; }
  .cms-public .collection-card h2 { font-size: 17px; }
  .cms-public .collection-grid--people { gap: 10px; }
  .cms-public .collection-grid--people .collection-card,
  .cms-public .collection-grid--people .collection-card:first-child { grid-column: span 6; }
  .cms-public .collection-grid--people .collection-card__copy { padding: 12px 0 19px; }
  .cms-public .interior-remainder--navigation .list_subNav,
  .cms-public .interior-remainder--navigation .list_subNav > li,
  .cms-public .interior-remainder--navigation .list_subNav > li:first-child { grid-column: auto; grid-template-columns: 1fr; }
  .cms-public .interior-remainder--contact .list_lx { grid-template-columns: 1fr; }
  .cms-public .interior-remainder--contact .list_lx > li { min-height: 0; border-right: 0; }
  .cms-public .cms-search-page h1 { margin-bottom: 32px; }
  .cms-public .cms-search-form { grid-template-columns: 1fr; }
  .cms-public .cms-search-form > div { grid-column: auto !important; border-right: 0; border-bottom: 1px solid var(--hall-rule); }
  .cms-public .cms-search-form button { min-height: 52px; }
}

/* English labels need a denser but still fully legible wide-screen header. */
@media (min-width: 1261px) and (max-width: 1550px) {
  .cms-public .masthead { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 12px; padding-right: 24px; padding-left: 24px; }
  .cms-public .original-logo img { width: 48px; }
  .cms-public .desktop-nav { gap: clamp(8px, .8vw, 12px); }
  .cms-public .desktop-nav a,
  .cms-public .header-tools > a { font-size: 11px; letter-spacing: .015em; }
  .cms-public .header-tools { gap: 8px; }
  .cms-public .header-cta { padding-right: 12px !important; padding-left: 12px !important; font-size: 10px !important; letter-spacing: .04em !important; }
}

/* Primary navigation families.  These rules deliberately sit behind a site
   family hook: a rental register should never inherit the rhythm of a news
   journal merely because both were imported as a legacy list. */
.cms-public .interior-stage__parent {
  display: inline-flex;
  width: fit-content;
  margin: 22px 0 0;
  padding: 0 0 7px;
}
.cms-public .interior-stage--root { height: clamp(460px, 43vw, 660px); min-height: 0; }
.cms-public .interior-stage.has-stage-media { height: clamp(390px, 43vw, 620px); min-height: 0; }
.cms-public .interior-stage--root .interior-stage__copy { padding-top: clamp(54px, 7vw, 116px); padding-bottom: clamp(54px, 7vw, 106px); }
.cms-public .interior-stage--site-products.has-stage-media .interior-stage__media { background: #eeece6; }
.cms-public .interior-stage--site-products.has-stage-media .interior-stage__media img { object-fit: contain; filter: none; }
.cms-public .interior-stage--site-rental.has-stage-media { grid-template-columns: minmax(0, .9fr) minmax(480px, 1.1fr); }
.cms-public .interior-stage--site-rental.has-stage-media .interior-stage__media img { object-position: center; }
.cms-public .interior-stage--site-ensemble.has-stage-media { grid-template-columns: minmax(480px, 1.08fr) minmax(0, .92fr); }
.cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__media { grid-column: 1; grid-row: 1; }
.cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__copy { grid-column: 2; grid-row: 1; }
.cms-public .interior-stage--site-artists.has-stage-media { grid-template-columns: minmax(460px, .94fr) minmax(0, 1.06fr); }
.cms-public .interior-stage--site-artists.has-stage-media .interior-stage__media { grid-column: 1; grid-row: 1; }
.cms-public .interior-stage--site-artists.has-stage-media .interior-stage__copy { grid-column: 2; grid-row: 1; }
.cms-public .interior-stage--site-artists .interior-stage__media img { object-position: center top; }
.cms-public .interior-stage--site-scholarship.has-stage-media .interior-stage__media img { object-position: center; }
.cms-public .interior-stage--site-news.text-stage { min-height: clamp(330px, 32vw, 470px); border-bottom: 1px solid var(--hall-rule); }
.cms-public .interior-stage--site-contact.has-stage-media { grid-template-columns: minmax(0, 1fr) minmax(440px, .88fr); }

.cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) {
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(54px, 7vw, 116px) var(--hall-gutter) clamp(78px, 10vw, 150px);
}
.cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) a { color: inherit; }
.cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) figure { margin: 0; overflow: hidden; background: var(--hall-surface); }
.cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 480ms var(--hall-ease), filter 220ms var(--hall-ease); }
.cms-public :is(.product-path, .product-shelf__item, .rental-route, .rental-register__item a, .ensemble-home__routes a, .ensemble-roster__member, .artist-portrait, .scholarship-records a, .journal-ledger__entry > a):hover img,
.cms-public :is(.product-path, .product-shelf__item, .rental-route, .rental-register__item a, .ensemble-home__routes a, .ensemble-roster__member, .artist-portrait, .scholarship-records a, .journal-ledger__entry > a):focus-visible img { transform: scale(1.035); filter: saturate(1.06) brightness(1.05); }

/* Products: a reading room of instruments rather than an undifferentiated card grid. */
.cms-public .product-paths { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; margin: 0; }
.cms-public .product-path { display: grid; grid-column: span 3; min-height: 300px; border: 1px solid var(--hall-rule); background: #171715; color: inherit; text-decoration: none; }
.cms-public .product-path:first-child { grid-column: span 6; grid-row: span 2; min-height: 612px; }
.cms-public .product-path figure { min-height: 180px; }
.cms-public .product-path:first-child figure { min-height: 0; }
.cms-public .product-path__copy { display: grid; align-content: end; gap: 9px; padding: 20px; }
.cms-public .product-path__copy strong,
.cms-public .product-shelf__item strong { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(20px, 2vw, 31px); font-weight: 400; line-height: 1.25; }
.cms-public .product-path:not(:first-child) .product-path__copy strong { font-size: clamp(17px, 1.4vw, 22px); }
.cms-public .product-path__copy small,
.cms-public .product-shelf__item small { color: var(--hall-muted); font-size: 13px; line-height: 1.65; }
.cms-public .product-shelf { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(54px, 7vw, 104px); border-top: 1px solid var(--hall-rule); border-left: 1px solid var(--hall-rule); }
.cms-public .product-shelf__item { display: flex; min-width: 0; min-height: 300px; flex-direction: column; border-right: 1px solid var(--hall-rule); border-bottom: 1px solid var(--hall-rule); background: #151513; color: inherit; text-decoration: none; }
.cms-public .product-shelf__item figure { display: grid; min-height: 190px; flex: 1; place-items: center; padding: 24px; background: #eeece6; }
.cms-public .product-shelf__item figure img { object-fit: contain; filter: none; }
.cms-public .product-shelf__item > span { display: grid; gap: 8px; padding: 17px 18px 20px; }
.cms-public .product-shelf__item strong { font-size: 19px; }
.cms-public .product-index__archive { margin-top: clamp(62px, 8vw, 124px); }
.cms-public .product-index__archive :is(.m_center, .w1160, .w1120) { width: 100%; max-width: none; }
.cms-public .product-index__archive :is(.bg1, .bg2, .p20) { padding: 0; background: transparent; }
.cms-public .product-index__archive :is(.list_pp, .list_pp2) { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px; border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .product-index__archive :is(.list_pp, .list_pp2) > li { float: none; width: auto; min-width: 0; margin: 0; padding: 0; border: 0; background: #1a1a18; }
.cms-public .product-index__archive :is(.list_pp, .list_pp2) a { display: grid; min-height: 112px; place-items: center; padding: 18px; }
.cms-public .product-index__archive :is(.list_pp, .list_pp2) img { max-width: 100%; max-height: 72px; object-fit: contain; filter: grayscale(1) contrast(.82) brightness(1.55); opacity: .86; transition: filter 220ms var(--hall-ease), opacity 220ms var(--hall-ease); }
.cms-public .product-index__archive :is(.list_pp, .list_pp2) a:hover img,
.cms-public .product-index__archive :is(.list_pp, .list_pp2) a:focus-visible img { filter: none; opacity: 1; }

/* Rental: two services are a pair of rooms, while equipment remains a readable register. */
.cms-public .rental-hub__routes { border-top: 1px solid var(--hall-rule); }
.cms-public .rental-route { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr); min-height: min(43vw, 500px); border-bottom: 1px solid var(--hall-rule); color: inherit; text-decoration: none; }
.cms-public .rental-route:nth-child(even) figure { order: 2; }
.cms-public .rental-route > div { display: grid; align-content: end; padding: clamp(28px, 5vw, 72px); }
.cms-public .rental-route h2 { max-width: 7em; margin: 0; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(38px, 4.5vw, 64px); font-weight: 300; line-height: 1.13; letter-spacing: -.025em; }
.cms-public .rental-route p { max-width: 30em; margin: 17px 0 0; color: var(--hall-muted); font-size: 15px; line-height: 1.8; }
.cms-public .rental-register { margin-top: clamp(54px, 7vw, 108px); border-top: 1px solid var(--hall-rule); }
.cms-public .rental-register__item { display: grid; grid-template-columns: minmax(160px, 250px) minmax(0, 1fr); gap: clamp(24px, 5vw, 70px); align-items: center; min-height: 230px; padding: 20px 0; border-bottom: 1px solid var(--hall-rule); }
.cms-public .rental-register__link { display: grid; grid-template-columns: subgrid; grid-column: 1 / -1; gap: inherit; min-height: inherit; color: inherit; text-decoration: none; }
.cms-public .rental-register__item figure { align-self: stretch; min-height: 180px; }
.cms-public .rental-register__item h2 { margin: 0; font-family: var(--hall-serif); font-size: clamp(24px, 2.5vw, 38px); font-weight: 400; line-height: 1.28; }
.cms-public .rental-register__item h2 { color: var(--hall-ivory); }
.cms-public .rental-register__item p { max-width: 44em; margin: 12px 0 0; color: var(--hall-muted); line-height: 1.8; }
.cms-public .rental-hub__source { margin-top: clamp(54px, 8vw, 112px); }
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px; border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) { list-style: none; }
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) > li { float: none; width: auto; min-width: 0; margin: 0; padding: 22px; border: 0; background: #181816; list-style: none; }
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) :is(ul, ol),
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) :is(ul, ol) > li { margin: 0; padding: 0; list-style: none; }
.cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) img { width: 100%; height: auto; }

/* Ensemble: let the performance document lead, with the member route as a clear interval. */
.cms-public .ensemble-home { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .28fr); gap: clamp(34px, 7vw, 118px); align-items: start; }
.cms-public .ensemble-home__story { grid-column: 1; margin: 0; }
.cms-public .ensemble-home__story .legacy-content { color: #d7d2c9; }
.cms-public .ensemble-home__story :is(.m_center, .w1160, .w1120) { width: 100%; max-width: none; }
.cms-public .ensemble-home__story :is(.bg1, .bg2, .p20) { padding: 0; background: transparent; }
.cms-public .ensemble-home__story .editer { max-width: 780px; font-size: 17px; line-height: 2; }
.cms-public .ensemble-home__story .editer p { margin: 0 0 1.35em; }
.cms-public .ensemble-home__story .editer :is(p, span, strong) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.cms-public .ensemble-home__story .editer img { width: 100%; max-width: 100%; height: auto; margin: 0 0 36px; }
.cms-public .ensemble-home__routes { position: sticky; top: 108px; display: grid; grid-column: 2; border-top: 1px solid var(--hall-rule); }
.cms-public .ensemble-home__routes a { display: grid; gap: 16px; padding: 17px 0 20px; border-bottom: 1px solid var(--hall-rule); color: var(--hall-brass-light); font-family: var(--hall-serif); font-size: 22px; line-height: 1.35; text-decoration: none; }
.cms-public .ensemble-home__routes img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cms-public .ensemble-roster { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: clamp(38px, 6vw, 94px); border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .ensemble-roster__member { display: grid; min-height: 290px; align-content: end; background: #171715; color: inherit; text-decoration: none; }
.cms-public .ensemble-roster__member figure { min-height: 210px; }
.cms-public .ensemble-roster__member span { display: grid; gap: 7px; padding: 16px; }
.cms-public .ensemble-roster__member strong { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 22px; font-weight: 400; }
.cms-public .ensemble-roster__member small { color: var(--hall-muted); font-size: 12px; line-height: 1.6; }
.cms-public .ensemble-home__story .list_cybig { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px; border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .ensemble-home__story .list_cybig > li { float: none; width: auto; min-width: 0; margin: 0; padding: 0; border: 0; background: #181816; }
.cms-public .ensemble-home__story .list_cybig :is(.left_cy, .right_cy) { float: none; width: auto; }
.cms-public .ensemble-home__story .list_cybig .img_cy { display: block; aspect-ratio: 3 / 4; overflow: hidden; }
.cms-public .ensemble-home__story .list_cybig .img_cy img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.cms-public .ensemble-home__story .list_cybig .right_cy { padding: 17px; }
.cms-public .ensemble-home__story .list_cybig .name_cy { margin: 0 0 8px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 24px; font-weight: 400; }
.cms-public .ensemble-home__story .list_cybig .editer2 { color: var(--hall-muted); font-size: 13px; line-height: 1.7; }

/* Artists: portrait fields, not product tiles. */
.cms-public .artist-portraits { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .artist-portrait { display: grid; grid-column: span 4; align-content: start; background: #171715; color: inherit; text-decoration: none; }
.cms-public .artist-portrait:first-child { grid-column: span 5; }
.cms-public .artist-portrait:nth-child(2) { grid-column: span 3; }
.cms-public .artist-portrait figure { aspect-ratio: 3 / 4; background: #24231f; }
.cms-public .artist-portrait figure img { object-position: center top; filter: saturate(.7) contrast(1.05); }
.cms-public .artist-portrait span { display: grid; gap: 9px; padding: 18px 18px 23px; }
.cms-public .artist-portrait strong { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(22px, 2.2vw, 35px); font-weight: 400; line-height: 1.25; }
.cms-public .artist-portrait:not(:first-child) strong { font-size: clamp(19px, 1.7vw, 26px); }
.cms-public .artist-portrait small { color: var(--hall-muted); font-size: 13px; line-height: 1.72; }
.cms-public .artist-index__source { margin-top: clamp(50px, 7vw, 100px); }
.cms-public .interior-stage--site-artists h1 { max-width: 16ch; }

/* Scholarship: a restrained record with a different scale and reading order from people. */
.cms-public .scholarship-records { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hall-rule); }
.cms-public .scholarship-records li { border-bottom: 1px solid var(--hall-rule); }
.cms-public .scholarship-records a { display: grid; grid-template-columns: minmax(180px, .44fr) minmax(0, 1fr); gap: clamp(26px, 6vw, 106px); min-height: 250px; color: inherit; text-decoration: none; }
.cms-public .scholarship-records figure { min-height: 100%; }
.cms-public .scholarship-records > li:nth-child(even) figure { order: 2; }
.cms-public .scholarship-records a > span { display: grid; align-content: center; gap: 14px; padding: clamp(24px, 4vw, 58px) 0; }
.cms-public .scholarship-records strong { color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(27px, 3.2vw, 48px); font-weight: 300; line-height: 1.2; }
.cms-public .scholarship-records small { max-width: 43em; color: var(--hall-muted); font-size: 15px; line-height: 1.85; }
.cms-public .scholarship-index__source { margin-top: clamp(54px, 8vw, 108px); }

/* News: a chronological journal where the latest article changes the rhythm. */
.cms-public .journal-ledger { border-top: 1px solid var(--hall-rule); }
.cms-public .journal-ledger__entry { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: clamp(22px, 4vw, 64px); padding: 28px 0; border-bottom: 1px solid var(--hall-rule); }
.cms-public .journal-ledger__entry > time { padding-top: 5px; color: var(--hall-brass-light); font: 12px/1.4 var(--hall-mono); font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.cms-public .journal-ledger__entry > a { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 250px); gap: clamp(20px, 4vw, 60px); align-items: center; color: inherit; text-decoration: none; }
.cms-public .journal-ledger__entry h2 { margin: 0; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(23px, 2.5vw, 37px); font-weight: 400; line-height: 1.3; text-wrap: balance; }
.cms-public .journal-ledger__entry p { max-width: 42em; margin: 10px 0 0; color: var(--hall-muted); font-size: 14px; line-height: 1.78; }
.cms-public .journal-ledger__entry figure { aspect-ratio: 4 / 3; }
.cms-public .journal-ledger__entry--lead { grid-template-columns: 118px minmax(0, 1fr); padding: 0 0 clamp(36px, 5vw, 66px); }
.cms-public .journal-ledger__entry--lead > time { align-self: end; padding-bottom: 9px; }
.cms-public .journal-ledger__entry--lead > a { grid-template-columns: minmax(0, .95fr) minmax(280px, 1.05fr); align-items: stretch; }
.cms-public .journal-ledger__entry--lead h2 { font-size: clamp(32px, 4.2vw, 62px); line-height: 1.17; }
.cms-public .journal-ledger__entry--lead figure { min-height: clamp(240px, 28vw, 430px); }
.cms-public .journal-index__source { margin-top: clamp(48px, 7vw, 92px); }

/* Contact: the original three addresses become an actual directory, never decorative cards. */
.cms-public .contact-atlas { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--hall-rule); background: var(--hall-rule); }
.cms-public .contact-atlas__location { display: grid; grid-column: span 4; align-content: start; background: #171715; }
.cms-public .contact-atlas__location:first-child { grid-column: span 5; }
.cms-public .contact-atlas__location:nth-child(2) { grid-column: span 3; }
.cms-public .contact-atlas__location figure { aspect-ratio: 16 / 9; }
.cms-public .contact-atlas__location > div { padding: 24px; }
.cms-public .contact-atlas__location h2 { margin: 0 0 22px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(23px, 2.2vw, 34px); font-weight: 400; line-height: 1.25; }
.cms-public .contact-atlas__details :is(.right_zl, .info_zl) { width: 100%; }
.cms-public .contact-atlas__details table { width: 100%; border-collapse: collapse; }
.cms-public .contact-atlas__details td { padding: 10px 0; border-top: 1px solid var(--hall-rule); color: var(--hall-muted); font-size: 14px; line-height: 1.7; vertical-align: top; }
.cms-public .contact-directory__records { display: grid; margin-top: 44px; border-top: 1px solid var(--hall-rule); }
.cms-public .contact-directory__records a { padding: 18px 0; border-bottom: 1px solid var(--hall-rule); color: var(--hall-brass-light); font-family: var(--hall-serif); font-size: 23px; text-decoration: none; }
.cms-public .contact-directory__source { margin-top: clamp(50px, 8vw, 108px); }

/* Detail pages keep the source but change their reading room with the family. */
.cms-public .section-reader--news { width: min(100%, 1120px); }
.cms-public .section-reader--news .interior-reader { max-width: 720px; }
.cms-public .section-reader--news .story-related { max-width: 720px; }
.cms-public .section-reader--rental { width: min(100%, var(--hall-content)); }
.cms-public .section-reader--rental .interior-reader { max-width: 860px; }
.cms-public .section-reader--rental .interior-reader :is(.container-table-order, .table-scroll, table) { max-width: 100%; }
.cms-public .section-reader--ensemble { width: min(100%, 1180px); }
.cms-public .section-reader--ensemble .interior-reader { max-width: 820px; }
.cms-public .section-reader--ensemble .interior-reader > :first-child img { width: min(100%, 820px); }
.cms-public .section-reader--artists .interior-reader { max-width: 650px; padding-top: 8px; border-top: 1px solid var(--hall-rule); }
.cms-public .section-reader--scholarship { width: min(100%, 1080px); }
.cms-public .section-reader--scholarship .interior-reader { max-width: 760px; }
.cms-public .section-reader--scholarship .interior-reader :is(table, .table-scroll) { width: 100%; }
.cms-public .interior-page--site-products .instrument-dossier { padding-top: clamp(60px, 8vw, 126px); }
.cms-public .interior-page--site-products .instrument-facts > div { grid-template-columns: minmax(92px, .46fr) minmax(0, 1fr); }

@media (max-width: 980px) {
  .cms-public .interior-stage--site-rental.has-stage-media,
  .cms-public .interior-stage--site-ensemble.has-stage-media,
  .cms-public .interior-stage--site-artists.has-stage-media,
  .cms-public .interior-stage--site-contact.has-stage-media { grid-template-columns: minmax(0, 1fr) minmax(340px, .86fr); }
  .cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__media,
  .cms-public .interior-stage--site-artists.has-stage-media .interior-stage__media { grid-column: 1; }
  .cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__copy,
  .cms-public .interior-stage--site-artists.has-stage-media .interior-stage__copy { grid-column: 2; }
  .cms-public .product-path { grid-column: span 4; }
  .cms-public .product-path:first-child { grid-column: span 8; }
  .cms-public .product-shelf { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cms-public .ensemble-roster { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cms-public .artist-portrait { grid-column: span 6; }
  .cms-public .artist-portrait:first-child { grid-column: span 7; }
  .cms-public .artist-portrait:nth-child(2) { grid-column: span 5; }
  .cms-public .contact-atlas__location { grid-column: span 6; }
  .cms-public .contact-atlas__location:first-child { grid-column: span 7; }
  .cms-public .contact-atlas__location:nth-child(2) { grid-column: span 5; }
}

@media (max-width: 760px) {
  .cms-public .interior-stage--root { height: auto; min-height: 0; }
  .cms-public .interior-stage.has-stage-media { height: auto; min-height: 0; }
  .cms-public .interior-stage.text-stage h1,
  .cms-public .interior-stage.text-stage h1 > span { max-width: 100%; overflow-wrap: anywhere; }
  .cms-public .interior-stage--site-rental.has-stage-media,
  .cms-public .interior-stage--site-ensemble.has-stage-media,
  .cms-public .interior-stage--site-artists.has-stage-media,
  .cms-public .interior-stage--site-contact.has-stage-media { grid-template-columns: 1fr; }
  .cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__media,
  .cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__copy,
  .cms-public .interior-stage--site-artists.has-stage-media .interior-stage__media,
  .cms-public .interior-stage--site-artists.has-stage-media .interior-stage__copy { grid-column: 1; grid-row: auto; }
  .cms-public .interior-stage--site-ensemble.has-stage-media .interior-stage__media,
  .cms-public .interior-stage--site-artists.has-stage-media .interior-stage__media { order: 2; }
  .cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) { padding-top: 48px; }
  .cms-public .product-paths { gap: 9px; }
  .cms-public .product-path { grid-column: span 6; min-height: 260px; }
  .cms-public .product-path:first-child { grid-column: span 12; grid-row: auto; min-height: 370px; }
  .cms-public .product-shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .rental-route { grid-template-columns: 1fr; min-height: 0; }
  .cms-public .rental-route:nth-child(even) figure { order: 0; }
  .cms-public .rental-route figure { aspect-ratio: 16 / 9; }
  .cms-public .rental-route > div { min-height: 210px; }
  .cms-public .interior-page--site-rental .interior-remainder :is(.list_zl, .list_zl2) { grid-template-columns: 1fr; }
  .cms-public .rental-register__item { grid-template-columns: 132px minmax(0, 1fr); gap: 20px; min-height: 0; }
  .cms-public .rental-register__item figure { min-height: 132px; }
  .cms-public .ensemble-home { grid-template-columns: 1fr; gap: 38px; }
  .cms-public .ensemble-home__story { grid-column: 1; }
  .cms-public .ensemble-home__routes { position: static; grid-column: 1; }
  .cms-public .ensemble-roster { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-column: 1; }
  .cms-public .ensemble-home__story .list_cybig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .artist-portrait,
  .cms-public .artist-portrait:first-child,
  .cms-public .artist-portrait:nth-child(2) { grid-column: span 6; }
  .cms-public .artist-portrait:first-child { grid-column: span 12; }
  .cms-public .artist-portrait:first-child figure { aspect-ratio: 4 / 3; }
  .cms-public .scholarship-records a { grid-template-columns: 1fr; gap: 0; }
  .cms-public .scholarship-records > li:nth-child(even) figure { order: 0; }
  .cms-public .scholarship-records figure { aspect-ratio: 16 / 9; }
  .cms-public .journal-ledger__entry,
  .cms-public .journal-ledger__entry--lead { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
  .cms-public .journal-ledger__entry > a,
  .cms-public .journal-ledger__entry--lead > a { grid-template-columns: 1fr; gap: 18px; }
  .cms-public .journal-ledger__entry > time,
  .cms-public .journal-ledger__entry--lead > time { padding: 0; }
  .cms-public .journal-ledger__entry figure { display: none; }
  .cms-public .journal-ledger__entry--lead figure { display: block; min-height: 0; aspect-ratio: 4 / 3; }
  .cms-public .contact-atlas__location,
  .cms-public .contact-atlas__location:first-child,
  .cms-public .contact-atlas__location:nth-child(2) { grid-column: span 6; }
  .cms-public .contact-atlas__location:first-child { grid-column: span 12; }
}

@media (max-width: 520px) {
  .cms-public .product-path { min-height: 224px; }
  .cms-public .product-path:first-child { min-height: 320px; }
  .cms-public .product-path figure { min-height: 132px; }
  .cms-public .product-path__copy { padding: 14px; }
  .cms-public .product-index__archive :is(.list_pp, .list_pp2) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cms-public .product-index__archive :is(.list_pp, .list_pp2) a { min-height: 86px; padding: 10px; }
  .cms-public .product-shelf__item { min-height: 230px; }
  .cms-public .product-shelf__item figure { min-height: 128px; padding: 12px; }
  .cms-public .rental-route > div { min-height: 180px; padding: 28px 0; }
  .cms-public .rental-route h2 { font-size: clamp(34px, 11vw, 48px); }
  .cms-public .rental-register__item { grid-template-columns: 1fr; padding: 18px 0; }
  .cms-public .rental-register__item figure { max-width: 100%; min-height: 0; aspect-ratio: 16 / 9; }
  .cms-public .ensemble-home__story .editer { font-size: 15px; line-height: 1.9; }
  .cms-public .ensemble-roster__member { min-height: 240px; }
  .cms-public .ensemble-roster__member figure { min-height: 164px; }
  .cms-public .artist-portrait strong { font-size: 20px; }
  .cms-public .artist-portrait small { font-size: 12px; }
  .cms-public .scholarship-records strong { font-size: 31px; }
  .cms-public .journal-ledger__entry--lead h2 { font-size: clamp(29px, 9vw, 42px); }
  .cms-public .journal-ledger__entry h2 { font-size: 22px; }
  .cms-public .contact-atlas__location,
  .cms-public .contact-atlas__location:first-child,
  .cms-public .contact-atlas__location:nth-child(2) { grid-column: span 12; }
  .cms-public .contact-atlas__location > div { padding: 20px; }
}

/*
 * Pinned inner-page reference: Arrow / Jianli black-gold programme system.
 *
 * The source document supplied by the client establishes the rhythm here:
 * a compact 84px masthead, numeric programme labels, rectangular brass rules,
 * photographic proof, and pages whose reading order changes with the work.
 * These selectors intentionally sit after the compatibility pass above.  They
 * re-compose the same CMS view model rather than copying any demo prices,
 * dates, forms, inventory counts or contact details from the presentation.
 */
.cms-public .interior-page {
  --inner-paper: #0e0e0d;
  --inner-panel: #141413;
  --inner-raised: #1a1a18;
  --inner-line: #ffffff1f;
  --inner-copy: #f2efe9b8;
  --inner-faint: #f2efe966;
  --inner-brass: #b8975a;
  --inner-brass-light: #d8b979;
  --inner-gutter: clamp(20px, 4.1667vw, 60px);
  background: var(--inner-paper);
  color: #f2efe9;
}

.cms-public .interior-stage {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--inner-line);
  background: var(--inner-paper);
  isolation: isolate;
}
.cms-public .interior-stage__copy {
  box-sizing: border-box;
  width: min(100%, var(--hall-content));
  min-height: 0;
  margin: 0 auto;
  padding: clamp(56px, 5.1vw, 74px) var(--inner-gutter) clamp(38px, 3.5vw, 50px);
  display: block;
}
.cms-public .interior-stage h1 {
  max-width: 18ch;
  margin: 0;
  color: #f2efe9;
  font-family: var(--hall-serif);
  font-size: clamp(38px, 3.62vw, 52px);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.cms-public .interior-stage h1[data-length="long"] { max-width: 19ch; font-size: clamp(34px, 3.15vw, 46px); }
.cms-public .interior-stage h1[data-length="xlong"] { max-width: 22ch; font-size: clamp(30px, 2.7vw, 40px); }
.cms-public .interior-stage h1 > span,
.cms-public .interior-stage h1 > small { display: block; }
.cms-public .interior-stage h1 > small {
  margin-top: 10px;
  color: var(--inner-brass-light);
  font: italic 400 clamp(18px, 1.7vw, 24px)/1.15 var(--hall-latin), var(--hall-serif);
  letter-spacing: -.01em;
}
.cms-public .interior-kicker,
.cms-public .stage-kicker,
.cms-public .interior-stage__sequence {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--inner-brass);
  font: 500 11px/1.4 var(--hall-mono);
  letter-spacing: .24em;
  text-transform: uppercase;
}
.cms-public .interior-kicker::before,
.cms-public .stage-kicker::before {
  width: 27px;
  height: 1px;
  background: var(--inner-brass);
  content: "";
}
.cms-public .interior-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0 0 24px;
  padding: 0;
  color: var(--inner-faint);
  font: 400 11px/1.4 var(--hall-mono);
  letter-spacing: .08em;
  list-style: none;
}
.cms-public .interior-breadcrumbs li { display: flex; align-items: center; gap: 9px; }
.cms-public .interior-breadcrumbs li + li::before { color: var(--inner-brass); content: "/"; }
.cms-public .interior-breadcrumbs a { color: inherit; text-decoration: none; }
.cms-public .interior-breadcrumbs a:hover { color: var(--inner-brass-light); }
.cms-public .interior-stage__parent {
  display: inline-flex;
  margin: 0 0 22px;
  padding: 0 0 6px;
  border-bottom: 1px solid var(--inner-line);
  color: var(--inner-faint);
  font: 400 11px/1.4 var(--hall-mono);
  letter-spacing: .08em;
  text-decoration: none;
}
.cms-public .interior-stage__parent:hover { border-color: var(--inner-brass); color: var(--inner-brass-light); }
.cms-public .interior-stage__summary {
  max-width: 43em;
  margin: 20px 0 0;
  color: var(--inner-copy);
  font-size: 14px;
  font-weight: 300;
  line-height: 2;
}
.cms-public .interior-stage__date {
  display: block;
  margin-top: 18px;
  color: var(--inner-brass-light);
  font: 400 12px/1.4 var(--hall-latin);
  letter-spacing: .08em;
}
.cms-public .interior-stage__media { margin: 0; }
.cms-public .interior-stage__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* A real hero image is a backdrop, not a second unrelated column. */
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) { min-height: clamp(390px, 36vw, 520px); background: #141412; }
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product)::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(0deg, #0e0e0df5 2%, #0e0e0d8a 47%, #0e0e0d26 100%);
  content: "";
}
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) .interior-stage__media { position: absolute; z-index: -2; inset: 0; }
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) .interior-stage__media img { filter: saturate(.68) contrast(1.06) brightness(.72); }
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) .interior-stage__copy {
  min-height: clamp(390px, 36vw, 520px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 82px;
  padding-bottom: 58px;
}
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) h1 { font-size: clamp(46px, 4.3vw, 62px); }
/* The scenic treatment must still yield to an unusually long, translated
   headline. These keep the editorial hierarchy while avoiding a theatrical
   title block that overwhelms its image or its summary. */
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) h1[data-length="long"] {
  max-width: 21ch;
  font-size: clamp(38px, 3.6vw, 52px);
}
.cms-public .interior-stage.has-stage-media:not(.interior-stage--product) h1[data-length="xlong"] {
  max-width: 24ch;
  font-size: clamp(32px, 3vw, 44px);
}
/* Detail pages inherit a fixed scenic-stage height from section landing
   pages. Let a real editorial headline extend that stage instead of clipping
   it when an English translation needs several balanced lines. */
.cms-public .interior-stage--detail.has-stage-media:not(.interior-stage--product) { height: auto; }
.cms-public .interior-stage.text-stage { min-height: 0; }
.cms-public .interior-stage.text-stage .interior-stage__copy { width: min(100%, var(--hall-content)); }

/* Product detail uses the reference's clean object sheet rather than a dramatic stage. */
.cms-public .interior-stage--product.has-stage-media {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
  min-height: clamp(410px, 39vw, 570px);
  background: #eeece6;
}
.cms-public .interior-stage--product .interior-stage__media {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  place-items: center;
  padding: clamp(30px, 5vw, 72px);
  background: #eeece6;
}
.cms-public .interior-stage--product .interior-stage__media img { max-height: min(470px, 34vw); object-fit: contain; filter: none; }
.cms-public .interior-stage--product .interior-stage__copy {
  grid-column: 2;
  grid-row: 1;
  width: auto;
  margin: 0;
  padding: clamp(50px, 6vw, 88px) var(--inner-gutter);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: var(--inner-panel);
}
.cms-public .interior-stage--product .interior-stage__summary { max-width: 31em; }

/* The reading pages stay calm and deliberately narrow. */
.cms-public .instrument-dossier,
.cms-public .story-layout {
  box-sizing: border-box;
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(56px, 6.4vw, 92px) var(--inner-gutter) clamp(84px, 8vw, 118px);
}
.cms-public .instrument-dossier__grid {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
  gap: clamp(36px, 6.4vw, 92px);
  align-items: start;
}
.cms-public .instrument-dossier__grid--reader { grid-template-columns: minmax(0, 760px); }
.cms-public .instrument-facts { margin: 0; border-top: 1px solid var(--inner-brass); }
.cms-public .instrument-facts > div {
  display: grid;
  grid-template-columns: minmax(76px, .45fr) minmax(0, 1fr);
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid var(--inner-line);
}
.cms-public .instrument-facts > div:first-child { padding-top: 14px; }
.cms-public .instrument-facts dt { color: var(--inner-faint); font: 400 11px/1.7 var(--hall-mono); letter-spacing: .08em; }
.cms-public .instrument-facts dd { margin: 0; color: #f2efe9; font-size: 14px; line-height: 1.7; }
.cms-public .story-layout { width: min(100%, 980px); }
.cms-public .interior-reader { max-width: 720px; color: var(--inner-copy); }
.cms-public .interior-reader--article { max-width: 720px; }
.cms-public .interior-reader :is(.editer, .intro_zl, .content, .editer2, .abTxt, .yp_intro) { color: inherit; font-size: 16px; line-height: 2.05; }
.cms-public .interior-reader p { margin: 0 0 1.5em; }
.cms-public .interior-reader :is(h2, h3, h4) { color: #f2efe9; font-family: var(--hall-serif); font-weight: 400; }
.cms-public .interior-reader h2 { margin: 2.5em 0 .75em; font-size: clamp(26px, 2.45vw, 36px); }
.cms-public .interior-reader h3 { margin: 2.1em 0 .65em; font-size: clamp(20px, 1.8vw, 26px); }
.cms-public .interior-reader :is(img, video) { display: block; max-width: 100%; height: auto; margin: 34px 0; }
.cms-public .interior-reader table,
.cms-public .interior-remainder table { border-collapse: collapse; }
.cms-public .interior-reader :is(td, th),
.cms-public .interior-remainder :is(td, th) { border-color: var(--inner-line); }
.cms-public .story-related { max-width: 720px; margin-top: 48px; padding-top: 22px; border-top-color: var(--inner-line); }
.cms-public .story-related a { color: var(--inner-brass-light); }

/* Each section gets its own programme layout; these are not generic cards. */
.cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) {
  box-sizing: border-box;
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(54px, 5.5vw, 80px) var(--inner-gutter) clamp(84px, 8vw, 116px);
}
.cms-public .section-reference-heading,
.cms-public .catalogue-head,
.cms-public .journal-head,
.cms-public .contact-head,
.cms-public .ensemble-heading,
.cms-public .artist-heading,
.cms-public .scholarship-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 36px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--inner-line);
}
.cms-public .section-reference-heading > :is(h2, h3),
.cms-public :is(.catalogue-head, .journal-head, .contact-head, .ensemble-heading, .artist-heading, .scholarship-heading) :is(h2, h3) {
  margin: 0;
  color: #f2efe9;
  font-family: var(--hall-serif);
  font-size: clamp(23px, 2.1vw, 30px);
  font-weight: 400;
  line-height: 1.35;
}
.cms-public .section-reference-heading > p,
.cms-public :is(.catalogue-head, .journal-head, .contact-head, .ensemble-heading, .artist-heading, .scholarship-heading) > p { max-width: 38em; margin: 0; color: var(--inner-copy); font-size: 13px; line-height: 1.9; }
.cms-public .section-count,
.cms-public .collection-count { color: var(--inner-brass); font: 400 11px/1.4 var(--hall-mono); letter-spacing: .16em; white-space: nowrap; }

/* P/01 — a factual, three-column catalogue. */
.cms-public .catalogue-filter,
.cms-public .product-paths {
  display: flex;
  gap: 10px;
  margin: 0 0 34px;
  padding: 0 0 20px;
  overflow-x: auto;
  border-bottom: 1px solid var(--inner-line);
  scrollbar-width: thin;
}
.cms-public .catalogue-filter a,
.cms-public .product-path {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid var(--inner-line);
  background: transparent;
  color: var(--inner-copy);
  font-size: 13px;
  line-height: 1.3;
  text-decoration: none;
  transition: border-color 240ms var(--hall-ease), color 240ms var(--hall-ease), background 240ms var(--hall-ease);
}
.cms-public .catalogue-filter a:hover,
.cms-public .product-path:hover { border-color: var(--inner-brass); color: var(--inner-brass-light); background: #b8975a12; }
.cms-public .product-path figure { width: 22px; height: 22px; margin: 0; overflow: hidden; background: var(--inner-raised); }
.cms-public .product-path figure img { width: 100%; height: 100%; object-fit: cover; }
.cms-public .product-path__copy { display: block; padding: 0; }
.cms-public .product-path__copy strong { color: inherit; font: inherit; }
.cms-public .product-path__copy small { display: none; }
.cms-public :is(.catalogue-grid, .product-shelf) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.cms-public :is(.catalogue-card, .product-shelf__item) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--inner-line);
  background: var(--inner-raised);
  color: inherit;
  text-decoration: none;
  transition: border-color 240ms var(--hall-ease), transform 240ms var(--hall-ease);
}
.cms-public :is(.catalogue-card, .product-shelf__item):hover { border-color: var(--inner-brass); transform: translateY(-3px); }
.cms-public :is(.catalogue-card, .product-shelf__item) figure { aspect-ratio: 4 / 3; margin: 0; padding: clamp(18px, 2vw, 28px); background: #e9e7e0; }
.cms-public :is(.catalogue-card, .product-shelf__item) figure img { width: 100%; height: 100%; object-fit: contain; filter: none; }
.cms-public :is(.catalogue-card, .product-shelf__item) > :is(span, div) { display: block; min-height: 150px; padding: 21px 22px 22px; }
.cms-public :is(.catalogue-card, .product-shelf__item) :is(.catalogue-card__meta, .product-shelf__meta) { display: block; margin-bottom: 10px; color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .12em; }
.cms-public :is(.catalogue-card, .product-shelf__item) strong { display: block; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.45; }
.cms-public :is(.catalogue-card, .product-shelf__item) small { display: block; margin-top: 11px; color: var(--inner-copy); font-size: 13px; line-height: 1.8; }

/* P/02 — dual service entry; child pages become source-backed manifests. */
.cms-public .rental-hero-routes,
.cms-public .rental-hub__routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cms-public :is(.rental-route-card, .rental-route) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border: 1px solid var(--inner-line);
  background: var(--inner-raised);
  color: inherit;
  text-decoration: none;
  transition: border-color 240ms var(--hall-ease), background 240ms var(--hall-ease);
}
.cms-public :is(.rental-route-card, .rental-route):hover { border-color: var(--inner-brass); background: #201f1b; }
.cms-public :is(.rental-route-card, .rental-route) figure { min-height: 0; margin: 0; aspect-ratio: 16 / 9; }
.cms-public :is(.rental-route-card, .rental-route) figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) brightness(.82); }
.cms-public :is(.rental-route-card, .rental-route) > :is(div, span) { min-height: 218px; padding: 28px 30px 30px; }
.cms-public :is(.rental-route-card, .rental-route) :is(.route-index, .rental-route__index) { display: block; margin-bottom: 14px; color: var(--inner-brass); font: 400 11px/1.4 var(--hall-mono); letter-spacing: .18em; }
.cms-public :is(.rental-route-card, .rental-route) h2 { max-width: none; margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(25px, 2.2vw, 31px); font-weight: 400; line-height: 1.3; letter-spacing: 0; }
.cms-public :is(.rental-route-card, .rental-route) p { max-width: none; margin: 13px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.9; }
.cms-public :is(.rental-route-card, .rental-route) :is(.route-link, .rental-route__link-label) { display: inline-block; margin-top: 23px; padding-bottom: 7px; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .08em; }
.cms-public .rental-manifest,
.cms-public .rental-register { margin-top: 44px; border-top: 1px solid #b8975a66; }
.cms-public :is(.rental-manifest__item, .rental-register__item) { display: block; min-height: 0; padding: 0; border-bottom: 1px solid var(--inner-line); }
.cms-public :is(.rental-manifest__item > a, .rental-register__link) {
  display: grid;
  grid-template-columns: minmax(142px, 220px) minmax(0, 1fr) 28px;
  gap: 28px;
  align-items: center;
  min-height: 150px;
  color: inherit;
  text-decoration: none;
}
.cms-public :is(.rental-manifest__item, .rental-register__item) figure { min-height: 112px; margin: 0; background: var(--inner-raised); }
.cms-public :is(.rental-manifest__item, .rental-register__item) figure img { width: 100%; height: 100%; object-fit: cover; }
.cms-public :is(.rental-manifest__item, .rental-register__item) h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.45; }
.cms-public :is(.rental-manifest__item, .rental-register__item) p { max-width: 48em; margin: 8px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.8; }
.cms-public :is(.rental-manifest__item > a, .rental-register__link)::after { color: var(--inner-brass); font: 22px/1 var(--hall-latin); content: "→"; }

/* P/03 — ensemble as a performance programme, then a directory. */
.cms-public .ensemble-program,
.cms-public .ensemble-home { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(38px, 6vw, 84px); align-items: start; }
.cms-public :is(.ensemble-program__title, .ensemble-home__title) { color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(26px, 2.5vw, 36px); font-weight: 300; line-height: 1.5; }
.cms-public :is(.ensemble-program__narrative, .ensemble-home__story) { grid-column: 2; margin: 0; }
.cms-public :is(.ensemble-program__narrative, .ensemble-home__story) :is(.editer, p) { max-width: 49em; color: var(--inner-copy); font-size: 15px; line-height: 2.08; }
.cms-public .ensemble-home__routes { position: static; grid-column: 1; display: grid; border-top: 1px solid var(--inner-line); }
.cms-public .ensemble-home__routes a { padding: 16px 0; border-bottom: 1px solid var(--inner-line); color: var(--inner-brass-light); font-family: var(--hall-serif); font-size: 19px; text-decoration: none; }
.cms-public .ensemble-home__routes img { display: none; }
.cms-public :is(.ensemble-directory, .ensemble-roster) { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: clamp(22px, 3vw, 42px); }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) { display: block; min-height: 0; background: transparent; color: inherit; text-decoration: none; }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) figure { min-height: 0; margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--inner-raised); }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72); }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) span { display: block; padding: 15px 0 22px; border-bottom: 1px solid var(--inner-line); }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) strong { display: block; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.45; }
.cms-public :is(.ensemble-directory__member, .ensemble-roster__member) small { display: block; margin-top: 7px; color: var(--inner-copy); font-size: 12px; line-height: 1.75; }

/* P/04 — an opening portrait and a quieter field of people. */
.cms-public .artist-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr); min-height: 470px; border: 1px solid var(--inner-line); background: #14120e; }
.cms-public .artist-feature__image { margin: 0; min-height: 0; }
.cms-public .artist-feature__image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); }
.cms-public .artist-feature__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(34px, 4.1vw, 58px); }
.cms-public .artist-feature__label { margin: 0 0 18px; color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .2em; }
.cms-public .artist-feature h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(34px, 3.15vw, 44px); font-weight: 300; line-height: 1.23; }
.cms-public .artist-feature p { margin: 16px 0 0; color: var(--inner-copy); font-size: 14px; line-height: 2; }
.cms-public .artist-feature a:not(.artist-feature__image) { align-self: flex-start; margin-top: 28px; padding: 11px 0; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .1em; text-decoration: none; }
.cms-public :is(.artist-gallery, .artist-portraits) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: clamp(36px, 4.5vw, 60px); border: 0; background: transparent; }
.cms-public :is(.artist-gallery__item, .artist-portrait) { display: block; min-width: 0; background: transparent; color: inherit; text-decoration: none; }
.cms-public :is(.artist-gallery__item, .artist-portrait):first-child,
.cms-public :is(.artist-gallery__item, .artist-portrait):nth-child(2) { grid-column: auto; }
.cms-public :is(.artist-gallery__item, .artist-portrait) figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--inner-raised); }
.cms-public :is(.artist-gallery__item, .artist-portrait) figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); transition: transform 320ms var(--hall-ease); }
.cms-public :is(.artist-gallery__item, .artist-portrait):hover figure img { transform: scale(1.025); }
.cms-public :is(.artist-gallery__item, .artist-portrait) span { display: block; padding: 16px 0 23px; border-bottom: 1px solid var(--inner-line); }
.cms-public :is(.artist-gallery__item, .artist-portrait) strong { display: block; color: #f2efe9; font-family: var(--hall-serif); font-size: 22px; font-weight: 400; line-height: 1.35; }
.cms-public :is(.artist-gallery__item, .artist-portrait) small { display: block; margin-top: 8px; color: var(--inner-copy); font-size: 13px; line-height: 1.78; }

/* P/05 — source material is a scholarship brief, never a fictional application flow. */
.cms-public .scholarship-brief { display: grid; grid-template-columns: minmax(0, .86fr) minmax(300px, 1.14fr); gap: clamp(36px, 7vw, 100px); padding-bottom: clamp(44px, 5vw, 68px); border-bottom: 1px solid var(--inner-line); }
.cms-public .scholarship-brief__lead { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(28px, 2.8vw, 40px); font-weight: 300; line-height: 1.45; }
.cms-public .scholarship-brief__copy { color: var(--inner-copy); font-size: 15px; line-height: 2.05; }
.cms-public .scholarship-brief__copy :first-child { margin-top: 0; }
.cms-public :is(.scholarship-record-grid, .scholarship-records) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: clamp(42px, 5vw, 64px) 0 0; padding: 0; border: 0; list-style: none; }
.cms-public :is(.scholarship-record-grid__item, .scholarship-records li) { min-width: 0; border: 1px solid var(--inner-line); }
.cms-public :is(.scholarship-record-grid__item a, .scholarship-records a) { display: flex; min-height: 100%; flex-direction: column; gap: 0; color: inherit; text-decoration: none; }
.cms-public :is(.scholarship-record-grid__item figure, .scholarship-records figure) { min-height: 0; margin: 0; aspect-ratio: 16 / 10; }
.cms-public :is(.scholarship-record-grid__item figure img, .scholarship-records figure img) { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.cms-public :is(.scholarship-record-grid__item span, .scholarship-records a > span) { display: block; min-height: 152px; padding: 24px; }
.cms-public :is(.scholarship-record-grid__item strong, .scholarship-records strong) { display: block; color: #f2efe9; font-family: var(--hall-serif); font-size: 23px; font-weight: 400; line-height: 1.42; }
.cms-public :is(.scholarship-record-grid__item small, .scholarship-records small) { display: block; margin-top: 12px; color: var(--inner-copy); font-size: 13px; line-height: 1.85; }

/* P/06 — current writing gets a lead, a small visual set, then a ledger. */
.cms-public .news-feature { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, 1fr); margin-top: 0; background: #14120e; }
.cms-public .news-feature__image { min-height: clamp(280px, 32vw, 460px); margin: 0; }
.cms-public .news-feature__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.04); }
.cms-public .news-feature__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(34px, 4vw, 56px); }
.cms-public .news-meta { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; margin: 0 0 20px; color: var(--inner-faint); font: 400 12px/1.4 var(--hall-latin); }
.cms-public .news-meta span:first-child { padding: 5px 10px; border: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .08em; }
.cms-public .news-feature h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(26px, 2.7vw, 37px); font-weight: 400; line-height: 1.45; }
.cms-public .news-feature p { margin: 17px 0 0; color: var(--inner-copy); font-size: 14px; line-height: 2; }
.cms-public .news-feature__copy > a { align-self: flex-start; margin-top: 26px; padding-bottom: 8px; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .12em; text-decoration: none; }
.cms-public .news-secondary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 60px; }
.cms-public .news-secondary__item { display: block; border: 1px solid var(--inner-line); color: inherit; text-decoration: none; }
.cms-public .news-secondary__item figure { margin: 0; aspect-ratio: 16 / 10; background: var(--inner-raised); }
.cms-public .news-secondary__item figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.cms-public .news-secondary__item > div { padding: 22px 22px 26px; }
.cms-public .news-secondary__item h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.5; }
.cms-public .news-secondary__item p { margin: 12px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.85; }
.cms-public :is(.news-ledger, .journal-ledger) { margin-top: clamp(44px, 5vw, 64px); border-top: 1px solid var(--inner-line); }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) { display: grid; grid-template-columns: 150px minmax(0, 1fr) 120px; gap: 24px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--inner-line); }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) > time { padding: 0; color: var(--inner-copy); font: 400 17px/1.4 var(--hall-latin); letter-spacing: .04em; }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) > a { display: block; color: inherit; text-decoration: none; }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 19px; font-weight: 400; line-height: 1.48; }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) p { display: none; }
.cms-public :is(.news-ledger__item, .journal-ledger__entry) figure { display: none; }
.cms-public :is(.news-ledger__item, .journal-ledger__entry)::after { color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .1em; text-align: right; content: "阅读全文"; }
html[lang="en"] .cms-public :is(.news-ledger__item, .journal-ledger__entry)::after { content: "READ MORE"; }
.cms-public .journal-ledger__entry--lead { display: none; }

/* P/07 — real addresses and contact records, without manufacturing a form or map. */
.cms-public .contact-sheet { display: grid; grid-template-columns: minmax(0, .82fr) minmax(360px, 1.18fr); gap: clamp(40px, 6vw, 84px); }
.cms-public .contact-sheet__intro { color: var(--inner-copy); font-size: 14px; line-height: 2; }
.cms-public .contact-sheet__intro h2 { margin: 0 0 24px; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(26px, 2.45vw, 34px); font-weight: 400; line-height: 1.35; }
.cms-public :is(.contact-locations, .contact-atlas) { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid #b8975a66; border-right: 0; border-bottom: 0; border-left: 0; background: transparent; }
.cms-public :is(.contact-location, .contact-atlas__location) { display: grid; grid-template-columns: minmax(120px, .48fr) minmax(0, 1fr); min-height: 0; border: 0; border-bottom: 1px solid var(--inner-line); background: transparent; }
.cms-public :is(.contact-location, .contact-atlas__location):first-child,
.cms-public :is(.contact-location, .contact-atlas__location):nth-child(2) { grid-column: auto; }
.cms-public :is(.contact-location, .contact-atlas__location) figure { min-height: 132px; margin: 0; aspect-ratio: auto; }
.cms-public :is(.contact-location, .contact-atlas__location) figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }
.cms-public :is(.contact-location, .contact-atlas__location) > div { padding: 22px 0 22px 24px; }
.cms-public :is(.contact-location, .contact-atlas__location) h2 { margin: 0 0 14px; color: #f2efe9; font-family: var(--hall-serif); font-size: 21px; font-weight: 400; line-height: 1.4; }
.cms-public .contact-atlas__details :is(.right_zl, .info_zl) { width: 100%; }
.cms-public .contact-atlas__details table { width: 100%; }
.cms-public .contact-atlas__details td { padding: 8px 0; border-top: 1px solid var(--inner-line); color: var(--inner-copy); font-size: 13px; line-height: 1.8; }
.cms-public .contact-directory__records { margin-top: 46px; border-top-color: var(--inner-line); }
.cms-public .contact-directory__records a { padding: 16px 0; border-bottom-color: var(--inner-line); color: var(--inner-brass-light); font-family: var(--hall-serif); font-size: 19px; }

/* Source fragments remain visible, but live in a clear document frame. */
.cms-public .interior-remainder { margin-top: clamp(48px, 5vw, 72px); }
.cms-public .interior-remainder .legacy-content { color: var(--inner-copy); background: transparent; }
.cms-public .interior-remainder .legacy-content > :not(.page-hero) { width: 100%; max-width: none; padding-right: 0; padding-left: 0; }
.cms-public .interior-remainder :is(.editer, .intro_zl, .content, .abTxt) { max-width: 760px; color: var(--inner-copy); font-size: 15px; line-height: 2; }
.cms-public .interior-remainder :is(.list_subNav, .list_pp, .list_pp2, .list_zl, .list_zl2, .list_yp, .list_yp2, .list_cybig) { gap: 16px; }
.cms-public .interior-empty { color: var(--inner-copy); border-bottom-color: var(--inner-line); }
.cms-public .cms-pagination { margin-top: 44px; border-color: var(--inner-line); }
.cms-public .cms-pagination :is(a, span) { border-color: var(--inner-line); }

@media (max-width: 980px) {
  .cms-public .interior-stage--product.has-stage-media { grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); }
  .cms-public :is(.catalogue-grid, .product-shelf) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public :is(.ensemble-directory, .ensemble-roster) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cms-public :is(.artist-gallery, .artist-portraits) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public :is(.scholarship-record-grid, .scholarship-records) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .news-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .cms-public .interior-stage__copy { padding-top: 50px; padding-bottom: 34px; }
  .cms-public .interior-stage h1 { max-width: 100%; font-size: clamp(34px, 10vw, 44px); }
  .cms-public .interior-stage.has-stage-media:not(.interior-stage--product) h1[data-length="long"] { font-size: clamp(30px, 8vw, 38px); }
  .cms-public .interior-stage.has-stage-media:not(.interior-stage--product) h1[data-length="xlong"] { font-size: clamp(28px, 7vw, 34px); }
  .cms-public .interior-stage.has-stage-media:not(.interior-stage--product),
  .cms-public .interior-stage.has-stage-media:not(.interior-stage--product) .interior-stage__copy { min-height: 390px; }
  .cms-public .interior-stage--product.has-stage-media { display: flex; min-height: 0; flex-direction: column; }
  .cms-public .interior-stage--product .interior-stage__media { min-height: 300px; padding: 34px; }
  .cms-public .interior-stage--product .interior-stage__media img { max-height: 260px; }
  .cms-public .interior-stage--product .interior-stage__copy { min-height: 0; padding-top: 44px; padding-bottom: 42px; }
  .cms-public .instrument-dossier__grid,
  .cms-public .ensemble-program,
  .cms-public .ensemble-home,
  .cms-public .scholarship-brief,
  .cms-public .contact-sheet { grid-template-columns: 1fr; gap: 32px; }
  .cms-public :is(.ensemble-program__narrative, .ensemble-home__story, .ensemble-home__routes) { grid-column: 1; }
  .cms-public .ensemble-home__routes { order: 3; }
  .cms-public .rental-hero-routes,
  .cms-public .rental-hub__routes { grid-template-columns: 1fr; }
  .cms-public :is(.rental-manifest__item > a, .rental-register__link) { grid-template-columns: 110px minmax(0, 1fr) 22px; gap: 16px; min-height: 128px; }
  .cms-public :is(.rental-manifest__item, .rental-register__item) figure { min-height: 86px; }
  .cms-public :is(.ensemble-directory, .ensemble-roster) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .artist-feature { grid-template-columns: 1fr; min-height: 0; }
  .cms-public .artist-feature__image { aspect-ratio: 4 / 3; }
  .cms-public :is(.scholarship-record-grid, .scholarship-records) { grid-template-columns: 1fr; }
  .cms-public .news-feature { grid-template-columns: 1fr; }
  .cms-public .news-feature__image { min-height: 0; aspect-ratio: 16 / 10; }
  .cms-public .news-secondary { grid-template-columns: 1fr; margin-top: 38px; }
  .cms-public :is(.news-ledger__item, .journal-ledger__entry) { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .cms-public :is(.news-ledger__item, .journal-ledger__entry)::after { display: none; }
  .cms-public :is(.contact-location, .contact-atlas__location) { grid-template-columns: 108px minmax(0, 1fr); }
  .cms-public :is(.contact-location, .contact-atlas__location) figure { min-height: 108px; }
  .cms-public :is(.contact-location, .contact-atlas__location) > div { padding-left: 18px; }
}

@media (max-width: 520px) {
  .cms-public .interior-stage__summary { font-size: 13px; }
  .cms-public .interior-breadcrumbs { gap: 6px; font-size: 10px; }
  .cms-public :is(.product-index, .rental-hub, .ensemble-home, .artist-index, .scholarship-index, .journal-index, .contact-directory) { padding-top: 44px; }
  .cms-public :is(.catalogue-grid, .product-shelf) { grid-template-columns: 1fr; gap: 14px; }
  .cms-public :is(.catalogue-card, .product-shelf__item) > :is(span, div) { min-height: 0; }
  .cms-public :is(.ensemble-directory, .ensemble-roster) { gap: 14px; }
  .cms-public :is(.artist-gallery, .artist-portraits) { gap: 14px; }
  .cms-public :is(.artist-gallery__item, .artist-portrait) strong { font-size: 19px; }
  .cms-public :is(.rental-manifest__item > a, .rental-register__link) { grid-template-columns: 86px minmax(0, 1fr) 18px; gap: 12px; }
  .cms-public :is(.rental-manifest__item, .rental-register__item) figure { min-height: 70px; }
  .cms-public :is(.rental-manifest__item, .rental-register__item) h2 { font-size: 17px; }
  .cms-public :is(.rental-manifest__item, .rental-register__item) p { display: none; }
  .cms-public :is(.news-ledger__item, .journal-ledger__entry) { grid-template-columns: 74px minmax(0, 1fr); padding: 18px 0; }
  .cms-public :is(.news-ledger__item, .journal-ledger__entry) > time { font-size: 14px; }
  .cms-public :is(.news-ledger__item, .journal-ledger__entry) h2 { font-size: 17px; }
  .cms-public :is(.contact-location, .contact-atlas__location) { grid-template-columns: 1fr; }
  .cms-public :is(.contact-location, .contact-atlas__location) figure { min-height: 0; aspect-ratio: 16 / 8; }
  .cms-public :is(.contact-location, .contact-atlas__location) > div { padding: 18px 0; }
}

/* Template wiring for the data-backed programme layouts above. */
.cms-public .interior-breadcrumbs {
  display: block;
}
.cms-public .interior-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cms-public .interior-stage.text-stage {
  height: auto;
  min-height: 0;
}
.cms-public .interior-stage.text-stage .interior-stage__copy {
  min-height: 0;
  padding: clamp(56px, 5.1vw, 74px) var(--inner-gutter) clamp(38px, 3.5vw, 50px);
}

.cms-public :is(.reference-artists, .reference-scholarship, .reference-news, .contact-sheet) {
  box-sizing: border-box;
  width: min(100%, var(--hall-content));
  margin: 0 auto;
  padding: clamp(54px, 5.5vw, 80px) var(--inner-gutter) clamp(84px, 8vw, 116px);
}
.cms-public .reference-artists.artist-portraits {
  display: block;
  margin-top: 0;
  border: 0;
  background: transparent;
}
.cms-public .reference-artists .artist-feature,
.cms-public .reference-scholarship .scholarship-brief {
  display: block;
  min-height: 0;
}

.cms-public .catalogue-head { display: block; margin: 0 0 34px; padding: 0; border: 0; }
.cms-public .catalogue-filter { width: 100%; list-style: none; }
.cms-public .catalogue-filter li { margin: 0; padding: 0; }
.cms-public .catalogue-filter a { text-decoration: none; }
.cms-public .catalogue-filter a figure { width: 22px; height: 22px; margin: 0; overflow: hidden; background: var(--inner-raised); }
.cms-public .catalogue-filter a figure img { width: 100%; height: 100%; object-fit: cover; }
.cms-public .catalogue-filter__copy { display: block; }
.cms-public .catalogue-filter__copy strong { color: inherit; font: inherit; }
.cms-public .catalogue-card > a {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}
.cms-public .catalogue-card > a figure { aspect-ratio: 4 / 3; margin: 0; padding: clamp(18px, 2vw, 28px); background: #e9e7e0; }
.cms-public .catalogue-card > a figure img { width: 100%; height: 100%; object-fit: contain; filter: none; }
.cms-public .catalogue-card__copy { min-height: 156px; padding: 21px 22px 22px; }
.cms-public .catalogue-card__category { margin: 0 0 10px; color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .12em; }
.cms-public .catalogue-card h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.45; }
.cms-public .catalogue-card__summary { margin: 11px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.8; }
.cms-public .catalogue-card__action { display: inline-block; margin-top: 18px; color: var(--inner-brass-light); font: 400 11px/1.4 var(--hall-mono); letter-spacing: .08em; }
.cms-public .catalogue-source :is(.list_pp, .list_pp2) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cms-public .catalogue-source :is(.list_pp, .list_pp2) > li {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--inner-line);
  background: var(--inner-raised);
  list-style: none;
}
.cms-public .catalogue-source :is(.list_pp, .list_pp2) > li > a:first-child { display: block; min-height: 0; }
.cms-public .catalogue-source :is(.list_pp, .list_pp2) img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; background: #f6f4ef; }
.cms-public .catalogue-source :is(.list_pp, .list_pp2) p { margin: 12px 0 0; }
.cms-public .catalogue-source :is(.list_pp, .list_pp2) p a { color: #f2efe9; font-family: var(--hall-serif); font-size: 16px; line-height: 1.4; text-decoration: none; }

.cms-public .rental-route-card__copy { display: block; min-height: 218px; padding: 28px 30px 30px; }
.cms-public .rental-route-card__copy strong { display: block; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(25px, 2.2vw, 31px); font-weight: 400; line-height: 1.3; }
.cms-public .rental-route-card__copy small { display: block; margin-top: 13px; color: var(--inner-copy); font-size: 13px; line-height: 1.9; }
.cms-public .rental-route-card__action { display: inline-block; margin-top: 23px; padding-bottom: 7px; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .08em; }
.cms-public .rental-manifest__category { margin: 0 0 8px; color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .1em; }
.cms-public .rental-manifest__action { color: var(--inner-brass-light); font: 400 11px/1.4 var(--hall-mono); letter-spacing: .08em; white-space: nowrap; }
/* Rental inventory is informational until a real order system is connected. */
.cms-public .interior-page--site-rental .legacy-content .wrap_js:has(.js-jia),
.cms-public .interior-page--site-rental .legacy-content .wrap_js:has(.js-jian),
.cms-public .interior-page--site-rental .legacy-content :is(.js-add, .js-numtext, a.prev[href="#"], a.next[href="#"]) { display: none !important; }

.cms-public .ensemble-program { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); }
.cms-public .ensemble-narrative { grid-column: 2; margin: 0; }
.cms-public .ensemble-narrative.interior-remainder { margin-top: 0; }
.cms-public .ensemble-narrative :is(.editer, p) { max-width: 49em; color: var(--inner-copy); font-size: 15px; line-height: 2.08; }
.cms-public .ensemble-narrative--directory {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0;
}
.cms-public .ensemble-narrative--directory .legacy-content,
.cms-public .ensemble-narrative--directory .legacy-content > * {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0;
}
.cms-public .ensemble-narrative--directory .list_cybig {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  list-style: none;
}
.cms-public .ensemble-narrative--directory .list_cybig > li {
  display: flex;
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  flex-direction: column;
  border: 1px solid var(--inner-line);
  background: var(--inner-raised);
  list-style: none;
}
.cms-public .ensemble-narrative--directory .list_cybig :is(.left_cy, .right_cy) {
  float: none;
  width: auto;
}
.cms-public .ensemble-narrative--directory .list_cybig .left_cy { order: 2; }
.cms-public .ensemble-narrative--directory .list_cybig .img_cy {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 4;
}
.cms-public .ensemble-narrative--directory .list_cybig .img_cy img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: saturate(.72) contrast(1.04);
}
.cms-public .ensemble-narrative--directory .list_cybig .right_cy {
  order: 1;
  padding: 20px 20px 22px;
}
.cms-public .ensemble-narrative--directory .list_cybig .title_cy {
  display: block;
  margin: 0 0 9px;
  color: var(--inner-brass);
  font: 400 10px/1.5 var(--hall-mono);
  letter-spacing: .1em;
}
.cms-public .ensemble-narrative--directory .list_cybig .name_cy {
  margin: 0;
  color: #f2efe9;
  font-family: var(--hall-serif);
  font-size: clamp(21px, 2vw, 27px);
  font-weight: 400;
  line-height: 1.38;
}
.cms-public .ensemble-narrative--directory .list_cybig .editer2 {
  margin-top: 12px;
  color: var(--inner-copy);
  font-size: 13px;
  line-height: 1.85;
}

/* Archived rental contract: preserve the original legal text as one readable document, not a narrow legacy float. */
.cms-public .rental-source .legacy-content > :is(.m_center, .w1160, .bg1, .bg2, .p20),
.cms-public .rental-source .legacy-content #inline2,
.cms-public .rental-source .legacy-content #inline2 > p,
.cms-public .rental-source .legacy-content #inline2 > table {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin-right: 0;
  margin-left: 0;
}
.cms-public .rental-source .legacy-content > #modal {
  display: inline-block;
  margin: 34px 0 20px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--inner-brass);
  color: var(--inner-brass-light);
  font: 400 11px/1.4 var(--hall-mono);
  letter-spacing: .08em;
  text-decoration: none;
}
.cms-public .rental-source .legacy-content #inline2 {
  max-width: 900px !important;
  margin-right: auto;
  margin-left: auto;
  padding: clamp(24px, 3.4vw, 44px);
  border: 1px solid var(--inner-line);
  background: #14120e;
}
.cms-public .rental-source .legacy-content #inline2 > p {
  color: var(--inner-copy);
  font-size: 14px;
  line-height: 2.05;
}
.cms-public .rental-source .legacy-content #inline2 > p:first-child {
  color: #f2efe9;
  font-family: var(--hall-serif);
  font-size: clamp(24px, 2.3vw, 32px);
  font-weight: 400;
  line-height: 1.4;
}
.cms-public .rental-source .legacy-content #inline2 > table {
  display: block;
  overflow-x: auto;
  margin: 28px 0;
  border-collapse: collapse;
  color: var(--inner-copy);
  font-size: 12px;
}
.cms-public .rental-source .legacy-content #inline2 > table :is(td, th) {
  min-width: 76px;
  padding: 10px;
  border: 1px solid var(--inner-line);
  vertical-align: top;
}
.cms-public .ensemble-program__routes { grid-column: 1; display: grid; border-top: 1px solid var(--inner-line); }
.cms-public .ensemble-program__routes a { display: grid; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--inner-line); color: var(--inner-brass-light); text-decoration: none; }
.cms-public .ensemble-program__route-copy strong { display: block; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.4; }
.cms-public .ensemble-program__route-copy small { display: block; margin-top: 7px; color: var(--inner-copy); font-size: 12px; line-height: 1.75; }
.cms-public .ensemble-program__routes figure { display: none; }
.cms-public .ensemble-directory__member > a { display: block; color: inherit; text-decoration: none; }
.cms-public .ensemble-directory__member > a figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--inner-raised); }
.cms-public .ensemble-directory__member > a figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72); }
.cms-public .ensemble-directory__member > a > div { display: block; padding: 15px 0 22px; border-bottom: 1px solid var(--inner-line); }
.cms-public .ensemble-directory__member h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.45; }
.cms-public .ensemble-directory__member p { margin: 7px 0 0; color: var(--inner-copy); font-size: 12px; line-height: 1.75; }

.cms-public .artist-feature > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .82fr);
  min-height: 100%;
  color: inherit;
  text-decoration: none;
}
.cms-public .artist-feature > a > figure { min-height: 0; margin: 0; overflow: hidden; }
.cms-public .artist-feature > a > figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); }
.cms-public .artist-feature > a > .artist-feature__copy { align-self: stretch; }
.cms-public .artist-feature > a > .artist-feature__copy > span { display: inline-block; align-self: flex-start; margin-top: 28px; padding: 11px 0; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .1em; }
.cms-public .artist-gallery__item > a { display: block; color: inherit; text-decoration: none; }
.cms-public .artist-gallery__item > a figure { margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--inner-raised); }
.cms-public .artist-gallery__item > a figure img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: saturate(.72) contrast(1.04); transition: transform 320ms var(--hall-ease); }
.cms-public .artist-gallery__item:hover img { transform: scale(1.025); }
.cms-public .artist-gallery__item > a > div { padding: 16px 0 23px; border-bottom: 1px solid var(--inner-line); }
.cms-public .artist-gallery__item h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 22px; font-weight: 400; line-height: 1.35; }
.cms-public .artist-gallery__item p { margin: 8px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.78; }

.cms-public .scholarship-brief > a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .94fr);
  min-height: 350px;
  color: inherit;
  text-decoration: none;
}
.cms-public .scholarship-brief > a > figure { min-height: 0; margin: 0; background: var(--inner-raised); }
.cms-public .scholarship-brief > a > figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.cms-public .scholarship-brief__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 4vw, 52px); background: #14120e; }
.cms-public .scholarship-brief__copy time,
.cms-public .scholarship-record time { color: var(--inner-brass); font: 400 12px/1.4 var(--hall-latin); letter-spacing: .08em; }
.cms-public .scholarship-brief__copy h2 { margin: 16px 0 0; color: #f2efe9; font-family: var(--hall-serif); font-size: clamp(28px, 2.7vw, 38px); font-weight: 300; line-height: 1.42; }
.cms-public .scholarship-brief__copy p { margin: 16px 0 0; color: var(--inner-copy); font-size: 14px; line-height: 2; }
.cms-public .scholarship-brief__copy > span { align-self: flex-start; margin-top: 25px; padding-bottom: 8px; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 11px/1.4 var(--hall-mono); letter-spacing: .1em; }
.cms-public .scholarship-record { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: clamp(42px, 5vw, 64px) 0 0; padding: 0; list-style: none; }
.cms-public .scholarship-record li { min-width: 0; border: 1px solid var(--inner-line); }
.cms-public .scholarship-record a { display: flex; min-height: 100%; flex-direction: column; color: inherit; text-decoration: none; }
.cms-public .scholarship-record figure { min-height: 0; margin: 0; aspect-ratio: 16 / 10; background: var(--inner-raised); }
.cms-public .scholarship-record figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.cms-public .scholarship-record a > div { min-height: 152px; padding: 24px; }
.cms-public .scholarship-record h2 { margin: 12px 0 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 23px; font-weight: 400; line-height: 1.42; }
.cms-public .scholarship-record p { margin: 12px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.85; }

.cms-public .reference-news { border: 0; }
.cms-public .news-feature > a { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(340px, 1fr); min-height: 100%; color: inherit; text-decoration: none; }
.cms-public .news-feature > a:not(:has(figure)) { grid-template-columns: 1fr; }
.cms-public .news-feature > a > figure { min-height: clamp(280px, 32vw, 460px); margin: 0; background: var(--inner-raised); }
.cms-public .news-feature > a > figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) contrast(1.04); }
.cms-public .news-feature__copy > .news-feature__action { align-self: flex-start; margin-top: 26px; padding-bottom: 8px; border-bottom: 1px solid var(--inner-brass); color: var(--inner-brass-light); font: 400 12px/1.4 var(--hall-mono); letter-spacing: .12em; }
.cms-public .news-secondary__item > a { display: block; color: inherit; text-decoration: none; }
.cms-public .news-secondary__item > a figure { margin: 0; aspect-ratio: 16 / 10; background: var(--inner-raised); }
.cms-public .news-secondary__item > a figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.cms-public .news-secondary__item > a > div { padding: 22px 22px 26px; }
.cms-public .news-secondary__item h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 20px; font-weight: 400; line-height: 1.5; }
.cms-public .news-secondary__item p { margin: 12px 0 0; color: var(--inner-copy); font-size: 13px; line-height: 1.85; }
.cms-public .news-ledger__item > a { display: grid; grid-template-columns: 150px minmax(0, 1fr) 120px; gap: 24px; align-items: center; color: inherit; text-decoration: none; }
.cms-public .news-ledger__item time { color: var(--inner-copy); font: 400 17px/1.4 var(--hall-latin); letter-spacing: .04em; }
.cms-public .news-ledger__item h2 { margin: 0; color: #f2efe9; font-family: var(--hall-serif); font-size: 19px; font-weight: 400; line-height: 1.48; }
.cms-public .news-ledger__item a > span { color: var(--inner-brass); font: 400 10px/1.4 var(--hall-mono); letter-spacing: .1em; text-align: right; }

.cms-public .contact-sheet { display: block; }
.cms-public .contact-sheet__layout { display: grid; gap: clamp(40px, 6vw, 84px); }
.cms-public .contact-sheet__layout:has(.contact-sheet__source) { grid-template-columns: minmax(0, .82fr) minmax(360px, 1.18fr); }
.cms-public .contact-locations { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid #b8975a66; }
.cms-public .contact-locations__item { display: grid; grid-template-columns: minmax(120px, .48fr) minmax(0, 1fr); min-height: 0; border-bottom: 1px solid var(--inner-line); }
.cms-public .contact-locations__item figure { min-height: 132px; margin: 0; }
.cms-public .contact-locations__item figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }
.cms-public .contact-locations__copy { padding: 22px 0 22px 24px; }
.cms-public .contact-locations__copy h2 { margin: 0 0 14px; color: #f2efe9; font-family: var(--hall-serif); font-size: 21px; font-weight: 400; line-height: 1.4; }
.cms-public .contact-locations__details table { width: 100%; border-collapse: collapse; }
.cms-public .contact-locations__details td { padding: 8px 0; border-top: 1px solid var(--inner-line); color: var(--inner-copy); font-size: 13px; line-height: 1.8; }
.cms-public .contact-sheet__source { margin-top: 0; }
.cms-public .contact-sheet__records { margin-top: 46px; border-top: 1px solid var(--inner-line); }
.cms-public .contact-sheet__records ul { margin: 0; padding: 0; list-style: none; }
.cms-public .contact-sheet__records a { display: block; padding: 16px 0; border-bottom: 1px solid var(--inner-line); color: var(--inner-brass-light); font-family: var(--hall-serif); font-size: 19px; text-decoration: none; }

/* Rental inventory keeps the original rows but gives labels and values a
   deliberate reading rhythm instead of letting the legacy table collapse
   them into a single visual word. */
.cms-public .interior-page--site-rental .interior-remainder .info_zl { width: 100%; border-collapse: collapse; table-layout: fixed; }
.cms-public .interior-page--site-rental .interior-remainder .info_zl td { padding: 6px 0 !important; color: var(--inner-copy); font-size: 13px; line-height: 1.55; vertical-align: top; }
.cms-public .interior-page--site-rental .interior-remainder .info_zl td:first-child:not(.name_zl) { width: 37%; padding-right: 12px !important; color: var(--inner-brass); text-align: right; }
.cms-public .interior-page--site-rental .interior-remainder .info_zl td + td { color: #ece8df; text-align: left; overflow-wrap: anywhere; }
.cms-public .interior-page--site-rental .interior-remainder .info_zl .name_zl { text-align: left; }

@media (max-width: 760px) {
  .cms-public .catalogue-source :is(.list_pp, .list_pp2),
  .cms-public .ensemble-narrative--directory .list_cybig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-public .ensemble-program { grid-template-columns: 1fr; }
  .cms-public .ensemble-narrative,
  .cms-public .ensemble-program__routes { grid-column: 1; }
  .cms-public .artist-feature > a,
  .cms-public .scholarship-brief > a,
  .cms-public .news-feature > a,
  .cms-public .contact-sheet__layout:has(.contact-sheet__source) { grid-template-columns: 1fr; }
  .cms-public .artist-feature > a > figure { aspect-ratio: 4 / 3; }
  .cms-public .scholarship-brief > a > figure,
  .cms-public .news-feature > a > figure { min-height: 0; aspect-ratio: 16 / 10; }
  .cms-public .scholarship-record { grid-template-columns: 1fr; }
  .cms-public .news-ledger__item > a { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .cms-public .news-ledger__item a > span { display: none; }
}

@media (max-width: 520px) {
  .cms-public .catalogue-card__copy { min-height: 0; }
  .cms-public .news-ledger__item > a { grid-template-columns: 74px minmax(0, 1fr); gap: 16px; }
  .cms-public .news-ledger__item time { font-size: 14px; }
  .cms-public .news-ledger__item h2 { font-size: 17px; }
  .cms-public .contact-locations__item { grid-template-columns: 1fr; }
  .cms-public .contact-locations__item figure { min-height: 0; aspect-ratio: 16 / 8; }
  .cms-public .contact-locations__copy { padding: 18px 0; }
  .cms-public .catalogue-source :is(.list_pp, .list_pp2) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .cms-public .catalogue-source :is(.list_pp, .list_pp2) > li { padding: 10px; }
  .cms-public .ensemble-narrative--directory .list_cybig { grid-template-columns: 1fr; }
}


/* Editorial blocks written in the Wagtail body field. */
.cms-public .body-heading { max-width: 790px; margin: 48px auto 18px; color: var(--hall-ivory); font-family: var(--hall-serif); font-size: clamp(24px, 2.4vw, 34px); font-weight: 300; letter-spacing: -.02em; }
.cms-public .rich-text { max-width: 790px; margin: 0 auto; font-size: 16px; line-height: 1.9; }
.cms-public .rich-text + .rich-text { margin-top: 1em; }
.cms-public .rich-text h2, .cms-public .rich-text h3 { color: var(--hall-ivory); font-family: var(--hall-serif); font-weight: 400; }
.cms-public .body-image { max-width: 1080px; margin: 34px auto; }
.cms-public .body-image img { width: 100%; height: auto; }
.cms-public .body-image figcaption, .cms-public .body-video figcaption { margin-top: 12px; color: var(--hall-muted); font-size: 13px; text-align: center; }
.cms-public .body-video { max-width: 1080px; margin: 34px auto; }
.cms-public .body-video iframe { width: 100%; min-height: min(52vw, 460px); border: 1px solid var(--hall-rule); }
.cms-public .body-quote { max-width: 790px; margin: 34px auto; padding-left: 24px; border-left: 1px solid var(--hall-brass); color: var(--hall-ivory); font-family: var(--hall-serif); font-size: 20px; line-height: 1.7; }
.cms-public .body-quote cite { display: block; margin-top: 14px; color: var(--hall-muted); font: 11px/1.4 var(--hall-mono); font-style: normal; letter-spacing: .12em; }
.cms-public .cms-page-builder { background: var(--hall-black); }

/* The ledger row is now a single link, so the outer article must not also be a
   grid; otherwise the title is squeezed into the first column and wraps to one
   character per line. */
.cms-public .news-ledger__item:has(> a) { display: block; padding: 0; }
.cms-public .news-ledger__item:has(> a)::after { display: none; }
.cms-public .news-ledger__item > a { padding: 22px 0; }
@media (max-width: 860px) { .cms-public .news-ledger__item > a { padding: 18px 0; } }


/* 展开的移动导航必须是实心底色：半透明会让页面内容透上来，菜单读不清。 */
.cms-public .masthead { background: var(--hall-black); }
.cms-public .masthead[data-open="true"] { background: var(--hall-black); backdrop-filter: none; }
.cms-public .mobile-menu { background: var(--hall-black); }
.cms-public .masthead[data-open="true"] .mobile-menu { background: var(--hall-black); backdrop-filter: none; }
.cms-public .mobile-actions { background: var(--hall-black); backdrop-filter: none; }

/* 分类筛选是横向滚动的一行，列表项不能被压缩，否则中文标签会一个字一行。 */
.cms-public .catalogue-filter > li { flex: 0 0 auto; }
.cms-public .catalogue-filter a, .cms-public .product-path { white-space: nowrap; }
.cms-public .catalogue-filter__copy, .cms-public .product-path__copy { white-space: nowrap; }
