/* NZ DESIGN WEEK — THE EVENTS CALENDAR
----------------------------------------------------------- */

#calendar-page {
	--nzdw-black: #000;
	--nzdw-white: #fff;
	--nzdw-grey: #f0f0f0;
	--nzdw-line: rgba(0, 0, 0, 0.18);
	--nzdw-green: #00cf9f;
	--nzdw-pink: #ff2e63;
	--nzdw-purple: #cf3cff;
	--nzdw-blue: #11bfe8;
	--nzdw-slate: #777777;
}
#calendar-page .tribe-events-calendar-month__calendar-event {
	margin: 0 0 5px !important;
}

#calendar-page .tribe-events-calendar-month__calendar-event-details {
	box-sizing: border-box !important;
	height: 52px !important;
	padding: 6px 8px !important;
	overflow: hidden !important;
	font-size: 11px !important;
	line-height: 1.1 !important;
}

#calendar-page .tribe-events-calendar-month__calendar-event-datetime {
	display: block !important;
	margin-bottom: 3px !important;
	overflow: hidden !important;
	font-size: 10px !important;
	line-height: 1.1 !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}

#calendar-page .tribe-events-calendar-month__calendar-event-title,
#calendar-page .tribe-events-calendar-month__calendar-event-title-link {
	margin: 0 !important;
	overflow: hidden !important;
	font-size: 11px !important;
	line-height: 1.1 !important;
}

#calendar-page .tribe-events-calendar-month__calendar-event-title-link {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 2 !important;
}


/* HERO
----------------------------------------------------------- */

#calendar-page .calendar__hero {
	padding: 110px 40px 48px;
	background: var(--nzdw-black);
	color: var(--nzdw-white);
}

#calendar-page .calendar__container {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

#calendar-page .calendar__heading {
	margin: 0 0 34px;
	color: var(--nzdw-white);
	font-family: "Sohne Breit Halbfett", sans-serif;
	font-size: clamp(72px, 8vw, 120px);
	font-weight: 600;
	line-height: 0.9;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

#calendar-page .calendar__heading-description {
	max-width: 760px;
	margin: 0 0 44px;
	color: var(--nzdw-white);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.45;
}

#calendar-page .calendar__heading-description p {
	margin: 0;
}

#calendar-page .calendar__hero .btn-outline-white,
#calendar-page .calendar__hero .btn-solid-white {
	display: inline-flex;
	min-height: 40px;
	align-items: center;
	justify-content: center;
	padding: 0 20px !important;
	background: transparent !important;
	border: 2px solid var(--nzdw-white) !important;
	border-radius: 999px;
	color: var(--nzdw-white) !important;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

#calendar-page .calendar__hero .btn-outline-white:hover,
#calendar-page .calendar__hero .btn-solid-white:hover {
	background: var(--nzdw-white) !important;
	color: var(--nzdw-black) !important;
}

#calendar-page .calendar__subscribe {
	position: relative;
	display: inline-block;
}

#calendar-page .calendar__subscribe-toggle {
	cursor: pointer;
}

#calendar-page .calendar__subscribe-toggle::after {
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-left: 12px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: '';
	transform: translateY(-2px) rotate(45deg);
	transition: transform 180ms ease;
}

#calendar-page .calendar__subscribe-toggle[aria-expanded="true"]::after {
	transform: translateY(2px) rotate(225deg);
}

#calendar-page .calendar__subscribe-gate {
	position: absolute;
	z-index: 101;
	top: calc(100% + 10px);
	left: 0;
	width: min(340px, calc(100vw - 32px));
	padding: 16px;
	border-radius: 12px;
	background: var(--nzdw-white);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
	color: var(--nzdw-black);
}

#calendar-page .calendar__subscribe-gate[hidden] {
	display: none !important;
}

#calendar-page .calendar__subscribe-intro {
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.35;
}

#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k {
	min-height: 0;
}

#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k form {
	padding: 0 !important;
}

#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k input {
	box-sizing: border-box !important;
	height: 42px !important;
	padding: 0 10px !important;
	font-size: 14px !important;
	line-height: 42px !important;
}

#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k button {
	box-sizing: border-box !important;
	width: 100% !important;
	height: 42px !important;
	min-height: 42px !important;
	padding: 0 16px !important;
	font-size: 13px !important;
	line-height: 42px !important;
}

