/* Floor plan drawing. Colours come from the --plan-* tokens; the fallbacks keep a standalone SVG readable. */
.estate-plan {
    display: block;
    width: 100%;
    height: auto;
    min-width: var(--estate-plan-min-width, 0);
    font-family: var(--font-body, "Hanken Grotesk", Arial, sans-serif);
}

.estate-plan__sheet { fill: #fff; }

.estate-plan__floor--habitable,
.estate-plan__floor--hall,
.estate-plan__floor--storage { fill: var(--plan-room-fill, #fff); }
.estate-plan__tile-base { fill: var(--plan-wet-fill, #EAF0F5); }
.estate-plan__tile-line { fill: none; stroke: var(--plan-tile-line, #C5D1DC); stroke-width: .5px; vector-effect: non-scaling-stroke; }
.estate-plan__plank-base { fill: #fff; }
.estate-plan__plank-stripe { fill: var(--plan-deck-fill, #E3E9EF); }

.estate-plan__outdoor { stroke: var(--plan-tile-line, #C5D1DC); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.estate-plan__outdoor--garden { fill: var(--plan-garden-fill, #D4E4C6); }

.estate-plan__wall { fill: var(--plan-wall, #0A3354); }
.estate-plan__shaft { fill: rgba(10, 51, 84, .18); stroke: var(--plan-wall, #0A3354); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.estate-plan__shaft-cross { fill: none; stroke: var(--plan-wall, #0A3354); stroke-width: .75px; vector-effect: non-scaling-stroke; }

.estate-plan__opening { fill: var(--plan-window-opening, #fff); }
.estate-plan__window-frame { fill: none; stroke: var(--plan-window-frame, #0A3354); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.estate-plan__window-glass { fill: none; stroke: var(--plan-window-glass, #9CC3E6); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.estate-plan__window-outline { fill: none; stroke: var(--plan-window-frame, #0A3354); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.estate-plan__door-leaf { fill: none; stroke: var(--plan-door-leaf, #0A3354); stroke-width: 2px; vector-effect: non-scaling-stroke; }
.estate-plan__door-swing { fill: none; stroke: var(--plan-door-swing, rgba(10, 51, 84, .4)); stroke-width: 1px; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
.estate-plan__entrance-mark { fill: var(--plan-entrance-mark, #F2B544); }

.estate-plan__room-name,
.estate-plan__outdoor-label,
.estate-plan__entrance-label,
.estate-plan__north-label { font-size: 14px; font-weight: 600; fill: var(--plan-label, #0A3354); }
.estate-plan__room-area { font-family: var(--font-display, Urbanist, Arial, sans-serif); font-size: 17px; font-weight: 800; fill: var(--plan-label, #0A3354); }
.estate-plan__dimension-label,
.estate-plan__scale-label { font-size: 14px; fill: var(--plan-label, #0A3354); }
.estate-plan__caption { font-size: 14px; fill: var(--plan-label, #0A3354); }

.estate-plan__dimension-ext { fill: none; stroke: var(--plan-dimension-line, rgba(10, 51, 84, .7)); stroke-opacity: .5; stroke-width: .75px; vector-effect: non-scaling-stroke; }
.estate-plan__dimension-line { fill: none; stroke: var(--plan-dimension-line, rgba(10, 51, 84, .7)); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.estate-plan__dimension-tick { fill: none; stroke: var(--plan-wall, #0A3354); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.estate-plan__dimension-bg { fill: var(--plan-dimension-label-bg, #fff); }

.estate-plan__north-ring { fill: var(--plan-north-ring, #fff); stroke: var(--plan-north-fill, #0A3354); stroke-width: 1.25px; vector-effect: non-scaling-stroke; }
.estate-plan__north-fill { fill: var(--plan-north-fill, #0A3354); }
.estate-plan__north-outline { fill: var(--plan-north-ring, #fff); stroke: var(--plan-north-fill, #0A3354); stroke-width: .75px; vector-effect: non-scaling-stroke; }
.estate-plan__scale-bar { stroke: var(--plan-wall, #0A3354); stroke-width: .75px; vector-effect: non-scaling-stroke; }
.estate-plan__scale-bar--dark { fill: var(--plan-wall, #0A3354); }
.estate-plan__scale-bar--light { fill: #fff; }

.estate-plan__fx { fill: var(--plan-furniture-fill, #fff); stroke: var(--plan-furniture-line, rgba(10, 51, 84, .6)); stroke-width: 1.25px; vector-effect: non-scaling-stroke; }
.estate-plan__fx--open { fill: none; }
.estate-plan__fx--dashed { stroke-dasharray: 5 3; }
.estate-plan__fx--rug { fill: rgba(156, 195, 230, .18); stroke-dasharray: 2 3; }
.estate-plan__fx--plant { fill: rgba(94, 158, 110, .55); stroke: var(--plan-plant, #6F9A4C); stroke-width: 1px; }

.estate-plan__sun { fill: var(--plan-sunpatch, #FBE3A6); fill-opacity: var(--plan-sunpatch-opacity, .72); pointer-events: none; }

@media (prefers-reduced-motion: no-preference) {
    .estate-plan__furniture { transition: opacity .3s var(--ease-in-out-expo, ease); }
}
