.v2-real-map {min-width:0;background:#fff;border:1px solid #d5e0ea;border-radius:16px;overflow:hidden;color:#193958;}
.v2-real-map [hidden] {display:none!important;}
.v2-real-map__status {margin:0;padding:10px 14px;font-size:12px;line-height:1.5;border-bottom:1px solid #dfe7ee;}
.v2-real-map__stage {position:relative;height:520px;background:#e7edf0;}
.v2-real-map__canvas {height:100%;width:100%;}
.v2-real-map__toolbar {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;font-size:11px;}
.v2-real-map__toolbar button {flex-shrink:0;min-height:44px;}
.v2-real-map__alert {position:absolute;z-index:3;inset:20% 9% auto;padding:20px;background:#fffffff2;border:1px solid #cbd8e4;border-radius:13px;text-align:center;}
.v2-real-map__alert p {font-size:13px;line-height:1.7;margin:0 0 12px;}
.v2-real-map .maplibregl-ctrl-attrib {font-size:10px;max-width:100%;overflow-wrap:anywhere;}
.v2-real-map .maplibregl-canvas:focus-visible {outline:3px solid #075bad;outline-offset:-4px;}
.v2-real-map-popup {pointer-events:none;}
.v2-real-map-popup .maplibregl-popup-content {padding:8px;border-radius:11px;box-shadow:0 7px 24px #102e5540;}
.v2-real-map-popup__body {width:210px;max-width:100%;font-size:12px;color:#193958;}
.v2-real-map-popup__body figure {margin:0!important;}
.v2-real-map-popup__body img,.v2-real-map-popup__body .v2-snow-media-placeholder {width:100%;height:125px;object-fit:cover;border-radius:7px;}
.v2-real-map-popup__body figcaption {display:none;}
.v2-real-map-popup__body .v2-snow-media--illustrative figcaption,
.v2-real-map-popup__body .local-photo-fallback-caption {display:block;font-size:11px;line-height:1.4;color:#654d14;background:#fff5d7;padding:4px 6px;}
.v2-real-map-popup__body strong {display:block;padding:6px 3px;line-height:1.5;}
.v2-real-map-layout {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:16px;align-items:start;}
.v2-real-map-panel {min-width:0;}
.v2-real-map-detail {min-width:0;background:white;border:1px solid #d5e0ea;border-radius:13px;padding:18px;}
.v2-real-map-detail figure {margin:0!important;}
.v2-real-map-detail img {width:100%;height:195px;object-fit:cover;border-radius:9px;}
.v2-real-map-detail h3 {font-size:20px;line-height:1.45;margin:15px 0 9px;}
.v2-real-map-detail p {font-size:13px;line-height:1.75;}
.v2-real-map-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px;}
.v2-real-map-list button {text-align:left;min-height:48px;background:#fff;border:1px solid #cbd8e4;border-radius:8px;padding:10px;color:#193958;font:inherit;font-size:12px;line-height:1.5;overflow-wrap:anywhere;cursor:pointer;}
.v2-real-map-list button[aria-pressed=true] {background:#e9f1f7;border-color:#1f537d;box-shadow:inset 3px 0 #ffd334;}
.v2-real-map-list button:focus-visible {outline:3px solid #075bad;outline-offset:3px;}
/* Shared location-name typography, based on the approved Yuzawa list.
   Keep each area's grid, secondary labels and map/content model intact. */
.v2-real-map-list button,
.v2-mno-page .mno-location-button,
.v2-yuzawa-page .yuzawa-map-list__button {
  color:#2f566f;
  font-family:var(--font-family-sans);
  font-size:.8rem;
  font-weight:600;
  line-height:1.5;
  letter-spacing:normal;
  white-space:normal;
  overflow-wrap:anywhere;
}
.v2-mno-page .mno-location-button__copy,
.v2-yuzawa-page .yuzawa-map-list__button b {min-width:0;font:inherit;}
/* The number badge was removed; names must use the full button width on mobile. */
.v2-yuzawa-page .yuzawa-map-list__button {grid-template-columns:minmax(0,1fr);}
.v2-real-map-list button:is(:hover,:focus-visible,[aria-pressed=true]),
.v2-mno-page .mno-location-button:is(:hover,:focus-visible,.is-active),
.v2-yuzawa-page .yuzawa-map-list__button:is(:hover,:focus-visible,.is-active) {color:#06285f;}
.zao-map-lift-controls {background:#fff;border:1px solid #d5e0ea;border-radius:13px;margin:12px 0;padding:12px;font-size:12px;}
.zao-map-lift-controls .lift-toolbar {display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;}
.zao-map-lift-controls label {display:flex;gap:6px;align-items:center;min-height:44px;}
.zao-map-lift-controls input {width:18px;height:18px;accent-color:#7842a3;}
.zao-map-lift-controls select,.zao-map-lift-controls button {font:inherit;min-height:44px;border:1px solid #c9d6e2;background:#fff;color:#193958;border-radius:8px;padding:8px;}
.zao-map-lift-controls summary {cursor:pointer;padding:12px 0;min-height:44px;font-weight:700;}
.zao-map-lift-controls .lift-list {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
.zao-map-lift-controls .lift-button {display:flex;align-items:center;gap:8px;text-align:left;}
.zao-map-lift-controls .lift-button small {display:block;font-size:10px;}
.zao-map-lift-controls .lift-number {display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;color:white;}
.zao-map-lift-controls .lift-source-links {display:flex;flex-wrap:wrap;gap:9px 16px;}
.zao-map-lift-controls .lift-hint,.zao-map-lift-controls #lift-status {color:#526c81;font-size:12px;line-height:1.7;}
.zao-map-lift-controls :disabled {opacity:.55;cursor:default;}
.zao-lift-popup {pointer-events:none;}.zao-lift-popup .maplibregl-popup-content {border-radius:9px;}
.lift-popup-text strong,.lift-popup-text small {display:block;color:#193958;font-size:12px;}
.v2-real-map-mount {min-width:0;}
.yuzawa-map-layout>.v2-real-map-mount {grid-area:map;}
.mno-location-map-panel>.v2-real-map-mount {width:100%;}
@media(max-width:900px){.v2-real-map-layout{grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr);}.v2-real-map-list{grid-template-columns:repeat(2,minmax(0,1fr));}.zao-map-lift-controls .lift-list{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){.v2-real-map-layout{grid-template-columns:1fr;}.v2-real-map__stage{height:430px;}.v2-real-map-detail img{max-height:240px;}.v2-real-map__toolbar{align-items:start;}.zao-map-lift-controls .lift-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.v2-real-map__stage{height:355px;}.v2-real-map__toolbar{font-size:10px;gap:7px;}.v2-real-map__toolbar button{padding:8px;}.v2-real-map-list button{padding:8px;}}
