/* Altair booking bridge: interactive visual reservation block. */
.booking-bridge,.booking-bridge *{box-sizing:border-box}
.booking-bridge{position:relative;z-index:14;min-height:clamp(150px,11.8vw,190px);margin-top:clamp(26px,2.2vw,38px);margin-bottom:clamp(-14px,-.8vw,-4px);pointer-events:none}
.booking-parallax{width:min(1500px,calc(100% - clamp(36px,7vw,130px)));margin:0 auto;transform:translate3d(0,var(--booking-parallax-y,0px),0);will-change:transform;pointer-events:none}
.booking-card{pointer-events:auto;display:grid;grid-template-columns:minmax(230px,.72fr) minmax(620px,2.28fr);align-items:center;gap:clamp(20px,2vw,34px);min-height:clamp(132px,9.4vw,166px);padding:clamp(20px,2vw,30px);border-radius:clamp(24px,2vw,34px);background:linear-gradient(135deg,#ff6500 0%,#ff7900 52%,#ff8b1c 100%);box-shadow:0 24px 54px rgba(112,44,0,.22),inset 0 1px 0 rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.2);overflow:hidden;position:relative}
.booking-card::after{content:"";position:absolute;right:-8%;top:-85%;width:34%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.24),rgba(255,255,255,0) 68%);pointer-events:none}
.booking-intro{position:relative;z-index:1;min-width:0}
.booking-kicker{display:flex;align-items:center;gap:8px;margin:0 0 7px;color:#fff4e8;font:700 10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.booking-kicker b{font-size:15px;color:#fff}
.booking-intro h2{margin:0;color:#fff;font:normal clamp(28px,2.25vw,42px)/.98 Georgia,"Times New Roman",serif;letter-spacing:-.045em}
.booking-intro h2 em{font-style:normal;color:#3a1404}
.booking-fields{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr .86fr auto;gap:10px;align-items:stretch;margin:0}
.booking-field{min-width:0;min-height:74px;padding:13px 16px;border-radius:18px;background:rgba(255,250,245,.96);box-shadow:inset 0 0 0 1px rgba(91,39,10,.06),0 7px 18px rgba(101,43,5,.08);display:flex;flex-direction:column;justify-content:center}
.booking-field--control{padding:12px 16px 10px;transition:box-shadow .2s ease,transform .2s ease}
.booking-field--control:focus-within{box-shadow:inset 0 0 0 2px rgba(255,122,26,.55),0 10px 24px rgba(101,43,5,.12);transform:translateY(-1px)}
.booking-field span{color:#9a6649;font:700 9px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.13em;text-transform:uppercase;margin-bottom:7px}.booking-control{width:100%;padding:0;border:0;outline:none;background:transparent;color:#351306;font:600 15px/1.25 Arial,Helvetica,sans-serif;min-height:24px}
.booking-control::placeholder{color:#7f5b49}
.booking-control[type="date"]{min-height:26px}
.booking-control[type="date"]::-webkit-calendar-picker-indicator{opacity:.75;cursor:pointer}
.booking-control[type="date"]::-webkit-datetime-edit{color:inherit}
.booking-control[type="date"]::-webkit-date-and-time-value{text-align:left}
select.booking-control{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#7f5237 50%),linear-gradient(135deg,#7f5237 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 8px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:26px;cursor:pointer}
.booking-submit{min-width:188px;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 20px;border:0;border-radius:18px;background:#351306;color:#fff;text-decoration:none;font:700 13px/1 Arial,Helvetica,sans-serif;box-shadow:0 10px 24px rgba(66,20,0,.2);transition:transform .2s ease,background .2s ease;cursor:pointer;-webkit-appearance:none;appearance:none}
.booking-submit:hover{transform:translateY(-2px);background:#4c1b08}
.booking-submit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.booking-submit:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media(max-width:1100px){.booking-card{grid-template-columns:1fr;padding:22px 24px}.booking-intro h2{font-size:34px}.booking-fields{grid-template-columns:1fr 1fr 1fr auto}.booking-bridge{min-height:205px;margin-top:28px}}
@media(max-width:820px){.booking-bridge{min-height:278px;margin-top:24px;margin-bottom:0}.booking-parallax{width:min(94%,760px)}.booking-fields{grid-template-columns:1fr 1fr}.booking-submit{min-height:70px;grid-column:1/-1}.booking-card{border-radius:28px}}
@media(max-width:560px){.booking-bridge{min-height:430px;margin-top:22px}.booking-parallax{width:calc(100% - 28px)}.booking-card{padding:20px 16px;border-radius:24px}.booking-intro h2{font-size:31px}.booking-fields{grid-template-columns:1fr}.booking-field{min-height:66px}.booking-submit{grid-column:auto;min-height:62px;min-width:0}}
@media(prefers-reduced-motion:reduce){.booking-parallax{transform:none!important;will-change:auto!important}.booking-field--control,.booking-submit{transition:none}}

/* 2026-09-30 — branded custom date picker. */
.booking-date-field{position:relative}
.booking-date-trigger{
  width:100%;min-height:26px;padding:0;border:0;background:transparent;color:#351306;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font:600 15px/1.25 Arial,Helvetica,sans-serif;cursor:pointer;text-align:left;
}
.booking-date-trigger:focus-visible{outline:0}
.booking-date-trigger svg{
  flex:0 0 20px;width:20px;height:20px;fill:none;stroke:#70472f;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s ease,transform .2s ease
}
.booking-date-field.is-open{box-shadow:inset 0 0 0 2px rgba(255,122,26,.72),0 10px 26px rgba(101,43,5,.13)}
.booking-date-field.is-open .booking-date-trigger svg{stroke:#ff6b00;transform:translateY(-1px)}
.booking-calendar-popover{
  position:fixed;z-index:10000;display:none;
  padding:14px 14px 13px;
  border:2px solid #ff7a1a;border-radius:20px;
  background:rgba(255,250,245,.995);
  box-shadow:0 22px 50px rgba(82,34,8,.22),0 5px 16px rgba(82,34,8,.12);
  color:#351306;font-family:Arial,Helvetica,sans-serif;
  transform-origin:top center;
}
.booking-calendar-popover.is-open{display:block;animation:booking-calendar-in .18s ease-out both}
@keyframes booking-calendar-in{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.booking-calendar-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:6px;margin-bottom:10px}
.booking-calendar-title{text-align:center;font:700 14px/1.2 Arial,Helvetica,sans-serif;color:#351306}
.booking-calendar-nav{
  width:34px;height:34px;border:0;border-radius:11px;background:#fff0e5;color:#d65416;
  display:grid;place-items:center;cursor:pointer;font-size:20px;line-height:1;transition:background .2s ease,color .2s ease,transform .2s ease
}
.booking-calendar-nav:hover{background:#ff6b00;color:#fff;transform:translateY(-1px)}
.booking-calendar-weekdays,.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.booking-calendar-weekdays{margin:0 0 5px}
.booking-calendar-weekdays span{text-align:center;color:#9a6649;font:700 10px/1.2 Arial,Helvetica,sans-serif;text-transform:uppercase}
.booking-calendar-day{
  aspect-ratio:1;border:0;border-radius:10px;background:transparent;color:#351306;
  display:grid;place-items:center;cursor:pointer;font:600 12px/1 Arial,Helvetica,sans-serif;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease
}
.booking-calendar-day:hover:not(:disabled){background:#ffe7d6;color:#b94712;transform:translateY(-1px)}
.booking-calendar-day.is-outside{color:#b9a79b}
.booking-calendar-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 2px #ff8a3d;color:#c94f16;background:#fff7f0}
.booking-calendar-day.is-selected{background:#ff6b00;color:#fff;box-shadow:0 5px 12px rgba(255,107,0,.28)}
.booking-calendar-day:disabled{color:#d9cbc2;cursor:not-allowed;opacity:.7}
.booking-calendar-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,122,26,.15)}
.booking-calendar-link{border:0;background:transparent;color:#d65416;font:700 11px/1 Arial,Helvetica,sans-serif;cursor:pointer;padding:4px 2px}
.booking-calendar-link:hover{color:#ff6b00}
@media(max-width:560px){
  .booking-date-trigger{font-size:14px}
  .booking-calendar-popover{padding:12px;border-radius:18px}
  .booking-calendar-day{border-radius:9px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.booking-calendar-popover.is-open{animation:none}}

.booking-calendar-popover{box-sizing:border-box}

/* 2026-10-08 — official Bnovo integration. */
.booking-bridge{scroll-margin-top:96px}
.booking-fields--bnovo{display:block!important;min-width:0;width:100%;margin:0}
.altair-bnovo-widget{position:relative;width:100%;min-height:64px}
.altair-bnovo-widget iframe{display:block;width:100%!important;max-width:100%!important;border:0!important}
.booking-bnovo-fallback{min-height:64px;border-radius:18px;background:#351306;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;padding:0 22px;font:700 13px/1 Arial,Helvetica,sans-serif;box-shadow:0 10px 24px rgba(66,20,0,.2)}
.booking-bnovo-fallback:hover{background:#4c1b08}
@media(max-width:1100px){.booking-card{grid-template-columns:minmax(210px,.62fr) minmax(0,2.38fr)}}
@media(max-width:820px){.booking-card{grid-template-columns:1fr}.altair-bnovo-widget{min-height:240px}.booking-bnovo-fallback{min-height:60px}}
@media(max-width:560px){.altair-bnovo-widget{min-height:240px}}
