/* Interactive floorplan (/rooms/floorplan/). Colours match the site theme. */
.fp{margin-top:24px;}
.fp-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.fp-tab{padding:8px 18px;border:1px solid #29662b;border-radius:999px;background:#fff;color:#29662b;font:inherit;font-size:15px;font-weight:700;line-height:1.3;cursor:pointer;transition:background-color .15s,color .15s;}
.fp-tab:hover{background:#e6ebe4;}
.fp-tab.is-active{background:#29662b;color:#fff;}
.fp-tab:focus-visible,.fp-stage a:focus-visible{outline:2px solid #69995d;outline-offset:2px;}

/* The stage is square on phones and 3:2 from tablets up; the drawing is fitted inside it. */
.fp-stage{position:relative;width:100%;aspect-ratio:1/1;max-height:82vh;background:#cfe0bf;border:1px solid rgba(0,0,0,.15);overflow:hidden;}
@media (min-width:640px){.fp-stage{aspect-ratio:3/2;}}
.fp-stage svg{display:block;width:100%;height:100%;}
.fp-caption{margin-top:10px;min-height:3em;font-size:15px;line-height:1.5;color:rgba(95,95,95,.95);}

/* Labels are drawn at a fixed size on screen: the script scales each one against the zoom. */
.fp-l{opacity:0;pointer-events:none;transition:opacity .3s;}
.fp-stage svg[data-tier="area"] .fp-l[data-tier="area"],
.fp-stage svg[data-tier="lodge"] .fp-l[data-tier="lodge"],
.fp-stage svg[data-tier="room"] .fp-l[data-tier="room"]{opacity:1;pointer-events:auto;}
.fp-l text{font-family:inherit;font-size:12px;font-weight:700;text-anchor:middle;fill:#1f3d21;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;}
.fp-l[data-tier="area"] text{font-size:13px;}
.fp-l[data-tier="lodge"] text{font-size:14px;}
.fp-l .fp-sub{font-weight:400;font-size:10.5px;}
.fp-l[data-go],.fp-l a{cursor:pointer;}
.fp-l a text{fill:#29662b;text-decoration:underline;}
.fp-l a:hover text,.fp-l[data-go]:hover text{fill:#0f5c14;}
.fp-pin{fill:#29662b;stroke:#fff;stroke-width:2px;}
.fp-l .fp-num{font-size:12px;fill:#fff;stroke:none;}
/* The area around the lodge, drawn in the plan's flat style and units. */
.fp-bush{fill:#a3c493;stroke:#a3c493;stroke-width:40px;stroke-linejoin:round;}
.fp-yard{fill:#e8dfc9;stroke:#e8dfc9;stroke-width:30px;stroke-linejoin:round;}
.fp-road,.fp-drive,.fp-path,.fp-track{fill:none;stroke-linecap:round;stroke-linejoin:round;}
.fp-road{stroke:#e0d3b3;stroke-width:88px;}
.fp-road--minor{stroke-width:52px;}
.fp-drive{stroke:#c3c8cf;stroke-width:70px;}
.fp-carpark{fill:#c3c8cf;stroke:#c3c8cf;stroke-width:14px;stroke-linejoin:round;}
.fp-pad{fill:#ece7da;}
.fp-bays{stroke:#fff;stroke-width:5px;stroke-dasharray:22 16;}
.fp-path{stroke:#ece7da;stroke-width:44px;stroke-linecap:butt;}
.fp-track{stroke:#7a5b2e;stroke-width:9px;stroke-dasharray:26 18;stroke-linecap:butt;}
.fp-bldg{fill:#dfe4ec;stroke:#3a3f45;stroke-width:6px;}
.fp-helipad{fill:#ece7da;stroke:#3a3f45;stroke-width:6px;}
.fp-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:6px;padding:0;list-style:none;font-size:15px;line-height:1.5;color:rgba(95,95,95,.95);}
.fp-legend[hidden]{display:none;}
.fp-legend li{display:flex;align-items:center;gap:7px;}
.fp-legend span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#29662b;color:#fff;font-size:12px;font-weight:700;}
