.bliss-menu-map { --map-wide-gap:4rem; margin:2rem 0; font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; }
.bliss-menu-map .map-group { margin:0 0 1.8rem; padding:1.6rem 1.2rem 2rem; border:1px solid #d4c8e8; border-radius:1.3rem; background:#faf8ff; }
.bliss-menu-map .map-group:nth-child(2) { background:#fff8fb; border-color:#ebcfde; }
.bliss-menu-map .map-group:nth-child(3) { background:#f7fbfa; border-color:#c9dfd6; }
.bliss-menu-map .map-group h2 { margin:0 0 1.8rem; padding:0; border:0; font-size:1.1rem; text-align:center; line-height:1.6; }
.map-grid { position:relative; }
.map-row { display:grid; grid-template-columns:repeat(var(--map-columns),minmax(0,1fr)); gap:2.4rem; max-width:100%; position:relative; }
.map-row:has(> :only-child) { width:66%; margin-left:auto; margin-right:auto; }
.map-row + .map-gap-normal { margin-top:2.8rem; }
.map-row + .map-gap-narrow { margin-top:1.1rem; }
.map-row + .map-gap-wide { margin-top:var(--map-wide-gap); }
.bliss-menu-map .map-card { display:flex; justify-content:center; align-items:center; min-width:0; min-height:6rem; padding:1.2rem .75rem; background:#fff; border:1px solid #baa2d7; border-radius:.8rem; text-decoration:none; text-align:center; position:relative; color:#382d49; box-shadow:0 3px 8px #33204d08; line-height:1.7; }
.map-group:nth-child(2) .map-card { border-color:#d1a4bb; color:#573047; }
.map-group:nth-child(3) .map-card { border-color:#9fbdaf; color:#264c40; }
.map-name { font-size:.94rem; font-weight:600; overflow-wrap:anywhere; }
.map-name-mobile { display:none; }
.map-name-line { display:block; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.map-mobile-arrow { display:none; }
.bliss-menu-map .map-butterfly { position:absolute; top:-16px; left:8px; width:32px; height:32px; margin:0; border:0; }
.map-info { display:none; position:absolute; top:calc(100% + .6rem); left:50%; transform:translateX(-50%); width:clamp(12rem,26vw,18rem); max-width:calc(100vw - 2rem); padding:.9rem; border:1px solid #cabbdc; border-radius:.6rem; background:#fff; box-shadow:0 6px 20px #32234520; font-size:.85rem; font-weight:400; text-align:left; z-index:4; color:#303443; }
.map-info::before { content:""; position:absolute; bottom:100%; left:0; right:0; height:.7rem; }
.map-detail { display:block; margin-top:.6rem; font-size:.8rem; color:#664a86; }
.map-card:hover, .map-card:focus-visible { z-index:5; border-color:#6d469b; box-shadow:0 2px 12px #6d469b22; }
.map-card:not(.map-dismissed):hover .map-info, .map-card:not(.map-dismissed):focus-visible .map-info { display:block; }
.map-arrows { pointer-events:none; position:absolute; inset:0; width:100%; height:100%; overflow:visible; fill:none; stroke:#9c86b6; stroke-width:1.5; }
.map-arrows path { vector-effect:non-scaling-stroke; }
.bliss-menu-map figcaption { margin-top:1rem; font-size:.85rem; line-height:1.8; text-align:center; color:#605768; }
@media (min-width:768px) {
  .bliss-menu-map { width:min(65rem,calc(100vw - 3rem)); margin-left:calc((100% - min(65rem,100vw - 3rem))/2); }
  .map-row.map-style-compact { gap:1rem; }
}
@media (min-width:768px) and (max-width:1023px) { .map-row.map-style-compact { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (hover:none) and (min-width:768px) { .bliss-menu-map .map-card { flex-direction:column; } .map-info { display:block; position:static; width:auto; transform:none; padding:.6rem 0 0; border:0; box-shadow:none; background:none; } }
@media (max-width:767px) {
  .bliss-menu-map { --map-wide-gap:2.8rem; }
  .bliss-menu-map .map-group { padding:1.3rem .85rem 1.6rem; border-radius:1rem; }
  .bliss-menu-map .map-group h2 { font-size:1rem; margin-bottom:1.5rem; }
  .map-row, .map-row:has(> :only-child) { width:100%; grid-template-columns:1fr; gap:2rem; }
  .map-arrows { display:none; }
  .map-mobile-arrow { display:block; color:#9c86b6; text-align:center; font-size:1.5rem; line-height:0; pointer-events:none; }
  .map-row:has(> .map-mobile-arrow-between) { row-gap:1rem; }
  .map-mobile-arrow-between { grid-column:1 / -1; height:0; }
  .map-mobile-arrow-row { position:absolute; top:-1.4rem; left:0; width:100%; }
  .map-row.map-style-compact { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
  .bliss-menu-map .map-card { flex-direction:column; align-items:flex-start; min-height:0; padding:1.3rem 1rem 1rem; text-align:left; }
  .map-name-pc { display:none; } .map-name-mobile { display:block; font-size:.96rem; }
  .map-info, .map-card.map-dismissed .map-info { display:block; position:static; width:auto; max-width:none; transform:none; padding:.5rem 0 0; border:0; box-shadow:none; background:none; font-size:.85rem; }
  .map-style-compact .map-card { align-items:center; justify-content:center; text-align:center; min-height:4.5rem; padding:.9rem .4rem; }
  .map-style-compact .map-card .map-info { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .map-style-compact .map-name-mobile { font-size:.91rem; }
  .bliss-menu-map figcaption { text-align:left; }
}
