body { background-color: #f5f5f7; color: #111; }
.floorplan-type-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.floorplan-type-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid #111;
    background-color: #111;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.floorplan-type-btn:hover {
    background-color: #fff;
    color: #111;
    transform: translateY(-2px);
}

.category-title {  text-transform: uppercase; margin-bottom: 25px; border-left: 5px solid #111; padding-left: 15px; }

.fp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.fp-item { position: relative; background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #ddd; cursor: zoom-in; }
.fp-item img { width: 100%; height: auto; display: block; transition: 0.3s; }
.fp-detail { padding: 15px; background: #111; color: #fff; font-size: 0.9rem; font-weight: 500; text-align: center; }

/* Magnifier Lens */
.magnifier-lens { position: absolute; width: 150px; height: 150px; border: 3px solid #111; border-radius: 50%; display: none; pointer-events: none; z-index: 10; background-color: #fff; box-shadow: 0 0 10px rgba(0,0,0,0.3); }

/* Lightbox */
.zoom-lightbox { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.95); z-index: 10000; flex-direction: column; align-items: center; justify-content: center; }
.zoom-controls { position: absolute; top: 20px; display: flex; gap: 15px; z-index: 10001; }
.zoom-controls button { background: #111; color: #fff; border: 1px solid #333; padding: 10px 20px; border-radius: 50px; cursor: pointer; transition: 0.3s; }
.zoom-controls button:hover { background: #fff; color: #111; }
.zoom-img-container { width: 90%; height: 80%; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.zoom-img-container img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: grab; user-select: none; -webkit-user-drag: none; }

@media (max-width: 768px) {
    .floorplan-type-buttons {
        flex-direction: column;
        align-items: center;
    }
    .floorplan-type-btn {
        width: 100%;
        max-width: 280px;
    }
    .fp-grid { grid-template-columns: 1fr; }
    .magnifier-lens { display: none !important; }
    .zoom-controls { bottom: 20px; top: auto; width: 100%; justify-content: center; }
}
