/*
 * EIGC design system.
 * Brand colours are the ones the live site has always used (purple #6a11cb -> blue #2575fc,
 * orange #ff5722 -> #ff8a00 accent, slate #2c3e50 footer, coral giving band). Do not swap them.
 * All classes are prefixed eg- so they never collide with the inline styles older pages carry.
 * The homepage hero keeps its original CSS (index.php) and is intentionally not styled here.
 */

:root {
    /* Brand palette (unchanged from the live site) */
    --eg-purple: #6a11cb;
    --eg-blue: #2575fc;
    --eg-orange: #ff5722;
    --eg-amber: #ff8a00;
    --eg-coral: #ff7e5f;
    --eg-peach: #feb47b;
    --eg-slate: #2c3e50;
    --eg-slate-deep: #1a242f;
    --eg-mist: #f8f9fa;
    --eg-sky-1: #f5f7fa;
    --eg-sky-2: #e4edf5;
    --eg-ink: #333333;
    --eg-muted: #5f6672;
    --eg-line: rgba(44, 62, 80, 0.1);

    --eg-grad: linear-gradient(135deg, var(--eg-purple), var(--eg-blue));
    --eg-grad-x: linear-gradient(to right, var(--eg-purple), var(--eg-blue));
    --eg-grad-accent: linear-gradient(135deg, var(--eg-orange), var(--eg-amber));
    --eg-grad-give: linear-gradient(135deg, var(--eg-coral), var(--eg-peach));
    --eg-grad-page: linear-gradient(135deg, var(--eg-sky-1) 0%, var(--eg-sky-2) 100%);
    --eg-tint: linear-gradient(135deg, rgba(106, 17, 203, 0.06), rgba(37, 117, 252, 0.06));

    /* Type */
    --eg-font: 'Plus Jakarta Sans', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --eg-serif: 'Fraunces', Georgia, 'Times New Roman', serif;

    /* Shape and depth */
    --eg-radius-sm: 10px;
    --eg-radius: 18px;
    --eg-radius-lg: 28px;
    --eg-shadow-sm: 0 4px 14px rgba(44, 62, 80, 0.06);
    --eg-shadow: 0 14px 40px rgba(44, 62, 80, 0.10);
    --eg-shadow-lg: 0 30px 70px rgba(44, 62, 80, 0.16);
    --eg-glow: 0 10px 30px rgba(106, 17, 203, 0.28);
    --eg-glow-accent: 0 10px 28px rgba(255, 87, 34, 0.30);

    --eg-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --eg-gutter: clamp(16px, 4vw, 32px);
    --eg-header-h: 84px;
}

/* ---------- Base ---------- */

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--eg-header-h) + 16px); }

body.eg-site {
    margin: 0;
    font-family: var(--eg-font);
    font-size: 1rem;
    line-height: 1.65;
    color: var(--eg-ink);
    background: var(--eg-grad-page);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}

.eg-site img { max-width: 100%; }

/* Side-entering reveal animations must not widen the page on phones. clip (not hidden)
   keeps position: sticky working inside. */
.eg-site > main,
.eg-footer { overflow-x: clip; }

.eg-skip {
    position: absolute;
    left: 16px;
    top: -60px;
    z-index: 2000;
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--eg-purple);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: top 0.2s;
}
.eg-skip:focus { top: 12px; color: #fff; }

.eg-site :focus-visible {
    outline: 3px solid rgba(37, 117, 252, 0.55);
    outline-offset: 3px;
}

.eg-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--eg-gutter);
    box-sizing: border-box;
}

.eg-section { padding: clamp(64px, 9vw, 112px) 0; position: relative; }
.eg-section--tight { padding: clamp(48px, 6vw, 72px) 0; }

/* Section heading */
.eg-head { max-width: 720px; margin: 0 auto clamp(36px, 5vw, 56px); text-align: center; }
.eg-head--left { margin-left: 0; text-align: left; }

.eg-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--eg-purple);
}
.eg-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    border-radius: 2px;
    background: var(--eg-grad-x);
}
.eg-head:not(.eg-head--left) .eg-eyebrow::after {
    content: '';
    width: 28px;
    height: 2px;
    border-radius: 2px;
    background: var(--eg-grad-x);
}
.eg-eyebrow--light { color: rgba(255, 255, 255, 0.85); }
.eg-eyebrow--light::before,
.eg-eyebrow--light::after { background: rgba(255, 255, 255, 0.6) !important; }

.eg-title {
    margin: 0 0 16px;
    font-family: var(--eg-font);
    font-size: clamp(2rem, 4.2vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: var(--eg-slate);
}
.eg-title em {
    font-family: var(--eg-serif);
    font-style: italic;
    font-weight: 600;
    background: var(--eg-grad-x);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    padding-right: 0.06em;
}
.eg-title--light { color: #fff; }
.eg-title--light em { background: none; -webkit-text-fill-color: #fff; color: #fff; }

.eg-lead { margin: 0; font-size: 1.1rem; color: var(--eg-muted); }
.eg-lead--light { color: rgba(255, 255, 255, 0.85); }

/* ---------- Buttons ---------- */

.eg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border: 0;
    border-radius: 999px;
    font-family: var(--eg-font);
    font-size: 0.98rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.35s var(--eg-ease), box-shadow 0.35s var(--eg-ease), background-color 0.25s, color 0.25s;
    white-space: nowrap;
}
.eg-btn i { transition: transform 0.35s var(--eg-ease); }
.eg-btn:hover { transform: translateY(-3px); }
.eg-btn:hover i.fa-arrow-right { transform: translateX(4px); }

.eg-btn--primary { background: var(--eg-grad-x); color: #fff; box-shadow: var(--eg-glow); }
.eg-btn--primary:hover { color: #fff; box-shadow: 0 16px 36px rgba(106, 17, 203, 0.38); }

.eg-btn--accent { background: var(--eg-grad-accent); color: #fff; box-shadow: var(--eg-glow-accent); }
.eg-btn--accent:hover { color: #fff; box-shadow: 0 16px 34px rgba(255, 87, 34, 0.4); }

.eg-btn--ghost { background: transparent; color: var(--eg-purple); box-shadow: inset 0 0 0 2px rgba(106, 17, 203, 0.25); }
.eg-btn--ghost:hover { color: var(--eg-purple); background: rgba(106, 17, 203, 0.06); box-shadow: inset 0 0 0 2px var(--eg-purple); }

.eg-btn--light { background: #fff; color: var(--eg-purple); box-shadow: 0 10px 26px rgba(0, 0, 0, 0.15); }
.eg-btn--light:hover { color: var(--eg-purple); box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22); }

.eg-btn--outline-light { background: rgba(255, 255, 255, 0.08); color: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.55); }
.eg-btn--outline-light:hover { color: #fff; background: rgba(255, 255, 255, 0.16); box-shadow: inset 0 0 0 2px #fff; }

.eg-btn--sm { padding: 10px 20px; font-size: 0.9rem; }

.eg-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: var(--eg-purple);
    text-decoration: none;
}
.eg-link i { transition: transform 0.35s var(--eg-ease); }
.eg-link:hover { color: var(--eg-blue); }
.eg-link:hover i { transform: translateX(4px); }

/* ---------- Review marker (local only, see includes/site.php) ---------- */

.eg-pending {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0;
    padding: 3px 10px;
    border-radius: 999px;
    border: 1px dashed #d97706;
    background: #fff7ed;
    color: #9a3412;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
    vertical-align: middle;
}

/* ---------- Reveal on scroll ---------- */

.eg-js [data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.9s var(--eg-ease), transform 0.9s var(--eg-ease);
    transition-delay: var(--eg-delay, 0s);
}
.eg-js [data-reveal="left"] { transform: translateX(-36px); }
.eg-js [data-reveal="right"] { transform: translateX(36px); }
.eg-js [data-reveal="zoom"] { transform: scale(0.94); }
.eg-js [data-reveal].is-visible { opacity: 1; transform: none; }

/* =========================================================
   HEADER
   ========================================================= */

.eg-utility {
    background: var(--eg-grad-x);
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.85rem;
}
.eg-utility .eg-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 40px;
}
.eg-utility__info { display: flex; align-items: center; gap: 24px; margin: 0; padding: 0; list-style: none; }
.eg-utility__info li { display: flex; align-items: center; gap: 8px; margin: 0; }
.eg-utility a { color: #fff; text-decoration: none; }
.eg-utility a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.eg-utility__social { display: flex; align-items: center; gap: 6px; }
.eg-utility__social a {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    transition: background 0.25s;
}
.eg-utility__social a:hover { background: rgba(255, 255, 255, 0.18); text-decoration: none; }

.eg-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid transparent;
    transition: box-shadow 0.35s var(--eg-ease), background 0.35s, border-color 0.35s;
}
@supports (backdrop-filter: blur(12px)) {
    .eg-header { background: rgba(255, 255, 255, 0.86); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); }
}
.eg-header.is-scrolled { box-shadow: 0 10px 30px rgba(44, 62, 80, 0.08); border-color: var(--eg-line); }

.eg-header__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    height: var(--eg-header-h);
    transition: height 0.35s var(--eg-ease);
}
.eg-header.is-scrolled .eg-header__bar { height: 70px; }

.eg-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: 0; }
.eg-brand__logo {
    flex: none;
    width: 56px;
    height: 56px;
    padding: 3px;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
    box-shadow: 0 0 0 2px var(--eg-purple), 0 6px 18px rgba(106, 17, 203, 0.22);
    transition: width 0.35s var(--eg-ease), height 0.35s var(--eg-ease);
}
.eg-header.is-scrolled .eg-brand__logo { width: 46px; height: 46px; }
.eg-brand__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.1; }
.eg-brand__name {
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    background: var(--eg-grad-x);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.eg-brand__tag {
    margin-top: 3px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--eg-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eg-nav { display: flex; align-items: center; gap: 4px; }
.eg-nav__list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.eg-nav__item { position: relative; margin: 0; }

.eg-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 13px;
    border: 0;
    background: none;
    font-family: var(--eg-font);
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--eg-slate);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    position: relative;
    border-radius: 10px;
    transition: color 0.25s;
}
.eg-nav__link::after {
    content: '';
    position: absolute;
    left: 13px;
    right: 13px;
    bottom: 4px;
    height: 2px;
    border-radius: 2px;
    background: var(--eg-grad-x);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s var(--eg-ease);
}
.eg-nav__link:hover,
.eg-nav__item.is-open > .eg-nav__link { color: var(--eg-purple); }
.eg-nav__link:hover::after,
.eg-nav__item.is-open > .eg-nav__link::after,
.eg-nav__link[aria-current="page"]::after,
.eg-nav__item.is-current > .eg-nav__link::after { transform: scaleX(1); }
.eg-nav__link[aria-current="page"],
.eg-nav__item.is-current > .eg-nav__link { color: var(--eg-purple); }
.eg-nav__link .fa-chevron-down { font-size: 0.65rem; transition: transform 0.3s var(--eg-ease); }
.eg-nav__item.is-open > .eg-nav__link .fa-chevron-down { transform: rotate(180deg); }

.eg-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    min-width: 250px;
    margin: 0;
    padding: 10px;
    list-style: none;
    background: #fff;
    border-radius: var(--eg-radius);
    box-shadow: var(--eg-shadow-lg);
    border: 1px solid var(--eg-line);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 8px);
    transition: opacity 0.25s, transform 0.35s var(--eg-ease), visibility 0.25s;
}
.eg-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.eg-nav__item.is-open > .eg-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

.eg-menu a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--eg-slate);
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.eg-menu a i {
    display: grid;
    place-items: center;
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--eg-tint);
    color: var(--eg-purple);
    font-size: 0.9rem;
    transition: background 0.25s, color 0.25s;
}
.eg-menu a:hover,
.eg-menu a[aria-current="page"] { background: rgba(106, 17, 203, 0.05); color: var(--eg-purple); }
.eg-menu a:hover i,
.eg-menu a[aria-current="page"] i { background: var(--eg-grad); color: #fff; }

.eg-menu--mega {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 8px 18px;
    width: 700px;
    padding: 18px;
}
.eg-menu--mega a { white-space: nowrap; }
.eg-menu__group { min-width: 0; }
.eg-menu__label {
    margin: 4px 12px 8px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--eg-muted);
}
.eg-menu__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.eg-menu__group--alt { padding-left: 18px; border-left: 1px solid var(--eg-line); }

.eg-header__actions { display: flex; align-items: center; gap: 10px; flex: none; }

.eg-burger {
    display: none;
    position: relative;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 14px;
    background: var(--eg-tint);
    cursor: pointer;
}
.eg-burger span {
    position: absolute;
    left: 13px;
    right: 13px;
    height: 2px;
    border-radius: 2px;
    background: var(--eg-purple);
    transition: transform 0.35s var(--eg-ease), opacity 0.2s, top 0.35s var(--eg-ease);
}
.eg-burger span:nth-child(1) { top: 16px; }
.eg-burger span:nth-child(2) { top: 22px; }
.eg-burger span:nth-child(3) { top: 28px; }

/* Mobile drawer */
.eg-drawer { position: fixed; inset: 0; z-index: 1500; visibility: hidden; }
.eg-drawer.is-open { visibility: visible; }
.eg-drawer__scrim {
    position: absolute;
    inset: 0;
    background: rgba(26, 36, 47, 0.55);
    opacity: 0;
    transition: opacity 0.35s;
}
.eg-drawer.is-open .eg-drawer__scrim { opacity: 1; }
.eg-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    width: min(380px, 88vw);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
    transform: translateX(100%);
    transition: transform 0.45s var(--eg-ease);
}
.eg-drawer.is-open .eg-drawer__panel { transform: none; }
.eg-drawer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px;
    background: var(--eg-grad);
    color: #fff;
}
.eg-drawer__top .eg-brand__name { background: none; -webkit-text-fill-color: #fff; color: #fff; font-size: 1.35rem; }
.eg-drawer__top .eg-brand__tag { color: rgba(255, 255, 255, 0.8); }
.eg-drawer__top .eg-brand__logo { width: 44px; height: 44px; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.7); }
.eg-drawer__close {
    display: grid;
    place-items: center;
    flex: none;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    font-size: 1.1rem;
    cursor: pointer;
}
.eg-drawer__body { flex: 1; overflow-y: auto; padding: 12px 14px 24px; overscroll-behavior: contain; }
.eg-drawer__list { margin: 0; padding: 0; list-style: none; }
.eg-drawer__list > li { border-bottom: 1px solid var(--eg-line); }
.eg-drawer__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 8px;
    border: 0;
    background: none;
    font-family: var(--eg-font);
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--eg-slate);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.eg-drawer__link[aria-current="page"] { color: var(--eg-purple); }
.eg-drawer__link .fa-chevron-down { font-size: 0.75rem; color: var(--eg-muted); transition: transform 0.3s var(--eg-ease); }
.eg-drawer__link[aria-expanded="true"] .fa-chevron-down { transform: rotate(180deg); color: var(--eg-purple); }
.eg-drawer__sub { display: none; margin: 0 0 12px; padding: 0; list-style: none; }
.eg-drawer__sub.is-open { display: block; }
.eg-drawer__sub a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 8px;
    border-radius: 10px;
    color: var(--eg-ink);
    font-weight: 600;
    text-decoration: none;
}
.eg-drawer__sub a i { width: 20px; text-align: center; color: var(--eg-purple); }
.eg-drawer__sub a[aria-current="page"] { background: rgba(106, 17, 203, 0.06); color: var(--eg-purple); }
.eg-drawer__sublabel {
    margin: 10px 8px 4px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--eg-muted);
}
.eg-drawer__foot { padding: 18px 20px 24px; border-top: 1px solid var(--eg-line); background: var(--eg-mist); }
.eg-drawer__foot .eg-btn { width: 100%; }
.eg-drawer__faq {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
    padding: 12px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    background: #fff;
    color: var(--eg-purple);
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none;
}
.eg-drawer__faq:hover { border-color: var(--eg-purple); color: var(--eg-purple); }
.eg-drawer__contact { display: grid; gap: 8px; margin-top: 16px; font-size: 0.92rem; }
.eg-drawer__contact a { color: var(--eg-slate); font-weight: 600; text-decoration: none; }
.eg-drawer__contact i { width: 20px; color: var(--eg-purple); }