#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k form > div,
#calendar-page .calendar__subscribe-gate .klaviyo-form-Trhv6k form > div > div {
	row-gap: 8px !important;
}

#calendar-page .calendar__subscribe-mount {
	position: absolute;
	z-index: 100;
	top: calc(100% + 10px);
	left: 0;
	min-width: 240px;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__container {
	display: block !important;
	margin: 0 !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__button {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__content {
	width: 100% !important;
	min-width: 240px !important;
	margin: 0 !important;
	border: 1px solid rgba(0, 0, 0, 0.14) !important;
	border-radius: 12px !important;
	background: var(--nzdw-white) !important;
	box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24) !important;
	color: var(--nzdw-black) !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__list {
	margin: 0 !important;
	padding: 8px !important;
	list-style: none !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__list-item {
	margin: 0 !important;
	padding: 0 !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__list-item-link {
	display: block !important;
	padding: 10px 12px !important;
	border-radius: 8px !important;
	color: var(--nzdw-black) !important;
	font-size: 14px !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
}

#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__list-item-link:hover,
#calendar-page .calendar__subscribe-mount
	.tribe-events-c-subscribe-dropdown__list-item-link:focus-visible {
	background: var(--nzdw-grey) !important;
}

/* MAIN CALENDAR WRAPPER
----------------------------------------------------------- */

#calendar-page .calendar__main {
	width: 100%;
	padding: 72px 40px 96px;
	background: var(--nzdw-white);
}

#calendar-page .calendar__main .tribe-events-view,
#calendar-page .calendar__main .tribe-common-l-container,
#calendar-page .calendar__main .tribe-events-l-container {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

#calendar-page .calendar__main .tribe-common-l-container,
#calendar-page .calendar__main .tribe-events-l-container {
	padding: 0 !important;
}

#calendar-page .tribe-events-header__content-title,
#calendar-page .tribe-events-c-top-bar__today-button,
#calendar-page .tribe-events-c-subscribe-dropdown__container,
#calendar-page .tribe-events-widget-events-month__view-more {
	display: none !important;
}

/* TEC's accessible archive title must remain available to screen readers
 * without becoming a giant visible "EVENTS" heading. */
#calendar-page .tec-a11y-title-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.tribe-events-c-search__input-group {
    margin-top: 0px !important;
}
/* HEADER LAYOUT
----------------------------------------------------------- */

#wrap #calendar-page .tribe-events-header.tribe-events-header--has-event-search,
#calendar-page .tribe-events-header {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 320px !important;
	grid-template-areas:
		"topbar topbar"
		"filters search" !important;
	column-gap: 32px !important;
	row-gap: 24px !important;
	align-items: center !important;
	margin: 0 0 28px !important;
	padding: 0 !important;
}

#calendar-page .tribe-events-c-top-bar {
	display: flex !important;
	grid-area: topbar !important;
	align-items: center !important;
	justify-content: flex-start !important;
	min-height: 40px !important;
	margin: 0 !important;
}

#calendar-page .tribe-events-c-top-bar__nav,
#wrap #calendar-page .tribe-events-c-top-bar__nav.tribe-common-a11y-hidden {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	clip: auto !important;
	clip-path: none !important;
	overflow: visible !important;
}

#calendar-page .tribe-events-c-top-bar__nav-list {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	margin: 0 !important;
	padding: 0 !important;
}

#calendar-page .tribe-events-c-top-bar__nav-list-item {
	margin: 0 !important;
	padding: 0 !important;
}

#calendar-page .tribe-events-c-top-bar__nav-link,
#calendar-page .tribe-events-c-top-bar__nav-link:disabled {
	display: flex !important;
	width: 32px !important;
	height: 32px !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	background: var(--nzdw-black) !important;
	border: 0 !important;
	border-radius: 50% !important;
	color: var(--nzdw-white) !important;
	opacity: 1 !important;
}

#calendar-page .tribe-events-c-top-bar__nav-link svg {
	display: block !important;
	width: 7px !important;
	height: 12px !important;
	color: var(--nzdw-white) !important;
	fill: none !important;
}

#calendar-page .tribe-events-c-top-bar__nav-link svg path {
	fill: none !important;
	stroke: var(--nzdw-white) !important;
	stroke-width: 1.5px !important;
}

