/* Cookie consent banner — neon dark, non-checkout pages only */
.yvpb-consent{
  position:fixed;
  left:12px;
  right:12px;
  bottom:calc(68px + env(safe-area-inset-bottom,0px));
  z-index:80;
  max-width:520px;
  margin:0 auto;
  background:linear-gradient(180deg,#14101f 0%,#0a0614 100%);
  border:1px solid #ffffff26;
  border-radius:16px;
  box-shadow:0 12px 40px #000000cc,0 0 0 1px #ff008033;
  padding:1rem 1.1rem 1.05rem;
  color:#fff;
  font-family:var(--body,Inter,system-ui,sans-serif);
  font-size:.9rem;
  line-height:1.45;
}
@media(min-width:900px){
  .yvpb-consent{
    left:auto;
    right:20px;
    bottom:20px;
    margin:0;
    width:min(420px,calc(100vw - 40px));
  }
}
.yvpb-consent[hidden]{display:none!important}
.yvpb-consent__title{
  font-family:var(--display,"Bebas Neue",Impact,sans-serif);
  font-size:1.45rem;
  letter-spacing:.06em;
  margin:0 0 .35rem;
  background:linear-gradient(90deg,#ff0080,#7928ca,#00f2fe);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.yvpb-consent__copy{
  margin:0 0 .85rem;
  color:#ffffffb3;
  font-size:.86rem;
}
.yvpb-consent__copy a{color:#00f2fe}
.yvpb-consent__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
}
.yvpb-consent__btn{
  flex:1 1 auto;
  min-width:calc(50% - .3rem);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--display,"Bebas Neue",Impact,sans-serif);
  font-size:1.05rem;
  letter-spacing:.08em;
  padding:.55rem .7rem;
  border-radius:999px;
  border:2px solid transparent;
  cursor:pointer;
  line-height:1;
  background:#ffffff14;
  color:#fff;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s;
}
.yvpb-consent__btn:hover{transform:translateY(-1px)}
.yvpb-consent__btn--accept{
  background:linear-gradient(135deg,#ff0080 0%,#7928ca 100%);
  box-shadow:0 6px 20px #ff00804d;
  min-width:calc(50% - .3rem);
}
.yvpb-consent__btn--reject{
  border-color:#ffffff4d;
  background:#ffffff0d;
  min-width:calc(50% - .3rem);
}
.yvpb-consent__btn--reject:hover{border-color:#00f2fe}
.yvpb-consent__btn--customize,
.yvpb-consent__btn--save{
  flex:1 1 100%;
  border-color:#ffffff33;
  background:transparent;
  font-size:.95rem;
}
.yvpb-consent__btn--save{
  background:linear-gradient(135deg,#ff0080 0%,#7928ca 100%);
  border-color:transparent;
  margin-top:.35rem;
}
.yvpb-consent__panel{margin-top:.55rem}
.yvpb-consent__panel[hidden]{display:none!important}
.yvpb-consent__actions[hidden]{display:none!important}
.yvpb-consent__row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.55rem 0;
  border-top:1px solid #ffffff14;
}
.yvpb-consent__row:first-child{border-top:0}
.yvpb-consent__label{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  min-width:0;
}
.yvpb-consent__label strong{
  font-size:.92rem;
  font-weight:600;
}
.yvpb-consent__label span{
  color:#ffffff99;
  font-size:.78rem;
}
.yvpb-consent__switch{
  position:relative;
  width:44px;
  height:26px;
  flex-shrink:0;
}
.yvpb-consent__switch input{
  opacity:0;
  width:0;
  height:0;
  position:absolute;
}
.yvpb-consent__switch i{
  position:absolute;
  inset:0;
  background:#ffffff26;
  border-radius:999px;
  transition:background .15s;
  pointer-events:none;
}
.yvpb-consent__switch i::after{
  content:"";
  position:absolute;
  width:20px;
  height:20px;
  left:3px;
  top:3px;
  border-radius:50%;
  background:#fff;
  transition:transform .15s;
}
.yvpb-consent__switch input:checked + i{
  background:linear-gradient(135deg,#ff0080,#7928ca);
}
.yvpb-consent__switch input:checked + i::after{
  transform:translateX(18px);
}
.yvpb-consent__switch input:disabled + i{
  opacity:.55;
  cursor:not-allowed;
}
.yvpb-consent__switch input:focus-visible + i{
  outline:2px solid #00f2fe;
  outline-offset:2px;
}


/* Checkout: pin to top so it never covers CONFIRM BOOKING / form / Stripe CTA */
.yvpb-consent.yvpb-consent--checkout{
  top: calc(12px + env(safe-area-inset-top,0px));
  bottom: auto;
  left: 12px;
  right: 12px;
  max-height: min(70vh, 520px);
  overflow: auto;
}
@media(min-width:900px){
  .yvpb-consent.yvpb-consent--checkout{
    top: 84px; /* below sticky header */
    right: 20px;
    left: auto;
    bottom: auto;
  }
}
/* Stay under cancellation/addon modals (.am z-index:200) */
.yvpb-consent{z-index:80}
