/* QB-Events: The Events Calendar in the site's look (loaded on calendar pages only).
   Selectors start with "body" so they win over the calendar's own reset rules
   (".tribe-common a", ".tribe-common p"), which load later. */

body .tribe-common,
body .tribe-events,
body .tribe-events-pg-template,
body .tribe-events-single {
	--tec-color-accent-primary: #007565;
	--tec-color-accent-primary-hover: #005a4e;
	--tec-color-accent-primary-active: #004a40;
	--tec-color-button-primary: #007565;
	--tec-color-button-primary-hover: #005a4e;
	--tec-color-button-primary-active: #004a40;
	--tec-color-link-accent: #007565;
	--tec-color-link-accent-hover: #005a4e;
	--tec-color-text-primary: #222;
	--tec-color-text-secondary: #404040;
	--tec-font-family-sans-serif: var(--wp--preset--font-family--mulish, Mulish, sans-serif);
	--tec-font-family-base: var(--wp--preset--font-family--mulish, Mulish, sans-serif);
}

body .tribe-common .tribe-events-c-search__button,
body .tribe-common button.tribe-common-c-btn {
	background-color: #007565;
}
body .tribe-common .tribe-events-c-search__button:hover,
body .tribe-common .tribe-events-c-search__button:focus,
body .tribe-common button.tribe-common-c-btn:hover {
	background-color: #005a4e;
}

body .tribe-events .tribe-events-calendar-list__event-title,
body .tribe-events .tribe-events-calendar-list__month-separator-text,
body .tribe-events-single .tribe-events-single-event-title,
body .qbfb-ev-hero .qbfb-ev-hero__title,
body .qbfb-ev-next .qbfb-ev-next__title,
body .qbfb-ev-cta .qbfb-ev-cta__title {
	font-family: var(--wp--preset--font-family--poppins, Poppins, sans-serif);
}

/* ---- Header on /events/ ---- */
body .qbfb-ev-hero {
	text-align: center;
	padding: 8px 0 24px;
}
body .qbfb-ev-hero .qbfb-ev-hero__title {
	color: #007565;
	font-size: clamp(1.9rem, 4.5vw, 2.8rem);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 12px;
}
body .qbfb-ev-hero .qbfb-ev-hero__intro {
	font-size: 1.1rem;
	line-height: 1.55;
	max-width: 640px;
	margin: 0 auto 20px;
	color: #404040;
	text-align: center;
}

/* ---- Buttons (header, under events) ---- */
body .qbfb-ev-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}
body .qbfb-ev-buttons a.qbfb-ev-btn {
	display: inline-block;
	padding: 11px 20px;
	border: 2px solid #007565;
	border-radius: 6px;
	font-family: var(--wp--preset--font-family--mulish, Mulish, sans-serif);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}
body .qbfb-ev-buttons a.qbfb-ev-btn--primary {
	background-color: #007565;
	color: #fff;
}
body .qbfb-ev-buttons a.qbfb-ev-btn--primary:hover,
body .qbfb-ev-buttons a.qbfb-ev-btn--primary:focus {
	background-color: #005a4e;
	border-color: #005a4e;
	color: #fff;
}
body .qbfb-ev-buttons a.qbfb-ev-btn--secondary {
	background-color: #fff;
	color: #007565;
}
body .qbfb-ev-buttons a.qbfb-ev-btn--secondary:hover,
body .qbfb-ev-buttons a.qbfb-ev-btn--secondary:focus {
	background-color: #e8f3f1;
	color: #005a4e;
}

/* ---- "This week" card ---- */
body .qbfb-ev-next {
	margin: 0 0 28px;
}
body .qbfb-ev-next a.qbfb-ev-next__link {
	display: flex;
	gap: 18px;
	align-items: center;
	background-color: #e8e8e8;
	border-radius: 10px;
	padding: 14px;
	color: #222;
	text-decoration: none;
}
body .qbfb-ev-next a.qbfb-ev-next__link:hover,
body .qbfb-ev-next a.qbfb-ev-next__link:focus {
	background-color: #dcecea;
}
body .qbfb-ev-next .qbfb-ev-next__media {
	flex: 0 0 auto;
}
body .qbfb-ev-next .qbfb-ev-next__img {
	display: block;
	width: 140px;
	height: 140px;
	object-fit: cover;
	border-radius: 8px;
}
body .qbfb-ev-next .qbfb-ev-next__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	text-align: left;
}
body .qbfb-ev-next .qbfb-ev-next__label {
	color: #007565;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body .qbfb-ev-next .qbfb-ev-next__title {
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.25;
}
body .qbfb-ev-next .qbfb-ev-next__more {
	color: #007565;
	font-weight: 700;
}

/* ---- List view: flyers at one standard size ---- */
body .tribe-events .tribe-events-calendar-list__event-featured-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}

/* ---- Single event: the flyer in a standard frame, whole flyer visible ---- */
body .tribe-events-single .tribe-events-event-image {
	margin: 16px 0 24px;
	padding: 12px;
	background-color: #f2f2f2;
	border-radius: 10px;
	text-align: center;
}
body .tribe-events-single .tribe-events-event-image img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 480px;
	margin: 0 auto;
	object-fit: contain;
	border-radius: 6px;
}
body .tribe-events-single .tribe-events-single-event-title {
	color: #007565;
}

/* ---- Under each event ---- */
body .qbfb-ev-cta {
	margin: 28px 0;
	padding: 20px;
	background-color: #e8f3f1;
	border-radius: 10px;
	text-align: center;
}
body .qbfb-ev-cta .qbfb-ev-cta__title {
	margin: 0 0 6px;
	color: #007565;
	font-size: 1.3rem;
	font-weight: 700;
}
body .qbfb-ev-cta .qbfb-ev-cta__text {
	margin: 0 0 14px;
}

/* The calendar's list grid is 2px wider than a phone screen; stop the sideways scroll. */
body .tribe-events .tribe-events-calendar-list {
	overflow-x: clip;
}
/* "8:00 pm$25" -> "8:00 pm · $25" on event pages. */
body .tribe-events-single .tribe-events-schedule .tribe-events-cost {
	margin-left: .5em;
}

@media (max-width: 600px) {
	body .qbfb-ev-next a.qbfb-ev-next__link {
		flex-direction: column;
		align-items: flex-start;
	}
	body .qbfb-ev-next .qbfb-ev-next__img {
		width: 100%;
		height: auto;
		aspect-ratio: 4 / 3;
	}
	body .tribe-events-single .tribe-events-event-image img {
		max-height: 380px;
	}
	body .qbfb-ev-buttons a.qbfb-ev-btn {
		flex: 1 1 100%;
		text-align: center;
	}
}
