/* The Events calendar page. FullCalendar is coloured from the site's season colours. */
.ev-wrap { padding-bottom: 2rem; }
.ev-bar { margin: .5rem 0 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
#ev-calendar { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: .75rem; box-shadow: 0 8px 24px rgba(27, 31, 42, .08); }
#ev-calendar.fc, #ev-calendar .fc {
  --fc-border-color: var(--line);
  --fc-button-bg-color: var(--deep);
  --fc-button-border-color: var(--deep);
  --fc-button-hover-bg-color: var(--main);
  --fc-button-hover-border-color: var(--main);
  --fc-button-active-bg-color: var(--main);
  --fc-button-active-border-color: var(--main);
  --fc-event-bg-color: var(--main);
  --fc-event-border-color: var(--main);
  --fc-today-bg-color: var(--tint);
  --fc-neutral-bg-color: #f3f1ee;
  --fc-list-event-hover-bg-color: var(--tint);
  font-family: 'Public Sans', system-ui, sans-serif;
}
#ev-calendar .fc-toolbar-title { font: 800 clamp(1.6rem, 4vw, 2.4rem) 'Big Shoulders Display', 'Arial Narrow', sans-serif; text-transform: uppercase; color: var(--deep); }
#ev-calendar .fc-col-header-cell-cushion { color: var(--deep); font-weight: 800; text-decoration: none; }
#ev-calendar .fc-daygrid-day-number { color: var(--link); text-decoration: none; font-weight: 700; }
#ev-calendar .fc-daygrid-day { cursor: pointer; }
#ev-calendar .fc-daygrid-day:hover { background: #FBF6F1; }
#ev-calendar .fc-event { cursor: pointer; font-size: .82rem; font-weight: 600; border-radius: 4px; }
#ev-calendar .fc-daygrid-block-event .fc-event-time, #ev-calendar .fc-daygrid-event .fc-event-title { font-weight: 700; }
#ev-calendar .fc-button { font-weight: 700; text-transform: lowercase; }
#ev-calendar a { text-decoration: none; }
#ev-calendar .fc-more-link { color: var(--link); font-weight: 700; }
.ev-upcoming { margin-top: 2rem; }
.ev-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; max-width: 52rem; }
.ev-list li { background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--main); border-radius: 8px; padding: .6rem 1rem; display: flex; flex-wrap: wrap; gap: .1rem 1rem; }
.ev-list .ev-when { color: var(--deep); font-weight: 700; }
.ev-list .ev-where, .ev-list .ev-cost { color: var(--muted); }

.ev-dialog { max-width: 36rem; width: calc(100% - 2rem); border: 0; border-radius: 14px; padding: 1.5rem 1.5rem 1.25rem; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); color: var(--ink); background: #fff; }
.ev-dialog::backdrop { background: rgba(20, 24, 40, .55); }
.ev-dialog h2 { margin: 0 0 .5rem; padding-right: 2rem; font: 800 1.9rem 'Big Shoulders Display', 'Arial Narrow', sans-serif; text-transform: uppercase; color: var(--deep); }
.ev-dialog h3 { margin: 1rem 0 0; font-size: 1.05rem; color: var(--deep); }
.ev-close { position: absolute; top: .5rem; right: .75rem; margin: 0; padding: 0 .5rem; font-size: 1.8rem; line-height: 1.2; background: transparent; border: 0; cursor: pointer; color: var(--muted); }
.ev-dialog label { display: block; margin: .8rem 0 .25rem; font-weight: 700; }
.ev-dialog input[type=text], .ev-dialog input[type=email], .ev-dialog input[type=tel], .ev-dialog input[type=date], .ev-dialog input[type=time], .ev-dialog select, .ev-dialog textarea { display: block; width: 100%; box-sizing: border-box; padding: .6rem .8rem; font: inherit; border: 2px solid #b9bfcc; border-radius: 8px; background: #fff; }
.ev-dialog input:focus, .ev-dialog select:focus, .ev-dialog textarea:focus { outline: 3px solid var(--accent); outline-offset: 1px; border-color: var(--main); }
.ev-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0 1rem; }
.ev-consent label { font-weight: 400; display: flex; gap: .5rem; align-items: flex-start; }
.ev-consent input { margin-top: .25rem; }
.ev-errors:not(:empty) { background: #FDECEA; border: 1px solid #F2B8B5; color: #A32620; border-radius: 8px; padding: .5rem .9rem; margin: .5rem 0; }
.ev-errors p { margin: .2rem 0; }
.ev-d-when { font-weight: 700; color: var(--deep); }
.ev-dialog p[hidden] { display: none; }

.ev-daily label { font-weight: 400; display: flex; gap: .5rem; align-items: flex-start; background: var(--tint); border-radius: 8px; padding: .5rem .75rem; }
.ev-daily input { margin-top: .3rem; }
.ev-daily[hidden] { display: none; }
