/* Messenger modal + mobile direct-contact bar */

/* -------------------------
   DESKTOP BOOKING MODAL
------------------------- */
.dao-modal{
  position:fixed;
  inset:0;
  z-index:5000;
  display:none;
  place-items:center;
  padding:24px;
}
.dao-modal.is-open{display:grid}

.dao-modal__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  cursor:pointer;
}

.dao-modal__panel{
  position:relative;
  z-index:1;
  width:min(820px,100%);
  background:
    radial-gradient(circle at 88% 8%,rgba(130,8,28,.12),transparent 28%),
    linear-gradient(180deg,#121214,#080809);
  border:1px solid rgba(189,146,91,.3);
  padding:38px;
  box-shadow:0 34px 110px rgba(0,0,0,.76);
}

.dao-modal__close{
  position:absolute;
  right:14px;
  top:12px;
  width:36px;
  height:36px;
  background:rgba(7,7,8,.72);
  border:1px solid rgba(255,255,255,.13);
  color:#fff;
  font-size:22px;
  cursor:pointer;
  z-index:3;
}

.dao-modal__heading{
  max-width:610px;
  margin-bottom:24px;
}
.dao-modal h2{
  margin:0 0 8px;
  font-size:34px;
  line-height:1.08;
}
.dao-modal__intro{
  margin:0;
  color:rgba(245,242,237,.66);
  font-size:13px;
  line-height:1.7;
}

.dao-modal__booking{
  display:grid;
  grid-template-columns:minmax(0,1fr) 268px;
  gap:22px;
  align-items:stretch;
}

.dao-messenger-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-content:start;
}

.dao-messenger-card{
  min-width:0;
  min-height:84px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 16px;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(145deg,rgba(17,17,19,.98),rgba(10,10,11,.99));
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.dao-messenger-card img{
  width:40px;
  height:40px;
  object-fit:contain;
  border-radius:8px;
}
.dao-messenger-card span{
  min-width:0;
  color:#f5f2ed;
  font-size:13px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.dao-messenger-card b{
  color:var(--dao-red-hi);
  font-size:16px;
  font-weight:400;
}
.dao-messenger-card.is-active{
  border-color:rgba(201,27,51,.7);
  background:
    linear-gradient(145deg,rgba(69,8,18,.32),rgba(12,12,13,.99));
  box-shadow:inset 0 0 0 1px rgba(201,27,51,.12);
}
@media(hover:hover){
  .dao-messenger-card:hover{
    transform:translateY(-1px);
    border-color:rgba(201,27,51,.58);
  }
}

.dao-modal__qr{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px;
  border:1px solid rgba(189,146,91,.2);
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 30%),
    #0c0c0d;
  text-align:center;
}
.dao-modal__qr-frame{
  width:188px;
  height:188px;
  display:grid;
  place-items:center;
  padding:10px;
  margin-bottom:13px;
  background:#fff;
  border-radius:5px;
  box-shadow:0 16px 42px rgba(0,0,0,.32);
}
.dao-modal__qr-frame img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:auto;
}
.dao-modal__qr strong{
  display:block;
  margin-bottom:5px;
  color:#fff;
  font-size:17px;
}
.dao-modal__qr p{
  margin:0 0 13px;
  color:rgba(245,242,237,.54);
  font-size:10px;
  line-height:1.55;
}
.dao-modal__open-link{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:100%;
  min-height:40px;
  padding:8px 10px;
  border:1px solid rgba(201,27,51,.5);
  background:rgba(109,8,24,.24);
  color:#fff;
  font-size:10px;
  font-weight:700;
  line-height:1.35;
  text-align:center;
}
.dao-modal__open-link span{
  color:var(--dao-red-hi);
}

/* -------------------------
   MOBILE FLOATING MESSENGER
------------------------- */
.dao-mobile-messengers{
  display:none;
}

