/* Aidy Smith DJ — responsive booking recovery offer. Version 20261001-3. */
.booking-offer-inline[hidden],
.booking-offer-dialog [hidden] { display: none !important; }

.booking-offer-inline {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:1rem; padding:1rem 1.2rem; margin:.85rem 0 1.1rem;
  border:1px solid rgba(15,137,177,.28); border-radius:14px;
  background:linear-gradient(115deg,#eefaff,#f8fbff); color:#173148;
  box-shadow:0 6px 24px rgba(14,62,86,.07);
}
.booking-offer-inline strong { display:block; font-size:1rem; }
.booking-offer-inline small { display:block; margin-top:.2rem; color:#476277; }
.booking-offer-inline .btn { white-space:normal; }

.booking-offer-dialog {
  box-sizing:border-box; position:fixed; top:50dvh; left:50vw; right:auto; bottom:auto;
  transform:translate(-50%,-50%); width:min(490px,calc(100vw - 32px));
  max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px);
  margin:0; padding:0; overflow:auto; border:1px solid rgba(125,213,245,.25);
  border-radius:22px; color:#f7fbff;
  background:
    radial-gradient(ellipse at 85% 0%,rgba(119,44,128,.37),transparent 57%),
    radial-gradient(ellipse at 0% 95%,rgba(0,194,222,.15),transparent 55%),
    linear-gradient(135deg,#11192c 0%,#0b1121 69%,#141026 100%);
  box-shadow:0 30px 95px rgba(1,3,15,.7),0 0 0 1px rgba(255,255,255,.06) inset;
  font-family:inherit; line-height:1.45;
}
.booking-offer-dialog::backdrop { background:rgba(3,7,18,.77); backdrop-filter:blur(4px); }
.booking-offer-dialog, .booking-offer-dialog * { box-sizing:border-box; }
.booking-offer-dialog__body {
  position:relative; display:flex; flex-direction:column; align-items:center;
  gap:0; padding:clamp(26px,5vw,39px) clamp(22px,5vw,40px) 30px;
  text-align:center;
}
.booking-offer-dialog__close {
  position:absolute; right:13px; top:11px; display:grid; place-items:center;
  width:36px; height:36px; padding:0; border:1px solid rgba(255,255,255,.12);
  border-radius:50%; background:rgba(255,255,255,.055); color:#e8f3fb;
  font-family:inherit; font-size:23px; font-weight:400; line-height:1; cursor:pointer;
  transition:background .15s ease,transform .15s ease;
}
.booking-offer-dialog__close:hover,.booking-offer-dialog__close:focus-visible {
  background:rgba(255,255,255,.18); transform:rotate(90deg);
}
.booking-offer-dialog__eyebrow {
  display:inline-flex; align-items:center; justify-content:center;
  padding:7px 12px; margin:2px 25px 20px;
  border:1px solid rgba(49,212,242,.39); border-radius:999px;
  background:rgba(36,185,216,.1); color:#83e7fa;
  font-size:10px; font-weight:800; letter-spacing:.16em;
}
.booking-offer-dialog__badge {
  margin:-3px 0 9px; color:#fff; font-size:clamp(65px,14vw,87px);
  line-height:1; font-weight:900; letter-spacing:-.075em;
  text-shadow:0 0 32px rgba(45,216,249,.14);
}
.booking-offer-dialog__badge span { color:#5ce5fa; font-size:.66em; letter-spacing:-.065em; }
.booking-offer-dialog__badge small {
  color:#5ce5fa; display:block; font-size:15px; font-weight:850;
  line-height:1.05; letter-spacing:.29em; margin:3px 0 0 8px;
}
.booking-offer-dialog__title {
  margin:6px 0 11px; max-width:370px; color:#fff;
  font-size:clamp(22px,5vw,29px); font-weight:850; line-height:1.16;
  letter-spacing:-.035em;
}
.booking-offer-dialog__description {
  margin:0 0 20px; max-width:378px; color:#cbd5e5;
  font-size:14px; line-height:1.65;
}
.booking-offer-dialog__code {
  width:100%; padding:13px 15px 14px; margin:0 0 17px;
  border:1px dashed rgba(112,227,248,.62); border-radius:12px;
  background:rgba(24,144,175,.12);
}
.booking-offer-dialog__code-label {
  display:block; margin:0 0 3px; color:#b8d8e5;
  font-size:10px; font-weight:800; letter-spacing:.15em;
}
.booking-offer-dialog__code strong {
  display:block; color:#fff; font-size:25px; font-weight:850;
  letter-spacing:.19em; line-height:1.32;
}
.booking-offer-dialog__code span[data-offer-minimum] {
  display:block; margin-top:3px; color:#a9c1d0; font-size:11px;
}
.booking-offer-dialog__primary {
  display:flex; justify-content:center; align-items:center; gap:6px;
  width:100%; min-height:52px; padding:12px 16px;
  border:0; border-radius:11px; background:linear-gradient(100deg,#83e4f4,#40c6df);
  color:#09202e; font-family:inherit; font-size:14px; font-weight:850;
  box-shadow:0 7px 25px rgba(45,203,233,.23); cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.booking-offer-dialog__primary::after { content:'→'; font-size:19px; line-height:1; margin-left:3px; }
.booking-offer-dialog__primary:hover,.booking-offer-dialog__primary:focus-visible {
  transform:translateY(-1px); filter:brightness(1.07);
  box-shadow:0 10px 28px rgba(45,203,233,.32);
}
.booking-offer-dialog__decline {
  display:inline-block; align-self:center; margin:15px 0 0; padding:5px 12px;
  border:0; background:transparent; color:#b4bfd0;
  font-family:inherit; font-size:12px; text-decoration:underline;
  text-decoration-color:rgba(180,191,208,.3); text-underline-offset:4px; cursor:pointer;
}
.booking-offer-dialog__decline:hover,.booking-offer-dialog__decline:focus-visible { color:#fff; }
.booking-offer-dialog button:focus-visible { outline:2px solid #85edfd; outline-offset:3px; }
@media (max-width:480px) {
  .booking-offer-dialog { max-height:calc(100dvh - 20px); border-radius:17px; }
  .booking-offer-dialog__body { padding:28px 20px 23px; }
  .booking-offer-dialog__badge { font-size:67px; }
  .booking-offer-dialog__eyebrow { margin-bottom:17px; }
  .booking-offer-dialog__description { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) {
  .booking-offer-dialog__close,.booking-offer-dialog__primary { transition:none; }
}

.booking-offer-dialog__terms { margin: 10px 0 14px; font-size: .76rem; line-height: 1.45; color: #d7dce3; text-align: center; }
