/* Single event layout previously supplied by The Events Calendar's stylesheet.
   Colours/typography come from main.css (.tribe-events-* rules). */
.tribe-events-pg-template { max-width: 1000px; margin: 0 auto; padding: 2.5rem 1rem; }
.tribe-events-single .tribe-events-back a { display: inline-flex; align-items: center; font-weight: 700; }
.tribe-events-single .tribe-events-notices { background: #f4f5f4; border-radius: .5rem; padding: .75rem 1rem; margin: 1rem 0; text-align: center; }
.tribe-events-single .tribe-events-notices ul { list-style: none; margin: 0; padding: 0; }
.tribe-events-single .nfcc-events-schedule { display: flex; flex-direction: column; align-items: center; gap: .25rem; margin-top: 1.5rem; }
.tribe-events-single .tribe-events-sub-nav { display: flex; justify-content: space-between; gap: 1rem; list-style: none; margin: 1rem 0; padding: 0; }
.tribe-events-single .tribe-events-sub-nav li { margin: 0; }
.tribe-events-single .tribe-events-nav-next { margin-left: auto; text-align: right; }
.tribe-events-single #tribe-events-header .tribe-events-sub-nav { display: none; }
.tribe-events-single .tribe-events-event-image { height: auto; }
.tribe-events-single .tribe-events-single-section-title { font-size: 1.25rem; font-weight: 700; margin-bottom: .75rem; }
.tribe-events-single .tribe-events-meta-group { margin-bottom: 1.5rem; }
.tribe-events-single .tribe-events-meta-list { list-style: none; margin: 0; padding: 0; }
.tribe-events-single .tribe-events-meta-item { margin-bottom: .75rem; }
.tribe-events-single .tribe-events-meta-label { display: block; font-weight: 700; }
.tribe-events-single .tribe-events-address { font-style: normal; }
.tribe-events-single .tribe-events-venue-map { margin-top: 1rem; }

.tribe-events-single .nfcc-event-meta-wrap { display: flex; flex-wrap: wrap; margin-top: 2rem; }
.tribe-events-single .nfcc-event-meta-wrap .tribe-events-event-meta { margin-top: 0; }

@media (max-width: 767px) {
	.tribe-events-event-meta.primary,
	.tribe-events-event-meta.secondary { width: 100% !important; border-radius: .5rem !important; }
}

/* "Add to calendar" dropdown (<details>; button colours come from main.css). */
.nfcc-add-to-calendar { margin: 2rem 0; }
.nfcc-add-to-calendar details { position: relative; display: inline-block; }
.nfcc-add-to-calendar summary { list-style: none; cursor: pointer; color: #fff; font-weight: 700; border-radius: 9999px; }
.nfcc-add-to-calendar summary::-webkit-details-marker { display: none; }
.nfcc-add-to-calendar details[open] summary svg { transform: rotate(180deg); }
.nfcc-add-to-calendar .tribe-events-c-subscribe-dropdown__list { position: absolute; z-index: 20; top: calc(100% + .25rem); left: 0; min-width: 100%; margin: 0; padding: .5rem 0; list-style: none; background: #fff; border: 1px solid #d5d9d8; border-radius: .5rem; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); }
.nfcc-add-to-calendar .tribe-events-c-subscribe-dropdown__list-item { margin: 0; }
.nfcc-add-to-calendar .tribe-events-c-subscribe-dropdown__list-item-link { display: block; padding: .5rem 1rem; color: #0a57a3; text-decoration: none; }
.nfcc-add-to-calendar .tribe-events-c-subscribe-dropdown__list-item-link:hover,
.nfcc-add-to-calendar .tribe-events-c-subscribe-dropdown__list-item-link:focus { background: #f4f5f4; text-decoration: underline; }

/* Tickets panel (tickets.png): Event Tickets' own form box, made full width. */
.nfcc-event-tickets { margin: 2.5rem 0; }
.nfcc-event-tickets .event-tickets .tribe-tickets__tickets-form { max-width: none; margin: 0; border: 1px solid #1d2020; border-radius: 0; padding: 2rem 2.5rem 2.5rem; background: #fff; }
.nfcc-event-tickets .event-tickets .tribe-tickets__tickets-title { color: #0a57a3; font-size: 2rem; font-weight: 700; }
@media (max-width: 767px) { .nfcc-event-tickets .event-tickets .tribe-tickets__tickets-form { padding: 1.25rem; } }

/* Add to calendar icon. */
.nfcc-add-to-calendar summary { gap: .75rem; }

/* Events listing (events.png). */
.nfcc-events { --nfcc-blue: #0a57a3; --nfcc-navy: #073d72; --nfcc-ink: #1d2020; --nfcc-grey: #49514f; --nfcc-line: #d5d9d8; --nfcc-red: #b30000; max-width: 1280px; margin: 0 auto 4rem; padding: 0 1rem; color: var(--nfcc-ink); }
.nfcc-events__btn { display: inline-flex; align-items: center; gap: .5rem; height: 3rem; padding: 0 1.75rem; border-radius: 9999px; font-weight: 700; font-size: 1.125rem; line-height: 1; text-decoration: none; cursor: pointer; white-space: nowrap; }
.nfcc-events__btn--primary { background: var(--nfcc-navy); color: #fff; border: 0; }
.nfcc-events__btn--primary:hover, .nfcc-events__btn--primary:focus-visible { background: var(--nfcc-blue); }
.nfcc-events__btn--outline { border: 1.5px solid var(--nfcc-ink); color: var(--nfcc-ink); background: #fff; }
.nfcc-events__btn--outline:hover { background: #f4f5f4; }

.nfcc-events__search { display: flex; align-items: center; gap: 1rem; border: 1.5px solid #d1d3d3; border-radius: 9999px; padding: .5rem .5rem .5rem 1.5rem; }
.nfcc-events__search-field { flex: 1; display: flex; align-items: center; gap: .75rem; color: var(--nfcc-grey); min-width: 0; margin: 0; font-weight: 400; line-height: 1; }
.nfcc-events__search-field svg { display: block; flex-shrink: 0; }
.nfcc-events__search-field input { flex: 1; min-width: 0; height: 2.75rem; margin: 0; border: 0 !important; outline: 0; box-shadow: none !important; padding: 0; font-size: 1.125rem; line-height: 2.75rem; background: transparent; -webkit-appearance: none; appearance: none; }

.nfcc-events__controls { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin: 2.5rem 0 3rem; }
.nfcc-events__arrows { display: flex; gap: .5rem; }
.nfcc-events__arrows a, .nfcc-events__arrows span { display: inline-flex; padding: .25rem; color: var(--nfcc-ink); }
.nfcc-events__arrows .is-disabled { color: #a4a8a7; }
.nfcc-events__when { position: relative; }
.nfcc-events__when summary { list-style: none; }
.nfcc-events__when summary::-webkit-details-marker { display: none; }
.nfcc-events__when[open] .nfcc-events__caret { transform: rotate(180deg); }
.nfcc-events__when ul { position: absolute; z-index: 20; top: calc(100% + .25rem); left: 0; min-width: 100%; margin: 0; padding: .5rem 0; list-style: none; background: #fff; border: 1px solid var(--nfcc-line); border-radius: .5rem; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); }
.nfcc-events__when li a { display: block; padding: .5rem 1.25rem; color: var(--nfcc-ink); text-decoration: none; }
.nfcc-events__when li a[aria-current] { font-weight: 700; }
.nfcc-events__when li a:hover { background: #f4f5f4; }
.nfcc-events__cart { display: flex; justify-content: center; margin-top: 2.5rem; }
.nfcc-events__subscribe { display: flex; justify-content: flex-end; margin: 2.5rem 0 0; }
.nfcc-events__subscribe .tribe-events-c-subscribe-dropdown__list { left: auto; right: 0; }
.nfcc-events__subscribe summary { display: flex; align-items: center; justify-content: center; white-space: nowrap; padding: .875rem 1.5rem; background: #0a57a3; }
.nfcc-events__subscribe summary:hover { background: #073d72; }
.nfcc-events__subscribe summary:focus-visible { outline: 2px solid #1d2020; outline-offset: 2px; }

.nfcc-events__layout { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 1024px) { .nfcc-events__layout { grid-template-columns: 20rem 1fr; gap: 3.5rem; } }

.nfcc-events__filters-head { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 1.25rem; border-bottom: 1px solid var(--nfcc-line); }
.nfcc-events__filters-head h2 { font-size: 1.5rem; font-weight: 400; margin: 0; }
.nfcc-events__filters-head a { font-size: .875rem; color: var(--nfcc-blue); }
.nfcc-events__filter { border-bottom: 1px solid var(--nfcc-line); }
.nfcc-events__filter summary { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem 0; font-weight: 700; font-size: 1.125rem; cursor: pointer; list-style: none; }
.nfcc-events__filter summary::-webkit-details-marker { display: none; }
.nfcc-events__toggle { position: relative; width: 16px; height: 16px; }
.nfcc-events__toggle::before, .nfcc-events__toggle::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--nfcc-grey); }
.nfcc-events__toggle::after { transform: rotate(90deg); transition: transform .15s; }
.nfcc-events__filter[open] .nfcc-events__toggle::after { transform: rotate(0); }
.nfcc-events__filter-body { padding: 0 0 1.25rem; max-height: 18rem; overflow-y: auto; }
.nfcc-events__check { display: flex; align-items: flex-start; gap: .625rem; padding: .375rem 0; cursor: pointer; }
.nfcc-events__check input { margin-top: .2rem; width: 1.125rem; height: 1.125rem; flex: none; accent-color: var(--nfcc-navy); }
.nfcc-events__cost { display: flex; gap: 1rem; }
.nfcc-events__cost label { display: flex; flex-direction: column; gap: .25rem; font-size: .875rem; flex: 1; }
.nfcc-events__cost input { width: 100%; border: 1px solid var(--nfcc-line); padding: .5rem; }
.nfcc-events__apply { margin-top: 1rem; padding: .5rem 1.25rem; border-radius: 9999px; background: var(--nfcc-navy); color: #fff; font-weight: 700; border: 0; cursor: pointer; }

.nfcc-events__month { display: flex; align-items: center; gap: 1.5rem; margin: 0 0 2.5rem; font-size: 1.125rem; font-weight: 700; color: var(--nfcc-grey); }
.nfcc-events__month::after { content: ""; flex: 1; height: 1px; background: var(--nfcc-ink); }
.nfcc-events__row + .nfcc-events__month { margin-top: 1rem; }
.nfcc-events__row { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem 1.5rem; margin-bottom: 3.5rem; }
@media (min-width: 768px) { .nfcc-events__row { grid-template-columns: 5.5rem 1fr 17rem; gap: 2rem; } }
@media (min-width: 1280px) { .nfcc-events__row { grid-template-columns: 6.5rem 1fr 20rem; } }
.nfcc-events__day { text-align: center; }
.nfcc-events__weekday { display: block; font-size: .875rem; color: var(--nfcc-grey); }
.nfcc-events__daynum { display: block; font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.nfcc-events__date { font-weight: 700; font-size: 1.125rem; margin: 0 0 .5rem; }
.nfcc-events__title { margin: 0 0 .75rem; font-size: 1.75rem; line-height: 1.25; }
.nfcc-events__title a { color: var(--nfcc-blue); text-decoration: none; }
.nfcc-events__title a:hover { text-decoration: underline; }
.nfcc-events__virtual { display: flex; align-items: center; gap: .5rem; font-weight: 700; margin: 0 0 .75rem; }
.nfcc-events__excerpt { color: #333937; line-height: 1.6; }
.nfcc-events__excerpt p { margin: 0 0 1rem; }
.nfcc-events__tickets { display: flex; align-items: baseline; flex-wrap: wrap; gap: 1rem; margin: 0; font-size: .9375rem; }
.nfcc-events__tickets a { font-weight: 700; font-size: 1.125rem; color: var(--nfcc-ink); text-decoration: none; padding-bottom: .375rem; border-bottom: 3px solid var(--nfcc-red); }
.nfcc-events__tickets span { color: var(--nfcc-grey); }
.nfcc-events__soldout { font-weight: 700; }
.nfcc-events__media { grid-column: 2; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #edeeed; }
@media (min-width: 768px) { .nfcc-events__media { grid-column: 3; grid-row: 1; align-self: start; } }
.nfcc-events__image { width: 100%; height: 100%; object-fit: cover; display: block; }

.nfcc-events__pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid var(--nfcc-line); color: var(--nfcc-grey); }
.nfcc-events__pager a { display: inline-flex; align-items: center; gap: .25rem; font-weight: 700; color: var(--nfcc-ink); text-decoration: none; }
.nfcc-events__empty { padding: 2rem; background: #f4f5f4; border-radius: .5rem; }
.nfcc-events__empty a { color: var(--nfcc-blue); text-decoration: underline; }

@media (max-width: 767px) {
	.nfcc-events__search { flex-wrap: wrap; padding: .75rem; border-radius: 1.5rem; }
	.nfcc-events__search-field { flex-basis: 100%; }
	.nfcc-events__search .nfcc-events__btn { flex: 1; justify-content: center; }
	.nfcc-events__title { font-size: 1.375rem; }
}