body.eg-lock { overflow: hidden; }

/* Full church name wraps to two lines where the desktop nav needs the room. */
@media (max-width: 1500px) {
    .eg-header .eg-brand__tag { max-width: 190px; white-space: normal; line-height: 1.35; font-size: 0.62rem; }
}
@media (max-width: 1180px) {
    .eg-nav__link { padding: 10px 9px; font-size: 0.88rem; }
    .eg-nav__link::after { left: 9px; right: 9px; }
}
@media (max-width: 1080px) {
    .eg-nav, .eg-utility { display: none; }
    .eg-burger { display: block; }
    :root { --eg-header-h: 72px; }
    .eg-header.is-scrolled .eg-header__bar { height: 64px; }
    .eg-header__actions .eg-btn--accent { padding: 10px 18px; font-size: 0.88rem; }
}
@media (max-width: 480px) {
    .eg-brand__logo { width: 46px; height: 46px; }
    .eg-brand__name { font-size: 1.3rem; }
    .eg-header .eg-brand__tag { font-size: 0.56rem; letter-spacing: 0.08em; max-width: 160px; }
    .eg-header__actions .eg-btn--accent span { display: none; }
    .eg-header__actions .eg-btn--accent { width: 44px; height: 44px; padding: 0; }
}

/* =========================================================
   HOMEPAGE (below the preserved hero)
   ========================================================= */

/* Services: floating panel that overlaps the hero's bottom margin */
.eg-services { position: relative; z-index: 2; margin-top: -1.5rem; padding-bottom: clamp(56px, 8vw, 96px); }
.eg-services__panel {
    padding: clamp(28px, 4vw, 48px);
    background: #fff;
    border-radius: var(--eg-radius-lg);
    box-shadow: var(--eg-shadow);
}
.eg-services__top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 32px;
}
.eg-services__top .eg-head { margin-bottom: 0; }
.eg-services__top .eg-title { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.eg-services__cta { display: flex; gap: 12px; flex-wrap: wrap; }
.eg-services__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }

.eg-service {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 26px 22px 24px;
    border-radius: var(--eg-radius);
    background: var(--eg-mist);
    border: 1px solid var(--eg-line);
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease), color 0.3s;
}
.eg-service::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--eg-grad);
    opacity: 0;
    transition: opacity 0.45s var(--eg-ease);
}
.eg-service:hover { transform: translateY(-6px); box-shadow: var(--eg-glow); color: #fff; }
.eg-service:hover::before { opacity: 1; }
.eg-service__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
    border-radius: 14px;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.1rem;
    transition: background 0.3s;
}
.eg-service:hover .eg-service__icon { background: rgba(255, 255, 255, 0.2); }
.eg-service__day {
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--eg-orange);
    transition: color 0.3s;
}
.eg-service:hover .eg-service__day { color: #ffd2bf; }
.eg-service__name { margin: 6px 0 10px; font-size: 1.15rem; font-weight: 800; line-height: 1.3; color: var(--eg-slate); transition: color 0.3s; }
.eg-service:hover .eg-service__name { color: #fff; }
.eg-service__times { display: grid; gap: 4px; margin: 0 0 12px; padding: 0; list-style: none; }
.eg-service__times li { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--eg-purple); transition: color 0.3s; }
.eg-service__times i { font-size: 0.8rem; }
.eg-service:hover .eg-service__times li { color: #fff; }
.eg-service__text { margin: 0; font-size: 0.92rem; color: var(--eg-muted); transition: color 0.3s; }
.eg-service:hover .eg-service__text { color: rgba(255, 255, 255, 0.88); }

/* About / Apostle */
.eg-about__grid { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.eg-portrait { position: relative; max-width: 380px; margin: 0 auto; }
.eg-portrait__ring {
    position: relative;
    aspect-ratio: 1;
    padding: 10px;
    border-radius: 50%;
    background: conic-gradient(from 210deg, var(--eg-purple), var(--eg-blue), var(--eg-orange), var(--eg-purple));
    box-shadow: var(--eg-shadow-lg);
}
.eg-portrait__ring img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 6px solid #fff;
    object-fit: cover;
    object-position: 50% 12%; /* portrait photos: keep the face in the circle */
    box-sizing: border-box;
}
.eg-portrait__card {
    position: relative;
    width: fit-content;
    min-width: 250px;
    max-width: 90%;
    margin: -34px auto 0;
    padding: 14px 24px;
    border-radius: var(--eg-radius);
    background: #fff;
    box-shadow: var(--eg-shadow);
    text-align: center;
}
.eg-portrait__name { margin: 0; font-size: 1.1rem; font-weight: 800; color: var(--eg-slate); }
.eg-portrait__role { margin: 2px 0 0; font-size: 0.82rem; font-weight: 600; color: var(--eg-purple); letter-spacing: 0.04em; }
.eg-portrait__orb {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    filter: blur(2px);
}
.eg-portrait__orb--a { width: 140px; height: 140px; top: -18px; left: -24px; background: rgba(37, 117, 252, 0.16); }
.eg-portrait__orb--b { width: 90px; height: 90px; right: -10px; top: 38%; background: rgba(255, 87, 34, 0.16); }

.eg-about__copy .eg-lead { margin-bottom: 28px; }
.eg-pillars { display: grid; gap: 16px; margin-bottom: 32px; }
.eg-pillar {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    padding: 22px;
    border-radius: var(--eg-radius);
    background: #fff;
    box-shadow: var(--eg-shadow-sm);
    border: 1px solid var(--eg-line);
    transition: transform 0.4s var(--eg-ease), box-shadow 0.4s var(--eg-ease);
}
.eg-pillar:hover { transform: translateY(-3px); box-shadow: var(--eg-shadow); }
.eg-pillar__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--eg-tint);
    color: var(--eg-purple);
    font-size: 1.1rem;
}
.eg-pillar h3 { margin: 0 0 6px; font-size: 1.05rem; font-weight: 800; color: var(--eg-blue); }
.eg-pillar p { margin: 0; color: var(--eg-muted); }

/* Ministries */
.eg-ministries { background: #fff; }
.eg-ministries__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.eg-ministry {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px;
    border-radius: var(--eg-radius);
    background: var(--eg-mist);
    border: 1px solid var(--eg-line);
    color: var(--eg-slate);
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease), border-color 0.3s;
}
.eg-ministry::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: var(--eg-grad-x);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s var(--eg-ease);
}
.eg-ministry:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); border-color: transparent; color: var(--eg-slate); background: #fff; }
.eg-ministry:hover::after { transform: scaleX(1); }
.eg-ministry__icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.3rem;
    box-shadow: var(--eg-glow);
}
.eg-ministry__name { display: block; font-size: 1.08rem; font-weight: 800; }
.eg-ministry__more { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; font-size: 0.86rem; font-weight: 700; color: var(--eg-purple); }
.eg-ministry__more i { transition: transform 0.35s var(--eg-ease); }
.eg-ministry:hover .eg-ministry__more i { transform: translateX(4px); }
.eg-ministries__depts {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 32px;
}
.eg-ministries__depts span { margin-right: 6px; font-size: 0.85rem; font-weight: 700; color: var(--eg-muted); }
.eg-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 999px;
    background: var(--eg-mist);
    border: 1px solid var(--eg-line);
    color: var(--eg-slate);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.eg-chip i { color: var(--eg-purple); transition: color 0.25s; }
.eg-chip:hover { background: var(--eg-purple); border-color: var(--eg-purple); color: #fff; }
.eg-chip:hover i { color: #fff; }

/* Gradient feature band (events, sermons, parishes) */
.eg-band {
    position: relative;
    color: #fff;
    background: var(--eg-grad);
    overflow: hidden;
    isolation: isolate;
}
.eg-band::before,
.eg-band::after {
    content: '';
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
}
.eg-band::before { width: 520px; height: 520px; right: -160px; top: -200px; background: radial-gradient(circle, rgba(255, 255, 255, 0.16), transparent 65%); }
.eg-band::after { width: 420px; height: 420px; left: -140px; bottom: -220px; background: radial-gradient(circle, rgba(255, 138, 0, 0.22), transparent 65%); }

/* Events */
.eg-events__grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; align-items: stretch; }
.eg-event {
    display: flex;
    flex-direction: column;
    border-radius: var(--eg-radius-lg);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.22);
    overflow: hidden;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: transform 0.45s var(--eg-ease), background 0.3s;
}
.eg-event:hover { transform: translateY(-6px); background: rgba(255, 255, 255, 0.15); }
.eg-event__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.eg-event__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--eg-ease); }
.eg-event:hover .eg-event__media img { transform: scale(1.05); }
.eg-event__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--eg-grad-accent);
    color: #fff;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    box-shadow: var(--eg-glow-accent);
}
.eg-event__body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; flex: 1; padding: 28px; }
.eg-event__kicker { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.75); }
.eg-event__title { margin: 0; font-size: 1.5rem; font-weight: 800; line-height: 1.25; color: #fff; }
.eg-event__text { margin: 0 0 6px; color: rgba(255, 255, 255, 0.86); }
.eg-event__body .eg-btn { margin-top: auto; }
.eg-event--past .eg-event__body { justify-content: center; }
/* Portrait flyers are shown whole, beside the text, rather than cropped. */
.eg-event--flyer { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr); }
.eg-event--flyer .eg-event__media { aspect-ratio: auto; }
.eg-event--flyer .eg-event__media img { height: 100%; min-height: 100%; object-fit: cover; object-position: top center; }
.eg-event--flyer .eg-event__body { justify-content: center; }
.eg-event--flyer .eg-event__body .eg-btn { margin-top: 8px; }
.eg-event__mark {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.16);
    font-size: 1.5rem;
}

/* Sermon call-out */
.eg-watch__inner {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: clamp(28px, 5vw, 64px);
    align-items: center;
    padding: clamp(32px, 5vw, 56px);
    border-radius: var(--eg-radius-lg);
    background: var(--eg-slate);
    background-image: radial-gradient(circle at 85% 20%, rgba(37, 117, 252, 0.35), transparent 45%), radial-gradient(circle at 10% 90%, rgba(106, 17, 203, 0.45), transparent 50%);
    color: #fff;
    box-shadow: var(--eg-shadow-lg);
    overflow: hidden;
}
.eg-watch__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.eg-watch__visual { position: relative; display: grid; place-items: center; min-height: 240px; }
.eg-watch__play {
    position: relative;
    display: grid;
    place-items: center;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--eg-grad-accent);
    color: #fff;
    font-size: 2.2rem;
    text-decoration: none;
    box-shadow: var(--eg-glow-accent);
    transition: transform 0.45s var(--eg-ease);
}
.eg-watch__play i { margin-left: 6px; }
.eg-watch__play:hover { color: #fff; transform: scale(1.08); }
.eg-watch__play::before,
.eg-watch__play::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(255, 138, 0, 0.6);
    animation: eg-pulse 2.6s var(--eg-ease) infinite;
}
.eg-watch__play::after { animation-delay: 1.3s; }
@keyframes eg-pulse {
    from { transform: scale(1); opacity: 0.9; }
    to { transform: scale(1.9); opacity: 0; }
}

/* Testimonials */
.eg-quotes { overflow: hidden; }
.eg-quotes__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 36px; }
.eg-quotes__head .eg-head { margin-bottom: 0; }
.eg-quotes__nav { display: flex; gap: 10px; }
.eg-round {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--eg-purple);
    box-shadow: var(--eg-shadow-sm);
    cursor: pointer;
    transition: background 0.25s, color 0.25s, transform 0.3s var(--eg-ease);
}
.eg-round:hover { background: var(--eg-grad); color: #fff; transform: translateY(-2px); }
.eg-quotes__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 48px) / 3);
    gap: 24px;
    margin: 0;
    padding: 6px 2px 24px;
    list-style: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.eg-quotes__track::-webkit-scrollbar { display: none; }
.eg-quote {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding: 34px 30px 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow-sm);
    scroll-snap-align: start;
}
.eg-quote::before {
    content: '\201C';
    position: absolute;
    top: 6px;
    right: 24px;
    font-family: var(--eg-serif);
    font-size: 6rem;
    line-height: 1;
    background: var(--eg-grad-x);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    opacity: 0.25;
}
.eg-quote__text { margin: 0; font-family: var(--eg-serif); font-size: 1.12rem; font-style: italic; line-height: 1.6; color: var(--eg-slate); }
.eg-quote__who { display: flex; align-items: center; gap: 14px; margin-top: auto; }
.eg-quote__avatar {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--eg-grad);
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
}
.eg-quote__name { margin: 0; font-weight: 800; color: var(--eg-purple); text-transform: capitalize; }
.eg-quote__meta { margin: 0; font-size: 0.85rem; color: var(--eg-muted); }
.eg-quotes__more { margin-top: 12px; text-align: center; }

