/* The native inputs remain the single source of form values, including without JS. */
.form-field{display:flex;flex-direction:column;gap:8px;min-width:0;position:relative}
.field-label{font-size:12px;font-weight:500}
.field-control{position:relative;min-width:0}
.enhanced-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;opacity:0;pointer-events:none;border:0!important;clip-path:inset(50%)}
.field-trigger{width:100%;min-height:52px;background:var(--white);color:var(--ink);border:1px solid #aab9a6;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;text-align:left;font:500 14px/1.5 var(--sans);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
.field-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.field-trigger>svg{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.6;transition:transform .2s}
[role=combobox][aria-expanded=true]>svg{transform:rotate(180deg)}
.field-trigger.is-placeholder{color:#62736a}
.field-trigger[aria-expanded=true]{border-color:var(--deep);background:#f4f6ee;box-shadow:0 0 0 3px #103d3b14}
.field-trigger:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.field-trigger[aria-invalid=true]{border-color:#a14d3d}
.field-error{color:#963e30;font-size:12px;line-height:1.5}
.field-popup{position:relative;margin-top:7px;width:100%;padding:7px;border:1px solid #b5c2ae;border-radius:8px;background:var(--white);box-shadow:0 12px 28px #143c3517;z-index:3;font:14px/1.5 var(--sans)}
.field-search{padding:3px 3px 9px}
.field-search input{border-radius:5px;min-height:43px;font-size:14px;background:#f2f4ed;border-color:#d0d9ca}
.field-search input:focus{outline:2px solid #487166;outline-offset:1px}
.field-options{max-height:220px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a3b59b transparent}
.field-option{width:100%;display:block;border:0;background:transparent;padding:11px 12px;text-align:left;color:var(--ink);font:400 14px/1.5 var(--sans);border-radius:4px;cursor:pointer;transition:background .15s,color .15s}
.field-option[aria-selected=true]{background:var(--deep);color:var(--paper)}
.field-option:focus-visible{outline:2px solid #7f9973;outline-offset:-2px;background:#e7ecdf;color:var(--ink)}
.field-option:disabled{opacity:.38;cursor:not-allowed;text-decoration:line-through}
.field-empty{padding:12px;font-size:13px;color:var(--muted);margin:0}
.calendar-popup{padding:10px}
.calendar-heading{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:4px;margin-bottom:12px}
.calendar-heading strong{font-size:13px;text-align:center;font-weight:600;text-transform:capitalize}
.calendar-heading button{border:0;background:#ecf0e6;border-radius:4px;font-size:23px;line-height:1;min-height:31px;color:var(--deep);cursor:pointer}
.calendar-heading button:disabled{opacity:.3;cursor:default}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.calendar-weekdays{color:#708071;font-size:10px;margin-bottom:6px}
.calendar-day{font:500 12px/1 var(--sans);min-width:0;height:32px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}
.calendar-day[aria-current=date]{border-color:#a2b496}
.calendar-day[aria-pressed=true]{background:var(--deep);color:var(--paper);border-color:var(--deep)}
.calendar-day:disabled{opacity:.25;cursor:default}
.calendar-day:focus-visible,.calendar-heading button:focus-visible,.calendar-footer button:focus-visible{outline:2px solid #68845b;outline-offset:1px}
.calendar-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:8px}
.calendar-footer button{background:transparent;border:0;padding:6px 2px;color:var(--deep);font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.calendar-footer span{font-size:9px;color:var(--muted)}
.booking-intro h2{font-size:48px;padding-right:15px}
.booking-dialog .dialog-close{border-radius:50%;transition:background .2s,color .2s,transform .2s}
.booking-close-bar{height:0;position:sticky;top:22px;z-index:10}
.booking-close-bar .dialog-close{top:-26px;right:-24px;background:var(--paper);box-shadow:0 0 0 3px var(--paper)}
.booking-alternative a{display:inline-block;padding:8px 2px;text-decoration-color:#a1b198;transition:color .2s,text-decoration-color .2s}
@media(hover:hover){
 .field-trigger:hover{background:#edf1e7;border-color:#63836c}
 .field-option:not(:disabled):not([aria-selected=true]):hover{background:#eaf0e2}
 .calendar-day:not(:disabled):not([aria-pressed=true]):hover,.calendar-heading button:not(:disabled):hover{background:#dfe8d5}
 .calendar-footer button:hover{color:#7e653d}
 .booking-alternative a:hover{color:#916d32;text-decoration-color:currentColor}
 .booking-dialog .dialog-close:hover{background:var(--deep);color:var(--paper);transform:rotate(90deg)}
}
@media(max-width:560px){
 .field-trigger{font-size:16px;min-height:54px}
 .field-options{max-height:200px}.field-option{font-size:15px}
 .field-search input{font-size:16px}
 .calendar-popup{padding:13px}.calendar-day{height:37px;font-size:14px}
 .calendar-heading strong{font-size:14px}.calendar-heading button{min-height:36px}
 .calendar-footer span{font-size:10px}.calendar-weekdays{font-size:11px}
 .booking-intro h2{font-size:40px;max-width:280px}
 .booking-close-bar{top:16px}.booking-close-bar .dialog-close{right:-15px;top:-24px}
}
@media(prefers-reduced-motion:reduce){.field-trigger,.field-trigger svg,.field-option,.booking-dialog .dialog-close{transition:none}}
