/* FlowersMafia custom messenger widget */
.fm-contact-widget,
.fm-contact-widget * { box-sizing: border-box; }

.fm-contact-widget {
  --fm-black: #050505;
  --fm-ink: #181018;
  --fm-muted: #6f6570;
  --fm-purple: #7b276f;
  --fm-lilac: #b783c8;
  --fm-lilac-2: #c999d7;
  --fm-line: rgba(123, 39, 111, .16);
  --fm-shadow: 0 24px 70px rgba(20, 8, 18, .24);
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 2147482600;
  font-family: Georgia, 'Times New Roman', serif;
  color: var(--fm-ink);
}

.fm-contact-toggle {
  width: 66px;
  height: 66px;
  border: 0;
  border-radius: 24px;
  display: grid;
  place-items: center;
  color: #fff;
  background:
    radial-gradient(circle at 28% 20%, rgba(255,255,255,.32), transparent 26%),
    linear-gradient(135deg, var(--fm-black) 0%, #1a1119 46%, var(--fm-purple) 100%);
  box-shadow: 0 18px 44px rgba(123, 39, 111, .34);
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease;
  position: relative;
}
.fm-contact-toggle:hover { transform: translateY(-3px); box-shadow: 0 22px 54px rgba(123, 39, 111, .44); }
.fm-contact-widget.is-open .fm-contact-toggle {
  transform: translateY(0) scale(.94);
  background: #fff;
  color: var(--fm-purple);
  border: 1px solid rgba(123,39,111,.22);
}
.fm-contact-toggle svg { width: 31px; height: 31px; }
.fm-contact-pulse { position:absolute; inset:-8px; border-radius:30px; border:1px solid rgba(183,131,200,.52); animation: fmPulse 2.4s ease-out infinite; pointer-events:none; }
@keyframes fmPulse { 0% { transform: scale(.82); opacity: .78; } 70%,100% { transform: scale(1.22); opacity: 0; } }

.fm-contact-panel {
  position: absolute;
  right: 0;
  bottom: 82px;
  width: 358px;
  border-radius: 30px;
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(123,39,111,.15);
  box-shadow: var(--fm-shadow);
  overflow: hidden;
  transform: translateY(14px) scale(.96);
  transform-origin: right bottom;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.fm-contact-widget.is-open .fm-contact-panel { opacity: 1; pointer-events:auto; transform: translateY(0) scale(1); }

.fm-contact-head {
  padding: 22px 22px 18px;
  background:
    radial-gradient(circle at 18% 12%, rgba(183,131,200,.34), transparent 36%),
    linear-gradient(135deg, rgba(5,5,5,.96), rgba(27,16,28,.92) 55%, rgba(123,39,111,.88));
  color: #fff;
}
.fm-contact-top { display:flex; align-items:center; gap:14px; }
.fm-contact-mark {
  width: 68px;
  height: 68px;
  flex: 0 0 68px;
  border-radius: 24px;
  display:grid;
  place-items:center;
  background:#fff;
  color:#111;
  border: 1px solid rgba(255,255,255,.64);
  box-shadow: 0 14px 30px rgba(0,0,0,.26);
  position:relative;
  overflow:hidden;
  font-size: 19px;
  font-weight: 900;
  letter-spacing: -.08em;
  line-height: .95;
  text-transform: uppercase;
}
.fm-contact-mark:before,
.fm-contact-mark:after{
  content:'';
  position:absolute;
  border-radius:50%;
  background:rgba(123,39,111,.13);
}
.fm-contact-mark:before{width:56px;height:56px;left:-22px;top:-18px;}
.fm-contact-mark:after{width:42px;height:42px;right:-14px;bottom:-12px;}
.fm-contact-mark span{position:relative; z-index:1;}
.fm-contact-status { display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.13); color:#fff; font-size:12px; font-weight:800; letter-spacing:.01em; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; }
.fm-contact-status:before { content:''; width:8px; height:8px; border-radius:50%; background:#35df7e; box-shadow:0 0 0 4px rgba(53,223,126,.16); }
.fm-contact-title { margin:9px 0 0; font-size:23px; line-height:1.12; font-weight:700; color:#fff; letter-spacing:-.02em; }
.fm-contact-subtitle { margin:14px 0 0; color:rgba(255,255,255,.82); font-size:14px; line-height:1.45; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; }

.fm-contact-actions { padding: 14px 14px 16px; display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }
.fm-contact-link { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:9px; min-height:108px; padding:13px 9px; border-radius:22px; background:#fff; border:1px solid var(--fm-line); text-decoration:none!important; color:var(--fm-ink)!important; transition: transform .18s ease, border-color .18s ease, background .18s ease; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; }
.fm-contact-link:hover { transform:translateY(-2px); border-color:rgba(123,39,111,.32); background:#fff9fe; }
.fm-contact-icon { flex:0 0 42px; width:42px; height:42px; border-radius:16px; display:grid; place-items:center; color:#fff; }
.fm-contact-icon svg { width:21px; height:21px; display:block; }
.fm-contact-wa .fm-contact-icon { background:#25D366; }
.fm-contact-tg .fm-contact-icon { background:#229ED9; }
.fm-contact-viber .fm-contact-icon { background:#7360F2; }
.fm-contact-phone .fm-contact-icon { background:linear-gradient(135deg,#111,#7b276f); }
.fm-contact-text strong { display:block; font-size:14px; font-weight:850; }
.fm-contact-text span { display:none; margin-top:2px; font-size:12px; color:var(--fm-muted); }
.fm-contact-foot { padding:8px 20px 18px; font-size:12px; color:#7d717d; text-align:center; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; }

.fm-contact-nudge {
  position:absolute;
  right:78px;
  bottom:10px;
  width:262px;
  padding:13px 15px;
  border-radius:18px 18px 6px 18px;
  background:#fff;
  color:var(--fm-ink);
  border:1px solid rgba(123,39,111,.12);
  box-shadow:0 16px 42px rgba(0,0,0,.18);
  font-size:13px;
  line-height:1.35;
  font-weight:500;
  opacity:0;
  transform:translateY(8px) scale(.96);
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
}
.fm-contact-nudge:after { content:''; position:absolute; right:-7px; bottom:18px; width:14px; height:14px; background:#fff; border-right:1px solid rgba(123,39,111,.12); border-bottom:1px solid rgba(123,39,111,.12); transform:rotate(-45deg); }
.fm-contact-nudge.is-visible { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.fm-contact-nudge strong { display:block; margin-bottom:2px; font-weight:800; color:var(--fm-purple); }
.fm-contact-nudge button { position:absolute; top:6px; right:7px; width:22px; height:22px; border:0; background:transparent; color:#9b918d; cursor:pointer; font-size:18px; line-height:1; }
.fm-contact-nudge-text { padding-right:16px; }

@media (max-width: 767px) {
  .fm-contact-widget { right:18px; bottom:calc(18px + env(safe-area-inset-bottom,0px)); }
  .fm-contact-toggle { width:62px; height:62px; border-radius:22px; }
  .fm-contact-panel { position:fixed; left:12px; right:12px; bottom:calc(92px + env(safe-area-inset-bottom,0px)); width:auto; border-radius:28px; transform-origin:right bottom; }
  .fm-contact-head { padding:20px 20px 16px; }
  .fm-contact-title { font-size:21px; }
  .fm-contact-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:14px 12px 16px; }
  .fm-contact-link { min-height:96px; padding:12px 8px; border-radius:20px; }
  .fm-contact-icon { width:42px; height:42px; flex-basis:42px; border-radius:15px; }
  .fm-contact-text strong { font-size:13px; }
  .fm-contact-nudge { right:72px; bottom:8px; width:min(245px, calc(100vw - 108px)); padding:12px 14px; font-size:12.5px; }
}
@media (prefers-reduced-motion: reduce) { .fm-contact-widget *, .fm-contact-pulse { animation:none!important; transition:none!important; } }