/* Salvation steps */
.eg-salvation { background: #fff; }
.eg-salvation__grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.eg-salvation__aside { position: sticky; top: calc(var(--eg-header-h) + 32px); }
.eg-salvation__verse {
    margin: 28px 0 0;
    padding: 22px 24px;
    border-left: 4px solid var(--eg-orange);
    border-radius: 0 var(--eg-radius) var(--eg-radius) 0;
    background: var(--eg-mist);
    font-family: var(--eg-serif);
    font-style: italic;
    font-size: 1.08rem;
    color: var(--eg-slate);
}
.eg-salvation__verse cite { display: block; margin-top: 8px; font-family: var(--eg-font); font-style: normal; font-size: 0.85rem; font-weight: 800; color: var(--eg-orange); }
.eg-steps { display: grid; gap: 14px; counter-reset: step; }
.eg-step {
    border-radius: var(--eg-radius);
    background: var(--eg-mist);
    border: 1px solid var(--eg-line);
    transition: box-shadow 0.4s var(--eg-ease), background 0.3s, border-color 0.3s;
}
.eg-step[open] { background: #fff; border-color: transparent; box-shadow: var(--eg-shadow); }
.eg-step summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 20px 22px;
    cursor: pointer;
    list-style: none;
}
.eg-step summary::-webkit-details-marker { display: none; }
.eg-step__num {
    counter-increment: step;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: #fff;
    color: var(--eg-purple);
    font-weight: 800;
    box-shadow: var(--eg-shadow-sm);
    transition: background 0.3s, color 0.3s;
}
.eg-step__num::before { content: counter(step, decimal-leading-zero); }
.eg-step[open] .eg-step__num { background: var(--eg-grad); color: #fff; }
.eg-step__title { display: block; font-size: 1.05rem; font-weight: 800; color: var(--eg-slate); }
.eg-step__ref { display: block; margin-top: 2px; font-size: 0.85rem; font-weight: 700; color: var(--eg-purple); }
.eg-step__toggle {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(106, 17, 203, 0.08);
    color: var(--eg-purple);
    transition: transform 0.35s var(--eg-ease), background 0.3s, color 0.3s;
}
.eg-step[open] .eg-step__toggle { transform: rotate(45deg); background: var(--eg-orange); color: #fff; }
.eg-step__body { padding: 0 22px 22px 86px; color: var(--eg-muted); }
.eg-step__body p { margin: 0; }

/* Daily devotion */
.eg-devotion__card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow);
    overflow: hidden;
}
.eg-devotion__scripture {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    padding: clamp(30px, 4vw, 52px);
    background: var(--eg-grad);
    color: #fff;
    overflow: hidden;
}
.eg-devotion__scripture::before {
    content: '\201C';
    position: absolute;
    top: -30px;
    left: 18px;
    font-family: var(--eg-serif);
    font-size: 14rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.12);
}
.eg-devotion__date { display: flex; flex-wrap: wrap; gap: 8px; position: relative; margin-bottom: auto; padding-bottom: 12px; }
.eg-devotion__ref { margin-bottom: auto; }
.eg-devotion__date span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.25);
    font-size: 0.82rem;
    font-weight: 700;
}
.eg-devotion__verse { position: relative; margin: 0; font-family: var(--eg-serif); font-size: clamp(1.25rem, 2.2vw, 1.6rem); font-weight: 500; line-height: 1.5; }
.eg-devotion__ref { position: relative; display: inline-flex; align-items: center; gap: 10px; font-weight: 800; color: #ffd2bf; }
.eg-devotion__body { display: flex; flex-direction: column; gap: 18px; padding: clamp(30px, 4vw, 52px); }
.eg-devotion__title { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 800; line-height: 1.2; color: var(--eg-slate); }
.eg-devotion__reflection { margin: 0; color: var(--eg-muted); line-height: 1.8; }
.eg-devotion__points { margin: 0; padding: 20px 22px; list-style: none; border-radius: var(--eg-radius); background: var(--eg-mist); }
.eg-devotion__points h4 { margin: 0 0 10px; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--eg-orange); }
.eg-devotion__points li { position: relative; padding: 5px 0 5px 26px; color: var(--eg-ink); }
.eg-devotion__points li::before {
    content: '\f00c';
    position: absolute;
    left: 0;
    top: 6px;
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.8rem;
    color: var(--eg-purple);
}
.eg-devotion__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: auto; padding-top: 6px; }
.eg-devotion__pager { display: flex; align-items: center; gap: 10px; }
.eg-devotion__count { min-width: 44px; font-size: 0.85rem; font-weight: 700; color: var(--eg-muted); text-align: center; }
.eg-devotion__share { display: flex; align-items: center; gap: 6px; }
.eg-devotion__share .eg-round { width: 40px; height: 40px; font-size: 0.9rem; background: var(--eg-mist); box-shadow: none; }
.eg-devotion__card.is-changing .eg-devotion__verse,
.eg-devotion__card.is-changing .eg-devotion__title,
.eg-devotion__card.is-changing .eg-devotion__reflection,
.eg-devotion__card.is-changing .eg-devotion__points ul { opacity: 0; transform: translateY(8px); }
.eg-devotion__verse,
.eg-devotion__title,
.eg-devotion__reflection,
.eg-devotion__points ul { transition: opacity 0.35s, transform 0.35s var(--eg-ease); }
.eg-devotion__points ul { margin: 0; padding: 0; list-style: none; }

/* Parishes (homepage band) */
.eg-parishes__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(36px, 5vw, 72px); align-items: center; }
.eg-parishes__intro .eg-lead { max-width: 30rem; }
.eg-parishes__stats {
    display: flex;
    gap: clamp(20px, 4vw, 44px);
    margin: 34px 0 36px;
    padding: 0;
    list-style: none;
}
.eg-parishes__stats li { display: grid; gap: 2px; }
.eg-parishes__stats strong { font-family: var(--eg-serif); font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 600; line-height: 1; color: #fff; }
.eg-parishes__stats span { font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.78); }
.eg-parishes__stats li + li { padding-left: clamp(20px, 4vw, 44px); border-left: 1px solid rgba(255, 255, 255, 0.25); }
.eg-parishes__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.eg-parishes__panel {
    padding: 14px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    color: var(--eg-ink);
    box-shadow: 0 40px 80px rgba(26, 36, 47, 0.28);
}
.eg-parishes__hq {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border-radius: var(--eg-radius);
    background: var(--eg-grad-accent);
    color: #fff;
    text-decoration: none;
    transition: transform 0.4s var(--eg-ease), box-shadow 0.4s var(--eg-ease);
}
.eg-parishes__hq:hover { color: #fff; transform: translateY(-2px); box-shadow: var(--eg-glow-accent); }
.eg-parishes__hq-icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.2);
    font-size: 1.3rem;
}
.eg-parishes__hq-text { display: grid; gap: 2px; min-width: 0; }
.eg-parishes__hq-text strong { font-size: 1.2rem; font-weight: 800; }
.eg-parishes__hq-text > span:last-child { font-size: 0.88rem; opacity: 0.9; }
.eg-parishes__flag { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.9; }
.eg-parishes__go { margin-left: auto; transition: transform 0.35s var(--eg-ease); }
.eg-parishes__hq:hover .eg-parishes__go { transform: translateX(4px); }

.eg-parishes__list { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 10px 0 0; padding: 0; list-style: none; }
.eg-parishes__list li { display: flex; align-items: flex-start; gap: 12px; padding: 12px; border-radius: var(--eg-radius-sm); transition: background 0.25s; }
.eg-parishes__list li:hover { background: var(--eg-sky-1); }
.eg-parishes__dot {
    display: grid;
    place-items: center;
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--eg-tint);
    color: var(--eg-purple);
    font-size: 0.85rem;
}
.eg-parishes__name { display: grid; gap: 1px; min-width: 0; }
.eg-parishes__name strong { font-size: 0.95rem; font-weight: 700; color: var(--eg-slate); }
.eg-parishes__name span { font-size: 0.8rem; line-height: 1.4; color: var(--eg-muted); }

/* Page header for inner pages (parish.php first) */
.eg-pagehero { padding: clamp(56px, 8vw, 96px) 0 clamp(64px, 9vw, 110px); }
.eg-pagehero__crumbs { display: flex; gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; font-size: 0.85rem; font-weight: 600; color: rgba(255, 255, 255, 0.75); }
.eg-pagehero__crumbs a { color: #fff; text-decoration: none; }
.eg-pagehero__crumbs a:hover { text-decoration: underline; }
.eg-pagehero__crumbs li + li::before { content: '/'; margin-right: 8px; opacity: 0.6; }
.eg-pagehero .eg-title { font-size: clamp(2.4rem, 5vw, 3.6rem); }
.eg-pagehero .eg-lead { max-width: 36rem; }

/* Parish directory (parish.php) */
.eg-directory { margin-top: clamp(-64px, -6vw, -40px); position: relative; z-index: 1; padding-top: 0; }
.eg-hqcard {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    overflow: hidden;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
}
.eg-hqcard__art {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 260px;
    background: var(--eg-grad-accent);
    color: #fff;
    overflow: hidden;
}
.eg-hqcard__art::before,
.eg-hqcard__art::after { content: ''; position: absolute; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.35); }
.eg-hqcard__art::before { width: 220px; height: 220px; }
.eg-hqcard__art::after { width: 340px; height: 340px; border-color: rgba(255, 255, 255, 0.2); }
.eg-hqcard__art i { position: relative; font-size: 4.2rem; filter: drop-shadow(0 12px 24px rgba(0, 0, 0, 0.18)); }
.eg-hqcard__body { padding: clamp(28px, 4vw, 48px); }
.eg-hqcard__flag {
    display: inline-block;
    padding: 5px 14px;
    border-radius: 999px;
    background: rgba(255, 87, 34, 0.1);
    color: var(--eg-orange);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.eg-hqcard h2 { margin: 14px 0 8px; font-family: var(--eg-serif); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 600; color: var(--eg-slate); }
.eg-hqcard p { margin: 0 0 24px; color: var(--eg-muted); }
.eg-hqcard__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.eg-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: clamp(48px, 6vw, 72px) 0 32px; }
.eg-filter button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    background: #fff;
    color: var(--eg-slate);
    font: 600 0.92rem var(--eg-font);
    cursor: pointer;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.eg-filter button i { color: var(--eg-purple); transition: color 0.25s; }
.eg-filter button span { padding: 1px 8px; border-radius: 999px; background: var(--eg-sky-2); font-size: 0.78rem; }
.eg-filter button:hover { border-color: var(--eg-purple); }
.eg-filter button[aria-pressed="true"] { background: var(--eg-grad-x); border-color: transparent; color: #fff; }
.eg-filter button[aria-pressed="true"] i { color: #fff; }
.eg-filter button[aria-pressed="true"] span { background: rgba(255, 255, 255, 0.22); }

.eg-parishgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.eg-parishcard {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 26px;
    border-radius: var(--eg-radius);
    background: #fff;
    box-shadow: var(--eg-shadow-sm);
    border: 1px solid var(--eg-line);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease), border-color 0.3s;
}
.eg-parishcard::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    border-radius: var(--eg-radius) var(--eg-radius) 0 0;
    background: var(--eg-grad-x);
    opacity: 0;
    transition: opacity 0.3s;
}
.eg-parishcard:hover { transform: translateY(-6px); box-shadow: var(--eg-shadow); border-color: transparent; }
.eg-parishcard:hover::before { opacity: 1; }
.eg-parishcard__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.eg-parishcard__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    background: var(--eg-grad);
    color: #fff;
    box-shadow: var(--eg-glow);
}
.eg-parishcard__tag { padding: 4px 12px; border-radius: 999px; background: var(--eg-tint); color: var(--eg-purple); font-size: 0.75rem; font-weight: 700; }
.eg-parishcard h3 { margin: 0 0 8px; font-size: 1.2rem; font-weight: 800; color: var(--eg-slate); }
.eg-parishcard p { display: flex; gap: 8px; margin: 0 0 22px; color: var(--eg-muted); font-size: 0.95rem; }
.eg-parishcard p i { margin-top: 4px; color: var(--eg-orange); }
.eg-parishcard .eg-link { margin-top: auto; }
.eg-parishcard[hidden] { display: none; }

.eg-findcta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: clamp(48px, 6vw, 72px);
    padding: clamp(28px, 4vw, 40px);
    border-radius: var(--eg-radius-lg);
    background: var(--eg-tint), #fff;
    border: 1px solid var(--eg-line);
}
.eg-findcta h2 { margin: 0 0 6px; font-family: var(--eg-serif); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 600; color: var(--eg-slate); }
.eg-findcta p { margin: 0; color: var(--eg-muted); }
.eg-findcta__actions { display: flex; flex-wrap: wrap; gap: 12px; flex: none; }