#calendar-page .tribe-events-c-top-bar__nav-link:hover svg,
#calendar-page .tribe-events-c-top-bar__nav-link:focus svg,
#calendar-page .tribe-events-c-top-bar__nav-link:hover svg path,
#calendar-page .tribe-events-c-top-bar__nav-link:focus svg path {
	color: var(--nzdw-white) !important;
	stroke: var(--nzdw-white) !important;
}

#calendar-page .tribe-events-c-top-bar__datepicker {
	position: relative !important;
	margin: 0 0 0 8px !important;
}

#calendar-page .tribe-events-c-top-bar__datepicker-button {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	color: var(--nzdw-black) !important;
}

#calendar-page .tribe-events-c-top-bar__datepicker-time {
	color: var(--nzdw-black) !important;
	font-family: "Sohne Breit Halbfett", sans-serif !important;
	font-size: 40px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: -0.02em !important;
	text-transform: uppercase !important;
}

#calendar-page .tribe-events-c-top-bar__datepicker-button-icon-svg {
	display: block !important;
	width: 10px !important;
	height: 7px !important;
	color: var(--nzdw-black) !important;
}

/*
 * Safety net: The Events Calendar's own native datepicker popup is
 * intercepted and replaced by the custom .nzdw-month-picker built in
 * calendar-v4.js. Force-hide TEC's native panel outright in case the
 * plugin ever re-renders or re-binds its own toggle after ours runs,
 * so the two calendars can never appear stacked on top of each other.
 */
#calendar-page .tribe-events-c-top-bar__datepicker-calendar,
#calendar-page .tribe-events-c-top-bar__datepicker-calendar-container {
	display: none !important;
}

/* FILTER PILLS AND MODALS
----------------------------------------------------------- */

#calendar-page .tribe-filter-bar {
	display: block !important;
	grid-area: filters !important;
	width: auto !important;
	margin: 0 !important;
	visibility: visible !important;
	opacity: 1 !important;
}

#calendar-page .tribe-filter-bar__form,
#calendar-page .tribe-filter-bar__filters {
	display: flex !important;
	width: 100% !important;
	height: auto !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 0 !important;
}

#calendar-page .tribe-filter-bar__actions {
	display: none !important;
}

#calendar-page .tribe-filter-bar-c-filter {
	position: relative !important;
	width: auto !important;
	margin: 0 !important;
}

#calendar-page .tribe-filter-bar-c-filter__toggle {
	position: relative !important;
	display: flex !important;
	min-height: 40px !important;
	align-items: center !important;
	gap: 9px !important;
	padding: 8px 30px 8px 14px !important;
	background: var(--nzdw-white) !important;
	border: 1px solid #dedede !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	color: #111 !important;
	font-family: Arial, sans-serif !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}

#calendar-page .tribe-filter-bar-c-filter__toggle-heading {
	margin: 0 !important;
}

#calendar-page .tribe-filter-bar-c-filter__toggle-icon {
	display: none !important;
}

#calendar-page .tribe-filter-bar-c-filter__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 14px;
	display: block !important;
	width: 6px;
	height: 6px;
	margin: -5px 0 0;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg);
	pointer-events: none;
}

/* TEC horizontal Filter Bar renders these visible pill buttons instead of
 * the accordion toggles above. Keep both selectors because TEC switches
 * markup at different breakpoints. */
#calendar-page .tribe-filter-bar-c-pill__pill {
	position: relative !important;
	display: flex !important;
	min-height: 40px !important;
	align-items: center !important;
	padding: 8px 30px 8px 14px !important;
	background: var(--nzdw-white) !important;
	border: 1px solid #dedede !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	color: #111 !important;
	font-family: Arial, sans-serif !important;
	font-size: 12px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}

#calendar-page .tribe-filter-bar-c-pill__pill-label-colon {
	display: none !important;
}

#calendar-page .tribe-filter-bar-c-pill__pill::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	right: 14px !important;
	display: block !important;
	width: 6px !important;
	height: 6px !important;
	margin-top: -5px !important;
	border-right: 1px solid currentColor !important;
	border-bottom: 1px solid currentColor !important;
	transform: rotate(45deg) !important;
	pointer-events: none !important;
}

#calendar-page .tribe-filter-bar-c-pill__pill[aria-expanded="true"]::after {
	margin-top: -1px !important;
	transform: rotate(225deg) !important;
}

#calendar-page .tribe-filter-bar-c-filter__container {
	z-index: 50 !important;
	padding: 18px 20px 20px !important;
	background: var(--nzdw-white) !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.14) !important;
}

