.bedding-map { padding-inline:2px; }
.bedding-floor { margin:24px 0; }
.bedding-floor > h3 { color:var(--kit-ink); font-size:20px; }
.bedding-plan { position:relative; width:100%; }
.bedding-plan img { display:block; width:100%; height:auto; border-radius:12px; }
.bedding-pin { position:absolute; transform:translate(-50%,-50%); width:44px; height:44px; min-height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:transparent; font-size:0; box-shadow:none; }
.bedding-dot { position:absolute; left:50%; top:50%; width:14px; height:14px; transform:translate(-50%,-50%); border-radius:50%; background:#e0a92e; border:3px solid #fff; box-shadow:0 0 0 2px #132238, 0 2px 6px #000a; pointer-events:none; }
.bedding-pin::after { content:attr(data-pin); box-sizing:border-box; position:absolute; left:var(--tag-left,32px); top:var(--tag-top,-4px); width:28px; height:20px; border-radius:10px; background:#132238; color:#fff; font-size:13px; font-weight:800; line-height:16px; text-align:center; border:2px solid #fff; box-shadow:0 1px 4px #0008; }
.bedding-pin:active { transform:translate(-50%,-50%); }
.bedding-pin:focus-visible { outline:3px solid #8a6820; outline-offset:3px; }
.bedding-card { scroll-margin:80px 0; overflow-wrap:anywhere; }
.bedding-card h4 { display:flex; gap:12px; align-items:center; font-size:19px; margin:0 0 12px; }
.bedding-number { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:50%; width:44px; height:44px; background:#132238; color:#fff; font-size:22px; }
.bedding-card p { line-height:1.5; margin:8px 0; }
.bedding-unit { color:var(--kit-gold); font-weight:650; }
.bedding-highlight { outline:3px solid var(--kit-gold); background:#fff0c9; }
@media(prefers-color-scheme:dark) { .bedding-highlight { background:#35435a; } }

.bedding-pin-selected .bedding-dot { background:#132238; box-shadow:0 0 0 2px #e0a92e, 0 0 0 8px #e0a92e55; }
.bedding-pin-selected::after { background:#e0a92e; color:#132238; }