/* Get Involved (get.php) */
.eg-pagehero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.eg-pathway { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.eg-pathway::before {
    content: '';
    position: absolute;
    top: 40px;
    left: 12%;
    right: 12%;
    border-top: 2px dashed rgba(106, 17, 203, 0.25);
}
.eg-pathway__step { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 8px; text-align: center; }
.eg-pathway__icon {
    display: grid;
    place-items: center;
    width: 80px;
    height: 80px;
    margin-bottom: 20px;
    border-radius: 26px;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.6rem;
    box-shadow: var(--eg-glow);
    transition: transform 0.45s var(--eg-ease);
}
.eg-pathway__step:hover .eg-pathway__icon { transform: translateY(-6px) rotate(-4deg); }
.eg-pathway__num {
    position: absolute;
    top: -8px;
    left: calc(50% + 28px);
    z-index: 1;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 3px solid var(--eg-sky-1);
    border-radius: 50%;
    background: var(--eg-grad-accent);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
}
.eg-pathway__step h3 { margin: 0 0 8px; font-size: 1.25rem; font-weight: 800; color: var(--eg-slate); }
.eg-pathway__step p { margin: 0 0 14px; color: var(--eg-muted); font-size: 0.95rem; }
.eg-pathway__step .eg-link { margin-top: auto; }

.eg-ways { padding-top: 0; }
.eg-ways__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.eg-way {
    display: flex;
    flex-direction: column;
    padding: 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-way:hover { transform: translateY(-6px); box-shadow: var(--eg-shadow); }
.eg-way--wide { grid-column: span 2; flex-direction: row; gap: 22px; align-items: flex-start; }
.eg-way--wide > div { display: flex; flex-direction: column; height: 100%; }
.eg-way__icon {
    display: grid;
    place-items: center;
    flex: none;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 18px;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.35rem;
    box-shadow: var(--eg-glow);
}
.eg-way__icon--accent { background: var(--eg-grad-accent); box-shadow: var(--eg-glow-accent); }
.eg-way h3 { margin: 0 0 8px; font-size: 1.25rem; font-weight: 800; color: var(--eg-slate); }
.eg-way p { margin: 0 0 18px; color: var(--eg-muted); font-size: 0.95rem; }
.eg-way .eg-link { margin-top: auto; }
.eg-way__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.eg-way__chips a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 14px;
    border-radius: 999px;
    background: var(--eg-sky-1);
    color: var(--eg-slate);
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.25s, color 0.25s;
}
.eg-way__chips a i { color: var(--eg-purple); transition: color 0.25s; }
.eg-way__chips a:hover { background: var(--eg-purple); color: #fff; }
.eg-way__chips a:hover i { color: #fff; }

.eg-interest { scroll-margin-top: var(--eg-header-h); }
.eg-interest__inner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(36px, 5vw, 72px); align-items: center; }
.eg-interest__contact { display: grid; gap: 14px; margin: 32px 0 0; padding: 0; list-style: none; }
.eg-interest__contact li { display: flex; align-items: center; gap: 14px; font-weight: 600; }
.eg-interest__contact i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: rgba(255, 255, 255, 0.16); }
.eg-interest__contact a,
.eg-interest__contact button { padding: 0; border: 0; background: none; color: #fff; font: inherit; text-decoration: none; cursor: pointer; }
.eg-interest__contact a:hover,
.eg-interest__contact button:hover { text-decoration: underline; }
.eg-interest__form {
    display: grid;
    gap: 18px;
    padding: clamp(26px, 3.6vw, 40px);
    border-radius: var(--eg-radius-lg);
    background: #fff;
    color: var(--eg-ink);
    box-shadow: 0 40px 80px rgba(26, 36, 47, 0.28);
}
.eg-interest__form .eg-btn { justify-self: start; }

/* Form fields (shared) */
.eg-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.eg-field { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px 5px; margin: 0; padding: 0; border: 0; min-width: 0; font-size: 0.9rem; font-weight: 700; color: var(--eg-slate); }
.eg-field > input,
.eg-field > textarea,
.eg-field > .eg-checks { flex: 1 1 100%; }
.eg-field legend { margin-bottom: 10px; padding: 0; font-size: 0.9rem; font-weight: 700; color: var(--eg-slate); }
.eg-field > span { font-weight: 500; color: var(--eg-muted); }
.eg-field input,
.eg-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid var(--eg-line);
    border-radius: var(--eg-radius-sm);
    background: var(--eg-mist);
    font: 500 0.98rem/1.4 var(--eg-font);
    color: var(--eg-ink);
    transition: border-color 0.25s, box-shadow 0.25s, background 0.25s;
}
.eg-field textarea { resize: vertical; }
.eg-field input:focus,
.eg-field textarea:focus { outline: none; border-color: var(--eg-purple); background: #fff; box-shadow: 0 0 0 4px rgba(106, 17, 203, 0.12); }
.eg-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.eg-check { position: relative; cursor: pointer; }
.eg-check input { position: absolute; opacity: 0; pointer-events: none; }
.eg-check span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 15px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--eg-slate);
    transition: background 0.25s, border-color 0.25s, color 0.25s;
}
.eg-check span::before { content: '+'; font-weight: 800; color: var(--eg-purple); }
.eg-check:hover span { border-color: var(--eg-purple); }
.eg-check input:checked + span { background: var(--eg-grad-x); border-color: transparent; color: #fff; }
.eg-check input:checked + span::before { content: '\2713'; color: #fff; }
.eg-check input:focus-visible + span { box-shadow: 0 0 0 4px rgba(106, 17, 203, 0.2); }
.eg-form-error { margin: 0; padding: 12px 16px; border-radius: var(--eg-radius-sm); background: #fdecea; color: #a12a1b; font-size: 0.9rem; font-weight: 600; }

/* Homepage events: featured upcoming event + past events column */
.eg-event--featured .eg-event__media img { object-position: center; }
.eg-event__when { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 700; color: #fff; }
.eg-event__dates { display: flex; gap: 8px; margin: 2px 0 0; padding: 0; list-style: none; }
.eg-event__dates li,
.eg-eventfeature__dates li {
    display: grid;
    justify-items: center;
    min-width: 58px;
    padding: 8px 10px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    line-height: 1.15;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.eg-event__dates strong,
.eg-eventfeature__dates strong { font-size: 1.35rem; letter-spacing: 0; }
.eg-event__dates li.is-next { background: #fff; color: var(--eg-purple); border-color: #fff; }
.eg-event__dates li.is-done,
.eg-eventfeature__dates li.is-done { opacity: 0.45; text-decoration: line-through; }
.eg-event__countdown,
.eg-eventfeature__countdown { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 0.88rem; font-weight: 600; }
.eg-event__countdown span,
.eg-eventfeature__countdown span { width: 8px; height: 8px; border-radius: 50%; background: var(--eg-amber); box-shadow: 0 0 0 0 rgba(255, 138, 0, 0.5); animation: eg-pulse 2s infinite; }
.eg-event__countdown strong { color: var(--eg-peach); }
.eg-events__past { display: flex; flex-direction: column; gap: 14px; }
.eg-events__past-label { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.75); }
.eg-events__past .eg-btn { align-self: flex-start; margin-top: auto; }
.eg-pastevent {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px;
    border-radius: var(--eg-radius);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: background 0.3s;
}
.eg-pastevent:hover { background: rgba(255, 255, 255, 0.16); }
.eg-pastevent > img,
.eg-pastevent__mark { flex: none; width: 76px; height: 76px; border-radius: 14px; object-fit: cover; object-position: top; filter: saturate(0.75); }
.eg-pastevent__mark { display: grid; place-items: center; background: var(--eg-grad-accent); font-size: 1.6rem; }
.eg-pastevent h3 { margin: 4px 0; font-size: 1.05rem; font-weight: 800; color: #fff; }
.eg-pastevent a { color: #fff; font-size: 0.85rem; font-weight: 700; text-decoration: none; }
.eg-pastevent a:hover { text-decoration: underline; }
.eg-events__grid--past-only { grid-template-columns: 1fr; }

/* Events page (events.php) */
.eg-eventspage__pasthead { margin-top: clamp(64px, 8vw, 96px); }
.eg-eventfeature {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    overflow: hidden;
    margin-bottom: 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
}
.eg-eventfeature__media { position: relative; background: var(--eg-grad); min-height: 320px; }
.eg-eventfeature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.eg-eventfeature__mark { position: absolute; inset: 0; display: grid; place-items: center; font-size: 5rem; color: rgba(255, 255, 255, 0.25); }
.eg-eventfeature__body { display: flex; flex-direction: column; gap: 16px; padding: clamp(26px, 3.6vw, 44px); }
.eg-eventfeature__kicker { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--eg-orange); }
.eg-eventfeature h2 { margin: 0; font-family: var(--eg-serif); font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 600; line-height: 1.15; color: var(--eg-slate); }
.eg-eventfeature__countdown { color: var(--eg-muted); }
.eg-eventfeature__countdown strong { color: var(--eg-orange); }
.eg-eventfeature__dates { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.eg-eventfeature__dates li { background: var(--eg-sky-1); border-color: var(--eg-line); color: var(--eg-slate); }
.eg-eventfeature__dates li.is-next { background: var(--eg-grad); border-color: transparent; color: #fff; box-shadow: var(--eg-glow); }
.eg-eventfeature__meta { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; font-weight: 600; color: var(--eg-slate); }
.eg-eventfeature__meta li { display: flex; gap: 10px; }
.eg-eventfeature__meta i { width: 18px; margin-top: 4px; color: var(--eg-purple); }
.eg-eventfeature__body > p:not([class]) { margin: 0; color: var(--eg-muted); }
.eg-eventfeature__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.eg-pastgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.eg-pastcard { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--eg-radius); background: #fff; border: 1px solid var(--eg-line); box-shadow: var(--eg-shadow-sm); transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease); }
.eg-pastcard:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-pastcard__media { position: relative; aspect-ratio: 4 / 3; background: var(--eg-grad-accent); overflow: hidden; }
.eg-pastcard__media img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: grayscale(0.35); transition: filter 0.4s; }
.eg-pastcard:hover .eg-pastcard__media img { filter: none; }
.eg-pastcard__tag { position: absolute; left: 12px; top: 12px; padding: 4px 12px; border-radius: 999px; background: rgba(26, 36, 47, 0.75); color: #fff; font-size: 0.75rem; font-weight: 700; }
.eg-pastcard__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 20px 22px 22px; }
.eg-pastcard__body .eg-parishcard__tag { align-self: flex-start; }
.eg-pastcard h3 { margin: 4px 0 0; font-size: 1.15rem; font-weight: 800; color: var(--eg-slate); }
.eg-pastcard p { margin: 0; font-size: 0.92rem; color: var(--eg-muted); }
.eg-pastcard__date { font-weight: 700; color: var(--eg-slate) !important; }
.eg-pastcard__date i { margin-right: 6px; color: var(--eg-purple); }
.eg-pastcard .eg-link { margin-top: auto; padding-top: 6px; }

/* Newsletter sign-up (footer) */
.eg-newsletter {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    margin-bottom: 48px;
    padding: 26px 28px;
    border-radius: var(--eg-radius-lg);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    scroll-margin-top: calc(var(--eg-header-h) + 20px);
}
.eg-newsletter__text { display: flex; align-items: center; gap: 16px; }
.eg-newsletter__icon { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--eg-grad-accent); color: #fff; font-size: 1.3rem; box-shadow: var(--eg-glow-accent); }
.eg-newsletter .eg-newsletter__title { margin: 0 0 2px; font-size: 1.25rem; font-weight: 800; line-height: 1.3; color: #fff; }
.eg-newsletter__text p { margin: 0; font-size: 0.92rem; color: rgba(255, 255, 255, 0.72); }
.eg-newsletter__form { display: flex; flex-wrap: wrap; gap: 10px; }
.eg-newsletter__form input[type="email"] {
    flex: 1 1 220px;
    min-width: 0;
    padding: 14px 18px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font: 500 0.98rem var(--eg-font);
}
.eg-newsletter__form input[type="email"]::placeholder { color: rgba(255, 255, 255, 0.55); }
.eg-newsletter__form input[type="email"]:focus { outline: none; border-color: var(--eg-amber); background: rgba(255, 255, 255, 0.12); }
.eg-newsletter__form .eg-btn:disabled { opacity: 0.6; cursor: wait; }
.eg-newsletter__msg { flex-basis: 100%; margin: 2px 0 0 6px; font-size: 0.88rem; font-weight: 600; color: #ffb4a2; }
.eg-newsletter__msg.is-ok { color: #7ee2a8; }
.eg-newsletter__msg[hidden] { display: none; }

/* Gallery (gallery.php) */
.eg-gallerypage .eg-filter { margin-top: 0; }
.eg-photogrid { columns: 4 240px; column-gap: 18px; margin: 0; padding: 0; list-style: none; }
.eg-photogrid li { break-inside: avoid; margin-bottom: 18px; }
.eg-photogrid li[hidden] { display: none; }
.eg-photogrid a {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--eg-radius);
    background: var(--eg-sky-2);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-photogrid a:hover { transform: translateY(-4px); box-shadow: var(--eg-shadow); }
.eg-photogrid img { display: block; width: 100%; height: auto; transition: transform 0.7s var(--eg-ease); }
.eg-photogrid a:hover img { transform: scale(1.04); }
.eg-photogrid__caption {
    position: absolute;
    inset: auto 0 0;
    display: grid;
    gap: 2px;
    padding: 40px 16px 14px;
    background: linear-gradient(to top, rgba(26, 36, 47, 0.85), transparent);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s, transform 0.35s var(--eg-ease);
}
.eg-photogrid__cat { font-size: 0.68rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--eg-peach); }
.eg-photogrid a:hover .eg-photogrid__caption,
.eg-photogrid a:focus-visible .eg-photogrid__caption { opacity: 1; transform: none; }
.eg-photogrid__zoom { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, 0.9); color: var(--eg-purple); opacity: 0; transition: opacity 0.3s; }
.eg-photogrid a:hover .eg-photogrid__zoom { opacity: 1; }
@media (hover: none) { .eg-photogrid__caption { opacity: 1; transform: none; } }

.eg-lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 60px 70px; background: rgba(12, 16, 24, 0.94); }
.eg-lightbox[hidden] { display: none; }
.eg-lightbox figure { display: grid; justify-items: center; gap: 14px; margin: 0; max-width: 100%; max-height: 100%; }
.eg-lightbox img { max-width: min(1200px, 100%); max-height: calc(100vh - 160px); border-radius: 12px; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5); object-fit: contain; }
.eg-lightbox figcaption { display: flex; gap: 14px; align-items: baseline; color: #fff; font-weight: 600; text-align: center; }
.eg-lightbox__count { font-size: 0.85rem; color: rgba(255, 255, 255, 0.6); }
.eg-lightbox__close,
.eg-lightbox__nav { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 1.2rem; cursor: pointer; transition: background 0.25s; }
.eg-lightbox__close:hover,
.eg-lightbox__nav:hover { background: rgba(255, 255, 255, 0.25); }
.eg-lightbox__close { top: 16px; right: 16px; }
.eg-lightbox__nav--prev { left: 14px; top: 50%; transform: translateY(-50%); }
.eg-lightbox__nav--next { right: 14px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) {
    .eg-lightbox { padding: 64px 10px 80px; }
    .eg-lightbox__nav { top: auto; bottom: 16px; transform: none; }
    .eg-lightbox__nav--prev { left: calc(50% - 60px); }
    .eg-lightbox__nav--next { right: calc(50% - 60px); }
}

/* Blog (blog.php) */
.eg-blog__section { margin-top: clamp(64px, 8vw, 96px); }
.eg-blogfeature { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); overflow: hidden; border-radius: var(--eg-radius-lg); background: #fff; box-shadow: var(--eg-shadow-lg); }
.eg-blogfeature__media { position: relative; display: block; min-height: 340px; background: var(--eg-grad); }
.eg-blogfeature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--eg-ease); }
.eg-blogfeature:hover .eg-blogfeature__media img { transform: scale(1.03); }
.eg-blogfeature__body { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: clamp(26px, 3.6vw, 48px); }
.eg-blogfeature__kicker { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--eg-orange); }
.eg-blogfeature h3 { margin: 0; font-family: var(--eg-serif); font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 600; line-height: 1.15; }
.eg-blogfeature h3 a { color: var(--eg-slate); text-decoration: none; }
.eg-blogfeature h3 a:hover { color: var(--eg-purple); }
.eg-blogfeature__date { margin: 0; font-weight: 700; color: var(--eg-slate); }
.eg-blogfeature__date i { margin-right: 6px; color: var(--eg-purple); }
.eg-blogfeature__body > p:not([class]) { margin: 0; color: var(--eg-muted); }
.eg-blogfeature .eg-btn { margin-top: auto; }

.eg-blogcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 26px 0 0; padding: 0; list-style: none; }
.eg-blogcard { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--eg-radius); background: #fff; border: 1px solid var(--eg-line); box-shadow: var(--eg-shadow-sm); transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease); }
.eg-blogcard:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-blogcard__media { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 10; overflow: hidden; background: var(--eg-grad); }
.eg-blogcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 0.7s var(--eg-ease); }
.eg-blogcard:hover .eg-blogcard__media img { transform: scale(1.05); }
.eg-blogcard__media--video img { object-position: center; }
/* Portrait photos of the Apostle: keep his face in the wide crop. */
.eg-blogcard__media img.is-portrait,
.eg-blogfeature__media img.is-portrait { object-position: center 12%; }
.eg-blogcard__media--video::after { content: ''; position: absolute; inset: 0; background: rgba(26, 36, 47, 0.25); }
.eg-blogcard__media .eg-playbtn { z-index: 1; }
.eg-blogcard__body { display: flex; flex-direction: column; flex: 1; gap: 8px; padding: 20px 22px 22px; }
.eg-blogcard__body .eg-parishcard__tag { align-self: flex-start; }
.eg-blogcard h3 { margin: 2px 0 0; font-size: 1.12rem; font-weight: 800; line-height: 1.35; }
.eg-blogcard h3 a { color: var(--eg-slate); text-decoration: none; }
.eg-blogcard h3 a:hover { color: var(--eg-purple); }
.eg-blogcard p { margin: 0; font-size: 0.92rem; color: var(--eg-muted); }
.eg-blogcard p i { margin-right: 4px; color: var(--eg-purple); }

.eg-devocards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.eg-devocard { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 28px; border-radius: var(--eg-radius-lg); background: #fff; border: 1px solid var(--eg-line); box-shadow: var(--eg-shadow-sm); overflow: hidden; }
.eg-devocard::before { content: ''; position: absolute; inset: 0 0 auto; height: 4px; background: var(--eg-grad-x); }
.eg-devocard__mark { font-size: 1.8rem; color: rgba(106, 17, 203, 0.18); }
.eg-devocard h3 { margin: 0; font-size: 1.2rem; font-weight: 800; color: var(--eg-slate); }
.eg-devocard blockquote { margin: 0; padding: 14px 16px; border-radius: var(--eg-radius-sm); background: var(--eg-tint); font-family: var(--eg-serif); font-style: italic; color: var(--eg-slate); }
.eg-devocard cite { display: block; margin-top: 8px; font-family: var(--eg-font); font-size: 0.8rem; font-style: normal; font-weight: 700; color: var(--eg-purple); }
.eg-devocard p { margin: 0; font-size: 0.92rem; color: var(--eg-muted); }
.eg-devocard .eg-link { margin-top: auto; }

.eg-blogwatch { display: flex; align-items: center; gap: 24px; padding: 18px; border-radius: var(--eg-radius-lg); background: #fff; border: 1px solid var(--eg-line); box-shadow: var(--eg-shadow-sm); color: var(--eg-muted); text-decoration: none; }
.eg-blogwatch img { width: 180px; height: 150px; border-radius: var(--eg-radius); object-fit: cover; object-position: top; }
.eg-blogwatch strong { display: block; margin-bottom: 4px; font-size: 1.2rem; color: var(--eg-slate); }
.eg-blogwatch .eg-link { display: inline-flex; margin-top: 10px; }

.eg-blogapostle {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: clamp(24px, 4vw, 48px);
    align-items: center;
    margin-top: clamp(64px, 8vw, 96px);
    padding: clamp(24px, 3.4vw, 40px);
    border-radius: var(--eg-radius-lg);
    background: var(--eg-grad);
    color: #fff;
    box-shadow: var(--eg-glow);
}
.eg-blogapostle img { width: 100%; aspect-ratio: 4 / 5; border-radius: var(--eg-radius); object-fit: cover; object-position: top; border: 4px solid rgba(255, 255, 255, 0.35); }
.eg-blogapostle h2 { margin: 6px 0 10px; font-family: var(--eg-serif); font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 600; color: #fff; }
.eg-blogapostle p:not(.eg-eyebrow) { margin: 0 0 22px; color: rgba(255, 255, 255, 0.88); }
.eg-blogapostle__actions { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 1080px) {
    .eg-blogcards,
    .eg-devocards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .eg-blogfeature,
    .eg-blogapostle { grid-template-columns: 1fr; }
    .eg-blogfeature__media { min-height: 0; aspect-ratio: 1; }
    .eg-blogapostle img { max-width: 260px; }
}
@media (max-width: 640px) {
    .eg-blogcards,
    .eg-devocards { grid-template-columns: 1fr; }
    .eg-blogwatch { flex-direction: column; align-items: flex-start; }
    .eg-blogwatch img { width: 100%; height: 200px; }
    .eg-blogapostle__actions .eg-btn { width: 100%; justify-content: center; }
}

/* Thank-you page (thankyou.php) */
.eg-thanks { padding: clamp(64px, 9vw, 120px) 0 clamp(72px, 10vw, 130px); text-align: center; }
.eg-thanks__inner { max-width: 760px; }
.eg-thanks .eg-eyebrow { justify-content: center; }
.eg-thanks .eg-lead { margin: 0 auto; max-width: 36rem; }
.eg-thanks__check { width: 104px; height: 104px; margin: 0 auto 26px; padding: 14px; border-radius: 50%; background: rgba(255, 255, 255, 0.14); box-shadow: 0 0 0 14px rgba(255, 255, 255, 0.07); animation: eg-thanks-pop 0.6s var(--eg-ease) both; }
.eg-thanks__check svg { width: 100%; height: 100%; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.eg-thanks__check circle { fill: #fff; stroke: none; }
.eg-thanks__check path { stroke: var(--eg-purple); stroke-dasharray: 40; stroke-dashoffset: 40; animation: eg-thanks-draw 0.5s 0.45s var(--eg-ease) forwards; }
@keyframes eg-thanks-pop { from { transform: scale(0.4); opacity: 0; } }
@keyframes eg-thanks-draw { to { stroke-dashoffset: 0; } }
.eg-thanks__verse { margin: 28px auto 0; font-family: var(--eg-serif); font-size: 1.15rem; font-style: italic; color: rgba(255, 255, 255, 0.92); }
.eg-thanks__verse cite { display: block; margin-top: 6px; font-family: var(--eg-font); font-size: 0.82rem; font-style: normal; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--eg-peach); }
.eg-thanks__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 34px; }
.eg-thanks-next__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.eg-thanks-next__card { color: inherit; text-decoration: none; }
.eg-thanks-next__card:hover { color: inherit; }
@media (max-width: 900px) { .eg-thanks-next__grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .eg-thanks__actions .eg-btn { width: 100%; justify-content: center; } }

/* Photo strip of the Apostle (about.php leadership section) */
.eg-apostle-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 2.5rem; }
.eg-apostle-gallery a {
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 18px;
    background: var(--eg-slate-deep);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-apostle-gallery a:hover { transform: translateY(-6px); box-shadow: var(--eg-shadow); }
.eg-apostle-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 10%; transition: transform 0.6s var(--eg-ease); }
.eg-apostle-gallery a:hover img { transform: scale(1.05); }
@media (max-width: 760px) { .eg-apostle-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* FAQs (faqs.php) */
.eg-faqhero { padding-bottom: clamp(64px, 8vw, 96px); }
.eg-faqsearch {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 560px;
    margin-top: 30px;
    padding: 6px 6px 6px 52px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 20px 50px rgba(26, 36, 47, 0.25);
}
.eg-faqsearch i { position: absolute; left: 22px; color: var(--eg-purple); }
.eg-faqsearch input { flex: 1; min-width: 0; padding: 12px 12px 12px 0; border: 0; outline: 0; background: none; font: 500 1rem var(--eg-font); color: var(--eg-ink); }
.eg-faqpage__inner { max-width: 880px; }
.eg-faqpage__topics { margin-bottom: 12px; }
.eg-faqpage__topics a { display: inline-flex; align-items: center; gap: 8px; }
.eg-faqpage__topics a i { color: var(--eg-purple); }
.eg-faqpage__count { margin: 0 0 8px; font-weight: 700; color: var(--eg-muted); }
.eg-faqgroup { margin-top: 36px; scroll-margin-top: calc(var(--eg-header-h) + 24px); }
.eg-faqgroup[hidden] { display: none; }
.eg-faqgroup h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; font-family: var(--eg-serif); font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-weight: 600; color: var(--eg-slate); }
.eg-faqgroup__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--eg-grad); color: #fff; font-size: 1rem; box-shadow: var(--eg-glow); }
.eg-accordion { display: grid; gap: 12px; }
.eg-faq {
    border-radius: var(--eg-radius);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    transition: box-shadow 0.35s var(--eg-ease), border-color 0.35s;
    interpolate-size: allow-keywords;
}
.eg-faq[hidden] { display: none; }
.eg-faq:hover { box-shadow: var(--eg-shadow); }
.eg-faq[open] { border-color: rgba(106, 17, 203, 0.35); box-shadow: var(--eg-shadow); }
.eg-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--eg-slate);
    list-style: none;
    cursor: pointer;
}
.eg-faq summary::-webkit-details-marker { display: none; }
.eg-faq summary:focus-visible { outline: 3px solid rgba(106, 17, 203, 0.35); outline-offset: -3px; border-radius: var(--eg-radius); }
.eg-faq summary i {
    display: grid;
    place-items: center;
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--eg-tint);
    color: var(--eg-purple);
    font-size: 0.85rem;
    transition: transform 0.35s var(--eg-ease), background 0.3s, color 0.3s;
}
.eg-faq[open] summary { color: var(--eg-purple); }
.eg-faq[open] summary i { transform: rotate(45deg); background: var(--eg-grad); color: #fff; }
.eg-faq::details-content { height: 0; overflow: clip; transition: height 0.35s var(--eg-ease), content-visibility 0.35s allow-discrete; }
.eg-faq[open]::details-content { height: auto; }
.eg-faq__a { padding: 0 22px 20px; color: var(--eg-muted); }
.eg-faq__a p { margin: 0 0 10px; }
.eg-faq__a p:last-child { margin-bottom: 0; }
.eg-faq__a ul { margin: 0 0 10px; padding-left: 20px; }
.eg-faq__a li { margin-bottom: 4px; }
.eg-faq__a strong { color: var(--eg-slate); }
.eg-faq__a a { color: var(--eg-purple); font-weight: 700; }
.eg-faqpage__empty { margin-top: 28px; }
.eg-askcta {
    position: relative;
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: clamp(48px, 6vw, 72px);
    padding: clamp(26px, 3.6vw, 40px);
    border-radius: var(--eg-radius-lg);
    background: var(--eg-grad);
    color: #fff;
    overflow: hidden;
    box-shadow: var(--eg-glow);
}
.eg-askcta__icon { display: grid; place-items: center; flex: none; width: 60px; height: 60px; border-radius: 18px; background: rgba(255, 255, 255, 0.18); font-size: 1.5rem; }
.eg-askcta { flex-wrap: wrap; }
.eg-askcta > div:nth-child(2) { flex: 1 1 300px; }
.eg-askcta h2 { margin: 0 0 4px; font-family: var(--eg-serif); font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 600; color: #fff; }
.eg-askcta p { margin: 0; color: rgba(255, 255, 255, 0.85); }
.eg-askcta__actions { display: flex; flex-wrap: wrap; gap: 10px; flex: none; }

/* Sermon library (sermons.php) */
.eg-pagehero--sermons .eg-lead { margin-bottom: 28px; }
.eg-pagehero--sermons.has-player { padding-bottom: clamp(110px, 13vw, 170px); }
.eg-library { padding-top: 0; }
.eg-library.has-player { margin-top: clamp(-130px, -10vw, -80px); position: relative; z-index: 1; }
.eg-library:not(.has-player) .eg-libbar { margin-top: clamp(36px, 5vw, 56px); }

.eg-nowplaying {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    overflow: hidden;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
    scroll-margin-top: calc(var(--eg-header-h) + 20px);
}
.eg-nowplaying__screen { position: relative; aspect-ratio: 16 / 9; background: var(--eg-slate-deep); }
.eg-nowplaying__screen iframe,
.eg-nowplaying__screen video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.eg-nowplaying__poster {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    width: 100%;
    border: 0;
    padding: 0;
    background: var(--eg-grad) center / cover no-repeat;
    cursor: pointer;
}
.eg-nowplaying__poster::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(26, 36, 47, 0.45), transparent 55%); }
.eg-nowplaying__mark { position: absolute; inset: 0; display: grid; place-items: center; font-size: clamp(5rem, 12vw, 9rem); color: rgba(255, 255, 255, 0.12); }
.eg-nowplaying__note { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; padding: 24px; color: #fff; text-align: center; }

.eg-playbtn {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    border-radius: 50%;
    background: #fff;
    color: var(--eg-purple);
    font-size: 1.6rem;
    box-shadow: 0 0 0 12px rgba(255, 255, 255, 0.22), 0 20px 40px rgba(0, 0, 0, 0.3);
    transition: transform 0.4s var(--eg-ease), box-shadow 0.4s var(--eg-ease);
}
.eg-playbtn i { margin-left: 5px; }
.eg-nowplaying__poster:hover .eg-playbtn { transform: scale(1.08); box-shadow: 0 0 0 18px rgba(255, 255, 255, 0.18), 0 24px 48px rgba(0, 0, 0, 0.35); }
.eg-playbtn--sm { width: 54px; height: 54px; font-size: 1.05rem; box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.2); }
.eg-playbtn--sm i { margin-left: 3px; }