/* SEARCH
----------------------------------------------------------- */

#calendar-page .tribe-events-header__events-bar {
	display: flex !important;
	grid-area: search !important;
	width: 100% !important;
	max-width: 320px !important;
	min-height: 40px !important;
	justify-self: end !important;
	margin: 0 !important;
	border: 0 !important;
}

#calendar-page .tribe-events-c-events-bar__search-container,
#calendar-page .tribe-events-c-search,
#calendar-page .tribe-events-c-search__form,
#calendar-page .tribe-events-c-search__input-control {
	display: flex !important;
	width: 100% !important;
	max-width: none !important;
}

#calendar-page .tribe-events-c-search__input-control {
	background: var(--nzdw-grey) !important;
	border: 0 !important;
	border-radius: 999px !important;
	overflow: hidden !important;
}

#calendar-page .tribe-events-c-search__input {
	width: 100% !important;
	height: 65px !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	font-size: 14px !important;
}

/* WEEKDAY LABELS
----------------------------------------------------------- */

#calendar-page .tribe-events-calendar-month__header-column-title span[aria-hidden="true"] {
	display: none !important;
}

#calendar-page .tribe-events-calendar-month__header-column-title .screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

#calendar-page .tribe-events-calendar-month__header-column-title::before {
	color: var(--nzdw-black);
	font-family: "Sohne Buch", sans-serif;
	font-size: 10px;
	font-weight: 400;
	line-height: 1;
}

#calendar-page .tribe-events-calendar-month__header-column:nth-child(1) .tribe-events-calendar-month__header-column-title::before { content: "MO"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(2) .tribe-events-calendar-month__header-column-title::before { content: "TU"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(3) .tribe-events-calendar-month__header-column-title::before { content: "WE"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(4) .tribe-events-calendar-month__header-column-title::before { content: "TH"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(5) .tribe-events-calendar-month__header-column-title::before { content: "FR"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(6) .tribe-events-calendar-month__header-column-title::before { content: "SA"; }
#calendar-page .tribe-events-calendar-month__header-column:nth-child(7) .tribe-events-calendar-month__header-column-title::before { content: "SU"; }

/* DESKTOP CALENDAR GRID
----------------------------------------------------------- */

#calendar-page .tribe-events-calendar-month {
	border: 0 !important;
}

#calendar-page .tribe-events-calendar-month__header {
	border-bottom: 1px solid var(--nzdw-black) !important;
}

#calendar-page .tribe-events-calendar-month__header-column {
	padding: 0 12px 12px !important;
	text-align: left !important;
}

#calendar-page .tribe-events-calendar-month__week {
	border-bottom: 1px solid var(--nzdw-black) !important;
}

#calendar-page .tribe-events-calendar-month__day {
	height: 160px !important;
	border-color: var(--nzdw-line) !important;
	border-top: 0 !important;
}

#calendar-page .tribe-events-calendar-month__day-date {
	margin: 0 !important;
	padding: 12px 14px 0 !important;
	text-align: left !important;
}

#calendar-page .tribe-events-calendar-month__day-date-daynum {
	color: var(--nzdw-black) !important;
	font-family: "Sohne Breit Halbfett", sans-serif !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
}

#calendar-page .tribe-events-calendar-month__day--other-month .tribe-events-calendar-month__day-date-daynum {
	color: rgba(0, 0, 0, 0.35) !important;
}

/* EVENT CATEGORY COLOURS
----------------------------------------------------------- */

#calendar-page .tribe_events_cat-satellite-event .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe_events_cat-satellite-events .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe_events_cat-satellite-events-free .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-green) !important;
}

#calendar-page .tribe_events_cat-design-conference .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe_events_cat-design-conference-international .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-pink) !important;
}

#calendar-page .tribe_events_cat-design-conference-local .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-purple) !important;
}

#calendar-page .tribe_events_cat-partner-event .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe_events_cat-partner-events .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe_events_cat-partner-event-paid .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-blue) !important;
}

#calendar-page .tribe_events_cat-milestone-event .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-black) !important;
}

#calendar-page .tribe_events_cat-exhibitor .tribe-events-calendar-month__calendar-event-details {
	background: var(--nzdw-black) !important;
}

