/* /home.css - @version 15.0.0 - Homepage: the church fading into navy, This Sunday, the latest service,
   the pastor, what's coming up, ministries, giving. Everything is scoped to main.hp-home so the
   shared site styles (site-theme.css, styles-modern.css) never reshape it. */

/* Self-hosted fonts (SIL Open Font License, see /fonts/OFL-*.txt). */
@font-face { font-family: 'Libre Caslon Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-display-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Libre Caslon Text'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Libre Caslon Text'; font-style: italic; font-weight: 400; font-display: swap; src: url('/fonts/libre-caslon-text-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/source-sans-3-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: italic; font-weight: 400; font-display: swap; src: url('/fonts/source-sans-3-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 700; font-display: swap; src: url('/fonts/source-sans-3-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/barlow-condensed-latin-600-normal.woff2') format('woff2'); }

.hp-home {
    /* The site's own palette (site-theme.css), with fallbacks so the page holds together on its own. */
    --hp-navy: var(--mu-navy, #203b4b);
    --hp-navy-deep: var(--mu-navy-deep, #142d3c);
    --hp-gold: var(--mu-gold, #e6cc92);
    --hp-gold-hi: #f2dda9;
    --hp-sage: var(--mu-sage, #42685a);
    --hp-sage-pale: var(--mu-sage-pale, #edf2eb);
    --hp-paper: var(--mu-paper, #f6f5ef);
    --hp-card: #fffefa;
    --hp-ink: #1c3140;
    --hp-muted: var(--mu-muted, #596b6b);
    --hp-line: var(--mu-line, #dce2da);
    --hp-on-dark: #f4f2ea;
    --hp-on-dark-muted: #c3d0cd;
    --hp-on-dark-line: #ffffff30;
    --hp-scrim: #142d3cdb;
    --hp-brick: #8b4634;
    --hp-mortar: #cdb9a5;
    --hp-sign-frame: #1b1e21;
    --hp-sign-board: #fbfaf6;
    --hp-sign-ink: #17191b;
    --hp-sign-groove: #d9d6cd;
    --hp-live: #c8432f;

    --hp-display: 'Libre Caslon Display', Georgia, 'Times New Roman', serif;
    --hp-serif: 'Libre Caslon Text', Georgia, 'Times New Roman', serif;
    --hp-body: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
    --hp-sign: 'Barlow Condensed', 'Roboto Condensed', 'Arial Narrow', sans-serif;
    --hp-radius: 6px;

    display: block;
    background: var(--hp-paper);
    color: var(--hp-ink);
    font-family: var(--hp-body);
    font-size: 1.125rem;
    line-height: 1.6;
}
.melfield-site[data-site-page='home'] #footer { margin-top: 0; }
.hp-home :is(h1, h2, h3, p, figure, blockquote, ul, dl, dd) { margin: 0; }
.hp-home :is(ul) { padding: 0; list-style: none; }
/* width/height attributes reserve space while photos load; CSS sets the shape. */
.hp-home img { max-width: 100%; height: auto; display: block; }
.hp-home .hp-wrap {
    max-width: 1180px;
    margin-inline: auto;
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
}
@media (min-width: 720px) {
    .hp-home .hp-wrap {
        padding-left: max(32px, env(safe-area-inset-left, 0px));
        padding-right: max(32px, env(safe-area-inset-right, 0px));
    }
}
.hp-home .hp-band { padding-block: clamp(3rem, 7vw, 5.5rem); scroll-margin-top: 1rem; }
.hp-home .hp-band--card { background: var(--hp-card); }
.hp-home .hp-band--sage { background: var(--hp-sage-pale); }
.hp-home .hp-band--navy { background: var(--hp-navy); color: var(--hp-on-dark); }

.hp-home .hp-wrap h2 {
    font-family: var(--hp-display);
    font-weight: 400;
    font-size: clamp(2rem, 4.2vw, 2.9rem);
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: inherit;
    text-wrap: balance;
}
.hp-home .hp-wrap h3 { font-family: var(--hp-serif); font-weight: 400; font-size: 1.375rem; line-height: 1.25; text-wrap: balance; }
.hp-home .hp-eyebrow {
    font: 700 0.8125rem/1.2 var(--hp-body);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--hp-sage);
}
.hp-home :is(.hp-hero, .hp-band--navy) .hp-eyebrow { color: var(--hp-gold); }
.hp-home .hp-muted { color: var(--hp-muted); }
.hp-home .hp-section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0.75rem 2rem; margin-bottom: 2rem; }
.hp-home .hp-section-head > div { display: grid; gap: 0.6rem; min-width: 0; }

/* Buttons and links */
.hp-home .hp-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
    min-height: 48px; padding: 0.7rem 1.3rem; box-sizing: border-box;
    border-radius: var(--hp-radius); border: 1.5px solid transparent;
    font: 700 1rem/1.2 var(--hp-body); text-decoration: none; cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
.hp-home .hp-btn--gold { background: var(--hp-gold); color: var(--hp-navy-deep); }
.hp-home .hp-btn--gold:hover { background: var(--hp-gold-hi); }
.hp-home .hp-btn--navy { background: var(--hp-navy); color: var(--hp-on-dark); }
.hp-home .hp-btn--navy:hover { background: var(--hp-navy-deep); }
.hp-home .hp-btn--ghost { background: transparent; color: var(--hp-on-dark); border-color: var(--hp-on-dark-line); }
.hp-home .hp-btn--ghost:hover { border-color: var(--hp-gold); }
.hp-home .hp-link {
    font-weight: 700; color: var(--hp-sage);
    text-decoration: underline; text-underline-offset: 0.22em; text-decoration-thickness: 1.5px;
}
.hp-home .hp-link:hover { color: var(--hp-navy); }
.hp-home :is(.hp-hero, .hp-band--navy, .hp-give-panel) .hp-link { color: var(--hp-gold); }
.hp-home :is(.hp-hero, .hp-band--navy, .hp-give-panel) .hp-link:hover { color: var(--hp-gold-hi); }

/* Hero: the church on Melfield Drive, fading into navy behind the welcome */
.hp-home .hp-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--hp-navy-deep); color: var(--hp-on-dark); }
.hp-home .hp-hero-photo { position: absolute; inset: 0; z-index: -2; }
.hp-home .hp-hero-photo img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 70% 40%; }
.hp-home .hp-hero::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        linear-gradient(90deg, #142d3c 0%, #142d3cf2 24%, #142d3cb3 44%, #142d3c40 66%, #142d3c1a 100%),
        linear-gradient(0deg, #142d3ccc 0%, #142d3c00 34%);
}
.hp-home .hp-hero .hp-wrap {
    display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr);
    padding-block: clamp(4rem, 9vw, 7.5rem) clamp(2.5rem, 5vw, 4rem);
}
@media (min-width: 900px) { .hp-home .hp-hero .hp-wrap { grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); align-items: end; } }
.hp-home .hp-hero-copy { min-width: 0; max-width: 40rem; }
.hp-home .hp-hero h1 {
    font-family: var(--hp-display); font-weight: 400; color: var(--hp-on-dark);
    font-size: clamp(2.9rem, 7.4vw, 5.6rem); line-height: 0.98; letter-spacing: -0.02em;
    margin: 0.9rem 0 1.3rem; text-wrap: balance; text-shadow: 0 2px 24px #142d3c80;
}
.hp-home .hp-hero h1 em { font-family: var(--hp-serif); font-style: italic; color: var(--hp-gold); letter-spacing: -0.03em; }
.hp-home .hp-hero-lede .content-display p { font-size: 1.1875rem; line-height: 1.6; color: var(--hp-on-dark); max-width: 36ch; }
.hp-home .hp-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.9rem; }
.hp-home .hp-hero-times { display: flex; flex-wrap: wrap; gap: 0.4rem 1.4rem; margin-top: 1.6rem; font-size: 0.98rem; }
.hp-home .hp-hero-times span { display: inline-flex; align-items: center; gap: 0.5rem; }
.hp-home .hp-hero-times span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--hp-gold); }
.hp-home .hp-people {
    justify-self: end; width: 100%; max-width: 400px; box-sizing: border-box; display: grid; gap: 0.75rem;
    background: var(--hp-scrim); border-left: 3px solid var(--hp-gold); padding: 1rem 1.1rem 1.1rem;
}
.hp-home .hp-people > p { font-family: var(--hp-serif); font-size: 1.25rem; line-height: 1.25; }
.hp-home .hp-people ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hp-home .hp-people li { display: grid; gap: 0.35rem; min-width: 0; }
.hp-home .hp-people img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 3px; }
.hp-home .hp-people li span { font-size: 0.78rem; line-height: 1.25; color: var(--hp-on-dark-muted); }
@media (max-width: 899px) {
    .hp-home .hp-hero-photo { bottom: auto; height: min(78vw, 460px); }
    .hp-home .hp-hero::before {
        background:
            linear-gradient(180deg, #142d3c33 0%, #142d3c40 30%, #142d3c 100%) top / 100% min(78vw, 460px) no-repeat,
            linear-gradient(#142d3c, #142d3c) bottom / 100% calc(100% - min(78vw, 460px) + 1px) no-repeat;
    }
    .hp-home .hp-hero .hp-wrap { padding-top: calc(min(78vw, 460px) - 5.5rem); }
    .hp-home .hp-people { justify-self: stretch; max-width: none; }
}

/* This Sunday: the roadside sign, the times and how to find us */
.hp-home .hp-sunday .hp-wrap { display: grid; gap: clamp(2.25rem, 5vw, 4.5rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 880px) { .hp-home .hp-sunday .hp-wrap { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; } }
.hp-home .hp-sign { display: grid; justify-items: center; }
.hp-home .hp-sign-board {
    width: min(100%, 440px); max-width: 100%; box-sizing: border-box; background: var(--hp-sign-frame);
    padding: 10px; border-radius: 4px; box-shadow: 0 22px 30px -22px #142d3c80;
}
.hp-home .hp-sign-head {
    display: flex; align-items: center; justify-content: center; gap: 0.55rem;
    background: var(--hp-navy-deep); color: var(--hp-on-dark); padding: 0.55rem 0.5rem;
    font-family: var(--hp-serif); font-size: 1.3rem; letter-spacing: 0.08em;
}
.hp-home .hp-sign-head svg { width: 24px; height: 24px; flex: none; }
.hp-home .hp-sign-rows { background: var(--hp-sign-board); padding: 0.35rem 0.6rem; }
.hp-home .hp-sign-row {
    font-family: var(--hp-sign); font-weight: 600; font-stretch: condensed; font-size: clamp(1rem, 4.4vw, 1.75rem);
    line-height: 1; padding: 0.45em 0 0.32em; text-align: center; color: var(--hp-sign-ink);
    letter-spacing: 0.07em; text-wrap: balance; border-bottom: 2px solid var(--hp-sign-groove);
}
.hp-home .hp-sign-row:last-child { border-bottom: 0; }
.hp-home .hp-sign-row span { display: inline-block; }
.hp-home .hp-sign-row span:nth-child(3n) { transform: translateY(1px); }
.hp-home .hp-sign-row span:nth-child(5n+1) { transform: translateY(-1px) rotate(-1.2deg); }
.hp-home .hp-sign-row span:nth-child(7n+4) { transform: rotate(1deg); }
.hp-home .hp-sign-base {
    width: min(64%, 280px); height: 58px; background-color: var(--hp-brick);
    background-image: linear-gradient(var(--hp-mortar) 2px, transparent 2px), linear-gradient(90deg, var(--hp-mortar) 2px, transparent 2px);
    background-size: 100% 14.5px, 31px 29px;
    border-radius: 0 0 3px 3px;
}
.hp-home .hp-sign figcaption { margin-top: 0.9rem; font-size: 0.9rem; font-style: italic; color: var(--hp-muted); }
.hp-home .hp-sunday-info { display: grid; gap: 1.5rem; min-width: 0; }
.hp-home .hp-sunday-info .hp-section-head { margin-bottom: 0; }
.hp-home .hp-schedule { display: grid; border-top: 1px solid var(--hp-line); }
.hp-home .hp-schedule > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding-block: 0.85rem; border-bottom: 1px solid var(--hp-line); }
.hp-home .hp-schedule dt { font-family: var(--hp-display); font-size: 2rem; line-height: 1; font-variant-numeric: lining-nums tabular-nums; color: var(--hp-navy); }
.hp-home .hp-schedule dt small { font-family: var(--hp-body); font-size: 0.95rem; margin-left: 0.2rem; color: var(--hp-muted); }
.hp-home .hp-schedule dd { font-size: 1.125rem; font-weight: 700; }
.hp-home .hp-schedule dd span { display: block; font-weight: 400; color: var(--hp-muted); font-size: 0.98rem; }
.hp-home .hp-find-us { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 1rem; align-items: center; }
.hp-home .hp-find-us img { width: 148px; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 4px; }
.hp-home .hp-find-us p { font-size: 0.98rem; line-height: 1.6; }
@media (max-width: 460px) { .hp-home .hp-find-us { grid-template-columns: minmax(0, 1fr); } .hp-home .hp-find-us img { width: 100%; } }
.hp-home .hp-sunday-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.hp-home .hp-sunday-actions a[href^="tel:"] { color: inherit; font-weight: 700; }

/* Watch: the newest service from the Sermons list */
.hp-home .hp-watch-grid { display: grid; gap: clamp(1.5rem, 4vw, 3rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .hp-home .hp-watch-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); align-items: center; } }
.hp-home .hp-player { position: relative; aspect-ratio: 16 / 9; max-width: 100%; border-radius: 4px; overflow: hidden; background: var(--hp-navy-deep); }
.hp-home .hp-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.hp-home .hp-poster {
    position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0;
    cursor: pointer; background: var(--hp-navy-deep); color: var(--hp-on-dark); text-align: left; text-decoration: none;
}
.hp-home .hp-poster img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.hp-home .hp-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, #142d3cf0 0%, #142d3c66 45%, #142d3c00 75%); }
.hp-home .hp-poster:hover img { transform: scale(1.02); }
.hp-home .hp-play {
    position: absolute; z-index: 1; left: 50%; top: 45%; transform: translate(-50%, -50%);
    width: 76px; height: 76px; border-radius: 50%; background: var(--hp-gold); color: var(--hp-navy-deep); display: grid; place-items: center;
    box-shadow: 0 10px 30px #0000004d;
}
.hp-home .hp-play svg { width: 28px; height: 28px; margin-left: 4px; }
.hp-home .hp-poster-label { position: absolute; z-index: 1; left: 1.1rem; right: 1.1rem; bottom: 1rem; display: grid; gap: 0.15rem; }
.hp-home .hp-poster-label strong { font-family: var(--hp-serif); font-weight: 400; font-size: clamp(1.15rem, 2.4vw, 1.5rem); line-height: 1.25; }
.hp-home .hp-poster-label span { font-size: 0.9rem; color: var(--hp-on-dark-muted); }
.hp-home .hp-watch-side { display: grid; gap: 1rem; min-width: 0; }
.hp-home .hp-watch-side p { line-height: 1.6; }
.hp-home .hp-live-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--hp-live); margin-right: 0.45rem; vertical-align: 1px; }

