/* 2026-10-24: Фильтр центра, полноэкранная карта и обзор мест используют цвета NiceAparts. */
.center-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;margin:0 0 22px;background:#eef5e9;border:1px solid #b5d1bd;border-radius:14px;color:#164e40;font:15px/1.4 Arial,sans-serif}.center-filter a{margin-left:auto;text-decoration:underline;white-space:nowrap}.guide-map-section{margin:10px 0 36px;padding:26px;border:1px solid #d6dfd4;border-radius:24px;background:#fff}.guide-map-intro{display:flex;justify-content:space-between;gap:16px;align-items:center}.guide-map-intro h2{margin-bottom:10px}.guide-map-intro a{white-space:nowrap;font-size:14px}.guide-overview-map{height:clamp(340px,56vh,600px);border-radius:18px;isolation:isolate;background:#e6eee6}.city-map-filters{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.city-map-filters button,.city-map-retry{border:1px solid #b7cfc0;border-radius:30px;padding:9px 14px;background:#f5f8f0;color:#195544;cursor:pointer}.city-map-filters button[aria-pressed="true"]{background:#17654e;color:#fff}.city-map-status{font:14px/1.4 Arial,sans-serif;color:#526c61;margin:12px 0 0}.guide-place-marker{background:none;border:0}.guide-place-pin{display:grid;place-items:center;width:30px;height:30px;border:2px solid #fff;border-radius:50%;background:#f4d68c;color:#31574a;box-shadow:0 2px 7px #163e3540;font:700 15px Arial,sans-serif}.guide-place-pin svg{width:18px;height:18px}.guide-place-pin--group{background:#17654e;color:#fff;width:34px;height:34px}.guide-place-pin--food{background:#f0cdaa}.guide-place-pin--outdoors{background:#c9dfb5}.guide-place-highlight{outline:3px solid #c69739;outline-offset:5px;scroll-margin-top:24px}.place-index-card{scroll-margin-top:24px}.guide-place-popup{font:14px/1.5 Arial,sans-serif;max-width:230px}.guide-place-popup strong{display:block;color:#174e3e;font-size:16px;margin-bottom:8px}.guide-place-popup a{display:block;margin-top:10px;color:#17654e;font-weight:bold}.full-city-map-page{margin:0;color:#164d3e;background:#f4f6ee;font:15px/1.4 Arial,sans-serif;height:100dvh;display:flex;flex-direction:column}.city-map-header{display:flex;gap:24px;align-items:center;padding:16px 24px;background:linear-gradient(110deg,#006e5a,#05826b);color:white}.city-map-brand{color:#f8e5af;font:26px Georgia,serif;text-decoration:none}.city-map-header h1{font-size:22px;margin:0 0 4px}.city-map-header p{font-size:13px;margin:0;opacity:.9}.city-map-header nav{margin-left:auto;display:flex;gap:18px;white-space:nowrap}.city-map-header a{color:inherit}.city-map-main{display:flex;flex:1;min-height:0;flex-direction:column;max-width:none;width:100%;padding:0}.city-map-toolbar{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;padding:12px 24px;background:#fffdf6;border-bottom:1px solid #d4e2d8}.city-map-toolbar label{display:flex;gap:8px;align-items:center;cursor:pointer}.city-map-toolbar a{color:#17654e}.full-city-map{flex:1;min-height:250px;position:relative;border:0!important;border-radius:0!important;margin:0!important}.full-city-map .property-map{height:100%!important;min-height:0!important;border-radius:0!important}.full-city-map [data-map-status]{position:absolute;bottom:28px;left:12px;right:12px;margin:0;padding:8px 12px;background:#ffffffed;border-radius:8px;z-index:800;pointer-events:none}.full-city-map [data-map-status][hidden]{display:none}.city-map-toolbar [role="status"]{font-size:13px;color:#607369}.guide-overview-map a:focus-visible,.full-city-map a:focus-visible,.city-map-header a:focus-visible{outline:3px solid #b58628;outline-offset:3px}.leaflet-control-attribution{font-size:10px!important}.city-map-retry[hidden],[data-places-retry][hidden]{display:none!important}@media(max-width:650px){.guide-map-section{padding:16px;margin-inline:-4px}.guide-map-intro{align-items:flex-start;flex-direction:column}.guide-map-intro h2{font-size:29px}.city-map-header{padding:12px 14px;gap:10px;flex-wrap:wrap}.city-map-brand{font-size:22px}.city-map-header h1{font-size:18px}.city-map-header p{display:none}.city-map-header nav{width:100%;margin:0;justify-content:space-between;font-size:13px}.city-map-toolbar{padding:10px 14px;font-size:13px;gap:8px 14px}.guide-overview-map{height:380px}.guide-place-pin{width:28px;height:28px}.center-filter{font-size:13px}.full-city-map-page{min-height:100svh}}@media(prefers-reduced-motion:reduce){.place-index-card{scroll-behavior:auto}}

