/* ==========================================================================
   Pulse Moments — Ticket booking (2-step, dark luxury)
   ========================================================================== */
.pm-book-overlay {
  position: fixed; inset: 0; z-index: 100001; display: none; align-items: center; justify-content: center; padding: 20px;
  background: rgba(6,9,14,.74); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.pm-book-overlay.open { display: flex; animation: pm-bk-fade .25s ease; }
@keyframes pm-bk-fade { from { opacity: 0 } to { opacity: 1 } }
.pm-book-modal {
  position: relative; width: 100%; max-width: 520px;
  background: linear-gradient(180deg, #1c2333, #11161f);
  border: 1px solid rgba(201,162,75,.3); border-radius: 22px; overflow: hidden;
  box-shadow: 0 50px 100px -40px rgba(0,0,0,.9); animation: pm-bk-pop .3s cubic-bezier(.2,.8,.25,1);
}
@keyframes pm-bk-pop { from { transform: translateY(20px) scale(.96); opacity: 0 } to { transform: none; opacity: 1 } }

/* header */
.pm-book-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid rgba(255,255,255,.08); }
.pm-book-head__title { font-family:'Fraunces',Georgia,serif; font-size: 19px; font-weight: 700; color: #f5efe0; }
.pm-book-back { background: none; border: none; color: #c9a24b; font-size: 26px; line-height: 1; cursor: pointer; width: 30px; visibility: hidden; }
.pm-book-close { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #c8cdd8; width: 32px; height: 32px; border-radius: 50%; font-size: 20px; cursor: pointer; transition: all .2s; }
.pm-book-close:hover { background: #c9a24b; color: #11161f; }

/* hold timer */
.pm-book-timer { text-align: center; font-size: 13px; color: #9fb4d6; background: rgba(56,90,150,.16); padding: 11px; border-bottom: 1px solid rgba(255,255,255,.06); }
.pm-book-timer b { color: #e2c074; }

/* step body */
.pm-book-step { padding: 24px 24px 8px; }
.pm-book-sec-label { display: flex; justify-content: space-between; color: #8a93a6; font-size: 13px; font-weight: 600; margin-bottom: 14px; }

/* ticket type card (step 1) */
.pm-book-tickettype {
  display: flex; align-items: center; gap: 16px; justify-content: space-between;
  background: #0f141d; border: 1px solid rgba(201,162,75,.2); border-left: 4px solid #c9a24b;
  border-radius: 14px; padding: 20px;
}
.pm-book-tt__info h4 { font-family:'Fraunces',Georgia,serif; font-size: 18px; color: #f5efe0; margin: 0 0 6px; line-height: 1.3; }
.pm-book-tt__price { font-size: 20px; font-weight: 800; color: #e2c074; margin-bottom: 8px; }
.pm-book-tt__desc { font-size: 13px; color: #8a93a6; line-height: 1.5; margin: 0; max-width: 320px; }
.pm-book-tt__tag { display: inline-block; color: #c9a24b; font-size: 13px; font-weight: 700; border-bottom: 2px solid #c9a24b; padding-bottom: 8px; margin-bottom: 18px; }

/* qty stepper */
.pm-book-stepper { display: flex; align-items: center; border: 1.5px solid rgba(201,162,75,.4); border-radius: 999px; overflow: hidden; flex: 0 0 auto; }
.pm-book-stepper button { width: 38px; height: 38px; background: transparent; color: #c9a24b; border: none; font-size: 20px; cursor: pointer; transition: background .2s; }
.pm-book-stepper button:hover { background: rgba(201,162,75,.15); }
.pm-book-stepper input { width: 40px; height: 38px; text-align: center; background: transparent; border: none; color: #f5efe0; font-size: 16px; font-weight: 700; }

/* attendee fields (step 2) */
.pm-book-lbl { display: block; font-size: 13px; font-weight: 700; color: #c8cdd8; margin: 4px 0 6px; }
.pm-book-lbl small { color: #8a93a6; font-weight: 500; }
#pm-book-step2 input { width: 100%; box-sizing: border-box; padding: 13px 15px; margin-bottom: 14px; background: #0f141d; border: 1.5px solid rgba(255,255,255,.12); border-radius: 11px; color: #f5efe0; font-family:'Inter',sans-serif; font-size: 14.5px; outline: none; transition: border-color .2s; }
#pm-book-step2 input:focus { border-color: #c9a24b; }
#pm-book-step2 ::placeholder { color: #6b7280; }

/* footer bar */
.pm-book-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 24px; border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.2); }
.pm-book-foot__sum { color: #c8cdd8; font-size: 14px; }
.pm-book-foot__sum b { color: #e2c074; font-size: 16px; }
.pm-book-proceed, .pm-book-checkout {
  border: none; border-radius: 11px; padding: 13px 28px; cursor: pointer; font-weight: 800; font-size: 15px;
  background: linear-gradient(135deg, #c9a24b, #e2c074); color: #11161f; transition: transform .2s, filter .2s;
}
.pm-book-proceed:hover, .pm-book-checkout:hover { transform: translateY(-2px); filter: brightness(1.05); }
.pm-book-checkout:disabled { opacity: .6; cursor: wait; }

.pm-book-msg { font-size: 14px; margin-top: 6px; }
.pm-book-msg.ok { color: #5fcf8e; } .pm-book-msg.err { color: #ef6e6e; }

@media (max-width: 480px){
  .pm-book-tickettype { flex-direction: column; align-items: flex-start; }
  .pm-book-foot { flex-wrap: wrap; }
}

/* Promo code box inside booking modal */
.pm-book-promo{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 4px; }
.pm-book-promo input{ flex:1; min-width:140px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); color:#f5efe0; border-radius:10px; padding:11px 13px; font-size:14px; letter-spacing:1px; text-transform:uppercase; }
.pm-book-promo button{ background:rgba(201,162,75,.16); border:1px solid rgba(201,162,75,.5); color:#e2c074; font-weight:700; border-radius:10px; padding:11px 18px; cursor:pointer; font-size:14px; }
.pm-book-promo button:hover{ background:rgba(201,162,75,.28); }
.pm-book-promo-msg{ flex-basis:100%; font-size:13px; min-height:16px; color:#9aa3b2; }
.pm-book-promo-msg.ok{ color:#5fcf8e; } .pm-book-promo-msg.err{ color:#ef6e6e; }
