/* Shared public page containers. */
.aeb-events-page,
.aeb-event-detail,
.aeb-account-tickets {
	width: min(1120px, calc(100% - 32px));
	margin: 0 auto;
	padding: 40px 0;
}

.aeb-events-hero h1,
.aeb-event-detail h1 {
	margin: 0 0 24px;
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	line-height: 1.1;
}

.aeb-events-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 28px;
}

.aeb-events-layout {
	display: grid;
	grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 54px);
	align-items: start;
}

.aeb-events-sidebar {
	position: sticky;
	top: 32px;
}

.aeb-events-sidebar h1,
.aeb-events-sidebar h2,
.aeb-events-sidebar h3 {
	margin: 0 0 18px;
	line-height: 1.2;
	white-space: nowrap;
}

.aeb-event-filter-widget {
	margin: 0;
}

.aeb-event-filter-block .widget-title {
	margin: 0 0 18px;
}

.aeb-event-filter-close,
.aeb-events-filter-backdrop {
	display: none;
}

.aeb-events-sidebar .aeb-filter-widget-wrapper {
	display: grid;
	gap: 18px;
}

.aeb-events-sidebar .aeb-filter-search {
	display: grid;
	grid-template-columns: 1fr 24px;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.18);
}

.aeb-events-sidebar .aeb-filter-search input {
	min-height: 40px;
	border: 0;
	background: transparent;
	padding: 8px 0;
	font: inherit;
	outline: 0;
}

.aeb-events-sidebar .aeb-filter-search input::-webkit-search-cancel-button {
	display: none;
}

.aeb-events-sidebar .aeb-filter-search-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #4d4d4d;
	cursor: pointer;
}

.aeb-events-sidebar .ct-filter-search-zoom-icon,
.aeb-events-sidebar .ct-filter-search-reset-icon {
	display: block;
	flex: 0 0 auto;
}

.aeb-events-sidebar .ct-filter-search-reset-icon,
.aeb-events-sidebar .aeb-filter-search.has-category-search .ct-filter-search-zoom-icon {
	display: none;
}

.aeb-events-sidebar .aeb-filter-search.has-category-search .ct-filter-search-reset-icon {
	display: block;
}

.aeb-event-category-filter {
	display: grid;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.aeb-event-category-filter .aeb-filter-item.is-hidden-by-search,
.aeb-event-category-filter .aeb-filter-item[hidden] {
	display: none !important;
	visibility: hidden;
}

.aeb-event-category-filter .aeb-filter-item-inner a {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	color: #555;
	text-decoration: none;
}

.aeb-event-category-filter .aeb-filter-checkbox {
	margin: 0;
	accent-color: #b08d6a;
	pointer-events: none;
}

.aeb-event-category-filter .aeb-filter-count {
	min-width: 24px;
	padding: 1px 7px;
	border: 1px solid rgba(0, 0, 0, 0.14);
	border-radius: 999px;
	color: #777;
	font-size: 0.72rem;
	line-height: 1.5;
	text-align: center;
}

.aeb-events-toolbar.woo-listing-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}

.aeb-events-filter-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: inherit;
	text-decoration: none;
}

.aeb-events-filter-link .ct-icon-container {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.aeb-events-filter-link .ct-button-loader {
	display: none;
}

@media (min-width: 1000px) {
	.aeb-events-filter-link {
		display: none;
	}
}

.aeb-events-count.woocommerce-result-count {
	margin: 0;
	color: #777;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.aeb-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	align-items: center;
	margin: -6px 0 22px;
	color: #777;
	font-size: 0.86rem;
}

.aeb-active-filters a {
	color: #72583d;
	text-decoration: none;
}

.aeb-events-ordering.woocommerce-ordering {
	position: relative;
	display: block;
	min-width: 220px;
	margin: 0;
	color: #777;
	font-size: 0.78rem;
}

.aeb-events-sort-label {
	display: none;
}

.aeb-events-ordering select.orderby {
	width: 100%;
	min-height: 32px;
	border: 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.18);
	background: transparent;
	color: #555;
	font: inherit;
	outline: 0;
	appearance: none;
	padding-right: 24px;
}

.aeb-events-ordering::after {
	position: absolute;
	top: 50%;
	right: 2px;
	width: 6px;
	height: 6px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	color: #6f7f8f;
	content: "";
	pointer-events: none;
	transform: translateY(-65%) rotate(45deg);
}

.aeb-events-sort-icon {
	position: absolute;
	top: 50%;
	right: 2px;
	color: #b08d6a;
	pointer-events: none;
	transform: translateY(-50%);
}