/* 2026-10-24: Обзорная карта видна сразу после короткого вступления; из каждой карточки есть возврат. */
.places-page--map .guide-index-hero{max-width:none;padding:14px 0 8px}.places-page--map .guide-index-hero h1{font-size:clamp(30px,4vw,46px);margin-bottom:12px}.places-page--map .guide-index-hero h1 br{display:none}.places-page--map .guide-index-hero .eyebrow{margin-bottom:9px}.places-page--map .guide-index-hero .place-lead{font-size:17px;max-width:950px;margin-bottom:12px}.places-page--map .guide-index-hero .button{display:none}.guide-back-map{display:inline-block;margin-top:16px;font-size:13px;color:#61796d}.places-page--map .guide-map-intro h2{font-size:30px}.places-page--map .guide-map-section{margin-top:6px}.places-page--map .guide-map-section>p{font-size:15px;margin-bottom:10px}

.center-filter{max-width:1220px;width:calc(100% - 24px);margin:12px auto 16px;box-sizing:border-box}

@media(max-width:360px){.footer__contacts{box-sizing:border-box;min-width:0;max-width:100%;overflow-wrap:anywhere}}
.center-filter a{color:inherit}

/* 2026-10-25: Интерактивная карточка места на обеих больших картах; фотографии не выходят за узкий экран. */
.guide-place-card-popup .leaflet-popup-content-wrapper{padding:0;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px #123e3a40}
.guide-place-card-popup .leaflet-popup-content{margin:0!important;font:13px/1.35 Arial,sans-serif;color:#234f40}
.guide-place-card-popup .leaflet-popup-content p{margin:0}
.guide-place-card-popup .leaflet-popup-close-button{top:6px!important;right:6px!important;width:25px!important;height:25px!important;line-height:25px!important;background:#ffffffed;border-radius:50%;color:#1a5643!important;z-index:3}
.guide-map-place-card{width:100%;max-width:300px;background:#fff;border-radius:16px;overflow:hidden}
.guide-map-gallery{position:relative;height:132px;background:#e5eee5;overflow:hidden;touch-action:pan-y;outline-offset:-3px}
.guide-map-photo{display:block;width:100%;height:100%;object-fit:cover;margin:0!important}
.guide-map-photo-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:16px;text-align:center;color:#506f60;font-size:13px;background:linear-gradient(135deg,#ebf3e8,#cbded2)}
.guide-map-photo-counter{position:absolute;top:8px;left:8px;padding:3px 7px;border-radius:20px;background:#ffffffed;color:#234f40;font-size:11px;font-weight:700;pointer-events:none}
.guide-map-photo-credit{position:absolute;bottom:4px;left:6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ffffffe8;padding:2px 4px;border-radius:4px;font-size:9px!important;color:#315d49!important;text-decoration:none!important}
.guide-map-photo-arrow{position:absolute;top:calc(50% - 17px);width:34px;height:34px;padding:0!important;border:1px solid #d7e4d9;border-radius:50%;background:#fffffff0;color:#155340;font:27px/28px Arial,sans-serif;cursor:pointer;box-shadow:0 2px 5px #143f3426}
.guide-map-photo-arrow--prev{left:7px}.guide-map-photo-arrow--next{right:7px}
.guide-map-place-body{padding:11px 12px 12px}
.guide-map-place-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:#174e3d;font-size:16px;line-height:1.18;margin-bottom:5px}
.guide-map-place-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#617a6c;font-size:11px;margin-bottom:6px!important}
.guide-map-place-intro{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;line-height:1.35;color:#3b5c4d;margin-bottom:10px!important}
.guide-map-place-actions{display:flex;align-items:stretch;gap:8px}
.guide-map-place-zoom{flex:0 0 38px;display:grid;place-items:center;width:38px;min-height:37px;padding:7px;border:1px solid #b6d3c1;border-radius:9px;background:#eff7ef;color:#1b634c;cursor:pointer}
.guide-map-place-zoom svg{width:22px;height:22px}
.guide-map-place-link{display:flex;flex:1;align-items:center;justify-content:center;min-height:37px;padding:7px 12px;border-radius:9px;background:#17694f;color:#fff!important;font:700 14px/1.2 Arial,sans-serif;text-decoration:none!important;box-sizing:border-box}
.guide-map-place-link:hover{background:#0e543e}.guide-map-place-zoom:hover{background:#dceee2}
.guide-place-card-popup button:focus-visible,.guide-place-card-popup a:focus-visible,.guide-map-gallery:focus-visible,.guide-map-view-control button:focus-visible{outline:3px solid #b78927;outline-offset:-3px}
.guide-map-place-group{padding:14px;max-width:280px}.guide-map-group-title{display:block;font-size:15px;color:#18533e;margin:0 16px 10px 0}
.guide-map-group-list{max-height:190px;overflow:auto;overscroll-behavior:contain}
.guide-map-group-choice{display:flex;align-items:center;gap:8px;width:100%;padding:8px 4px;border:0;border-bottom:1px solid #e2ece3;background:#fff;color:#214f3e;text-align:left;font:13px/1.3 Arial,sans-serif;cursor:pointer}
.guide-map-group-choice:hover,.guide-map-group-choice:focus-visible{background:#eef6ec}
.guide-map-group-icon{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#e8efdc}.guide-map-group-icon svg{width:17px;height:17px}
.guide-map-group-closer{width:100%;border:1px solid #b5d1bd;border-radius:8px;background:#eef7ed;color:#195c43;padding:8px;margin-top:10px;font:700 12px Arial,sans-serif;cursor:pointer}
.guide-map-view-control button{display:block;width:31px;height:31px;padding:0;border:0;border-bottom:1px solid #ccc;background:#fff;color:#21533e;font:24px/30px Arial,sans-serif;cursor:pointer}
.guide-map-view-control button:last-child{border-bottom:0}.guide-map-view-control button:hover{background:#eef5eb}
.guide-map-view-control[hidden],.guide-place-card-popup [hidden]{display:none!important}
@media(max-width:480px){.guide-map-gallery{height:120px}.guide-map-place-title{font-size:15px}.guide-map-place-body{padding:10px}.guide-map-place-intro{margin-bottom:8px!important}}


/* 2026-10-25: Панель масштаба не перекрывает стрелки галереи в узкой карточке. */
.guide-overview-map .leaflet-popup-pane,.full-city-map .leaflet-popup-pane{z-index:1100}

/* 2026-10-25: Управление картой возвращается после закрытия карточки; в ней остаётся собственная лупа. */
.guide-has-place-preview .leaflet-top{visibility:hidden;pointer-events:none}

/* 2026-10-25: Подпись при наведении не сдвигает карту; одна фотография и название на белом фоне. */
.guide-place-hover-tooltip{padding:8px!important;border:1px solid #cbded1!important;border-radius:12px!important;background:#fff!important;color:#174e3d!important;box-shadow:0 3px 12px #123e3a24!important;white-space:normal!important;pointer-events:none!important;transition:none!important;width:244px!important;max-width:244px;box-sizing:border-box}
.guide-map-hover-content{display:flex;align-items:center;gap:9px;max-width:226px;font:13px/1.3 Arial,sans-serif}
.guide-map-hover-photo{display:block;flex:0 0 64px;width:64px!important;height:48px!important;object-fit:cover;border-radius:7px;margin:0!important}
.guide-map-hover-text{display:block;flex:1;min-width:0;max-width:153px;overflow-wrap:anywhere}
.guide-map-hover-text strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;font-weight:700;color:#174e3d}
.guide-map-hover-names{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:3px;font-size:11px;color:#60776b}
.guide-has-place-preview .guide-place-hover-tooltip{display:none!important}
.guide-place-hover-tooltip.leaflet-tooltip-left:before{border-left-color:#fff}.guide-place-hover-tooltip.leaflet-tooltip-right:before{border-right-color:#fff}

/* 2026-10-25: Круглые фотографии мест в палитре NiceAparts; обводка наведения не двигает метку и соседей. */
.guide-place-marker{display:grid;place-items:center}
.guide-place-pin.guide-place-pin--photo{position:relative;display:block;box-sizing:border-box;width:40px;height:40px;padding:0;border:3px solid #fff;border-radius:50%;background:#eef4e8;outline:2px solid #17654e;outline-offset:0;box-shadow:0 3px 9px #123e3a42;color:#17654e}
/* 2026-10-26: Резервный SVG остаётся ниже загруженного фото, даже при общем z-index SVG в Leaflet. */
.guide-place-pin-fallback{position:absolute;z-index:0;inset:0;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#fff1c8,#dcebdc);color:#17654e}
.guide-place-pin-fallback svg{width:23px;height:23px}
.guide-place-pin-photo{position:relative;z-index:1;display:block;width:100%!important;height:100%!important;object-fit:cover;border-radius:50%;margin:0!important;pointer-events:none;user-select:none}
.guide-place-pin-count{position:absolute;z-index:2;top:-7px;right:-8px;display:grid;place-items:center;box-sizing:border-box;min-width:22px;height:22px;padding:0 4px;border:2px solid #fff;border-radius:12px;background:#17654e;color:#fff;font:700 11px/1 Arial,sans-serif;box-shadow:0 1px 4px #123e3a38}
.guide-place-marker:focus-visible{outline:none}
.guide-place-marker:focus-visible .guide-place-pin--photo{outline:3px solid #bc902f;box-shadow:0 0 0 5px #fff6d9,0 3px 9px #123e3a42}
@media(hover:hover) and (pointer:fine){.guide-place-marker:hover .guide-place-pin--photo{outline-color:#bc902f;box-shadow:0 0 0 3px #fff6d9,0 3px 9px #123e3a42}}

/* 2026-10-25: Городской обзор без фотографий — небольшие круги и более редкое объединение мест. */
.guide-place-pin.guide-place-pin--compact{box-sizing:border-box;width:26px;height:26px;padding:0;border:2px solid #fff;border-radius:50%;background:#f7edce;color:#17654e;outline:1px solid #8da98f;box-shadow:0 2px 5px #123e3a30;font:700 11px/1 Arial,sans-serif}
.guide-place-pin--compact svg{width:16px;height:16px}
.guide-place-pin.guide-place-pin--compact-group{background:#17654e;color:#fff;outline-color:#17654e}
.guide-place-marker:focus-visible .guide-place-pin--compact{outline:3px solid #bc902f}
@media(hover:hover) and (pointer:fine){.guide-place-marker:hover .guide-place-pin--compact{outline:2px solid #bc902f}}
