/* BOOTH-only overrides. Shared colors, typefaces and footer rules live in style.css. */
.booth-page { width: 100%; }
:where(.booth-page) a { color: inherit; }
.booth-page :focus-visible { outline: 2px solid var(--color-gold); outline-offset: 6px; }
.booth-page .booth-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.booth-page .booth-skip { position: fixed; top: 12px; left: 12px; z-index: 20; padding: 12px; background: var(--color-bg); transform: translateY(-200%); }
.booth-page .booth-skip:focus { transform: none; }
.booth-page .booth-page-header { min-height: 485px; box-shadow: inset 0 -16px 45px -22px #55556140; }
.booth-page .booth-header-inner { position: relative; width: min(1208px, calc(100% - 64px)); margin: auto; padding-top: 240px; padding-bottom: 64px; }
.booth-page .booth-page-header h1 { display: flex; align-items: center; font-family: 'Libre Bodoni', 'Noto Serif JP', serif; font-size: 64px; line-height: 1.2; letter-spacing: .18em; font-weight: 600; }
.booth-page .booth-title-clef { font-family: 'Apple Symbols', 'Noto Music', serif; font-size: 78px; line-height: 1; letter-spacing: 0; font-weight: 400; }
.booth-page .booth-page-subtitle { margin-top: 8px; font-size: 18px; letter-spacing: .18em; }
.booth-page .booth-legend { display: flex; flex-wrap: wrap; gap: 30px 64px; margin-top: 42px; list-style: none; font-size: 18px; letter-spacing: .16em; color: #d0d0dc; }
.booth-page .booth-legend li { display: flex; align-items: center; gap: 12px; }
.booth-page .booth-legend-record { display: block; width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; }
.booth-page .booth-breadcrumb { position: absolute; right: 0; bottom: 108px; display: flex; gap: 20px; font-size: 14px; letter-spacing: .15em; color: #b8b8c6; }
.booth-page .booth-breadcrumb a { text-decoration: none; }
.booth-page .booth-main { width: min(1240px, calc(100% - 64px)); margin: auto; padding-top: 105px; }
.booth-page .booth-category { margin-bottom: 220px; scroll-margin-top: 32px; }
.booth-page .booth-category-title { margin: 0 20px 64px; font-family: 'Noto Serif JP', serif; font-size: 44px; font-weight: 700; line-height: 1.2; letter-spacing: .04em; }
.booth-page .booth-category-title > span { display: block; font-family: 'Libre Bodoni', 'Noto Serif JP', serif; font-size: 24px; letter-spacing: .08em; font-weight: 600; line-height: 1.25; }
.booth-page .booth-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 90px 70px; list-style: none; padding: 0 24px; }
.booth-page .booth-entry { min-width: 0; position: relative; }
.booth-page .booth-entry-body { position: relative; padding-bottom: 108px; }
.booth-page .booth-image-placeholder { width: 100%; aspect-ratio: 350 / 333; background: #8e8e8e; }
.booth-page .booth-entry-marker { position: absolute; top: -14px; left: -24px; width: 66px; aspect-ratio: 1; border-radius: 50%; background: #d9d9d9; z-index: 2; }
.booth-page .booth-shelf { position: absolute; bottom: 78px; left: -24px; width: calc(100% + 70px); height: 30px; background: #2d1b18; box-shadow: 3px 5px 5px #0005; z-index: 1; }
.booth-page .booth-entry:nth-child(3n) .booth-shelf { width: calc(100% + 48px); }
.booth-page .booth-entry-label { position: absolute; bottom: 0; left: 50%; width: 64%; min-height: 94px; padding: 14px 20px; transform: translateX(-50%) rotate(2deg); background: var(--label-background, #ececec); color: var(--label-color, #262626); font-family: 'Noto Serif JP', serif; font-size: 14px; line-height: 1.5; letter-spacing: .12em; z-index: 2; }
.booth-page .booth-entry-label > span { display: block; }
.booth-page .booth-entry:nth-child(3n + 2) .booth-entry-label { transform: translateX(-50%) rotate(-1deg); }
.booth-page .booth-entry:nth-child(3n) .booth-entry-label { transform: translateX(-50%) rotate(.6deg); }
.booth-page .booth-more { display: none; }
.booth-page .booth-schedule { width: min(366px, 100%); margin: 145px auto 0; font-size: 14px; letter-spacing: .2em; text-align: center; }
.booth-page .booth-schedule summary { display: grid; place-items: center; min-height: 72px; padding: 14px; border: 1px solid #efd59180; cursor: pointer; list-style: none; }
.booth-page .booth-schedule summary::-webkit-details-marker { display: none; }
.booth-page .booth-schedule summary:hover, .booth-page .booth-more:hover { background: var(--color-gold); color: var(--color-bg); }
.booth-page .booth-schedule p { padding: 20px 8px; font-size: 13px; letter-spacing: .05em; }
.booth-page .booth-map { text-align: center; padding-bottom: 190px; }
.booth-page .booth-map .booth-category-title { margin-bottom: 48px; }
.booth-page .booth-map-scroll {
  width: min(872px, 100%);
  margin: auto;
  container-type: inline-size;
  overflow-x: auto;
  overflow-y: hidden;
  background: transparent;
  overscroll-behavior-x: contain;
  scrollbar-color: var(--color-gold) transparent;
}
.booth-page .booth-map-image {
  display: block;
  /* Preserve the old placeholder height: viewport width × 756 / 872. */
  height: 86.69724771cqw;
  width: auto;
  max-width: none;
  margin-inline: auto;
}
@media (max-width: 1100px) and (min-width: 851px) {
  .booth-page .booth-list { gap: 70px 45px; }
  .booth-page .booth-shelf { width: calc(100% + 45px); }
  .booth-page .booth-entry-marker { width: 54px; }
  .booth-page .booth-entry-label { width: 78%; font-size: 12px; }
  .booth-page .booth-breadcrumb { bottom: 120px; }
}
@media (max-width: 850px) {
  .booth-page .booth-page-header { min-height: 538px; }
  .booth-page .booth-header-inner { width: calc(100% - 32px); padding-top: 200px; padding-bottom: 126px; }
  .booth-page .booth-page-header h1 { font-size: 40px; }
  .booth-page .booth-title-clef { font-size: 54px; }
  .booth-page .booth-page-subtitle { font-size: 14px; margin-top: 2px; }
  .booth-page .booth-legend { flex-direction: column; gap: 14px; margin: 44px 12px 0; font-size: 14px; }
  .booth-page .booth-legend li { gap: 18px; }
  .booth-page .booth-legend-record { width: 32px; height: 32px; }
  .booth-page .booth-breadcrumb { bottom: 56px; gap: 14px; font-size: 11px; letter-spacing: .12em; }
  .booth-page .booth-main { width: calc(100% - 32px); padding-top: 60px; }
  .booth-page .booth-category { margin-bottom: 140px; }
  .booth-page .booth-category-title { margin: 0 0 90px; font-size: 28px; }
  .booth-page .booth-category-title > span { font-size: 16px; }
  .booth-page .booth-list { width: min(260px, calc(100% - 72px)); padding: 0; margin: auto; grid-template-columns: minmax(0, 1fr); gap: 60px; }
  .booth-page .booth-entry-body { padding-bottom: 86px; }
  .booth-page .booth-entry-marker { width: 50px; top: -15px; left: -20px; }
  .booth-page .booth-shelf, .booth-page .booth-entry:nth-child(3n) .booth-shelf { left: -14px; width: calc(100% + 28px); height: 22px; bottom: 64px; }
  .booth-page .booth-entry-label { width: 64%; min-height: 70px; padding: 10px 16px; font-size: 14px; line-height: 1.15; letter-spacing: .04em; }
  .booth-page .booth-entry:nth-child(n) .booth-entry-label { transform: translateX(-50%) rotate(2deg); }
  .booth-page .booth-more:not([hidden]) { display: block; width: 216px; min-height: 48px; margin: 68px auto 0; background: transparent; border: 1px solid #efd59180; color: var(--color-gold); font: inherit; font-size: 12px; letter-spacing: .2em; cursor: pointer; }
  .booth-page .booth-entry[hidden] { display: none; }
  .booth-page .booth-schedule { width: 216px; margin-top: 48px; font-size: 11px; }
  .booth-page .booth-schedule summary { min-height: 48px; }
  .booth-page .booth-map { padding-bottom: 82px; }
  .booth-page .booth-map .booth-category-title { margin-bottom: 34px; }
  .booth-page .booth-map-scroll { width: min(100%, 334px); }
  /* Mobile: 2.5× the original map height; intrinsic ratio determines width. */
  .booth-page .booth-map-image { height: calc(86.69724771cqw * 2.5); }
}

/* Raise the active card above its neighbors while keeping its own cover in front. */
.booth-page .booth-list { position: relative; isolation: isolate; }
.booth-page .booth-entry {
  --record-slide: 55%;
  z-index: 0;
  transition: z-index 0s 550ms;
}
/* Record color follows the booth genre, independently of grid position. */
.booth-page .booth-entry[data-genre="food"] { --label-background: #ffbfc7; --label-color: #171717; --record-image: url('../images/booth/record-pink.png'); }
.booth-page .booth-entry[data-genre="experience"] { --label-background: #a83228; --label-color: #ffffff; --record-image: url('../images/booth/record-red.png'); }
.booth-page .booth-entry[data-genre="exhibition"] { --label-background: #2868b2; --label-color: #ffffff; --record-image: url('../images/booth/record-blue.png'); }
.booth-page .booth-entry:nth-child(3n) {
  /* The last column uses the available right margin, avoiding viewport clipping. */
  --record-slide: min(55%, calc((100vw - min(1240px, 100vw - 64px)) / 2 + 24px));
}
.booth-page .booth-image-placeholder {
  position: relative;
  isolation: auto;
  background: transparent;
}
.booth-page .booth-image-placeholder::before {
  content: '';
  position: absolute;
  width: 90%;
  aspect-ratio: 1;
  top: 50%;
  left: 5%;
  background: var(--record-image) center / contain no-repeat;
  transform: translate(0, -50%);
  transition: transform 550ms cubic-bezier(.22, .61, .36, 1);
  pointer-events: none;
  z-index: 0;
}
.booth-page .booth-image-placeholder::after {
  content: '';
  position: absolute;
  inset: 0;
  background: #8e8e8e;
  pointer-events: none;
  z-index: 1;
}
@media (hover: hover) and (pointer: fine) {
  .booth-page .booth-entry:has(.booth-image-placeholder:hover) {
    z-index: 4;
    transition-delay: 0s;
  }
  .booth-page .booth-image-placeholder:hover::before {
    transform: translate(var(--record-slide), -50%);
  }
}
@media (max-width: 850px) {
  .booth-page .booth-entry:nth-child(n) {
    --record-slide: min(55%, calc((100vw - min(260px, 100vw - 104px)) / 2));
  }
}

/* Real exhibition titles and introductions: natural height keeps long text readable. */
.booth-page .booth-entry-body { padding-bottom: 0; }
.booth-page .booth-cover { position: relative; }
.booth-page .booth-cover .booth-shelf { top: 100%; bottom: auto; }
.booth-page .booth-entry:last-child .booth-shelf { width: calc(100% + 48px); }
.booth-page .booth-entry-marker {
  display: grid;
  place-items: center;
  color: var(--color-bg);
  font: italic 28px 'Libre Bodoni', serif;
}
.booth-page .booth-entry-label {
  position: relative;
  bottom: auto;
  width: 88%;
  min-height: 106px;
  margin-top: 14px;
  padding: 18px 20px;
  overflow-wrap: anywhere;
}
.booth-page .booth-entry-label h3 { font-size: 17px; line-height: 1.65; letter-spacing: .03em; }
.booth-page .booth-entry-label .booth-entry-meta { margin-top: 7px; font-size: 12px; line-height: 1.6; letter-spacing: .02em; }
.booth-page .booth-description { margin: 24px 8px 0; font-family: 'Noto Serif JP', serif; }
.booth-page .booth-description summary { width: fit-content; padding: 8px 0; cursor: pointer; font-size: 14px; letter-spacing: .08em; text-underline-offset: 5px; }
.booth-page .booth-description summary:hover { color: var(--color-gold-light); text-decoration: underline; }
.booth-page .booth-description[open] summary { margin-bottom: 8px; }
.booth-page .booth-description-text { color: #ececf2; font-size: 14px; line-height: 2; overflow-wrap: anywhere; }
.booth-page .booth-description-text p + p { margin-top: 1em; }
@media (max-width: 850px) {
  .booth-page .booth-entry-label { width: 88%; min-height: 90px; margin-top: 10px; padding: 14px 16px; }
  .booth-page .booth-entry-label h3 { font-size: 15px; }
  .booth-page .booth-entry-marker { font-size: 23px; }
  .booth-page .booth-entry:last-child .booth-shelf { width: calc(100% + 28px); }
}

/* Equal height across all labels at the current responsive width. */
.booth-page .booth-entry-label { height: var(--booth-label-height, auto); }
.booth-page.is-measuring-labels .booth-entry-label { height: auto; }
.booth-page.is-measuring-labels .booth-entry[hidden] { display: list-item; }

/* Desktop map: approximately 1.5×, fitting the viewport without scrolling. */
@media (min-width: 851px) {
  .booth-page .booth-map-scroll {
    position: relative;
    left: 50%;
    width: min(1320px, calc(100vw - 64px));
    margin: 0;
    transform: translateX(-50%);
    container-type: normal;
    overflow: visible;
  }
  .booth-page .booth-map-image { width: 100%; height: auto; }
}

/* Decorations remain above the record within each card. */
.booth-page .booth-shelf { z-index: 2; }
.booth-page .booth-entry-marker,
.booth-page .booth-entry-label { z-index: 3; }

/* Desktop: every column slides its record out by the same amount, and the list side padding
   grows only when the viewport margin is too small to show the whole record on the right column. */
@media (min-width: 851px) {
  .booth-page .booth-category {
    --list-gap: 70px;
    --list-wc: min(1240px, 100vw - 64px);
    --list-pad: max(24px, calc((var(--list-wc) - 2 * var(--list-gap)) * 0.10526 + 15.79px - (100vw - var(--list-wc)) / 2 * 0.7895));
  }
  .booth-page .booth-list { column-gap: var(--list-gap); padding-inline: var(--list-pad); }
  .booth-page .booth-category-title { margin-left: calc(var(--list-pad) - 4px); }
  .booth-page .booth-entry,
  .booth-page .booth-entry:nth-child(3n) { --record-slide: 50%; }
}
@media (min-width: 851px) and (max-width: 1100px) {
  .booth-page .booth-category { --list-gap: 45px; }
}

/* Thumbnails fill the square card (cropped to cover). */
.booth-page .booth-image-placeholder::after { background-size: cover; background-position: center; background-repeat: no-repeat; }

/* Thumbnails: booth-NN-title is the entry number. */
.booth-page .booth-entry[aria-labelledby="booth-03-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth03.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-04-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth04.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-05-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth05.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-06-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth06.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-07-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth07.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-08-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth08.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-15-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth15.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-16-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth16.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-17-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth17.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-18-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth18.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-19-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth19.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-20-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth20.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-21-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth21.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-22-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth22.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-23-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth23.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-24-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth24.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-25-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth25.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-26-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth26.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-27-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth27.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-28-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth28.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-29-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth29.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-31-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth31.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-33-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth33.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-35-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth35.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-36-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth36.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-38-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth38.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-41-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth41.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-01-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth01.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-09-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth09.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-10-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth10.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-11-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth11.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-34-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth34.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-02-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth02.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-12-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth12.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-13-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth13.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-14-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth14.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-30-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth30.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-32-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth32.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-37-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth37.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-39-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth39.jpg'); }
.booth-page .booth-entry[aria-labelledby="booth-40-title"] .booth-image-placeholder::after { background-image: url('../images/booth/thumbs/booth40.jpg'); }

/* Thumbnails show full width; the leftover top and bottom use the same gold as the description link. */
.booth-page .booth-entry[aria-labelledby="booth-07-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-03-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-04-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-05-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-06-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-08-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-15-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-16-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-17-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-18-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-19-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-20-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-21-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-22-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-23-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-24-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-25-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-26-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-27-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-28-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-29-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-31-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-33-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-35-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-36-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-38-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-02-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-12-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-13-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-14-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-30-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-32-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-37-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-39-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-40-title"] .booth-image-placeholder::after,
.booth-page .booth-entry[aria-labelledby="booth-41-title"] .booth-image-placeholder::after { background-color: var(--color-gold); background-size: contain; }

/* Department groups: a sub-heading with a rule, then its own list. */
.booth-page .booth-group + .booth-group { margin-top: 150px; }
.booth-page .booth-group-title {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin: 0 var(--list-pad, 24px) 64px calc(var(--list-pad, 24px) - 4px);
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .06em;
  color: var(--color-gold-light);
}
.booth-page .booth-group-title > span { font-family: 'Libre Bodoni', 'Noto Serif JP', serif; font-size: 16px; font-weight: 600; letter-spacing: .12em; color: var(--color-gold); }
.booth-page .booth-group-title::after { content: ''; flex: 1; align-self: center; height: 1px; background: #efd59159; order: 3; }
.booth-page .booth-group[hidden] { display: none; }
.booth-page.is-measuring-labels .booth-group[hidden] { display: block; }
@media (max-width: 850px) {
  .booth-page .booth-group + .booth-group { margin-top: 100px; }
  .booth-page .booth-group-title { display: block; width: min(260px, calc(100% - 72px)); margin: 0 auto 56px; font-size: 22px; text-align: center; }
  .booth-page .booth-group-title > span { display: block; margin-top: 2px; font-size: 13px; }
  .booth-page .booth-group-title::after { display: none; }
}

/* Scroll reveal (engine lives in script.js); columns follow each other slightly on desktop. */
@media (min-width: 851px) {
  .booth-page .booth-entry:nth-child(3n + 2) { --rd: .12s; }
  .booth-page .booth-entry:nth-child(3n) { --rd: .24s; }
}

/* Breadcrumb sits on the subtitle row on desktop (same on every page); bottom-right on mobile. */
@media (min-width: 851px) {
  .booth-page .booth-breadcrumb { top: 328px; bottom: auto; }
}

/* Schedule button */
.booth-page .booth-schedule-link { display: grid; place-items: center; width: min(330px, 100%); min-height: 65px; margin: 145px auto 0; border: 1px solid #efd591bf; color: var(--color-gold-light); font-size: 18px; letter-spacing: .4em; text-indent: .4em; text-decoration: none; transition: background-color .3s ease, color .3s ease; }
.booth-page .booth-schedule-link:hover, .booth-page .booth-schedule-link:focus-visible { background: var(--color-gold); color: var(--color-bg); }
@media (max-width: 850px) {
  .booth-page .booth-schedule-link { width: 216px; min-height: 48px; margin-top: 48px; font-size: 13px; letter-spacing: .3em; text-indent: .3em; }
}