/* Canvas pages carry their own h1 inside the component tree, so the page title
   block above them is a second, duplicate heading. Nodes (events) still need
   theirs, so this is scoped to Canvas pages only. */
body.canvas-page .jarvis-page-title { display: none; }

/* A views page gets no container from Jarvis — page.html.twig goes edge to edge
   when a page has no sidebars, so Canvas columns can bleed. These blocks sit
   inside Canvas columns and inherit one; the cards below are what stops a list
   of events reading as loose text. */
.givv-event { border: 1px solid rgba(0, 0, 0, .12); border-radius: .5rem; padding: 1.25rem 1.5rem; margin-bottom: 1rem; background: #fff; }
.givv-event h2 { font-size: 1.25rem; margin: 0 0 .25rem; }
.givv-event time { font-weight: 600; color: #3f669f; }
.givv-event p:last-child { margin-bottom: 0; }

/* The contact form owns its own route, which has no sidebars either. */
.webform-submission-form { max-width: 1100px; margin: 2rem auto 4rem; padding: 0 1rem; }
.givv-contact-list { list-style: none; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-bottom: 2.5rem; }
.givv-contact-list li { line-height: 1.5; }

/* Footer: the quick links are a menu block, which core renders as a plain
   bulleted list. */
.jarvis-footer nav ul { list-style: none; padding: 0; margin: 0; }
.jarvis-footer nav ul li { margin-bottom: .25rem; }
.givv-colophon { font-size: .875rem; opacity: .85; }

/* Long email addresses and link text overflowed the footer's narrow columns
   and ran under the next one. */
.jarvis-footer a,
.givv-contact-list a { overflow-wrap: anywhere; }
/* A grid column will not shrink below its longest unbreakable word unless it
   is told it may; without this the email address pushed into the next column
   instead of wrapping. */
.jarvis-footer [class*="col-"], .givv-contact-list li { min-width: 0; }

/* Cards and person cards in one row should finish level with each other,
   whatever the length of a name or a blurb. */
.jarvis-columns .row > [class^="col"] > .jarvis-person,
.jarvis-columns .row > [class^="col"] > .jarvis-card { height: 100%; }

/* The header logo at half the size the theme gives it (it renders at 275px
   wide unstyled, which crowded the navigation). */
.jarvis-branding-wrap a[rel="home"] img { width: 138px; height: auto; }

/* Blockquotes are set in Allura, a script face that is unreadable at body
   size. */
.jarvis-wysiwyg blockquote p { font-size: 1.75rem; line-height: 1.4; }
.jarvis-wysiwyg blockquote footer { font-size: 1rem; }

/* Portraits are 300x392, so a four-up row of cards shows them at their native
   width. Cropping to a consistent ratio stops one odd photograph making a row
   look ragged. */
.jarvis-person img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }