/* Event details. Paper #FBF9F4, ink #1C2430, magenta #9A2E62 (white text 7.14:1). */
.pvi-event-main {
	background: #fbf9f4;
	color: #1c2430;
	font-family: "Source Serif 4", "Source Serif Pro", Georgia, serif;
}
.pvi-event__skip {
	position: absolute;
	left: -999px;
	top: 0;
	background: #1c2430;
	color: #fff;
	padding: 12px 16px;
	min-height: 44px;
	z-index: 5;
}
.pvi-event__skip:focus {
	left: 8px;
	top: 8px;
}
.pvi-event {
	max-width: 40rem;
	margin: 0 auto;
	padding: 1.25rem 1rem 2.5rem;
}
.pvi-event__crumbs {
	margin: 0 0 0.75rem;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 1rem; /* 1.5.33: was 15px */
}
.pvi-event__crumbs a,
.pvi-event__maps,
.pvi-event__report a {
	color: #1f4e79;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.pvi-event__chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 0.75rem;
}
/* 1.5.25: stated age, next to the category chip. Not a link. */
.pvi-event__chips .pvi-upcoming__recur,
.pvi-event__chips .pvi-ages {
	display: inline-block;
	max-width: 100%;
	padding: 0.15em 0.55em;
	border-radius: 999px;
	background: #e9e1cf;
	color: #1c2430;
	font-family: "Source Sans 3", "Source Sans Pro", -apple-system, "Segoe UI", sans-serif;
	font-size: 0.875rem; /* 1.5.33: was 12px. Ink on sand is 12.00:1. */
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.01em;
	white-space: nowrap;
	box-sizing: border-box;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* 1.5.34: the weekday list wraps on the event page. Age pills stay one line. */
.pvi-event__chips .pvi-upcoming__recur {
	white-space: normal;
	overflow: visible;
	text-overflow: unset;
}
.pvi-event__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 0 12px;
	border-radius: 999px;
	background: #fff;
	color: #1c2430;
	text-decoration: none;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 1rem; /* 1.5.33: was 14px, same size as the calendar chips */
	font-weight: 700;
	border: 1px solid #e4ddd0;
}
.pvi-event__icon {
	display: block;
}
.pvi-event__title {
	margin: 0 0 0.75rem;
	font-size: 2rem;
	line-height: 1.15;
	font-weight: 600;
	color: #1c2430;
}
.pvi-event__gist {
	margin: 0 0 1rem;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 1.0625rem;
	line-height: 1.4;
	color: #1c2430;
}
.pvi-event__gist-label {
	font-weight: 700;
	color: #3d4654;
}
.pvi-event__photo {
	margin: 0 0 1.25rem;
}
/* 1.5.12: never cropped, never upscaled (inline max-width = natural width), capped so
   When/Where stays above the fold: 420px desktop, 280px phone. */
.pvi-event__photo img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: contain;
	object-position: center;
	border-radius: 8px;
	background: #f3f1ec;
}
.pvi-event__photo-caption {
	margin: 0.35rem 0 0;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 0.875rem;
	color: #3d4654;
}
.pvi-event__photo-caption a {
	color: #1f4e79;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.pvi-event__facts {
	margin: 0 0 1.25rem;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 1rem; /* 1.5.33: When, Where, Who, Cost */
}
.pvi-event__facts > div {
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 0.35rem 0.75rem;
	padding: 0.35rem 0;
	border-top: 1px solid #e4ddd0;
}
.pvi-event__facts dt {
	margin: 0;
	font-weight: 700;
	color: #3d4654;
}
.pvi-event__facts dd {
	margin: 0;
}
.pvi-event__maps {
	margin-left: 0.75rem;
}
.pvi-event__free {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 12px;
	border-radius: 6px;
	background: #e7f2ea;
	color: #1b5e32;
	font-weight: 700;
}
.pvi-event__what h2,
.pvi-event__more h2 {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
}
.pvi-event__what p {
	margin: 0 0 0.75rem;
	font-size: 1.0625rem;
	line-height: 1.45;
}
.pvi-event__actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex-grow: 0;
	gap: 8px;
	margin: 1.25rem 0 0;
	min-height: 0;
	height: auto;
}
.pvi-event__source {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 12px 16px;
	border-radius: 6px;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	box-sizing: border-box;
}
.pvi-event__source {
	background: #9a2e62;
	color: #fff;
}
.pvi-event__source-host {
	font-weight: 500;
}
.pvi-save {
	margin: 1rem 0 0.25rem;
	padding: 14px 14px 16px;
	border: 1px solid #e4ddd0;
	border-radius: 8px;
	background: #fff;
	color: #1c2430;
}
.pvi-save h2 {
	margin: 0 0 14px;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.2;
}
.pvi-save h3 {
	margin: 0 0 8px;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 0.875rem; /* 1.5.33: was 13px. #3d4654 on white is 9.53:1. */
	font-weight: 700;
	letter-spacing: 0.01em;
	color: #3d4654;
}
.pvi-save__row + .pvi-save__row {
	margin-top: 14px;
}
.pvi-save__tiles {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}
.pvi-save__tiles--share {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}
.pvi-save__tile,
.pvi-save__share {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-height: 48px;
	margin: 0;
	padding: 8px 4px;
	border: 1px solid #e4ddd0;
	border-radius: 8px;
	background: #fbf9f4;
	color: #1c2430;
	font-family: "Source Sans 3", "Source Sans Pro", sans-serif;
	font-size: 0.875rem; /* 1.5.33: was 13px. Stays 14px so four tiles still fit at 390px. */
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	cursor: pointer;
}
.pvi-save__share {
	flex-direction: row;
	gap: 8px;
	width: 100%;
	min-height: 48px;
	padding: 10px 16px;
	border: 0;
	background: #0f5e6e;
	color: #fff;
	font-size: 1rem;
}
.pvi-save__share[hidden],
.pvi-save__tiles[hidden] {
	display: none !important;
}
.pvi-save__icon {
	display: block;
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
}
.pvi-save__share .pvi-save__icon {
	width: 20px;
	height: 20px;
}
.pvi-event__chip--recur {
	border: 1px solid #0f5e6e;
	color: #0f5e6e;
	background: #fff;
}
.pvi-event a:focus-visible,
.pvi-event button:focus-visible,
.pvi-event__skip:focus {
	outline: 3px solid #0f6e56;
	outline-offset: 2px;
}
/* 1.5.12: When/Where sits above the photo at every width (phones since 1.5.4, desktop
   now too), so it stays on the first screen under a 420px desktop photo. */
