/* Pulsing Booking Button styles */
.pbb-wrap{
  position:fixed;
  bottom:var(--pbb-bottom,24px);
  z-index:999999;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  pointer-events: none; /* wrapper doesn't intercept clicks */
}
.pbb-wrap.pbb-right{ right: var(--pbb-right,24px); }
.pbb-wrap.pbb-left{ left: var(--pbb-left,24px); }

.pbb-trail{
  position:absolute;
  inset:-10px -18px;
  border-radius:9999px;
  background: var(--pbb-light, #e99a95);
  opacity:.45;
  filter: saturate(90%);
  box-shadow:
    0 6px 0 rgba(0,0,0,.03) inset,
    0 8px 22px rgba(210,58,49,.30);
  animation:pbb-breathe 2.2s ease-in-out infinite;
  pointer-events:none;
}

.pbb-btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 28px;
  min-width: 240px;
  border-radius:9999px;
  text-decoration:none;
  background: linear-gradient(180deg, color-mix(in oklab, var(--pbb-main) 92%, black 0%), color-mix(in oklab, var(--pbb-main) 78%, black 8%));
  color:var(--pbb-text,#fff);
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
  box-shadow:
    0 10px 30px rgba(16,24,40,.18),
    0 2px 0 rgba(0,0,0,.06) inset;
  transition: transform .15s ease, box-shadow .2s ease;
  pointer-events:auto; /* clickable */
}
.pbb-btn:hover{ transform: translateY(-2px); }
.pbb-btn:active{ transform: translateY(0); }

/* Ring pulse */
.pbb-btn::before{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:inherit;
  background: var(--pbb-main, #d23a31);
  opacity:.35;
  filter: blur(1px);
  animation:pbb-pulse 2.2s ease-out infinite;
  z-index:-1;
}

/* Soft inner highlight */
.pbb-btn::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.08));
  mix-blend-mode: soft-light;
  pointer-events:none;
}

.pbb-label{ position:relative; z-index:1; }

@keyframes pbb-pulse{
  0%{ transform:scale(1); opacity:.35 }
  60%{ transform:scale(1.14); opacity:.10 }
  100%{ transform:scale(1.2); opacity:0 }
}

@keyframes pbb-breathe{
  0%,100%{ transform: translateZ(0) scale(1); opacity:.45 }
  50%{ transform: translateZ(0) scale(1.03); opacity:.55 }
}

/* Mobile */
@media (max-width:480px){
  .pbb-btn{ min-width: unset; padding:12px 18px; font-size:14px; }
}
