/* Scoped Villa 15 selector. Uses the site's existing quiet Mediterranean palette. */
.booking-selector{padding-top:36px;padding-bottom:40px}
@media(min-width:1101px){.booking-selector{max-width:1280px}}
/* The anchor belongs to the date panel. Offset the site's 108px desktop or
   30px mobile scroll padding, leaving a 24px gap above the fields. */
#booking-dates{scroll-margin-top:-84px}
.booking-selector .booking-label{font-size:12px;letter-spacing:.1em;line-height:1.6;margin:0 0 10px;color:var(--ink,#263d38)}
.booking-selector h2{font-size:clamp(28px,3vw,38px);max-width:880px;margin:0 0 14px}
.booking-intro{font-size:14px;line-height:1.7;max-width:800px;margin:0 0 18px;color:var(--muted,#596653)}
.booking-selector .booking-listing{margin:0 0 18px;font-size:14px;line-height:1.6}
.booking-selector .booking-listing span{font-size:12px;margin-bottom:2px}
.booking-panel{padding:24px;background:var(--sand,#eae4d7);border:1px solid var(--line,#d4d4c7)}
.booking-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.booking-field{min-width:0;display:flex;flex-direction:column;align-items:stretch}
.booking-field label,.booking-guests legend{font:600 14px/1.6 var(--sans,Arial,sans-serif);color:var(--ink,#263d38)}
.booking-field label{margin:0 0 6px;overflow-wrap:anywhere}
.booking-field input,.booking-field select{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #a9b4a4;border-radius:0;background:var(--paper,#f6f3ec);color:var(--ink,#263d38);font:16px/1.5 var(--sans,Arial,sans-serif);color-scheme:light}
.booking-field input[type=date]{display:block;-webkit-appearance:none;appearance:none}
.booking-field input:focus-visible,.booking-field select:focus-visible,.booking-submit:focus-visible,.booking-secondary:focus-visible{outline:2px solid var(--green,#244e46);outline-offset:4px}
.booking-field [aria-invalid=true]{border-color:#8a2421}
.booking-error{font-size:14px;line-height:1.6;color:#8a2421;margin:8px 0 0}
.booking-selector [hidden]{display:none!important}
.booking-date-hint,.booking-capacity,.booking-total,.booking-status,.booking-external-note,.booking-noscript{font-size:14px;line-height:1.6;color:#596653}
.booking-date-hint{margin:10px 0 0}
.booking-guests{min-width:0;border:0;padding:0;margin:18px 0 0}
.booking-guests legend{padding:0;margin-bottom:10px}
.booking-guests-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.booking-capacity{margin:10px 0 0;max-width:900px}
.booking-total{font-weight:600;color:var(--ink,#263d38);margin:8px 0 0}
.booking-total:empty{display:none}
.booking-status{margin:16px 0 10px}
.booking-status-error{color:#8a2421}
.booking-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px}
.booking-selector .booking-submit{font-size:14px;line-height:1.6;min-height:48px;letter-spacing:.03em}
.booking-submit[aria-disabled=true]{background:#d8ded3;border-color:#a9b4a4;color:#35483b;cursor:pointer}
.booking-secondary{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid currentColor;font-size:14px;line-height:1.6;color:var(--ink,#263d38)}
.booking-external-note{max-width:950px;margin:14px 0 0}
.booking-noscript{margin-top:14px}
@media(max-width:760px){
  #booking-dates{scroll-margin-top:-6px}
  .booking-selector{padding-top:32px;padding-bottom:36px}
  .booking-panel{padding:20px}
  .booking-date-fields,.booking-guests-fields{gap:14px}
  .booking-actions{align-items:stretch}
  .booking-submit{width:100%;justify-content:space-between}
}
@media(max-width:520px){
  .booking-panel{padding:18px}
  .booking-date-fields{grid-template-columns:minmax(0,1fr)}
  .booking-guests-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .booking-field-infants{grid-column:1/-1}
  .booking-guests-fields .booking-field:not(.booking-field-infants) label{min-height:45px}
}