.pvi-event {
	display: flex;
	flex-direction: column;
}
.pvi-event__facts--lead {
	order: 2;
}
.pvi-event__photo {
	order: 3;
}
.pvi-event__gist {
	order: 4;
}
.pvi-event__facts--rest,
.pvi-event__what,
.pvi-event__actions,
.pvi-save,
.pvi-event__report,
.pvi-event__ad,
.pvi-event__more {
	order: 5;
}
@media (max-width: 600px) {
	.pvi-event__photo img {
		max-height: 280px;
	}
}
.pvi-event__ad.is-empty,
.pvi-event__ad:empty {
	display: none;
}
.pvi-event__ad:not(.is-empty) {
	margin: 1.5rem 0;
}
.pvi-event__more {
	margin-top: 1.75rem;
}
@media (min-width: 600px) {
	.pvi-event__actions {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.pvi-event__source {
		width: auto;
	}
}

/* 1.5.13: category fallback picture (no featured image). Decorative, never the og/JSON-LD image. */
.pvi-event__photo--fallback{margin-left:0;margin-right:0}
.pvi-event__photo--fallback img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#EFF0E9;border-radius:6px}

/* 1.5.32: bundled illustration. Same centered cover crop as the 64px card thumb (a square). */
.pvi-event__photo--ph{margin-left:0;margin-right:0}
.pvi-event__photo .pvi-ph{
	display:block;
	width:min(100%,28rem);
	height:auto;
	aspect-ratio:1 / 1;
	max-height:none;
	object-fit:cover;
	object-position:center;
	background:#fdf6eb;
	border-radius:8px;
}

/* 1.5.13 r2: lists in the event description (e.g. "How to request:" bullets). */
.pvi-event__what .pvi-event__list{margin:0 0 1em;padding-left:1.4em;font-size:1rem;line-height:1.5}
.pvi-event__what ul.pvi-event__list{list-style:disc outside}
.pvi-event__what ol.pvi-event__list{list-style:decimal outside}
.pvi-event__what .pvi-event__list li{margin:0 0 .4em;padding-left:.15em;font-size:1rem}
.pvi-event__what .pvi-event__list li::marker{color:currentColor}
.pvi-event__what .pvi-event__list a{overflow-wrap:anywhere}
@media (max-width:599px){
  .pvi-event__what .pvi-event__list{padding-left:1.25em}
  .pvi-event__what .pvi-event__list li{margin-bottom:.55em}
}

/* 1.5.23: icon, then high / low, then the date. Omitted markup leaves the page as it was. */
.pvi-event__facts dd .pvi-event__forecast{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:4px;
  width:100%;
  margin:0 0 2px;
  font-family:"Source Sans 3","Source Sans Pro",-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  font-weight:600;
  line-height:1;
  letter-spacing:0;
  text-transform:none;
  white-space:nowrap;
  color:#1B2A55;
  cursor:default;
}
.pvi-event__forecast .pvi-wx__temps,
.pvi-event__forecast .pvi-wx__high{
  font-size:16px;
  font-weight:600;
  color:#1B2A55;
}
.pvi-event__forecast .pvi-wx__low{
  font-size:14px;
  font-weight:400;
  color:#4B5563; /* 1.5.33: was #5B6573, 5.62:1 on #FBF9F4. Same hue, 7.18:1. */
}
.pvi-event__forecast .pvi-wx__icon{
  display:block;
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.pvi-event__forecast .pvi-wx__btn{
  width:18px;
  height:18px;
  flex:0 0 18px;
}
.pvi-event__forecast .pvi-wx__btn .pvi-wx__icon{
  width:18px;
  height:18px;
  flex-basis:18px;
}
.pvi-event__forecast .pvi-wx__sr{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media (max-width:320px){
  .pvi-event__forecast .pvi-wx__low{display:none}
  .pvi-event__forecast .pvi-wx__temps{font-size:0;line-height:0}
  .pvi-event__forecast .pvi-wx__high{font-size:16px;line-height:1}
}

/* 1.5.33: report link is body text. Photo caption stays 14px meta (#3d4654 on paper, 9.06:1). */
.pvi-event__report{
	font-family:"Source Sans 3","Source Sans Pro",sans-serif;
	font-size:1rem;
	line-height:1.45;
}
