/* Villa Marianna: live, truthful date restrictions (21 Oct 2026).
   Applied AFTER v47 calendar styles. Calendar date buttons remain accessible
   when aria-disabled so unavailable days can be inspected without booking. */
.mari-calendar-howto,
.mari-date-tip-instruction {
  margin: 12px auto 2px;
  max-width: 760px;
  color: #617C8C;
  font: 500 11px/1.65 Montserrat, Arial, sans-serif;
  text-align: center;
}
.mari-date-tip-instruction { margin: 0 0 10px; text-align: left; }
.mari-date-tip-instruction strong,.mari-calendar-howto strong {
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  font: 800 10px Montserrat, Arial, sans-serif;
  background: #E7F2F5;
  color: #245779;
}
.mari-restriction-guide {
  max-width: 760px;
  margin: 16px auto 0;
  border: 1px solid #D8E8EF;
  border-radius: 14px;
  background: #F7FBFD;
  color: #233F50;
  overflow: hidden;
}
.mari-restriction-guide summary {
  position: relative;
  padding: 14px 18px;
  font: 700 11px/1.6 Montserrat, Arial, sans-serif;
  cursor: pointer;
  list-style: none;
}
.mari-restriction-guide summary::-webkit-details-marker { display:none; }
.mari-restriction-guide summary span { float:right; color:#3B87AC; font-size:16px; transition:transform .18s ease; }
.mari-restriction-guide[open] summary span { transform:rotate(180deg); }
.mari-restriction-guide-body {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 22px;
  padding: 3px 18px 16px;
  border-top:1px solid #D8E8EF;
}
.mari-restriction-guide-body p {margin:12px 0 0; color:#617C8C; font:400 11px/1.65 Montserrat, Arial, sans-serif;}
.mari-restriction-guide-body p strong {color:#21475f;font-weight:700;}
.mari-restriction-guide-body .mari-disclaimer {grid-column:1/-1;margin-top:3px;padding-top:10px;border-top:1px solid #D8E8EF;color:#617C8C;}
.bsv-rate-day[data-booking-disabled="true"],
.bsv-stay-day[data-booking-disabled="true"] {cursor:help;}
.bsv-rate-day[data-booking-disabled="true"]:focus-visible,
.bsv-stay-day[data-booking-disabled="true"]:focus-visible {outline: 2px solid #3B87AC; outline-offset:2px;}
.bsv-rate-day .mari-cal-day-help,
.bsv-stay-day .mari-cal-day-help {
  position:absolute;
  top:5px;
  right:5px;
  display:grid;
  place-items:center;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#E7F2F5;
  color:#245779;
  border:1px solid #BED5E1;
  font:800 10px/1 Montserrat, Arial, sans-serif;
  text-decoration:none;
  z-index:1;
  cursor:help;
}
.bsv-stay-day .mari-cal-day-help {top:auto;right:-1px;bottom:-1px;width:13px;height:13px;font-size:8px;}
.bsv-rate-day.selected-start .mari-cal-day-help,
.bsv-rate-day.selected-end .mari-cal-day-help,
.bsv-stay-day.selected-start .mari-cal-day-help,
.bsv-stay-day.selected-end .mari-cal-day-help {background:#F5FAFC;color:#245779;}
.mari-calendar-tooltip {
  position:fixed;
  top:14px;
  left:14px;
  z-index:2147483646;
  width:min(354px,calc(100vw - 24px));
  box-sizing:border-box;
  max-height:min(78vh,510px);
  overflow:auto;
  border:1px solid #D8E8EF;
  border-radius:16px;
  background:#fff;
  color:#245779;
  box-shadow:0 19px 56px rgba(24,67,96,.27);
  font-family:Montserrat,Arial,sans-serif;
  text-align:left;
  -webkit-overflow-scrolling:touch;
}
.mari-calendar-tooltip[hidden] {display:none!important;}
.mari-cal-tip-top {display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 15px;background:#245779;color:#fff;}
.mari-cal-tip-top > div {min-width:0;}
.mari-cal-tip-eyebrow {display:block;letter-spacing:.11em;text-transform:uppercase;font-size:9px;font-weight:700;color:#BBDEED;line-height:1.5;overflow-wrap:anywhere;}
.mari-cal-tip-top h3 {font:500 21px/1.1 'Cormorant Garamond',Georgia,serif;margin:6px 0 0;color:#fff;overflow-wrap:anywhere;}
.mari-cal-tip-close {display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;margin:-4px -5px 0 0;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:transparent;color:#fff;font:500 23px/1 Arial,sans-serif;cursor:pointer;}
.mari-cal-tip-state {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;padding:12px 18px;border-bottom:1px solid #D8E8EF;background:#f5fafc;}
.mari-cal-tip-state strong {font:700 11px/1.5 Montserrat,Arial,sans-serif;color:#245779;}
.mari-cal-tip-state span {font:700 11px/1.5 Montserrat,Arial,sans-serif;color:#245779;}
.mari-cal-tip-rules {list-style:none;padding:14px 18px 6px;margin:0;display:grid;gap:10px;}
.mari-cal-tip-rules li {position:relative;margin:0;padding:0 0 0 19px;font:500 11px/1.55 Montserrat,Arial,sans-serif;color:#233F50;overflow-wrap:anywhere;}
.mari-cal-tip-rules li:before {content:'•';position:absolute;left:0;top:-1px;color:#3B87AC;font-size:18px;line-height:1;}
.mari-cal-tip-rules li.negative:before {color:#AE6457;}
.mari-cal-tip-rules li.positive:before {color:#4D8E7C;}
.mari-cal-tip-note {padding:10px 18px 14px;margin:0;color:#77858A;font:400 10px/1.55 Montserrat,Arial,sans-serif;}
.mari-cal-tip-close:focus-visible,.mari-restriction-guide summary:focus-visible {outline:3px solid #91C9DD;outline-offset:2px;}
@media(max-width:760px), (pointer:coarse) {
  .mari-calendar-tooltip {left:12px!important;top:auto!important;bottom:16px;width:calc(100vw - 24px);max-width:420px;margin:0 auto;right:12px;max-height:min(57vh,410px);border-radius:17px;}
  .mari-calendar-tooltip.in-stay-picker {bottom:calc(90px + env(safe-area-inset-bottom,0px));max-height:min(50vh,360px);}
  .mari-cal-tip-top {padding:13px 15px 11px;}
  .mari-cal-tip-top h3 {font-size:20px;}
  .mari-cal-tip-state {padding:10px 15px;}
  .mari-cal-tip-rules {padding:10px 15px 6px;gap:7px;}
  .mari-restriction-guide-body {grid-template-columns:1fr;gap:0;}
  .mari-restriction-guide-body .mari-disclaimer {grid-column:1;}
  .mari-calendar-howto {text-align:left;padding:0 4px;}
  .bsv-rate-day .mari-cal-day-help {width:13px;height:13px;font-size:8px;top:3px;right:3px;}
}
@media(prefers-reduced-motion:reduce){.mari-restriction-guide summary span{transition:none;}}
