/* A timber date desk at the foot of the homepage's cinematic landing. */
.availability-section { position:relative; z-index:9; padding:0 6vw 42px; background:var(--bark); }
.availability-desk { position:relative; padding:30px 32px 22px; border:1px solid var(--wood-border); background:var(--surface-raised); box-shadow:0 22px 45px #100b0730; }
.availability-desk::before { content:""; position:absolute; inset:0; pointer-events:none; background:url('assets/country/fine-timber-grain.svg') center / 1024px 256px repeat; opacity:.2; }
.availability-fields { position:relative; display:grid; grid-template-columns:1.2fr 1fr 1fr .8fr 1.25fr; gap:24px; align-items:end; }
.availability-intro .eyebrow { color:var(--honey); font-size:.62rem; line-height:1.7; letter-spacing:.13em; margin-bottom:9px; }
.availability-intro h2 { font:400 clamp(1.55rem,2.1vw,2.1rem)/1.05 var(--serif); color:var(--cream); }
.availability-field { display:flex; flex-direction:column; gap:10px; min-width:0; color:var(--cream); font:500 .7rem/1.4 var(--sans); letter-spacing:.08em; }
.availability-field input,.availability-field select { width:100%; min-width:0; height:52px; padding:12px 13px; border:1px solid var(--wood-border); border-radius:0; font:400 .94rem var(--sans); color:var(--cream); background:#19120d55; color-scheme:dark; letter-spacing:normal; }
.availability-field select option { color:var(--cream); background:var(--bark); }
.availability-submit { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:12px 17px; white-space:nowrap; font-size:.83rem; }
.availability-submit span { font-size:1.4rem; font-weight:400; }
.availability-note { position:relative; margin-top:18px; color:var(--muted); font-size:.73rem; line-height:1.7; }
.availability-note a { color:var(--cream); text-decoration:underline; text-underline-offset:3px; }
.availability-feedback { position:relative; font-size:.85rem; line-height:1.7; color:var(--cream); }
.availability-feedback:not(:empty) { margin-top:16px; }
.availability-desk .enquiry-send { position:relative; display:inline-flex; margin-top:12px; }
.availability-desk [hidden],.stay-enquiry [hidden] { display:none !important; }
.availability-field input:focus-visible,.availability-field select:focus-visible,.stay-enquiry :is(input,select,textarea):focus-visible { outline:2px solid var(--honey); outline-offset:3px; }
.stay-enquiry .whatsapp-submit { gap:12px; }
.stay-enquiry .whatsapp-contact { color:inherit; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
#booking-dialog #booking-form { display:block; }
#booking-dialog .stay-enquiry .fine-print { color:#685338; }
#booking-dialog .stay-enquiry .enquiry-send { margin-top:14px; }
.booking-noscript { position:relative; margin-top:15px; font-size:.9rem; line-height:1.7; }
@media(max-width:1150px) {
  .availability-desk { padding:26px 24px 20px; }
  .availability-fields { grid-template-columns:1fr 1fr .8fr 1.25fr; gap:18px; }
  .availability-intro { grid-column:1/-1; display:flex; gap:20px; align-items:center; }
  .availability-intro .eyebrow { margin:0; }
}
@media(max-width:750px) {
  .availability-section { padding:0 16px 32px; }
  .availability-desk { padding:24px 20px 20px; }
  .availability-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px 14px; }
  .availability-intro { display:block; margin-bottom:1px; }
  .availability-intro .eyebrow { margin-bottom:8px; }
  .availability-intro h2 { font-size:1.85rem; }
  .availability-field input,.availability-field select { font-size:16px; padding:11px 9px; }
  .availability-submit { height:52px; padding:11px 12px; font-size:.79rem; gap:5px; }
  .availability-note { font-size:.73rem; }
}
@media(max-width:430px) {
  .availability-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
  .availability-intro { grid-column:auto; }
  .availability-submit { font-size:.86rem; }
}
@media(max-width:380px) {
  .availability-desk { padding:22px 15px 18px; }
}