@media (max-width: 999px) {
	body.aeb-event-filter-open {
		overflow: hidden;
	}

	.aeb-events-sidebar.ct-hidden-sm.ct-hidden-md {
		position: fixed;
		inset: 0 auto 0 0;
		z-index: 100001;
		display: block !important;
		width: min(86vw, 360px);
		max-width: 360px;
		height: 100vh;
		overflow-y: auto;
		background: var(--theme-palette-color-8, #fff);
		box-shadow: 0 20px 70px rgba(0, 0, 0, 0.22);
		transform: translateX(-105%);
		visibility: hidden;
		pointer-events: none;
		transition: transform 220ms ease, visibility 220ms ease;
	}

	.aeb-events-sidebar .ct-sidebar {
		min-height: 100%;
		padding: 24px;
		background: inherit;
	}

	.aeb-events-sidebar .ct-block-wrapper {
		position: relative;
	}

	.aeb-events-archive-form.is-filter-open .aeb-events-sidebar {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
	}

	.aeb-event-filter-close {
		position: absolute;
		top: -8px;
		right: -8px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		padding: 0;
		border: 0;
		background: transparent;
		color: inherit;
		font-size: 26px;
		line-height: 1;
		cursor: pointer;
	}

	.aeb-events-filter-backdrop {
		position: fixed;
		inset: 0;
		z-index: 100000;
		display: block;
		padding: 0;
		border: 0;
		background: rgba(0, 0, 0, 0.38);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 220ms ease, visibility 220ms ease;
	}

	.aeb-events-archive-form.is-filter-open .aeb-events-filter-backdrop {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.aeb-events-toolbar.woo-listing-top {
		display: grid !important;
		grid-template-columns: max-content minmax(0, 1fr) 34px;
		align-items: center;
		gap: 16px;
		width: 100%;
		margin-bottom: 22px;
	}

	.aeb-events-toolbar.woo-listing-top .ct-toggle-filter-panel.aeb-events-filter-link {
		justify-self: start;
		display: inline-flex !important;
		min-height: 30px;
		margin: 0 !important;
		padding: 6px 13px;
		border-width: 1px !important;
		border-style: solid !important;
		border-color: rgba(0, 0, 0, 0.45) !important;
		border-radius: 2px;
		background: transparent;
		box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.45);
		box-sizing: border-box;
		color: inherit;
		font-size: 12px;
		font-weight: 700;
		line-height: 1;
		text-transform: uppercase;
	}

	.aeb-events-filter-link .ct-icon-container svg:first-child {
		width: 12px;
		height: 12px;
	}

	.aeb-events-count.woocommerce-result-count {
		display: none;
	}

	.aeb-events-ordering.woocommerce-ordering {
		grid-column: 3;
		justify-self: end;
		position: relative;
		display: flex;
		align-items: flex-start;
		justify-content: center;
		width: 34px;
		min-width: 34px;
		height: 30px;
		margin: 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.28);
		font-size: 0;
	}

	.aeb-events-ordering.woocommerce-ordering::after {
		display: none;
	}

	.aeb-events-ordering select.orderby {
		position: absolute;
		inset: 0;
		z-index: 2;
		width: 100%;
		min-height: 0;
		height: 100%;
		padding: 0;
		border: 0;
		opacity: 0;
		font-size: 16px;
		cursor: pointer;
	}

	.aeb-events-ordering select.orderby option {
		color: initial;
	}

	.aeb-events-sort-icon {
		right: auto;
		left: 50%;
		display: block !important;
		color: currentColor;
		transform: translate(-50%, -50%);
	}

	.aeb-active-filters {
		margin: 0 0 22px;
	}
}

.aeb-events-results {
	position: relative;
	transition: opacity 160ms ease;
}

.aeb-events-results.is-loading {
	pointer-events: none;
}

.aeb-events-results.is-loading .aeb-events-toolbar,
.aeb-events-results.is-loading .aeb-events-grid {
	opacity: 0.4;
}

.aeb-events-loading {
	position: absolute;
	inset: 0;
	z-index: 5;
	display: none;
	align-items: center;
	justify-content: center;
	min-height: 140px;
	background: rgba(255, 255, 255, 0.58);
}

.aeb-events-results.is-loading .aeb-events-loading {
	display: flex;
}

.aeb-loading-spinner {
	width: 34px;
	height: 34px;
	border: 2px solid rgba(176, 141, 106, 0.28);
	border-top-color: #b08d6a;
	border-radius: 50%;
	animation: aeb-spin 0.75s linear infinite;
}

@keyframes aeb-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Event list cards on /events. */
.aeb-event-card {
	display: flex;
	overflow: hidden;
	border-radius: 8px;
	background: #f7f7f7;
	text-decoration: none;
	color: inherit;
}

