.date-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:27px;padding:0;border:0;background:transparent;text-align:left;color:#85907d;font-size:15px;white-space:nowrap}
.date-trigger.has-date{color:var(--ink)}.date-trigger>span:last-child{font-size:20px;color:#53664c}.date-trigger.is-selecting{color:#244d39;box-shadow:0 2px #6e8b66}
/* An anchored, non-modal dropdown: no backdrop, blur or full-screen layer. */
.range-calendar{position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%);width:min(690px,calc(100vw - 32px));max-height:calc(100dvh - 130px);overflow:auto;padding:16px 22px 18px;background:var(--paper);color:var(--ink);border:1px solid #dce2d0;border-radius:17px;box-shadow:0 12px 32px #233e3229;pointer-events:auto;text-align:left}
.calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:10px}
.calendar-navigation-end{display:flex;align-items:center;gap:9px}
.calendar-navigation button{width:30px;height:30px;padding:0;border:1px solid #d9dfce;background:transparent;border-radius:50%;color:var(--ink);font-size:18px;line-height:1}
.calendar-navigation button:disabled{opacity:.3;cursor:default}.calendar-navigation .calendar-close{font-size:22px;border-color:transparent}
.calendar-months{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.calendar-month h3{text-align:center;font-size:14px;font-weight:650;margin:7px 0 16px}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-week>[role=columnheader]{font-size:10px;color:#87917b;text-align:center;padding-bottom:10px}.calendar-week>[role=gridcell]{min-width:0}
.calendar-day{width:100%;height:36px;position:relative;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:12px;font-weight:500}
.calendar-day:hover:not(:disabled){background:#e1e9d8;border-radius:8px}.calendar-day:disabled{color:#c4c7ba;cursor:default}
.calendar-day[aria-current=date]::after{position:absolute;content:'';width:3px;height:3px;background:currentColor;border-radius:50%;bottom:4px;left:calc(50% - 1.5px)}
.calendar-day.in-range{background:#e5ebd8}.calendar-day.range-start,.calendar-day.range-end{background:#345d44!important;color:#fff9e7;border-radius:8px;font-weight:750}.calendar-day:focus-visible{outline-offset:-3px;z-index:1}
.calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.calendar-footer p{margin:0 0 6px;font-size:10px;line-height:1.6}.calendar-footer #calendar-clear{padding:0;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-size:10px;color:#6b785d}
.calendar-footer #calendar-apply{flex:none;padding:10px 15px;border:0;border-radius:9px;background:#345d44;color:#fff9e7;font-size:12px}.calendar-footer #calendar-apply:disabled{background:#d4dcc9;color:#89927e;cursor:default}
.booking-choice{margin:0 0 17px;padding:13px;background:#e9eddf;border-radius:10px}.booking-choice label{display:block;font-size:11px;font-weight:650;margin:0 0 7px}.booking-choice select{width:100%;min-height:38px;padding:7px;border:1px solid #becab3;border-radius:7px;background:#fffdf5;color:var(--ink);font:inherit;font-size:12px}.booking-choice>button{width:100%;margin-top:9px;padding:11px;border:0;border-radius:7px;background:#345d44;color:#fff9e7;font-size:12px}.booking-choice>button:disabled{opacity:.45;cursor:default}
/* Booking details remain a separate modal; only the calendar is non-modal. */
.calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.calendar-heading .eyebrow{margin:0 0 8px}.calendar-heading h2{font-size:25px;margin:0;letter-spacing:-.04em}.calendar-close{flex:none;width:32px;height:32px;border:1px solid #d8decd;border-radius:50%;background:transparent;color:var(--ink);font-size:24px;line-height:1}
.request-dialog{width:min(510px,calc(100vw - 28px));padding:25px}.request-dialog #request-summary{background:#e9eddf;padding:12px;border-radius:9px;color:var(--ink);font-size:12px}.guest-fields{display:grid;gap:13px}.guest-fields label{display:grid;gap:6px;color:#526448;font-size:12px}.guest-fields input,.guest-fields textarea{width:100%;min-height:42px;resize:vertical;padding:10px;border:1px solid #cdd5bf;border-radius:8px;background:#fffdf7;color:var(--ink);font:inherit;font-size:14px}.party-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.request-dialog .request-disclaimer{font-size:10px;line-height:1.7;color:#728063}.request-dialog #request-feedback{font-size:12px;line-height:1.8;color:#345d44;white-space:pre-line}.request-dialog #request-submit{width:100%;min-height:44px;border:0;border-radius:9px;background:#345d44;color:#fff9e7}.request-dialog #request-submit:disabled{opacity:.5;cursor:default}
@media(min-width:701px) and (max-width:1100px){.range-calendar{max-height:calc(100dvh - 200px)}}
@media(max-width:700px){
 .date-trigger{font-size:12px;gap:5px;min-height:25px}.date-trigger>span:last-child{font-size:17px}
 .range-calendar{width:calc(100vw - 24px);max-height:calc(100dvh - 165px);padding:12px 15px;border-radius:13px}
 .calendar-months{grid-template-columns:1fr;gap:13px}.calendar-month+.calendar-month{border-top:1px solid var(--line);padding-top:12px}.calendar-month h3{margin:6px 0 14px}
 .calendar-day{height:40px;font-size:13px}.calendar-footer{position:sticky;bottom:-12px;background:var(--paper);padding:10px 0 12px;margin-top:12px}.calendar-footer p{font-size:10px;max-width:210px}.calendar-footer #calendar-apply{padding:10px;font-size:11px}
 .booking-choice{padding:10px;margin:0 0 10px}.request-dialog{padding:20px}
}
