.apartment-explorer{margin:0 0 32px;padding:26px;border:1px solid #496448;border-radius:22px;background:linear-gradient(135deg,#1a2b20,#0e1913);box-shadow:0 20px 50px #0002;isolation:isolate}
.apartment-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.apartment-eyebrow{margin:0 0 9px;color:#b8f568;font-size:10px;letter-spacing:.17em;font-weight:600}
.apartment-heading h3{font-size:clamp(22px,2.4vw,32px);line-height:1.2;letter-spacing:-.035em;font-weight:500;margin:0}
.apartment-heading>p{max-width:240px;margin:0;color:#b6c8b2;font-size:13px;line-height:1.5}
.apartment-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:24px;align-items:stretch}
.apartment-map-column{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:14px}
.apartment-map{position:relative;aspect-ratio:760/520;overflow:visible;border-radius:14px;background:radial-gradient(ellipse at 50% 45%,#28433255,transparent 70%),linear-gradient(#34503b30 1px,transparent 1px),linear-gradient(90deg,#34503b30 1px,transparent 1px),#0e1a14;background-size:auto,24px 24px,24px 24px,auto;box-shadow:inset 0 0 0 1px #3b55424d}
.apartment-plan{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.apartment-map-mark{position:absolute;right:18px;bottom:10px;color:#859c87;font-size:8px;letter-spacing:.16em;pointer-events:none}
.apartment-hotspot{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;padding:0;transform:translate(-50%,-50%);border:1px solid #829c72;border-radius:13px;background:#15251eef;color:#e4efdb;box-shadow:0 3px 14px #0006;touch-action:manipulation;z-index:1;transition:background-color .18s,border-color .18s,box-shadow .18s}
.apartment-hotspot span{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);padding:1px 5px;background:#0e1a14ed;border-radius:4px;color:#dce8d3;white-space:nowrap;font-size:11px;line-height:16px;pointer-events:none}
.apartment-hotspot svg{pointer-events:none;flex:none}
.apartment-hotspot{top:var(--apartment-y)}
/* Fixed-size touch targets need clearance from the wall as the drawing shrinks. */
.apartment-hotspot[data-service=climate]{top:max(var(--apartment-y),calc(15.2% + 30px))}
.apartment-hotspot[data-service=cleaning]{top:max(var(--apartment-y),calc(15.2% + 100px))}
.apartment-hotspot[data-service=appliances]{top:min(var(--apartment-y),calc(67% - 64px))}
.apartment-hotspot[aria-pressed=true]{background:#b8f568;border-color:#d5ffa9;color:#14200e;box-shadow:0 0 0 5px #b8f56815,0 0 24px #b8f56825}
.apartment-hotspot[aria-pressed=true] span{color:#c6ff87}
.apartment-hotspot:focus-visible{outline:3px solid #f4ffe6;outline-offset:4px;z-index:2}
.apartment-choices{display:flex;flex-wrap:wrap;gap:7px}
.apartment-choice{min-height:38px;max-width:100%;padding:7px 12px;font-size:12px;line-height:1.3;color:#c4d3bd;border:1px solid #40563f;background:#14231a;border-radius:8px;touch-action:manipulation}
.apartment-choice[aria-pressed=true]{color:#d4ffaf;border-color:#8cb85c;background:#263f22}
.apartment-selection{display:flex;flex-direction:column;min-width:0;padding:22px;border:1px solid #4a6542;border-radius:14px;background:linear-gradient(145deg,#253b25,#17271d);overflow:hidden}
.apartment-selection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.apartment-selection-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #6f9158;border-radius:11px;color:#b8f568;background:#b8f5680b}
.apartment-selection-number{font-size:10px;letter-spacing:.12em;color:#b6c8a8;font-variant-numeric:tabular-nums}
.apartment-selection h4{font-size:24px;line-height:1.15;letter-spacing:-.025em;font-weight:500;margin:0 0 9px}
.apartment-description{font-size:13px;line-height:1.5;color:#c1ceba;margin:0 0 12px;min-height:39px}
.apartment-prices{display:flex;flex-direction:column;gap:0;padding:0;margin:0 0 18px;list-style:none;min-height:156px}
.apartment-prices li{padding:10px 0;border-bottom:1px solid #59714b70;font-size:13px;line-height:1.45;color:#e0e9d9;overflow-wrap:anywhere}
.apartment-empty{font-size:13px;color:#c1ceba;margin:0 0 18px}
.apartment-empty[hidden]{display:none}
.apartment-show-services{width:100%;min-height:46px;padding:10px 13px;margin-top:auto;gap:12px;font-size:13px;justify-content:space-between}
.apartment-ask{display:flex;align-items:center;justify-content:center;gap:12px;border:0;background:transparent;color:#d2dfc8;min-height:42px;margin-top:7px;padding:8px 4px;font-size:12px}
.apartment-ask:hover{color:#b8f568}
.apartment-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#services .service{scroll-margin-top:24px}
@media(hover:hover){.apartment-hotspot:hover{border-color:#d5ffa9;box-shadow:0 0 0 4px #b8f56814,0 0 20px #b8f56824}.apartment-choice:hover{border-color:#8bb369;color:#e4ffd1}}
@media(max-width:1050px){.apartment-layout{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:16px}.apartment-explorer{padding:20px}.apartment-selection{padding:18px}.apartment-hotspot{width:44px;height:44px}.apartment-hotspot span{font-size:10px}.apartment-choices{gap:6px}.apartment-choice{padding:7px 10px}}
@media(max-width:760px){.apartment-layout{grid-template-columns:1fr;gap:18px}.apartment-heading{display:block;margin-bottom:16px}.apartment-heading>p{max-width:none;margin-top:8px}.apartment-map-column{gap:16px}.apartment-selection{padding:18px;scroll-margin-bottom:85px}.apartment-description{min-height:39px}.apartment-prices{min-height:156px}.apartment-selection-top{margin-bottom:10px}.apartment-selection h4{font-size:22px}.apartment-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.apartment-choice{min-height:44px;padding:7px 5px}.apartment-map-mark{display:none}}
@media(max-width:420px){.apartment-explorer{padding:13px;border-radius:16px}.apartment-heading h3{font-size:22px}.apartment-heading>p{font-size:12px}.apartment-hotspot{width:44px;height:44px;border-radius:10px}.apartment-hotspot svg{width:19px;height:19px}.apartment-hotspot span{top:calc(100% + 3px);font-size:9px;line-height:13px}.apartment-choices{gap:6px}.apartment-choice{font-size:11px;padding:8px 3px}.apartment-selection{padding:16px}}
@media(prefers-reduced-motion:reduce){.apartment-explorer *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