/* Pastor */
.hp-home .hp-pastor .hp-wrap { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 820px) { .hp-home .hp-pastor .hp-wrap { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); align-items: center; } }
.hp-home .hp-pastor-photo { max-width: 400px; width: 100%; }
.hp-home .hp-pastor-photo .image-preview { width: 100%; height: auto; max-height: none; object-fit: cover; border-radius: 4px; background: transparent; }
.hp-home .hp-pastor-text { display: grid; gap: 1.25rem; min-width: 0; }
.hp-home .hp-pastor-text h2 { color: var(--hp-on-dark); }
.hp-home .hp-pastor-welcome { padding-left: 1.6rem; border-left: 3px solid var(--hp-gold); max-width: 42ch; }
.hp-home .hp-pastor-welcome .content-display :is(p, li) {
    font-family: var(--hp-serif); font-style: italic; font-size: clamp(1.3rem, 2.6vw, 1.65rem); line-height: 1.45; color: var(--hp-on-dark);
}
.hp-home .hp-pastor-welcome .content-display p + p { margin-top: 0.75rem; }
.hp-home .hp-pastor-welcome .content-display a { color: var(--hp-gold); }

/* Coming up: next events from the church calendar, and current news */
.hp-home .hp-news { display: grid; gap: 0.75rem; margin-bottom: 1.5rem; }
.hp-home .hp-news a {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.25rem 0.9rem; align-items: baseline;
    padding: 0.9rem 1.1rem; background: var(--hp-card); border: 1px solid var(--hp-line); border-left: 3px solid var(--hp-sage);
    border-radius: var(--hp-radius); color: var(--hp-ink); text-decoration: none;
}
.hp-home .hp-news a.is-important { border-left-color: var(--hp-live); }
.hp-home .hp-news a:hover { border-color: var(--hp-sage); }
.hp-home .hp-news b { font: 700 0.75rem/1.2 var(--hp-body); letter-spacing: 0.12em; text-transform: uppercase; color: var(--hp-sage); }
.hp-home .hp-news a.is-important b { color: var(--hp-live); }
.hp-home .hp-news strong { font-family: var(--hp-serif); font-weight: 400; font-size: 1.15rem; }
.hp-home .hp-news span { grid-column: 2; font-size: 0.95rem; color: var(--hp-muted); }
.hp-home .hp-events { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 880px) {
    .hp-home .hp-events { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .hp-home .hp-events[data-count='1'] { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
    .hp-home .hp-events[data-count='2'] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hp-home .hp-event {
    display: grid; grid-template-columns: 4.25rem minmax(0, 1fr); gap: 1.1rem; align-items: start;
    background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: 1.2rem;
}
.hp-home .hp-event-date {
    display: grid; justify-items: center; background: var(--hp-navy-deep); color: var(--hp-on-dark);
    border-radius: 4px; padding: 0.45rem 0 0.55rem; font-family: var(--hp-sign); font-weight: 600; text-transform: uppercase;
}
.hp-home .hp-event-date .m { font-size: 0.9rem; letter-spacing: 0.12em; color: var(--hp-gold); }
.hp-home .hp-event-date .d { font-size: 2.1rem; line-height: 1; font-variant-numeric: lining-nums; }
.hp-home .hp-event-body { display: grid; gap: 0.4rem; min-width: 0; }
.hp-home .hp-event-body h3 { font-size: 1.2rem; overflow-wrap: anywhere; }
.hp-home .hp-event-meta { font-size: 0.9rem; font-weight: 700; color: var(--hp-sage); line-height: 1.4; }
.hp-home .hp-event-body p { font-size: 0.98rem; color: var(--hp-muted); line-height: 1.5; }
.hp-home .hp-event-links { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; margin-top: 0.2rem; font-size: 0.95rem; }
.hp-home .hp-editor-hint { padding: 1rem 1.2rem; border: 1px dashed var(--hp-sage); border-radius: var(--hp-radius); background: var(--hp-card); }

/* Ministries */
.hp-home .hp-ministries { display: grid; gap: 1.1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .hp-home .hp-ministries { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .hp-home .hp-ministries { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hp-home .hp-ministry {
    display: grid; grid-template-rows: auto 1fr; background: var(--hp-card); border: 1px solid var(--hp-line);
    border-radius: var(--hp-radius); overflow: hidden; text-decoration: none; color: var(--hp-ink);
}
.hp-home .hp-ministry .hp-img { overflow: hidden; }
.hp-home .hp-ministry img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.4s ease; }
.hp-home .hp-ministry:hover img { transform: scale(1.03); }
.hp-home .hp-ministry-body { display: grid; gap: 0.45rem; align-content: start; padding: 1.1rem 1.2rem 1.25rem; }
.hp-home .hp-ministry-body p { font-size: 0.98rem; color: var(--hp-muted); line-height: 1.5; }
.hp-home .hp-ministry-body .hp-link { margin-top: 0.25rem; font-size: 0.95rem; }
.hp-home .hp-more-ministries { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 1.5rem; }
.hp-home .hp-more-ministries > span { font-weight: 700; margin-right: 0.25rem; }
.hp-home .hp-more-ministries a {
    display: inline-flex; align-items: center; min-height: 40px; padding: 0.4rem 0.9rem; border-radius: 999px;
    background: var(--hp-card); border: 1px solid var(--hp-line); color: var(--hp-ink); text-decoration: none; font-size: 0.95rem;
}
.hp-home .hp-more-ministries a:hover { border-color: var(--hp-sage); }

/* Moments: the gallery church editors keep (hidden from visitors when it has no photos) */
.hp-home .hp-moments .home-gallery { margin-top: 0; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); justify-items: stretch; }
.hp-home .hp-moments .gal-card { background: var(--hp-card); border-color: var(--hp-line); max-width: none; }
.hp-home .hp-moments .gal-frame { background: var(--hp-sage-pale); }
.hp-home .hp-moments .gal-meta p { color: var(--hp-muted); font-size: 0.95rem; }
.hp-home .hp-moments .home-gallery > .event-row { background: var(--hp-card); color: var(--hp-muted); border-color: var(--hp-line); }
.hp-home .hp-moments .home-gallery-toolbar { margin-top: 1rem; }
.hp-home .hp-moments .btn:not(.btn-primary):not(.btn-success) { background: var(--hp-card); color: var(--hp-ink); border-color: var(--hp-line); }
.hp-home .hp-moments :is(.gal-row input[type="text"], .gal-handle) { background: var(--hp-card); color: var(--hp-ink); border-color: var(--hp-line); }

/* Give and members */
.hp-home .hp-give-grid { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 860px) { .hp-home .hp-give-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.hp-home .hp-give-panel { background: var(--hp-navy-deep); color: var(--hp-on-dark); border-radius: var(--hp-radius); padding: clamp(1.5rem, 4vw, 2.75rem); display: grid; gap: 1.1rem; align-content: start; }
.hp-home .hp-give-panel h2 { color: var(--hp-on-dark); }
.hp-home .hp-give-panel p { color: var(--hp-on-dark-muted); max-width: 52ch; line-height: 1.6; }
.hp-home .hp-give-panel .hp-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.3rem; }
.hp-home .hp-give-panel .hp-fine { font-size: 0.95rem; }
.hp-home .hp-members-panel { background: var(--hp-card); border: 1px solid var(--hp-line); border-radius: var(--hp-radius); padding: clamp(1.5rem, 4vw, 2.25rem); display: grid; gap: 0.9rem; align-content: start; }
.hp-home .hp-members-head { display: flex; align-items: center; gap: 0.9rem; }
.hp-home .hp-members-head svg { width: 56px; height: 56px; flex: none; }
.hp-home .hp-members-panel p { line-height: 1.6; }

@media (prefers-reduced-motion: reduce) {
    .hp-home :is(.hp-poster img, .hp-ministry img) { transition: none; }
    .hp-home .hp-poster:hover img, .hp-home .hp-ministry:hover img { transform: none; }
}
