/* "Upcoming sessions" above the FooEvents calendar (lib/upcoming-sessions.php). */
.zf-upcoming { margin: 0 0 32px; font-family: Arial, Helvetica, sans-serif; }
.zf-upcoming h2 { margin: 0 0 14px; font: 800 26px/1.2 Raleway, Arial, sans-serif; color: #014153; }
.zf-upcoming ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid #e0e1e4; }
.zf-upcoming li {
	display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 16px; align-items: center;
	margin: 0; padding: 14px 4px; border-bottom: 1px solid #e0e1e4;
}
.zf-upcoming__when { font: 800 16px/1.3 Raleway, Arial, sans-serif; color: #014153; }
.zf-upcoming__what strong { display: block; color: #1f2a30; font-size: 16px; }
.zf-upcoming__what span { display: block; margin-top: 2px; color: #4b5563; font-size: 14px; }
.zf-upcoming__book {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px;
	border-radius: 6px; background: #fdb913; color: #014153 !important; font: 800 16px/1 Raleway, Arial, sans-serif; text-decoration: none !important;
	white-space: nowrap;
}
.zf-upcoming__book:hover { filter: brightness(0.96); }
.zf-upcoming__book:focus-visible { outline: 2px solid #014153; outline-offset: 2px; }
.zf-upcoming__calendar-title { margin-top: 36px !important; font-size: 20px !important; scroll-margin-top: 110px; }
.zf-upcoming__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 14px; }
.zf-upcoming__head h2 { margin: 0 !important; }
.zf-upcoming__jump {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 2px solid #014153; border-radius: 6px;
	color: #014153 !important; font: 700 15px/1 Arial, Helvetica, sans-serif; text-decoration: none !important; background: #fff;
}
.zf-upcoming__jump:hover { background: #e0e9ec; }
.zf-upcoming__jump:focus-visible { outline: 2px solid #fdb913; outline-offset: 2px; }
.zf-upcoming__hint { margin: 0 0 16px; padding: 12px 16px; border-radius: 6px; background: #e0e9ec; color: #014153; font-size: 15px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

@media (max-width: 640px) {
	.zf-upcoming li { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
	.zf-upcoming__when { grid-column: 1 / -1; font-size: 15px; }
	.zf-upcoming__book { padding: 0 14px; font-size: 15px; }
}

/* Calendar page (7835) only -------------------------------------------------- */
/* Let the month list run the page's full length instead of a small inner scroll box. */
body.page-id-7835 .fc-scroller { height: auto !important; overflow: visible !important; }

/* The theme's auto title sits under the sticky header and the Contact us/share bar
   pushes the sessions down; the page has its own "Event Calendar" heading (issue #20). */
body.page-id-7835 .internal-header h1.page-title,
body.page-id-7835 .internal-header .internal-header-after { display: none; }

@media (max-width: 640px) {
	body.page-id-7835 .elementor-element-48b8c89 .elementor-heading-title { font-size: 34px !important; line-height: 1.1 !important; }
}