#calendar-page .tribe-events-calendar-month__calendar-event-details,
#calendar-page .tribe-events-calendar-month__calendar-event-details a,
#calendar-page .tribe-events-calendar-month__calendar-event-datetime {
	color: var(--nzdw-white) !important;
}

/* MONTH PICKER
----------------------------------------------------------- */

.nzdw-month-picker-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(3px);
}

.nzdw-month-picker {
	position: fixed;
	z-index: 1002;
	width: min(350px, calc(100vw - 32px));
	padding: 16px 20px 22px;
	background: var(--nzdw-white);
	border-radius: 12px;
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18);
	color: var(--nzdw-black);
}

.nzdw-month-picker__header {
	display: grid;
	grid-template-columns: 32px 1fr 32px;
	align-items: center;
	margin-bottom: 14px;
}

.nzdw-month-picker__year {
	font-family: "Sohne Breit Halbfett", sans-serif;
	font-size: 20px;
	text-align: center;
}

.nzdw-month-picker__year-button {
	display: flex !important;
	width: 32px !important;
	height: 32px !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	background: var(--nzdw-black) !important;
	border: 0 !important;
	border-radius: 50% !important;
	color: var(--nzdw-white) !important;
	font: 400 17px/1 Arial, sans-serif !important;
	cursor: pointer;
}

.nzdw-month-picker__months {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px 10px;
}

.nzdw-month-picker__month {
	display: flex;
	min-height: 40px;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	color: var(--nzdw-black) !important;
	font-size: 16px;
	text-decoration: none !important;
}

.nzdw-month-picker__month:hover,
.nzdw-month-picker__month.is-current {
	background: var(--nzdw-pink);
	color: var(--nzdw-white) !important;
}

/* MOBILE / TABLET
----------------------------------------------------------- */

/*
 * Compact grid breakpoint — phone AND tablet portrait (per the supplied
 * Mobile [375px] and Tablet Portrait [768px] designs). Both use the same
 * dot-based day grid and compact pill/search styling. The header ROW
 * LAYOUT (stacked vs side-by-side) is handled separately below, since the
 * tablet design keeps filters + search on one row like desktop while
 * still using this compact grid.
 */
