/* Matt Waller Music: booking calendar */
.mw-calendar { margin:44px auto 34px; padding:32px; border:1px solid #dbd9ce; background:#fbfaf5; box-shadow:0 9px 35px rgba(0,0,0,.035); text-align:left; }
.mw-calendar-top { display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap; }
.mw-calendar-eyebrow { color:#5f6d21; font-weight:800; font-size:10px; letter-spacing:.16em; }
.mw-calendar-title h3 { font-size:clamp(24px,3vw,37px); margin:8px 0 0; line-height:1.1; }
.mw-calendar-navigation { display:flex; align-items:center; gap:9px; }
.mw-calendar-navigation button { min-width:36px; height:36px; border:1px solid #bdbdb5; background:transparent; color:#17191a; cursor:pointer; font-size:24px; line-height:1; }
.mw-calendar-navigation button:hover,.mw-calendar-navigation button:focus-visible { background:#eef0df; outline:2px solid #647c2a; outline-offset:1px; }
#mw-cal-month { min-width:140px; text-align:center; font-weight:800; font-size:14px; }
.mw-calendar-navigation .mw-cal-today { font-size:12px; padding:0 9px; font-weight:700; }
.mw-calendar-subtitle { color:#60615d; font-size:14px; line-height:1.6; margin:14px 0; }
.mw-calendar-legend { display:flex; gap:22px; flex-wrap:wrap; color:#55574d; font-size:12px; font-weight:600; padding:10px 0 24px; }
.mw-calendar-legend span { display:inline-flex; align-items:center; gap:7px; }
.mw-legend-dot { display:inline-block; width:10px; height:10px; border-radius:50%; }
.mw-dot-public { background:#64810d; }.mw-dot-booked { background:#656766; }
.mw-calendar-columns { display:grid; grid-template-columns:minmax(0,1.17fr) minmax(255px,.83fr); gap:23px; align-items:stretch; }
.mw-calendar-month { min-width:0; }
.mw-calendar-weekdays,.mw-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.mw-calendar-weekdays { margin-bottom:8px; }
.mw-calendar-weekdays span { text-align:center; color:#86877e; font-size:11px; font-weight:700; padding:5px 0; }
.mw-calendar-day,.mw-calendar-empty { min-height:52px; border:1px solid #e0dfd7; background:#fff; border-radius:3px; }
.mw-calendar-day { position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:5px; padding:5px 2px; color:#222; cursor:pointer; font:inherit; }
.mw-calendar-day:hover { border-color:#646f3a; background:#f4f6eb; }
.mw-date-number { font-size:14px; font-weight:650; }
.mw-calendar-day.mw-public { background:#edf5d7; border-color:#c3d59e; }
.mw-calendar-day.mw-booked { background:#ecece7; border-color:#d0d2cc; }
.mw-date-marker { display:block; width:7px; height:7px; border-radius:50%; background:#666a60; }
.mw-public .mw-date-marker { background:#64810d; }
.mw-calendar-day.mw-today .mw-date-number { text-decoration:underline; text-underline-offset:4px; }
.mw-calendar-day.mw-selected { outline:2px solid #17191c; outline-offset:-2px; }
.mw-calendar-day:focus-visible { outline:3px solid #617b18; outline-offset:1px; }
.mw-calendar-details { min-width:0; background:#f0efe6; border:1px solid #deddd2; padding:22px; display:flex; flex-direction:column; }
.mw-details-kicker { color:#646752; font-size:10px; font-weight:800; letter-spacing:.14em; }
.mw-calendar-details h4 { margin:10px 0 15px; font:800 clamp(18px,2.1vw,22px)/1.25 Manrope,sans-serif; letter-spacing:-.025em; }
.mw-detail-copy { flex:1; font-size:13px; line-height:1.6; color:#53554f; }
.mw-detail-copy p { margin:0 0 12px; }
.mw-detail-event { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding-bottom:12px; }
.mw-detail-event strong { font-size:16px; line-height:1.35; color:#1e1f1f; }
.mw-event-status { font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.mw-status-public { color:#597312; }.mw-status-booked { color:#5e615b; }
.mw-inquiry-button { align-self:stretch; display:block; text-align:center; background:#17191c; color:#fff; font-weight:700; font-size:12px; line-height:1.5; padding:13px 8px; margin-top:16px; }
.mw-inquiry-button:hover { background:#4d5f13; color:white; }
.mw-calendar-caveat { color:#707168; line-height:1.6; font-size:12px; margin:20px 0 0; }
@media (max-width:780px) {
  .mw-calendar { padding:20px; }
  .mw-calendar-columns { grid-template-columns:1fr; }
  .mw-calendar-day,.mw-calendar-empty { min-height:46px; }
  .mw-calendar-details { min-height:200px; }
}
@media (max-width:480px) {
  .mw-calendar { margin:30px -5px; padding:15px; }
  .mw-calendar-top { gap:16px; }
  .mw-calendar-navigation { width:100%; justify-content:space-between; }
  .mw-calendar-navigation button { min-width:32px; }
  .mw-calendar-weekdays,.mw-calendar-grid { gap:3px; }
  .mw-calendar-weekdays span { font-size:9px; }
  .mw-calendar-day,.mw-calendar-empty { min-height:42px; }
  .mw-date-number { font-size:12px; }
  .mw-calendar-legend { gap:9px 16px; }
}