/* Auto-generated utility classes from static inline Blade styles. */
.mg-search-dropdown { top: 100%; z-index: 1050; max-height: 240px; overflow-y: auto; display: none; }
.mg-search-selected { display: none; }
.sidebar-collapse-toggle .collapse-indicator { transition: transform 0.2s ease; }
.sidebar-collapse-toggle.collapsed .collapse-indicator { transform: rotate(-90deg); }
.u-inline-0029e73a75 { max-height:180px; }
.u-inline-00a7e45732 { z-index:1; }
.u-inline-00bd57fb2d { animation:pulse 1s infinite; }
.u-inline-012054abc3 { height:140px; object-fit:cover; }
.u-inline-0148402cd4 { max-height:112px; }
.u-inline-019128fedf { min-width:220px; }
.u-inline-03b754948a { max-width:220px; }
.u-inline-04c6a0a4e8 { min-width:180px; }
.u-inline-0679085dbf { aspect-ratio: 4/3; object-fit: cover; display: block; }
.u-inline-06d51caa1f { font-size:1.5rem; }
.u-inline-09ac60314f { background-color:#ffffff;padding:24px 44px 32px; border-left:1px solid #e8dfd5;border-right:1px solid #e8dfd5; }
.u-inline-0a36d8b05e { background-color:#f2ede8;padding:32px 16px; }
.u-inline-0a8ad27c5d { background-color:#ffffff;padding:0 44px; border-left:1px solid #e8dfd5;border-right:1px solid #e8dfd5; }
.u-inline-0ad9d4607f { margin:8px 0 0;font-family:Arial,sans-serif;color:#c9a87a; font-size:11px;letter-spacing:1px; }
.u-inline-0ade22c7fb { max-height:240px; }
.u-inline-0ba9e85aff { width: 14rem; }
.u-inline-0c5f931edd { max-height: 180px; object-fit: cover; }
.u-inline-0d08ee0f77 { width:40px;height:40px;background:var(--grace-red); }
.u-inline-0d6686b7d1 { top:0;left:0;background:linear-gradient(135deg,rgba(90,45,45,.82) 0%,rgba(139,69,19,.72) 100%); }
.u-inline-0da469f2a4 { width:100%;height:400px;border:0;border-radius:8px; }
.u-inline-0e28ac4b62 { height:160px;object-fit:cover; }
.u-inline-0eb8647881 { font-size:.75rem;letter-spacing:.08em; }
.u-inline-0ff9655c34 { width:40px;height:40px;object-fit:cover; }
.u-inline-10d85012f5 { max-width:320px;max-height:180px;object-fit:cover;border-radius:6px; }
.u-inline-10e8bb83c0 { width:110px; }
.u-inline-111bcbea59 { font-size:.68rem;letter-spacing:.08em; }
.u-inline-11310a1403 { font-size:1.05rem; opacity:.82; max-width: 480px; }
.u-inline-15f273c8c1 { --bs-btn-color:#a8d880; --bs-btn-border-color:rgba(168,216,128,.45); --bs-btn-hover-bg:rgba(168,216,128,.12); --bs-btn-hover-color:#fff; }
.u-inline-168c19f349 { max-height: 280px; object-fit: cover; }
.u-inline-169f06e0d1 { color: #666; }
.u-inline-191f3176a3 { font-size: .78rem; letter-spacing:.03em; }
.u-inline-19416bd6bb { opacity:.8; }
.u-inline-1b8ccde61d { height:220px;overflow:hidden; }
.u-inline-1bb4b11f46 { cursor:grab; }
.u-inline-1cc12630b4 { z-index: 20; }
.u-inline-1d57e605bb { max-width: 720px; }
.u-inline-1dbad6f50e { background:var(--grace-red);color:#fff; }
.u-inline-1fc493e366 { max-width:140px; }
.u-inline-218c63c698 { margin:0;font-family:Georgia,serif;font-size:14px; font-style:italic;color:#7a5c3a; }
.u-inline-21b9fcfc50 { width: 180px; }
.u-inline-23b5d5bd3d { max-height:400px;object-fit:cover; }
.u-inline-26107277ef { min-width:70px; }
.u-inline-2673a3275d { background-color:#ffffff;padding:40px 44px; border-left:1px solid #e8dfd5;border-right:1px solid #e8dfd5; }
.u-inline-26d179dd0f { width:64px;height:64px;border-radius:.375rem;flex-shrink:0;background:#f0f2f7;display:flex;align-items:center;justify-content:center; }
.u-inline-2899121285 { max-width:280px; }
.u-inline-29f23f1405 { height:60px;width:60px;object-fit:cover;border-radius:.375rem; }
.u-inline-2a3e4d2033 { height: 190px; object-fit: cover; }
.u-inline-2bcd7afb0d { background: var(--grace-red); color: #fff; border-radius: 10px 10px 0 0; }
.u-inline-2cc6844cfa { background: var(--grace-red); }
.u-inline-307c0b02d6 { aspect-ratio: 16 / 9; }
.u-inline-31deb60e61 { width:48px;height:32px;object-fit:cover;border-radius:3px; }
.u-inline-3344bebb0d { width:600px;max-width:600px;border-radius:10px;overflow:hidden; box-shadow:0 4px 24px rgba(0,0,0,.12); }
.u-inline-33493c1c8e { width:64px;height:64px;background:var(--grace-red);font-size:1.4rem; }
.u-inline-34d7375e5b { padding: 5rem 0; background: var(--grace-bg); }
.u-inline-34eb8eea37 { color: rgba(230,240,220,.6); }
.u-inline-34fc363c41 { height:180px;overflow:hidden; }
.u-inline-356eb60a15 { width:140px;height:80px; }
.u-inline-360ac76454 { vertical-align:-1px; }
.u-inline-3655a81a79 { margin:0;padding:0;background-color:#f2ede8;font-family:Georgia,'Times New Roman',Times,serif;-webkit-font-smoothing:antialiased; }
.u-inline-37140a1659 { letter-spacing:.05em; }
.u-inline-3792963545 { width:64px;height:64px;object-fit:cover; }
.u-inline-381651b0bf { width:120px;height:120px;font-size:2.5rem; }
.u-inline-383fa7889a { min-width:250px; }
.u-inline-38d656f2ad { color:inherit; }
.u-inline-3a45c855f3 { min-width: 260px; }
.u-inline-3b91106d41 { height:120px;object-fit:cover; }
.u-inline-3c6710041d { color:#9d2f3f;text-decoration:none; }
.u-inline-3cfc5dc8fb { font-size:.8rem; }
.u-inline-3d885b8d84 { background:transparent; }
.u-inline-3dc4627d5f { object-fit: cover; }
.u-inline-3ed4b9dc9b { inset:0; }
.u-inline-40c514d18f { width:36px;height:36px;object-fit:cover;flex-shrink:0; }
.u-inline-412ddb6557 { height:180px; background: linear-gradient(135deg, #e8ede0, #d0dcc4); border-radius: 6px 6px 0 0; }
.u-inline-41801cb3d8 { font-size:.85rem; }
.u-inline-4558598cdc { width: 10rem; }
.u-inline-48504128d0 { height:160px; }
.u-inline-4907b8e96c { width:40px;height:40px;font-size:1.1rem; }
.u-inline-4c7043cb47 { max-height: 260px; object-fit: cover; }
.u-inline-4d24ca3f37 { max-height:120px; border-radius:4px; }
.u-inline-4d6dfaf211 { background: var(--grace-red); font-size:.68rem; letter-spacing:.07em; }
.u-inline-4e0b175f38 { white-space:pre-line; }
.u-inline-4f126841c8 { max-height:340px; object-fit:cover; }
.u-inline-4fccb7af20 { font-size:.6rem; }
.u-inline-5134674051 { width:100px; }
.u-inline-534cfe5794 { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color: rgba(230,240,220,.4); }
.u-inline-54cd26cfd3 { width:140px; }
.u-inline-5529fe18cc { max-width:150px; }
.u-inline-559bee3004 { margin:0 0 4px;font-family:Arial,Helvetica,sans-serif; font-size:12px;color:#7a7265;line-height:1.5; }
.u-inline-5716fd38ea { font-size:.65rem;min-width:34px; }
.u-inline-5748732304 { color: #444; }
.u-inline-58aba5753b { cursor:pointer; }
.u-inline-5aba232e88 { background: var(--grace-bg); color: var(--grace-ink); }
.u-inline-5af629cd7f { object-fit: cover; transition: transform .35s ease; }
.u-inline-602a9b5ef5 { opacity:.85; }
.u-inline-61347d67ac { max-height:180px;object-fit:cover; }
.u-inline-61f116ec2d { max-height: 82vh; object-fit: contain; display: block; background: #111; }
.u-inline-633b6b82cb { background: linear-gradient(transparent, rgba(0,0,0,.72)); }
.u-inline-63ecea99cd { font-size:.7rem;padding:.15rem .4rem; }
.u-inline-6410fba389 { background:linear-gradient(135deg,var(--grace-primary,#5a2d2d) 0%,var(--grace-secondary,#8b4513) 100%); }
.u-inline-64fa8f4719 { width:160px; }
.u-inline-68dba3e757 { width:50px; }
.u-inline-6a98d24be0 { font-size:.7rem;letter-spacing:.05em; }
.u-inline-6ebb1c5a83 { font-size:.7rem;text-transform:uppercase; }
.u-inline-72519ad9dc { font-size:.6rem;animation:pulse 1s infinite; }
.u-inline-731948255e { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.u-inline-738a715fc0 { width:32px;height:32px;object-fit:cover;border-radius:4px; }
.u-inline-747904b694 { background: var(--grace-cloud); }
.u-inline-792cf69909 { max-width:200px; }
.u-inline-7970af708b { color: var(--grace-gold); }
.u-inline-7a6ac30496 { font-size:1.1rem; color:#fff; font-family: var(--grace-heading-font); }
.u-inline-7b6934340c { max-width: 520px; }
.u-inline-7b9d2dcf33 { margin:12px 0 0;font-family:Arial,Helvetica,sans-serif; font-size:11px;color:#aaa49e; }
.u-inline-7c76ff0368 { width:200px; }
.u-inline-7d1faedf20 { width: 100%; height: 100%; object-fit: cover; }
.u-inline-7d3f7ed1f3 { width: 5rem; }
.u-inline-7daf6ba907 { width:130px; }
.u-inline-7fba20888e { font-size: .9rem; line-height: 1.3; }
.u-inline-80a3748b89 { border:none;border-top:1px solid #ede5da;margin:0; }
.u-inline-828e6e0251 { max-width: 640px; }
.u-inline-8362f68d90 { height:36px; }
.u-inline-8740e5f270 { object-fit:cover;top:0;left:0; }
.u-inline-87edd80993 { width:40px;height:40px;object-fit:cover;border-radius:4px; }
.u-inline-8841ed99cf { max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.u-inline-887fd87cfe { margin:0 0 20px;font-family:Georgia,serif;color:#5a2d2d;font-size:17px; }
.u-inline-8935a6a1ba { width:80px; }
.u-inline-8960823ae9 { margin:6px 0 0;font-family:Georgia,serif;font-size:15px; color:#5a2d2d;font-weight:bold; }
.u-inline-8acc0edcbf { width:56px;height:32px;background:#dee2e6;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#6c757d; }
.u-inline-8b2da0b497 { white-space:nowrap; }
.u-inline-8c265f193c { width:18px;flex-shrink:0; }
.u-inline-8c467fec8b { min-width:50px; }
.u-inline-8c8db31185 { white-space:pre-line;line-height:1.8; }
.u-inline-8d8a356aa1 { max-height:120px; border-radius:6px; }
.u-inline-8db42af5f6 { width:42px;height:42px;object-fit:cover; }
.u-inline-8ef176634f { min-width:230px; }
.u-inline-8f46976a50 { max-height:280px;width:100%;object-fit:cover; }
.u-inline-907edd69d0 { aspect-ratio: 16/9; object-fit: cover; }
.u-inline-9388dfc80e { width:36px;height:36px;flex-shrink:0; }
.u-inline-93b8ea5b2f { display:none; }
.u-inline-94205e08c9 { margin:0 0 6px;font-family:Georgia,serif;color:#d4a96a; font-size:11px;letter-spacing:4px;text-transform:uppercase; font-weight:normal; }
.u-inline-971e5dd2a1 { transition: transform .2s, box-shadow .2s; }
.u-inline-978c41dd6d { max-height: 75vh; object-fit: contain; background: #111; }
.u-inline-97b99ed965 { border-left: 4px solid var(--grace-gold); padding-left: .75rem; }
.u-inline-97dec05463 { width:120px;height:120px;object-fit:cover; }
.u-inline-97f00b7eef { opacity:.6; }
.u-inline-988603e41c { max-height: 460px; width: 100%; object-fit: cover; }
.u-inline-99773b275a { max-width:680px; }
.u-inline-9a4a519eff { background: rgba(255,255,255,.07); }
.u-inline-a472c23c2f { width:120px;height:90px;object-fit:cover; }
.u-inline-a4881b86af { width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0; }
.u-inline-a495c7dcd9 { width:48px;height:48px;object-fit:cover; }
.u-inline-a5619f55ef { min-height: 320px; }
.u-inline-a722ee36dc { min-width:160px; }
.u-inline-a7bd571939 { background: color-mix(in srgb, var(--grace-footer-bg) 88%, var(--grace-red) 12%); }
.u-inline-a9221c8510 { width:40px; }
.u-inline-aa203e334a { max-width:600px; }
.u-inline-aa6b0fd945 { width:60px; }
.u-inline-abded80f33 { width:48px;height:48px;color:#bbb; }
.u-inline-ad9e4850ec { min-width: 220px; }
.u-inline-b12454c2ef { top: 88px; }
.u-inline-b13bf734ef { max-height: 220px; object-fit: cover; }
.u-inline-b1883abdc0 { padding: 5rem 0; }
.u-inline-b26caa3238 { width:72px;height:72px;object-fit:cover; }
.u-inline-b2bedf8a23 { max-height: 140px; object-fit: contain; }
.u-inline-b353d271cd { min-width:95px; }
.u-inline-b45e277912 { width:140px;height:80px;object-fit:cover; }
.u-inline-b50f34359d { max-width: 720px; }
.u-inline-b592715336 { color:#fff; }
.u-inline-b5eb9e2804 { font-size:.72rem; }
.u-inline-b7695795c1 { aspect-ratio: 4/3; background: var(--grace-cloud); }
.u-inline-b8f770d0a9 { width:42px;height:42px;background:#9d2f3f;font-size:.85rem; }
.u-inline-ba2c5c3ee9 { font-size:2rem; }
.u-inline-ba402c405a { color: rgba(230,240,220,.6); line-height: 1.7; }
.u-inline-bad16c1b94 { min-width:190px; }
.u-inline-bae5a98cef { max-height:60px;border-radius:4px; }
.u-inline-bd1c064d0f { min-width:200px; }
.u-inline-bd4ba71444 { width:72px; }
.u-inline-becb261612 { font-size:.7rem; }
.u-inline-befa24e22b { margin:0;font-family:Georgia,serif;color:#ffffff; font-size:22px;font-weight:normal;font-style:italic; letter-spacing:.5px; }
.u-inline-bf19a94195 { letter-spacing:.06em; }
.u-inline-c4f1736439 { font-size:.84rem; }
.u-inline-c5a3ebfe7f { object-fit:cover;transition:transform .4s; }
.u-inline-c8419cd89c { min-width:120px; }
.u-inline-c860c5b600 { min-width:140px; }
.u-inline-cc3ff81991 { top: 88px; box-shadow: 0 4px 24px rgba(20,33,61,.12); }
.u-inline-cd4f73561a { max-width:260px; }
.u-inline-cdc11f90de { box-shadow: 0 4px 24px rgba(20,33,61,.1); }
.u-inline-ceaae8d756 { max-height:100px; object-fit:contain; }
.u-inline-cf44b5d4e7 { font-size:2.5rem; }
.u-inline-d018de6f27 { height: 420px; object-fit: cover; }
.u-inline-d19b5f09fd { font-family:Georgia,serif;font-size:15px;line-height:1.75;color:#333333; }
.u-inline-d274915372 { aspect-ratio:4/3; background: linear-gradient(135deg,#c8dab8,#a0b888); }
.u-inline-d28b5b25f0 { min-width:75px;font-size:.82rem;padding-top:2px; }
.u-inline-d2b8fa50b4 { font-size:.88rem; }
.u-inline-d3b60f0732 { width:auto; }
.u-inline-d57e33f5e2 { font-size:.78rem; }
.u-inline-d5f3953fb8 { width:48px;height:48px;background:#2d6a4f;font-size:1.3rem; }
.u-inline-d630432429 { min-width:56px; }
.u-inline-d826986767 { height: 8px; }
.u-inline-d88f66029c { cursor:pointer;font-size:.75rem; }
.u-inline-d8d465fe43 { background-color:#5a2d2d;padding:36px 40px;text-align:center; }
.u-inline-d9cbab6387 { font-size:3rem; }
.u-inline-da7ecfaa82 { max-width: 760px; }
.u-inline-db8a217b50 { width:120px; }
.u-inline-dd7c19c4f1 { max-height: 120px; object-fit: contain; }
.u-inline-de36b00371 { width:64px;height:64px;object-fit:cover;border-radius:.375rem;flex-shrink:0; }
.u-inline-def917df15 { background: color-mix(in srgb, var(--grace-red) 80%, #000 20%); }
.u-inline-df0f94397c { font-size:.65rem; }
.u-inline-df97d27162 { height:160px; object-fit:cover; }
.u-inline-e08a64ef85 { max-width:240px;max-height:135px;object-fit:cover;border-radius:6px; }
.u-inline-e1524d4ba7 { color:var(--grace-red);flex-shrink:0;margin-top:.15rem; }
.u-inline-e2c2c55343 { color: var(--grace-red); }
.u-inline-e41bb6d105 { inset:0; background: linear-gradient(90deg, rgba(20,33,61,.88), rgba(63,111,98,.48)); }
.u-inline-e4f6226176 { min-height:260px; }
.u-inline-e6c042df73 { max-height: 80px; object-fit: contain; }
.u-inline-e744d5ced5 { max-height: 420px; object-fit: cover; }
.u-inline-e78af0b6e3 { height:100px; }
.u-inline-e9b5137fcb { max-height:140px; }
.u-inline-ea2126fe7f { font-size:.7rem;text-transform:uppercase;letter-spacing:.05em; }
.u-inline-ebc214760b { font-size:1.2rem; }
.u-inline-ed5b9a5166 { width:150px; }
.u-inline-ef93f538fc { height:100px;object-fit:cover; }
.u-inline-f0102b4b02 { margin:0;font-family:Arial,Helvetica,sans-serif; font-size:12px;color:#7a7265;line-height:1.8; }
.u-inline-f107541997 { box-shadow: 0 4px 20px rgba(20,33,61,.09); }
.u-inline-f1899145d2 { max-height:60px; border-radius:4px; }
.u-inline-f19e039fac { font-size:.75rem;padding:1px 8px; }
.u-inline-f63e7444c1 { width:56px;height:32px;object-fit:cover;border-radius:3px; }
.u-inline-f70f7fc231 { max-width: 220px; }
.u-inline-f9368ae013 { min-height:60px; }
.u-inline-f9abcdf5cd { background: color-mix(in srgb, var(--grace-gold) 8%, var(--grace-bg) 92%); }
.u-inline-fd31b578d4 { background-color:#f7f2ec;padding:24px 40px;text-align:center; border:1px solid #e8dfd5;border-top:2px solid #d4a96a; }
.u-inline-fde308b4ab { font-size:.75rem; }
.u-inline-fe79d07af0 { aspect-ratio: 4/3; object-fit: cover; }

/* ── Shared page banner header ─────────────────────────────────────── */
.grace-page-header {
    background: linear-gradient(
        160deg,
        color-mix(in srgb, var(--grace-gold) 22%, var(--grace-cloud)) 0%,
        color-mix(in srgb, var(--grace-red) 6%, var(--grace-cloud)) 100%
    );
    border-bottom: 2px solid color-mix(in srgb, var(--grace-gold) 35%, transparent);
    padding: 3rem 0 2.5rem;
}
.grace-header-kicker {
    color: var(--grace-red);
    font-weight: 600;
    font-size: .875rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: .35rem;
}
.grace-page-header--has-image .grace-header-kicker { color: rgba(255,255,255,.8); }
.grace-page-header--has-image,
.grace-page-header--has-image h1,
.grace-page-header--has-image h2,
.grace-page-header--has-image .lead { color: #fff; }

/* ── Page title inset box (ministry detail, hero fallback) ─────────── */
.grace-page-title-box {
    background: linear-gradient(
        160deg,
        color-mix(in srgb, var(--grace-gold) 22%, var(--grace-cloud)) 0%,
        color-mix(in srgb, var(--grace-red) 6%, var(--grace-cloud)) 100%
    );
    border-left: 5px solid var(--grace-red);
    border-bottom: 1px solid color-mix(in srgb, var(--grace-gold) 30%, transparent);
    border-radius: 0 12px 12px 0;
    padding: 2rem 2.5rem;
}

/* ── Staff directory (/staff) ────────────────────────────────────────── */
.staff-section { padding: 3rem 0 4rem; }
.staff-heading {
    font-family: var(--grace-heading-font);
    font-size: 2rem;
    line-height: 1.4;
    text-align: center;
    margin-bottom: 3rem;
}
.staff-heading::after {
    content: "";
    display: block;
    width: 50px;
    margin: 1.5rem auto 0;
    border-bottom: 2px solid var(--grace-red);
}
.staff-card { text-align: center; }
.staff-card-role {
    font-family: var(--grace-heading-font);
    font-size: 1.375rem;
    line-height: 1.25;
    margin-bottom: 1rem;
}
.staff-card-media {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--grace-surface-muted);
}
.staff-card-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.staff-card-initial {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-family: var(--grace-heading-font);
    font-size: 4rem;
    color: color-mix(in srgb, var(--grace-ink) 55%, transparent);
}
.staff-card-name {
    font-size: 1.0625rem;
    margin: 1rem 0 0;
}
.staff-card-bio {
    font-size: .875rem;
    margin-top: .5rem;
    text-align: left;
}
.staff-card-bio p:last-child { margin-bottom: 0; }

/* ── Content section / sidebar card heading bands ─────────────────── */
.grace-section-heading-band {
    background: color-mix(in srgb, var(--grace-gold) 14%, var(--grace-cloud));
    border-left: 4px solid var(--grace-red);
    border-radius: 0 6px 6px 0;
    padding: .5rem 1rem .5rem .875rem;
    margin-bottom: 1rem;
}
.grace-card-heading-band {
    background: color-mix(in srgb, var(--grace-gold) 14%, var(--grace-cloud));
    border-left: 4px solid var(--grace-red);
    border-radius: 0 6px 6px 0;
    padding: .375rem .875rem .375rem .75rem;
    margin-bottom: .875rem;
}

/* ── Ministry slogan (italic sub-heading on ministry pages) ─────────── */
.grace-ministry-slogan {
    font-family: var(--grace-heading-font);
    font-style: italic;
    font-size: 1rem;
    color: color-mix(in srgb, var(--grace-red) 75%, var(--grace-ink));
}

/* ── Card hover lift ─────────────────────────────────────────────────── */
.hover-card { transition: transform .15s, box-shadow .15s; }
.hover-card:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12) !important; }
.hover-card-soft { transition: transform .12s, box-shadow .12s; }
.hover-card-soft:hover { transform: translateY(-2px); box-shadow: 0 .4rem 1.2rem rgba(0,0,0,.09) !important; }

/* ── Pulse animation ──────────────────────────────────────────────────── */
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.5} }

/* ── Search page ──────────────────────────────────────────────────────── */
.search-hero {
    position: relative; overflow: hidden;
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--grace-gold) 32%, transparent) 0, transparent 38%),
        linear-gradient(135deg, #172113 0%, #26361e 38%, #4a221d 100%);
    color: #fff; padding: 4.5rem 0 3.75rem;
}
.search-hero::after {
    content: ""; position: absolute; inset: auto -8% -120px auto;
    width: 360px; height: 360px; border-radius: 50%;
    background: color-mix(in srgb, var(--grace-gold) 14%, transparent);
    filter: blur(4px); pointer-events: none;
}
.search-hero-kicker, .search-panel-label { font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.search-hero-kicker { color: color-mix(in srgb, var(--grace-gold) 78%, white); }
.search-panel-label { color: var(--grace-red); }
.search-hero-title { font-size: clamp(2.3rem, 5vw, 4.4rem); line-height: 1.03; max-width: 11ch; }
.search-hero-copy { max-width: 40rem; color: rgba(255,255,255,.78); font-size: 1.02rem; }
.search-shell { display: flex; gap: .85rem; align-items: stretch; max-width: 52rem; }
.search-shell-input {
    display: flex; align-items: center; gap: .9rem;
    background: rgba(255,255,255,.96); border: 1px solid rgba(255,255,255,.2);
    border-radius: 18px; padding: .5rem 1rem; flex: 1 1 auto;
    box-shadow: 0 22px 50px rgba(0,0,0,.22);
}
.search-shell-input svg { width: 1.2rem; height: 1.2rem; fill: var(--grace-red); flex: 0 0 auto; }
.search-shell-input input { background: transparent; color: #16200f; padding-left: 0; padding-right: 0; font-size: 1rem; }
.search-shell-button { border-radius: 18px; padding-inline: 1.6rem; box-shadow: 0 16px 36px rgba(0,0,0,.18); }
.search-quick-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.search-quick-links a { color: rgba(255,255,255,.74); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.2); padding-bottom: .1rem; }
.search-quick-links a:hover, .search-quick-links a:focus { color: #fff; border-bottom-color: rgba(255,255,255,.7); }
.search-hero-panel, .search-empty-card { background: #fff; border: 1px solid color-mix(in srgb, var(--grace-gold) 18%, #e4ded0); border-radius: 24px; padding: 1.5rem; box-shadow: 0 20px 45px rgba(12,20,14,.08); }
.search-hero-panel { background: rgba(255,255,255,.92); color: var(--grace-ink); }
.search-hero-panel-label { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--grace-red); margin-bottom: 1rem; }
.search-hero-stats { display: grid; gap: .85rem; }
.search-hero-stat { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(0,0,0,.08); padding-bottom: .7rem; }
.search-hero-stat:last-child { border-bottom: 0; padding-bottom: 0; }
.search-hero-stat span { color: rgba(0,0,0,.66); font-size: .92rem; }
.search-hero-stat strong { font-size: 1.15rem; font-family: var(--grace-heading-font); }
.search-empty-link, .search-top-card, .search-result-card {
    display: block; text-decoration: none; color: inherit;
    background: #fff; border: 1px solid color-mix(in srgb, var(--grace-gold) 18%, #e4ded0);
    border-radius: 20px; padding: 1.25rem;
    box-shadow: 0 10px 28px rgba(16,24,18,.05);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.search-empty-link:hover, .search-empty-link:focus,
.search-top-card:hover, .search-top-card:focus,
.search-result-card:hover, .search-result-card:focus { transform: translateY(-3px); box-shadow: 0 18px 34px rgba(16,24,18,.09); border-color: color-mix(in srgb, var(--grace-red) 20%, #d8d1c0); }
.search-empty-link { min-height: 100%; background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--grace-gold) 5%, white) 100%); }
.search-empty-link-label, .search-top-card-title, .search-result-title { display: block; font-family: var(--grace-heading-font); font-weight: 700; }
.search-empty-link-label { margin-bottom: .35rem; font-size: 1rem; }
.search-empty-link-copy { color: #647067; font-size: .92rem; }
.search-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.search-filter-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.search-filter-chip { display: inline-flex; align-items: center; gap: .7rem; padding: .75rem 1rem; border-radius: 999px; text-decoration: none; background: #fff; color: var(--grace-ink); border: 1px solid color-mix(in srgb, var(--grace-gold) 18%, #ddd6c4); box-shadow: 0 6px 18px rgba(16,24,18,.04); }
.search-filter-chip strong { min-width: 1.8rem; text-align: center; font-size: .84rem; padding: .18rem .45rem; border-radius: 999px; background: color-mix(in srgb, var(--grace-gold) 12%, #f5f1e8); }
.search-filter-chip.is-active { background: var(--grace-footer-bg); color: #fff; border-color: var(--grace-footer-bg); }
.search-filter-chip.is-active strong { background: rgba(255,255,255,.14); }
.search-top-card-type { display: inline-flex; margin-bottom: .75rem; color: var(--grace-red); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.search-top-card-title { font-size: 1.05rem; line-height: 1.25; margin-bottom: .55rem; }
.search-top-card-meta, .search-result-meta, .search-result-snippet { color: #647067; }
.search-top-card-meta, .search-result-meta { font-size: .88rem; }
.search-result-snippet { font-size: .93rem; line-height: 1.65; }
.search-section-heading { font-size: .88rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--grace-red); border-bottom: 2px solid color-mix(in srgb, var(--grace-gold) 28%, transparent); padding-bottom: .7rem; margin-bottom: 1.1rem; display: flex; align-items: center; gap: .6rem; }
.search-count { font-weight: 700; font-size: .8rem; background: color-mix(in srgb, var(--grace-gold) 20%, #f4efe5); color: #4a524a; padding: .18rem .55rem; border-radius: 999px; letter-spacing: 0; }
.search-badge { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: .45rem .6rem; }
.search-badge-events { background: #e9f1ff; color: #1c5dd8; }
.search-badge-sermons { background: #f1e8ff; color: #6f3fd6; }
.search-badge-news { background: #e8f5ea; color: #237042; }
.search-badge-resources { background: #fdf0df; color: #b56311; }
.search-badge-ministries { background: #fbe8e4; color: #b43b2d; }
.search-badge-pages { background: #edf0f2; color: #57606b; }
.search-date-badge { width: 52px; background: linear-gradient(180deg, color-mix(in srgb, var(--grace-red) 12%, white) 0%, color-mix(in srgb, var(--grace-gold) 8%, white) 100%); border: 1px solid color-mix(in srgb, var(--grace-red) 18%, #e2d7cf); border-radius: 14px; padding: .4rem 0; }
.search-date-month { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--grace-red); line-height: 1; }
.search-date-day { font-size: 1.35rem; font-weight: 800; color: #4d2d22; line-height: 1.15; }
.search-card-image { width: calc(100% + 2.5rem); margin: -1.25rem -1.25rem 0; height: 170px; object-fit: cover; border-radius: 20px 20px 0 0; }
.search-list { display: flex; flex-direction: column; border: 1px solid color-mix(in srgb, var(--grace-gold) 14%, #e4ded0); border-radius: 22px; background: #fff; box-shadow: 0 10px 28px rgba(16,24,18,.05); overflow: hidden; }
.search-list-item { display: flex; gap: 1rem; align-items: flex-start; text-decoration: none; color: inherit; padding: 1rem 1.15rem; border-bottom: 1px solid rgba(16,24,18,.08); transition: background .14s ease; }
.search-list-item:last-child { border-bottom: 0; }
.search-list-item:hover, .search-list-item:focus { background: color-mix(in srgb, var(--grace-gold) 7%, #fff); }
.search-list-thumb, .search-list-thumb-placeholder, .search-list-icon { width: 92px; height: 68px; border-radius: 14px; flex: 0 0 auto; object-fit: cover; }
.search-list-thumb-placeholder, .search-list-icon { align-items: center; justify-content: center; background: color-mix(in srgb, var(--grace-gold) 11%, var(--grace-cloud)); }
@media (max-width: 991.98px) { .search-hero { padding: 3.5rem 0 3rem; } .search-shell { flex-direction: column; } .search-shell-button { width: 100%; } }
@media (max-width: 767.98px) { .search-toolbar { align-items: start; flex-direction: column; } .search-list-item { padding: 1rem; } }

/* ── About / CMS / News list-group patterns ───────────────────────────── */
.list-group-item.active { background-color: var(--grace-red); border-color: var(--grace-red); color: #fff; }
.list-group-item:not(.active):hover { background-color: var(--grace-cloud); }
.recent-news-list .list-group-item,
.cms-sidebar-list .list-group-item,
.new-here-sidebar-list .list-group-item { color: inherit; text-decoration: none; }
.recent-news-list .list-group-item:hover,
.cms-sidebar-list .list-group-item:hover,
.new-here-sidebar-list .list-group-item:hover { background: inherit; }

/* ── Give / Donate ────────────────────────────────────────────────────── */
.give-card { transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.give-card:hover { border-color: rgba(157,47,63,.35) !important; box-shadow: 0 .45rem 1.2rem rgba(20,33,61,.06); transform: translateY(-1px); }
.donate-body p:last-child { margin-bottom: 0; }
.donation-group-item { display: block; padding: 1rem 1rem 1.05rem; border: 1px solid var(--bs-border-color); border-radius: .75rem; background: #fff; text-decoration: none; color: inherit; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.donation-group-item:hover { color: inherit; border-color: rgba(157,47,63,.35); box-shadow: 0 .45rem 1.2rem rgba(20,33,61,.06); transform: translateY(-1px); }

/* ── Donate group page ────────────────────────────────────────────────── */
.donate-group-image { display: block; aspect-ratio: 16/9; object-fit: cover; }
.donate-group-gallery-image { max-height: 24rem; object-fit: cover; }
.donate-group-donation-details { margin-top: .75rem; border-top: 1px solid rgba(20,33,61,.1); }
.donate-group-contact-section { border-top: 2px solid rgba(157,47,63,.14); }
.donate-group-contact-inner { padding: 1.5rem 0 0; max-width: 42rem; }
.donate-group-copy p:last-child { margin-bottom: 0; }

/* ── Ministry show ────────────────────────────────────────────────────── */
.ministry-contact-icon { flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--grace-red) 12%, var(--grace-cloud)); color: var(--grace-red); }
.ministry-contact-icon svg { width: 1rem; height: 1rem; fill: currentColor; }
.text-truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ── Ministries list image ────────────────────────────────────────────── */
.u-inline-f7eabd6f88 { aspect-ratio: 16/9; object-fit: cover; }

/* ── Ministry Areas child list thumbnail ─────────────────────────────── */
.u-inline-ministry-thumb { width: 72px; height: 72px; object-fit: cover; }

/* ── Homepage section background (Admin > Settings > Homepage Layout) ──── */
.home-section-bg { position: relative; }
.home-section-bg-layer {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.home-section-bg-content { position: relative; z-index: 1; }
/* The section partial's own background (bg-* utility, .section-band, or an inline
   background-image) would otherwise paint over the configured color/image below it. */
.home-section-bg-content > * {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
}


/* Grace Episcopal — Default Theme
   Playfair Display headings · Lato body · warm episcopal palette
   CSS custom properties are injected by layouts/app.blade.php shim. */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Lato:ital,wght@0,300;0,400;0,700;1,400&display=swap');

/* ── Base ─────────────────────────────────────────────────────────────── */
body {
  color: var(--grace-ink);
  background: var(--grace-bg);
  font-family: 'Lato', var(--grace-body-font), system-ui, sans-serif;
  font-size: var(--grace-base-font-size);
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6, .navbar-brand {
  font-family: 'Playfair Display', var(--grace-heading-font), Georgia, serif;
  letter-spacing: -.015em;
  line-height: 1.2;
}
h1 { font-size: calc(2.5rem * var(--grace-heading-scale)); }
h2 { font-size: calc(1.85rem * var(--grace-heading-scale)); }
h3 { font-size: calc(1.3rem * var(--grace-heading-scale)); }
p { margin-bottom: 1rem; }
a { color: var(--grace-red); }

/* Homepage Sermons/Parish News: heading font exception, see component-overrides.md */
.home-sermons-news h2, .home-sermons-news h3 {
  font-family: 'Lato', var(--grace-body-font), system-ui, sans-serif;
}
.home-sermons-news .home-card-title {
  font-family: 'Playfair Display', var(--grace-heading-font), Georgia, serif;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--grace-ink);
}

/* ── Utility Bar ──────────────────────────────────────────────────────── */
.utility-bar {
  background: linear-gradient(to right, #0e1a2e, #1a2b40);
  color: rgba(255,255,255,.72);
  font-size: 1.05rem;
  border-bottom: 1px solid rgba(255,255,255,.05);
  letter-spacing: .01em;
}
[data-bs-theme="dark"] .utility-bar { background: #07101a; }

.utility-link {
  display: inline-flex; align-items: center; gap: .3rem;
  color: rgba(255,255,255,.72); text-decoration: none;
  padding: .42rem .2rem; transition: color .15s;
}
.utility-link:hover, .utility-link:focus { color: #fff; text-decoration: none; }

.utility-icon-link {
  width: 1.85rem; height: 1.85rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.28); border-radius: 50%;
  color: rgba(255,255,255,.72); text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.utility-icon-link:hover, .utility-icon-link:focus {
  background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.5); color: #fff;
}
.utility-icon-link svg, .utility-link svg { width: 1rem; height: 1rem; fill: currentColor; }

/* ── Site Header / Nav ────────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 1030;
  background: var(--grace-nav-bg);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(20,33,61,.09);
  box-shadow: 0 2px 20px rgba(20,33,61,.07);
  transition: box-shadow .2s;
}
[data-bs-theme="dark"] .site-header {
  background: rgba(14,22,36,.96);
  border-bottom-color: rgba(255,255,255,.07);
}

.navbar { background: transparent !important; }
.navbar-brand { line-height: 1.1; }
.brand-mark {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  background: var(--grace-red); color: #fff;
  border-radius: 8px;
  font-family: 'Playfair Display', serif;
  font-size: 1.2rem; font-weight: 700; letter-spacing: -.02em;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--grace-red) 38%, transparent);
}
.brand-logo { max-height: 60px; width: auto; }
.brand-subtitle {
  font-family: 'Lato', sans-serif; font-weight: 400;
  font-size: .7rem; letter-spacing: .1em; text-transform: uppercase;
  color: color-mix(in srgb, var(--grace-ink) 52%, transparent);
}
.navbar-brand > span > span:first-child {
  font-family: 'Playfair Display', serif; font-weight: 600;
  font-size: 1.15rem; letter-spacing: -.01em;
}

.navbar .nav-link {
  font-family: 'Lato', sans-serif; font-size: 1.05rem; font-weight: 500;
  letter-spacing: .03em;
  color: color-mix(in srgb, var(--grace-ink) 80%, transparent);
  padding: .58rem .78rem; border-radius: 4px;
  transition: color .15s, background .15s;
}
.navbar .nav-link:hover, .navbar .nav-link:focus {
  color: var(--grace-ink);
  background: color-mix(in srgb, var(--grace-gold) 18%, transparent);
}
.navbar .nav-link.active {
  color: var(--grace-red);
  background: color-mix(in srgb, var(--grace-red) 8%, transparent);
}
.navbar .btn-sm { padding: .45rem .9rem; font-family: 'Lato', sans-serif; font-weight: 700; letter-spacing: .04em; }
.nav-cta { box-shadow: 0 6px 18px color-mix(in srgb, var(--grace-red) 25%, transparent); }

/* ── Dropdowns ────────────────────────────────────────────────────────── */
.dropdown-menu {
  border: none; border-radius: 8px;
  box-shadow: 0 12px 40px rgba(20,33,61,.13), 0 2px 8px rgba(20,33,61,.06);
  padding: .5rem; min-width: 12rem; margin-top: .4rem;
  animation: fadeDropdown .15s ease;
}
@keyframes fadeDropdown {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.dropdown-item {
  border-radius: 4px; padding: .5rem .8rem;
  font-family: 'Lato', sans-serif; font-size: .99rem; font-weight: 500;
  color: color-mix(in srgb, var(--grace-ink) 88%, transparent);
  transition: background .12s, color .12s;
}
.dropdown-item:hover, .dropdown-item:focus {
  background: color-mix(in srgb, var(--grace-gold) 16%, transparent);
  color: var(--grace-ink);
}
.dropdown-item.active, .dropdown-item:active { background: var(--grace-red); color: #fff; }
.dropdown-divider { border-color: rgba(20,33,61,.08); }

/* ── Buttons ──────────────────────────────────────────────────────────── */
.btn-primary {
  --bs-btn-bg: var(--grace-red); --bs-btn-border-color: var(--grace-red);
  --bs-btn-hover-bg: color-mix(in srgb, var(--grace-red) 84%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--grace-red) 84%, #000);
  --bs-btn-active-bg: color-mix(in srgb, var(--grace-red) 72%, #000);
  border-radius: 4px; font-family: 'Lato', sans-serif; font-weight: 700; letter-spacing: .04em;
}
.btn-outline-primary {
  --bs-btn-color: var(--grace-red); --bs-btn-border-color: var(--grace-red);
  --bs-btn-hover-bg: var(--grace-red); --bs-btn-hover-color: #fff;
  --bs-btn-hover-border-color: var(--grace-red);
  border-radius: 4px; font-family: 'Lato', sans-serif; font-weight: 700; letter-spacing: .04em;
}
.btn-outline-light { border-radius: 4px; font-family: 'Lato', sans-serif; font-weight: 700; letter-spacing: .04em; }
.text-accent { color: var(--grace-red); }

/* ── Hero / Carousel ──────────────────────────────────────────────────── */
.hero-slide {
  min-height: 82vh; position: relative; color: #fff;
  display: flex; align-items: center; overflow: hidden;
  background: #091828;
}
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(
    108deg,
    rgba(10,22,48,.93) 0%,
    rgba(10,22,48,.72) 45%,
    rgba(10,22,48,.35) 100%
  );
}
.hero-overlay::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.38) 0%, transparent 52%);
}
.hero-content { position: relative; z-index: 1; }
.hero-content h1 {
  font-family: 'Playfair Display', serif; font-weight: 700;
  font-size: clamp(2.6rem, 6.5vw, 5.5rem);
  letter-spacing: -.025em; line-height: 1.08;
  text-shadow: 0 2px 18px rgba(0,0,0,.22);
}
.hero-kicker {
  font-family: 'Lato', sans-serif; font-size: .72rem; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase;
  color: var(--grace-gold); display: block; margin-bottom: .9rem;
}
.hero-lead { font-size: 1.1rem; line-height: 1.66; opacity: .91; font-weight: 300; }

.hero-service-card {
  position: relative; z-index: 1;
  background: rgba(255,255,255,.97); color: #14213d;
  border-radius: 4px; padding: 1.5rem;
  box-shadow: 0 24px 60px rgba(0,0,0,.25);
  border-top: 4px solid var(--grace-gold);
}
.hero-service-card .service-label {
  font-family: 'Lato', sans-serif; font-size: 1.0rem; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--grace-red); margin-bottom: .5rem; display: block;
}
.hero-service-card .service-row {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 1rem; padding: .6rem 0; border-bottom: 1px solid rgba(20,33,61,.09);
}
.hero-service-card .service-row:last-child { border-bottom: 0; padding-bottom: 0; }
.hero-service-card .service-name { font-weight: 500; font-size: 1.0rem; font-family: 'Lato', sans-serif; }
.hero-service-card .service-time { font-size: 1.0rem; color: #5e6d82; font-family: 'Lato', sans-serif; }

.carousel-pause {
  position: absolute; right: 1.5rem; bottom: 1.5rem; z-index: 2;
  font-size: .75rem; font-family: 'Lato', sans-serif; font-weight: 700;
  letter-spacing: .06em; opacity: .72; border-radius: 4px;
}
.carousel-pause:hover { opacity: 1; }

/* ── Section Patterns ─────────────────────────────────────────────────── */
.section-band { background: var(--grace-cloud); }
.section-dark { background: #14213d; color: #e8f0e4; }
.section-dark h2, .section-dark h3 { color: #fff; }

.section-kicker {
  font-family: 'Lato', sans-serif; font-size: .7rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: var(--grace-red);
  display: block; margin-bottom: .35rem;
}
.section-rule {
  width: 36px; height: 3px; border-radius: 99px; margin-bottom: 1rem;
  background: linear-gradient(to right, var(--grace-red), color-mix(in srgb, var(--grace-red) 50%, var(--grace-gold)));
}
.home-section-divider {
  margin: 0; border: none; border-top: 1px solid rgba(20,33,61,.18);
  opacity: 1;
}

/* ── Cards ────────────────────────────────────────────────────────────── */
.card {
  border-radius: 8px; border: 1px solid rgba(20,33,61,.09);
  box-shadow: 0 4px 18px rgba(20,33,61,.07);
  transition: transform .18s ease, box-shadow .18s ease;
}
.card:hover { box-shadow: 0 10px 30px rgba(20,33,61,.12); }
.card-img-top { border-radius: 4px 4px 0 0; object-fit: cover; }
.hover-card { transition: transform .15s, box-shadow .15s; }
.hover-card:hover { box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12) !important; }
.hover-card-soft { transition: transform .12s, box-shadow .12s; }
.hover-card-soft:hover { box-shadow: 0 .4rem 1.2rem rgba(0,0,0,.09) !important; }

/* ── Event Date Badge ─────────────────────────────────────────────────── */
.event-date-badge {
  display: inline-flex; flex-direction: column; align-items: center;
  justify-content: center; width: 54px; height: 54px;
  background: var(--grace-red); color: #fff; border-radius: 4px;
  font-family: 'Lato', sans-serif; flex-shrink: 0;
}
.event-date-badge .badge-month { font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1; opacity: .85; }
.event-date-badge .badge-day { font-size: 1.4rem; font-weight: 700; line-height: 1; margin-top: .1rem; }

/* ── Verse Card ───────────────────────────────────────────────────────── */
.verse-card {
  background: linear-gradient(135deg, color-mix(in srgb, var(--grace-gold) 14%, var(--grace-cloud)) 0%, var(--grace-cloud) 100%);
  border: none; border-left: 4px solid var(--grace-gold);
  border-radius: 0 4px 4px 0; padding: 1.6rem; height: 100%;
}
.verse-text { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.08rem; line-height: 1.65; margin-bottom: .75rem; }
.verse-ref {
  font-family: 'Lato', sans-serif; font-size: .75rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--grace-red);
}

/* ── Feature Mini-Card ────────────────────────────────────────────────── */
.feature-mini {
  background: var(--grace-bg); border: 1px solid rgba(20,33,61,.09);
  border-radius: 8px; padding: 1.25rem; height: 100%;
  transition: border-color .15s, box-shadow .15s;
}
[data-bs-theme="dark"] .feature-mini { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
.feature-mini:hover {
  border-color: color-mix(in srgb, var(--grace-gold) 45%, transparent);
  box-shadow: 0 6px 20px rgba(20,33,61,.08);
}
.feature-mini-icon {
  width: 40px; height: 40px; border-radius: 4px; margin-bottom: .75rem;
  background: color-mix(in srgb, var(--grace-red) 10%, transparent);
  display: grid; place-items: center; color: var(--grace-red);
}
.feature-mini-icon svg { width: 1.15rem; height: 1.15rem; fill: currentColor; }
.feature-mini h5 { font-family: 'Playfair Display', serif; font-size: 1rem; margin-bottom: .4rem; }
.feature-mini p { font-size: .9rem; margin: 0; }

/* ── Sermon List Item ─────────────────────────────────────────────────── */
.sermon-item { display: flex; gap: 1rem; align-items: flex-start; }
.sermon-thumb {
  width: 3.5rem; height: 3.5rem; border-radius: 4px; flex-shrink: 0;
  background: color-mix(in srgb, var(--grace-gold) 18%, var(--grace-cloud));
  display: grid; place-items: center; color: var(--grace-red);
}
.sermon-thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.sermon-thumb svg { width: 1.3rem; height: 1.3rem; fill: currentColor; }

/* ── Rector snippet ───────────────────────────────────────────────────── */
.rector-card {
  border: none; border-left: 4px solid var(--grace-gold);
  border-radius: 0 4px 4px 0;
  background: color-mix(in srgb, var(--grace-gold) 10%, var(--grace-bg));
  padding: 1.4rem 1.6rem;
}
[data-bs-theme="dark"] .rector-card { background: color-mix(in srgb, var(--grace-gold) 8%, #14213d); }

/* ── Auth Pages ───────────────────────────────────────────────────────── */
.signin-shell { min-height: calc(100vh - 210px); background: var(--grace-cloud); }
.signin-hero {
  background: linear-gradient(140deg, #0e1b30 0%, color-mix(in srgb, var(--grace-red) 78%, #0e1b30) 100%);
  color: #fff; position: relative; overflow: hidden;
}
.signin-hero::before {
  content: ""; position: absolute; top: -70px; right: -60px;
  width: 360px; height: 360px; border-radius: 50%;
  background: rgba(255,255,255,.04); pointer-events: none;
}
.signin-hero::after {
  content: ""; position: absolute; bottom: -90px; left: -50px;
  width: 280px; height: 280px; border-radius: 50%;
  background: rgba(255,255,255,.03); pointer-events: none;
}
.signin-panel { position: relative; z-index: 1; }
.signin-card { border: 0; border-radius: 4px; box-shadow: 0 24px 60px rgba(20,33,61,.14); }
.signin-list { list-style: none; padding: 0; margin: 0; }
.signin-list li { display: flex; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.signin-list li:last-child { border-bottom: 0; }
.signin-check {
  width: 28px; height: 28px; display: grid; place-items: center;
  border-radius: 50%; background: var(--grace-gold); color: #2b1f08;
  flex: 0 0 auto; font-weight: 700; font-size: .85rem;
}

/* ── Footer ───────────────────────────────────────────────────────────── */
.footer-rpc {
  background: var(--grace-footer-bg);
  color: rgba(220,232,210,.72); border-top: none;
}
.footer-rpc::before {
  content: ""; display: block; height: 4px;
  background: linear-gradient(to right, var(--grace-red), var(--grace-gold), var(--grace-green));
}
.footer-rpc a { color: rgba(220,232,210,.7); text-decoration: none; transition: color .15s; }
.footer-rpc a:hover, .footer-rpc a:focus { color: #fff; }
.footer-rpc-main { border-bottom: 1px solid rgba(255,255,255,.07); }
.footer-heading {
  font-family: 'Lato', sans-serif; font-size: .76rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(255,255,255,.36); margin-bottom: 1rem;
}
.footer-contact-item { display: flex; gap: .75rem; align-items: flex-start; margin-bottom: .9rem; font-size: 1.01rem; }
.footer-contact-icon {
  width: 2rem; height: 2rem; border-radius: 4px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.08); color: var(--grace-gold);
}
.footer-contact-icon svg { width: .9rem; height: .9rem; fill: currentColor; }
.footer-rpc-logo { max-height: 80px; width: auto; margin-inline: auto; opacity: .88; }
.footer-rpc-nav li { margin-bottom: .5rem; }
.footer-rpc-nav a { font-size: 1.01rem; }
.footer-rpc-bottom { font-size: .92rem; color: rgba(220,232,210,.32); }
.footer-social-link {
  width: 2rem; height: 2rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.18); border-radius: 4px;
  color: rgba(255,255,255,.62); text-decoration: none;
  transition: background .15s, border-color .15s, color .15s;
}
.footer-social-link:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.35); color: #fff; }
.footer-social-link svg { width: .85rem; height: .85rem; fill: currentColor; }

/* ── Shared Page Header Banner ────────────────────────────────────────── */
.grace-page-header {
  background: linear-gradient(
    160deg,
    color-mix(in srgb, var(--grace-gold) 22%, var(--grace-cloud)) 0%,
    color-mix(in srgb, var(--grace-red) 6%, var(--grace-cloud)) 100%
  );
  border-bottom: 2px solid color-mix(in srgb, var(--grace-gold) 30%, transparent);
  padding: 3.5rem 0 3rem;
}
.grace-header-kicker {
  font-family: 'Lato', sans-serif; font-size: .72rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--grace-red); margin-bottom: .4rem;
}
.grace-page-header[style*="color:"] .grace-header-kicker,
.grace-page-header[style*="color:"] h1,
.grace-page-header[style*="color:"] .lead {
  color: inherit;
}

/* ── Page Title Box ───────────────────────────────────────────────────── */
.grace-page-title-box {
  background: linear-gradient(
    160deg,
    color-mix(in srgb, var(--grace-gold) 22%, var(--grace-cloud)) 0%,
    color-mix(in srgb, var(--grace-red) 6%, var(--grace-cloud)) 100%
  );
  border-left: 5px solid var(--grace-red);
  border-bottom: 1px solid color-mix(in srgb, var(--grace-gold) 28%, transparent);
  border-radius: 0 4px 4px 0; padding: 2rem 2.5rem;
}

/* ── Section & Card Heading Bands ─────────────────────────────────────── */
.grace-section-heading-band {
  background: color-mix(in srgb, var(--grace-gold) 14%, var(--grace-cloud));
  border-left: 4px solid var(--grace-red); border-radius: 0 4px 4px 0;
  padding: .5rem 1rem .5rem .875rem; margin-bottom: 1rem;
}
.grace-card-heading-band {
  background: color-mix(in srgb, var(--grace-gold) 14%, var(--grace-cloud));
  border-left: 4px solid var(--grace-red); border-radius: 0 4px 4px 0;
  padding: .375rem .875rem .375rem .75rem; margin-bottom: .875rem;
}

/* ── Ministry Slogan ──────────────────────────────────────────────────── */
.grace-ministry-slogan {
  font-family: 'Playfair Display', serif; font-style: italic; font-size: 1rem;
  color: color-mix(in srgb, var(--grace-red) 75%, var(--grace-ink));
}

/* ── Profile Photo ────────────────────────────────────────────────────── */
.profile-photo { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; }

/* ── Forms ────────────────────────────────────────────────────────────── */
.form-control, .form-select {
  border-radius: 4px; border-color: rgba(20,33,61,.18);
  font-family: 'Lato', sans-serif;
  transition: border-color .15s, box-shadow .15s;
}
.form-control:focus, .form-select:focus {
  border-color: var(--grace-red);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--grace-red) 15%, transparent);
}
.form-label { font-family: 'Lato', sans-serif; font-weight: 700; font-size: .88rem; }

/* ── FullCalendar ─────────────────────────────────────────────────────── */
.fc .fc-button-primary { background: var(--grace-red); border-color: var(--grace-red); border-radius: 4px; font-family: 'Lato', sans-serif; font-size: .8rem; }
.fc .fc-button-primary:hover, .fc .fc-button-primary:focus { background: color-mix(in srgb, var(--grace-red) 82%, #000); border-color: color-mix(in srgb, var(--grace-red) 82%, #000); }
.fc .fc-day-today { background: rgba(214,168,79,.18) !important; }
.fc .fc-daygrid-day-number { color: var(--grace-ink); text-decoration: none; font-weight: 700; font-family: 'Lato', sans-serif; }
.fc .fc-event { border-radius: 4px; border: 0; background: var(--fc-event-bg-color, var(--grace-green)); color: var(--fc-event-text-color, #fff) !important; padding: 2px 5px 2px 0; font-size: .78rem; }
.fc .fc-daygrid-event.fc-event-start { margin-left: 0; }
.fc .fc-event-main { padding-left: 0 !important; }
.fc .fc-daygrid-block-event .fc-event-title,
.fc .fc-daygrid-block-event .fc-event-time { padding-left: 0; }
.fc .fc-event .fc-event-main, .fc .fc-event .fc-event-title, .fc .fc-event .fc-event-time, .fc .fc-event a, .fc .fc-list-event td, .fc .fc-list-event a { color: var(--fc-event-text-color, #fff) !important; }
.fc .fc-list-event td { background: var(--fc-event-bg-color, transparent); }
.fc .fc-col-header-cell-cushion { font-family: 'Lato', sans-serif; font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--grace-ink); text-decoration: none; }

/* ── Section Kicker Variant ───────────────────────────────────────────── */
.section-kicker-sm {
  font-family: 'Lato', sans-serif; font-size: .65rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--grace-red);
  display: block; margin-bottom: .35rem;
}

/* ── Card helpers (event / sermon / post) ─────────────────────────────── */
.card-event-time { font-family: 'Lato', sans-serif; font-size: .75rem; letter-spacing: .06em; }
.icon-inline-sm { width: .75rem; height: .75rem; fill: currentColor; vertical-align: -.1em; }

/* ── Homepage Flyers Carousel ─────────────────────────────────────────── */
.flyer-carousel { max-width: 640px; margin: 0 auto; }
.flyer-slide-link {
  display: block; position: relative; border-radius: 8px; overflow: hidden;
  box-shadow: 0 4px 18px rgba(20,33,61,.07); background: #fff;
  text-decoration: none; color: inherit;
}
.flyer-slide-image { width: 100%; height: 420px; object-fit: contain; background: var(--grace-cloud); display: block; }
.flyer-slide-placeholder {
  width: 100%; height: 420px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: .5rem;
  background: var(--grace-cloud); color: var(--grace-red);
}
.flyer-slide-placeholder svg { width: 64px; height: 64px; fill: currentColor; }
.flyer-slide-placeholder span { font-family: 'Lato', sans-serif; font-weight: 700; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }
.flyer-slide-caption { padding: .9rem 1.1rem; border-top: 1px solid rgba(20,33,61,.09); }
.flyer-slide-caption .small { color: #5e6d82; }
.flyer-carousel .carousel-control-prev-icon, .flyer-carousel .carousel-control-next-icon { filter: invert(1) grayscale(1); }
.flyer-carousel .carousel-indicators [data-bs-target] { background-color: var(--grace-red); }
.flyer-list-thumb { width: 100%; height: 220px; object-fit: contain; background: var(--grace-cloud); }
.flyer-list-thumb-pdf {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem;
  color: var(--grace-red);
}
.flyer-list-thumb-pdf svg { width: 48px; height: 48px; fill: currentColor; }
.flyer-list-thumb-pdf span { font-family: 'Lato', sans-serif; font-weight: 700; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }

/* ── Footer wordmark (text fallback when no logo image) ──────────────── */
.footer-wordmark {
  font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700;
  color: #fff; margin-bottom: .75rem; letter-spacing: -.02em; display: block;
}
.footer-mission { font-size: 1.04rem; line-height: 1.7; }
.footer-service-day { font-size: 1.01rem; font-weight: 600; color: rgba(255,255,255,.85); }
.footer-service-text { font-size: .94rem; }
.footer-service-empty { font-size: 1.01rem; }
.btn-footer-outline {
  border-color: rgba(255,255,255,.3) !important;
  color: rgba(255,255,255,.75) !important;
  font-size: .9rem !important;
}
.btn-footer-outline:hover { border-color: rgba(255,255,255,.6) !important; color: #fff !important; }
.footer-bottom-link { color: rgba(220,232,210,.4) !important; }
.footer-bottom-link:hover { color: rgba(220,232,210,.75) !important; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  .site-header { position: static; }
  .utility-bar .container { row-gap: .1rem; }
  .navbar .nav-link { border-radius: 4px; }
  .navbar-nav { padding-top: .75rem; align-items: stretch !important; }
  .navbar .btn-sm { width: 100%; margin-top: .25rem; }
  .footer-rpc-main { text-align: center; }
  .footer-contact-item { justify-content: center; }
  .hero-content h1 { font-size: clamp(2rem, 9vw, 3.5rem); }
  .hero-service-card { margin-top: 1.5rem; }
}
@media (max-width: 575.98px) {
  .grace-page-title-box { padding: 1.5rem; }
  .hero-slide { min-height: 92vw; }
}

/* ── Page Body Prose ─────────────────────────────────────────────────── */
.grace-body-copy {
  color: color-mix(in srgb, var(--grace-ink) 92%, #000);
  font-family: 'Lato', var(--grace-body-font), system-ui, sans-serif;
  font-size: 1.275rem !important;
  font-weight: 300;
  line-height: 1.50 !important;
}
.grace-body-copy p { margin-bottom: 1.25rem; }