@media (max-width: 1024px) {
	#calendar-page .calendar__hero {
		padding: 44px 20px 42px;
	}

	#calendar-page .calendar__heading {
		margin-bottom: 22px;
		font-size: clamp(48px, 16vw, 76px);
		line-height: 0.92;
	}

	#calendar-page .calendar__heading-description {
		max-width: 440px;
		margin-bottom: 28px;
		font-size: 13px;
		line-height: 1.45;
	}

	#calendar-page .calendar__main {
		padding: 34px 20px 64px;
	}

	#calendar-page .tribe-events-c-top-bar {
		gap: 7px !important;
	}

	#calendar-page .tribe-events-c-top-bar__nav-list {
		gap: 5px !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	#calendar-page .tribe-events-c-top-bar__nav-link,
	#calendar-page .tribe-events-c-top-bar__nav-link:disabled {
		width: 30px !important;
		height: 30px !important;
	}

	#calendar-page .tribe-events-c-top-bar__datepicker {
		margin-left: 2px !important;
	}

	#calendar-page .tribe-events-c-events-bar__search-button {
		display: none !important;
	}

	#calendar-page .tribe-events-c-events-bar__search-container {
		position: static !important;
		display: flex !important;
		height: auto !important;
		padding: 0 !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	#calendar-page .tribe-events-c-search__input {
		height: 44px !important;
	}

	#calendar-page .tribe-filter-bar__form,
	#calendar-page .tribe-filter-bar__filters {
		flex-wrap: nowrap !important;
		gap: 6px !important;
	}

	#calendar-page .tribe-filter-bar-c-filter {
		position: static !important;
		min-width: 0 !important;
		flex: 0 1 auto !important;
	}

	#calendar-page .tribe-filter-bar-c-filter__toggle {
		min-height: 36px !important;
		padding: 7px 25px 7px 10px !important;
		font-size: 10px !important;
	}

	#calendar-page .tribe-filter-bar-c-pill__pill {
		min-height: 36px !important;
		padding: 7px 25px 7px 10px !important;
		font-size: 10px !important;
	}

	#calendar-page .tribe-filter-bar-c-filter__toggle::after {
		right: 10px;
	}

	#calendar-page .tribe-filter-bar-c-pill__pill::after {
		right: 10px !important;
	}

	/* Open filters are centred modal cards, as in the supplied design. */
	#calendar-page .tribe-filter-bar-c-filter__container {
		position: fixed !important;
		top: 50% !important;
		left: 50% !important;
		right: auto !important;
		bottom: auto !important;
		z-index: 1002 !important;
		width: min(320px, calc(100vw - 40px)) !important;
		max-height: min(520px, calc(100vh - 80px)) !important;
		padding: 20px !important;
		overflow: auto !important;
		transform: translate(-50%, -50%) !important;
	}

	/* Compact seven-column month grid. */
	#calendar-page .tribe-events-calendar-month {
		width: 100% !important;
		table-layout: fixed !important;
	}

	#calendar-page .tribe-events-calendar-month__header-row {
		display: table-row !important;
		width: 100% !important;
	}

	#calendar-page .tribe-events-calendar-month__header-column {
		display: table-cell !important;
		width: 14.285714% !important;
		padding: 0 0 9px !important;
		text-align: center !important;
	}

	#calendar-page .tribe-events-calendar-month__header-column-title {
		display: block !important;
		font-size: 9px !important;
		line-height: 1 !important;
	}

	#calendar-page .tribe-events-calendar-month__body {
		border-top: 1px solid #222 !important;
	}

	#calendar-page .tribe-events-calendar-month__week {
		display: table-row !important;
		width: 100% !important;
		height: 58px !important;
		min-height: 58px !important;
		margin: 0 !important;
		padding: 0 !important;
		border-bottom: 1px solid #777 !important;
	}

	#calendar-page .tribe-events-calendar-month__day {
		position: relative !important;
		display: table-cell !important;
		width: 14.285714% !important;
		height: 58px !important;
		min-height: 58px !important;
		padding: 0 !important;
		background: var(--nzdw-white) !important;
		border-right: 1px solid #aaa !important;
	}

	#calendar-page .tribe-events-calendar-month__day:last-child {
		border-right: 0 !important;
	}

	#calendar-page .tribe-events-calendar-month__day-cell--mobile {
		position: relative !important;
		display: flex !important;
		width: 100% !important;
		height: 100% !important;
		min-height: 58px !important;
		flex-direction: column !important;
		align-items: center !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
	}

	#calendar-page .tribe-events-calendar-month__day-cell--selected {
		background: var(--nzdw-black) !important;
	}

	#calendar-page .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date,
	#calendar-page .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date-daynum {
		color: var(--nzdw-white) !important;
	}

	#calendar-page .tribe-events-calendar-month__day-date {
		margin: 0 !important;
		padding: 7px 0 0 !important;
		text-align: center !important;
	}

	#calendar-page .tribe-events-calendar-month__day-cell--mobile .tribe-events-calendar-month__day-date,
	#calendar-page .tribe-events-calendar-month__day-cell--mobile .tribe-events-calendar-month__day-date-daynum {
		color: #111 !important;
		font-family: Arial, sans-serif !important;
		font-size: 13px !important;
		font-weight: 400 !important;
		line-height: 1 !important;
		
	}

	#calendar-page .tribe-events-calendar-month__day--other-month .tribe-events-calendar-month__day-date-daynum {
		color: rgba(0, 0, 0, 0.32) !important;
	}

	#calendar-page .tribe-events-calendar-month__mobile-events-icon {
		display: flex !important;
		width: auto !important;
		height: 8px !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 3px !important;
		margin: 5px auto 0 !important;
		background: transparent !important;
		border: 0 !important;
	}

	#calendar-page .nzdw-event-dot {
		display: block !important;
		width: 7px !important;
		height: 7px !important;
		flex: 0 0 7px !important;
		background: var(--nzdw-event-colour, #000) !important;
		border-radius: 50% !important;
	}

	/* Keep TEC's selected-day event output beneath the month grid. */
	#calendar-page .tribe-events-calendar-month-mobile-events {
		display: block !important;
		margin: 30px 0 0 !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-day[aria-hidden="true"] {
		display: none !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-day[aria-hidden="false"] {
		display: block !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-day-title {
		margin: 0 0 12px !important;
		color: var(--nzdw-black) !important;
		font-family: "Sohne Breit Halbfett", sans-serif !important;
		font-size: 22px !important;
		font-weight: 600 !important;
		line-height: 1 !important;
		text-transform: uppercase !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event {
		position: relative !important;
		margin: 0 !important;
		padding: 11px 34px 11px 0 !important;
		border-top: 1px solid #e3e3e3 !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event:last-child {
		border-bottom: 1px solid #e3e3e3 !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-datetime {
		margin-bottom: 4px !important;
		color: #777 !important;
		font-size: 9px !important;
		letter-spacing: 0.02em !important;
		text-transform: uppercase !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-title,
	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-title a {
		margin: 0 !important;
		color: var(--nzdw-black) !important;
		font-family: "Sohne Breit Halbfett", sans-serif !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		line-height: 1.05 !important;
		text-decoration: none !important;
		text-transform: uppercase !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event::after {
		content: "→";
		position: absolute;
		top: 50%;
		right: 2px;
		color: var(--nzdw-black);
		font-size: 18px;
		line-height: 1;
		transform: translateY(-50%);
	}

	#calendar-page .tribe-events-calendar-month-nav,
	#calendar-page .tribe-events-c-nav {
		display: none !important;
	}
}

/*
 * Stacked-header breakpoint — phone only (per the Mobile [375px] design).
 * Below this width there isn't room for filters + search on one row, so
 * the header collapses to three stacked rows: date nav, search, filters.
 * Above this width (including the 768px tablet design) the header keeps
 * the default side-by-side row from the base styles above.
 */
@media (max-width: 640px) {
	#wrap #calendar-page .tribe-events-header.tribe-events-header--has-event-search,
	#calendar-page .tribe-events-header {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-areas:
			"topbar"
			"search"
			"filters" !important;
		row-gap: 12px !important;
		width: 100% !important;
		margin: 0 0 22px !important;
	}

	#calendar-page .tribe-events-c-top-bar__datepicker-time {
		font-size: clamp(30px, 8.5vw, 38px) !important;
	}

	#calendar-page .tribe-events-header__events-bar {
		position: static !important;
		display: flex !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		min-height: 44px !important;
		padding: 0 !important;
		visibility: visible !important;
		opacity: 1 !important;
	}

	#calendar-page .tribe-events-c-events-bar__search-container,
	#calendar-page .tribe-events-c-search,
	#calendar-page .tribe-events-c-search__form,
	#calendar-page .tribe-events-c-search__input-control,
	#calendar-page .tribe-events-c-search__input-control--keyword {
		width: 100% !important;
		max-width: none !important;
		flex: 1 1 100% !important;
	}

	#calendar-page .tribe-events-c-search__input-control {
		position: relative !important;
		overflow: visible !important;
	}

	#calendar-page .tribe-events-c-search__input-control::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 20px;
		z-index: 1;
		width: 17px;
		height: 17px;
		border: 1.5px solid #111;
		border-radius: 50%;
		transform: translateY(-58%);
		pointer-events: none;
	}

	#calendar-page .tribe-events-c-search__input-control::after {
		content: "";
		position: absolute;
		top: calc(50% + 6px);
		left: 35px;
		z-index: 1;
		width: 8px;
		height: 1.5px;
		background: #111;
		transform: rotate(45deg);
		transform-origin: left center;
		pointer-events: none;
	}

	#calendar-page .tribe-events-c-search__input {
		height: 48px !important;
		padding-right: 20px !important;
		padding-left: 56px !important;
		font-size: 14px !important;
	}
}

