/* lagunasurin.com — модуль «плюс» (30.09.2026): кнопка связи, избранное, валюты, метки, активность */
:root{ --lsp-blue:#0071e3; --lsp-ink:#1d1d1f; --lsp-mute:#6e6e73; --lsp-line:#e8e8ed; --lsp-wa:#25d366; --lsp-tg:#2aabee; }

/* кнопка связи в правом нижнем углу */
.lsp-fab{ position:fixed; right:20px; bottom:20px; z-index:9990; font-family:inherit; }
.lsp-fab-btn{ width:60px; height:60px; border-radius:50%; border:0; cursor:pointer; background:var(--lsp-blue); color:#fff;
  box-shadow:0 8px 24px rgba(0,113,227,.35); display:flex; align-items:center; justify-content:center; transition:transform .2s; }
.lsp-fab-btn:hover{ transform:scale(1.06); }
.lsp-fab-btn:focus-visible{ outline:3px solid #99c7ff; outline-offset:3px; }
.lsp-fab-btn svg{ width:28px; height:28px; }
.lsp-fab-btn .x{ display:none; }
.lsp-fab.open .lsp-fab-btn .x{ display:block; }
.lsp-fab.open .lsp-fab-btn .c{ display:none; }
.lsp-fab-pulse{ position:absolute; inset:0; border-radius:50%; background:var(--lsp-blue); opacity:.35; animation:lspPulse 2.4s infinite; pointer-events:none; }
.lsp-fab.open .lsp-fab-pulse{ display:none; }
@keyframes lspPulse{ 0%{ transform:scale(1); opacity:.35 } 70%{ transform:scale(1.5); opacity:0 } 100%{ opacity:0 } }
.lsp-fab-panel{ position:absolute; right:0; bottom:74px; width:290px; background:#fff; border-radius:18px; padding:16px;
  box-shadow:0 18px 48px rgba(0,0,0,.18); display:none; }
.lsp-fab.open .lsp-fab-panel{ display:block; animation:lspIn .18s ease-out; }
@keyframes lspIn{ from{ opacity:0; transform:translateY(8px) } to{ opacity:1; transform:none } }
.lsp-fab-panel h4{ margin:0 0 4px; font-size:16px; color:var(--lsp-ink); }
.lsp-fab-panel .sub{ margin:0 0 12px; font-size:13px; color:var(--lsp-mute); line-height:1.4; }
.lsp-person{ padding:10px 0; border-top:1px solid var(--lsp-line); }
.lsp-person .nm{ font-size:13.5px; font-weight:600; color:var(--lsp-ink); margin-bottom:8px; }
.lsp-person .nm small{ font-weight:400; color:var(--lsp-mute); }
.lsp-row{ display:flex; gap:8px; }
.lsp-m{ flex:1; display:flex; align-items:center; justify-content:center; gap:6px; height:38px; border-radius:10px;
  color:#fff !important; text-decoration:none !important; font-size:13.5px; font-weight:600; }
.lsp-m svg{ width:17px; height:17px; }
.lsp-m--wa{ background:var(--lsp-wa); }
.lsp-m--tg{ background:var(--lsp-tg); }
.lsp-m--line{ background:#06c755; }
.lsp-m:hover{ filter:brightness(.95); }

/* мессенджеры у формы заявки на карточке */
.lsp-card-msg{ margin-top:12px; }
.lsp-card-msg .t{ font-size:12.5px; color:var(--lsp-mute); margin-bottom:6px; text-align:center; }

/* избранное */
.lsp-heart{ position:absolute; top:12px; right:12px; z-index:5; width:38px; height:38px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(255,255,255,.92); display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.lsp-heart svg{ width:20px; height:20px; fill:none; stroke:var(--lsp-ink); stroke-width:2; transition:transform .15s; }
.lsp-heart.on svg{ fill:#ff3b30; stroke:#ff3b30; }
.lsp-heart:active svg{ transform:scale(.85); }
.lsp-heart--big{ position:static; width:auto; height:36px; padding:0 14px; border-radius:18px; gap:6px; font-size:13.5px;
  color:var(--lsp-ink); box-shadow:none; border:1px solid var(--lsp-line); background:#fff; margin-top:12px; }
.lsp-favlink{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; flex:none;
  color:inherit; text-decoration:none; margin-left:6px; }
.lsp-favlink:hover{ color:var(--lsp-blue); }
.lsp-favlink svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; }
.lsp-favlink b{ position:absolute; top:0; right:-3px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#ff3b30; color:#fff; font-size:10px;
  display:inline-flex; align-items:center; justify-content:center; font-weight:600; }
.lsp-favlink b:empty{ display:none; }
.lsp-fav-empty{ max-width:560px; margin:40px auto; text-align:center; color:var(--lsp-mute); font-size:16px; line-height:1.5; }

/* валюты */
.lsp-cur{ flex:none; margin-left:8px; font-size:13.5px; border:1px solid var(--lsp-line); border-radius:8px; padding:3px 4px; background:#fff; color:inherit; cursor:pointer; }
/* меню шапки не сжимаем — иначе «Жилые комплексы» наезжают на поиск */
.site-nav{ flex-shrink:0; }
.site-find{ flex-shrink:1; min-width:110px; }
.lsp-approx{ display:block; font-size:12.5px; font-weight:500; color:var(--lsp-mute); margin-top:2px; }

/* метки на карточках каталога */
.lsp-chips{ display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 2px; }
.lsp-chip{ font-size:12px; line-height:1; padding:6px 9px; border-radius:20px; background:#f2f6fc; color:#0a4a8f; white-space:nowrap; }
.lsp-chip--sea{ background:#e8f6fb; color:#05668d; }
.lsp-chip--pool{ background:#eaf3ff; color:#0058b0; }
.lsp-chip--new{ background:#fff2e5; color:#a14d00; }
.lsp-chip--pets{ background:#f1f8ec; color:#3b6d11; }
.lsp-chip--fam{ background:#f5f0fb; color:#5b3a8e; }

/* активность (реальные данные) */
.lsp-live{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--lsp-ink); background:#f5f5f7; border-radius:12px; padding:9px 12px; margin-top:12px; }
.lsp-live i{ width:8px; height:8px; border-radius:50%; background:#34c759; flex:none; box-shadow:0 0 0 0 rgba(52,199,89,.6); animation:lspDot 2s infinite; }
@keyframes lspDot{ 0%{ box-shadow:0 0 0 0 rgba(52,199,89,.6) } 70%{ box-shadow:0 0 0 8px rgba(52,199,89,0) } 100%{ box-shadow:0 0 0 0 rgba(52,199,89,0) } }
.lsp-toast{ position:fixed; left:20px; bottom:20px; z-index:9980; max-width:320px; background:#fff; border-radius:14px; padding:12px 14px 12px 12px;
  box-shadow:0 12px 36px rgba(0,0,0,.16); display:flex; gap:10px; align-items:flex-start; font-size:13.5px; line-height:1.4; color:var(--lsp-ink);
  transform:translateY(20px); opacity:0; transition:all .35s; pointer-events:none; }
.lsp-toast.show{ transform:none; opacity:1; pointer-events:auto; }
.lsp-toast i{ width:8px; height:8px; border-radius:50%; background:#34c759; flex:none; margin-top:6px; }
.lsp-toast small{ display:block; color:var(--lsp-mute); font-size:12px; }
.lsp-toast button{ border:0; background:none; color:var(--lsp-mute); cursor:pointer; font-size:16px; line-height:1; padding:0 0 0 6px; }

@media (max-width:640px){
  .lsp-fab{ right:14px; bottom:14px; }
  .lsp-fab-btn{ width:54px; height:54px; }
  .lsp-fab-panel{ width:calc(100vw - 28px); }
  .lsp-toast{ left:14px; right:84px; bottom:14px; max-width:none; }
  .lsp-cur{ margin-left:6px; }
}
@media (prefers-reduced-motion:reduce){
  .lsp-fab-pulse, .lsp-live i{ animation:none; }
  .lsp-toast{ transition:none; }
}
/* на средних экранах шапке тесно: значки соцсетей прячем — те же мессенджеры есть в кнопке в углу */
@media (max-width:1180px){ .site-social{ display:none !important; } }
@media (max-width:1180px){ .site-find{ width:auto !important; flex:0 1 140px !important; min-width:100px; } .site-find input{ width:100% !important; min-width:0; } }
@media (max-width:1010px) and (min-width:901px){ .site-find{ display:none !important; } }

/* согласие на обработку персональных данных */
.lsp-sogl{ display:flex; gap:9px; align-items:flex-start; margin:10px 0; font-size:12.5px; line-height:1.4; color:var(--lsp-mute); text-align:left; cursor:pointer; }
.lsp-sogl input{ flex:none; width:18px; height:18px; margin:0; accent-color:var(--lsp-blue); cursor:pointer; }
.lsp-sogl a{ color:inherit; text-decoration:underline; }
.lsp-sogl.err{ color:#d70015; }
.lsp-sogl.err input{ outline:2px solid #d70015; outline-offset:1px; }

/* плашка про cookies */
.lsp-cookie{ position:fixed; left:20px; right:96px; bottom:20px; z-index:9985; max-width:760px; display:flex; gap:14px; align-items:center;
  background:#1d1d1f; color:#f5f5f7; border-radius:14px; padding:12px 14px 12px 16px; font-size:13px; line-height:1.4; box-shadow:0 12px 36px rgba(0,0,0,.25); }
.lsp-cookie a{ color:#fff; text-decoration:underline; }
.lsp-cookie button{ flex:none; border:0; border-radius:10px; background:#fff; color:#1d1d1f; font-weight:600; font-size:13px; padding:9px 16px; cursor:pointer; }
@media (max-width:640px){ .lsp-cookie{ left:10px; right:76px; bottom:10px; flex-direction:column; align-items:stretch; gap:8px; font-size:12.5px; } }
