/* Availability Calendar — shared quiet-luxury modal. */
body.availability-modal-open{overflow:hidden}
.availability-dialog{width:min(1180px,94vw);max-width:none;height:min(820px,90dvh);max-height:none;margin:auto;padding:0;border:1px solid #b9b4a5;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px #10271f55}
.availability-dialog::backdrop{background:#10271fbd;backdrop-filter:blur(3px)}
.availability-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0}
.availability-header{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start;padding:28px clamp(24px,3vw,44px) 24px;border-bottom:1px solid var(--line)}
.availability-header .eyebrow{margin-bottom:7px}
.availability-title{font-family:var(--serif);font-size:clamp(34px,3.1vw,48px);font-weight:400;line-height:1.05;letter-spacing:-.02em}
.availability-close{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid #aeb7ac;background:transparent;color:var(--ink);font-size:28px;font-weight:300;line-height:1;transition:background .2s,color .2s}
.availability-close:hover{background:var(--green);color:var(--paper)}
.availability-body{min-height:0;overflow:auto;padding:25px clamp(24px,3vw,44px) 32px}
.availability-toolbar{display:grid;grid-template-columns:minmax(154px,auto) 1fr minmax(154px,auto);gap:16px;align-items:center;margin-bottom:21px}
.availability-nav{display:flex;align-items:center;justify-content:center;gap:12px;width:auto;min-height:48px;padding:10px 17px;border:1px solid #aeb7ac;background:transparent;color:var(--ink);font-family:var(--serif);font-size:24px;line-height:1;transition:background .2s,color .2s}
.availability-nav strong{font-family:var(--sans);font-size:11px;font-weight:500;line-height:1.3;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}
.availability-nav:hover{background:var(--green);color:var(--paper)}
.availability-toolbar-label{text-align:center;font-size:12px;line-height:1.5;letter-spacing:.15em;text-transform:uppercase;color:var(--text)}
.availability-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.availability-month{padding:24px 28px 28px;min-width:0}
.availability-month+.availability-month{border-left:1px solid var(--line)}
.availability-month h3{text-align:center;font-family:var(--sans);font-size:13px;font-weight:500;line-height:1.4;letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px}
.availability-weekdays,.availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.availability-weekdays span{text-align:center;font-size:10px;font-weight:500;line-height:1.4;letter-spacing:.1em;color:#747b74;padding-block:5px 11px}
.availability-day-spacer{min-height:60px}
.availability-day{position:relative;display:flex;min-width:0;min-height:60px;padding:7px 3px 5px;align-items:center;justify-content:center;flex-direction:column;gap:2px;border:1px solid transparent;background:transparent;color:var(--ink);font-size:15px;line-height:1;transition:background .18s,color .18s,border-color .18s}
.availability-day:hover:not(:disabled){border-color:#819286;background:#eef0e8}
.availability-day-number{font-family:var(--serif);font-size:20px;line-height:1}
.availability-day-mark{min-height:10px;font-size:8px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#6f766e}
.availability-day--available::after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border:1px solid var(--green);border-radius:50%}
.availability-day--hold{border-color:#c4ae8c;background:#f3eee4}
.availability-day--hold::after{content:"";position:absolute;bottom:3px;width:9px;border-bottom:2px solid var(--bronze)}
.availability-day--booked{cursor:not-allowed;background:#e9e9e2;color:#969b94}
.availability-day--booked .availability-day-number{text-decoration:line-through;text-decoration-thickness:1px}
.availability-day--selected{border-color:var(--green)!important;background:var(--green)!important;color:var(--paper)!important}
.availability-day--selected .availability-day-mark{color:#e9e6d9}
.availability-day--selected::after{border-color:var(--paper)}
.availability-day--range{background:#dfe6dc;border-color:#dfe6dc}
.availability-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:17px 28px;margin-top:21px;color:var(--text);font-size:12px;line-height:1.5;letter-spacing:.04em}
.availability-legend-item{display:inline-flex;align-items:center;gap:9px}
.availability-legend-symbol{width:15px;height:15px;display:inline-block;border:1px solid var(--green)}
.availability-legend-symbol--hold{border-color:#b09166;background:#f3eee4;border-bottom-width:3px}
.availability-legend-symbol--booked{border-color:#d2d4ce;background:linear-gradient(135deg,transparent 45%,#92978f 47%,#92978f 53%,transparent 55%)}
.availability-demo-note{margin-top:13px;text-align:center;color:#7a8079;font-size:11px;line-height:1.6;letter-spacing:.035em}
.availability-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:end;padding:20px clamp(24px,3vw,44px) 23px;border-top:1px solid var(--line);background:#efeee6}
.availability-stay-label{margin-bottom:10px}
.availability-selection{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));align-items:end;min-width:0}
.availability-date-value{min-width:0;padding:0 20px;border-left:1px solid #cfd2ca}
.availability-date-value:first-child{padding-left:0;border-left:0}
.availability-date-label{display:block;font-size:10px;line-height:1.3;letter-spacing:.16em;text-transform:uppercase;color:#747b74;margin-bottom:4px}
.availability-date-text{display:block;font-family:var(--serif);font-size:24px;line-height:1.1}
.availability-guest-control{display:flex;align-items:center;gap:12px;height:27px}.availability-guest-control strong{min-width:20px;text-align:center;font-family:var(--serif);font-size:24px;font-weight:400;line-height:1}.availability-guest-button{display:grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid #aab1a8;background:transparent;color:var(--ink);font-size:17px;line-height:1}.availability-guest-button:hover{background:var(--green);color:var(--paper)}
.availability-selection-note{font-size:12px;line-height:1.45;color:#775e3f;max-width:740px;margin-top:10px}
.availability-actions{display:grid;gap:9px;min-width:242px}.availability-actions .button{width:100%;min-height:49px;padding:14px 20px}.availability-whatsapp{border-color:#718176;color:var(--green);background:transparent}.availability-whatsapp:hover{background:#e3e6dd}
.availability-action:disabled{cursor:not-allowed;opacity:.45}
.availability-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:899px){.availability-dialog{inset:0;width:100%;height:100dvh;max-height:none;margin:0;border:0}.availability-dialog::backdrop{background:#10271f}.availability-header{padding:20px 20px 17px}.availability-title{font-size:36px}.availability-close{width:44px;height:44px}.availability-body{padding:18px 14px 22px}.availability-toolbar{grid-template-columns:minmax(116px,auto) 1fr minmax(116px,auto);gap:8px;margin-inline:5px;margin-bottom:15px}.availability-nav{min-height:46px;padding:9px 10px;gap:7px}.availability-nav strong{font-size:10px;letter-spacing:.07em}.availability-toolbar-label{font-size:10px;letter-spacing:.08em}.availability-months{grid-template-columns:1fr}.availability-month{padding:18px 5px 21px}.availability-month+.availability-month{display:none;border:0}.availability-day-spacer,.availability-day{min-height:52px}.availability-day-number{font-size:19px}.availability-day-mark{font-size:7px}.availability-legend{gap:12px 18px;margin-inline:5px}.availability-footer{grid-template-columns:1fr;padding:15px 20px max(15px,env(safe-area-inset-bottom));gap:14px;align-items:stretch}.availability-stay-label{margin-bottom:8px}.availability-selection{grid-template-columns:1fr 1fr;gap:12px 0}.availability-date-value{padding:0 12px}.availability-date-value:nth-child(odd){padding-left:0;border-left:0}.availability-date-text{font-size:21px}.availability-selection-note{max-width:none}.availability-actions{grid-template-columns:1fr;min-width:0}.availability-actions .button{min-height:50px}.availability-demo-note{padding-inline:12px}}
@media(max-width:430px){.availability-toolbar{grid-template-columns:1fr 1fr}.availability-toolbar-label{grid-column:1/-1;grid-row:1;text-align:center}.availability-prev{grid-column:1;grid-row:2}.availability-next{grid-column:2;grid-row:2}}
@media(max-width:370px){.availability-header{padding-inline:16px}.availability-title{font-size:32px}.availability-body{padding-inline:9px}.availability-day{min-height:49px}.availability-day-number{font-size:18px}.availability-weekdays span{font-size:9px}.availability-footer{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){.availability-dialog::backdrop{backdrop-filter:none}.availability-close,.availability-nav,.availability-day{transition:none}}
@media print{.availability-dialog{display:none}}
/* Keep the approved preview warning visible before any month/day choices. */
.availability-header .availability-demo-note{text-align:left;margin-top:9px}
