/* Contact sizing, opacity and shadows follow the inspected Belle Maison controls. */
.dream-quick-contact {
  position: fixed;
  z-index: 90;
  display: flex;
}
.dream-quick-contact--desktop {
  right: 25px;
  bottom: 60px;
  flex-direction: column;
  gap: 20px;
  --dream-contact-surface: #00612e;
}
.dream-quick-contact .dream-quick-contact__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  border-radius: 50%;
  border: 0;
  padding: 0;
  cursor: pointer;
  appearance: none;
  background: var(--dream-contact-surface);
  /* Global anchor hover colors must not turn the icon green on green. */
  color: #fff !important;
  opacity: .9;
  box-shadow: 0 4px 12px rgba(0,0,0,.25), 0 2px 6px rgba(0,0,0,.15);
  transition: none !important;
}
.dream-quick-contact__link:focus-visible { outline: 3px solid #00612e; outline-offset: 4px; opacity: 1; }
nav.dream-quick-contact:is(.dream-quick-contact--desktop, .dream-quick-contact--mobile) a.dream-quick-contact__link:hover {
  color: #fff !important;
}
.dream-quick-contact__link svg { display: block; width: 27px; height: 27px; }
.dream-quick-contact__link--zalo img { display:block;width:36px;height:36px;object-fit:contain; }
.dream-quick-contact--mobile { display: none; }
body.mobile-nav-open .dream-quick-contact,
html.dp-lightbox-open .dream-quick-contact { display: none !important; }
@media (max-width: 991px) {
  .dream-quick-contact--desktop { display: none; }
  .dream-quick-contact--mobile {
    display: flex;
    right: 20px;
    bottom: calc(max(25px, var(--dream-contact-footer-offset, 0px)) + env(safe-area-inset-bottom, 0px));
    gap: 8px;
    --dream-contact-surface: #00612e;
  }
  .dream-quick-contact--mobile .dream-quick-contact__link {
    color: #fff;
    opacity: 1;
    box-shadow: 0 4px 12px rgba(193,156,81,.25), 0 2px 6px rgba(193,156,81,.15);
  }
}
@media (prefers-reduced-motion: reduce) { .dream-quick-contact__link { transition: none; } }

/* WeChat QR modal belongs to the existing floating contact controls. */
html.dream-wechat-open { overflow:hidden; }
.dream-wechat-dialog { width:min(460px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:20px;border:0;border-radius:8px;box-sizing:border-box;background:#fff;color:#253b2b;box-shadow:0 12px 48px rgba(0,0,0,.24);overflow:auto; }
.dream-wechat-dialog:not([open]) { display:none; }
.dream-wechat-dialog::backdrop { background:rgba(0,0,0,.65); }
.dream-wechat-dialog__content { position:relative;text-align:center; }
.dream-wechat-dialog h2 { margin:0 36px 8px;font-size:22px;color:#00612e; }
.dream-wechat-dialog p { margin:0 12px 12px;font-size:14px;line-height:1.5;letter-spacing:0; }
.dream-wechat-dialog__close { position:absolute;top:-12px;right:-12px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:0;background:#fff;color:#00612e;cursor:pointer;border-radius:50%; }
.dream-wechat-dialog__close svg { width:24px;height:24px; }
.dream-wechat-dialog__close:focus-visible { outline:2px solid #00612e;outline-offset:2px; }
.dream-wechat-dialog .dream-wechat-dialog__qr { position:static;display:block;width:100%;height:auto;max-height:calc(100dvh - 155px);object-fit:contain;margin:0; }


/* Contact page uses the same controls in a larger, static horizontal row. */
.dream-quick-contact.dream-quick-contact--inline {
  position:static;
  z-index:auto;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 0 28px;
  padding:4px 0;
  width:auto;
}
.dream-quick-contact--inline .dream-quick-contact__link {
  width:64px;
  height:64px;
  flex-basis:64px;
}
.dream-quick-contact--inline .dream-quick-contact__link svg { width:34px;height:34px; }
.dream-quick-contact--inline .dream-quick-contact__link--zalo img { width:46px;height:46px; }
@media(max-width:991px) {
  .dream-quick-contact--inline.dream-quick-contact--desktop { display:none; }
  .dream-quick-contact--inline .dream-quick-contact__link { width:60px;height:60px;flex-basis:60px; }
}
