/* Booking overlay – isolated styles, designed to leave the existing theme untouched. */
.mb-booking-overlay, .mb-booking-overlay * { box-sizing: border-box; }
.mb-booking-overlay[hidden] { display: none !important; }
.mb-booking-overlay {
  position: fixed; inset: 0; z-index: 100005;
  display: flex; align-items: center; justify-content: center;
  padding: 20px; background: rgba(3, 3, 3, .84);
  -webkit-backdrop-filter: blur(13px); backdrop-filter: blur(13px);
  animation: mb-booking-backdrop .3s ease both;
}
.mb-booking-lock { overflow: hidden !important; }
.mb-booking-dialog {
  position: relative; width: min(890px, 100%); max-height: min(790px, calc(100dvh - 40px));
  display: grid; grid-template-columns: minmax(245px,.83fr) minmax(0,1.3fr);
  overflow: hidden; border-radius: 26px; border: 1px solid rgba(214,168,95,.43);
  background: #12110e; color: #f5ead5; font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-shadow: 0 45px 150px rgba(0,0,0,.83), 0 0 0 1px rgba(255,255,255,.035) inset;
  animation: mb-booking-rise .34s cubic-bezier(.2,.8,.2,1) both;
}
.mb-booking-visual { position: relative; min-height: 550px; padding: 34px 25px 28px; display: flex; flex-direction: column; justify-content: space-between; isolation: isolate; background: #161410; }
.mb-booking-visual::before { content:""; position: absolute; inset:0; z-index: -2; background: url('../img/interior.webp') center / cover no-repeat; opacity: .65; }
.mb-booking-visual::after { content:""; position: absolute; inset:0; z-index: -1; background: linear-gradient(180deg,rgba(0,0,0,.74),rgba(0,0,0,.25) 44%,rgba(0,0,0,.86)); }
.mb-booking-logo { width: 93px; max-height: 80px; object-fit: contain; filter: drop-shadow(0 4px 14px rgba(0,0,0,.4)); }
.mb-booking-visual-copy { display: flex; flex-direction: column; gap: 12px; }
.mb-booking-accent { font-size: 10px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; color: #f1d49b; }
.mb-booking-visual-copy h3 { font-family: Georgia,serif; font-size: clamp(28px,3vw,40px); line-height: 1.13; margin: 0; font-weight: normal; color:#fff1d7; }
.mb-booking-visual-copy p { margin:0; color:#e1d7c8; font-size: 13px; line-height: 1.8; }
.mb-booking-details { display: flex; flex-wrap:wrap; gap: 9px; color:#ddcfb7; font-size: 11px; letter-spacing:.015em; }
.mb-booking-details span { background:rgba(0,0,0,.4); border:1px solid rgba(214,168,95,.3); padding: 6px 9px; border-radius: 20px; }
.mb-booking-main { position: relative; min-width:0; overflow-y: auto; overscroll-behavior: contain; padding: 32px 35px 29px; scrollbar-width: thin; scrollbar-color: #6f593b transparent; }
.mb-booking-close { position: absolute; top: 16px; right: 17px; width: 36px; height: 36px; display: grid; place-items: center; cursor: pointer; background: #201c16; color:#f5ead5; border: 1px solid rgba(214,168,95,.36); border-radius: 50%; z-index:2; transition: background .2s,border-color .2s; }
.mb-booking-close:hover { background:#322a1d; border-color: #e0b46c; }
.mb-booking-close svg { width:18px; height:18px; }
.mb-booking-eyebrow { font-size:10px; font-weight:800; color:#d6a85f; letter-spacing:.22em; text-transform:uppercase; margin: 0 34px 7px 0; }
.mb-booking-main h2 { margin:0 36px 9px 0; font-family:Georgia,serif; font-size:clamp(27px,3vw,36px); font-weight:normal; letter-spacing:-.025em; color:#f5ead5; line-height:1.14; }
.mb-booking-subtitle { margin:0 0 23px; font-size:12px; line-height:1.7; color:#b9b1a4; }
.mb-booking-form { display:flex; flex-direction: column; gap: 15px; }
.mb-booking-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 13px; }
.mb-booking-field { display:flex; flex-direction: column; gap:6px; min-width:0; }
.mb-booking-field.mb-booking-full { grid-column: 1 / -1; }
.mb-booking-field label { color:#e2d7c8; font-size:11px; font-weight:700; letter-spacing:.02em; }
.mb-booking-field input, .mb-booking-field select, .mb-booking-field textarea {
 width:100%; min-width:0; min-height:44px; padding:11px 12px;
 color:#fbf0dd; -webkit-text-fill-color:#fbf0dd; background:#1d1b16;
 border:1px solid rgba(214,168,95,.24); border-radius: 11px; outline:none;
 font-size:13px; font-weight:500; line-height:1.25; font-family:inherit;
 color-scheme:dark; transition: border-color .2s,box-shadow .2s;
}
.mb-booking-field textarea { min-height:65px; resize: vertical; }
.mb-booking-field input::placeholder, .mb-booking-field textarea::placeholder { color: #958a78; -webkit-text-fill-color: #958a78; }
.mb-booking-field input:focus, .mb-booking-field select:focus, .mb-booking-field textarea:focus { border-color: #e0b46c; box-shadow: 0 0 0 3px rgba(214,168,95,.12); }
.mb-booking-field select { cursor:pointer; }
.mb-booking-field option { background: #1d1b16; color:#f5ead5; }
.mb-booking-note { margin: -2px 0 0; color:#a99e8c; font-size:10.5px; line-height:1.5; }
.mb-booking-submit { cursor:pointer; min-height: 48px; border-radius: 12px; border:0; width:100%; padding: 11px 15px; color:#17120b; background:linear-gradient(110deg,#dab06e,#f4d69c); font-family:inherit; font-size:13px; line-height:1.3; font-weight:800; box-shadow:0 8px 25px rgba(214,168,95,.18); transition:filter .2s, transform .2s; }
.mb-booking-submit:hover { filter:brightness(1.07); transform:translateY(-1px); }
.mb-booking-submit:focus-visible, .mb-booking-close:focus-visible { outline: 3px solid #f1d49b; outline-offset:3px; }
.mb-booking-hint { text-align:center; font-size:10px; margin: -7px 0 0; line-height:1.6; color:#b2a690; }
@keyframes mb-booking-backdrop { from {opacity:0} to {opacity:1} }
@keyframes mb-booking-rise { from{opacity:0;transform:translateY(18px) scale(.985)} to{opacity:1;transform:translateY(0) scale(1)} }
@media (max-width: 700px) {
 .mb-booking-overlay { padding: 12px; }
 .mb-booking-dialog { width:min(530px,100%); max-height:calc(100dvh - 24px); display:block; border-radius:20px; overflow-y:auto; }
 .mb-booking-visual { min-height: 105px; height:105px; padding:12px 19px; flex-direction:row; align-items:center; }
 .mb-booking-visual::before { background-position: center 35%; }
 .mb-booking-logo { width:78px; max-height:72px; }
 .mb-booking-visual-copy { gap:4px; text-align:right; padding-right:38px; }
 .mb-booking-visual-copy h3 { font-size:17px; }
 .mb-booking-visual-copy p, .mb-booking-details { display:none; }
 .mb-booking-accent { font-size:9px; letter-spacing:.13em; }
 .mb-booking-main { padding:21px 20px 22px; overflow:visible; }
 .mb-booking-close { top:12px; right:12px; }
 .mb-booking-main h2 { font-size: 26px; margin-right:0; }
 .mb-booking-subtitle { margin-bottom:15px; }
 .mb-booking-form { gap:12px; }
}
@media (max-width: 370px) {
 .mb-booking-grid { grid-template-columns:1fr; gap:9px; }
 .mb-booking-main { padding: 18px 14px 20px; }
 .mb-booking-visual-copy h3 {font-size:15px;}
}
@media (prefers-reduced-motion: reduce) {
 .mb-booking-overlay, .mb-booking-dialog { animation:none; }
 .mb-booking-submit { transition:none; }
}
