.evreg { margin: 1.5em 0; }
.evreg-details { display: grid; grid-template-columns: max-content 1fr; gap: .25em 1em; margin: 0 0 1em; }
.evreg-details dt { font-weight: 600; }
.evreg-details dd { margin: 0; }
.evreg-form fieldset, .evreg-summary fieldset { border: 1px solid rgba(0,0,0,.15); padding: .75em 1em; margin: 0 0 1em; }
.evreg-form label { display: block; font-weight: 600; margin-bottom: .25em; }
.evreg-form input[type="text"], .evreg-form input[type="email"], .evreg-form input[type="tel"], .evreg-form textarea, .evreg-form select { width: 100%; max-width: 32em; box-sizing: border-box; }
.evreg-form label.evreg-choice, .evreg-summary label.evreg-choice { font-weight: normal; }
.evreg-ticket input[type="number"] { width: 5em; }
.evreg-help { font-weight: normal; opacity: .8; }
.evreg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.evreg-errors { border-left: 4px solid #b32d2e; padding: .5em 1em; margin: 0 0 1em; background: rgba(179,45,46,.06); }
.evreg-notice { border-left: 4px solid #2271b1; padding: .5em 1em; background: rgba(34,113,177,.06); }
.evreg-done { border-left: 4px solid #00a32a; padding: .5em 1em; background: rgba(0,163,42,.06); }
.evreg-items { width: 100%; max-width: 32em; margin: 0 0 1em; }
.evreg-items td, .evreg-items th { text-align: left; padding: .25em 0; }
.evreg-items td:last-child { text-align: right; }
.evreg-total { font-weight: 700; }
.evreg-button { cursor: pointer; display: inline-block; text-decoration: none; }
.evreg-back { margin: 1em 0 0; }
.evreg-register { margin: 1em 0; }
.evreg-register > summary { list-style: none; display: inline-block; cursor: pointer; }
.evreg-register > summary::-webkit-details-marker { display: none; }
.evreg-register > summary::after { content: " \25BE"; }
.evreg-register[open] > summary::after { content: " \25B4"; }
.evreg-register[open] > summary { margin-bottom: 1em; }
.evreg-ics { margin: 0 0 1em; font-size: .9em; }
.evreg-list { list-style: none; margin: 0; padding: 0; }
.evreg-list-item { border-bottom: 1px solid rgba(0,0,0,.12); padding: 1em 0; }
.evreg-list-title { margin: 0 0 .25em; }
.evreg-list-meta { margin: 0 0 .5em; font-weight: 600; }
.evreg-calendar table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.evreg-calendar caption { font-size: 1.25em; font-weight: 700; padding: .5em 0; }
.evreg-calendar th { text-align: center; padding: .25em; font-size: .85em; }
.evreg-calendar td { vertical-align: top; border: 1px solid rgba(0,0,0,.12); height: 6em; padding: .25em; }
.evreg-calendar .evreg-outside { opacity: .45; }
.evreg-calendar .evreg-today .evreg-daynum { font-weight: 700; text-decoration: underline; }
.evreg-daynum { display: block; font-size: .85em; }
.evreg-weekday { display: none; }
.evreg-cal-event { display: block; font-size: .8em; line-height: 1.3; margin: .2em 0; padding: .15em .3em; border-radius: 3px; background: rgba(34,113,177,.12); text-decoration: none; overflow-wrap: break-word; word-break: normal; hyphens: manual; }
.evreg-cal-time { font-weight: 700; margin-right: .25em; }
.evreg-calendar-nav { display: flex; justify-content: space-between; margin: 0 0 .5em; }
/*
 * The calendar sizes itself by the column the theme gives it, not the screen:
 * a wide screen with a narrow content column still has narrow day cells.
 * Event names scale with the calendar's width (1.9% of it, never under 11px
 * or over the normal size), so words of about ten letters fit a day cell
 * whatever the theme's font size. Below 760px the time moves to its own
 * line, and below 520px the calendar becomes a list of days, as on a phone.
 * overflow-wrap stays as the last resort for a word longer than the cell.
 */
.evreg-calendar { container-type: inline-size; container-name: evreg-calendar; }
.evreg-cal-event { font-size: clamp(11px, 1.9cqi, .8em); }
@container evreg-calendar (max-width: 760px) {
	.evreg-calendar td { padding: .15em; }
	.evreg-cal-event { padding: .15em .2em; }
	.evreg-cal-time { display: block; margin-right: 0; }
}
@container evreg-calendar (max-width: 520px) {
	.evreg-calendar thead { display: none; }
	.evreg-calendar table, .evreg-calendar tbody, .evreg-calendar tr, .evreg-calendar td { display: block; width: auto; height: auto; border: 0; }
	.evreg-calendar td:not(.evreg-has-events) { display: none; }
	.evreg-calendar td.evreg-has-events { border-bottom: 1px solid rgba(0,0,0,.12); padding: .5em 0; }
	.evreg-weekday { display: inline; }
	.evreg-cal-event { font-size: .8em; padding: .15em .3em; }
	.evreg-cal-time { display: inline; margin-right: .25em; }
	.evreg-cal-pop { position: static; display: block; width: auto; box-shadow: none; border: 0; padding: .25em 0 0; background: transparent; color: inherit; }
	.evreg-cal-pop > strong { display: none; }
}
@media (max-width: 600px) {
	.evreg-calendar thead { display: none; }
	.evreg-calendar table, .evreg-calendar tbody, .evreg-calendar tr, .evreg-calendar td { display: block; width: auto; height: auto; border: 0; }
	.evreg-calendar td:not(.evreg-has-events) { display: none; }
	.evreg-calendar td.evreg-has-events { border-bottom: 1px solid rgba(0,0,0,.12); padding: .5em 0; }
	.evreg-weekday { display: inline; }
}
.evreg-attendee { margin: 0 0 .75em; }
.evreg-attendee-names { display: flex; flex-wrap: wrap; gap: .5em 1em; }
.evreg-attendee-names label { font-weight: normal; flex: 1 1 12em; }
.evreg-attendee-names input { width: 100%; }
.evreg-back .evreg-button { margin: 0 .5em .5em 0; }
.evreg-cal-event { position: relative; }
.evreg-cal-pop { display: none; position: absolute; z-index: 20; left: 0; top: 100%; width: 16em; padding: .6em .75em; background: #fff; color: #1e1e1e; border: 1px solid rgba(0,0,0,.15); border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,.18); font-size: max(13px, .95em); line-height: 1.4; white-space: normal; }
.evreg-cal-pop > * { display: block; }
.evreg-cal-pop-excerpt { margin-top: .35em; opacity: .85; }
.evreg-cal-event:hover .evreg-cal-pop, .evreg-cal-event:focus .evreg-cal-pop, .evreg-cal-event:focus-within .evreg-cal-pop { display: block; }
.evreg-calendar td:nth-child(n+5) .evreg-cal-pop { left: auto; right: 0; }
@media (max-width: 600px) {
	.evreg-cal-pop { position: static; display: block; width: auto; box-shadow: none; border: 0; padding: .25em 0 0; background: transparent; color: inherit; }
	.evreg-cal-pop > strong { display: none; }
}
.evreg-legacy-note { margin: 1em 0; }
