/* v459 | 清花祭 当日アプリ 露店・展示ページ。既存マップとタイムテーブルを変更しない。 */
body.mode-live .guide-screen .guide-workspace {
  box-sizing: border-box;
  width: min(1120px, 100%);
  flex: 1 1 auto;
  min-height: 0;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.mode-live .guide-screen .guide-utility {
  flex: 0 0 auto;
  min-width: 0;
  padding: 16px 20px 13px;
  border: 1px solid rgba(47, 112, 91, .13);
  border-radius: 22px;
  background: rgba(255,255,255,.79);
  box-shadow: 0 10px 28px rgba(30, 85, 64, .045);
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(260px, 1.25fr) auto;
  gap: 12px 20px;
  align-items: center;
}
body.mode-live .guide-screen .guide-intro{display:flex;flex-direction:column;gap:3px;min-width:0}
body.mode-live .guide-screen .guide-intro strong{font-size:17px;font-weight:900;color:#204b3e;line-height:1.35}
body.mode-live .guide-screen .guide-intro span{font-size:11px;font-weight:600;color:#68867a;line-height:1.6}
body.mode-live .guide-search-wrap{min-width:0}
body.mode-live .guide-search {
  box-sizing:border-box;
  width:100%;
  height:44px;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #d7e9df;
  border-radius:14px;
  background:#f7fcf9;
  padding:0 13px;
  color:#4c8b72;
  transition:border-color .18s,box-shadow .18s;
}
body.mode-live .guide-search:focus-within{border-color:#4d9575;box-shadow:0 0 0 3px rgba(78,151,118,.12)}
body.mode-live .guide-search svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;flex:none}
body.mode-live .guide-search input{
  box-sizing:border-box;min-width:0;width:100%;border:0;outline:0;background:transparent;
  font:700 13px/1.3 system-ui,sans-serif;color:#234c3e;
}
body.mode-live .guide-search input::placeholder{color:#8aab9d;font-weight:600}
body.mode-live .guide-screen .guide-summary{display:flex;align-items:flex-end;flex-direction:column;gap:4px;white-space:nowrap}
body.mode-live .guide-screen .guide-summary span{font-size:15px;line-height:1.2;font-weight:900;color:#397f65}
body.mode-live .guide-screen .guide-summary small{font-size:10px;color:#78988a;font-weight:700}
body.mode-live .guide-screen .guide-filters{grid-column:1/-1;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:0 0 1px}
body.mode-live .guide-screen .guide-filters::-webkit-scrollbar{display:none}
body.mode-live .guide-screen .guide-filter{
  flex:0 0 auto;border:1px solid #dceae2;border-radius:999px;background:#f7fcf9;
  color:#456f5f;font:800 11px/1.2 system-ui,sans-serif;padding:8px 13px;cursor:pointer;
}
body.mode-live .guide-screen .guide-filter.is-active{background:#4b9677;color:white;border-color:#4b9677}
body.mode-live .guide-screen .guide-results{
  min-height:0;
  flex:1 1 auto;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  padding:1px 3px 20px;
}
body.mode-live .guide-screen .guide-results::-webkit-scrollbar{display:none}
body.mode-live .guide-screen .guide-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-content:start;
  gap:12px;
  width:100%;
}
body.mode-live .guide-screen .guide-card{
  display:flex;flex-direction:column;align-items:stretch;min-width:0;
  min-height:148px;padding:17px 17px 13px;
  border:1px solid rgba(47,112,91,.14);border-radius:19px;
  box-shadow:0 9px 22px rgba(38,102,77,.045);
  background:rgba(255,255,255,.9);
  box-sizing:border-box;
}
body.mode-live .guide-screen .guide-card-top{display:flex;align-items:center;gap:12px;min-width:0}
body.mode-live .guide-screen .guide-card-badge{
  flex:none;min-width:42px;max-width:80px;height:42px;padding:0 5px;box-sizing:border-box;
  display:grid;place-items:center;border:1.5px solid #a7cfbb;border-radius:12px;background:#ebf7f0;
  color:#317a5c;font:900 15px/1 system-ui,sans-serif;text-align:center;
}
body.mode-live .guide-screen .guide-card-identity{min-width:0;flex:1}
body.mode-live .guide-screen .guide-card-eyebrow{display:block;margin-bottom:4px;color:#5d9d7e;font:900 9px/1.3 Montserrat,system-ui,sans-serif;letter-spacing:.1em}
body.mode-live .guide-screen .guide-card-title{font-size:clamp(14px,1.3vw,17px);font-weight:900;line-height:1.35;margin:0;color:#1c4a3d;overflow-wrap:anywhere}
body.mode-live .guide-screen .guide-card-primary{font-size:12px;line-height:1.6;font-weight:650;color:#61786d;margin:12px 0 6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
body.mode-live .guide-screen .guide-card-place{color:#517e6a;font-size:11px;font-weight:750;margin:10px 0 4px;overflow-wrap:anywhere}
body.mode-live .guide-screen .guide-card-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px}
body.mode-live .guide-screen .guide-card-actions button{cursor:pointer;white-space:nowrap;border-radius:10px;font:800 11px/1.2 system-ui,sans-serif;padding:9px 11px;min-height:34px}
body.mode-live .guide-screen .guide-detail-toggle{background:transparent;color:#498267;border:1px solid transparent}
body.mode-live .guide-screen .guide-detail-toggle:hover{background:#f1f9f4}
body.mode-live .guide-screen .guide-map-link{border:1px solid #d3e8da;color:#286b50;background:#eef8f1}
body.mode-live .guide-screen .guide-map-link:hover{background:#dff2e6}
body.mode-live .guide-screen .guide-card-detail[hidden]{display:none!important}
body.mode-live .guide-screen .guide-card-detail{border-top:1px solid #e1efe7;margin-top:10px;padding-top:12px;order:3}
body.mode-live .guide-screen .guide-card-detail span{display:block;color:#5c9f82;font:900 10px/1.5 system-ui,sans-serif;letter-spacing:.07em}
body.mode-live .guide-screen .guide-card-detail p{margin:5px 0 0;color:#4c675c;font-size:12px;font-weight:600;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
body.mode-live .guide-screen .guide-card.is-expanded .guide-card-primary{display:block;overflow:visible}
body.mode-live .guide-screen .guide-empty{
  box-sizing:border-box;min-height:210px;display:flex;align-items:center;justify-content:center;
  flex-direction:column;text-align:center;padding:24px;border-radius:20px;border:1px dashed #b8d8c5;
  background:rgba(255,255,255,.74);
}
body.mode-live .guide-screen .guide-empty-deco{font:900 10px/1.2 Montserrat,system-ui,sans-serif;letter-spacing:.18em;color:#65a686;margin-bottom:12px}
body.mode-live .guide-screen .guide-empty strong{font-size:17px;color:#285b48}
body.mode-live .guide-screen .guide-empty p{font-size:12px;color:#6e8779;line-height:1.7}
body.mode-live .guide-screen .guide-empty .guide-map-link{border-radius:11px;padding:10px 16px;border:1px solid #c4e2cf;background:#eff9f1;color:#286b50;font-weight:900;cursor:pointer}
body.mode-live .guide-screen .guide-loading{color:#4a856d;font-size:13px;font-weight:750;padding:20px}
@media (max-width:900px) {
  body.mode-live .guide-screen .guide-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.mode-live .guide-screen .guide-utility{grid-template-columns:1fr minmax(170px,1.4fr);gap:10px;padding:13px}
  body.mode-live .guide-screen .guide-summary{grid-column:1/-1;flex-direction:row;justify-content:space-between}
  body.mode-live .guide-screen .guide-filters{grid-row:3}
}
@media(max-width:720px){
  body.mode-live .guide-screen{padding-left:6px!important;padding-right:6px!important;padding-bottom:7px!important}
  body.mode-live .guide-screen .guide-workspace{width:100%;gap:7px}
  body.mode-live .guide-screen .guide-utility{grid-template-columns:1fr;gap:7px;padding:10px 12px;border-radius:15px}
  body.mode-live .guide-screen .guide-intro{flex-direction:row;align-items:baseline;gap:9px}
  body.mode-live .guide-screen .guide-intro strong{font-size:14px;white-space:nowrap}
  body.mode-live .guide-screen .guide-intro span{font-size:10px;line-height:1.35}
  body.mode-live .guide-screen .guide-search{height:38px;border-radius:10px;padding:0 10px}
  body.mode-live .guide-screen .guide-search input{font-size:12px}
  body.mode-live .guide-screen .guide-summary{grid-column:auto;font-size:11px}
  body.mode-live .guide-screen .guide-summary span{font-size:12px}
  body.mode-live .guide-screen .guide-summary small{font-size:9px}
  body.mode-live .guide-screen .guide-filters{grid-row:auto;grid-column:auto;margin:0 -4px}
  body.mode-live .guide-screen .guide-filter{padding:7px 10px;font-size:10px}
  body.mode-live .guide-screen .guide-results{padding:1px 1px 12px}
  body.mode-live .guide-screen .guide-card-grid{grid-template-columns:1fr;gap:7px}
  body.mode-live .guide-screen .guide-card{min-height:0;border-radius:13px;padding:11px 13px 9px}
  body.mode-live .guide-screen .guide-card-badge{height:36px;min-width:36px;border-radius:9px;font-size:13px}
  body.mode-live .guide-screen .guide-card-top{gap:10px}
  body.mode-live .guide-screen .guide-card-eyebrow{font-size:8px;margin-bottom:2px}
  body.mode-live .guide-screen .guide-card-title{font-size:14px;line-height:1.3}
  body.mode-live .guide-screen .guide-card-primary{font-size:11px;line-height:1.5;margin:7px 0 3px}
  body.mode-live .guide-screen .guide-card-place{font-size:10px;margin:6px 0 2px}
  body.mode-live .guide-screen .guide-card-actions{padding-top:5px}
  body.mode-live .guide-screen .guide-card-actions button{padding:7px 11px;min-height:31px;font-size:10px}
  body.mode-live .guide-screen .guide-card-detail p{font-size:11px}
}
@media(max-width:360px){
  body.mode-live .guide-screen .guide-intro span{font-size:9px}
  body.mode-live .guide-screen .guide-intro strong{font-size:12px}
}


/* v461 | 露店のコンパクトカード（展示カードには影響させない） */
body.mode-live .guide-shops-screen .guide-shop-card {
  min-height: 0;
  padding: 12px 13px 10px;
  gap: 0;
}
body.mode-live .guide-shops-screen .guide-shop-main {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  min-width: 0;
}
body.mode-live .guide-shops-screen .guide-shop-media {
  position: relative;
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  flex: none;
  overflow: hidden;
  border-radius: 13px;
  border: 1px solid rgba(47,112,91,.11);
  background: linear-gradient(145deg,#e0f4e8,#f9f3e4);
  box-sizing: border-box;
}
body.mode-live .guide-shops-screen .guide-shop-media-placeholder {
  display: block;
  font-size: 35px;
  line-height: 1;
  filter: drop-shadow(0 3px 4px rgba(37,82,66,.1));
}
body.mode-live .guide-shops-screen .guide-shop-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.mode-live .guide-shops-screen .guide-shop-info { min-width: 0; }
body.mode-live .guide-shops-screen .guide-shop-header {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  justify-content: space-between;
  min-width: 0;
}
body.mode-live .guide-shops-screen .guide-shop-header .guide-card-title {
  min-width: 0;
  margin: 1px 0 0;
  flex: 1;
  color: #204b3e;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 900;
}
body.mode-live .guide-shops-screen .guide-shop-number {
  display: inline-flex;
  justify-content: center;
  align-items: baseline;
  gap: 2px;
  flex: 0 0 auto;
  padding: 5px 7px;
  background: #eaf6ed;
  border: 1px solid #cae6d6;
  border-radius: 9px;
  color: #367c5e;
  white-space: nowrap;
}
body.mode-live .guide-shops-screen .guide-shop-number small {
  font: 800 8px/1 Montserrat,system-ui,sans-serif;
}
body.mode-live .guide-shops-screen .guide-shop-number strong {
  font: 900 14px/1 system-ui,sans-serif;
  font-variant-numeric: tabular-nums;
}
body.mode-live .guide-shops-screen .guide-shop-product {
  margin-top: 9px;
  min-width: 0;
}
body.mode-live .guide-shops-screen .guide-shop-product-label {
  display: block;
  color: #5c9b80;
  font-size: 10px;
  line-height: 1.25;
  font-weight: 900;
  margin-bottom: 2px;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #5e786a;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 650;
  overflow-wrap: anywhere;
}
body.mode-live .guide-shops-screen .guide-shop-card .guide-card-actions {
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid #edf3ee;
}
body.mode-live .guide-shops-screen .guide-shop-card .guide-card-actions button {
  min-height: 28px;
  padding: 6px 9px;
}
body.mode-live .guide-shops-screen .guide-shop-card.is-expanded .guide-shop-product .guide-card-primary {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
@media (max-width: 720px) {
  body.mode-live .guide-shops-screen .guide-shop-card { padding: 9px 10px 8px; }
  body.mode-live .guide-shops-screen .guide-shop-main { grid-template-columns: 78px minmax(0, 1fr); gap: 11px; }
  body.mode-live .guide-shops-screen .guide-shop-media { width: 78px; height: 78px; border-radius: 11px; }
  body.mode-live .guide-shops-screen .guide-shop-media-placeholder { font-size: 30px; }
  body.mode-live .guide-shops-screen .guide-shop-header .guide-card-title { font-size: 14px; }
  body.mode-live .guide-shops-screen .guide-shop-number { padding: 5px 6px; border-radius: 8px; }
  body.mode-live .guide-shops-screen .guide-shop-number small { font-size: 7px; }
  body.mode-live .guide-shops-screen .guide-shop-number strong { font-size: 13px; }
  body.mode-live .guide-shops-screen .guide-shop-product { margin-top: 6px; }
  body.mode-live .guide-shops-screen .guide-shop-product-label { font-size: 9px; }
  body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary { font-size: 11px; line-height: 1.35; }
  body.mode-live .guide-shops-screen .guide-shop-card .guide-card-actions { margin-top: 5px; padding-top: 5px; }
  body.mode-live .guide-shops-screen .guide-shop-card .guide-card-actions button { min-height: 28px; font-size: 10px; }
}
@media(max-width:360px){
  body.mode-live .guide-shops-screen .guide-shop-main { grid-template-columns: 70px minmax(0, 1fr); gap: 9px; }
  body.mode-live .guide-shops-screen .guide-shop-media { width: 70px; height: 70px; }
  body.mode-live .guide-shops-screen .guide-shop-header .guide-card-title { font-size: 13px; }
  body.mode-live .guide-shops-screen .guide-shop-number strong { font-size: 12px; }
}


/* v462 | 露店一覧はカード全体をタップ、詳細は大きなオーバーレイに表示 */
body.mode-live .guide-shops-screen .guide-shop-card[role="button"] {
  cursor: pointer;
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
body.mode-live .guide-shops-screen .guide-shop-card[role="button"]:hover {
  border-color: #83bda2;
  background: #fff;
  transform: translateY(-1px);
}
body.mode-live .guide-shops-screen .guide-shop-card[role="button"]:focus-visible {
  outline: 3px solid #489b78;
  outline-offset: 2px;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
  color: #234b3b;
  font-size: 16px;
  font-weight: 850;
  line-height: 1.42;
  -webkit-line-clamp: 2;
}
body.mode-live .guide-shop-dialog-open { overflow: hidden !important; }
body.mode-live .guide-shop-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  padding: max(12px, env(safe-area-inset-top, 0px)) 12px max(12px, env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
  background: rgba(18, 44, 34, .58);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}
body.mode-live .guide-shop-dialog {
  position: relative;
  width: min(720px, 100%);
  max-height: min(860px, 92dvh);
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  overflow: auto;
  overscroll-behavior: contain;
  box-sizing: border-box;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 26px 90px rgba(13, 42, 28, .34);
  scrollbar-width: none;
}
body.mode-live .guide-shop-dialog::-webkit-scrollbar { display: none; }
body.mode-live .guide-shop-dialog-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #daebe0;
  border-radius: 50%;
  background: rgba(255,255,255,.97);
  color: #214c3a;
  font: 400 28px/1 system-ui,sans-serif;
  cursor: pointer;
}
body.mode-live .guide-shop-dialog-close:focus-visible,
body.mode-live .guide-shop-dialog-map:focus-visible { outline: 3px solid #489b78; outline-offset: 2px; }
body.mode-live .guide-shop-dialog .guide-shop-media-large {
  width: 100%;
  height: 100%;
  min-height: 355px;
  border: 0;
  border-radius: 0;
  background: linear-gradient(140deg, #e3f3e7, #fcf4df);
}
body.mode-live .guide-shop-dialog .guide-shop-media-placeholder { font-size: 88px; }
body.mode-live .guide-shop-dialog .guide-shop-photo { object-fit: cover; }
body.mode-live .guide-shop-dialog-content {
  box-sizing: border-box;
  padding: 36px 30px 28px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
body.mode-live .guide-shop-dialog-eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; color: #519276; font: 900 11px/1.2 system-ui,sans-serif; letter-spacing: .12em; }
body.mode-live .guide-shop-dialog .guide-shop-number { padding: 7px 9px; }
body.mode-live .guide-shop-dialog-title { font-size: clamp(21px, 2.5vw, 28px); line-height: 1.35; font-weight: 900; color: #204a39; margin: 0 0 24px; overflow-wrap: anywhere; }
body.mode-live .guide-shop-dialog-section-label { color: #639883; font-size: 11px; font-weight: 900; letter-spacing: .07em; }
body.mode-live .guide-shop-dialog-product { margin: 7px 0 22px; color: #204a39; font-size: 20px; line-height: 1.5; font-weight: 850; overflow-wrap: anywhere; white-space: pre-wrap; }
body.mode-live .guide-shop-dialog-description { border-top: 1px solid #e3eee7; padding-top: 19px; }
body.mode-live .guide-shop-dialog-description p { margin: 8px 0 0; color: #506e5f; font-size: 14px; line-height: 1.8; font-weight: 550; overflow-wrap: anywhere; white-space: pre-wrap; }
body.mode-live .guide-shop-dialog-actions { margin-top: auto; padding-top: 26px; }
body.mode-live .guide-shop-dialog-map { width: 100%; min-height: 48px; border: 0; border-radius: 13px; background: #448e70; color: white; font: 850 14px/1.3 system-ui,sans-serif; padding: 12px 16px; cursor: pointer; }
body.mode-live .guide-shop-dialog-map:hover { background: #347d60; }
@media (max-width: 720px) {
  body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary { font-size: 15px; line-height: 1.45; }
  body.mode-live .guide-shops-screen .guide-shop-card { padding: 12px 10px; }
  body.mode-live .guide-shop-dialog-backdrop { padding: 14px 8px max(14px, env(safe-area-inset-bottom, 0px)); }
  body.mode-live .guide-shop-dialog {
    display: block;
    width: min(470px, 100%);
    max-height: min(800px, 90dvh);
    border-radius: 20px;
  }
  body.mode-live .guide-shop-dialog .guide-shop-media-large { height: min(39vh, 260px); min-height: 180px; }
  body.mode-live .guide-shop-dialog .guide-shop-media-placeholder { font-size: 72px; }
  body.mode-live .guide-shop-dialog-content { padding: 21px 22px 24px; }
  body.mode-live .guide-shop-dialog-title { font-size: 21px; margin-bottom: 18px; }
  body.mode-live .guide-shop-dialog-product { font-size: 19px; margin-bottom: 17px; }
  body.mode-live .guide-shop-dialog-description { padding-top: 15px; }
  body.mode-live .guide-shop-dialog-description p { font-size: 13px; }
  body.mode-live .guide-shop-dialog-actions { padding-top: 20px; }
}
@media (max-width: 360px) {
  body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary { font-size: 14px; }
  body.mode-live .guide-shop-dialog-content { padding: 17px 16px 20px; }
  body.mode-live .guide-shop-dialog .guide-shop-media-large { height: 180px; }
}
/* v462 overlay elements live under body, not inside .guide-shops-screen. */
body.mode-live.guide-shop-dialog-open { overflow: hidden !important; }
body.mode-live .guide-shop-dialog .guide-shop-media-large {
  position: relative;
  display: grid;
  place-items: center;
  flex: none;
  overflow: hidden;
  box-sizing: border-box;
}
body.mode-live .guide-shop-dialog .guide-shop-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
body.mode-live .guide-shop-dialog .guide-shop-media-placeholder {
  display: block;
  line-height: 1;
}
body.mode-live .guide-shop-dialog .guide-shop-number {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  border: 1px solid #cae6d6;
  background: #eaf6ed;
  color: #367c5e;
  border-radius: 9px;
  white-space: nowrap;
}
body.mode-live .guide-shop-dialog .guide-shop-number small { font: 800 10px/1 system-ui,sans-serif; }
body.mode-live .guide-shop-dialog .guide-shop-number strong { font: 900 18px/1 system-ui,sans-serif; }


/* v463 | 一覧の販売物はラベルなし・通常ウェイト・やや小さめ */
body.mode-live .guide-shops-screen .guide-shop-product {
  margin-top: 8px;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
  font-size: 14px;
  font-weight: 450;
  line-height: 1.44;
  color: #3d604f;
}
@media (max-width: 720px) {
  body.mode-live .guide-shops-screen .guide-shop-product { margin-top: 7px; }
  body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
    font-size: 14px;
    font-weight: 450;
    line-height: 1.4;
  }
}
@media (max-width: 360px) {
  body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
    font-size: 13px;
  }
}

/* v463 | 拡大詳細は画面内に収め、カード内と背面のスクロールを停止 */
html:has(body.mode-live.guide-shop-dialog-open) {
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.mode-live.guide-shop-dialog-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.mode-live .guide-shop-dialog-backdrop {
  overflow: hidden;
  overscroll-behavior: none;
  touch-action: none;
}
body.mode-live .guide-shop-dialog {
  overflow: hidden !important;
  overscroll-behavior: none;
  max-height: calc(100dvh - 28px);
}
body.mode-live .guide-shop-dialog-content {
  min-height: 0;
  overflow: hidden;
}
body.mode-live .guide-shop-dialog-description p {
  line-height: 1.6;
}

@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog-backdrop {
    padding: max(10px, env(safe-area-inset-top, 0px)) 8px max(10px, env(safe-area-inset-bottom, 0px));
  }
  body.mode-live .guide-shop-dialog {
    max-height: calc(100dvh - 20px);
  }
  body.mode-live .guide-shop-dialog .guide-shop-media-large {
    height: min(25dvh, 200px);
    min-height: 105px;
  }
  body.mode-live .guide-shop-dialog-content {
    padding: 17px 19px 18px;
  }
  body.mode-live .guide-shop-dialog-eyebrow {
    margin-bottom: 8px;
  }
  body.mode-live .guide-shop-dialog-title {
    margin-bottom: 12px;
    line-height: 1.27;
  }
  body.mode-live .guide-shop-dialog-product {
    font-size: 17px;
    line-height: 1.35;
    margin: 5px 0 10px;
  }
  body.mode-live .guide-shop-dialog-description { padding-top: 9px; }
  body.mode-live .guide-shop-dialog-description p {
    font-size: 12px;
    line-height: 1.5;
    margin-top: 5px;
  }
  body.mode-live .guide-shop-dialog-actions { padding-top: 11px; }
  body.mode-live .guide-shop-dialog-map { min-height: 42px; padding: 10px 13px; }
}
@media (max-width: 720px) and (max-height: 670px) {
  body.mode-live .guide-shop-dialog .guide-shop-media-large { height: 115px; min-height: 0; }
  body.mode-live .guide-shop-dialog-content { padding: 10px 15px 12px; }
  body.mode-live .guide-shop-dialog-eyebrow { margin-bottom: 5px; }
  body.mode-live .guide-shop-dialog-title { font-size: 18px; margin-bottom: 7px; }
  body.mode-live .guide-shop-dialog-product { font-size: 15px; margin-bottom: 8px; }
  body.mode-live .guide-shop-dialog-description { padding-top: 7px; }
  body.mode-live .guide-shop-dialog-description p { font-size: 11.5px; line-height: 1.4; }
  body.mode-live .guide-shop-dialog-actions { padding-top: 7px; }
  body.mode-live .guide-shop-dialog-map { min-height: 39px; }
}
/* Content-dependent fit levels applied only when the dialog would otherwise clip content. */
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-content { padding: 11px 16px 12px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-title { font-size: 18px; margin-bottom: 8px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-eyebrow { margin-bottom: 5px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-product { font-size: 16px; margin-bottom: 8px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-description { padding-top: 7px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-description p { font-size: 11.5px; line-height: 1.4; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-actions { padding-top: 7px; }
body.mode-live .guide-shop-dialog.is-compact .guide-shop-dialog-map { min-height: 40px; }
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog.is-compact .guide-shop-media-large { height: 112px; min-height: 0; }
}
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-content { padding: 8px 12px 10px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-title { font-size: 16px; line-height: 1.2; margin-bottom: 5px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-product { font-size: 14px; line-height: 1.25; margin: 4px 0 6px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-description { padding-top: 5px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-description p { font-size: 11px; line-height: 1.3; margin-top: 4px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-actions { padding-top: 5px; }
body.mode-live .guide-shop-dialog.is-tight .guide-shop-dialog-map { min-height: 36px; padding: 7px 10px; }
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog.is-tight .guide-shop-media-large { height: 88px; min-height: 0; }
}
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-content { padding: 6px 10px 7px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-title { font-size: 15px; margin-bottom: 4px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-product { font-size: 12px; margin: 3px 0 4px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-description { padding-top: 4px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-description p { font-size: 10px; line-height: 1.22; margin-top: 3px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-actions { padding-top: 4px; }
body.mode-live .guide-shop-dialog.is-ultra .guide-shop-dialog-map { min-height: 33px; padding: 5px 9px; }
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog.is-ultra .guide-shop-media-large { height: 65px; min-height: 0; }
}

/* 詳細でも「販売物」の小見出しを外し、商品名を通常ウェイトに */
body.mode-live .guide-shop-dialog .guide-shop-dialog-product {
  font-weight: 500;
}

/* v464 | 露店画像はすべて正方形（1:1）を想定。
   一覧は既存の正方形サムネイルを維持。
   詳細は画面幅・高さに合わせた正方形の枠に収め、写真を切り抜かない。 */
body.mode-live .guide-shop-dialog .guide-shop-media-large {
  width: min(calc(100% - 28px), 320px);
  height: auto;
  min-height: 0;
  aspect-ratio: 1 / 1;
  margin: auto;
  border: 1px solid rgba(47,112,91,.11);
  border-radius: 16px;
}
body.mode-live .guide-shop-dialog .guide-shop-photo {
  object-fit: contain;
}
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog .guide-shop-media-large {
    width: min(52vw, 200px, 24dvh);
    height: auto;
    min-height: 0;
    margin: 12px auto 0;
    aspect-ratio: 1 / 1;
  }
  body.mode-live .guide-shop-dialog.is-compact .guide-shop-media-large {
    width: min(39vw, 145px, 20dvh);
    height: auto;
    min-height: 0;
  }
  body.mode-live .guide-shop-dialog.is-tight .guide-shop-media-large {
    width: min(33vw, 115px, 17dvh);
    height: auto;
    min-height: 0;
  }
  body.mode-live .guide-shop-dialog.is-ultra .guide-shop-media-large {
    width: min(27vw, 90px, 13dvh);
    height: auto;
    min-height: 0;
  }
}


/* v465 | 露店の詳細パネルは団体によらず同じ外形。
   一覧・展示・地図には触れず、正方形画像を少し大きめにする。 */
body.mode-live .guide-shop-dialog {
  width: min(860px, calc(100vw - 32px));
  height: min(650px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
  grid-template-columns: minmax(0, 390px) minmax(0, 1fr);
  overflow: hidden !important;
}
body.mode-live .guide-shop-dialog .guide-shop-media-large {
  width: min(360px, calc(100% - 24px));
  max-width: 360px;
  height: auto;
  aspect-ratio: 1 / 1;
  min-height: 0;
  align-self: center;
  justify-self: center;
  margin: 0 auto;
}
body.mode-live .guide-shop-dialog-content {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog {
    display: flex;
    flex-direction: column;
    width: min(470px, calc(100vw - 16px));
    height: min(690px, calc(100dvh - 20px));
    max-height: calc(100dvh - 20px);
  }
  body.mode-live .guide-shop-dialog .guide-shop-media-large {
    width: min(60vw, 230px, 28dvh);
    max-width: 230px;
    height: auto;
    aspect-ratio: 1 / 1;
    margin: 12px auto 0;
    flex: none;
  }
  body.mode-live .guide-shop-dialog-content {
    flex: 1 1 0;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
  /* 内容が多い場合の従来のフィット処理は残す。外枠は縮めない。 */
}


/* v466 | 詳細表示は画面の約80％。外枠は団体ごとに変えず、画像は正方形で拡大。 */
body.mode-live .guide-shop-dialog {
  width: 80vw;
  height: 80dvh;
  max-width: none;
  max-height: 80dvh;
  grid-template-columns: minmax(0, 45%) minmax(0, 55%);
}
body.mode-live .guide-shop-dialog .guide-shop-media-large {
  width: min(460px, calc(100% - 30px), 65dvh);
  max-width: 460px;
  height: auto;
  min-height: 0;
  aspect-ratio: 1 / 1;
  margin: 0 auto;
}
@media (max-width: 720px) {
  body.mode-live .guide-shop-dialog {
    display: flex;
    flex-direction: column;
    width: 80vw;
    height: 80dvh;
    max-width: none;
    max-height: 80dvh;
  }
  body.mode-live .guide-shop-dialog .guide-shop-media-large {
    width: min(calc(100% - 16px), 280px, 32dvh);
    max-width: 280px;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
    margin: 10px auto 0;
    flex: 0 0 auto;
  }
  body.mode-live .guide-shop-dialog-content {
    padding: 12px 15px 15px;
  }
  /* 団体紹介が長い場合のみ、既存の段階的フィット機能に合わせる。 */
  body.mode-live .guide-shop-dialog.is-compact .guide-shop-media-large {
    width: min(calc(100% - 16px), 235px, 28dvh);
    max-width: 235px;
  }
  body.mode-live .guide-shop-dialog.is-tight .guide-shop-media-large {
    width: min(calc(100% - 16px), 185px, 22dvh);
    max-width: 185px;
  }
  body.mode-live .guide-shop-dialog.is-ultra .guide-shop-media-large {
    width: min(calc(100% - 16px), 130px, 16dvh);
    max-width: 130px;
  }
}


/* v467 | 一覧・詳細とも配置番号を団体名の左に丸数字で表示。販売物は「、」直後のみ改行。 */
body.mode-live .guide-shops-screen .guide-shop-header {
  justify-content: flex-start;
}
body.mode-live .guide-shops-screen .guide-shop-header .guide-card-title,
body.mode-live .guide-shop-dialog-title {
  display: flex;
  align-items: baseline;
  gap: .14em;
}
body.mode-live .guide-shop-inline-number {
  flex: none;
  color: inherit;
  font: inherit;
  line-height: inherit;
  white-space: nowrap;
}
body.mode-live .guide-shop-inline-name {
  flex: 1 1 auto;
  min-width: 0;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary,
body.mode-live .guide-shop-dialog .guide-shop-dialog-product {
  overflow-wrap: normal;
  word-break: normal;
  white-space: normal;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary .guide-shop-sales-segment,
body.mode-live .guide-shop-dialog .guide-shop-dialog-product .guide-shop-sales-segment {
  display: inline-block;
  white-space: nowrap;
  vertical-align: baseline;
}


/* v470 | 2行で全文表示できる販売物には「…」を出さない。 */
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
body.mode-live .guide-shops-screen .guide-shop-product .guide-card-primary.guide-shop-needs-ellipsis {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}


/* v472: 展示一覧を露店と同じコンパクトカード＋正方形画像＋拡大詳細に統一。 */
body.mode-live .guide-exhibitions-screen .guide-exhibit-card{
  padding:12px 13px 10px;min-height:0;cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-card:hover{
  background:#fff;border-color:#83bda2;transform:translateY(-1px);
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-card:focus-visible{
  outline:3px solid #489b78;outline-offset:2px;
}
body.mode-live .guide-exhibitions-screen .guide-shop-main{
  display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;gap:12px;min-width:0;
}
body.mode-live .guide-exhibitions-screen .guide-shop-info{min-width:0}
body.mode-live .guide-exhibitions-screen .guide-shop-media{
  position:relative;display:grid;place-items:center;width:88px;height:88px;overflow:hidden;
  border-radius:13px;border:1px solid rgba(47,112,91,.11);
  background:linear-gradient(145deg,#e0f4e8,#f9f3e4);box-sizing:border-box;
}
body.mode-live .guide-exhibitions-screen .guide-shop-media-placeholder{
  font-size:35px;line-height:1;filter:drop-shadow(0 3px 4px rgba(37,82,66,.1));
}
body.mode-live .guide-exhibitions-screen .guide-shop-photo{
  position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;
}
body.mode-live .guide-exhibitions-screen .guide-shop-header .guide-card-title{
  display:flex;align-items:baseline;gap:.28em;margin:1px 0 0;font-size:15px;
  font-weight:900;line-height:1.35;color:#204b3e;overflow-wrap:anywhere;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-inline-number{
  flex:none;color:inherit;font:inherit;white-space:nowrap;
}
body.mode-live .guide-exhibitions-screen .guide-shop-inline-name{
  flex:1 1 auto;min-width:0;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-room{
  margin:6px 0 1px;color:#378266;font-size:12px;font-weight:750;line-height:1.4;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-content{
  margin:3px 0 0;color:#3d604f;font-size:14px;font-weight:450;line-height:1.4;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  overflow-wrap:anywhere;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-day,
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-day{
  display:inline-block;align-self:flex-start;margin-top:5px;padding:3px 7px;
  border-radius:7px;background:#eaf6ed;color:#367c5e;font-size:10px;font-weight:750;
}
body.mode-live .guide-exhibit-dialog .guide-shop-dialog-title{
  display:flex;align-items:baseline;gap:.32em;margin-bottom:8px;
}
body.mode-live .guide-exhibit-dialog .guide-exhibit-inline-number{font:inherit;white-space:nowrap;flex:none;color:inherit}
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-room{
  color:#358263;font-size:14px;font-weight:750;line-height:1.4;margin:0 0 12px;
}
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-section{
  border-top:1px solid #e3eee7;padding-top:12px;
}
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-text{
  color:#204a39;font-size:16px;font-weight:500;line-height:1.5;margin:6px 0 14px;
  white-space:pre-wrap;overflow-wrap:anywhere;
}
body.mode-live .guide-exhibit-dialog .guide-shop-dialog-description{padding-top:12px}
body.mode-live .guide-exhibit-dialog .guide-shop-dialog-actions{padding-top:10px}
body.mode-live .guide-exhibit-dialog .guide-shop-media-large{background:linear-gradient(145deg,#e0f4e8,#f9f3e4)}
@media(max-width:720px){
  body.mode-live .guide-exhibitions-screen .guide-exhibit-card{padding:12px 10px}
  body.mode-live .guide-exhibitions-screen .guide-shop-main{grid-template-columns:78px minmax(0,1fr);gap:11px}
  body.mode-live .guide-exhibitions-screen .guide-shop-media{width:78px;height:78px;border-radius:11px}
  body.mode-live .guide-exhibitions-screen .guide-shop-media-placeholder{font-size:30px}
  body.mode-live .guide-exhibitions-screen .guide-shop-header .guide-card-title{font-size:14px}
  body.mode-live .guide-exhibitions-screen .guide-exhibit-room{font-size:11px}
  body.mode-live .guide-exhibitions-screen .guide-exhibit-content{font-size:13px}
  body.mode-live .guide-exhibit-dialog .guide-shop-dialog-title{margin-bottom:6px}
  body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-room{font-size:12px;margin-bottom:9px}
  body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-section{padding-top:8px}
  body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-text{font-size:13px;line-height:1.35;margin:4px 0 8px}
  body.mode-live .guide-exhibit-dialog .guide-shop-dialog-description{padding-top:8px}
  body.mode-live .guide-exhibit-dialog .guide-shop-dialog-description p{font-size:11.5px;line-height:1.4}
  body.mode-live .guide-exhibit-dialog .guide-shop-dialog-actions{padding-top:7px}
}
@media(max-width:360px){
  body.mode-live .guide-exhibitions-screen .guide-shop-main{grid-template-columns:70px minmax(0,1fr);gap:9px}
  body.mode-live .guide-exhibitions-screen .guide-shop-media{width:70px;height:70px}
  body.mode-live .guide-exhibitions-screen .guide-shop-header .guide-card-title{font-size:13px}
  body.mode-live .guide-exhibitions-screen .guide-exhibit-content{font-size:12px}
}
/* 展示は表示項目が多いため、詳細フィット段階でも配置を保つ。 */
body.mode-live .guide-exhibit-dialog.is-compact .guide-exhibit-dialog-room,
body.mode-live .guide-exhibit-dialog.is-tight .guide-exhibit-dialog-room,
body.mode-live .guide-exhibit-dialog.is-ultra .guide-exhibit-dialog-room{margin-bottom:5px}
body.mode-live .guide-exhibit-dialog.is-compact .guide-exhibit-dialog-content-text{font-size:13px;line-height:1.35;margin:3px 0 6px}
body.mode-live .guide-exhibit-dialog.is-tight .guide-exhibit-dialog-content-text{font-size:12px;line-height:1.3;margin:2px 0 5px}
body.mode-live .guide-exhibit-dialog.is-ultra .guide-exhibit-dialog-content-text{font-size:11px;line-height:1.24;margin:2px 0 3px}
body.mode-live .guide-exhibit-dialog.is-compact .guide-exhibit-dialog-content-section,
body.mode-live .guide-exhibit-dialog.is-tight .guide-exhibit-dialog-content-section,
body.mode-live .guide-exhibit-dialog.is-ultra .guide-exhibit-dialog-content-section{padding-top:5px}


/* v474: 展示内容も露店の販売物と同じ読点・括弧位置だけで改行する。 */
body.mode-live .guide-exhibitions-screen .guide-exhibit-content,
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-text {
  overflow-wrap: normal;
  word-break: normal;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-content .guide-shop-sales-segment,
body.mode-live .guide-exhibit-dialog .guide-exhibit-dialog-content-text .guide-shop-sales-segment {
  display: inline-block;
  white-space: nowrap;
  vertical-align: baseline;
}


/* v475: 展示も露店と同様、実際に3行以上になる時だけ「…」を付ける。 */
body.mode-live .guide-exhibitions-screen .guide-exhibit-content {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
body.mode-live .guide-exhibitions-screen .guide-exhibit-content.guide-exhibit-needs-ellipsis {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}


/* v515 | 露店・展示の一覧と詳細の画像未読み込み表示を統一 */
body.mode-live .guide-screen .guide-shop-media-placeholder,
body.mode-live .guide-shop-dialog .guide-shop-media-placeholder {
  display: block;
  max-width: 100%;
  padding: 4px;
  box-sizing: border-box;
  color: #658f7c;
  font: 700 11px/1.45 system-ui, -apple-system, 'Hiragino Kaku Gothic ProN', sans-serif;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
  filter: none;
  opacity: 1;
}
body.mode-live .guide-screen .guide-shop-media[data-image-state="loaded"] > .guide-shop-media-placeholder,
body.mode-live .guide-shop-dialog .guide-shop-media[data-image-state="loaded"] > .guide-shop-media-placeholder {
  display: none;
}


/* v516 | 番号19を含めて、Unicode丸数字の代替フォントを使わず統一描画。 */
body.mode-live .guide-shop-inline-number-circle {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  align-self: flex-start;
  width: 1.55em;
  height: 1.55em;
  margin-top: .20em;
  border: 1.4px solid currentColor;
  border-radius: 50%;
  font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: .70em;
  font-weight: 850;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.04em;
  white-space: nowrap;
}

/* v516 | 縦長スマホでは詳細写真を固定サイズに。閉じるボタン専用行を確保。 */
@media (max-width: 720px) and (orientation: portrait) {
  body.mode-live .guide-shop-dialog {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  body.mode-live .guide-shop-dialog .guide-shop-dialog-close {
    position: relative;
    top: auto;
    right: auto;
    inset: auto;
    box-sizing: border-box;
    align-self: flex-end;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin: 8px 10px 0 0;
  }
  body.mode-live .guide-shop-dialog .guide-shop-media-large,
  body.mode-live .guide-shop-dialog.is-compact .guide-shop-media-large,
  body.mode-live .guide-shop-dialog.is-tight .guide-shop-media-large,
  body.mode-live .guide-shop-dialog.is-ultra .guide-shop-media-large {
    box-sizing: border-box;
    width: 156px;
    height: 156px;
    min-width: 156px;
    max-width: 156px;
    min-height: 156px;
    max-height: 156px;
    flex: 0 0 156px;
    aspect-ratio: 1 / 1;
    align-self: center;
    margin: 2px auto 0;
  }
  body.mode-live .guide-shop-dialog .guide-shop-dialog-content {
    flex: 1 1 0;
    min-height: 0;
  }
}

/* v619: 教育学部棟 構内図 */
.education-map-entry{
  margin-top:12px;
}
.education-map-entry-button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border:1px solid rgba(49,108,84,.18);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(236,245,241,.98),rgba(247,250,248,.98));
  box-shadow:0 10px 24px rgba(26,61,48,.06);
  cursor:pointer;
  color:#173d30;
}
.education-map-entry-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  text-align:left;
}
.education-map-entry-copy strong{
  font-size:1rem;
}
.education-map-entry-copy small{
  font-size:.78rem;
  color:#5a776c;
}
.education-map-entry-arrow{
  font-size:1.15rem;
  color:#2f7b5c;
  flex:0 0 auto;
}
.education-map-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:1400;
}
.education-map-modal.is-open{
  display:block;
}
.education-map-backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,24,20,.48);
}
.education-map-dialog{
  position:relative;
  z-index:1;
  width:min(1080px,calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  margin:12px auto;
  background:#f8fbf9;
  border-radius:24px;
  box-shadow:0 24px 64px rgba(8,29,23,.22);
  overflow:auto;
  padding:22px 22px 24px;
}
.education-map-close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  border:none;
  border-radius:999px;
  background:#e6efe9;
  color:#184938;
  font-size:1.6rem;
  cursor:pointer;
}
.education-map-header p{
  margin:0 0 6px;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.16em;
  color:#5c8c78;
}
.education-map-header h3{
  margin:0;
  font-size:1.6rem;
  color:#173d30;
}
.education-map-header span{
  display:block;
  margin-top:6px;
  color:#5a776c;
  font-size:.92rem;
}
.education-map-tabs{
  display:flex;
  gap:8px;
  margin-top:18px;
  flex-wrap:wrap;
}
.education-map-tab{
  border:none;
  border-radius:999px;
  padding:10px 16px;
  background:#e8f0eb;
  color:#365f52;
  font-weight:700;
  cursor:pointer;
}
.education-map-tab.is-active{
  background:#2f7b5c;
  color:#fff;
}
.education-map-panels{
  margin-top:16px;
}
.education-map-panel{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(280px,0.95fr);
  gap:16px;
  align-items:start;
}
.education-map-figure{
  margin:0;
  background:#fff;
  border:1px solid rgba(61,95,81,.18);
  border-radius:20px;
  padding:12px;
  box-shadow:0 12px 30px rgba(20,54,43,.06);
}
.education-map-figure img{
  display:block;
  width:100%;
  height:auto;
  border-radius:12px;
}
.education-map-room-list{
  display:grid;
  gap:10px;
}
.education-room-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  padding:14px 15px;
  background:#fff;
  border:1px solid rgba(61,95,81,.16);
  border-radius:18px;
  box-shadow:0 10px 24px rgba(20,54,43,.05);
}
.education-room-no{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  padding:5px 10px;
  border-radius:999px;
  background:#edf4f0;
  color:#2c6550;
  font-size:.82rem;
  font-weight:800;
}
.education-room-card strong{
  font-size:.98rem;
  line-height:1.45;
  color:#173d30;
}
body.is-education-map-open{
  overflow:hidden;
}
@media (max-width: 860px){
  .education-map-dialog{
    width:min(100vw - 16px,720px);
    margin:8px auto;
    max-height:calc(100vh - 16px);
    padding:18px 14px 18px;
  }
  .education-map-panel{
    grid-template-columns:1fr;
  }
}
