/* Yamato's single festival square. Load after venue.css. */
.bonodori-venue.yamato-venue {
  --venue-ink: #102f3e;
  --venue-paper: #f7f2e7;
  --venue-red: #a44431;
  --venue-line: #d8cbae;
  --yamato-navy: #0b2636;
  --yamato-gold: #d5b66d;
  margin: 0;
  padding: 0;
  background: var(--venue-paper);
  border-top: 5px solid var(--yamato-gold);
  scroll-margin-top: 100px;
}
.yamato-venue .yamato-venue-heading {
  padding: clamp(34px, 5vw, 68px) max(24px, calc((100% - 1280px) / 2));
  color: #fff9ec;
  background: var(--yamato-navy);
}
.yamato-venue .venue-heading-row { padding: 0; align-items: flex-start; gap: 32px; }
.yamato-venue .yamato-venue-heading .venue-eyebrow { color: var(--yamato-gold); font-size: 11px; }
.yamato-venue h2 { font-size: clamp(22px, 2.5vw, 34px); line-height: 1.75; letter-spacing: .035em; }
.yamato-venue h2 > span { display: block; margin-top: 2px; font-size: clamp(35px, 4.6vw, 62px); line-height: 1.45; }
.yamato-venue .yamato-venue-seal {
  display: grid;
  place-content: center;
  width: 96px;
  height: 96px;
  flex: 0 0 auto;
  margin-top: 9px;
  border: 1px solid var(--yamato-gold);
  border-radius: 50%;
  color: var(--yamato-gold);
  font: 500 15px/1.7 var(--serif, serif);
  letter-spacing: .09em;
  text-align: center;
}
.yamato-venue .yamato-venue-welcome { display: flex; justify-content: space-between; align-items: flex-end; gap: 36px; margin-top: 24px; }
.yamato-venue .venue-intro { margin: 0; padding: 0; color: #e0e6e3; font-size: 15px; line-height: 2; }
.yamato-venue .yamato-venue-entry { flex-shrink: 0; }
.yamato-venue .yamato-venue-entry .venue-primary { border-color: var(--yamato-gold); background: var(--yamato-gold); color: var(--yamato-navy); }
.yamato-venue .yamato-venue-entry .venue-primary:hover { background: #e8cb86; border-color: #e8cb86; }
.yamato-venue .yamato-venue-entry > p { margin: 10px 0 0; color: #d2d9d7; font-size: 11px; line-height: 1.8; }
.yamato-venue .yamato-venue-body { max-width: 1400px; margin: 0 auto; padding: 0 24px; }
.yamato-venue .yamato-venue-stats { padding: 42px 0 30px; }
.yamato-venue .yamato-stats-heading { margin: 0 0 23px; font: 600 18px/1.7 var(--serif, serif); }
.yamato-venue .yamato-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; }
.yamato-venue .yamato-stats-grid > div { padding: 0 30px; border-left: 1px solid #ccb98e; }
.yamato-venue .yamato-stats-grid > div:first-child { padding-left: 0; border-left: 0; }
.yamato-venue .yamato-stats-grid dt { font-size: 14px; line-height: 1.7; color: #526570; }
.yamato-venue .yamato-stats-grid dd { display: flex; align-items: baseline; gap: 10px; margin: 5px 0 0; font: 500 clamp(34px, 4.3vw, 54px)/1.3 var(--en, sans-serif); color: var(--venue-ink); font-variant-numeric: tabular-nums; }
.yamato-venue .yamato-stat-unit { font: 400 12px/1.6 var(--en, sans-serif); color: #63716f; }
.yamato-venue .yamato-count-summary { margin: 25px 0 9px; font-size: 12px; line-height: 1.9; }
.yamato-venue .yamato-count-summary strong { font: 600 16px var(--en, sans-serif); padding-inline: 3px; }
.yamato-venue .yamato-count-summary > span { padding-inline: 8px; color: #aa966d; }
.yamato-venue .yamato-count-note { max-width: 980px; margin: 0; font-size: 11px; line-height: 1.9; color: #64726e; }
.yamato-venue .venue-map-shell { border: 1px solid #c5b38c; background: #e8dcc3; }
.yamato-venue .venue-map-tools { gap: 10px; padding: 12px 18px; background: #efe7d5; }
.yamato-venue .venue-map-tools > span { color: #536358; font-size: 12px; }
.yamato-venue .venue-map-tools button { min-width: 44px; min-height: 44px; }
.yamato-venue .venue-map-tools #venue-motion { font-size: 11px; padding-inline: 12px; }
.yamato-venue .venue-map-tools output { font-size: 12px; }
.yamato-venue .venue-viewport { height: auto; aspect-ratio: 3 / 2; min-height: 0; }
.yamato-venue .venue-scene { aspect-ratio: 3 / 2; min-height: 0; }
.yamato-venue .venue-background { object-fit: contain; }
.yamato-venue .venue-map-foot { background: #fffaf0; gap: 10px 20px; padding: 14px 18px; }
.yamato-venue .venue-map-foot p { font-size: 12px; }
.yamato-venue .venue-map-foot button { min-height: 44px; font-size: 12px; }
.yamato-venue .venue-map-foot .venue-page-controls button { min-width: 44px; min-height: 44px; }
.yamato-venue .yamato-map-caption { margin: 10px 0 22px; font-size: 11px; line-height: 1.9; color: #63716b; }
.yamato-venue .venue-controls { padding: 20px 0; gap: 16px; }
.yamato-venue .venue-filters { flex: 1 1 160px; gap: 6px; }
.yamato-venue .venue-filters button { padding: 9px 18px; min-height: 44px; font-size: 13px; }
.yamato-venue .venue-filters button[aria-pressed=true] { background: var(--yamato-navy); }
.yamato-venue .venue-search { max-width: 380px; }
.yamato-venue .venue-search input { min-height: 46px; font-size: 14px; }
.yamato-venue .venue-topline { margin: 0 0 24px; }
.yamato-venue .venue-topline p { font-size: 13px; }
.yamato-venue .venue-primary { min-height: 48px; padding: 13px 22px; font-size: 13px; }
.yamato-venue .venue-empty { padding: 23px 25px; background: #ece8d7; }
.yamato-venue .venue-empty p { font-size: 13px; }
.yamato-venue .venue-demo-note { border: 1px solid #c6a761; background: #f0e1b8; font-size: 12px; }
.yamato-venue .venue-demo-note strong { font-size: 13px; }
.yamato-venue .venue-load-row { padding-inline: 0; }
.yamato-venue .venue-load-row p { font-size: 12px; }
.yamato-venue .venue-record-list { padding: 4px 0 10px; }
.yamato-venue .venue-caption { margin: 16px 0 30px; color: #63716b; font-size: 11px; }
.yamato-venue .venue-record-panel { padding: 45px clamp(22px, 5vw, 72px); border: 1px solid #d6c7a6; background: #fffcf5; scroll-margin-top: 110px; }
.yamato-venue .venue-record-intro { max-width: 740px; }
.yamato-venue .venue-record-intro h3 { font-size: clamp(27px, 3.2vw, 40px); line-height: 1.65; }
.yamato-venue .venue-record-intro p:not(.venue-eyebrow) { font-size: 14px; line-height: 2; }
.yamato-venue .venue-record-intro .yamato-form-timing { padding: 12px 16px; border-left: 2px solid #b99a53; background: #f4efdf; font-size: 12px; }
.yamato-venue #venue-signin p, .yamato-venue #venue-auth-loading, .yamato-venue #venue-demo-form-note { font-size: 13px; }
.yamato-venue #venue-form { max-width: 860px; margin-top: 28px; }
.yamato-venue #venue-fields > label, .yamato-venue .venue-form-pair > label { font-size: 14px; margin-bottom: 22px; }
.yamato-venue #venue-form :is(input:not([type=radio]):not([type=checkbox]), select, textarea) { min-height: 48px; font-size: 16px; border-color: #c8c6b3; }
.yamato-venue #venue-date[readonly] { background: #f4f0e5; color: #52666c; }
.yamato-venue fieldset.venue-avatar-kinds { display: block; margin: 0 0 26px; }
.yamato-venue .venue-avatar-kinds legend, .yamato-venue .venue-colors legend { padding: 0; margin-bottom: 12px; font-size: 14px; }
.yamato-venue .yamato-avatar-options { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 540px; }
.yamato-venue .venue-avatar-kind { position: relative; display: block; min-width: 0; max-width: none; cursor: pointer; }
.yamato-venue .venue-avatar-kind > input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.yamato-venue .venue-avatar-kind > .venue-avatar-choice { display: grid; justify-items: center; gap: 4px; margin: 0; padding: 16px 10px; color: var(--venue-ink); border: 1px solid #d9d2bf; background: #f7f3e8; border-radius: 3px; font-size: 13px; }
.yamato-venue .venue-avatar-kind .venue-mascot { width: 84px; height: 112px; }
.yamato-venue .venue-avatar-choice strong { font-size: 15px; line-height: 1.8; }
.yamato-venue .venue-avatar-choice small { font-size: 10px; color: #6e786d; line-height: 1.7; }
.yamato-venue .venue-avatar-kind > input:checked + .venue-avatar-choice { border-color: #1d4858; background: #e9f0e8; box-shadow: inset 0 0 0 1px #1d4858; }
.yamato-venue .venue-avatar-kind > input:checked + .venue-avatar-choice::after { content: '選択中'; color: #204a52; font-size: 10px; line-height: 1.5; }
.yamato-venue .venue-avatar-kind > input:focus-visible + .venue-avatar-choice { outline: 3px solid #b87934; outline-offset: 4px; }
.yamato-venue .venue-colors label > span { min-height: 46px; padding: 10px; }
.yamato-venue #venue-fields > label.venue-consent { margin: 27px 0 12px; }
.yamato-venue .venue-consent span { font-size: 12px; }
.yamato-venue .venue-consent input { width: 20px; height: 20px; }
.yamato-venue .yamato-consent-note { margin: 0 0 24px; font-size: 12px; line-height: 1.9; color: #657065; }
.yamato-venue .venue-record-panel > .venue-caption { margin: 22px 0 0; }
.yamato-venue .yamato-venue-impact { display: grid; grid-template-columns: .9fr 1.2fr; gap: 60px; padding: 50px 0 56px; }
.yamato-venue .yamato-venue-impact h3 { margin: 5px 0 0; font: 600 clamp(24px, 2.8vw, 34px)/1.65 var(--serif, serif); }
.yamato-venue .yamato-venue-impact p:not(.venue-eyebrow) { margin: 0 0 14px; color: #536b6c; font-size: 14px; line-height: 2; }
.yamato-venue .yamato-venue-impact a { display: inline-block; padding: 9px 0; color: var(--venue-ink); border-bottom: 1px solid #a18b55; font-size: 13px; font-weight: 600; line-height: 1.8; text-decoration: none; }
.yamato-venue .yamato-venue-impact a:hover { color: #8b4233; }
.yamato-venue .venue-detail { background: #fffbf1; }
.yamato-venue .venue-detail-meta { flex-wrap: wrap; }
.yamato-venue .venue-detail :is(button, a) { min-height: 44px; }
@media (max-width: 820px) {
  .yamato-venue .yamato-venue-welcome { align-items: flex-start; flex-direction: column; gap: 24px; }
  .yamato-venue .yamato-venue-seal { width: 78px; height: 78px; font-size: 13px; }
  .yamato-venue .yamato-venue-impact { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 580px) {
  .bonodori-venue.yamato-venue { scroll-margin-top: 82px; }
  .yamato-venue .yamato-venue-heading { padding: 34px 20px 30px; }
  .yamato-venue .venue-heading-row { gap: 0; }
  .yamato-venue .yamato-venue-seal { display: none; }
  .yamato-venue .yamato-venue-heading .venue-eyebrow { font-size: 9px; letter-spacing: .13em; }
  .yamato-venue h2 { font-size: 19px; line-height: 1.75; }
  .yamato-venue h2 > span { font-size: 34px; margin-top: 9px; letter-spacing: .01em; }
  .yamato-venue .venue-intro { font-size: 13px; line-height: 2; }
  .yamato-venue .venue-intro br { display: none; }
  .yamato-venue .yamato-venue-entry { width: 100%; }
  .yamato-venue .yamato-venue-entry .venue-primary { width: 100%; }
  .yamato-venue .yamato-venue-body { padding-inline: 16px; }
  .yamato-venue .yamato-venue-stats { padding: 29px 0 24px; }
  .yamato-venue .yamato-stats-heading { margin-bottom: 21px; font-size: 16px; }
  .yamato-venue .yamato-stats-grid > div { padding-inline: 10px; }
  .yamato-venue .yamato-stats-grid > div:last-child { padding-right: 0; }
  .yamato-venue .yamato-stats-grid dt { min-height: 38px; font-size: 11px; line-height: 1.75; }
  .yamato-venue .yamato-stats-grid dd { font-size: 32px; gap: 4px; }
  .yamato-venue .yamato-stat-unit { font-size: 10px; }
  .yamato-venue .yamato-count-summary { margin-top: 18px; font-size: 10px; }
  .yamato-venue .yamato-count-summary strong { font-size: 13px; padding-inline: 1px; }
  .yamato-venue .yamato-count-summary > span { padding-inline: 2px; }
  .yamato-venue .yamato-count-note { font-size: 10px; }
  .yamato-venue .venue-map-shell { margin-inline: -16px; border-inline: 0; }
  .yamato-venue .venue-map-tools { padding: 10px 12px; gap: 4px; }
  .yamato-venue .venue-map-tools > span { padding: 0; font-size: 10px; }
  .yamato-venue .venue-map-tools > div { justify-content: flex-end; width: 100%; }
  .yamato-venue .venue-map-tools button { padding-inline: 7px; }
  .yamato-venue .venue-map-tools #venue-motion { font-size: 10px; padding-inline: 8px; }
  .yamato-venue .venue-map-foot { padding: 10px 16px; gap: 5px 12px; }
  .yamato-venue .venue-map-foot p, .yamato-venue .venue-map-foot button { font-size: 10px; }
  .yamato-venue .yamato-map-caption { margin-bottom: 18px; font-size: 10px; }
  .yamato-venue .venue-controls { padding-block: 16px; gap: 12px; }
  .yamato-venue .venue-filters { flex-basis: 100%; }
  .yamato-venue .venue-search { max-width: none; }
  .yamato-venue .venue-search input { font-size: 16px; }
  .yamato-venue .venue-topline { gap: 12px; margin-bottom: 20px; }
  .yamato-venue .venue-topline p { font-size: 12px; }
  .yamato-venue .venue-empty { padding: 20px 16px; }
  .yamato-venue .venue-empty p { font-size: 12px; }
  .yamato-venue .venue-caption { font-size: 10px; margin-bottom: 24px; }
  .yamato-venue .venue-record-panel { padding: 28px 18px; }
  .yamato-venue .venue-record-intro h3 { font-size: 28px; }
  .yamato-venue .venue-record-intro p:not(.venue-eyebrow) { font-size: 13px; }
  .yamato-venue .venue-record-intro .yamato-form-timing { padding: 10px 12px; font-size: 11px; }
  .yamato-venue .venue-record-intro p br { display: none; }
  .yamato-venue .venue-form-pair { gap: 0; }
  .yamato-venue #venue-fields > label, .yamato-venue .venue-form-pair > label { font-size: 13px; }
  .yamato-venue label > span:not(.venue-consent span) { font-size: 10px; margin-left: 4px; }
  .yamato-venue .yamato-avatar-options { gap: 10px; }
  .yamato-venue .venue-avatar-kind > .venue-avatar-choice { margin: 0; padding: 12px 5px; }
  .yamato-venue .venue-avatar-kind .venue-mascot { width: 68px; height: 91px; }
  .yamato-venue .venue-avatar-choice strong { font-size: 12px; }
  .yamato-venue .venue-avatar-choice small { font-size: 9px; }
  .yamato-venue .venue-colors label > span { min-height: 44px; }
  .yamato-venue .venue-consent span, .yamato-venue .yamato-consent-note { font-size: 11px; }
  .yamato-venue #venue-submit { width: 100%; padding-inline: 12px; }
  .yamato-venue .yamato-venue-impact { padding: 34px 0 40px; gap: 20px; }
  .yamato-venue .yamato-venue-impact h3 { font-size: 27px; }
  .yamato-venue .yamato-venue-impact p:not(.venue-eyebrow) { font-size: 13px; }
  .yamato-venue .yamato-venue-impact a { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .yamato-venue *, .yamato-venue *::before, .yamato-venue *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}