#s360-stay-map-block{width:min(1180px,calc(100% - 28px));margin:20px auto 28px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.s360-map-shell{overflow:hidden;border:1px solid rgba(29,92,71,.14);border-radius:22px;background:#fff;box-shadow:0 10px 34px rgba(22,65,50,.08)}
.s360-map-toggle{width:100%;border:0;background:linear-gradient(180deg,#fbfdfc,#f4f9f6);display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;color:#154b3b;text-align:left}.s360-map-toggle__icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#157b59;color:#fff;display:grid;place-items:center;font-size:25px;font-weight:700}.s360-map-toggle__copy{min-width:0;display:block;flex:1}.s360-map-toggle__title{display:flex;align-items:center;gap:10px;font-size:20px;line-height:1.15;font-weight:800}.s360-map-toggle__sub{display:block;margin-top:4px;color:#60766e;font-size:13px;font-weight:500}.s360-map-count-badge{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 8px;border-radius:999px;background:#e8f4ee;color:#146a4e;font-size:13px;font-weight:800}.s360-map-toggle__action{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:750;white-space:nowrap}.s360-map-toggle__chev{font-size:18px;transition:.2s}.s360-map-shell.is-open .s360-map-toggle__chev{transform:rotate(180deg)}
.s360-map-panel{height:0;position:relative;transition:height .25s ease}.s360-map-shell.is-open .s360-map-panel{height:520px}#s360-stay-map{position:absolute;inset:0;background:#edf3ef}.s360-map-status{position:absolute;z-index:500;left:50%;top:12px;transform:translateX(-50%);padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 4px 16px rgba(0,0,0,.09);font-size:12px;color:#53645d;white-space:nowrap}
.s360-map-marker-wrap{background:none!important;border:0!important;pointer-events:auto!important}.s360-map-marker{appearance:none;-webkit-appearance:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;padding:0;border-radius:50%;background:#168663;border:3px solid #fff;box-shadow:0 3px 9px rgba(8,66,47,.35);cursor:pointer;pointer-events:auto;touch-action:manipulation}.s360-map-marker:before{content:"";position:absolute;inset:-10px;border-radius:50%}.s360-map-marker--multi{width:32px;height:32px;background:#168663;border-width:3px;color:#fff;font:800 13px/1 Inter,system-ui,sans-serif}.s360-map-marker--multi span{position:relative;z-index:1}.s360-map-marker--multi:before{inset:-6px}
.s360-map-popup{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;min-width:210px}.s360-map-popup img{display:block;width:100%;height:130px;object-fit:cover;border-radius:10px;margin-bottom:9px}.s360-map-popup__title{font-size:15px;line-height:1.3;color:#173e32;font-weight:800}.s360-map-card__facts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px}.s360-fact{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:5px 10px;border-radius:10px;background:#eef6f2;color:#244b3e;font-size:12.5px;line-height:1;font-weight:650;white-space:nowrap}.s360-fact b{font-weight:850}.s360-map-popup__btn,.s360-map-card__btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none!important;border-radius:11px;background:#16845f!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:800}.s360-map-popup__btn{margin-top:11px;width:100%;padding:10px 12px;font-size:13px}
.s360-map-group-popup{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}.s360-map-group-popup__head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;color:#173e32}.s360-map-group-popup__head b{font-size:15px}.s360-map-group-popup__head span{font-size:12px;color:#5d7069}.s360-map-group-popup__list{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;max-width:410px}.s360-group-card{flex:0 0 190px;scroll-snap-align:start;border:1px solid #e6ece8;border-radius:12px;background:#fff;overflow:hidden}.s360-group-card__photo{width:100%;height:105px;object-fit:cover;background:#eef2ef;display:block}.s360-group-card__body{padding:9px;display:flex;flex-direction:column;gap:7px}.s360-group-card__address{font-size:13px;font-weight:800;color:#173e32;line-height:1.25}.s360-group-card .s360-map-card__facts{margin-top:0;gap:5px}.s360-group-card .s360-fact{font-size:11px;min-height:25px;padding:4px 7px}.s360-group-card .s360-map-card__btn{margin-top:1px;padding:8px 9px;font-size:11.5px;width:100%}.s360-map-mobile-card{display:none}
@media(max-width:720px){#s360-stay-map-block{width:calc(100% - 20px);margin:14px auto 22px}.s360-map-shell{border-radius:18px}.s360-map-toggle{min-height:72px;padding:11px 12px;gap:11px}.s360-map-toggle__icon{width:42px;height:42px;flex-basis:42px;border-radius:13px}.s360-map-toggle__title{font-size:17px;gap:7px}.s360-map-toggle__sub{font-size:12px;line-height:1.25}.s360-map-toggle__action{font-size:0}.s360-map-toggle__action span:first-child:before{content:'Показать';font-size:13px}.s360-map-shell.is-open .s360-map-toggle__action span:first-child:before{content:'Свернуть'}.s360-map-shell.is-open .s360-map-panel{height:58vh;min-height:400px;max-height:540px}.leaflet-popup{display:none!important}.s360-map-status{top:8px;font-size:11px;padding:6px 10px}.s360-map-mobile-card{display:block;position:fixed;z-index:2147483000;left:10px;right:10px;bottom:auto;max-width:470px;margin:0 auto;background:#fff;border:1px solid rgba(31,101,78,.13);border-radius:18px;box-shadow:0 12px 36px rgba(17,39,32,.30);padding:10px 38px 10px 10px;overflow:hidden}.s360-map-mobile-card[hidden]{display:none!important}.s360-map-mobile-card__close{position:absolute;z-index:2;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:50%;background:#eef3f0;color:#51645d;font-size:20px;line-height:28px;padding:0}.s360-map-mobile-card__inner{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;align-items:stretch;min-height:105px}.s360-map-card__photo{width:105px;height:105px;border-radius:13px;object-fit:cover;background:#eef2ef}.s360-map-card__photo--empty{background:linear-gradient(135deg,#edf3ef,#dfe9e3)}.s360-map-card__body{min-width:0;display:flex;flex-direction:column}.s360-map-card__title{padding-right:1px;color:#182f27;font-weight:800;font-size:16px;line-height:1.24;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.s360-map-card__facts{margin-top:8px;gap:7px}.s360-map-card__facts .s360-fact{font-size:12px;min-height:28px;padding:5px 8px;border-radius:9px;gap:3px}.s360-map-card__btn{margin-top:auto;align-self:flex-start;padding:9px 13px;font-size:12.5px;line-height:1.05;white-space:nowrap}
.s360-map-mobile-card.is-group{padding:11px 38px 11px 11px}.s360-map-mobile-card.is-group .s360-map-mobile-card__inner{display:block;min-height:0}.s360-mobile-group__head{display:flex;flex-direction:column;gap:2px;padding-right:4px;margin-bottom:9px}.s360-mobile-group__head b{font-size:15px;color:#173e32}.s360-mobile-group__head span{font-size:12px;color:#60726b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s360-mobile-group__scroller{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-bottom:3px}.s360-mobile-group__scroller .s360-group-card{flex:0 0 min(250px,78vw);scroll-snap-align:start}.s360-mobile-group__scroller .s360-group-card__photo{height:92px}.s360-mobile-group__scroller .s360-group-card__body{padding:8px}.s360-mobile-group__scroller .s360-map-card__btn{font-size:11.5px;padding:8px}
.leaflet-control-attribution{font-size:8px!important;max-width:52%;white-space:normal!important;line-height:1.05!important}}
@media(max-width:390px){.s360-map-mobile-card{left:8px;right:8px;padding:9px 35px 9px 9px}.s360-map-mobile-card__inner{grid-template-columns:92px minmax(0,1fr);min-height:92px;gap:10px}.s360-map-card__photo{width:92px;height:92px}.s360-map-card__title{font-size:14.5px}.s360-map-card__facts .s360-fact{font-size:11.3px;padding:4px 7px}.s360-map-card__btn{padding:8px 10px;font-size:11.5px}.s360-mobile-group__scroller .s360-group-card{flex-basis:min(232px,80vw)}}
/* v11.3.36: exact-id links, building grouping, lighter cards */
.s360-group-card__variant{font-size:12px;font-weight:750;line-height:1.25;color:#53675f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s360-mobile-single .s360-group-card{border:0;display:grid;grid-template-columns:105px minmax(0,1fr);gap:11px;width:100%;flex-basis:auto}
.s360-mobile-single .s360-group-card__photo{width:105px;height:105px;border-radius:13px}
.s360-mobile-single .s360-group-card__body{padding:0}
@media(max-width:390px){.s360-mobile-single .s360-group-card{grid-template-columns:92px minmax(0,1fr)}.s360-mobile-single .s360-group-card__photo{width:92px;height:92px}}

/* v11.3.37 — compact vertical rhythm around map */
#s360-stay-map-block{
  margin-top:8px !important;
  margin-bottom:10px !important;
}
#s360-stay-map-block + section{
  margin-top:0 !important;
  padding-top:10px !important;
}
#s360-stay-map-block + *{
  scroll-margin-top:8px;
}
.s360-map-toggle{
  padding-top:11px;
  padding-bottom:11px;
}
.s360-map-toggle__icon{
  width:44px;
  height:44px;
  flex-basis:44px;
}
.s360-group-card__variant{
  color:#234c3f;
  font-size:12.5px;
  font-weight:800;
}
@media(max-width:720px){
  #s360-stay-map-block{
    width:calc(100% - 16px);
    margin-top:4px !important;
    margin-bottom:6px !important;
  }
  #s360-stay-map-block + section{
    padding-top:6px !important;
  }
  .s360-map-toggle{
    min-height:62px;
    padding:8px 10px;
  }
  .s360-map-toggle__icon{
    width:38px;
    height:38px;
    flex-basis:38px;
  }
  .s360-map-toggle__title{font-size:16px}
  .s360-map-toggle__sub{margin-top:2px;font-size:11.5px}
  .s360-map-shell.is-open .s360-map-panel{
    height:54vh;
    min-height:350px;
    max-height:500px;
  }
  .s360-mobile-group__head{margin-bottom:6px}
}

/* v11.3.38 — real surrounding-section spacing fix.
   The empty space is created by neighboring page sections, not by the map's own margins. */

/* Pull the map upward into the visual gap left by the hero section. */
#s360-stay-map-block{
  margin-top:-72px !important;
  margin-bottom:-58px !important;
  position:relative;
  z-index:3;
}

