/* Floor controls deliberately sit below the persistent branding. */
.floor-topbar { top: clamp(96px, 8vw, 122px); }
@media (max-width: 767.98px) { .floor-topbar { top: 82px; } }

/* Language controls stay legible over both the sky and dark foliage. */
.language-switch { gap: 10px; padding: 4px; border-radius: 999px; background: rgba(255, 255, 255, .18); backdrop-filter: blur(8px); }
.language-switch button { width: 42px; height: 42px; border: 1px solid rgba(255, 255, 255, .88); background: rgba(255, 255, 255, .76); color: #1f2428; box-shadow: 0 4px 14px rgba(15, 20, 20, .14); }
.language-switch button:hover, .language-switch button:focus-visible { background: #fff; border-color: #fff; outline: 2px solid rgba(31, 36, 40, .72); outline-offset: 2px; }
.language-switch button.is-active { background: #fff; border-color: #fff; box-shadow: 0 7px 19px rgba(15, 20, 20, .2); }
@media (max-width: 767.98px) { .language-switch { gap: 6px; padding: 3px; } .language-switch button { width: 36px; height: 36px; font-size: 10px; } }

/* Keep the facade pristine until a floor is deliberately explored. */
.villa-hotspot { fill-opacity: 0; stroke-opacity: 0; }
.villa-hotspot:hover, .villa-hotspot:focus, .villa-hotspot.is-selected { fill-opacity: .15; stroke-opacity: 1; }

/* A dedicated identity plate keeps the project name elegant and readable over photography. */
.brand { padding: 15px 19px 14px; border: 1px solid rgba(255, 255, 255, .24); border-left: 3px solid #d5b16c; border-radius: 0 14px 14px 0; background: linear-gradient(135deg, rgba(20, 25, 27, .84), rgba(20, 25, 27, .56)); color: #fff; box-shadow: 0 13px 30px rgba(12, 15, 16, .18); backdrop-filter: blur(9px); letter-spacing: .1em; }
.brand small { color: rgba(255, 250, 239, .82); }
@media (max-width: 767.98px) { .brand { padding: 10px 12px 9px; border-left-width: 2px; border-radius: 0 10px 10px 0; letter-spacing: .07em; } }

/* The floor toolbar clears the taller identity plate on desktop. */
@media (min-width: 768px) { .floor-topbar { top: clamp(140px, 12vw, 184px); } }
