/* Booking Step 3 — Terms & Privacy in-page modal (UI only; no pricing impact) */

.booking-legal-dialog{
  position:fixed;
  inset:0;
  margin:auto;
  width:min(720px,calc(100% - 24px));
  max-height:calc(100dvh - 32px);
  box-sizing:border-box;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid #ead9c9;
  border-radius:22px;
  padding:0;
  background:#fff;
  color:#172439;
  box-shadow:0 24px 80px #0004;
  font-family:inherit;
}

.booking-legal-dialog:not([open]){display:none}

.booking-legal-dialog::backdrop{
  background:rgba(12,23,40,.65);
}

.booking-legal-dialog-head{
  position:sticky;
  top:0;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:22px 56px 16px 24px;
  border-bottom:1px solid #eee8e1;
  background:linear-gradient(180deg,#fffaf4 0%,#fff 100%);
}

.booking-legal-dialog-eyebrow{
  margin:0 0 6px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#a74609;
}

.booking-legal-dialog-head h2{
  margin:0;
  font-size:clamp(22px,4vw,28px);
  line-height:1.2;
  letter-spacing:-.02em;
  color:#172439;
}

.booking-legal-dialog-close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:#f1f3f5;
  color:#172439;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

.booking-legal-dialog-close:hover{
  background:#e7ebef;
}

.booking-legal-dialog-body{
  flex:1 1 auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:20px 24px 28px;
  overscroll-behavior:contain;
}

.booking-legal-dialog-loading,
.booking-legal-dialog-error{
  margin:0;
  color:#4a586b;
  line-height:1.6;
  font-size:15px;
}

.booking-legal-dialog-error a{
  color:#c94700;
  font-weight:700;
}

.booking-legal-dialog .legal-status{
  margin:0 0 18px;
  color:#746d65;
  font-size:12px;
  font-weight:750;
}

.booking-legal-dialog .legal-section{
  padding:0 0 22px;
  margin:0 0 22px;
  border-bottom:1px solid #eee8e1;
}

.booking-legal-dialog .legal-section:last-child{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:0;
}

.booking-legal-dialog .legal-section h2{
  margin:0 0 10px;
  color:#111;
  font-size:clamp(17px,2.5vw,21px);
  line-height:1.25;
  letter-spacing:-.025em;
  font-weight:900;
}

.booking-legal-dialog .legal-section p{
  margin:0;
  color:#4d4843;
  font-size:15px;
  line-height:1.65;
}

.booking-legal-dialog .legal-section p+p{
  margin-top:12px;
}

.booking-legal-dialog .legal-section a{
  color:#a74609;
  font-weight:800;
  text-underline-offset:2px;
}

.booking-legal-dialog .legal-notice{
  margin:0 0 22px;
  padding:16px 18px;
  background:#fff3e9;
  border:1px solid #f3cfb6;
  border-left:4px solid #c94700;
  border-radius:14px;
  color:#3e332c;
  font-size:14px;
  line-height:1.6;
}

.booking-legal-dialog-foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 24px 18px;
  border-top:1px solid #eee8e1;
  background:#fff;
}

.booking-legal-dialog-foot a{
  color:#a74609;
  font-size:13px;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}

.booking-legal-dialog-done{
  min-height:44px;
  padding:10px 18px;
  border:0;
  border-radius:10px;
  background:#c94700;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.booking-legal-dialog-done:hover{
  background:#a74609;
}

.booking-legal-dialog :focus-visible{
  outline:3px solid #c3530b;
  outline-offset:3px;
}

@media(max-width:480px){
  .booking-legal-dialog{
    width:calc(100% - 16px);
    max-height:calc(100dvh - 16px);
    border-radius:18px;
  }
  .booking-legal-dialog-head{
    padding:18px 52px 14px 18px;
  }
  .booking-legal-dialog-body{
    padding:16px 18px 22px;
  }
  .booking-legal-dialog-foot{
    padding:12px 18px 16px;
    flex-direction:column;
    align-items:stretch;
  }
  .booking-legal-dialog-done{
    width:100%;
  }
}
