.mfcw {
  --mfcw-brand: #89966f;
  --mfcw-size: 56px;
  position: fixed;
  bottom: 18px;
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 999999;
  width: var(--mfcw-size);
  height: var(--mfcw-size);
  font: 500 15px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  pointer-events: none;
  -webkit-tap-highlight-color: transparent;
}

.mfcw[data-position="right"] {
  right: 18px;
  right: max(18px, env(safe-area-inset-right));
}

.mfcw[data-position="left"] {
  left: 18px;
  left: max(18px, env(safe-area-inset-left));
}

.mfcw *, .mfcw *::before, .mfcw *::after { box-sizing: border-box; }
.mfcw svg { display: block; width: 25px; height: 25px; }

.mfcw__toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: var(--mfcw-size);
  height: var(--mfcw-size);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--mfcw-brand);
  box-shadow: 0 6px 22px rgba(35, 43, 29, .25);
  cursor: pointer;
  pointer-events: auto;
  transition: transform .2s ease, box-shadow .2s ease;
}

.mfcw__toggle:hover { transform: translateY(-1px); box-shadow: 0 8px 25px rgba(35, 43, 29, .3); }
.mfcw__toggle:focus-visible { outline: 3px solid rgba(137, 150, 111, .35); outline-offset: 4px; }
.mfcw__toggle svg { position: absolute; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; transition: opacity .16s ease, transform .2s ease; }
.mfcw__toggle-close { opacity: 0; transform: rotate(-80deg) scale(.7); }
.mfcw.is-open .mfcw__toggle-chat { opacity: 0; transform: rotate(80deg) scale(.7); }
.mfcw.is-open .mfcw__toggle-close { opacity: 1; transform: rotate(0) scale(1); }

.mfcw__menu {
  position: absolute;
  bottom: calc(var(--mfcw-size) + 12px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: max-content;
  max-width: calc(100vw - 36px);
  margin: 0;
  padding: 0;
  visibility: hidden;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}

.mfcw[data-position="right"] .mfcw__menu { right: 0; align-items: flex-end; }
.mfcw[data-position="left"] .mfcw__menu { left: 0; align-items: flex-start; }
.mfcw.is-open .mfcw__menu { visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition-delay: 0s; }

.mfcw__action {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #20211e;
  text-decoration: none !important;
  outline: none;
}

.mfcw[data-position="right"] .mfcw__action { flex-direction: row; }
.mfcw[data-position="left"] .mfcw__action { flex-direction: row-reverse; }

.mfcw__label {
  display: block;
  padding: 9px 12px;
  border: 1px solid rgba(0, 0, 0, .07);
  border-radius: 12px;
  color: #20211e;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .13);
  white-space: nowrap;
}

.mfcw__icon {
  display: grid;
  flex: 0 0 48px;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: #fff;
  background: var(--mfcw-brand);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .17);
  transition: transform .16s ease;
}

.mfcw__icon svg { width: 23px; height: 23px; fill: currentColor; stroke: none; }
.mfcw__action--booking .mfcw__icon { background: var(--mfcw-brand); }
.mfcw__action--booking .mfcw__icon svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mfcw__action--telegram .mfcw__icon { background: #26a5e4; }
.mfcw__action--whatsapp .mfcw__icon { background: #25d366; }
.mfcw__action--phone .mfcw__icon { background: var(--mfcw-brand); }
.mfcw__action:hover .mfcw__icon, .mfcw__action:focus-visible .mfcw__icon { transform: scale(1.06); }
.mfcw__action:focus-visible .mfcw__label { outline: 3px solid rgba(137, 150, 111, .35); outline-offset: 2px; }

@media (max-width: 600px) {
  .mfcw { --mfcw-size: 54px; bottom: 14px; bottom: max(14px, env(safe-area-inset-bottom)); }
  .mfcw[data-position="right"] { right: 14px; right: max(14px, env(safe-area-inset-right)); }
  .mfcw[data-position="left"] { left: 14px; left: max(14px, env(safe-area-inset-left)); }
  .mfcw__menu { max-width: calc(100vw - 28px); }
  .mfcw__icon { flex-basis: 46px; width: 46px; height: 46px; }
}

@media (prefers-reduced-motion: reduce) {
  .mfcw *, .mfcw *::before, .mfcw *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media print { .mfcw { display: none !important; } }

