.teto-bsml{max-width:1120px;margin:0 auto;padding:28px 14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;color:#263238}
.teto-bsml *{box-sizing:border-box}
.bsml-title{text-align:center;margin:0 0 8px;font-size:28px;letter-spacing:.04em}
.bsml-lead{text-align:center;max-width:780px;margin:0 auto 24px;line-height:1.8;color:#546e7a;font-size:15px}
.bsml-layout{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:22px;align-items:start}
.bsml-map-card,.bsml-panel{background:#fff;border:1px solid #dcebea;border-radius:22px;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.bsml-map-card{padding:18px;background:linear-gradient(180deg,#f7fbfb 0%,#fff 100%)}
.bsml-map-title{text-align:center;font-size:18px;margin:0 0 14px;color:#245f5d}
.bsml-figure-frame{background:#fff;border:1px solid #e4eeee;border-radius:20px;padding:14px 8px}
.bsml-figure{position:relative;width:min(100%,420px);margin:0 auto}
.bsml-body-img{width:100%;height:auto;display:block;opacity:.90;filter:drop-shadow(0 10px 16px rgba(0,0,0,.08));user-select:none;-webkit-user-drag:none}
.bsml-overlay{position:absolute;inset:0;width:100%;height:100%}
.bsml-hotspot{cursor:pointer;outline:none}
.bsml-hotspot ellipse,.bsml-hotspot rect,.bsml-hotspot path{fill:rgba(47,143,140,.001);stroke:rgba(47,143,140,0);stroke-width:3;transition:.18s ease}
.bsml-hotspot:hover ellipse,.bsml-hotspot:hover rect,.bsml-hotspot:hover path,
.bsml-hotspot.is-active ellipse,.bsml-hotspot.is-active rect,.bsml-hotspot.is-active path,
.bsml-hotspot:focus ellipse,.bsml-hotspot:focus rect,.bsml-hotspot:focus path{fill:rgba(47,143,140,.16);stroke:rgba(47,143,140,.70)}
.bsml-node{cursor:pointer;outline:none}
.bsml-node line{stroke:#2f8f8c;stroke-width:2.8;stroke-linecap:round;opacity:.55;pointer-events:none}
.bsml-node rect{fill:#fff;stroke:#2f8f8c;stroke-width:3}
.bsml-node text{font-size:15px;fill:#245f5d;font-weight:800;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.bsml-anchor{fill:#2f8f8c;opacity:.82;pointer-events:none}
.bsml-node:hover rect,.bsml-node.is-active rect,.bsml-node:focus rect{fill:#2f8f8c}
.bsml-node:hover text,.bsml-node.is-active text,.bsml-node:focus text{fill:#fff}
.bsml-node.is-active line,.bsml-node:hover line,.bsml-node:focus line{opacity:.95}
.bsml-panel{padding:22px}
.bsml-panel h3{margin:0 0 10px;font-size:24px;color:#245f5d}
.bsml-note{font-size:13px;line-height:1.7;color:#5d7775;background:#f2f8f7;padding:10px 12px;border-radius:10px;margin-bottom:16px}
.bsml-section{margin-top:16px;padding-top:14px;border-top:1px solid #edf2f2}
.bsml-section h4{margin:0 0 6px;font-size:16px;color:#37474f}
.bsml-section p{margin:0;line-height:1.8;font-size:15px}
.bsml-cta{margin-top:18px;padding:14px;border-radius:12px;background:#fff9ef;border:1px solid #f0dfbd;line-height:1.8;font-size:14px}
.bsml-chip-area{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.bsml-chip{border:1px solid #aacdcc;background:#fff;color:#245f5d;padding:8px 12px;border-radius:999px;font-size:14px;cursor:pointer;appearance:none}
.bsml-chip.is-active,.bsml-chip:hover,.bsml-chip:focus{background:#2f8f8c;color:#fff}
@media(max-width:820px){
  .teto-bsml{padding:22px 8px}
  .bsml-layout{grid-template-columns:1fr}
  .bsml-title{font-size:24px}
  .bsml-map-card,.bsml-panel{border-radius:18px;padding:14px}
  .bsml-figure{width:min(100%,380px)}
  .bsml-node text{font-size:13px}
}
@media(max-width:420px){
  .bsml-figure{width:min(100%,340px)}
  .bsml-node text{font-size:12px}
}
