.ra-floors{--ra-blue:#0066b3;--ra-orange:#ff5900;--ra-muted:#8895a5;display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:clamp(28px,5vw,90px);align-items:start;width:100%;padding:32px 0;color:#102238;font-family:inherit}
.ra-floors *,.ra-modal *{box-sizing:border-box}
.ra-heading{font-family:inherit;font-weight:700;font-size:clamp(25px,2.5vw,36px);line-height:1.2;color:#102238;margin:0 0 12px!important}
.ra-intro{font-size:17px;line-height:1.5;color:var(--ra-muted);margin:0 0 25px}
.ra-nav{position:relative;display:flex;flex-direction:column;gap:10px;padding-left:38px}
.ra-nav:before{content:"";position:absolute;left:10px;top:34px;bottom:34px;width:1px;background:#91b6d6}
.ra-floor-button{position:relative;display:flex;align-items:center;gap:14px;min-height:70px;width:100%;padding:8px 22px;border:1px solid #d5e5f5;border-radius:12px;background:#f7fbff;color:var(--ra-blue);font-family:inherit;font-weight:600;font-size:18px;line-height:1.2;text-align:left;cursor:pointer;box-shadow:none;transition:background .2s,color .2s,border-color .2s;letter-spacing:normal;text-transform:none}
.ra-floor-button strong{font-size:42px;line-height:1;font-weight:600}
.ra-floor-button:hover{background:#eaf4ff;border-color:#9bc3e7}
.ra-floor-button[aria-pressed=true]{background:var(--ra-orange);border-color:var(--ra-orange);color:#fff}
.ra-arrow{margin-left:auto;font-family:Arial,sans-serif;font-size:34px;font-weight:400;line-height:1}
.ra-dot{position:absolute;left:-36px;top:50%;transform:translateY(-50%);width:17px;height:17px;border-radius:50%;border:2px solid var(--ra-blue);background:#fff;box-shadow:0 0 0 4px #fff}
.ra-floor-button[aria-pressed=true] .ra-dot{background:var(--ra-orange);border-color:var(--ra-orange)}
.ra-hint{position:relative;margin:28px 0 0;padding-left:45px;font-size:16px;line-height:1.4;color:var(--ra-muted)}
.ra-hint:before{content:"";position:absolute;left:2px;top:0;width:23px;height:35px;border:2px solid var(--ra-blue);border-radius:14px}
.ra-hint:after{content:"";position:absolute;left:13px;top:7px;width:2px;height:8px;background:var(--ra-blue)}
.ra-main{min-width:0;min-height:320px}
.ra-status{min-height:24px;margin:0 0 12px;color:#687789;font-size:14px;line-height:1.5}
.ra-plan{position:relative;width:100%;line-height:0;animation:ra-appear .22s ease}
.ra-floor-image{display:block!important;width:100%!important;height:auto!important;max-width:none!important;border:0;margin:0!important;padding:0!important}
.ra-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.ra-apartment{fill:var(--ra-status-fill);stroke:var(--ra-status-color);stroke-width:2;pointer-events:all;cursor:pointer;outline:none}
.ra-apartment path,.ra-apartment polygon,.ra-apartment polyline,.ra-apartment rect,.ra-apartment circle,.ra-apartment ellipse{vector-effect:non-scaling-stroke;transition:fill .18s,stroke .18s}
.ra-apartment:hover,.ra-apartment:focus,.ra-apartment.is-highlighted{fill:var(--ra-status-hover);stroke:var(--ra-status-color);stroke-width:3}
.ra-apartment:focus{stroke:#0066b3;stroke-width:3}
.ra-apartment-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.ra-apartment-list p{flex-basis:100%;margin:0 0 4px;font-size:14px;color:#687789}
.ra-apartment-list button,.ra-retry{border:1px solid #d5e5f5;background:#fff;border-radius:7px;color:#0066b3;padding:8px 12px;cursor:pointer;font:inherit;font-size:14px;text-transform:none;letter-spacing:normal}
.ra-apartment-list button:hover{border-color:#ff5900;color:#c94700}
.ra-floor-button:focus-visible,.ra-apartment-list button:focus-visible,.ra-retry:focus-visible{outline:3px solid #0066b3;outline-offset:4px}
.ra-modal{width:min(100%,980px);padding:clamp(20px,4vw,45px);color:#102238;font-family:inherit;background:#fff}
.ra-modal h2{font-size:clamp(24px,3vw,34px);line-height:1.2;margin:0 0 10px}
.ra-modal-meta{margin:0 0 25px;color:#687789}
.ra-modal-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px}
.ra-modal-plan img{display:block;width:100%;height:auto;max-height:550px;object-fit:contain}
.ra-areas{margin:0 0 22px}
.ra-areas>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #e6edf3}
.ra-areas dt{font-weight:400;color:#687789}.ra-areas dd{font-weight:600;margin:0;white-space:nowrap}
.ra-description{font-size:16px;line-height:1.6;overflow-wrap:anywhere}
.ra-modal h3{font-size:22px;margin:30px 0 16px}
.ra-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ra-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
@keyframes ra-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.ra-floors{grid-template-columns:1fr;gap:22px}.ra-nav{flex-direction:row-reverse;padding:0;gap:8px}.ra-nav:before,.ra-dot,.ra-arrow,.ra-hint{display:none}.ra-floor-button{flex:1;min-width:0;justify-content:center;flex-direction:column;gap:4px;min-height:70px;padding:9px 4px;font-size:12px}.ra-floor-button strong{font-size:28px}.ra-intro{margin-bottom:16px}.ra-main{min-height:220px}.ra-modal-grid{grid-template-columns:1fr;gap:20px}.ra-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.ra-plan{animation:none}.ra-floor-button,.ra-apartment *{transition:none}}

/* Apartment availability: keep hover in the same status color. */
.ra-status-available{--ra-status-color:#16834a;--ra-status-fill:rgba(22,131,74,.18);--ra-status-hover:rgba(22,131,74,.4)}
.ra-status-reserved{--ra-status-color:#a86b00;--ra-status-fill:rgba(242,180,0,.25);--ra-status-hover:rgba(242,180,0,.48)}
.ra-status-sold{--ra-status-color:#c73535;--ra-status-fill:rgba(199,53,53,.2);--ra-status-hover:rgba(199,53,53,.42)}
.ra-legend{display:flex;gap:12px 20px;flex-wrap:wrap;margin-top:18px}
.ra-status-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;line-height:1.4;color:var(--ra-status-color);font-weight:500}
.ra-status-badge:before{content:"";display:inline-block;flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--ra-status-color)}
.ra-apartment-list button{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.ra-modal .ra-status-badge{padding:6px 11px;background:var(--ra-status-fill);border-radius:6px}

/* Room labels stay readable while their positions follow the SVG viewBox. */
.ra-room-labels{position:absolute;inset:0;pointer-events:none}
.ra-room-label{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:auto;min-width:42px;min-height:34px;padding:5px 10px;border:0;border-radius:10px;background:#fff;color:#303030;box-shadow:0 1px 5px #00000012;font-family:inherit;font-size:18px;font-weight:800;line-height:1;letter-spacing:0;text-transform:none;cursor:pointer}
.ra-room-label:hover{background:#fff;color:#0066b3;box-shadow:0 2px 8px #0002}
.ra-room-label:focus-visible{outline:3px solid #0066b3;outline-offset:3px}
.ra-plan-zoom{display:block;color:#0066b3;text-decoration:none;cursor:zoom-in}
.ra-plan-zoom-hint{display:block;text-align:center;font-size:13px;line-height:1.5;margin-top:12px}
@media(max-width:800px){.ra-room-label{min-width:26px;min-height:24px;padding:4px 5px;border-radius:6px;font-size:12px}}

.ra-room-label{max-width:110px;white-space:normal;overflow-wrap:anywhere;text-align:center}
@media(max-width:800px){.ra-room-label{max-width:75px}}
