/* Event-only visual theme. Guide pages and the editable document stay intact. */
body.yokohama-event {
  --ink: #333333;
  --yellow: #ffe640;
  --blue: #0075c2;
  --green: #0075c2;
  --pink: #0075c2;
  --tomato: #0075c2;
  --cream: #fffefb;
  --warm-white: #fffefb;
  --blush: #edf6fb;
  --venue-navy: #00558d;
  --venue-line: #d8e2e8;
  background: var(--warm-white);
  color: var(--ink);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.85;
}
.yokohama-event :is(h1,h2,h3) { font-weight: 900; line-height: 1.35; }
.yokohama-event :is(p,h1,h2,h3,a) { overflow-wrap: anywhere; }
.yokohama-event :is(a,button):focus-visible { outline: 3px solid #0075c2; outline-offset: 5px; }
.yokohama-event section { scroll-margin-top: 100px; }
.yokohama-event .event-ribbon { background: var(--venue-navy); color: white; font-size: 12px; }
.yokohama-event .topbar { background: var(--blue); color: white; min-height: 86px; padding: 18px 4%; box-shadow: none; border-bottom: 1px solid #ffffff26; }
.yokohama-event .brand { color: inherit; font-size: 32px; font-weight: 900; letter-spacing: -1px; }
.yokohama-event .topbar nav { font-size: 16px; font-weight: 700; gap: 28px; }
.yokohama-event .topbar nav a:hover { color: var(--yellow); }
.yokohama-event .event-back { background: var(--yellow); color: var(--ink); border: 0; border-radius: 0; padding: 12px 20px; font-size: 14px; box-shadow: none; }
.yokohama-event .event-landing-hero { display: grid; grid-template-columns: 1fr; min-height: 730px; isolation: isolate; background: var(--venue-navy); color: white; }
.yokohama-event .event-hero-media { position: absolute; inset: 0; min-height: 0; z-index: -1; }
.yokohama-event .event-hero-media > img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.yokohama-event .event-hero-media:after { background: linear-gradient(90deg,#00416be6,#00416ba6 38%,#00416b0d 85%),linear-gradient(0deg,#003b6299,transparent 65%); }
.yokohama-event .event-hero-copy { background: transparent; justify-content: center; max-width: 850px; min-height: 730px; padding: 65px 7vw 100px; }
.yokohama-event .event-hero-copy:before { content: none; }
.yokohama-event .event-overline { color: var(--yellow); font-size: 14px; letter-spacing: .2em; }
.yokohama-event .event-hero-copy h1 { font-size: clamp(42px,5.2vw,76px); line-height: 1.25; letter-spacing: -.045em; margin: 20px 0; }
.yokohama-event .event-hero-copy h1 small { color: white; font-family: inherit; font-size: 22px; line-height: 1.4; }
.yokohama-event .event-hero-lead { font-size: 20px; line-height: 1.85; }
.yokohama-event .event-hero-facts { border-color: #ffffff66; }
.yokohama-event .event-hero-facts > div { border-color: #ffffff40; }
.yokohama-event .event-hero-facts :is(dt,dd,dd b,dd span) { color: white; }
.yokohama-event .event-hero-actions { gap: 12px; }
.yokohama-event :is(.event-primary-button,.event-secondary-button) { border-radius: 0; padding: 16px 22px; font-size: 15px; box-shadow: none; line-height: 1.5; }
.yokohama-event .event-primary-button { background: var(--yellow); color: var(--ink); border: 2px solid var(--yellow); }
.yokohama-event .event-secondary-button { background: transparent; color: white; border: 2px solid white; }
.yokohama-event .event-hero-ticker { background: var(--yellow); color: var(--ink); border: 0; font-size: 13px; letter-spacing: .12em; }
.yokohama-event .event-hero-ticker-track { align-items: center; min-height: 54px; }
.yokohama-event .event-hero-ticker-item { color: var(--ink); }
.yokohama-event .area-switcher { background: white; border-color: var(--venue-line); }
.yokohama-event .area-switcher > a { min-height: 112px; padding-block: 22px; }
.yokohama-event .area-switcher > a:not(:last-child) { border-color: var(--venue-line); }
.yokohama-event .area-switcher > a:is(:hover,.is-active) { background: var(--blue); color: white; }
.yokohama-event .area-switcher small { font-size: 11px; }
.yokohama-event .area-switcher strong { font-family: inherit; font-size: clamp(24px,3vw,38px); letter-spacing: -.045em; }
.yokohama-event .area-switcher span { font-size: 13px; }
.yokohama-event .event-contents { background: var(--warm-white); padding: 40px max(4vw,24px); border-color: var(--venue-line); }
.yokohama-event .event-contents > p { font-size: 13px; letter-spacing: .2em; }
.yokohama-event .event-contents a { font-size: 14px; line-height: 1.5; min-height: 64px; border-color: var(--venue-line); }
.yokohama-event .event-contents a span { font-size: 12px; }
.yokohama-event :is(.event-overview,.event-location-section,.event-food-section,.day-guide-section,.event-access-section,.event-rules-section) { padding: 100px max(7vw,28px); }
.yokohama-event .event-section-heading > p { font-size: 14px; letter-spacing: .2em; margin-bottom: 18px; }
.yokohama-event .event-section-heading h2 { font-size: clamp(36px,4.5vw,66px); letter-spacing: -.045em; line-height: 1.35; }
.yokohama-event .event-section-heading > span { font-size: 16px; line-height: 1.85; }
.yokohama-event .event-overview { background: var(--warm-white); gap: 6vw; }
.yokohama-event .event-overview-copy > p { font-size: 18px; line-height: 1.95; }
.yokohama-event .event-participant-tags span { background: #edf6fb; color: var(--venue-navy); border: 1px solid var(--venue-line); border-radius: 0; font-size: 14px; }
.yokohama-event .ticket-section { background: var(--yellow); color: var(--ink); padding: 80px max(7vw,28px); }
.yokohama-event .ticket-heading :is(h2,span,p) { color: var(--ink); }
.yokohama-event .ticket-heading h2 { font-size: clamp(32px,4vw,56px); }
.yokohama-event .ticket-heading > span { font-size: 16px; }
.yokohama-event .ticket-heading > p { font-size: 15px; }
.yokohama-event .ticket-list article { background: white; border: 1px solid #33333326; border-radius: 0; box-shadow: none; }
.yokohama-event .ticket-list article h3 { font-size: 18px; }
.yokohama-event .ticket-list article > span { font-size: 14px; }
.yokohama-event .ticket-list article > b { color: var(--venue-navy); }
.yokohama-event .ticket-link { color: var(--ink); font-size: 15px; }
.yokohama-event .event-location-section { background: var(--blue); color: white; }
.yokohama-event .event-section-heading.is-light > p,
.yokohama-event .event-section-heading.is-light h2 em { color: var(--yellow); }
.yokohama-event .event-section-heading.is-light > span { color: white; }
.yokohama-event .location-feature { border-radius: 0; box-shadow: none; border: 0; }
.yokohama-event .location-photo { height: 320px; }
.yokohama-event .location-copy { color: var(--ink); padding: 30px; }
.yokohama-event .location-copy h3 { font-size: 28px; }
.yokohama-event .location-copy :is(p,li) { font-size: 16px; line-height: 1.85; }
.yokohama-event .location-copy > a { border-radius: 0; font-size: 16px; }
.yokohama-event :is(.location-status,.location-photo > span) { border-radius: 0; font-size: 12px; }
.yokohama-event .location-note { background: var(--venue-navy); border-radius: 0; padding: 24px; }
.yokohama-event .location-note p { font-size: 15px; }
.yokohama-event .location-note strong { font-size: 16px; }
.yokohama-event .event-food-section { background: var(--warm-white); }
.yokohama-event .food-summary { border: 1px solid var(--venue-line); border-radius: 0; box-shadow: none; padding: 14px; }
.yokohama-event .food-summary span { font-size: 14px; }
.yokohama-event .food-summary strong { color: var(--blue); }
.yokohama-event .facility-entry { border-radius: 0; padding: 32px; }
.yokohama-event .facility-entry.is-ybp { background: var(--blue); }
.yokohama-event .facility-entry.is-qlay { background: var(--venue-navy); }
.yokohama-event .facility-entry:after { content: none; }
.yokohama-event .facility-entry :is(p,span) { font-size: 16px; line-height: 1.85; }
.yokohama-event .facility-entry small { font-size: 12px; }
.yokohama-event .event-featured-shops > article { border: 1px solid var(--venue-line); border-radius: 0; box-shadow: none; }
.yokohama-event .event-shop-photo { height: 240px; }
.yokohama-event .event-shop-photo > span { border-radius: 0; font-size: 12px; }
.yokohama-event .event-featured-shops > article > div { padding: 26px; }
.yokohama-event .event-featured-shops > article > div > small { font-size: 12px; }
.yokohama-event .event-featured-shops h3 { font-size: 22px; }
.yokohama-event .event-featured-shops article p { font-size: 15px; line-height: 1.85; }
.yokohama-event .event-shop-link { font-size: 14px; }
.yokohama-event .all-shop-button { background: var(--yellow); color: var(--ink); border-radius: 0; box-shadow: none; font-size: 17px; padding: 20px 26px; }
.yokohama-event .day-guide-section { background: var(--venue-navy); }
.yokohama-event .day-guide-grid article { border-radius: 0; padding: 28px; }
.yokohama-event .day-guide-grid article > b { border-radius: 0; color: var(--ink); }
.yokohama-event .day-guide-grid article > span { font-size: 12px; }
.yokohama-event .day-guide-grid p { font-size: 16px; }
.yokohama-event .day-guide-grid small { font-size: 13px; line-height: 1.85; margin-top: 24px; }
.yokohama-event .event-access-section { background: white; }
.yokohama-event .access-destination { background: var(--yellow); border-radius: 0; padding: 32px; }
.yokohama-event .access-destination :is(p,a) { font-size: 16px; }
.yokohama-event .access-destination > small { font-size: 12px; }
.yokohama-event .access-destination a { background: var(--blue); border-radius: 0; margin-top: 24px; }
.yokohama-event .access-route-list article { border-radius: 0; border-color: var(--venue-line); box-shadow: none; }
.yokohama-event .access-route-list article > b { border-radius: 0; }
.yokohama-event .access-route-list small { font-size: 12px; }
.yokohama-event .access-route-list h3 { font-size: 22px; }
.yokohama-event .access-caution { background: #edf6fb; border-radius: 0; }
.yokohama-event .access-caution span { font-size: 14px; line-height: 1.85; }
.yokohama-event .event-rules-section { background: var(--venue-navy); }
.yokohama-event .event-rules-grid article { background: #ffffff0f; border: 1px solid #ffffff40; border-radius: 0; padding: 28px; }
.yokohama-event .event-rules-grid h3 { font-size: 20px; }
.yokohama-event .event-rules-grid p { color: white; font-size: 15px; line-height: 1.85; }
.yokohama-event .event-final-cta { background: var(--yellow); color: var(--ink); border-radius: 0; box-shadow: none; padding: 40px; gap: 36px; }
.yokohama-event .event-final-cta p { font-size: 16px; }
.yokohama-event .event-final-cta a { border-radius: 0; font-size: 16px; }
.yokohama-event .event-final-cta a:first-child { background: var(--blue); border-color: var(--blue); }
.yokohama-event footer { background: var(--venue-navy); color: white; }
.yokohama-event footer :is(p,a) { font-size: 14px; line-height: 1.85; }
.yokohama-event .yokohama-edit { background: var(--yellow); text-align: right; }
.yokohama-event .yokohama-edit a { color: var(--ink); }
.yokohama-mobile-home,
.yokohama-mobile-menu { display: none; }
.yokohama-event .yokohama-ticket-section { padding: 42px max(7vw,28px); }
.yokohama-ticket-disclosure { border-block: 1px solid #33333340; }
.yokohama-accordion-summary {
  display: grid;
  grid-template-columns: minmax(150px,.45fr) minmax(0,1fr) auto;
  align-items: center;
  gap: 24px;
  min-height: 112px;
  padding: 24px 0;
  cursor: pointer;
  list-style: none;
}
.yokohama-ticket-summary::-webkit-details-marker,
.yokohama-accordion-summary::-webkit-details-marker { display: none; }
.yokohama-accordion-kicker { color: var(--blue); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.yokohama-accordion-summary h2 { margin: 0; font-size: clamp(28px,3.5vw,48px); }
.yokohama-accordion-toggle {
  width: 94px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--blue);
  color: white;
  font-size: 13px;
  font-weight: 900;
}
.yokohama-accordion-toggle::after { content: "開く ＋"; }
.yokohama-accordion[open] > .yokohama-accordion-summary .yokohama-accordion-toggle::after { content: "閉じる −"; }
.yokohama-ticket-summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 80px;
  padding: 25px 0;
  cursor: pointer;
  list-style: none;
}
.yokohama-ticket-summary h2 { margin: 0; font-size: clamp(30px,4vw,48px); }
.yokohama-ticket-toggle {
  position: absolute;
  top: calc(100% + 82px);
  left: 50%;
  z-index: 1;
  transform: translateX(-50%);
  background: #ed6ea0;
  border: 1px solid var(--ink);
  border-radius: 999px;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 50px;
  padding: 10px 26px;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 5px 12px #33333326;
}
.yokohama-ticket-toggle::after { content: "すべての券種を見る ＋"; }
.yokohama-ticket-disclosure[open] .yokohama-ticket-toggle { position: static; transform: none; margin-left: auto; }
.yokohama-ticket-disclosure[open] .yokohama-ticket-toggle::after { content: "閉じる −"; }
.yokohama-ticket-teaser {
  height: 140px;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  opacity: .6;
  mask-image: linear-gradient(#000 0%,#0008 40%,transparent 95%);
  -webkit-mask-image: linear-gradient(#000 0%,#0008 40%,transparent 95%);
  padding: 20px 10px;
}
.yokohama-ticket-teaser > p { color: #806f20; margin: 0 0 10px; font-size: 14px; }
.yokohama-ticket-teaser > div { border-top: 1px solid #33333340; display: flex; justify-content: space-between; gap: 25px; padding: 20px 0; font-size: 17px; }
.yokohama-ticket-teaser span { white-space: nowrap; }
.yokohama-ticket-disclosure[open] + .yokohama-ticket-teaser { display: none; }
.yokohama-ticket-body { padding: 12px 0 54px; }
.yokohama-ticket-note { margin: 0 auto 28px; max-width: 1200px; font-size: 15px; }
.yokohama-event .yokohama-ticket-body .ticket-list { grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); margin-top: 0; }
.yokohama-accordion { border-bottom: 1px solid var(--venue-line); background: white; }
.yokohama-accordion-summary { background: white; color: var(--ink); padding-inline: max(7vw,28px); }
.yokohama-accordion-body > section { margin: 0; }
.yokohama-event .event-rules-grid article > b,
.yokohama-event .access-status > b { display: none; }
@media (max-width: 1100px) {
  .yokohama-event .topbar nav { gap: 16px; font-size: 14px; }
  .yokohama-event .event-back { padding: 12px; }
  .yokohama-event .event-contents > div { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .yokohama-event .event-contents a { border-block: 1px solid var(--venue-line); }
  .yokohama-event .day-guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  body.yokohama-event { font-size: 16px; }
  .yokohama-event .event-ribbon,
  .yokohama-event .topbar { display: none; }
  .yokohama-mobile-home,
  .yokohama-mobile-menu { display: block; position: fixed; top: max(12px,env(safe-area-inset-top)); z-index: 1100; }
  .yokohama-mobile-home { left: max(12px,env(safe-area-inset-left)); }
  .yokohama-mobile-menu { right: max(12px,env(safe-area-inset-right)); }
  .yokohama-mobile-home,
  .yokohama-mobile-menu > summary { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; color: white; cursor: pointer; list-style: none; }
  .yokohama-mobile-menu > summary::-webkit-details-marker { display: none; }
  .yokohama-mobile-home svg,
  .yokohama-mobile-menu > summary svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 2px 5px #002c49); }
  .yokohama-mobile-menu > nav { position: fixed; inset: 0; height: 100dvh; overflow-y: auto; background: var(--venue-navy); color: white; padding: 84px 28px 32px; display: flex; flex-direction: column; }
  .yokohama-mobile-menu:not([open]) > nav { display: none; }
  .yokohama-mobile-menu > nav p { color: var(--yellow); letter-spacing: .2em; font-size: 13px; }
  .yokohama-mobile-menu > nav a { color: white; padding: 16px 0; border-bottom: 1px solid #ffffff40; font-size: 20px; }
  .yokohama-event .brand { font-size: 26px; }
  .yokohama-event .event-back { padding: 10px 12px; font-size: 12px; margin-left: auto; }
  .yokohama-event .event-landing-hero { display: grid; min-height: 780px; }
  .yokohama-event .event-hero-media { position: absolute; min-height: 0; }
  .yokohama-event .event-hero-media > img { object-position: 65% 25%; }
  .yokohama-event .event-hero-media:after { background: linear-gradient(0deg,#002c49f5,#002c49c7 55%,#002c4926); }
  .yokohama-event .event-hero-copy { min-height: 780px; max-width: 100%; justify-content: flex-start; padding: 82px 24px 86px; }
  .yokohama-event .event-overline { font-size: 11px; }
  .yokohama-event .event-hero-copy h1 { font-size: clamp(32px,9vw,48px); line-height: 1.35; }
  .yokohama-event .event-hero-copy h1 small { font-size: 18px; }
  .yokohama-event .event-hero-lead { font-size: 18px; margin-top: clamp(110px,22vh,190px); }
  .yokohama-event .event-hero-facts { margin-top: 20px; }
  .yokohama-event .event-hero-actions a { font-size: 14px; min-height: 52px; padding: 13px 16px; }
  .yokohama-event .event-hero-ticker { font-size: 11px; }
  .yokohama-event .area-switcher { padding-inline: 0; }
  .yokohama-event .area-switcher > a { min-height: 96px; padding: 16px 10px; }
  .yokohama-event .area-switcher strong { font-size: clamp(16px,4.6vw,23px); }
  .yokohama-event .area-switcher small { font-size: 8px; }
  .yokohama-event .event-contents { padding: 30px 20px; }
  .yokohama-event .event-contents > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .yokohama-event .event-contents a { font-size: 12px; padding: 10px 8px; gap: 6px; }
  .yokohama-event :is(.event-overview,.event-location-section,.event-food-section,.day-guide-section,.event-access-section,.event-rules-section) { padding: 64px 24px; }
  .yokohama-event .event-section-heading h2 { font-size: clamp(30px,8vw,40px); }
  .yokohama-event .event-section-heading > span { font-size: 14px; }
  .yokohama-event .event-overview { gap: 32px; }
  .yokohama-event .event-overview-copy > p { font-size: 16px; }
  .yokohama-event .ticket-section { padding: 60px 20px; }
  .yokohama-event .yokohama-ticket-section { padding: 38px 20px; }
  .yokohama-accordion-summary { grid-template-columns: minmax(0,1fr) auto; gap: 10px; min-height: 92px; padding-block: 18px; }
  .yokohama-accordion-kicker { grid-column: 1; font-size: 9px; }
  .yokohama-accordion-summary h2 { grid-column: 1; font-size: 25px; }
  .yokohama-accordion-toggle { grid-column: 2; grid-row: 1/3; width: 70px; min-height: 38px; font-size: 11px; }
  .yokohama-ticket-summary { min-height: 80px; padding: 22px 0; }
  .yokohama-ticket-summary h2 { font-size: 30px; }
  .yokohama-ticket-toggle { top: calc(100% + 78px); min-height: 46px; padding-inline: 20px; }
  .yokohama-ticket-disclosure[open] .yokohama-ticket-toggle { min-width: 80px; }
  .yokohama-accordion-summary { padding-inline: 20px; }
  .yokohama-event .ticket-list article { padding: 16px 12px; gap: 8px; }
  .yokohama-event .ticket-list article h3 { font-size: 15px; }
  .yokohama-event .ticket-list article > span { font-size: 12px; }
  .yokohama-event .ticket-list article > b { font-size: 20px; }
  .yokohama-event .location-photo { height: 245px; }
  .yokohama-event .location-copy { padding: 24px; }
  .yokohama-event .location-copy h3 { font-size: 24px; }
  .yokohama-event .location-note { padding: 18px; }
  .yokohama-event .food-summary { padding: 6px; }
  .yokohama-event .food-summary span { font-size: 11px; }
  .yokohama-event .facility-entry { padding: 26px; }
  .yokohama-event .day-guide-grid { grid-template-columns: minmax(0,1fr); }
  .yokohama-event .access-route-list article { grid-template-columns: 34px minmax(0,1fr) auto; gap: 8px; padding: 12px; }
  .yokohama-event .access-route-list article > b { width: 34px; height: 34px; }
  .yokohama-event .access-route-list h3 { font-size: 17px; }
  .yokohama-event .access-route-list article > strong { font-size: 12px; }
  .yokohama-event .event-final-cta { padding: 28px 22px; }
  .yokohama-event .event-final-cta h2 { font-size: 32px; }
  .yokohama-event .event-final-cta a { font-size: 14px; padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .yokohama-event * { scroll-behavior: auto; transition: none; }
}

/* Compact event navigation and shared Yokohama presentation. */
.yokohama-event .yokohama-hero-meta {
  border: 0;
  margin-top: 30px;
}
.yokohama-event .yokohama-hero-meta .baba-hero-date {
  border: 0;
  display: flex;
  gap: 20px;
  padding: 0;
}
.yokohama-event .yokohama-hero-meta .baba-hero-date strong {
  font-size: clamp(2.1rem,4vw,3.5rem);
  line-height: 1.1;
  letter-spacing: -.04em;
}
.yokohama-event .yokohama-hero-meta .baba-hero-date span {
  border: 0;
  font-size: 16px;
  line-height: 1.5;
  padding: 0;
  text-align: left;
}
.yokohama-event .yokohama-hero-meta > p { border: 0; padding: 0; }
.yokohama-event .yokohama-hero-venue { margin: 12px 0 6px; font-size: 16px; }
.yokohama-event .yokohama-hero-address { margin: 0; font-size: 13px; }

.yokohama-event .yokohama-ticket-section { background: var(--blue); color: white; }
.yokohama-event .yokohama-ticket-disclosure { border-color: #ffffff66; }
.yokohama-event .yokohama-ticket-summary h2,
.yokohama-event .yokohama-ticket-note,
.yokohama-event .yokohama-ticket-teaser > p { color: white; }
.yokohama-event .yokohama-ticket-teaser > div { border-color: #ffffff66; color: white; }

.yokohama-event .event-contents { text-align: left; }
.yokohama-event .event-contents > p {
  max-width: none;
  margin: 0 0 18px;
  font-size: 0;
  letter-spacing: 0;
}
.yokohama-event .event-contents > p::after {
  content: "目次";
  color: var(--ink);
  font-size: 22px;
  font-weight: 900;
}
.yokohama-event .event-contents > div {
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px 26px;
  max-width: none;
  margin: 0;
}
.yokohama-event .event-contents a {
  border: 0 !important;
  display: flex;
  justify-content: flex-start;
  gap: 7px;
  min-height: 0;
  padding: 4px 0;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.yokohama-event .event-contents a b { margin-left: 0; }

.yokohama-event .area-switcher {
  grid-template-columns: repeat(3,minmax(0,1fr)) minmax(130px,.55fr);
  padding: 0;
}
.yokohama-event .area-switcher > a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 72px;
  padding: 10px 18px;
}
.yokohama-event .area-switcher strong {
  font-size: clamp(13px,1.5vw,17px);
  letter-spacing: 0;
  line-height: 1.25;
}
.yokohama-event .area-switcher > .area-switcher-ticket {
  background: var(--yellow);
  color: var(--ink);
  justify-content: space-between;
  gap: 16px;
}
.yokohama-event .area-switcher-ticket span { color: inherit; display: inline; font-size: 17px; }
.yokohama-event .area-switcher > .area-switcher-ticket:hover { background: #ffec76; color: var(--ink); }

.yokohama-back-top {
  position: fixed;
  right: 18px;
  bottom: calc(var(--fixed-area-switcher-height) + 16px);
  z-index: 1001;
  width: 54px;
  height: 60px;
  border: 1px solid #ffffff66;
  border-radius: 12px;
  background: var(--venue-navy);
  color: white;
  box-shadow: 0 4px 20px #0003;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  line-height: 1;
  gap: 3px;
  cursor: pointer;
}
.yokohama-back-top > span { font-size: 28px; }
.yokohama-back-top small { font-size: 11px; }
.yokohama-mobile-menu-close { display: none; }

.yokohama-event footer,
.yokohama-event footer * { color: white !important; }

@media (max-width: 700px) {
  .yokohama-event .yokohama-hero-meta .baba-hero-date { gap: 12px; }
  .yokohama-event .yokohama-hero-meta .baba-hero-date strong { font-size: clamp(2rem,9vw,2.8rem); }
  .yokohama-event .yokohama-hero-meta .baba-hero-date span { font-size: 14px; }
  .yokohama-event .event-contents > div { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 18px; }
  .yokohama-event .area-switcher { grid-template-columns: minmax(0,1.4fr) minmax(0,.7fr) minmax(0,1fr) 76px; }
  .yokohama-event .area-switcher > a { min-height: 56px; padding: 6px 3px; flex-direction: row; justify-content: center; text-align: center; gap: 0; }
  .yokohama-event .area-switcher strong { font-size: clamp(14px,3.9vw,18px); white-space: nowrap; }
  .yokohama-event .area-switcher > .area-switcher-ticket { justify-content: center; gap: 4px; }
  .yokohama-event .area-switcher-ticket strong { font-size: 12px; }
  .yokohama-event .area-switcher-ticket span { font-size: 13px; }
  .yokohama-back-top { right: 12px; bottom: calc(var(--fixed-area-switcher-height) + 12px); width: 48px; height: 54px; }
  .yokohama-mobile-menu-close {
    position: absolute;
    top: max(16px,env(safe-area-inset-top));
    right: max(18px,env(safe-area-inset-right));
    z-index: 2;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 1px solid #ffffff66;
    border-radius: 50%;
    color: white;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
  }
}

/* One consistent white accordion surface across every event section. */
.yokohama-event .yokohama-accordion-summary {
  grid-template-columns: minmax(0,1fr) auto;
}
.yokohama-event .yokohama-accordion-kicker,
.yokohama-event .yokohama-accordion-body .event-section-heading > p,
.yokohama-event .event-contents a > span,
.yokohama-event .event-contents a > b { display: none; }
.yokohama-event .yokohama-accordion-summary h2 {
  grid-column: 1;
  font-size: clamp(30px,3.5vw,48px);
}
.yokohama-event .yokohama-accordion-toggle {
  grid-column: 2;
  grid-row: 1;
}
.yokohama-event .yokohama-accordion-body > section,
.yokohama-event .yokohama-accordion-body .event-location-section,
.yokohama-event .yokohama-accordion-body .event-food-section,
.yokohama-event .yokohama-accordion-body .day-guide-section,
.yokohama-event .yokohama-accordion-body .event-access-section,
.yokohama-event .yokohama-accordion-body .event-rules-section {
  background: white;
  color: var(--ink);
}
.yokohama-event .yokohama-accordion-body .event-section-heading h2 { color: var(--ink); }
.yokohama-event .yokohama-accordion-body .event-section-heading h2 em { color: var(--blue); }
.yokohama-event .yokohama-accordion-body .event-section-heading > span { color: #687184; }
.yokohama-event .yokohama-accordion-body .location-note {
  background: white;
  border: 1px solid var(--venue-line);
  color: var(--ink);
}
.yokohama-event .yokohama-accordion-body .location-note :is(p,strong) { color: var(--ink); }
.yokohama-event .yokohama-accordion-body .day-guide-grid article,
.yokohama-event .yokohama-accordion-body .event-rules-grid article {
  background: white;
  border: 1px solid var(--venue-line);
  color: var(--ink);
}
.yokohama-event .yokohama-accordion-body .event-rules-grid :is(h3,p) { color: var(--ink); }
.yokohama-event .yokohama-accordion-body .event-rules-grid article > small { color: var(--blue); }
.yokohama-event .yokohama-accordion-body .food-summary,
.yokohama-event .yokohama-accordion-body .event-featured-shops,
.yokohama-event .yokohama-accordion-body .all-shop-button,
.yokohama-event .yokohama-accordion-body .facility-entry > small { display: none; }
.yokohama-event .yokohama-accordion#rules { margin-bottom: 80px; }

@media (max-width: 700px) {
  .yokohama-event .yokohama-accordion-summary h2 { font-size: 28px; }
  .yokohama-event .yokohama-accordion#rules { margin-bottom: 56px; }
}

/* Venue pages keep restaurant discovery inside their own FOOD & BREAK section. */
.yokohama-event .facility-page .shop-breadcrumb,
.yokohama-event .facility-page .facility-all-link,
.yokohama-event .facility-page a[href*="/guide/shops/?area="] { display: none; }
.yokohama-event .directory-card-body > blockquote,
.yokohama-event .shop-detail-copy > blockquote,
.yokohama-event .event-featured-shops article p,
.yokohama-event .facility-shop-grid > article > div > p { display: none; }
.yokohama-event .facility-shop-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 7px 0 14px;
}
.yokohama-event .facility-shop-title h3 {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
}
.yokohama-event .shop-entry-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: fit-content;
  min-height: 24px;
  border-radius: 999px;
  padding: 4px 9px;
  color: white;
  background: #687184;
  white-space: nowrap;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}
.yokohama-event .shop-entry-badge::before { content: "●"; font-size: 7px; }
.yokohama-event .shop-entry-badge.is-ok { background: #16885d; }
.yokohama-event .shop-entry-badge.is-pending { background: #806718; }
.yokohama-event .facility-shop-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin-top: 0;
  border: 0;
  border-radius: 999px;
  padding: 8px 16px;
  color: white;
  background: var(--blue);
}
.yokohama-event .facility-shop-link::after { content: none; }
.yokohama-event .detail-area-links {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  width: min(760px,calc(100% - 36px));
  margin-inline: auto;
}
.yokohama-event .detail-back.detail-area-links { padding-inline: 0; }
.yokohama-event .detail-area-links a { min-width: 0; text-align: center; }
.yokohama-event .event-area-links { max-width: 1200px; margin-top: 28px; }
.yokohama-event .area-shop-filter {
  max-width: 1200px;
  margin: 34px auto 24px;
  padding: 22px;
  border: 1px solid var(--venue-line);
  background: #f7fbfe;
}
.yokohama-event .area-shop-search { display: grid; gap: 8px; }
.yokohama-event .area-shop-search > span {
  color: var(--blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}
.yokohama-event .area-shop-search input {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--venue-line);
  background: white;
  color: var(--ink);
  padding: 11px 15px;
  font-size: 15px;
  font-weight: 700;
}
.yokohama-event .area-shop-filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.yokohama-event .area-shop-filter-buttons button {
  min-height: 40px;
  border: 1px solid var(--blue);
  background: white;
  color: var(--blue);
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.yokohama-event .area-shop-filter-buttons button:is(:hover,.is-active) {
  background: var(--blue);
  color: white;
}
.yokohama-event .area-shop-result {
  margin: 16px 0 0;
  color: #687184;
  font-size: 13px;
  font-weight: 700;
}
.yokohama-event .area-shop-result strong { color: var(--blue); font-size: 22px; margin-right: 4px; }
.yokohama-event .area-shop-empty {
  margin: 16px 0 0;
  padding: 18px;
  border: 1px solid var(--venue-line);
  background: white;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}

@media (max-width: 700px) {
  .yokohama-event .detail-area-links { grid-template-columns: 1fr; }
  .yokohama-event .area-shop-filter { margin: 26px auto 18px; padding: 16px; }
  .yokohama-event .area-shop-filter-buttons { display: grid; grid-template-columns: 1fr 1fr; }
  .yokohama-event .area-shop-filter-buttons button { padding-inline: 8px; font-size: 11px; }
}

/* Yokohama: unified hero, direct purchase action, and food announcement. */
.yokohama-event .event-hero-copy { max-width: 100%; width: 100%; }
.yokohama-event .event-hero-copy h1 { font-size: clamp(36px,6.2vw,100px); line-height: 1.25; margin: 0 0 24px; }
.yokohama-event .event-overline { order: initial; margin: 0 0 24px; }
.yokohama-event .event-hero-lead { font-size: clamp(22px,3.4vw,52px); line-height: 1.5; max-width: 980px; margin: 0 0 28px; }
.yokohama-event .yokohama-hero-meta .baba-hero-date span { border-left: 1px solid #ffffff80; padding-left: 22px; }
.yokohama-event .ticket-link.yokohama-purchase { display: flex; justify-content: center; align-items: center; gap: 30px; background: var(--yellow); color: var(--ink); min-height: 78px; margin-top: 32px; padding: 20px 26px; font-size: 20px; font-weight: 900; border: 0; text-decoration: none; }
.yokohama-event .ticket-link.yokohama-purchase:hover { background: #ffed76; }
.yokohama-event .yokohama-coming-soon { position: relative; overflow: hidden; text-align: center; border: 1px solid #0075c2; background: linear-gradient(120deg,#f4fbff,#dcefff); color: #00558d; padding: 44px 24px; }
.yokohama-event .yokohama-coming-soon strong { font-size: clamp(32px,7vw,80px); line-height: 1.25; letter-spacing: .08em; display: block; }
.yokohama-event .yokohama-coming-soon p { font-size: 16px; margin: 14px 0 0; }
.yokohama-event .yokohama-access-map { padding: 52px max(7vw,24px); background: #fffefb; color: #333; }
.yokohama-event .yokohama-access-map h2 { font-size: clamp(26px,3vw,40px); margin-bottom: 24px; }
.yokohama-event .yokohama-access-map iframe { width: 100%; display: block; height: 450px; }
.yokohama-event .event-hero-media > img.yokohama-slide { opacity: 0; transition: opacity 1.2s ease; }
.yokohama-event .event-hero-media > img.yokohama-slide.is-active { opacity: 1; }
@media (max-width:700px) {
  .yokohama-event .event-hero-copy h1 { font-size: clamp(32px,8vw,52px); }
  .yokohama-event .event-hero-lead { font-size: clamp(20px,4.6vw,28px); }
  .yokohama-event .yokohama-hero-meta .baba-hero-date { gap: 12px; }
  .yokohama-event .yokohama-hero-meta .baba-hero-date span { padding-left: 12px; }
  .yokohama-event .ticket-link.yokohama-purchase { font-size: 17px; min-height: 64px; }
  .yokohama-event .yokohama-access-map iframe { height: 340px; }
}
@media (prefers-reduced-motion: reduce) {
  .yokohama-event .event-hero-media > img.yokohama-slide { transition: none; }
}

.yokohama-event .yokohama-participation-card { background:#edf6fb; color:var(--ink); padding:64px max(7vw,24px); }
.yokohama-participation-card-inner { max-width:1180px; margin-inline:auto; }
.yokohama-event .yokohama-participation-card h2 { font-size:clamp(28px,3.5vw,48px); margin:0 0 28px; }
.yokohama-participation-card-image { display:block; max-width:780px; margin-inline:auto; }
.yokohama-participation-card-image img { width:100%; height:auto; max-height:700px; object-fit:contain; display:block; }
.yokohama-participation-card-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin-top:28px; }
.yokohama-participation-card-actions a { display:inline-flex; align-items:center; justify-content:center; gap:24px; background:var(--yellow); color:var(--ink); padding:16px 24px; font-size:16px; font-weight:900; }
.yokohama-participation-card-inner > p { text-align:center; font-size:14px; margin:20px 0 0; }
@media(max-width:700px) {
 .yokohama-event .yokohama-participation-card { padding:48px 24px; }
 .yokohama-participation-card-actions { flex-direction:column; }
 .yokohama-participation-card-actions a { font-size:14px; padding:14px 16px; }
}

/* Organizer-provided shop permissions: indoor and outdoor rules stay distinct. */
.qlay-zone-heading { max-width:1200px; margin:48px auto 22px; border-bottom:3px solid #0075c2; }
.qlay-zone-heading h3 { font-size:28px; margin:0 0 12px; color:#00558d; }
.qlay-shop-grid { max-width:1200px; margin-inline:auto; }
.qlay-shop-grid .facility-shop-title { display:block; }
.qlay-shop-grid .facility-shop-title h3 { min-height:0; margin-bottom:16px; font-size:22px; }
.qlay-shop-status { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.qlay-status { display:inline-flex; align-items:center; padding:8px 12px; border:1px solid; font-size:13px; font-weight:800; line-height:1.6; overflow-wrap:anywhere; }
.qlay-status-yes { background:#e8f5ff; border-color:#91c3e5; color:#00558d; }
.qlay-status-no { background:#f5f5f5; border-color:#c6cbd1; color:#414b58; }
.qlay-status-soon { background:#e4f2fc; border-color:#0075c2; color:#00558d; font-size:16px; letter-spacing:.06em; }
.qlay-shop-note { margin:12px 0; font-size:14px; line-height:1.9; color:#46596a; }
.qlay-shop-photo-placeholder { width:100%; height:100%; min-height:220px; background:linear-gradient(135deg,#e3f3ff,#bddff4); color:#0075c2; display:flex; flex-direction:column; align-items:center; justify-content:center; font:900 66px/1.2 Arial,sans-serif; }
.qlay-shop-photo-placeholder small { font-size:16px; letter-spacing:.16em; margin-top:12px; }
.qlay-detail-hero .shop-detail-photo .qlay-shop-photo-placeholder { min-height:380px; }
.yokohama-event .shop-access-section .qlay-shop-status { max-width:1200px; margin:24px auto; }
.yokohama-event .shop-access-section .qlay-shop-note { max-width:1200px; margin-inline:auto; }
@media(max-width:700px) { .qlay-zone-heading h3{font-size:24px}.qlay-shop-grid .facility-shop-title h3{font-size:20px}.qlay-status{font-size:12px}.qlay-status-soon{font-size:15px} }

.qlay-shop-grid>.qlay-zone-heading{grid-column:1/-1;width:100%;margin:28px 0 0}
.yokohama-event .facility-shop-grid>article>div>p.qlay-shop-note{display:block}

.yokohama-event .facility-shop-photo img.qlay-image-contain,
.yokohama-event .shop-detail-photo img.qlay-image-contain{object-fit:contain;background:#fff;padding:14px}

/* Confirmed shop checks use simple divided rows instead of icon cards. */
.yokohama-event.qlay-confirmed-detail .comfort-grid{display:block;gap:0}
.yokohama-event.qlay-confirmed-detail .comfort-grid>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;background:transparent;border:0;border-bottom:1px solid #cbd7df;border-radius:0;box-shadow:none;margin:0;padding:22px 0;min-height:0}
.yokohama-event.qlay-confirmed-detail .comfort-grid>article:first-child{border-top:1px solid #cbd7df}
.yokohama-event.qlay-confirmed-detail .participant-manners ol{display:block;padding:0;list-style:none}
.yokohama-event.qlay-confirmed-detail .participant-manners li{display:block;min-height:0;background:transparent;border:0;border-bottom:1px solid #cbd7df;border-radius:0;box-shadow:none;margin:0;padding:22px 0}
.yokohama-event.qlay-confirmed-detail .participant-manners li:first-child{border-top:1px solid #cbd7df}
.yokohama-event.qlay-confirmed-detail .comfort-grid>article{grid-template-areas:none}
.yokohama-event.qlay-confirmed-detail .comfort-grid>article>div,
.yokohama-event.qlay-confirmed-detail .comfort-grid>article>em{grid-area:auto}

/* Shop details share the event page's blue, yellow and neutral palette. */
.yokohama-event .shop-detail-page { background:var(--warm-white); color:var(--ink); }
.yokohama-event .shop-detail-page :is(.shop-detail-hero,.shop-story-section,.shop-access-section,.comfort-section,.nearby-shops) { background:var(--warm-white); color:var(--ink); }
.yokohama-event .shop-detail-page :is(.shop-benefit-section,.participant-manners) { background:#edf6fb; color:var(--ink); }
.yokohama-event .shop-detail-page :is(.eyebrow,.kicker,.shop-detail-genre,.shop-info-panel>p) { color:var(--blue); }
.yokohama-event .shop-detail-page :is(.shop-section-heading,.shop-story-copy,.comfort-section,.participant-manners,.nearby-shops) h2 { color:var(--ink); }
.yokohama-event .shop-detail-page .shop-section-heading>p:last-child,
.yokohama-event .shop-detail-page .shop-benefit-section>div:first-child>p:last-child,
.yokohama-event .shop-detail-page .comfort-section>div:first-child>p:last-child { color:#687184; }
.yokohama-event .shop-detail-page :is(.shop-quick-facts,.shop-quick-facts>div,.shop-info-panel dl>div,.benefit-panel dl>div,.nearby-grid a,.comfort-grid article) { border-color:var(--venue-line); }
.yokohama-event .shop-detail-page :is(.shop-quick-facts dt,.shop-info-panel>small,.benefit-panel dt,.comfort-grid small,.comfort-grid em,.participant-manners li span,.nearby-grid small) { color:#687184; }
.yokohama-event .shop-detail-page :is(.shop-info-panel,.benefit-panel) { background:white; border-color:var(--venue-line); box-shadow:8px 8px 0 var(--yellow); }
.yokohama-event .shop-detail-page .benefit-panel>.access-status { background:#edf6fb; border-color:var(--venue-line); color:var(--venue-navy); }
.yokohama-event .shop-detail-page :is(.comfort-grid article>span,.comfort-grid em) { background:#edf6fb; color:var(--venue-navy); }
.yokohama-event .shop-detail-page .shop-detail-actions a.is-map,
.yokohama-event .shop-detail-page .shop-info-links .is-map { background:var(--yellow); color:var(--ink); border-color:var(--yellow); }
.yokohama-event .shop-detail-page .shop-detail-actions .is-rule { background:white; color:var(--blue); border-color:var(--blue); }
.yokohama-event .shop-detail-page .shop-info-links a { color:var(--blue); }
.yokohama-event .shop-detail-page .shop-info-links .is-map { color:var(--ink); }
.yokohama-event .shop-detail-page .status-meaning small { color:#687184; }
.yokohama-event .shop-detail-page .shop-story-copy li { background:#edf6fb; }
.yokohama-event .shop-detail-page .shop-story-copy li:before { background:var(--blue); color:white; }
.yokohama-event .shop-detail-page .access-status.access-allowed { background:#edf6fb; color:var(--venue-navy); border-color:#91c3e5; }
.yokohama-event .shop-detail-page .access-status.access-allowed :is(em,strong,small) { color:var(--venue-navy); }
