/* ═══════════════════════════════════════════
   Interactive Floor Plan
   ═══════════════════════════════════════════ */
.floorplan-section {
  padding: 60px 0 20px;
  text-align: center;
}
.floorplan-section h2 {
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  margin-bottom: 8px;
}
.floorplan-section p {
  font-size: .95rem;
  color: var(--brown-light);
  margin-bottom: 36px;
}
.floorplan-wrap {
  max-width: 720px;
  margin: 0 auto;
  position: relative;
}
.floorplan-svg {
  width: 100%;
  height: auto;
}

/* Room groups */
.fp-room {
  cursor: pointer;
  transition: all .35s cubic-bezier(.4,0,.2,1);
}
.fp-room rect,
.fp-room polygon,
.fp-room path {
  transition: fill .35s ease, stroke .35s ease;
}
.fp-room text {
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 13px;
  fill: var(--brown);
  pointer-events: none;
  transition: fill .3s ease;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.fp-room .fp-sublabel {
  font-size: 10px;
  font-weight: 400;
  fill: var(--brown-light);
  letter-spacing: .04em;
  text-transform: none;
}
.fp-room .fp-icon {
  opacity: .3;
  transition: opacity .35s ease, transform .35s ease;
  transform-origin: center;
}

/* Hover states */
.fp-room:hover rect,
.fp-room:hover polygon,
.fp-room:hover path.fp-floor {
  fill-opacity: .22;
  stroke-width: 2.5;
}
.fp-room:hover .fp-icon {
  opacity: .6;
  transform: scale(1.12);
}
.fp-room:hover text {
  fill: var(--brown);
}

/* Per-room accent colors */
.fp-kitchen rect { fill: #c17a5a; fill-opacity: .08; stroke: #c17a5a; stroke-width: 1.5; }
.fp-kitchen:hover rect { fill: #c17a5a; fill-opacity: .18; }
.fp-pantry rect { fill: #8a9a7b; fill-opacity: .08; stroke: #8a9a7b; stroke-width: 1.5; }
.fp-pantry:hover rect { fill: #8a9a7b; fill-opacity: .18; }
.fp-bathroom rect { fill: #7e93a6; fill-opacity: .08; stroke: #7e93a6; stroke-width: 1.5; }
.fp-bathroom:hover rect { fill: #7e93a6; fill-opacity: .18; }
.fp-bedroom rect { fill: #b0889a; fill-opacity: .08; stroke: #b0889a; stroke-width: 1.5; }
.fp-bedroom:hover rect { fill: #b0889a; fill-opacity: .18; }
.fp-desk rect { fill: #c79a4e; fill-opacity: .08; stroke: #c79a4e; stroke-width: 1.5; }
.fp-desk:hover rect { fill: #c79a4e; fill-opacity: .18; }

/* Pulse dot */
.fp-dot {
  animation: fpPulse 2.4s ease-in-out infinite;
}
@keyframes fpPulse {
  0%, 100% { r: 3; opacity: .7; }
  50% { r: 5; opacity: 1; }
}

/* Mobile: make tap targets generous */
@media (max-width: 600px) {
  .fp-room text { font-size: 11px; }
  .fp-room .fp-sublabel { font-size: 9px; }
}

/* v4 architectural hover */
.room-hit { transition: fill-opacity .35s ease; cursor: pointer; }
a:hover .room-hit { fill-opacity: .12 !important; }
a:hover .furn { opacity: .55; }
a .furn { transition: opacity .35s ease; }
a:hover .rl { fill: var(--terra); }
.rl, .rs { transition: fill .3s ease; }
