/* Home only: restrained brass lift controls; a fixed room prevents footer jumps. */
.floor-lift {
  min-width: 0;
  width: 100%;
  max-width: 290px;
  justify-self: center;
  color: #4b3a18;
  background: #fffdf8;
  border: 1px solid #d9c79e;
  box-shadow: 0 8px 24px #6d53220a;
}
.floor-lift .lift-header {
  display: flex; justify-content: space-between; gap: 8px; align-items: baseline;
  padding: 16px 14px 12px;
  font-family: var(--font-display); font-size: 1.1rem;
}
.floor-lift .lift-caption { font-family: var(--font-body, sans-serif); font-size: .66rem; color: #756447; }
.floor-lift .lift-controls { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin: 0 12px 14px; border: 1px solid #d9c79e; }
.floor-lift .lift-controls button {
  appearance: none; min-width: 0; min-height: 62px; padding: 6px 1px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  background: transparent; border: 0; border-right: 1px solid #d9c79e; border-radius: 0;
  color: #5c4a28; font: inherit; font-size: .68rem; line-height: 1.3;
  box-shadow: none; transform: none; cursor: pointer;
  transition: background 160ms ease, color 160ms ease;
}
.floor-lift .lift-controls button:last-child { border-right: 0; }
.floor-lift .lift-button-no { font-family: var(--font-display); font-size: 1.15rem; }
.floor-lift .lift-controls button:hover { background: #f2e9d5; color: #4b3a18; }
.floor-lift .lift-controls button[aria-pressed="true"] { background: #715621; color: #fffdf8; }
.floor-lift button:focus-visible, .floor-lift a:focus-visible { outline: 2px solid #715621; outline-offset: 3px; }
.floor-lift .lift-room { position: relative; overflow: hidden; height: 350px; border-top: 1px solid #d9c79e; background: #fff; padding: 12px; }
.floor-lift .lift-room-head { display: flex; gap: 9px; align-items: center; height: 44px; border-bottom: 1px solid #e9dfcc; margin-bottom: 4px; }
.floor-lift .lift-level { font-size: .72rem; color: #806636; font-variant-numeric: tabular-nums; }
.floor-lift h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 400; line-height: 1.2; margin: 0; }
.floor-lift .lift-open { margin-left: auto; color: #806636; font-size: .55rem; letter-spacing: .13em; }
.floor-lift .lift-links { display: flex; flex-direction: column; }
.floor-lift .lift-links a {
  display: flex; justify-content: space-between; align-items: center;
  min-height: 44px; padding: 0 4px; border-bottom: 1px solid #f0e9db;
  color: #5c4a28; font-size: .83rem; text-decoration: none;
  transform: none; box-shadow: none; border-radius: 0;
}
.floor-lift .lift-links a::after { content: '↗'; color: #806636; margin-left: 8px; }
.floor-lift .lift-links a:hover, .floor-lift .lift-links a[aria-current="page"] { background: #f8f1e4; color: #4b3a18; }
.floor-lift .lift-links a:hover { text-decoration: underline; text-underline-offset: 3px; }
.floor-lift .lift-base { border-top: 1px solid #d9c79e; padding: 10px 12px; text-transform: uppercase; font-size: .59rem; letter-spacing: .12em; color: #756447; }
.floor-lift .lift-arriving::before, .floor-lift .lift-arriving::after {
  content: ''; position: absolute; z-index: 1; top: 0; bottom: 0; width: 50%; background: #f2e9d5; pointer-events: none;
  animation: lift-door-left 280ms cubic-bezier(.2,.65,.3,1) both;
}
.floor-lift .lift-arriving::before { left: 0; border-right: 1px solid #d9c79e; }
.floor-lift .lift-arriving::after { right: 0; border-left: 1px solid #d9c79e; animation-name: lift-door-right; }
@keyframes lift-door-left { from { transform: translateX(0); } to { transform: translateX(-101%); } }
@keyframes lift-door-right { from { transform: translateX(0); } to { transform: translateX(101%); } }
@media (max-width: 680px) { .floor-lift { max-width: none; } }
@media (prefers-reduced-motion: reduce) {
  .floor-lift .lift-controls button { transition: none; }
  .floor-lift .lift-arriving::before, .floor-lift .lift-arriving::after { display: none; animation: none; }
}