/* Pull the immediately following search/catalog area upward as well. */
#s360-stay-map-block + section,
#s360-stay-map-block + div,
#s360-stay-map-block + main,
#s360-stay-map-block + *{
  margin-top:0 !important;
}

/* When collapsed, keep the map strip visually close to both neighbors. */
#s360-stay-map-block .s360-map-shell{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Desktop: compensate for the large section paddings surrounding the insertion point. */
@media(min-width:721px){
  #s360-stay-map-block{
    transform:translateY(-4px);
  }
}

/* Mobile: much more aggressive compaction because vertical space is scarce. */
@media(max-width:720px){
  #s360-stay-map-block{
    margin-top:-34px !important;
    margin-bottom:-34px !important;
  }

  #s360-stay-map-block .s360-map-toggle{
    min-height:58px !important;
    padding:7px 9px !important;
  }

  #s360-stay-map-block .s360-map-toggle__icon{
    width:36px !important;
    height:36px !important;
    flex-basis:36px !important;
  }

  #s360-stay-map-block .s360-map-toggle__title{
    font-size:15.5px !important;
  }

  #s360-stay-map-block .s360-map-toggle__sub{
    font-size:11px !important;
    line-height:1.15 !important;
  }

  #s360-stay-map-block .s360-map-shell.is-open .s360-map-panel{
    min-height:330px !important;
    height:50vh !important;
    max-height:470px !important;
  }
}

/* Very small screens: avoid over-pulling into the hero copy. */
@media(max-width:390px){
  #s360-stay-map-block{
    margin-top:-24px !important;
    margin-bottom:-28px !important;
  }
}
