/* Booking page (book/index.html). Builds on style.css tokens. */

.booking-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:end;padding-top:40px;padding-bottom:150px;position:relative}
.booking-copy h1{font-size:clamp(40px,4.3vw,60px);letter-spacing:-2.3px;margin:6px 0 20px}
.booking-copy .hero-description{max-width:500px}

.booking-steps{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff1c}
.booking-steps li{display:flex;gap:20px;align-items:baseline;padding:17px 0;border-bottom:1px solid #ffffff1c}
.step-no{font:650 13px/1 var(--heading);color:var(--gold);letter-spacing:1px;flex:0 0 26px}
.booking-steps strong{display:block;font-size:15px;font-weight:600;color:#f4f5f6}
.booking-steps small{display:block;font-size:13px;color:#b9c0c4;margin-top:3px;line-height:1.5}

/* Calendar straddles the dark intro and the light page. */
.booking-stage{background:linear-gradient(var(--dark) 0,var(--dark) 110px,var(--light) 110px);padding-bottom:70px}
.calendar-frame{position:relative;margin-top:-110px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 30px 70px #10141724,0 4px 14px #1014170d;overflow:hidden;outline:none}
.calendar-frame:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#e6cb91,var(--gold),var(--gold-dark))}
.calendar-bar{display:flex;align-items:center;gap:12px;padding:18px 26px;border-bottom:1px solid var(--line)}
.calendar-bar p{font:700 15px/1.3 var(--heading);letter-spacing:-.2px}
.calendar-bar a{margin-left:auto;font-size:13px;color:var(--muted);border-bottom:1px solid #ccb780;padding-bottom:1px;transition:color .2s}
.calendar-bar a:hover{color:var(--ink)}

.calendar-body{position:relative;min-height:680px;padding:10px 12px 6px}
.calendar-body iframe{display:block;min-height:660px;position:relative;z-index:1;opacity:0;transition:opacity .5s}
.calendar-body.is-loaded iframe{opacity:1}
.calendar-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--muted);font-size:14px;z-index:0;transition:opacity .3s}
.calendar-body.is-loaded .calendar-loading{opacity:0;visibility:hidden}
.loader-ring{width:34px;height:34px;border-radius:50%;border:2px solid #d9b66f33;border-top-color:var(--gold-dark);animation:bookingSpin .9s linear infinite}
@keyframes bookingSpin{to{transform:rotate(360deg)}}
.calendar-fallback{padding:30px;text-align:center;font-size:14px}
.calendar-fallback a{border-bottom:1px solid var(--gold)}

.booking-alt{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:28px;padding:0 4px;font-size:14px}
.booking-alt>p{color:var(--muted)}
.booking-alt-links{display:flex;gap:26px;flex-wrap:wrap;margin-left:auto}
.booking-alt-links a{color:var(--ink);border-bottom:1px solid #ccb780;padding-bottom:1px}
.booking-alt-links a:hover{border-color:var(--gold-dark)}

.booking-page footer{border-top:1px solid var(--line)}

@media(max-width:1100px){
.booking-intro{gap:40px}
}
@media(max-width:820px){
.booking-intro{grid-template-columns:1fr;gap:34px;padding-top:30px;padding-bottom:140px}
.booking-steps{max-width:560px}
}
@media(max-width:560px){
.booking-copy h1{font-size:clamp(34px,8.6vw,44px);letter-spacing:-1.5px}
.booking-intro{padding-top:22px;padding-bottom:120px}
.booking-stage{background:linear-gradient(var(--dark) 0,var(--dark) 90px,var(--light) 90px);padding-bottom:50px}
.calendar-frame{margin-top:-90px;border-radius:10px}
.calendar-bar{padding:15px 16px}
.calendar-bar p{font-size:14px}
.calendar-bar a{font-size:12px}
.calendar-body{padding:4px 0 0;min-height:620px}
.calendar-body iframe{min-height:600px}
.booking-alt{flex-direction:column;align-items:start;gap:12px}
.booking-alt-links{margin-left:0;flex-direction:column;align-items:start;gap:10px}
.booking-steps li{padding:12px 0;gap:14px}
.booking-steps small{display:none}
}
@media(prefers-reduced-motion:reduce){
.calendar-body iframe{opacity:1}
.loader-ring{animation:none}
}
