.p-floor-plan{--fpInk:#2c3a55;--fpLine:rgba(44,58,85,.85);--fpHi:#ffb36b}
.p-floor-plan .fp-intro{font-size:clamp(1.05rem,2.6vw,1.2rem);line-height:1.55;max-width:60ch;margin:0 0 24px}
.p-floor-plan .fp-sheet{background:var(--paper);color:var(--fpInk);border-radius:6px;padding:clamp(14px,3.5vw,30px);box-shadow:0 18px 40px rgba(0,0,0,.35);
  background-image:linear-gradient(rgba(44,58,85,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(44,58,85,.06) 1px,transparent 1px);background-size:16px 16px}
.p-floor-plan .fp-titleblock{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;border-bottom:1.5px solid var(--fpLine);padding-bottom:8px;margin-bottom:14px;font-family:var(--mono);text-transform:uppercase}
.p-floor-plan .fp-tb-name{font-size:.8rem;letter-spacing:.18em;font-weight:600}
.p-floor-plan .fp-tb-meta{font-size:.68rem;letter-spacing:.08em;opacity:.75}
.p-floor-plan .fp-plan{position:relative;width:100%;aspect-ratio:16/9;border:5px solid var(--fpInk);box-sizing:border-box;background:rgba(246,239,225,.6)}
@media (max-width:640px){.p-floor-plan .fp-plan{aspect-ratio:4/5}}
.p-floor-plan .fp-room{all:unset;box-sizing:border-box;position:absolute;cursor:pointer;box-shadow:inset 0 0 0 1px var(--fpLine);overflow:hidden;padding:5px 6px;color:var(--fpInk);
  display:flex;flex-direction:column;justify-content:flex-start;gap:1px;transition:background .15s}
.p-floor-plan .fp-room::after{content:"";position:absolute;left:10%;bottom:0;width:min(22px,30%);aspect-ratio:1;border-top:1px solid var(--fpLine);border-right:1px solid var(--fpLine);border-top-right-radius:100%;opacity:.55;pointer-events:none}
.p-floor-plan .fp-room:hover{background:rgba(255,179,107,.18)}
.p-floor-plan .fp-room:focus-visible{outline:3px solid #b4561f;outline-offset:-3px;z-index:2}
.p-floor-plan .fp-room[aria-pressed="true"]{background:rgba(255,179,107,.55)}
.p-floor-plan .fp-room.closed{background-image:repeating-linear-gradient(45deg,rgba(44,58,85,.12) 0 1px,transparent 1px 7px)}
.p-floor-plan .fp-room.empty .fp-n{opacity:.6}
.p-floor-plan .fp-n{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;opacity:.8}
.p-floor-plan .fp-name{font-family:var(--serif);font-size:clamp(.78rem,1.7vw,1.05rem);line-height:1.1;font-style:italic}
.p-floor-plan .fp-size{font-family:var(--mono);font-size:.62rem;opacity:.7}
.p-floor-plan .fp-room.tiny .fp-name,.p-floor-plan .fp-room.tiny .fp-size{display:none}
.p-floor-plan .fp-room.small .fp-size{display:none}
.p-floor-plan .fp-sub{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;margin:16px 0 8px}
.p-floor-plan .fp-sub span{opacity:.65;text-transform:none;letter-spacing:.04em}
.p-floor-plan .fp-virtual{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.p-floor-plan .fp-virtual .fp-room{position:relative;min-height:64px;box-shadow:none;border:1.5px dashed var(--fpLine)}
.p-floor-plan .fp-virtual .fp-room::after{display:none}
.p-floor-plan .fp-lot{margin-top:18px;height:14px;border:1.5px dashed var(--fpLine);border-radius:2px;position:relative}
.p-floor-plan .fp-lot-house{position:absolute;left:0;top:0;bottom:0;width:4.8%;min-width:6px;background:var(--fpInk)}
.p-floor-plan .fp-lot-cap{font-family:var(--mono);font-size:.7rem;margin:6px 0 0;opacity:.8}
.p-floor-plan .fp-card{margin-top:18px;background:var(--paper);color:var(--paperInk);border-radius:6px;padding:16px 18px;border-left:5px solid var(--fpHi);min-height:84px}
.p-floor-plan .fp-card-hint{margin:0;font-style:italic;opacity:.75}
.p-floor-plan .fp-card h3{margin:0 0 4px;font-family:var(--serif);font-size:1.3rem}
.p-floor-plan .fp-card .fp-meta{margin:0 0 8px;font-family:var(--mono);font-size:.75rem;opacity:.75;overflow-wrap:anywhere}
.p-floor-plan .fp-card p{margin:0;line-height:1.55}
.p-floor-plan .fp-h{font-family:var(--mono);font-weight:400;font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin:34px 0 12px}
.p-floor-plan .fp-tablewrap{max-width:100%;overflow-x:auto}
.p-floor-plan .fp-table{width:100%;border-collapse:collapse;font-size:.92rem}
.p-floor-plan .fp-table th,.p-floor-plan .fp-table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}
.p-floor-plan .fp-table th{font-family:var(--mono);font-weight:400;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.p-floor-plan .fp-table td:nth-child(1),.p-floor-plan .fp-table td:nth-child(3),.p-floor-plan .fp-table td:nth-child(4),.p-floor-plan .fp-table td:nth-child(5){font-family:var(--mono);font-size:.78rem}
.p-floor-plan .fp-table td:nth-child(4),.p-floor-plan .fp-table td:nth-child(5),.p-floor-plan .fp-table th:nth-child(4),.p-floor-plan .fp-table th:nth-child(5){text-align:right}
@media (max-width:480px){.p-floor-plan .fp-table th:nth-child(3),.p-floor-plan .fp-table td:nth-child(3){display:none}.p-floor-plan .fp-table{font-size:.85rem}}
.p-floor-plan .fp-notes{max-width:62ch}
.p-floor-plan .fp-notes p{line-height:1.6;margin:0 0 14px}
.p-floor-plan .fp-sign{font-style:italic;color:var(--muted)}