.aeb-event-card-image {
	display: block;
	width: 38%;
	min-height: 220px;
	object-fit: cover;
	background: #e9e9e9;
}

.aeb-event-card-body {
	padding: 32px;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.aeb-event-card h2 {
	margin: 0 0 16px;
	font-size: 1.65rem;
	font-weight: 700;
	line-height: 1.2;
}
.aeb-event-card h2 a {
	color: inherit;
	text-decoration: none;
}

.aeb-event-card-intro {
	color: #555;
	line-height: 1.55;
	margin: 0 0 20px;
	font-size: 0.98rem;
}

.aeb-event-card-meta {
	color: #6b6b6b;
	font-size: 0.95rem;
	margin-bottom: 24px;
}
.aeb-meta-sep {
	display: inline-block;
	margin: 0 8px;
	color: #c9b191;
}

.aeb-kicker {
	color: #b08d6a;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.aeb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
}
.aeb-button-brown {
	background-color: #b08d6a;
	color: #fff;
	border: none;
	padding: 10px 24px;
	font-size: 0.9rem;
	font-weight: 600;
	align-self: flex-start;
	text-decoration: none;
}
.aeb-button-brown:hover {
	background-color: #927252;
}

.aeb-event-detail-hero {
	margin-bottom: 36px;
}

.aeb-event-detail-hero.has-image {
	display: grid;
	grid-template-columns: minmax(260px, 410px) minmax(0, 1fr);
	gap: clamp(32px, 6vw, 90px);
	align-items: start;
}

.aeb-event-detail-hero-content {
	max-width: 680px;
}

.aeb-event-detail-hero h1 {
	margin-bottom: 12px;
}

.aeb-event-intro,
.aeb-event-description {
	color: #333;
	font-size: 0.98rem;
	line-height: 1.7;
}

.aeb-event-intro {
	margin: 0 0 18px;
	font-weight: 700;
}

.aeb-event-description {
	margin: 0;
}

.aeb-event-intro > :first-child,
.aeb-event-description > :first-child {
	margin-top: 0;
}

.aeb-event-intro > :last-child,
.aeb-event-description > :last-child {
	margin-bottom: 0;
}

.aeb-event-detail-hero-media {
	overflow: hidden;
	border-radius: 8px;
	background: #eee;
}

.aeb-event-detail-image {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.aeb-event-meta {
	margin: 0 0 24px;
	font-size: 0.98rem;
	color: #1f1f1f;
}

.aeb-event-copy {
	max-width: 760px;
	margin-bottom: 28px;
	font-size: 1.05rem;
	line-height: 1.65;
}

/* Public booking calendar and attendee form. */
.aeb-booking-widget {
	display: grid;
	grid-template-columns: minmax(280px, 1fr) minmax(280px, 420px);
	gap: 28px;
	align-items: start;
	margin-top: 28px;
}

.aeb-calendar-shell,
.aeb-booking-form,
.aeb-ticket {
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	background: #fff;
}

.aeb-calendar-shell,
.aeb-booking-form {
	padding: 20px;
}

.aeb-calendar-header {
	display: grid;
	grid-template-columns: 40px 1fr 40px;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.aeb-calendar-title {
	margin: 0;
	text-align: center;
	font-size: 1.15rem;
}

.aeb-calendar-prev,
.aeb-calendar-next,
.aeb-day,
.aeb-time-option {
	min-height: 40px;
	border: 1px solid rgba(0, 0, 0, 0.14);
	border-radius: 6px;
	background: #fff;
	color: #1f1f1f;
	cursor: pointer;
}

.aeb-calendar-prev:hover,
.aeb-calendar-next:hover,
.aeb-day.is-available:hover,
.aeb-time-option:hover {
	border-color: #72583d;
}

.aeb-calendar-weekdays,
.aeb-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 8px;
}

.aeb-calendar-weekdays {
	margin-bottom: 8px;
	color: #6b6b6b;
	font-size: 0.85rem;
	text-align: center;
}

.aeb-day {
	aspect-ratio: 1;
	min-height: auto;
	font-weight: 700;
}

.aeb-day:disabled {
	cursor: default;
	opacity: 0.32;
}

.aeb-day-spacer {
	border: 0;
}

.aeb-day.is-available {
	background: #f8f1e8;
}

.aeb-day.is-selected {
	border-color: #1f1f1f;
	background: #1f1f1f;
	color: #fff;
}

.aeb-occurrence-options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.aeb-time-option {
	padding: 0 12px;
}

.aeb-booking-form .aeb-occurrence-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
}

.aeb-booking-form .aeb-time-option {
	min-height: 34px;
	border-color: #d7c5af;
	border-radius: 3px;
	background: #fffaf4;
	color: #6c5a47;
	font-size: 0.82rem;
	font-weight: 500;
}

.aeb-booking-form .aeb-time-option:hover {
	border-color: #b99a74;
	color: #4d3824;
}

.aeb-booking-form .aeb-time-option.is-selected {
	border-color: #b99a74;
	background: #b99a74;
	color: #fff;
}

.aeb-booking-form {
	display: grid;
	gap: 14px;
}

.aeb-booking-form h2 {
	margin: 0;
	font-size: 1.25rem;
}

.aeb-booking-form label,
.aeb-ticket-form label {
	display: grid;
	gap: 6px;
	font-weight: 700;
}

.aeb-booking-form input,
.aeb-ticket-form select {
	width: 100%;
	min-height: 42px;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: 6px;
	padding: 8px 10px;
	font: inherit;
}

.aeb-ticket-type-options {
	display: grid;
	gap: 10px;
}

.aeb-ticket-type-row {
	display: grid;
	grid-template-columns: 1fr 86px;
	align-items: center;
	gap: 12px;
	padding: 10px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
}

.aeb-ticket-type-row span {
	font-weight: 700;
}

.aeb-ticket-type-row input {
	text-align: center;
}

.aeb-selected-label {
	margin: 0;
	color: #4f4f4f;
}

.aeb-booking-message {
	margin: 0;
	color: #72583d;
	font-weight: 600;
}

.aeb-booking-message:empty {
	display: none;
}

.aeb-booking-form .aeb-booking-submit:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.aeb-cart-fixed-quantity {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 38px;
	padding: 0 12px;
	border: 1px solid rgba(0, 0, 0, 0.18);
	border-radius: 999px;
	font-weight: 700;
}

.aeb-event-cart-item .aeb-locked-quantity button,
.aeb-event-cart-item .aeb-locked-quantity a,
.aeb-event-cart-item .aeb-locked-quantity [role="button"],
.aeb-event-cart-item .aeb-locked-quantity .plus,
.aeb-event-cart-item .aeb-locked-quantity .minus,
.aeb-event-cart-item .aeb-locked-quantity .ct-increase,
.aeb-event-cart-item .aeb-locked-quantity .ct-decrease,
.aeb-event-cart-item .aeb-locked-quantity [class*="increase"],
.aeb-event-cart-item .aeb-locked-quantity [class*="decrease"],
.aeb-event-cart-item .quantity button,
.aeb-event-cart-item .ct-quantity button {
	display: none !important;
}

.aeb-event-cart-item .aeb-locked-quantity input,
.aeb-event-cart-item .quantity input,
.aeb-event-cart-item .ct-quantity input {
	pointer-events: none;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
	font-weight: 700;
	text-align: center;
}

.aeb-cart-fixed-mini-quantity {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 700;
}

/* My Account ticket cards and rotating QR output. */
.aeb-ticket {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
	gap: 18px;
	padding: 18px;
	margin: 0 0 18px;
}

.aeb-ticket h3 {
	margin: 4px 0 8px;
}

.aeb-ticket-status {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 999px;
	background: #f2eee8;
	font-size: 0.85rem;
	font-weight: 700;
}

.aeb-ticket-actions {
	display: grid;
	gap: 12px;
	align-content: start;
}

.aeb-ticket-form {
	display: grid;
	gap: 8px;
}

.aeb-qr-target {
	min-height: 0;
}

.aeb-qr-svg {
	display: block;
	width: min(220px, 100%);
	height: auto;
	border: 1px solid rgba(0, 0, 0, 0.12);
}

.aeb-qr-target p,
.aeb-qr-loading {
	display: block;
	margin: 8px 0 0;
	color: #555;
	font-size: 0.9rem;
}

/* Single-column layout for narrow screens. */
@media (max-width: 760px) {
	.aeb-events-layout,
	.aeb-booking-widget,
	.aeb-ticket,
	.aeb-event-detail-hero.has-image {
		grid-template-columns: 1fr;
	}

	.aeb-events-sidebar:not(.ct-hidden-sm):not(.ct-hidden-md) {
		position: static;
	}

	.aeb-events-sidebar h1,
	.aeb-events-sidebar h2,
	.aeb-events-sidebar h3 {
		white-space: normal;
	}

	.aeb-event-card {
		flex-direction: column;
	}
	.aeb-event-card-image {
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.aeb-events-page,
	.aeb-event-detail,
	.aeb-account-tickets {
		width: min(100% - 20px, 1120px);
		padding: 24px 0;
	}
}