.eg-nowplaying__info { display: flex; flex-direction: column; padding: clamp(26px, 3.4vw, 44px); min-width: 0; }
.eg-nowplaying__label {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
    color: var(--eg-orange);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.eg-nowplaying__label span { width: 9px; height: 9px; border-radius: 50%; background: var(--eg-orange); box-shadow: 0 0 0 0 rgba(255, 87, 34, 0.5); animation: eg-pulse 2s infinite; }
@keyframes eg-pulse { 70% { box-shadow: 0 0 0 10px rgba(255, 87, 34, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 87, 34, 0); } }
.eg-nowplaying h2 { margin: 0 0 14px; font-family: var(--eg-serif); font-size: clamp(1.6rem, 2.6vw, 2.2rem); font-weight: 600; line-height: 1.2; color: var(--eg-slate); }
.eg-sermonmeta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 16px; padding: 0; list-style: none; font-size: 0.9rem; font-weight: 600; color: var(--eg-muted); }
.eg-sermonmeta i { margin-right: 7px; color: var(--eg-purple); }
.eg-nowplaying__desc {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 24px;
    color: var(--eg-muted);
}
.eg-nowplaying__desc:empty { display: none; }
.eg-nowplaying__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }

.eg-libbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: clamp(48px, 6vw, 72px) 0 18px; scroll-margin-top: calc(var(--eg-header-h) + 20px); }
.eg-libbar__search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 420px;
    max-width: 560px;
    padding: 6px 6px 6px 48px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    background: #fff;
    box-shadow: var(--eg-shadow-sm);
    transition: border-color 0.25s, box-shadow 0.25s;
}
.eg-libbar__search:focus-within { border-color: var(--eg-purple); box-shadow: 0 0 0 4px rgba(106, 17, 203, 0.12); }
.eg-libbar__search > i { position: absolute; left: 20px; color: var(--eg-muted); }
.eg-libbar__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: 500 0.98rem var(--eg-font); color: var(--eg-ink); }
.eg-libbar__sort { display: flex; gap: 4px; padding: 5px; border-radius: 999px; background: #fff; border: 1.5px solid var(--eg-line); }
.eg-libbar__sort a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 999px; color: var(--eg-slate); font-size: 0.9rem; font-weight: 600; text-decoration: none; transition: background 0.25s, color 0.25s; }
.eg-libbar__sort a i { color: var(--eg-purple); }
.eg-libbar__sort a:hover { background: var(--eg-sky-1); }
.eg-libbar__sort a[aria-current] { background: var(--eg-grad-x); color: #fff; }
.eg-libbar__sort a[aria-current] i { color: #fff; }

.eg-filter--left { justify-content: flex-start; margin: 0 0 30px; }
.eg-filter a {
    padding: 8px 18px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    background: #fff;
    color: var(--eg-slate);
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.eg-filter a:hover { border-color: var(--eg-purple); color: var(--eg-purple); }
.eg-filter a.is-active { background: var(--eg-slate); border-color: var(--eg-slate); color: #fff; }
.eg-libcount { margin: -12px 0 24px; color: var(--eg-muted); font-weight: 600; }
.eg-libcount a { color: var(--eg-purple); }

.eg-sermongrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin: 0; padding: 0; list-style: none; }
.eg-sermoncard {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--eg-radius);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-sermoncard:hover { transform: translateY(-6px); box-shadow: var(--eg-shadow); }
.eg-sermoncard__media { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; background: var(--eg-grad); }
.eg-sermoncard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--eg-ease); }
.eg-sermoncard__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(26, 36, 47, 0.55), transparent 50%); transition: background 0.3s; }
.eg-sermoncard:hover .eg-sermoncard__media img { transform: scale(1.06); }
.eg-sermoncard__placeholder { position: absolute; inset: 0; display: grid; place-items: center; font-size: 4.5rem; color: rgba(255, 255, 255, 0.14); }
.eg-sermoncard__media .eg-playbtn { z-index: 2; opacity: 0.92; transform: scale(0.9); }
.eg-sermoncard:hover .eg-sermoncard__media .eg-playbtn { opacity: 1; transform: scale(1); }
.eg-sermoncard__time,
.eg-sermoncard__badge,
.eg-sermoncard__now { position: absolute; z-index: 2; padding: 4px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 700; color: #fff; }
.eg-sermoncard__time { right: 12px; bottom: 12px; background: rgba(0, 0, 0, 0.6); }
.eg-sermoncard__badge { left: 12px; top: 12px; background: var(--eg-grad-accent); }
.eg-sermoncard__now { left: 12px; bottom: 12px; display: none; background: var(--eg-orange); }
.eg-sermoncard.is-playing { border-color: var(--eg-purple); box-shadow: 0 0 0 2px var(--eg-purple), var(--eg-shadow); }
.eg-sermoncard.is-playing .eg-sermoncard__now { display: block; }
.eg-sermoncard__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 18px; }
.eg-sermoncard__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.eg-sermoncard__date { font-size: 0.82rem; font-weight: 600; color: var(--eg-muted); }
.eg-sermoncard h3 { margin: 0 0 8px; font-size: 1.12rem; font-weight: 800; line-height: 1.35; color: var(--eg-slate); }
.eg-sermoncard p { margin: 0 0 16px; font-size: 0.92rem; color: var(--eg-muted); }
.eg-sermoncard__foot {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--eg-line);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--eg-muted);
}
.eg-sermoncard__foot i { margin-right: 5px; color: var(--eg-purple); }
.eg-sermoncard__foot span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eg-sermoncard__foot a { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--eg-tint); text-decoration: none; transition: background 0.25s; }
.eg-sermoncard__foot a i { margin: 0; }
.eg-sermoncard__foot a:hover { background: var(--eg-purple); }
.eg-sermoncard__foot a:hover i { color: #fff; }

.eg-empty { padding: clamp(40px, 6vw, 72px) 24px; border-radius: var(--eg-radius-lg); background: #fff; border: 1px dashed rgba(106, 17, 203, 0.25); text-align: center; }
.eg-empty__icon { display: inline-grid; place-items: center; width: 76px; height: 76px; margin-bottom: 18px; border-radius: 24px; background: var(--eg-grad); color: #fff; font-size: 1.8rem; box-shadow: var(--eg-glow); }
.eg-empty h2 { margin: 0 0 8px; font-family: var(--eg-serif); font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 600; color: var(--eg-slate); }
.eg-empty p { max-width: 30rem; margin: 0 auto 24px; color: var(--eg-muted); }

.eg-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 44px; }
.eg-pager a {
    display: grid;
    place-items: center;
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1.5px solid var(--eg-line);
    background: #fff;
    color: var(--eg-slate);
    font-weight: 700;
    text-decoration: none;
    transition: border-color 0.25s, color 0.25s;
}
.eg-pager a:hover { border-color: var(--eg-purple); color: var(--eg-purple); }
.eg-pager a[aria-current] { background: var(--eg-grad-x); border-color: transparent; color: #fff; }

/* Giving */
.eg-give__inner {
    position: relative;
    display: grid;
    grid-template-columns: 1.3fr auto;
    gap: 32px;
    align-items: center;
    padding: clamp(36px, 5vw, 64px);
    border-radius: var(--eg-radius-lg);
    background: var(--eg-grad-give);
    color: #fff;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(255, 126, 95, 0.32);
    isolation: isolate;
}
.eg-give__inner::after {
    content: '\f4be';
    position: absolute;
    z-index: -1;
    right: 4%;
    bottom: -40px;
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 15rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.14);
}
.eg-give__inner .eg-title { color: #fff; }
.eg-give__inner .eg-title em { background: none; -webkit-text-fill-color: #fff; color: #fff; }
.eg-give__inner .eg-btn--light { color: var(--eg-coral); padding: 16px 32px; font-size: 1rem; }
.eg-give__inner .eg-btn--light:hover { color: var(--eg-orange); }
.eg-give__acct {
    display: grid;
    gap: 6px;
    min-width: 300px;
    padding: 24px;
    border-radius: var(--eg-radius);
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(8px);
}
.eg-give__acct-label { margin: 0; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.9; }
.eg-give__acct-number { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.eg-give__acct-number strong { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800; letter-spacing: 0.06em; }
.eg-give__acct-name { margin: 0 0 12px; font-size: 0.85rem; font-weight: 700; opacity: 0.92; }
.eg-give__acct .eg-btn { justify-content: center; }

/* Copy button (bank details) */
.eg-copy {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: none;
    padding: 7px 12px;
    border: 1.5px solid var(--eg-line);
    border-radius: 999px;
    background: #fff;
    color: var(--eg-purple);
    font: 700 0.8rem var(--eg-font);
    cursor: pointer;
    transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.eg-copy:hover { border-color: var(--eg-purple); }
.eg-copy.is-copied { background: #1f9d55; border-color: #1f9d55; color: #fff; }
.eg-copy--light { border-color: rgba(255, 255, 255, 0.55); background: rgba(255, 255, 255, 0.14); color: #fff; }
.eg-copy--light:hover { border-color: #fff; background: rgba(255, 255, 255, 0.24); }

/* Give page (donation.php) */
.eg-givehero__purposes { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.eg-givehero__purposes li { padding: 7px 18px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); border: 1px solid rgba(255, 255, 255, 0.3); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.eg-givepage { margin-top: clamp(-110px, -9vw, -80px); position: relative; z-index: 1; padding-top: 0; }
.eg-givemain {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
    padding: clamp(22px, 3vw, 32px);
    border-radius: var(--eg-radius-lg);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
}
.eg-bankcard {
    position: relative;
    display: grid;
    gap: 6px;
    padding: clamp(24px, 3.4vw, 36px);
    border-radius: 24px;
    background: var(--eg-grad);
    color: #fff;
    overflow: hidden;
    isolation: isolate;
    box-shadow: var(--eg-glow);
}
.eg-bankcard::before,
.eg-bankcard::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; }
.eg-bankcard::before { width: 280px; height: 280px; right: -90px; top: -120px; background: radial-gradient(circle, rgba(255, 255, 255, 0.22), transparent 65%); }
.eg-bankcard::after { width: 240px; height: 240px; left: -80px; bottom: -140px; background: radial-gradient(circle, rgba(255, 138, 0, 0.35), transparent 65%); }
.eg-bankcard__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 26px; }
.eg-bankcard__bank { display: inline-flex; align-items: center; gap: 8px; font-size: 1.3rem; font-weight: 800; letter-spacing: 0.04em; }
.eg-bankcard__cur { padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.18); font-size: 0.78rem; font-weight: 700; }
.eg-bankcard__label { margin: 0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.75; }
.eg-bankcard__number { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.eg-bankcard__number > span { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; }
.eg-bankcard__foot { display: flex; flex-wrap: wrap; gap: 16px 36px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.22); }
.eg-bankcard__foot strong { font-size: 0.95rem; letter-spacing: 0.04em; }
.eg-givemain__info h2 { margin: 0 0 10px; font-family: var(--eg-serif); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--eg-slate); }
.eg-givemain__info p { margin: 0 0 20px; color: var(--eg-muted); }
.eg-giveverse { margin: 0; padding: 18px 20px; border-left: 4px solid var(--eg-orange); border-radius: 0 var(--eg-radius-sm) var(--eg-radius-sm) 0; background: rgba(255, 87, 34, 0.06); font-family: var(--eg-serif); font-style: italic; color: var(--eg-slate); }
.eg-giveverse cite { display: block; margin-top: 8px; font-family: var(--eg-font); font-size: 0.85rem; font-style: normal; font-weight: 700; color: var(--eg-orange); }

.eg-givepage__head { margin-top: clamp(64px, 8vw, 96px); }
.eg-fxgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.eg-fxcard { padding: 26px; border-radius: var(--eg-radius-lg); background: #fff; border: 1px solid var(--eg-line); box-shadow: var(--eg-shadow-sm); transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease); }
.eg-fxcard:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-fxcard__head { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.eg-fxcard__symbol { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 18px; background: var(--eg-grad-accent); color: #fff; font-family: var(--eg-serif); font-size: 1.6rem; font-weight: 600; box-shadow: var(--eg-glow-accent); }
.eg-fxcard h3 { margin: 0; font-size: 1.2rem; font-weight: 800; color: var(--eg-slate); }
.eg-fxcard__head div span { font-size: 0.82rem; font-weight: 700; color: var(--eg-muted); }
.eg-fxcard__rows { display: grid; gap: 0; margin: 0; }
.eg-fxcard__rows > div { padding: 12px 0; border-top: 1px solid var(--eg-line); }
.eg-fxcard__rows dt { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--eg-muted); }
.eg-fxcard__rows dd { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px 0 0; }
.eg-fxcard__rows dd span { font-size: 1.02rem; font-weight: 800; letter-spacing: 0.03em; color: var(--eg-slate); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.eg-fxcard__rows .eg-copy { padding: 7px 10px; }

.eg-givenote {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: clamp(48px, 6vw, 72px);
    padding: clamp(24px, 3.4vw, 36px);
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
}
.eg-givenote .eg-way__icon { margin: 0; }
.eg-givenote > div:nth-child(2) { flex: 1; }
.eg-givenote h2 { margin: 0 0 4px; font-family: var(--eg-serif); font-size: clamp(1.4rem, 2.4vw, 1.8rem); font-weight: 600; color: var(--eg-slate); }
.eg-givenote p { margin: 0; color: var(--eg-muted); }
.eg-givenote__actions { display: flex; flex-wrap: wrap; gap: 10px; flex: none; }

.eg-toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    z-index: 1300;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-radius: 999px;
    background: var(--eg-slate-deep);
    color: #fff;
    font-weight: 600;
    box-shadow: var(--eg-shadow-lg);
    transform: translateX(-50%);
    animation: eg-toast-in 0.35s var(--eg-ease);
}
.eg-toast i { color: #3ddc84; }
.eg-toast[hidden] { display: none; }
@keyframes eg-toast-in { from { opacity: 0; transform: translate(-50%, 12px); } }

/* Contact */
.eg-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: stretch; }
.eg-contact__side { display: flex; flex-direction: column; gap: 22px; }
.eg-contact__more { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; }
.eg-contact__social { display: flex; align-items: center; gap: 10px; }

/* Contact action tiles (includes/reach.php) */
.eg-reach { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.eg-reach__tile {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 24px;
    border-radius: var(--eg-radius);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    overflow: hidden;
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-reach__tile::after {
    content: '';
    position: absolute;
    right: -40px;
    top: -40px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--eg-tint);
    transition: transform 0.6s var(--eg-ease);
}
.eg-reach__tile:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-reach__tile:hover::after { transform: scale(1.4); }
.eg-reach__icon {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    margin-bottom: 12px;
    border-radius: 16px;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.1rem;
    box-shadow: var(--eg-glow);
}
.eg-reach__tile h3 { position: relative; z-index: 1; margin: 0 0 4px; font-size: 1.05rem; font-weight: 800; color: var(--eg-slate); }
.eg-reach__tile p { position: relative; z-index: 1; margin: 0; font-size: 0.9rem; color: var(--eg-muted); }
.eg-reach__tile > a:not(.eg-reach__action) { position: relative; z-index: 1; font-weight: 700; color: var(--eg-slate); text-decoration: none; overflow-wrap: anywhere; }
.eg-reach__tile > a:not(.eg-reach__action):hover { color: var(--eg-purple); }
.eg-reach__action {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding: 10px 0 0;
    border: 0;
    background: none;
    color: var(--eg-purple);
    font: 700 0.92rem var(--eg-font);
    text-decoration: none;
    cursor: pointer;
}
.eg-reach__action i { transition: transform 0.35s var(--eg-ease); }
.eg-reach__action:hover { color: var(--eg-purple); }
.eg-reach__action:hover i { transform: translateX(4px); }

/* Map card with floating directions panel */
.eg-mapcard { position: relative; min-height: 460px; border-radius: var(--eg-radius-lg); overflow: hidden; background: var(--eg-sky-2); box-shadow: var(--eg-shadow); }
.eg-mapcard iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.eg-mapcard__panel {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 34px; /* keeps Google's attribution line visible */
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 14px 14px 16px;
    border-radius: var(--eg-radius);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--eg-shadow);
    backdrop-filter: blur(8px);
}
.eg-mapcard__icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: var(--eg-grad-accent); color: #fff; }
.eg-mapcard__panel > div { display: grid; flex: 1; min-width: 0; }
.eg-mapcard__panel strong { font-size: 0.95rem; color: var(--eg-slate); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.eg-mapcard__panel span { font-size: 0.82rem; color: var(--eg-muted); }
.eg-mapcard__panel .eg-btn { flex: none; }
.eg-mapcard--compact { min-height: 300px; }

/* Contact page (contact.php) */
.eg-pagehero--overlap { padding-bottom: clamp(110px, 12vw, 150px); }
.eg-contactpage { margin-top: clamp(-110px, -9vw, -80px); position: relative; z-index: 1; padding-top: 0; }
.eg-contactpage .eg-reach { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.eg-contactpage .eg-reach__tile { box-shadow: var(--eg-shadow); }
.eg-contactpage__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 28px; margin-top: clamp(40px, 5vw, 64px); align-items: start; }
.eg-formcard {
    display: grid;
    gap: 18px;
    padding: clamp(26px, 3.6vw, 44px);
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow);
    scroll-margin-top: calc(var(--eg-header-h) + 20px);
}
.eg-formcard__head h2 { margin: 0 0 6px; font-family: var(--eg-serif); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 600; color: var(--eg-slate); }
.eg-formcard__head p { margin: 0; color: var(--eg-muted); }
.eg-formcard .eg-btn { justify-self: start; }
.eg-contactpage__aside { display: grid; gap: 22px; }
.eg-gather { padding: 28px; border-radius: var(--eg-radius-lg); background: var(--eg-slate-deep); color: #fff; box-shadow: var(--eg-shadow); }
.eg-gather h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font-size: 1.15rem; font-weight: 800; color: #fff; }
.eg-gather h2 i { color: var(--eg-amber); }
.eg-gather ul { margin: 0; padding: 0; list-style: none; }
.eg-gather li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.eg-gather li span { display: grid; font-weight: 700; }
.eg-gather li small { font-size: 0.8rem; font-weight: 500; color: rgba(255, 255, 255, 0.65); }
.eg-gather li strong { color: var(--eg-amber); font-size: 0.92rem; text-align: right; }
.eg-helpcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: clamp(40px, 5vw, 64px); }
.eg-helpcard {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px;
    border-radius: var(--eg-radius);
    background: #fff;
    border: 1px solid var(--eg-line);
    color: var(--eg-muted);
    font-size: 0.9rem;
    text-decoration: none;
    transition: transform 0.4s var(--eg-ease), box-shadow 0.4s var(--eg-ease);
}
.eg-helpcard .eg-way__icon { width: 48px; height: 48px; margin: 0; font-size: 1.1rem; }
.eg-helpcard > span:nth-child(2) { display: grid; gap: 2px; flex: 1; }
.eg-helpcard strong { font-size: 1rem; color: var(--eg-slate); }
.eg-helpcard > i { color: var(--eg-purple); transition: transform 0.35s var(--eg-ease); }
.eg-helpcard:hover { color: var(--eg-muted); transform: translateY(-4px); box-shadow: var(--eg-shadow); }
.eg-helpcard:hover > i { transform: translateX(4px); }
.eg-contactpage__social { justify-content: center; margin-top: 40px; font-weight: 700; color: var(--eg-slate); }
.eg-social {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.05rem;
    text-decoration: none;
    transition: transform 0.35s var(--eg-ease), box-shadow 0.35s;
}
.eg-social:hover { color: #fff; transform: translateY(-4px); box-shadow: var(--eg-glow); }

/* =========================================================
   FOOTER
   ========================================================= */

.eg-footer {
    position: relative;
    margin-top: clamp(40px, 6vw, 80px);
    color: rgba(255, 255, 255, 0.78);
    background: linear-gradient(135deg, var(--eg-slate), var(--eg-slate-deep));
    overflow: hidden;
    isolation: isolate;
    font-size: 0.95rem;
}
.eg-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,100 L100,0 L100,100 Z" fill="rgba(106, 17, 203, 0.1)"/></svg>') center / cover no-repeat;
}
.eg-footer__rule { height: 4px; background: linear-gradient(to right, var(--eg-purple), var(--eg-blue), var(--eg-orange)); }

.eg-footer__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding: 40px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.eg-footer__cta h2 { margin: 0; font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 800; color: #fff; line-height: 1.25; }
.eg-footer__cta h2 em { font-family: var(--eg-serif); font-weight: 600; color: var(--eg-amber); }
.eg-footer__cta p { margin: 6px 0 0; color: rgba(255, 255, 255, 0.72); }
.eg-footer__cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.eg-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 0.8fr 0.9fr 1.2fr;
    gap: clamp(28px, 4vw, 56px);
    padding: clamp(48px, 6vw, 72px) 0;
}
.eg-footer .eg-brand__name { font-size: 1.9rem; }
.eg-footer .eg-brand__tag { color: rgba(255, 255, 255, 0.65); white-space: normal; }
.eg-footer .eg-brand__logo { width: 60px; height: 60px; box-shadow: 0 0 0 3px var(--eg-purple), 0 0 20px rgba(106, 17, 203, 0.35); }
.eg-footer__about { margin: 20px 0; line-height: 1.8; }
.eg-footer__verse {
    margin: 0;
    padding: 16px 18px;
    border-left: 4px solid var(--eg-orange);
    border-radius: 0 12px 12px 0;
    background: rgba(255, 255, 255, 0.05);
    font-family: var(--eg-serif);
    font-style: italic;
    color: rgba(255, 255, 255, 0.92);
}
.eg-footer__verse cite { display: block; margin-top: 6px; font-family: var(--eg-font); font-style: normal; font-size: 0.85rem; font-weight: 700; color: var(--eg-orange); }

.eg-footer h3 {
    position: relative;
    margin: 6px 0 22px;
    padding-bottom: 12px;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #fff;
}
.eg-footer h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 36px;
    height: 3px;
    border-radius: 2px;
    background: var(--eg-grad-x);
}
.eg-footer__col--visit h3::after { background: var(--eg-grad-accent); }
.eg-footer__links { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.eg-footer__links a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    transition: color 0.25s, transform 0.35s var(--eg-ease);
}
.eg-footer__links a::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--eg-purple);
    transition: background 0.25s, transform 0.35s var(--eg-ease);
}
.eg-footer__links a:hover { color: #fff; transform: translateX(4px); }
.eg-footer__links a:hover::before { background: var(--eg-orange); transform: scale(1.4); }

.eg-footer__times { display: grid; gap: 10px; margin: 0 0 22px; padding: 18px; list-style: none; border-radius: 14px; background: rgba(255, 255, 255, 0.05); }
.eg-footer__times li { display: flex; justify-content: space-between; gap: 12px; }
.eg-footer__times span:last-child { flex: none; font-weight: 700; color: var(--eg-orange); text-align: right; }
.eg-footer__contact { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.eg-footer__contact li { display: flex; gap: 12px; }
.eg-footer__contact > li > i { width: 18px; margin-top: 4px; color: var(--eg-blue); }
.eg-footer .eg-pending { margin: 0 0 14px; }
.eg-footer__contact .eg-pending { margin: 6px 0 0; }
.eg-footer__contact a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
.eg-footer__contact a:hover { color: #fff; }
.eg-footer__social { display: flex; gap: 10px; margin-top: 20px; }
.eg-footer__social a {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    text-decoration: none;
    transition: background 0.3s, transform 0.35s var(--eg-ease);
}
.eg-footer__social a:hover { background: var(--eg-grad); transform: translateY(-4px); color: #fff; }

.eg-footer__bottom { padding: 22px 0; background: rgba(0, 0, 0, 0.25); border-top: 1px solid rgba(255, 255, 255, 0.08); font-size: 0.86rem; }
.eg-footer__bottom .eg-container { display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
.eg-footer__bottom p { margin: 0; color: rgba(255, 255, 255, 0.65); }
.eg-footer__legal { display: flex; gap: 20px; flex-wrap: wrap; }
.eg-footer__legal a { color: rgba(255, 255, 255, 0.7); text-decoration: none; }
.eg-footer__legal a:hover { color: #fff; }

.eg-totop {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 900;
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border: 0;
    border-radius: 50%;
    background: var(--eg-grad-x);
    color: #fff;
    box-shadow: var(--eg-glow);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.3s, visibility 0.3s, transform 0.4s var(--eg-ease);
}
.eg-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.eg-totop:hover { transform: translateY(-4px); }
/* Sits above the chat launcher. */
.eg-site .eg-totop { bottom: 96px; }

/* =========================================================
   LIVE CHAT (footer.php + assets/js/eigc-chat.js)
   ========================================================= */

.eg-chat { position: fixed; right: 24px; bottom: 24px; z-index: 1200; font-family: var(--eg-font); }

.eg-chat__launcher {
    position: relative;
    display: grid;
    place-items: center;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: 50%;
    background: var(--eg-grad);
    color: #fff;
    font-size: 1.5rem;
    box-shadow: var(--eg-glow);
    cursor: pointer;
    transition: transform 0.35s var(--eg-ease), box-shadow 0.35s var(--eg-ease);
}
.eg-chat__launcher:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 16px 36px rgba(106, 17, 203, 0.38); }
.eg-chat__launcher:focus-visible { outline: 3px solid var(--eg-orange); outline-offset: 3px; }
.eg-chat__launcher i { grid-area: 1 / 1; transition: transform 0.35s var(--eg-ease), opacity 0.25s; }
.eg-chat__icon-close { opacity: 0; transform: rotate(-90deg); }
.eg-chat.is-open .eg-chat__icon-open { opacity: 0; transform: rotate(90deg); }
.eg-chat.is-open .eg-chat__icon-close { opacity: 1; transform: none; }

.eg-chat__badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--eg-orange);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
}
.eg-chat__badge[hidden] { display: none; }

.eg-chat__panel {
    position: absolute;
    right: 0;
    bottom: 76px;
    display: flex;
    flex-direction: column;
    width: 370px;
    max-height: min(600px, calc(100vh - 120px));
    overflow: hidden;
    border-radius: var(--eg-radius);
    background: #fff;
    box-shadow: var(--eg-shadow-lg);
    animation: eg-chat-in 0.35s var(--eg-ease);
}
.eg-chat__panel[hidden] { display: none; }
@keyframes eg-chat-in { from { opacity: 0; transform: translateY(14px) scale(0.98); } }

.eg-chat__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    background: var(--eg-grad);
    color: #fff;
}
.eg-chat__head img { width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.6); object-fit: cover; }
.eg-chat__head h2 { margin: 0; font-family: var(--eg-serif); font-size: 1.15rem; font-weight: 600; color: #fff; }
.eg-chat__head p { margin: 2px 0 0; font-size: 0.82rem; opacity: 0.9; }
.eg-chat__x {
    margin-left: auto;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    cursor: pointer;
}
.eg-chat__x:hover { background: rgba(255, 255, 255, 0.28); }

.eg-chat__start { display: grid; gap: 12px; padding: 18px; overflow-y: auto; }
.eg-chat__start[hidden] { display: none; }
.eg-chat__hello { margin: 0; padding: 12px 14px; border-radius: var(--eg-radius-sm); background: var(--eg-tint); color: var(--eg-ink); font-size: 0.92rem; }
.eg-chat__start label { display: grid; gap: 5px; font-size: 0.85rem; font-weight: 700; color: var(--eg-slate); }
.eg-chat__start label span { font-weight: 500; color: var(--eg-muted); }
.eg-chat__start input,
.eg-chat__start textarea,
.eg-chat__compose textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1.5px solid var(--eg-line);
    border-radius: var(--eg-radius-sm);
    background: var(--eg-mist);
    font: 500 0.95rem/1.4 var(--eg-font);
    color: var(--eg-ink);
    resize: none;
}
.eg-chat__start input:focus,
.eg-chat__start textarea:focus,
.eg-chat__compose textarea:focus { outline: none; border-color: var(--eg-purple); background: #fff; box-shadow: 0 0 0 3px rgba(106, 17, 203, 0.12); }
.eg-chat__start .eg-btn { justify-content: center; }
.eg-chat__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.eg-chat__thread { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.eg-chat__thread[hidden] { display: none; }
.eg-chat__messages {
    flex: 1;
    min-height: 220px;
    margin: 0;
    padding: 16px 16px 8px;
    overflow-y: auto;
    list-style: none;
    background: var(--eg-grad-page);
}
.eg-chat__msg { display: flex; flex-direction: column; max-width: 82%; margin-bottom: 10px; }
.eg-chat__msg--me { margin-left: auto; align-items: flex-end; }
.eg-chat__msg--them { align-items: flex-start; }
.eg-chat__who { margin: 4px 0 3px 4px; font-size: 0.75rem; font-weight: 700; color: var(--eg-purple); }
.eg-chat__bubble {
    margin: 0;
    padding: 9px 13px;
    border-radius: 16px;
    font-size: 0.93rem;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.eg-chat__msg--me .eg-chat__bubble { background: var(--eg-grad-x); color: #fff; border-bottom-right-radius: 4px; }
.eg-chat__msg--them .eg-chat__bubble { background: #fff; color: var(--eg-ink); border-bottom-left-radius: 4px; box-shadow: var(--eg-shadow-sm); }
.eg-chat__msg time { margin: 3px 4px 0; font-size: 0.7rem; color: var(--eg-muted); }

.eg-chat__closed { padding: 14px 16px; border-top: 1px solid var(--eg-line); text-align: center; font-size: 0.88rem; color: var(--eg-muted); }
.eg-chat__closed[hidden] { display: none; }
.eg-chat__closed p { margin: 0 0 10px; }

.eg-chat__compose { display: flex; align-items: flex-end; gap: 8px; padding: 12px; border-top: 1px solid var(--eg-line); background: #fff; }
.eg-chat__compose[hidden] { display: none; }
.eg-chat__compose textarea { max-height: 120px; }
.eg-chat__compose button {
    flex: none;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: var(--eg-grad-x);
    color: #fff;
    cursor: pointer;
}
.eg-chat__compose button:disabled { opacity: 0.55; cursor: wait; }

.eg-chat__error { margin: 0; padding: 10px 16px; background: #fdecea; color: #a12a1b; font-size: 0.85rem; }
.eg-chat__error[hidden] { display: none; }

/* =========================================================
   MINISTRY & DEPARTMENT PAGES (includes/groups.php), COUNSELLING, TESTIMONIES
   ========================================================= */

/* Hero: text beside a glass verse card */
.eg-grouphero__inner { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.eg-grouphero__verse {
    position: relative;
    margin: 0;
    padding: 44px 32px 30px;
    border-radius: var(--eg-radius-lg);
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: 0 30px 60px rgba(26, 12, 70, 0.25);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.eg-grouphero__icon {
    position: absolute;
    top: -34px;
    left: 32px;
    display: grid;
    place-items: center;
    width: 68px;
    height: 68px;
    border-radius: 22px;
    background: var(--eg-grad-accent);
    color: #fff;
    font-size: 1.6rem;
    box-shadow: var(--eg-glow-accent);
    transform: rotate(-6deg);
}
.eg-grouphero__verse blockquote { margin: 0 0 16px; font: italic 600 clamp(1.15rem, 1.8vw, 1.4rem)/1.5 var(--eg-serif); color: #fff; }
.eg-grouphero__verse figcaption { font-size: 0.78rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: #ffd2a8; }

/* About + at a glance */
.eg-groupabout__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: clamp(36px, 5vw, 72px); align-items: start; }
.eg-groupabout__text { margin: 0 0 16px; font-size: 1.06rem; color: var(--eg-muted); }
.eg-groupabout__text:first-of-type { font-size: 1.15rem; color: var(--eg-slate); }
.eg-glance {
    position: sticky;
    top: calc(var(--eg-header-h) + 24px);
    padding: 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow);
}
.eg-glance h3 { margin: 0 0 18px; font-size: 1.1rem; font-weight: 800; color: var(--eg-slate); }
.eg-glance ul { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.eg-glance li { display: flex; gap: 14px; align-items: flex-start; font-size: 0.95rem; color: var(--eg-muted); }
.eg-glance li strong { display: block; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--eg-slate); }
.eg-glance li a { color: var(--eg-purple); font-weight: 600; text-decoration: none; }
.eg-glance li a:hover { text-decoration: underline; }
.eg-glance__icon { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 14px; background: var(--eg-tint); color: var(--eg-purple); }
.eg-glance__extra {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    padding: 14px 16px;
    border-radius: var(--eg-radius);
    background: var(--eg-grad-accent);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    box-shadow: var(--eg-glow-accent);
}
.eg-glance__extra .fa-arrow-right { margin-left: auto; }
.eg-glance__extra:hover { color: #fff; }

/* What we do */
.eg-groupfocus { padding-top: 0; }
.eg-focus { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0; padding: 0; list-style: none; }
.eg-focus__item {
    position: relative;
    padding: 30px 26px 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    overflow: hidden;
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-focus__item::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--eg-grad-x); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--eg-ease); }
.eg-focus__item:hover { transform: translateY(-6px); box-shadow: var(--eg-shadow); }
.eg-focus__item:hover::after { transform: none; }
.eg-focus__num { position: absolute; top: 18px; right: 22px; font: italic 600 2.4rem/1 var(--eg-serif); color: rgba(106, 17, 203, 0.1); }
.eg-focus__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 20px; border-radius: 18px; background: var(--eg-grad); color: #fff; font-size: 1.3rem; box-shadow: var(--eg-glow); }
.eg-focus__item h3 { margin: 0 0 8px; font-size: 1.15rem; font-weight: 800; color: var(--eg-slate); }
.eg-focus__item p { margin: 0; font-size: 0.95rem; color: var(--eg-muted); }

/* Join / what to expect card */
.eg-groupjoin { padding-top: 0; }
.eg-groupjoin__card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
    padding: clamp(30px, 4.5vw, 56px);
    border-radius: var(--eg-radius-lg);
    background: radial-gradient(60% 80% at 100% 0%, rgba(255, 138, 0, 0.28), transparent 60%), linear-gradient(135deg, #2a0a5e, var(--eg-purple) 55%, var(--eg-blue));
    color: #fff;
    box-shadow: var(--eg-shadow-lg);
    overflow: hidden;
}
.eg-groupjoin__intro .eg-title { font-size: clamp(1.8rem, 3.2vw, 2.4rem); }
.eg-groupjoin__note { display: flex; gap: 10px; align-items: center; margin: 0; color: rgba(255, 255, 255, 0.85); font-weight: 600; }
.eg-groupjoin__steps { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.eg-groupjoin__steps li {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: var(--eg-radius);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
}
.eg-groupjoin__steps li > span { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%; background: #fff; color: var(--eg-purple); font-weight: 800; }
.eg-groupjoin__steps strong { display: block; color: #fff; font-size: 1.02rem; }

/* Explore other groups */
.eg-groupmore__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 22px; text-align: center; }
.eg-groupmore__inner h2 { flex: 1 1 100%; margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--eg-slate); }
.eg-groupmore__inner .eg-way__chips { justify-content: center; margin: 0; }
.eg-groupmore__inner .eg-way__chips a { background: #fff; box-shadow: var(--eg-shadow-sm); }
.eg-groupmore__inner .eg-way__chips a:hover { background: var(--eg-purple); }
.eg-groupmore__inner .eg-link { flex: 1 1 100%; justify-content: center; }

/* Counselling topics */
.eg-topics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.eg-topic {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 24px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-topic:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-topic__icon { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--eg-tint); color: var(--eg-purple); font-size: 1.2rem; transition: background 0.3s, color 0.3s; }
.eg-topic:hover .eg-topic__icon { background: var(--eg-grad); color: #fff; }
.eg-topic h3 { margin: 0 0 4px; font-size: 1.08rem; font-weight: 800; color: var(--eg-slate); }
.eg-topic p { margin: 0; font-size: 0.93rem; color: var(--eg-muted); }
.eg-formnote { display: flex; gap: 8px; align-items: center; margin: 0; font-size: 0.85rem; color: var(--eg-muted); }
.eg-formnote i { color: var(--eg-purple); }
.eg-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9rem; color: var(--eg-muted); cursor: pointer; }
.eg-consent input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--eg-purple); }

/* Testimonies */
.eg-testi {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 28px;
    border-radius: var(--eg-radius-lg);
    background: #fff;
    border: 1px solid var(--eg-line);
    box-shadow: var(--eg-shadow-sm);
    transition: transform 0.45s var(--eg-ease), box-shadow 0.45s var(--eg-ease);
}
.eg-testi:hover { transform: translateY(-5px); box-shadow: var(--eg-shadow); }
.eg-testi blockquote { margin: 14px 0 22px; font: italic 500 1.08rem/1.6 var(--eg-serif); color: var(--eg-slate); }
.eg-testi__tag { align-self: flex-start; padding: 5px 12px; border-radius: 999px; background: var(--eg-tint); color: var(--eg-purple); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.eg-testi__who { display: flex; gap: 12px; align-items: center; margin-top: auto; font-size: 0.85rem; color: var(--eg-muted); }
.eg-testi__who strong { display: block; font-size: 1rem; color: var(--eg-slate); }
.eg-testi__avatar { display: grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; background: var(--eg-grad); color: #fff; font-weight: 800; font-size: 1.1rem; }
.eg-testi--feature {
    max-width: 900px;
    margin: 0 auto clamp(36px, 5vw, 56px);
    padding: clamp(36px, 5vw, 56px);
    text-align: center;
    align-items: center;
    background: linear-gradient(#fff, #fff) padding-box, var(--eg-grad) border-box;
    border: 2px solid transparent;
    box-shadow: var(--eg-shadow);
}
.eg-testi--feature blockquote { margin: 18px 0 28px; font-size: clamp(1.35rem, 2.6vw, 1.9rem); line-height: 1.45; }
.eg-testi--feature .eg-testi__who { margin-top: 0; text-align: left; }
.eg-testi--feature .eg-testi__tag { margin-left: 8px; align-self: center; }
.eg-testi__mark { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--eg-grad-accent); color: #fff; font-size: 1.5rem; box-shadow: var(--eg-glow-accent); }
.eg-testis__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
/* A lone card on the last row widens so the grid never ends with a gap. */
.eg-testis__grid > :last-child:nth-child(3n + 2) { grid-column: span 2; }
.eg-testis__grid > :last-child:nth-child(3n + 1) { grid-column: 1 / -1; }

@media (max-width: 1080px) {
    .eg-focus,
    .eg-topics,
    .eg-testis__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eg-testis__grid > :last-child:nth-child(n) { grid-column: auto; }
    .eg-testis__grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
    .eg-groupjoin__card { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .eg-grouphero__inner,
    .eg-groupabout__grid { grid-template-columns: 1fr; }
    .eg-grouphero__verse { margin-top: 30px; }
    .eg-glance { position: static; }
}
@media (max-width: 640px) {
    .eg-focus,
    .eg-topics,
    .eg-testis__grid { grid-template-columns: 1fr; }
    .eg-grouphero__verse { padding: 42px 22px 24px; }
    .eg-groupjoin__intro .eg-btn { width: 100%; justify-content: center; }
    .eg-testi--feature .eg-testi__who { flex-wrap: wrap; justify-content: center; }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1080px) {
    .eg-services__grid { grid-template-columns: repeat(2, 1fr); }
    .eg-footer__grid { grid-template-columns: 1fr 1fr; }
    .eg-quotes__track { grid-auto-columns: calc((100% - 24px) / 2); }
    .eg-parishes__inner { grid-template-columns: 1fr; }
    .eg-parishes__intro { text-align: center; }
    .eg-parishes__intro .eg-lead { margin: 0 auto; }
    .eg-parishes__stats { justify-content: center; }
    .eg-parishes__actions { justify-content: center; }
    .eg-parishgrid,
    .eg-sermongrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eg-nowplaying { grid-template-columns: 1fr; }
    .eg-libbar__search { max-width: none; }
    .eg-pathway { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 44px; }
    .eg-pathway::before { display: none; }
    .eg-ways__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eg-interest__inner { grid-template-columns: 1fr; }
    .eg-contactpage .eg-reach { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .eg-contactpage__grid,
    .eg-helpcards { grid-template-columns: 1fr; }
    .eg-givemain,
    .eg-fxgrid { grid-template-columns: 1fr; }
    .eg-givenote { flex-direction: column; align-items: flex-start; }
    .eg-askcta { flex-direction: column; align-items: flex-start; }
    .eg-eventfeature,
    .eg-newsletter { grid-template-columns: 1fr; }
    .eg-eventfeature__media { min-height: 0; aspect-ratio: 1; }
    .eg-pastgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .eg-pastgrid { grid-template-columns: 1fr; }
    .eg-event--flyer { grid-template-columns: 1fr; }
    .eg-event--flyer .eg-event__media { aspect-ratio: 1; }
    .eg-event__dates { flex-wrap: wrap; }
    .eg-eventfeature__actions .eg-btn,
    .eg-newsletter__form .eg-btn { width: 100%; justify-content: center; }
    .eg-newsletter { padding: 22px 18px; }
}

@media (max-width: 900px) {
    .eg-hqcard { grid-template-columns: 1fr; }
    .eg-hqcard__art { min-height: 180px; }
    .eg-findcta { flex-direction: column; align-items: flex-start; }
    .eg-about__grid,
    .eg-salvation__grid,
    .eg-events__grid,
    .eg-watch__inner,
    .eg-devotion__card,
    .eg-contact__grid,
    .eg-give__inner { grid-template-columns: 1fr; }
    .eg-about__grid .eg-portrait { margin-bottom: 30px; }
    .eg-ministries__grid { grid-template-columns: 1fr 1fr; }
    .eg-salvation__aside { position: static; }
    .eg-watch__visual { min-height: 180px; }
    .eg-give__inner { text-align: center; }
    .eg-give__inner .eg-head--left { text-align: center; margin: 0 auto; }
}

@media (max-width: 640px) {
    .eg-services { margin-top: -2rem; }
    .eg-services__grid,
    .eg-ministries__grid,
    .eg-parishes__list,
    .eg-parishgrid,
    .eg-sermongrid,
    .eg-footer__grid { grid-template-columns: 1fr; }
    .eg-parishes__stats { gap: 16px; }
    .eg-parishes__stats li + li { padding-left: 16px; }
    .eg-parishes__actions .eg-btn,
    .eg-hqcard__actions .eg-btn,
    .eg-findcta__actions,
    .eg-findcta__actions .eg-btn,
    .eg-nowplaying__actions .eg-btn { width: 100%; justify-content: center; }
    .eg-libbar__sort { width: 100%; overflow-x: auto; }
    .eg-libbar__sort a { flex: 1; justify-content: center; white-space: nowrap; padding: 9px 12px; }
    .eg-libbar__search .eg-btn { padding: 10px 16px; }
    .eg-pathway,
    .eg-ways__grid,
    .eg-field-row { grid-template-columns: 1fr; }
    .eg-way--wide { grid-column: auto; flex-direction: column; gap: 0; }
    .eg-pagehero__actions .eg-btn,
    .eg-interest__form .eg-btn { width: 100%; justify-content: center; }
    .eg-services__cta,
    .eg-services__cta .eg-btn { width: 100%; }
    .eg-quotes__track { grid-auto-columns: 86%; }
    .eg-step summary { gap: 14px; padding: 18px; }
    .eg-step__body { padding: 0 18px 20px; }
    .eg-portrait__card { min-width: 0; width: 82%; }
    .eg-mapcard { min-height: 360px; }
    .eg-reach,
    .eg-contactpage .eg-reach { grid-template-columns: 1fr; }
    .eg-mapcard__panel { flex-wrap: wrap; }
    .eg-mapcard__panel .eg-btn { width: 100%; justify-content: center; }
    .eg-give__acct { min-width: 0; text-align: left; }
    .eg-askcta__actions,
    .eg-askcta__actions .eg-btn { width: 100%; justify-content: center; }
    .eg-faq summary { padding: 18px; font-size: 1rem; }
    .eg-faq__a { padding: 0 18px 18px; }
    .eg-givenote__actions,
    .eg-givenote__actions .eg-btn { width: 100%; justify-content: center; }
    .eg-contact__more,
    .eg-contact__more .eg-btn,
    .eg-formcard .eg-btn { width: 100%; justify-content: center; }
    .eg-footer__cta-actions,
    .eg-footer__cta-actions .eg-btn { width: 100%; }
    .eg-devotion__foot { flex-direction: column; align-items: stretch; }
    .eg-devotion__pager { justify-content: space-between; }
    .eg-devotion__share { justify-content: center; }
    .eg-totop { right: 16px; bottom: 16px; width: 46px; height: 46px; }
    .eg-site .eg-totop { bottom: 88px; }
    .eg-chat { right: 16px; bottom: 16px; }
    .eg-chat__launcher { width: 56px; height: 56px; }
    .eg-chat__panel { position: fixed; right: 12px; left: 12px; bottom: 84px; width: auto; max-height: calc(100dvh - 100px); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .eg-site *,
    .eg-site *::before,
    .eg-site *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .eg-js [data-reveal] { opacity: 1; transform: none; }
}