@media(max-width:760px){
  body{
    padding-bottom:calc(80px + env(safe-area-inset-bottom));
  }

  .dao-mobile-messengers{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:4200;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:center;
    min-height:80px;
    padding:8px 14px calc(8px + env(safe-area-inset-bottom));
    border:0;
    background:
      linear-gradient(180deg,rgba(11,11,13,.91),rgba(4,4,5,.985));
    box-shadow:0 -14px 38px rgba(0,0,0,.5);
    backdrop-filter:blur(18px) saturate(1.12);
    -webkit-backdrop-filter:blur(18px) saturate(1.12);
  }

  .dao-mobile-messengers>a{
    position:relative;
    min-width:0;
    min-height:64px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:18px;
    background:transparent;
    color:#fff;
    text-align:center;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    transition:transform .16s ease,background .16s ease;
  }

  .dao-mobile-messengers>a::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:58px;
    height:58px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.13) 0,rgba(255,255,255,.045) 42%,transparent 72%);
    opacity:.52;
    transform:translate(-50%,-50%) scale(.9);
    pointer-events:none;
    animation:dao-mobile-messenger-glow 3.2s ease-in-out infinite;
  }

  .dao-mobile-messengers>a:nth-child(2)::before{animation-delay:.35s}
  .dao-mobile-messengers>a:nth-child(3)::before{animation-delay:.7s}
  .dao-mobile-messengers>a:nth-child(4)::before{animation-delay:1.05s}

  .dao-mobile-messengers>a:active{
    transform:scale(.92);
    background:rgba(255,255,255,.055);
  }

  .dao-mobile-messengers__icon{
    position:relative;
    z-index:1;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    overflow:visible;
    border:0;
    border-radius:13px;
    background:transparent;
    animation:dao-mobile-messenger-float 3.2s ease-in-out infinite;
  }
  .dao-mobile-messengers>a:nth-child(2) .dao-mobile-messengers__icon{animation-delay:.35s}
  .dao-mobile-messengers>a:nth-child(3) .dao-mobile-messengers__icon{animation-delay:.7s}
  .dao-mobile-messengers>a:nth-child(4) .dao-mobile-messengers__icon{animation-delay:1.05s}

  .dao-mobile-messengers__icon img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    border-radius:12px;
    filter:drop-shadow(0 6px 10px rgba(0,0,0,.36));
  }

  /* Icons are self-explanatory; keep the text out of the visual UI. */
  .dao-mobile-messengers__label{
    display:none;
  }

  @keyframes dao-mobile-messenger-float{
    0%,72%,100%{transform:translateY(0) scale(1)}
    82%{transform:translateY(-4px) scale(1.055)}
    90%{transform:translateY(-1px) scale(1.015)}
  }

  @keyframes dao-mobile-messenger-glow{
    0%,72%,100%{opacity:.34;transform:translate(-50%,-50%) scale(.86)}
    82%{opacity:.72;transform:translate(-50%,-50%) scale(1.06)}
    90%{opacity:.48;transform:translate(-50%,-50%) scale(.94)}
  }

  /* Existing bottom-sheet behavior remains; QR is desktop-only. */
  .dao-modal__booking{
    display:block;
  }
  .dao-modal__qr{
    display:none;
  }
}

@media(max-width:390px){
  body{
    padding-bottom:calc(74px + env(safe-area-inset-bottom));
  }
  .dao-mobile-messengers{
    min-height:74px;
    padding-inline:10px;
  }
  .dao-mobile-messengers>a{
    min-height:58px;
  }
  .dao-mobile-messengers>a::before{
    width:52px;
    height:52px;
  }
  .dao-mobile-messengers__icon{
    width:44px;
    height:44px;
  }
}

@media(prefers-reduced-motion:reduce){
  .dao-messenger-card{
    transition:none;
  }
  .dao-mobile-messengers>a::before,
  .dao-mobile-messengers__icon{
    animation:none;
  }
}
