/* Worship → Bulletins (stjohns/bulletin-archive, inc/bulletins.php). Loaded
   only where the block is. The year accordions borrow the minutes archive's
   .min-decade / .min-year styles in site.css. */
.bul-archive { max-width: 60rem; margin: 0 auto; }
.bul-empty { text-align: center; }
/* The page's own notices (calendar.css's .cal-notice loads only with the calendar). */
.bul-notice {
	max-width: 40rem; margin: 0 auto 2rem; padding: 0.75rem 1rem; text-align: center;
	font-size: 0.9375rem; background: hsl(var(--secondary) / 0.5);
	border: 1px solid hsl(var(--border)); border-radius: 0.375rem;
}
.bul-notice a { color: hsl(var(--primary)); }

.bul-grid {
	list-style: none; margin: 0 0 0.75rem; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.5rem), 1fr));
	gap: 1.5rem 1.25rem;
}
.bul-card__link {
	display: flex; flex-direction: column; gap: 0.3rem;
	text-decoration: none; color: hsl(var(--foreground));
}
/* 5.5 × 8.5 in, the bulletins' page; a differently sized one is letterboxed. */
.bul-card__cover {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 11 / 17; overflow: hidden;
	background: hsl(var(--muted)); border: 1px solid hsl(var(--border)); border-radius: 0.25rem;
	box-shadow: var(--shadow-sm);
	transition: box-shadow 0.15s, transform 0.15s;
}
.bul-card__img { display: block; width: 100%; height: 100%; object-fit: contain; }
.bul-card__icon { color: hsl(var(--primary) / 0.55); }
.bul-card__link:hover .bul-card__cover,
.bul-card__link:focus-visible .bul-card__cover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.bul-card__link:focus-visible { outline: 2px solid hsl(var(--ring)); outline-offset: 4px; border-radius: 0.25rem; }
.bul-card__date { margin-top: 0.35rem; font-size: 0.875rem; font-weight: 600; color: hsl(var(--primary)); }
.bul-card__label { font-size: 0.8125rem; line-height: 1.35; color: hsl(var(--muted-foreground)); }

/* One bulletin in the site's viewer (?view=…, assets/bulletin-viewer.js). */
.bul-viewer { max-width: 44rem; margin: 0 auto; }
.bul-viewer__back { margin: 0 0 1.25rem; font-size: 0.875rem; }
.bul-viewer__back a { color: hsl(var(--primary)); text-decoration: none; }
.bul-viewer__back a:hover { text-decoration: underline; }
.bul-viewer__title {
	font-family: "Cormorant Garamond", Garamond, Georgia, serif;
	font-size: 1.75rem; font-weight: 400; line-height: 1.2; margin: 0; color: hsl(var(--foreground));
}
.bul-viewer__label { display: block; font-size: 1.125rem; color: hsl(var(--muted-foreground)); }
.bul-viewer__actions { margin: 1rem 0 1.75rem; }
.bul-viewer__download {
	display: inline-block; padding: 0.55rem 1.4rem; text-decoration: none;
	background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
	font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
}
.bul-viewer__download:hover { background: hsl(var(--primary) / 0.9); }
.bul-viewer__pages { display: flex; flex-direction: column; gap: 1.25rem; }
.bul-page { background: #fff; border: 1px solid hsl(var(--border)); box-shadow: var(--shadow-md); }
.bul-page canvas { display: block; width: 100%; height: 100%; }
.bul-viewer__status { text-align: center; color: hsl(var(--muted-foreground)); padding: 3rem 0; }
.bul-viewer__status a { color: hsl(var(--primary)); }

@media (prefers-reduced-motion: reduce) {
	.bul-card__cover { transition: none; }
	.bul-card__link:hover .bul-card__cover,
	.bul-card__link:focus-visible .bul-card__cover { transform: none; }
}
