.planning.planning-editorial { scroll-margin-top:100px; padding-block: 64px 80px; background: #0b0b0b; color: #efefed; }
.planning-editorial-head { display:flex; align-items:last baseline; justify-content:space-between; gap:24px; margin-bottom:32px; }
.planning-editorial-head h2 { display:block; margin:0; font-size:clamp(40px,3.6vw,64px); line-height:1.1; font-weight:400; color:#efefed; letter-spacing:normal; }
.planning-editorial-head h2::after { content:none; }
.planning-editorial-head p { margin:0; font-size:14px; color:#929292; }
.planning-editorial .planning-row { display:grid; grid-template-columns:minmax(0,2.55fr) minmax(300px,1fr); align-items:start; gap:clamp(28px,2.7vw,48px); }
.planning-editorial .planning-main { display:grid; position:relative; padding:0; aspect-ratio:1.65; background:#fff; align-items:stretch; margin:0; }
.planning-editorial .planning-panel { height:100%; align-items:stretch; }
.planning-editorial .planning-zoom { padding:28px 52px; }
.planning-editorial .planning-img { width:100%; max-width:none; align-items:center; }
.planning-editorial .planning-img img { width:100%; height:100%; object-fit:contain; }
.planning-editorial .planning-main__views { top:16px; right:16px; bottom:auto; }
.planning-arrow { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:46px; height:46px; display:grid; place-items:center; border:0; border-radius:50%; background:#ff6a33; color:#fff; font-size:27px; line-height:1; cursor:pointer; }
.planning-arrow--prev { left:14px; }.planning-arrow--next { right:14px; }
.planning-sidebar { min-width:0; }
.planning-floor-row { display:flex; align-items:center; gap:14px; }
.planning-floor-row > span { color:#929292; font-size:14px; }
.planning-editorial .planning-floor { display:flex; flex:1; padding:0; gap:0; min-width:0; }
.planning-editorial .planning-floor__button { flex:1; padding:17px 8px; min-height:54px; border:1px solid #343434; background:transparent; color:#ccc; font-size:16px; line-height:1.3; }
.planning-editorial .planning-floor__button.active { background:#ff6a33; border-color:#ff6a33; color:white; }
.planning-instruction { margin:22px 0 24px; font-size:16px; line-height:1.5; color:#929292; }
.planning-room-list { margin:0 0 22px; padding-top:16px; border-top:1px solid #222; }
.planning-room-list > div { display:flex; justify-content:space-between; gap:16px; padding-block:7px; font-size:16px; line-height:1.35; }
.planning-room-list dd { margin:0; color:#999; white-space:nowrap; }
.planning-sidebar .planning-room-list > div:nth-child(n+6) { display:none; }
.planning-sidebar .rooms-dialog-list > div:nth-child(n+6) { display:flex; }
.planning-room-content[hidden] { display:none; }
.planning-data-note { color:#999; font-size:16px; line-height:1.5; padding-block:16px; }
.planning-sidebar :is(.planning-rooms-toggle,.planning-estimate) { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; min-height:62px; padding:16px; border:1px solid #343434; border-radius:0; background:transparent; color:#f0f0ed; font:inherit; font-size:16px; line-height:1.35; text-align:center; }
.planning-rooms-toggle { cursor:pointer; }.planning-rooms-toggle span { font-size:25px; color:#ff6a33; }
.planning-estimates { display:grid; gap:16px; margin-top:20px; }
.planning-estimate img { width:24px; height:24px; object-fit:contain; }
.planning-sidebar .planning-estimate--telegram { background:#ff6a33; border-color:#ff6a33; color:#fff; }
.planning-sidebar button:disabled { cursor:default; opacity:1; }
.planning-sidebar .planning-rooms-toggle:disabled { opacity:.45; }
.planning-editorial button:focus-visible { outline:2px solid #ff9467; outline-offset:4px; }
@media(max-width:1024px) {
 .planning-editorial .planning-row { grid-template-columns:minmax(0,1fr); }
 .planning-sidebar { max-width:640px; width:100%; }
}
@media(max-width:640px) {
 .planning.planning-editorial { scroll-margin-top:100px; padding-block:40px 48px; }
 .planning-editorial-head { flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:24px; }
 .planning-editorial-head h2 { font-size:34px; }
 .planning-editorial-head h2::after { width:30px; }
 .planning-editorial-head p { font-size:14px; text-align:left; max-width:none; }
 .planning-editorial .planning-main { aspect-ratio:1.2; }
 .planning-editorial .planning-zoom { padding:35px 16px; }
 .planning-arrow { width:36px; height:36px; font-size:22px; top:auto; bottom:10px; transform:none; }
 .planning-arrow--prev { left:12px; }.planning-arrow--next { right:12px; }
 .planning-editorial .planning-main__views { top:10px; bottom:auto; right:10px; }
 .planning-editorial .planning-floor__button { font-size:15px; }
 .planning-instruction { font-size:14px; }
 .planning-sidebar :is(.planning-rooms-toggle,.planning-estimate) { font-size:15px; min-height:58px; }
}

/* Desktop: the sidebar is exactly as tall as the plan; the estimate buttons sit on its bottom edge. */
@media(min-width:1025px) {
 .planning-editorial .planning-row { align-items:stretch; }
 .planning-editorial .planning-sidebar { display:flex; flex-direction:column; }
 .planning-editorial .planning-sidebar .planning-room-content { flex:0 0 auto; }
 .planning-editorial .planning-sidebar .planning-rooms-toggle { margin-top:auto; }
 .planning-editorial .planning-sidebar .planning-estimates { margin-top:12px; }
}
/* Room list dialog */
.rooms-dialog { position:fixed; inset:0; width:min(560px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 48px); margin:auto; padding:0; border:1px solid #ffffff38; border-radius:0; background:#141414; color:#f1f1ee; overscroll-behavior:contain; }
.rooms-dialog::backdrop { background:#000b; backdrop-filter:blur(6px); }
.rooms-dialog[open] { display:flex; flex-direction:column; animation:rooms-appear .22s ease-out; }
.rooms-dialog-top { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:22px 28px 18px; border-bottom:1px solid #ffffff29; }
.rooms-dialog-label { margin:0 0 8px; color:#ff6a33; font-size:13px; line-height:1.4; text-transform:uppercase; letter-spacing:.04em; }
.rooms-dialog-top h2 { margin:0; font-size:clamp(24px,2.2vw,32px); font-weight:400; line-height:1.15; }
.rooms-dialog-close { flex:none; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #ffffff38; border-radius:0; background:transparent; color:#f1f1ee; cursor:pointer; transition:border-color .2s,color .2s; }
.rooms-dialog-close svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; }
.rooms-dialog-close:hover { border-color:#ff6a33; color:#ff6a33; }
.rooms-dialog-close:focus-visible { outline:2px solid #ff9467; outline-offset:3px; }
.rooms-dialog-body { overflow:auto; padding:10px 28px 26px; }
.rooms-dialog .rooms-dialog-list { margin:0; padding:0; border:0; }
.rooms-dialog .rooms-dialog-list > div { display:flex; justify-content:space-between; gap:16px; padding-block:14px; border-bottom:1px solid #ffffff1a; font-size:18px; line-height:1.35; }
.rooms-dialog .rooms-dialog-list dt { color:#f1f1ee; }
.rooms-dialog .rooms-dialog-list dd { margin:0; color:#a4a4a0; white-space:nowrap; font-variant-numeric:tabular-nums; }
@keyframes rooms-appear { from { opacity:0; transform:translateY(10px); } }
@media(max-width:640px) {
 .rooms-dialog-top { padding:18px 18px 14px; }
 .rooms-dialog-body { padding:6px 18px 20px; }
 .rooms-dialog .rooms-dialog-list > div { font-size:16px; padding-block:12px; }
}
@media(prefers-reduced-motion:reduce) { .rooms-dialog[open] { animation:none; } }