@media (max-width: 480px) {
	#calendar-page .calendar__hero {
		padding-right: 16px;
		padding-left: 16px;
	}

	#calendar-page .calendar__main {
		padding-right: 16px;
		padding-left: 16px;
	}

	#calendar-page .calendar__heading {
		font-size: clamp(40px, 13vw, 58px);
	}

	#calendar-page .tribe-events-header {
		row-gap: 18px !important;
		margin-bottom: 34px !important;
	}

	#calendar-page .tribe-filter-bar__form,
	#calendar-page .tribe-filter-bar__filters {
		gap: 7px !important;
	}

	#calendar-page .tribe-filter-bar-c-filter__toggle {
		min-height: 38px !important;
		padding-right: 25px !important;
		padding-left: 11px !important;
		font-size: 11px !important;
	}

	#calendar-page .tribe-filter-bar-c-pill__pill {
		min-height: 38px !important;
		padding-right: 25px !important;
		padding-left: 11px !important;
		font-size: 11px !important;
	}

	#calendar-page .tribe-filter-bar-c-filter__toggle::after {
		right: 9px;
	}

	#calendar-page .tribe-filter-bar-c-pill__pill::after {
		right: 9px !important;
	}

	#calendar-page .tribe-events-calendar-month__week,
	#calendar-page .tribe-events-calendar-month__day,
	#calendar-page .tribe-events-calendar-month__day-cell--mobile {
		height: 52px !important;
		min-height: 52px !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events {
		margin-top: 40px !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-day-title {
		margin-bottom: 18px !important;
		font-size: 28px !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event {
		padding-top: 16px !important;
		padding-bottom: 16px !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-datetime {
		margin-bottom: 7px !important;
		font-size: 11px !important;
	}

	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-title,
	#calendar-page .tribe-events-calendar-month-mobile-events__mobile-event-title a {
		font-size: 17px !important;
	}
}

/* DESKTOP EVENT PREVIEW
----------------------------------------------------------- */

.nzdw-event-preview {
	position: fixed;
	z-index: 1200;
	width: 310px;
	max-width: calc(100vw - 32px);
	overflow: hidden;
	background: var(--nzdw-white, #fff);
	border-radius: 0 0 12px 12px;
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.2);
	color: var(--nzdw-black, #000);
	opacity: 0;
	transform: translateY(8px);
	transition:
		opacity 160ms ease,
		transform 160ms ease;
	pointer-events: auto;
}

.nzdw-event-preview::before {
	content: "";
	display: block;
	width: 100%;
	height: 6px;
	background: var(--nzdw-event-colour, #000);
}

.nzdw-event-preview.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.nzdw-event-preview__media {
	position: relative;
	width: 100%;
	height: 155px;
	overflow: hidden;
	background: #ededed;
}

.nzdw-event-preview__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nzdw-event-preview__body {
	padding: 16px 18px 18px;
}

.nzdw-event-preview__time {
	margin: 0 0 9px;
	color: #747474;
	font-family: Arial, sans-serif;
	font-size: 9px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.nzdw-event-preview__time::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 7px 1px 0;
	background: var(--nzdw-event-colour, #000);
	border-radius: 50%;
}

.nzdw-event-preview__title {
	margin: 0 0 10px !important;
	color: var(--nzdw-black, #000) !important;
	font-family: "Sohne Breit Halbfett", sans-serif !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	letter-spacing: -0.01em !important;
	text-transform: uppercase !important;
}

.nzdw-event-preview__description {
	margin: 0 0 15px !important;
	color: #333 !important;
	font-family: Arial, sans-serif !important;
	font-size: 11px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
}

.nzdw-event-preview__button {
	display: flex;
	width: 100%;
	min-height: 32px;
	align-items: center;
	justify-content: center;
	padding: 0 16px;
	background: var(--nzdw-black, #000);
	border: 1px solid var(--nzdw-black, #000);
	border-radius: 999px;
	color: var(--nzdw-white, #fff) !important;
	font-family: Arial, sans-serif;
	font-size: 9px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-decoration: none !important;
	text-transform: uppercase;
}

.nzdw-event-preview__button:hover,
.nzdw-event-preview__button:focus-visible {
	background: var(--nzdw-white, #fff);
	color: var(--nzdw-black, #000) !important;
}

.nzdw-event-preview.is-loading .nzdw-event-preview__body {
	min-height: 116px;
}

@media (max-width: 768px), (hover: none) {
	.nzdw-event-preview {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nzdw-event-preview {
		transition: none;
	}
}

.tribe-events .tribe-common-c-btn-icon--caret-left.tribe-events-c-top-bar__nav-link--prev .tribe-common-c-btn-icon__icon-svg path, .tribe-events .tribe-common-c-btn-icon--caret-right.tribe-events-c-top-bar__nav-link--next .tribe-common-c-btn-icon__icon-svg path {
    fill: white !important;
}

.tribe-events .tribe-common-c-btn-icon--caret-left.tribe-events-c-top-bar__nav-link--prev .tribe-common-c-btn-icon__icon-svg path, .tribe-events .tribe-common-c-btn-icon--caret-right.tribe-events-c-top-bar__nav-link--next .tribe-common-c-btn-icon__icon-svg path {
    fill: white !important;
}

/* Hide duplicate filter dropdown arrow */
#whatson-page {
    .tribe-filter-bar-c-pill__pill-button {
        i.fa-chevron-down {
            display: none !important;
        }
    }
}