/* Utility classes — replace repeated element-level inline styles. */

/* Visibility toggle (replaces JS-set inline display:none) */
.is-hidden { display: none !important; }

/* Revealed state for FOUC-guarded elements (replaces JS-set inline opacity) */
.is-revealed { opacity: 1 !important; }

/* Text alignment */
.u-text-center { text-align: center; }
.u-text-right { text-align: right; }
.u-italic { font-style: italic; }

/* Margin top */
.u-mt-10 { margin-top: 10px; }
.u-mt-20 { margin-top: 20px; }
.u-mt-30 { margin-top: 30px; }

/* Margin bottom */
.u-mb-15 { margin-bottom: 15px; }
.u-mb-20 { margin-bottom: 20px; }
.u-mb-30 { margin-bottom: 30px; }
.u-mb-40 { margin-bottom: 40px; }

/* Combined helpers seen across pages */
.u-section-heading { margin-bottom: 30px; text-align: center; }
.u-note { text-align: center; margin-top: 10px; font-style: italic; font-size: 0.9em; }

/* Inline icon before tag/label text */
.u-tag-icon { margin-right: 10px; opacity: 0.8; }

/* Full-width fixed-height cover image (photo gallery thumbnails) */
.u-cover-img { width: 100%; height: 250px; object-fit: cover; }

/* Misc single-purpose helpers */
.u-mt-0 { margin-top: 0; }
.u-dim { opacity: 0.7; }
.u-no-underline { text-decoration: none; }
.u-pad-lg { padding: 50px 0; }
.u-pad-box { padding: 20px; }
.u-card-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
