/* Lighthouse Global Church - Unique design: sharp, modern, youthful, vibrant */
:root {
    --color-primary: #ffe100;
    --color-primary-light: #ffea33;
    --color-primary-dark: #e5ca00;
    /* Higher-contrast gold for text/borders on light backgrounds (WCAG AA) */
    --color-primary-on-light: #9a7b00;
    --color-torch-red: #B22222;
    --color-gold-soft: rgba(255,225,0,0.1);
    --color-gold-bg: rgba(255,225,0,0.06);
    --color-dark: #1a1a1a;
    --color-dark-soft: #2d2d2d;
    --color-muted: #5c5c5c;
    --color-bg: #fafafa;
    --color-bg-warm: #FFFBF5;
    --color-light: #fff;
    --font-sans: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-heading: 'Sora', -apple-system, BlinkMacSystemFont, sans-serif;
    --text-hero: clamp(2.75rem, 6.5vw, 4.25rem);
    --text-display: clamp(2rem, 4vw, 3rem);
    --text-section: clamp(1.6rem, 3.5vw, 2.4rem);
    --radius: 12px;
    --radius-sm: 8px;
    --shadow: 0 4px 20px rgba(26,26,26,0.06);
    --shadow-hover: 0 8px 32px rgba(26,26,26,0.1);
    --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
    --beam-gold: rgba(255, 225, 0, 0.18);
    --beam-blue: rgba(64, 167, 255, 0.14);
}

* { box-sizing: border-box; }
html { margin: 0; padding: 0; width: 100%; overflow-x: hidden; scroll-behavior: smooth; }

/* Screen-reader only - visually hidden, available to assistive tech */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
body { margin: 0; padding: 0; width: 100%; min-width: 100%; font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: var(--color-dark); background: var(--color-bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* Skip link - visible only when focused (keyboard nav) */
.skip-link {
    position: absolute;
    top: -100px;
    left: 0.5rem;
    z-index: 1000;
    padding: 0.75rem 1.25rem;
    background: var(--color-dark);
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-hover);
    transition: top 0.2s ease;
}
.skip-link:focus-visible {
    top: 0.75rem;
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

/* Focus-visible - clear focus rings for keyboard users (no outline on mouse click) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--color-primary-on-light);
    outline-offset: 2px;
}

/* Elite visual motif: soft light texture */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background:
        radial-gradient(900px 320px at 10% 0%, rgba(255,225,0,0.06), transparent 70%),
        radial-gradient(760px 260px at 90% 12%, rgba(64,167,255,0.05), transparent 70%);
}

/* Scroll progress bar - top of page */
.scroll-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light)); transform: scaleX(0); transform-origin: left; z-index: 999; transition: transform 0.08s ease-out; }

/* Scroll indicator - clickable, scrolls down */
.scroll-indicator { position: fixed; right: 1rem; top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; color: rgba(255,255,255,0.8); writing-mode: vertical-rl; text-orientation: mixed; font-size: 0.75rem; letter-spacing: 0.2em; cursor: pointer; transition: var(--transition); }
.scroll-indicator:hover { color: var(--color-primary); }
.scroll-indicator svg { flex-shrink: 0; }
.scroll-indicator.hidden { opacity: 0; pointer-events: none; }
@media (max-width: 900px) { .scroll-indicator { display: none; } }

/* Scroll to top - appears when scrolled down */
.scroll-to-top { position: fixed; right: 1rem; bottom: 2rem; z-index: 45; width: 48px; height: 48px; min-width: 48px; min-height: 48px; border: none; border-radius: 50%; background: var(--color-dark); color: #fff; cursor: pointer; display: none; align-items: center; justify-content: center; box-shadow: var(--shadow-hover); transition: var(--transition); }
.scroll-to-top.visible { display: flex; }
.scroll-to-top:hover { background: var(--color-primary); color: var(--color-dark); }
.scroll-to-top:focus-visible { outline-offset: 3px; }
@media (max-width: 900px) { .scroll-to-top { right: 1rem; bottom: 1.5rem; width: 44px; height: 44px; } }

/* Header - fixed, full width, transitions to white + black logo when scrolled */
.site-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; z-index: 100; background: #000; box-shadow: 0 2px 10px rgba(0,0,0,0.3); transition: background 0.35s ease, box-shadow 0.35s ease; }
.site-header.header-scrolled { background: #fff; box-shadow: 0 2px 20px rgba(0,0,0,0.08); }
.header-inner { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 140px; }
.logo-wrap { flex-shrink: 0; overflow: hidden; margin-right: 2rem; max-width: 300px; }
.logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; max-width: 100%; }
.logo .logo-img {
    height: 140px;
    width: auto;
    max-width: 300px;
    object-fit: contain;
    transition: filter 0.35s ease;
}
.header-nav-center { flex: 1; display: flex; justify-content: center; align-items: center; min-width: 0; padding: 0 2rem 0 1rem; }
/* Dual logos: light variant on dark header, dark variant on white header */
.site-header:not(.header-scrolled) .logo .logo-img--dark { display: none; }
.site-header:not(.header-scrolled) .logo .logo-img--light { display: block; }
.site-header.header-scrolled .logo .logo-img--dark { display: block; }
.site-header.header-scrolled .logo .logo-img--light { display: none; }
/* Single logo fallback: invert on dark header when no light variant */
.site-header:not(.header-scrolled) .logo .logo-img--single { filter: invert(1); }
.site-header.header-scrolled .logo .logo-img--single { filter: none; }
.logo-text { font-size: 1.1rem; font-weight: 700; color: var(--color-primary); letter-spacing: 0.02em; transition: color 0.35s ease; }
.site-header.header-scrolled .logo-text { color: var(--color-dark); }
.header-nav-actions { display: flex; align-items: center; gap: 0.35rem; flex-shrink: 0; margin-left: auto; padding-left: 3rem; }
.header-actions { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; }
/* Header social - between nav and CTAs on desktop */
.header-social { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; padding-left: 0.75rem; }
.header-social a { color: rgba(255,255,255,0.85); padding: 0.25rem; transition: color 0.2s ease; display: flex; align-items: center; justify-content: center; }
.header-social a:hover { color: var(--color-primary); }
.site-header.header-scrolled .header-social a { color: rgba(26,26,26,0.75); }
.site-header.header-scrolled .header-social a:hover { color: var(--color-primary-on-light); }
.header-social svg { width: 20px; height: 20px; display: block; }
/* Header social mobile - in nav overlay, hidden on desktop */
.header-social-mobile { display: none; }
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 12px; min-width: 48px; min-height: 48px; flex-direction: column; justify-content: center; gap: 6px; transition: var(--transition); -webkit-tap-highlight-color: transparent; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: #fff; margin: 0; transition: transform 0.3s ease, opacity 0.3s ease; }
.site-header.header-scrolled .nav-toggle span { background: var(--color-dark); }
.site-header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.site-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
.site-header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.main-nav { flex-shrink: 0; display: flex; align-items: center; }
.main-nav ul { display: flex; align-items: center; gap: 0.35rem; list-style: none; margin: 0; padding: 0; flex-wrap: nowrap !important; flex-shrink: 0; }
.main-nav ul li { flex-shrink: 0; display: flex; align-items: center; }
.main-nav a { text-decoration: none; color: #fff; padding: 0.45rem 0.55rem; font-weight: 600; font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; transition: color 0.35s ease; white-space: nowrap; line-height: 1.2; display: inline-flex; align-items: center; }
.main-nav a:hover { color: var(--color-primary); }
.main-nav a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: 4px; }
.site-header.header-scrolled .main-nav a { color: var(--color-dark); }
.site-header.header-scrolled .main-nav a:hover { color: var(--color-primary-on-light); }
.site-header.header-scrolled .main-nav a:focus-visible { outline-color: var(--color-primary-on-light); }
.main-nav .has-dropdown { position: relative; }
.main-nav .has-dropdown:hover .dropdown { opacity: 1; visibility: visible; }
.main-nav .dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: max-content;
    min-width: 240px;
    background: #000;
    border-radius: var(--radius);
    text-align: left;
    box-shadow: var(--shadow-hover);
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
    padding: 0.5rem 0;
    list-style: none;
    margin: 0;
    display: block;
}
.main-nav .dropdown li { display: block; margin: 0; width: 100%; }
.site-header.header-scrolled .main-nav .dropdown {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
}
.main-nav .dropdown a {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 0.65rem 1.25rem;
        color: #fff !important;
        white-space: nowrap;
        text-align: left;
        transition: background 0.2s ease, color 0.2s ease;
}
.site-header.header-scrolled .main-nav .dropdown a { color: var(--color-dark) !important; }
.main-nav .dropdown a:hover {
    color: var(--color-primary) !important;
    background: rgba(255,255,255,0.08);
}
.site-header.header-scrolled .main-nav .dropdown a:hover {
    background: var(--color-gold-bg);
}
/* Join - outline CTA (secondary to Give) */
.btn-member {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: transparent !important;
    color: #fff !important;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 0.45rem 0.85rem;
    border-radius: 10px;
    border: 2px solid rgba(255,255,255,0.7);
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.btn-member:hover {
    border-color: var(--color-primary);
    background: rgba(255,225,0,0.12) !important;
    color: var(--color-primary) !important;
}
.site-header.header-scrolled .btn-member {
    color: var(--color-dark) !important;
    border-color: rgba(26,26,26,0.4);
}
.site-header.header-scrolled .btn-member:hover {
    border-color: var(--color-primary);
    background: var(--color-gold-bg) !important;
    color: var(--color-primary-on-light) !important;
}
.btn-member:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 3px;
}

.btn-give {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--color-primary) !important;
    color: var(--color-dark) !important;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.45rem 0.9rem;
    border-radius: 10px;
    border: 2px solid transparent;
    box-shadow: 0 4px 16px rgba(255, 225, 0, 0.35), 0 2px 0 rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.btn-give:hover {
    background: var(--color-primary-light) !important;
    color: var(--color-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(255, 225, 0, 0.45), 0 3px 0 rgba(0, 0, 0, 0.08);
}
.btn-give:focus-visible {
    outline: 3px solid var(--color-dark);
    outline-offset: 3px;
}

@media (max-width: 900px) {
    .header-inner { flex-wrap: nowrap; gap: 0.75rem; padding: 0 1.5rem; justify-content: space-between; min-height: 130px; }
    .logo-wrap { margin-right: 1rem; max-width: 320px; }
    .logo .logo-img { height: 130px; max-width: 320px; }
    .header-social { display: none; }
    .header-social-mobile { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1.25rem 1rem; margin-top: auto; border-top: 1px solid rgba(255,255,255,0.12); }
    .header-social-mobile a { color: rgba(255,255,255,0.9); padding: 0.35rem; }
    .header-social-mobile a:hover { color: var(--color-primary); }
    .header-social-mobile svg { width: 24px; height: 24px; }
    .header-nav-center {
        position: absolute;
        top: 130px;
        left: 0;
        right: 0;
        background: #000;
        padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom, 0));
        display: none;
        box-shadow: var(--shadow-hover);
        max-height: calc(100vh - 130px - env(safe-area-inset-bottom, 0));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        flex: none;
        justify-content: flex-start;
        padding: 1rem;
    }
    .site-header.nav-open .header-nav-center { display: flex; flex-direction: column; }
    .main-nav { flex: none; margin-left: 0; background: transparent !important; display: block !important; }
    .header-nav-actions { margin-left: auto; }
    .nav-toggle { display: flex; flex-shrink: 0; order: 2; }
    .header-actions { order: 1; }
    .main-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
    .main-nav > ul > li { border-bottom: 1px solid rgba(255,255,255,0.08); }
    .main-nav > ul > li:last-child { border-bottom: none; }
    .main-nav > ul > li > a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 48px;
        padding: 0.85rem 1rem;
        font-size: 0.95rem;
        -webkit-tap-highlight-color: rgba(255,225,0,0.2);
    }
    .main-nav .has-dropdown > a::after {
        content: '';
        width: 8px;
        height: 8px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
        margin-left: 0.5rem;
        transition: transform 0.25s ease;
    }
    .main-nav .has-dropdown.expanded > a::after { transform: rotate(-135deg); }
    .main-nav .dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        box-shadow: none;
        padding: 0 0 0 1rem;
        min-width: 0;
        width: 100%;
        display: none;
        border-left: 2px solid rgba(255,255,255,0.2);
        margin: 0 0 0.5rem 0;
    }
    .main-nav .dropdown li { border: none; }
    .main-nav .dropdown a {
        min-height: 44px;
        padding: 0.75rem 1rem;
        display: flex;
        align-items: center;
        font-size: 0.9rem;
        white-space: normal;
    }
    /* Hide scrollbar on mobile nav overlay (keep scroll functionality) */
    .header-nav-center { scrollbar-width: none; -ms-overflow-style: none; }
    .header-nav-center::-webkit-scrollbar { display: none; width: 0; height: 0; }
    /* Header actions: CTAs - proper mobile layout */
    .header-actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
    .btn-member { padding: 0.5rem 0.9rem; font-size: 0.75rem; min-height: 44px; }
    .btn-give { padding: 0.5rem 1rem; font-size: 0.8rem; min-height: 44px; }
    .main-content { padding-top: 130px; }
}
@media (max-width: 480px) {
    .header-inner { padding: 0 1rem; gap: 0.5rem; min-height: 100px; }
    .logo-wrap { margin-right: 0.75rem; max-width: 280px; }
    .logo .logo-img { height: 100px; max-width: 280px; }
    .header-nav-center { top: 100px; max-height: calc(100vh - 100px - env(safe-area-inset-bottom, 0)); }
    .btn-member { padding: 0.4rem 0.7rem; font-size: 0.7rem; min-height: 44px; }
    .btn-give { padding: 0.45rem 0.85rem; font-size: 0.75rem; min-height: 44px; }
    .main-content { padding-top: 100px; }
}

/* Hero - Lighthouse unique: centered, bold, warm + entrance animation */
.hero { position: relative; width: 100%; min-height: 92vh; display: flex; align-items: center; overflow: hidden; }
.hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: translate3d(var(--hero-pan-x, 0px), var(--hero-parallax, 0px), 0) scale(var(--hero-scale, 1));
    transition: transform 0.6s var(--ease-out-expo);
}
.hero:hover .hero-bg { --hero-scale: 1.04; }
.hero-overlay { position: absolute; inset: 0; }
.hero::before,
.hero::after {
    content: '';
    position: absolute;
    inset: -20% -10%;
    pointer-events: none;
    z-index: 1;
}
.hero::before {
    background:
        conic-gradient(from 200deg at 15% 15%, transparent 0deg, var(--beam-gold) 38deg, transparent 82deg),
        conic-gradient(from 10deg at 85% 10%, transparent 0deg, var(--beam-blue) 34deg, transparent 78deg);
    mix-blend-mode: screen;
}
.hero::after {
    background: radial-gradient(700px 260px at 50% 100%, rgba(255,225,0,0.12), transparent 72%);
}
.hero-inner { position: relative; z-index: 1; width: 100%; max-width: 900px; margin: 0 auto; padding: 0 1.5rem; }
.hero-centered .hero-content { text-align: center; }
.hero-tagline { font-size: 0.95rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-primary); margin: 0 0 0.75rem; font-weight: 600; opacity: 0; animation: fadeInUp 0.8s var(--ease-out-expo) 0.2s forwards; }
.hero-headline { font-family: var(--font-heading); font-size: var(--text-hero); font-weight: 800; color: #fff; margin: 0 0 1rem; line-height: 1.1; letter-spacing: -0.03em; opacity: 0; animation: fadeInUp 0.9s var(--ease-out-expo) 0.4s forwards; }
.hero-pillars { display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; margin: 1.5rem 0 2rem; font-size: 1rem; font-weight: 600; color: rgba(255,255,255,0.9); opacity: 0; animation: fadeInUp 0.8s var(--ease-out-expo) 0.65s forwards; }
.hero-pillars span { padding: 0.35rem 1rem; background: rgba(255,255,255,0.1); border-radius: 50px; transition: var(--transition); }
.hero-pillars span:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; opacity: 0; animation: fadeInUp 0.8s var(--ease-out-expo) 0.9s forwards; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
    .hero-tagline, .hero-headline, .hero-pillars, .hero-ctas { animation: none; opacity: 1; }
    .hero-bg, .hero:hover .hero-bg { transform: none; }
    .section[data-animate], .section[data-animate].animate-in,
    .map-section[data-animate], .map-section.animate-in { opacity: 1; transform: none; transition: none; }
}
@media (max-width: 768px) { .hero-pillars { gap: 0.75rem; } }

/* Glimpse - dual-row infinite scroll (top→left, bottom→right) like House of Praise Our Expressions */
.glimpse-section { background: var(--color-dark); padding: 2rem 0 4rem; overflow: hidden; }
.glimpse-row {
    display: flex;
    overflow: hidden;
    margin-bottom: 0.5rem;
    user-select: none;
}
.glimpse-row:last-child { margin-bottom: 0; }
.glimpse-track {
    display: flex;
    gap: 0.75rem;
    width: max-content;
    animation: glimpse-scroll-left 45s linear infinite;
}
.glimpse-row--right .glimpse-track { animation-name: glimpse-scroll-right; }
@keyframes glimpse-scroll-left {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@keyframes glimpse-scroll-right {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}
.glimpse-slide {
    flex: 0 0 320px;
    width: 320px;
    height: 220px;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
}
.glimpse-slide-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.5s var(--ease-out-expo);
}
.glimpse-slide:hover .glimpse-slide-img { transform: scale(1.05); }
.glimpse-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,0.8) 100%);
    display: flex;
    align-items: flex-end;
    padding: 1.25rem;
}
.glimpse-label {
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
    padding: 0.35rem 0.75rem;
    background: rgba(255,225,0,0.25);
    border-radius: 6px;
    backdrop-filter: blur(4px);
}
@media (prefers-reduced-motion: reduce) {
    .glimpse-track { animation: none; }
}
@media (max-width: 600px) {
    .glimpse-slide { flex: 0 0 260px; width: 260px; height: 180px; }
}

/* Gather With Us - HOP-inspired service times */
.gather-section { background: var(--color-bg-warm); padding: 5rem 0; }
.gather-section .section-title-bar { border-color: var(--color-dark); background: rgba(255,251,245,0.9); }
.gather-section .section-title { color: var(--color-dark); }
.section-sub { font-size: 1.1rem; color: var(--color-muted); margin: -0.5rem 0 2rem; }
.gather-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.gather-card { background: #fff; padding: 2rem; border-radius: var(--radius); box-shadow: var(--shadow); border: 2px solid transparent; transition: var(--transition); }
.gather-card:hover { border-color: var(--color-primary); box-shadow: 0 16px 48px rgba(255,225,0,0.18); transform: translateY(-8px); }
.gather-day { display: block; font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; color: var(--color-primary-on-light); margin-bottom: 0.25rem; }
.gather-time { font-size: 1.5rem; font-weight: 700; color: var(--color-dark); }
.gather-desc { margin: 0.5rem 0; color: var(--color-muted); font-size: 0.95rem; }
.gather-loc { font-size: 0.85rem; color: var(--color-primary-on-light); font-weight: 600; margin-bottom: 1rem; display: block; }
.gather-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }

/* New Here - warm strip */
.new-here-section { background: #fff; padding: 3rem 0; border-top: 1px solid rgba(255,225,0,0.15); }
.new-here-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
/* Recent Sermons - youth-centric media cards (streaming / podcast feel) */
.recent-sermons-section { background: #fff; padding: 4rem 0; }
.recent-sermons-section .section-title-bar { border-color: var(--color-dark); background: var(--color-bg-warm); }
.recent-sermons-section .section-title { color: var(--color-dark); }
.sermon-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}
.sermon-card {
    text-decoration: none;
    color: inherit;
    display: block;
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.35s var(--ease-out-expo), box-shadow 0.35s ease;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
.sermon-card:hover {
    transform: translateY(-8px) scale(1.01);
    box-shadow: 0 20px 40px rgba(0,0,0,0.14);
}
.sermon-card-img {
    position: relative;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
}
.sermon-card-img::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 25%, rgba(0,0,0,0.92) 100%);
    pointer-events: none;
    transition: background 0.35s ease;
}
.sermon-card:hover .sermon-card-img::after {
    background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.92) 100%);
}
.sermon-card-tag {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 2;
    padding: 0.3rem 0.65rem;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: #fff;
    color: var(--color-dark);
    border: none;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.sermon-card-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.85);
    z-index: 2;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.95);
    color: var(--color-dark);
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(0,0,0,0.35);
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s var(--ease-out-expo);
}
.sermon-card:hover .sermon-card-play {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.sermon-card-play svg {
    margin-left: 4px;
}
.sermon-card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.75rem 1.25rem 1.25rem;
    z-index: 1;
}
.sermon-card-title {
    margin: 0 0 0.4rem;
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.sermon-card-desc {
    margin: 0;
    font-size: 0.85rem;
    color: rgba(255,255,255,0.88);
    line-height: 1.45;
}
@media (max-width: 900px) {
    .sermon-cards { grid-template-columns: 1fr; }
    .sermon-card:hover { transform: translateY(-6px); }
}

/* We Raise Lights - dark section */
.lights-section { background: #000; padding: 5rem 0; }
.lights-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.lights-headline { font-family: var(--font-heading); font-size: var(--text-display); font-weight: 700; line-height: 1.2; margin: 0 0 1.25rem; letter-spacing: -0.02em; color: #fff; }
.lights-headline .lights-accent { color: var(--color-primary-light); background: linear-gradient(135deg, var(--color-primary-light) 0%, #ffd966 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.lights-headline:not(:has(.lights-accent)) { color: #fff; }
.lights-content { color: #fff; }
.lights-content .lights-body,
.lights-content .lights-body p,
.lights-content .lights-body li,
.lights-content .lights-body span,
.lights-content .lights-body strong { color: #fff !important; }
.lights-content .lights-body p { line-height: 1.75; margin-bottom: 1.5rem; }
.lights-content a { color: var(--color-primary-light); }
.lights-content a:hover { color: #ffd966; }
.lights-content .btn-watch { color: #000 !important; }
.lights-content .btn-watch::after { color: #000 !important; }
.lights-image { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-hover); transition: var(--transition); }
.lights-image:hover { box-shadow: 0 16px 48px rgba(0,0,0,0.2); transform: scale(1.02); }
.lights-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.lights-image:hover img { transform: scale(1.05); }
@media (max-width: 768px) { .lights-inner { grid-template-columns: 1fr; } .lights-image { min-height: 280px; } }

/* Scripture */
.scripture-section { background: #fff; padding: 3rem 0; }
.scripture-section blockquote {
    margin: 0;
    font-size: 1.2rem;
    font-style: normal;
    color: var(--color-dark);
    text-align: center;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.8;
    letter-spacing: 0.02em;
}
.scripture-section blockquote::before { content: '"'; color: var(--color-primary); }

/* What's On - events */
.events-section { background: #fff; padding: 4rem 0; }
.events-section .section-title-bar { border-color: var(--color-dark); background: var(--color-bg-warm); }
.events-section .section-title { color: var(--color-dark); }
.events-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.event-card-modern {
    padding: 2rem;
    border-radius: var(--radius);
    border: none;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
    display: block;
    text-decoration: none;
    color: inherit;
}
.event-card-modern::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.06;
    pointer-events: none;
}
.event-card-modern--sunday {
    background-color: #1e40af;
}
.event-card-modern--sunday::before {
    background: radial-gradient(circle at 85% 15%, rgba(255,225,0,0.2) 0%, transparent 45%);
}
.event-card-modern--thursday {
    background-color: #92400e;
}
.event-card-modern--thursday::before {
    background: radial-gradient(circle at 15% 85%, rgba(255,225,0,0.15) 0%, transparent 45%);
}
/* Image variant: override with photo + dark gradient overlay */
.event-card-modern--has-image {
    background-size: cover;
    background-position: center;
}
.event-card-modern--has-image::before {
    opacity: 1;
    background: linear-gradient(160deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.72) 100%);
}
/* "Coming Soon" label inside homepage event cards */
.event-card-tba-badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.2rem 0.65rem;
    border-radius: 100px;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.4);
    color: #fff;
}
.event-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}
.event-card-modern h3 {
    margin: 0 0 0.25rem;
    font-size: 1.2rem;
    color: #fff;
    position: relative;
    z-index: 1;
}
.event-card-modern--sunday .event-time,
.event-card-modern--sunday p,
.event-card-modern--sunday div {
    color: #fefce8;
}
.event-card-modern--thursday .event-time,
.event-card-modern--thursday p,
.event-card-modern--thursday div {
    color: #f8fafc;
}
.event-card-modern .event-time {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 1;
}
.event-card-modern p,
.event-card-modern div {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    position: relative;
    z-index: 1;
}
.event-card-modern .link-arrow {
    color: var(--color-primary);
    position: relative;
    z-index: 1;
}
.event-card-modern .link-arrow:hover {
    color: var(--color-primary-light);
}
.link-arrow {
    font-weight: 600;
    color: var(--color-primary-on-light);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    transition: var(--transition);
}
.link-arrow:hover { color: var(--color-primary-dark); gap: 0.6rem; }

/* Moments - original grid layout (1fr + 1.5fr) in scrollable carousel */
.moments-section { background: var(--color-bg); padding: 4rem 0; }
.moments-section .section-title-bar { border-color: var(--color-dark); background: rgba(250,250,250,0.95); }
.moments-section .section-title { color: var(--color-dark); }
.moments-carousel { position: relative; margin-top: 2rem; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-hover); min-height: 380px; touch-action: pan-y pinch-zoom; }
.carousel-track-wrap { overflow: hidden; width: 100%; }
.carousel-track { display: flex; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.carousel-slide { flex: 0 0 100%; min-width: 0; }
.moments-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 1rem; min-height: 380px; }
.moment-item { border-radius: var(--radius); overflow: hidden; position: relative; }
.moment-item.moment-wide { grid-column: span 1; }
.moment-item img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 380px; transition: transform 0.6s ease; }
.moment-item:hover img { transform: scale(1.05); }
.carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; width: 48px; height: 48px; min-width: 48px; min-height: 48px; border: none; border-radius: 50%; background: rgba(255,255,255,0.95); color: var(--color-dark); cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-hover); opacity: 0.9; transition: var(--transition); }
.carousel-btn:hover { background: var(--color-primary); color: var(--color-dark); opacity: 1; transform: translateY(-50%) scale(1.08); }
.carousel-prev { left: 1rem; }
.carousel-next { right: 1rem; }
.carousel-dots { display: flex; justify-content: center; gap: 0.5rem; padding: 1.25rem; }
.carousel-dots .dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(26,26,26,0.25); border: none; cursor: pointer; transition: var(--transition); }
.carousel-dots .dot:hover { background: rgba(26,26,26,0.5); }
.carousel-dots .dot.active { background: var(--color-primary); transform: scale(1.2); }
@media (max-width: 768px) {
    .moments-grid { grid-template-columns: 1fr; gap: 0.75rem; min-height: 520px; }
    .moments-grid .moment-item { min-height: 250px; }
    .moments-grid .moment-item img { min-height: 250px; }
    .moments-carousel { min-height: 520px; }
    .carousel-btn { width: 44px; height: 44px; left: 0.75rem; right: 0.75rem; }
}
@media (max-width: 480px) {
    :root { --text-hero: 2.25rem; --text-display: 1.75rem; --text-section: 1.4rem; }
    .header-inner { padding: 0 1rem; }
    .hero-inner { padding: 0 1rem; }
    .section-title-bar-inner { padding: 0 1rem; }
    .container { padding: 0 1rem; }
    .container-fluid { padding: 0 1rem; }
    .section { padding: 2.5rem 0; }
}

/* Prayer Wall - two-column: image left, dark content block right */
.prayer-wall-section { background: #fff; padding: 0 0 4rem; }
.prayer-wall-section .section-title-bar { border-color: var(--color-dark); background: var(--color-bg-warm); }
.prayer-wall-section .section-title { color: var(--color-dark); }
.prayer-wall-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 520px;
}
.prayer-wall-image {
    overflow: hidden;
}
.prayer-wall-image img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    display: block;
}
.prayer-wall-content {
    background: var(--color-dark);
    color: #fff;
    padding: 3rem clamp(2rem, 5vw, 4rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.prayer-wall-eyebrow {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
}
.prayer-wall-headline {
    margin: 0 0 1.25rem;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.15;
    color: #fff;
}
.prayer-wall-desc {
    margin: 0 0 1.75rem;
    color: rgba(255,255,255,0.9);
    font-size: 1.02rem;
    line-height: 1.7;
    max-width: 52ch;
}
.prayer-wall-desc p { margin: 0 0 0.75em; }
.prayer-wall-desc p:last-child { margin-bottom: 0; }
.prayer-wall-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.prayer-wall-ctas .btn-prayer-wall {
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: var(--transition);
}
.prayer-wall-ctas .btn-primary {
    background: var(--color-primary);
    color: var(--color-dark);
    border: 2px solid var(--color-primary);
}
.prayer-wall-ctas .btn-primary:hover {
    background: var(--color-primary-light);
    border-color: var(--color-primary-light);
    color: var(--color-dark);
    transform: translateY(-2px);
}
.prayer-wall-ctas .btn-accent {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.7);
}
.prayer-wall-ctas .btn-accent:hover {
    background: rgba(255,255,255,0.12);
    border-color: #fff;
    color: #fff;
    transform: translateY(-2px);
}
@media (max-width: 900px) {
    .prayer-wall-inner { grid-template-columns: 1fr; min-height: auto; }
    .prayer-wall-image img { min-height: 380px; }
    .prayer-wall-content { padding: 2.5rem 1.5rem; }
}

/* Voice - testimonial carousel (cards style, black background) */
.voice-section { background: #000; color: #fff; padding: 4rem 0; }
.voice-section .section-title-bar { border-color: rgba(255,255,255,0.3); background: rgba(0,0,0,0.2); }
.voice-section .section-title { color: #fff; }
.voice-carousel { position: relative; margin-top: 2rem; touch-action: pan-y pinch-zoom; }
.voice-carousel-track-wrap { overflow: hidden; width: 100%; }
.voice-carousel-track {
    display: flex;
    gap: 1.5rem;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.voice-card {
    flex: 0 0 100%;
    min-width: 0;
    background: #fff;
    color: var(--color-dark);
    border-radius: 12px;
    padding: 2rem 1.5rem;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
}
@media (min-width: 600px) {
    .voice-card { flex: 0 0 calc(50% - 0.75rem); }
}
@media (min-width: 900px) {
    .voice-card { flex: 0 0 calc(33.333% - 1rem); }
}
.voice-quote {
    font-family: var(--font-sans);
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-style: normal;
    margin: 0 0 1rem;
    line-height: 1.65;
    color: #333;
    overflow-wrap: break-word;
    word-wrap: break-word;
}
.voice-quote p { margin: 0 0 0.5em; }
.voice-quote p:last-child { margin-bottom: 0; }
.voice-author { display: flex; align-items: center; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
.voice-author-photo { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.voice-card cite { font-family: var(--font-heading); font-size: 0.9rem; color: var(--color-torch-red); font-style: normal; font-weight: 600; text-transform: uppercase; }
.voice-carousel .carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.95);
    color: var(--color-dark);
    box-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.voice-carousel .carousel-btn:hover { background: var(--color-primary); color: var(--color-dark); transform: translateY(-50%) scale(1.08); }
.voice-carousel .carousel-prev { left: 0.5rem; }
.voice-carousel .carousel-next { right: 0.5rem; }
.voice-carousel-dots { display: flex; justify-content: center; gap: 0.5rem; padding: 1.5rem 0 0; }
.voice-carousel-dots .dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.35); border: none; cursor: pointer; transition: var(--transition); }
.voice-carousel-dots .dot:hover { background: rgba(255,255,255,0.6); }
.voice-carousel-dots .dot.active { background: var(--color-primary); transform: scale(1.2); }

/* Voice section - mobile responsive */
@media (max-width: 768px) {
    .voice-section { padding: 3rem 0; }
    .voice-carousel { margin-top: 1.5rem; }
    .voice-card { padding: 1.5rem 1.25rem; }
    .voice-quote { font-size: clamp(0.95rem, 2.5vw, 1.15rem); }
    .voice-card cite { font-size: 0.85rem; }
    .voice-carousel .carousel-btn {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }
    .voice-carousel .carousel-prev { left: 0.35rem; }
    .voice-carousel .carousel-next { right: 0.35rem; }
    .voice-carousel-dots { padding: 1.25rem 0 0; }
}
@media (max-width: 600px) {
    .voice-section { padding: 2.5rem 0; }
    .voice-carousel { margin-top: 1.25rem; }
    .voice-card { padding: 1.25rem 1rem; }
    .voice-quote { font-size: clamp(0.9rem, 3vw, 1.05rem); line-height: 1.6; }
    .voice-author { gap: 0.5rem; }
    .voice-author-photo { width: 36px; height: 36px; }
    .voice-card cite { font-size: 0.8rem; }
    .voice-carousel .carousel-btn {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }
    .voice-carousel .carousel-prev { left: 0.25rem; }
    .voice-carousel .carousel-next { right: 0.25rem; }
    .voice-carousel-dots { padding: 1rem 0 0; gap: 0.4rem; }
    .voice-carousel-dots .dot { width: 8px; height: 8px; }
}
@media (max-width: 420px) {
    .voice-section { padding: 2rem 0; }
    .voice-section .container { padding-left: 0.75rem; padding-right: 0.75rem; }
    .voice-card { padding: 1rem 0.85rem; }
    .voice-quote { font-size: 0.9rem; }
    .voice-carousel .carousel-btn {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
    }
    .voice-carousel .carousel-prev { left: 0.15rem; }
    .voice-carousel .carousel-next { right: 0.15rem; }
}

/* Stay Connected - newsletter */
.stay-connected-section { background: var(--color-torch-red); color: #fff; padding: 4rem 0; }
.stay-connected-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(800px 280px at 8% 0%, rgba(255,255,255,0.09), transparent 70%),
        radial-gradient(900px 320px at 95% 100%, rgba(0,0,0,0.2), transparent 75%),
        var(--color-torch-red);
}
.newsletter-showcase {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 2rem;
    align-items: center;
    min-height: 520px;
}
.newsletter-copy {
    max-width: 620px;
}
.newsletter-eyebrow {
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.75);
}
.newsletter-title {
    margin: 0;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 3.4rem);
    line-height: 0.98;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #fff;
    max-width: 12ch;
}
.newsletter-note {
    margin: 1.15rem 0 1.5rem;
    color: rgba(255,255,255,0.9);
    font-size: 1.02rem;
    max-width: 54ch;
}
.newsletter-inline {
    display: grid;
    grid-template-columns: minmax(170px, 220px) minmax(280px, 1fr) auto;
    gap: 0.5rem;
    max-width: 800px;
    align-items: center;
}
.newsletter-inline input[type="text"],
.newsletter-inline input[type="email"] {
    border: none;
    border-radius: var(--radius-sm);
    min-height: 48px;
    padding: 0.85rem 1rem;
    background: rgba(255,255,255,0.96);
    color: var(--color-dark);
}
.newsletter-inline input[type="text"]::placeholder,
.newsletter-inline input[type="email"]::placeholder {
    color: #6b6b6b;
    opacity: 0.9;
}
.newsletter-inline input[type="text"]:focus-visible,
.newsletter-inline input[type="email"]:focus-visible {
    outline: 3px solid rgba(255,255,255,0.55);
    outline-offset: 1px;
    box-shadow: 0 0 0 3px rgba(255,225,0,0.35);
}
.newsletter-inline.is-invalid input:invalid {
    box-shadow: inset 0 0 0 2px rgba(178,34,34,0.9);
}
.newsletter-submit {
    min-height: 48px;
    padding: 0 1.5rem;
    border: none;
    border-radius: var(--radius-sm);
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
    color: var(--color-dark);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
    transition: var(--transition);
}
.newsletter-submit:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(255,225,0,0.35);
}
.newsletter-submit:disabled {
    opacity: 0.75;
    cursor: wait;
}
.newsletter-trust {
    margin: 0.55rem 0 0;
    color: rgba(255,255,255,0.75);
    font-size: 0.86rem;
}
.newsletter-status {
    min-height: 1.2em;
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.9);
}
.newsletter-status.success { color: #fff7cf; }
.newsletter-status.error { color: #ffd8d8; }
.newsletter-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}
.newsletter-device {
    width: min(520px, 100%);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 22px 50px rgba(0,0,0,0.35);
    transform: rotate(-12deg);
}
.newsletter-device img {
    width: 100%;
    height: auto;
    display: block;
}
@media (max-width: 1000px) {
    .newsletter-showcase {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        text-align: center;
        min-height: auto;
    }
    .newsletter-copy {
        margin: 0 auto;
    }
    .newsletter-title,
    .newsletter-note {
        max-width: none;
    }
    .newsletter-inline {
        margin: 0 auto;
    }
    .newsletter-device {
        transform: none;
        width: min(520px, 92vw);
    }
}
@media (max-width: 640px) {
    .newsletter-inline {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    .newsletter-inline input[type="text"],
    .newsletter-inline input[type="email"],
    .newsletter-submit {
        width: 100%;
    }
}

/* Map - fills entire section */
.map-section { width: 100%; min-height: 400px; height: clamp(400px, 50vh, 520px); background: #f0f0f0; }
.map-section[data-animate] { opacity: 0; transform: translateY(24px); transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo); }
.map-section.animate-in { opacity: 1; transform: translateY(0); }
.map-container { width: 100%; height: 100%; overflow: hidden; }
.map-container iframe { display: block; width: 100%; height: 100%; }

.btn-sm { padding: 0.5rem 1rem; font-size: 0.9rem; }

/* Buttons - Believers House style */
.btn { display: inline-flex; align-items: stretch; padding: 0; border-radius: var(--radius-sm); font-weight: 600; text-decoration: none; transition: var(--transition); border: none; overflow: hidden; }
/* WATCH LIVE / primary CTA: white bg + dark text, gold accent with arrow - works with or without inner spans */
.btn-watch { background: #fff; color: var(--color-dark); position: relative; padding-right: 3.5rem; padding-left: 1.5rem; padding-top: 0.75rem; padding-bottom: 0.75rem; }
.btn-watch::after { content: '→'; position: absolute; right: 0; top: 0; bottom: 0; width: 2.75rem; background: var(--color-primary); color: var(--color-dark); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.btn-watch:hover { opacity: 1; transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.btn-watch:hover::after { background: var(--color-primary-light); }
/* Accent: gold border/text - readable on both light and dark backgrounds */
.btn-accent { background: transparent; color: var(--color-primary-on-light); border: 2px solid var(--color-primary-on-light); padding: 0.75rem 1.5rem; }
.btn-accent:hover { background: var(--color-gold-bg); color: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(154,123,0,0.15); }
/* On dark backgrounds (footer, dark sections) - use bright gold */
.site-footer .btn-accent,
.bh-footer .btn-accent,
.service-times .btn-accent,
.events-preview .btn-accent { color: var(--color-primary); border-color: var(--color-primary); }
.site-footer .btn-accent:hover,
.bh-footer .btn-accent:hover,
.service-times .btn-accent:hover,
.events-preview .btn-accent:hover { background: rgba(255,225,0,0.15); color: var(--color-primary-light); border-color: var(--color-primary-light); }
/* Primary gold fill - high-contrast, readable CTAs */
.btn-primary { background: var(--color-primary); color: #1a1a1a; padding: 0.75rem 1.5rem; font-weight: 700; }
.btn-primary:hover { background: var(--color-primary-light); color: #1a1a1a; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,225,0,0.35); }
.btn-primary:focus-visible { outline: 3px solid var(--color-primary-dark); outline-offset: 2px; }
.btn-outline { background: transparent; color: #fff; border: 2px solid var(--color-primary); padding: 0.75rem 1.5rem; }
.btn-outline:hover { background: rgba(255,225,0,0.2); }

/* Scroll-in animations - sections animate when they enter viewport */
.section { width: 100%; padding: 4rem 0; }
.section[data-animate] { opacity: 0; transform: translateY(32px); transition: opacity 0.7s var(--ease-out-expo), transform 0.7s var(--ease-out-expo); }
.section[data-animate].animate-in { opacity: 1; transform: translateY(0); }
.section[data-animate] .stagger-item { opacity: 0; transform: translateY(20px); transition: opacity 0.55s var(--ease-out-expo), transform 0.55s var(--ease-out-expo); transition-delay: calc(var(--stagger, 0) * 70ms); }
.section[data-animate].animate-in .stagger-item { opacity: 1; transform: translateY(0); }

/* Section - big titles with top/bottom border lines, full-width borders */
.container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }
.container-fluid { width: 100%; max-width: none; padding: 0 2rem; }
.section-title-bar { position: relative; width: 100%; margin: 0 0 2rem; padding: 1rem 0; border-top: 2px solid var(--color-dark); border-bottom: 2px solid var(--color-dark); background: var(--color-bg-warm); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
/* Accent buttons in section bars - use high-contrast gold on light backgrounds */
.section-title-bar .btn-accent {
    color: var(--color-primary-on-light);
    border-color: var(--color-primary-on-light);
}
.section-title-bar .btn-accent:hover {
    background: rgba(154,123,0,0.1);
    color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}
.section-title-bar::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    top: -1px;
    background: linear-gradient(90deg, transparent, rgba(255,225,0,0.65), transparent);
}
.section-title-bar .section-title-bar-inner { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.section-title-bar .section-title { margin: 0; }
.section-title { font-family: var(--font-heading); font-size: var(--text-section); font-weight: 800; color: var(--color-dark); letter-spacing: 0.06em; word-spacing: 0.55em; text-transform: uppercase; }
.section-title .reveal-word,
.hero-headline .reveal-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(14px);
    will-change: transform, opacity;
}
.reveal-ready .reveal-word {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.55s var(--ease-out-expo), transform 0.55s var(--ease-out-expo);
    transition-delay: calc(var(--word-index, 0) * 45ms);
}
.section-lead { font-size: 1.1rem; line-height: 1.75; color: var(--color-muted); max-width: 680px; margin-bottom: 1.5rem; }
.section-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }

/* Scripture Banner - dark bg, gold accent */
.scripture-banner { background: var(--color-dark); color: #fff; padding: 2rem 1.5rem; text-align: center; }
.scripture-banner blockquote { margin: 0; font-size: 1.15rem; font-style: italic; max-width: 800px; margin-left: auto; margin-right: auto; line-height: 1.6; }
.scripture-banner blockquote::before { content: '"'; color: var(--color-primary); }

/* Who We Are / ABOUT us - gold headings */
.who-we-are { background: #fff; }
.who-we-are .section-title { color: var(--color-primary); text-transform: uppercase; }

/* REGULAR EVENTS / Service Times - Believers House: dark section, gold cards */
.service-times { background: var(--color-dark); padding: 4rem 0; }
.service-times .section-title { color: var(--color-primary); letter-spacing: 0.12em; }
.service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.service-card { background: linear-gradient(135deg, rgba(255,225,0,0.18) 0%, rgba(255,225,0,0.08) 100%); padding: 2rem; border-radius: var(--radius); border: 1px solid rgba(255,225,0,0.4); display: flex; flex-direction: column; align-items: flex-start; }
.service-card h3 { margin: 0 0 0.5rem; color: #fff; font-size: 1.2rem; font-weight: 600; letter-spacing: 0.02em; }
.service-card .time { font-weight: 600; color: var(--color-primary-light); margin: 0 0 0.5rem; font-size: 0.9rem; }
.service-card .desc { margin: 0 0 1.25rem; color: rgba(255,255,255,0.88); font-size: 0.95rem; flex: 1; line-height: 1.6; }
.service-card .btn-primary { margin-top: auto; }

/* Core Values - gold borders */
.core-values { background: #fff; }
.values-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.value-card { text-align: center; padding: 2rem 1rem; border: 2px solid var(--color-primary-on-light); border-radius: var(--radius); transition: var(--transition); background: var(--color-bg-warm); }
.value-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: var(--color-primary-dark); }
.value-icon { color: var(--color-primary-on-light); font-size: 1.5rem; margin-bottom: 0.5rem; }
.value-card h3 { margin: 0 0 0.5rem; color: var(--color-primary-on-light); font-size: 1.2rem; }
.value-card p { margin: 0; color: var(--color-muted); font-size: 0.95rem; }

/* Events Preview - dark section, gold-tinted cards like Believers House */
.events-preview { background: var(--color-dark); padding: 4rem 0; }
.events-preview .section-title { color: var(--color-primary); text-transform: uppercase; }
.events-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }
.event-card { background: var(--color-gold-soft); padding: 1.5rem; border-radius: var(--radius); border: 2px solid rgba(255,225,0,0.3); }
.event-card h3 { margin: 0 0 0.5rem; color: var(--color-primary); }
.event-card .date { font-weight: 600; color: var(--color-primary-light); font-size: 0.9rem; margin: 0 0 0.5rem; }
.event-card p { color: rgba(255,255,255,0.9); }
.event-card .link { color: var(--color-primary); font-weight: 600; text-decoration: none; }
.event-card .link:hover { text-decoration: underline; }
.no-events { color: rgba(255,255,255,0.8); margin-bottom: 1rem; }

/* New Here banner - Believers House style */
.new-here-banner { background: var(--color-bg-warm); padding: 2.5rem 1.5rem; text-align: center; border-bottom: 1px solid var(--color-gold-bg); }
.new-here-banner h2 { margin: 0 0 0.25rem; font-size: 1.5rem; color: var(--color-dark); }
.new-here-banner p { margin: 0 0 1rem; color: var(--color-muted); }
.btn-start { background: var(--color-primary) !important; color: #fff !important; padding: 0.65rem 1.75rem; }
.btn-start:hover { background: var(--color-primary-dark) !important; color: #fff !important; }

/* Testimonial - Believers House: bg image + dark overlay, white quote */
.testimonial-section { position: relative; text-align: center; padding: 5rem 0; overflow: hidden; }
.testimonial-section::before { content: ''; position: absolute; inset: 0; background: url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=1920') center/cover no-repeat; z-index: 0; }
.testimonial-section::after { content: ''; position: absolute; inset: 0; background: rgba(10,10,10,0.78); z-index: 1; }
.testimonial-section .container { position: relative; z-index: 2; }
.testimonial-quote { font-family: var(--font-heading); font-size: clamp(1.25rem, 2.5vw, 1.6rem); font-style: italic; font-weight: 500; color: #fff; max-width: 800px; margin: 0 auto 1rem; line-height: 1.7; }
.testimonial-author { font-family: var(--font-sans); font-size: 0.95rem; color: var(--color-primary); font-style: normal; font-weight: 600; letter-spacing: 0.04em; }
.testimonial-dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1.5rem; }
.testimonial-dots span { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.4); }
.testimonial-dots span.active { background: var(--color-primary); }

/* Generic newsletter form (e.g. footer) - exclude homepage inline variant */
.newsletter-form:not(.newsletter-inline) { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.newsletter-form:not(.newsletter-inline) input { padding: 0.75rem 1rem; border: 2px solid rgba(0,0,0,0.12); border-radius: var(--radius-sm); font-size: 0.95rem; font-family: var(--font-sans); }
.newsletter-form:not(.newsletter-inline) input[type="email"] { flex: 1 1 200px; }
.newsletter-form:not(.newsletter-inline) input[type="text"] { flex: 1 1 160px; }

/* Media page - streaming-style thumbnail grid */
.media-page { padding-top: 0; }
.media-page .section-title-bar {
    background: linear-gradient(120deg, rgba(255,251,245,0.98) 0%, rgba(255,255,255,0.98) 40%, rgba(255,251,245,0.98) 100%);
}
.media-shell { padding: 0 0 3rem; }
.media-kicker {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary-on-light);
    text-align: center;
}
.media-sub {
    margin: 0 auto 1.5rem;
    font-size: 1.05rem;
    color: var(--color-muted);
    max-width: 48ch;
    text-align: center;
}
.media-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
    justify-content: center;
}
.media-filter-pill {
    font-family: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border: 2px solid rgba(166,125,15,0.3);
    border-radius: 2rem;
    background: #fff;
    color: var(--color-dark);
    cursor: pointer;
    transition: var(--transition);
}
.media-filter-pill:hover {
    border-color: rgba(166,125,15,0.6);
    background: rgba(166,125,15,0.06);
}
.media-filter-pill--active,
.media-filter-pill:focus-visible {
    border-color: var(--color-brand-accent, #A67D0F);
    background: rgba(166,125,15,0.12);
    color: var(--color-brand-accent, #A67D0F);
}
.media-filter-pill:focus-visible { outline: 2px solid var(--color-brand-accent); outline-offset: 2px; }
.media-card[data-filter-hidden="true"] {
    display: none;
}
.media-filter-empty {
    margin: 2rem 0;
    padding: 2rem;
    text-align: center;
    color: var(--color-muted);
    background: var(--color-gold-bg);
    border-radius: var(--radius);
}
.media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}
.media-card {
    text-decoration: none;
    color: inherit;
    display: block;
    border-radius: 14px;
    overflow: hidden;
    transition: transform 0.35s var(--ease-out-expo), box-shadow 0.35s ease;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    background: #fff;
}
.media-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 36px rgba(0,0,0,0.12);
}
.media-card-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
}
.media-card-thumb::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.7) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}
.media-card:hover .media-card-thumb::after { opacity: 1; }
.media-card-tag {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 1;
    padding: 0.25rem 0.6rem;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: #fff;
    color: var(--color-dark);
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.media-card-duration {
    position: absolute;
    bottom: 0.75rem;
    right: 0.75rem;
    z-index: 1;
    padding: 0.2rem 0.5rem;
    font-size: 0.7rem;
    font-weight: 700;
    background: rgba(0,0,0,0.8);
    color: #fff;
    border-radius: 4px;
}
.media-card-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    z-index: 2;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.95);
    color: var(--color-dark);
    border-radius: 50%;
    box-shadow: 0 6px 20px rgba(0,0,0,0.3);
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s var(--ease-out-expo);
}
.media-card:hover .media-card-play {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.media-card-play svg { margin-left: 3px; }
.media-card-body { padding: 1.25rem 1rem; }
.media-card-title {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--color-dark);
    letter-spacing: -0.01em;
    transition: color 0.25s ease;
}
.media-card:hover .media-card-title { color: var(--color-primary-dark); }
.media-card-meta {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    color: var(--color-muted);
}
.media-empty {
    padding: 3rem 2rem;
    text-align: center;
    background: var(--color-gold-bg);
    border-radius: var(--radius);
    border: 1px dashed rgba(255,225,0,0.35);
}
.media-empty p { margin: 0; color: var(--color-muted); }
.media-back {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 2rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    text-decoration: none;
    transition: var(--transition);
}
.media-back:hover {
    color: var(--color-primary-dark);
    transform: translateX(-2px);
}

/* Media view - single sermon/teaching page */
.media-view-page .section-title-bar { display: none; }
.media-view-shell { padding: 2rem 0 3rem; max-width: 800px; }
.media-view-tag {
    display: inline-block;
    padding: 0.3rem 0.65rem;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: rgba(154,123,0,0.12);
    color: var(--color-primary-on-light);
    border-radius: 6px;
    margin-bottom: 1rem;
}
.media-view-title {
    margin: 0 0 1.5rem;
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3.5vw, 2.25rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--color-dark);
    letter-spacing: -0.02em;
}
.media-view-player {
    aspect-ratio: 16 / 9;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    margin-bottom: 1.5rem;
}
.media-view-player iframe {
    width: 100%;
    height: 100%;
    display: block;
}
.media-view-desc {
    margin-bottom: 1.5rem;
    color: var(--color-muted);
    line-height: 1.75;
}

/* About & Leadership pages - hero, subnav, content */
.page-hero {
    background: linear-gradient(135deg, var(--color-dark) 0%, #252525 100%);
    color: #fff;
    padding: 3.5rem 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.page-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 100% 60% at 50% 0%, rgba(255,225,0,0.08), transparent 55%);
    pointer-events: none;
}
.page-hero--has-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.page-hero--has-image::before {
    display: none;
}
.page-hero-title {
    margin: 0 0 0.35rem;
    font-family: var(--font-heading);
    font-size: clamp(2rem, 4.5vw, 2.75rem);
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-brand-gold);
}
.page-hero-sub {
    margin: 0;
    font-size: 1rem;
    color: rgba(255,255,255,0.75);
    letter-spacing: 0.06em;
}
.page-subnav {
    background: var(--color-bg-warm);
    border-bottom: 2px solid rgba(255,225,0,0.25);
    padding: 0;
}
.page-subnav .container {
    display: flex;
    gap: 0;
}
.page-subnav-link {
    display: inline-block;
    padding: 1rem 1.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--color-muted);
    border-bottom: 3px solid transparent;
    transition: var(--transition);
}
.page-subnav-link:hover { color: var(--color-primary-on-light); }
.page-subnav-link--active {
    color: var(--color-primary-on-light);
    border-bottom-color: var(--color-primary);
}
/* Brand colors - black, red, gold */
:root {
    --color-brand-black: #0a0a0a;
    --color-brand-red: #B22222;
    --color-brand-red-light: #c93a3a;
    --color-brand-gold: #ffe100;
    --color-brand-accent: #A67D0F; /* Antique gold - borders, accents */
}

.about-page { padding-top: 0; }

/* HOP-style About page - black, red, gold */
.about-page--hop .about-hero {
    background-color: var(--color-brand-black);
    color: #fff;
    padding: 4rem 0;
    text-align: center;
}
.about-page--hop .about-hero-title {
    margin: 0 0 0.25rem;
    font-family: var(--font-heading);
    font-size: clamp(2.5rem, 6vw, 4rem);
    font-weight: 800;
    letter-spacing: 0.02em;
    color: var(--color-brand-gold);
}
.about-page--hop .about-hero-tagline {
    margin: 0;
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    font-weight: 500;
    color: rgba(255,255,255,0.9);
    letter-spacing: 0.05em;
}
.about-page--hop .about-subnav {
    background: var(--color-brand-black);
    border-bottom: 3px solid var(--color-brand-accent);
    padding: 0;
}
.about-page--hop .about-subnav .container {
    display: flex;
    gap: 0;
}
.about-page--hop .about-subnav-link {
    display: inline-block;
    padding: 1rem 1.75rem;
    font-weight: 600;
    font-size: 0.9rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(255,255,255,0.7);
    border-bottom: 3px solid transparent;
    margin-bottom: -3px;
    transition: var(--transition);
}
.about-page--hop .about-subnav-link:hover { color: var(--color-brand-gold); }
.about-page--hop .about-subnav-link--active {
    color: var(--color-brand-gold);
    border-bottom-color: var(--color-brand-gold);
}

.about-page--hop .about-body { background: #fff; }
.about-page--hop .about-story-block {
    padding: 4rem 0;
    background: var(--color-bg-warm);
}
.about-page--hop .about-eyebrow {
    display: block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--color-brand-accent);
    margin-bottom: 0.75rem;
}
.about-page--hop .about-eyebrow--light { color: var(--color-brand-gold); }
.about-page--hop .about-block-title {
    margin: 0 0 1.25rem;
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-brand-black);
    line-height: 1.3;
}
.about-page--hop .about-story-body {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--color-muted);
}
.about-page--hop .about-story-inner--with-image .about-story-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 3rem;
    align-items: center;
}
.about-page--hop .about-story-image {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
}
.about-page--hop .about-story-image img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4/3;
    object-fit: cover;
}
@media (max-width: 768px) {
    .about-page--hop .about-story-inner--with-image .about-story-grid {
        grid-template-columns: 1fr;
    }
    .about-page--hop .about-story-image { order: -1; }
}

/* Our Scriptural Foundation - same layout as Our Mission had: centered, black bg, gold accents */
/* ── Scriptural Foundation – 2-column card layout ── */
.about-page--hop .about-scriptural-block {
    background: var(--color-brand-black);
    color: #fff;
    padding: 5rem 0;
    position: relative;
    overflow: hidden;
}
.about-scriptural-bg-glow {
    position: absolute;
    top: -160px;
    left: 50%;
    transform: translateX(-50%);
    width: 900px;
    height: 600px;
    background: radial-gradient(ellipse at center, rgba(176,141,87,0.1) 0%, transparent 70%);
    pointer-events: none;
}
.about-page--hop .about-scriptural-header {
    text-align: center;
    margin-bottom: 3rem;
}
.about-page--hop .about-scriptural-title {
    font-family: var(--font-heading);
    font-size: clamp(1.6rem, 3vw, 2.25rem);
    font-weight: 700;
    color: var(--color-brand-gold);
    margin: 0.5rem 0 0;
}
.about-page--hop .about-scriptural-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
    position: relative;
    z-index: 1;
}
.about-page--hop .about-scriptural-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(176,141,87,0.18);
    border-radius: 14px;
    padding: 2.75rem 2.25rem 2.25rem;
    position: relative;
    overflow: hidden;
    transition: border-color 0.3s ease, background 0.3s ease;
}
.about-page--hop .about-scriptural-card:hover {
    border-color: rgba(176,141,87,0.45);
    background: rgba(255,255,255,0.06);
}
/* Large decorative opening quote */
.about-scriptural-card-quote {
    position: absolute;
    top: 0.5rem;
    left: 1.5rem;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 7rem;
    line-height: 1;
    color: var(--color-brand-gold);
    opacity: 0.1;
    pointer-events: none;
    user-select: none;
}
.about-page--hop .about-scriptural-ref {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-heading);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--color-brand-black);
    font-style: normal;
    background: var(--color-brand-gold);
    padding: 0.3rem 0.9rem;
    border-radius: 100px;
    letter-spacing: 0.03em;
    margin-bottom: 1.5rem;
}
.about-page--hop .about-scriptural-text {
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(255,255,255,0.85);
}
.about-page--hop .about-scriptural-text p { margin: 0 0 0.85em; }
.about-page--hop .about-scriptural-text p:last-child { margin-bottom: 0; }
@media (max-width: 768px) {
    .about-page--hop .about-scriptural-block { padding: 3.5rem 0; }
    .about-page--hop .about-scriptural-grid { grid-template-columns: 1fr; gap: 1.25rem; }
    .about-page--hop .about-scriptural-card { padding: 2.25rem 1.5rem 1.75rem; }
    .about-scriptural-card-quote { font-size: 5rem; }
}

.about-page--hop .about-pillars-block {
    padding: 4rem 0;
    background: var(--color-bg);
}
.about-page--hop .about-section-title {
    margin: 0 0 2rem;
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 700;
    color: var(--color-brand-black);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.about-page--hop .about-pillars-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
.about-page--hop .about-pillar-card {
    border-radius: var(--radius);
    padding: 2.25rem;
    transition: var(--transition);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.about-page--hop .about-pillar-card::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.08;
    pointer-events: none;
}
.about-page--hop .about-pillar-card--mission {
    background: #1e3a5f;
    border: none;
    color: #fff;
}
.about-page--hop .about-pillar-card--mission::before {
    background: radial-gradient(circle at 80% 20%, rgba(255,225,0,0.15) 0%, transparent 50%);
}
.about-page--hop .about-pillar-card--vision {
    background: #166534;
    border: none;
    color: #fff;
}
.about-page--hop .about-pillar-card--vision::before {
    background: radial-gradient(circle at 20% 80%, rgba(255,225,0,0.12) 0%, transparent 50%);
}
.about-page--hop .about-pillar-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}
.about-page--hop .about-pillar-card-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.15);
    border-radius: 50%;
    color: var(--color-primary);
    position: relative;
    z-index: 1;
}
.about-page--hop .about-pillar-card-title {
    margin: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff !important;
    position: relative;
    z-index: 1;
}
.about-page--hop .about-pillar-card-text p { margin: 0 0 0.5em; }
.about-page--hop .about-pillar-card-text p:last-child { margin-bottom: 0; }
.about-page--hop .about-pillar-card-text {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #fff !important;
    position: relative;
    z-index: 1;
}
/* Override CMS inline styles (Quill etc.) - force white on all text descendants */
.about-page--hop .about-pillar-card-text p,
.about-page--hop .about-pillar-card-text div,
.about-page--hop .about-pillar-card-text span,
.about-page--hop .about-pillar-card-text strong,
.about-page--hop .about-pillar-card-text b,
.about-page--hop .about-pillar-card-text em,
.about-page--hop .about-pillar-card-text i,
.about-page--hop .about-pillar-card-text li,
.about-page--hop .about-pillar-card-text blockquote,
.about-page--hop .about-pillar-card-text * {
    color: #fff !important;
}
.about-page--hop .about-pillar-card-text a {
    color: var(--color-primary) !important;
}
@media (max-width: 900px) {
    .about-page--hop .about-pillars-grid { grid-template-columns: 1fr; }
}

/* ── Core Values — two-section gradient cards ───────────────────────────── */
.about-page--hop .about-core-values-block {
    padding: 4rem 0;
    background: #f5f6fa;
}
.about-page--hop .about-core-values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
    align-items: start;
}

/* Card shell */
.about-page--hop .about-value-card {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.10);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.about-page--hop .about-value-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 36px rgba(0,0,0,0.16);
}

/* Coloured top section */
.about-page--hop .about-value-card-top {
    padding: 2rem 1.5rem 1.75rem;
    text-align: center;
    color: #fff;
}

/* Icon bubble */
.about-page--hop .about-value-card-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.20);
    border-radius: 50%;
    color: #fff;
}
.about-page--hop .about-value-card-icon svg { stroke: #ffd166; }

/* Title inside coloured top */
.about-page--hop .about-value-card-title {
    margin: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
}

/* Tagline inside coloured top */
.about-page--hop .about-value-card-tagline {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.88);
}

/* Optional white bottom section */
.about-page--hop .about-value-card-bottom {
    background: #fff;
    padding: 1.25rem 1.5rem 1.5rem;
    text-align: center;
    border-top: none;
}
.about-page--hop .about-value-card-bottom-title {
    margin: 0 0 0.4rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
}
.about-page--hop .about-value-card-bottom-text {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.65;
    color: var(--color-muted);
}

/* ── Gradient colour variants ─────────────────────────────────────────── */
.about-value-card--blue   .about-value-card-top { background: linear-gradient(145deg, #5b9cf6 0%, #3b5bdb 100%); }
.about-value-card--orange .about-value-card-top { background: linear-gradient(145deg, #ff8c42 0%, #e63c2f 100%); }
.about-value-card--green  .about-value-card-top { background: linear-gradient(145deg, #56c96e 0%, #2d8a4e 100%); }
.about-value-card--purple .about-value-card-top { background: linear-gradient(145deg, #b06cf5 0%, #6c3fc5 100%); }
.about-value-card--teal   .about-value-card-top { background: linear-gradient(145deg, #2ecad8 0%, #0090a8 100%); }

/* Bottom title colour matches card variant */
.about-value-card--blue   .about-value-card-bottom-title { color: #3b5bdb; }
.about-value-card--orange .about-value-card-bottom-title { color: #e63c2f; }
.about-value-card--green  .about-value-card-bottom-title { color: #2d8a4e; }
.about-value-card--purple .about-value-card-bottom-title { color: #6c3fc5; }
.about-value-card--teal   .about-value-card-bottom-title { color: #0090a8; }

.about-page--hop .about-beliefs-block {
    background: var(--color-brand-black);
    color: #fff;
    padding: 4rem 0;
}
.about-page--hop .about-beliefs-title {
    margin: 0 0 1.5rem;
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 700;
    color: var(--color-brand-gold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.about-page--hop .about-beliefs-content {
    max-width: 800px;
    font-size: 1.05rem;
    line-height: 1.85;
    color: rgba(255,255,255,0.9);
}
.about-page--hop .about-beliefs-content p { margin: 0 0 1rem; }
.about-page--hop .about-beliefs-content ul { margin: 0 0 1rem; padding-left: 1.5rem; }
.about-page--hop .about-beliefs-content li { margin-bottom: 0.5rem; }

.about-page--hop .about-faqs-block {
    padding: 4rem 0;
    background: var(--color-bg-warm);
}
.about-page--hop .faq-item--hop {
    border: 2px solid rgba(166,125,15,0.35);
    border-radius: var(--radius);
}
.about-page--hop .faq-item--hop:hover { border-color: rgba(166,125,15,0.55); }
.about-page--hop .faq-item--hop.is-open { border-color: var(--color-brand-accent); }
.about-page--hop .faq-question--hop:hover { background: rgba(166,125,15,0.08); }
.about-page--hop .faq-item--hop.is-open .faq-question { color: var(--color-brand-accent); }

.about-page--hop .about-cta-block {
    background: var(--color-brand-black);
    color: #fff;
    padding: 4rem 0;
    text-align: center;
}
.about-page--hop .about-cta-title {
    margin: 0 0 1.5rem;
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-brand-gold);
}
.about-page--hop .about-cta-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}
.about-page--hop .btn-about-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 2rem;
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: var(--transition);
    border: 2px solid transparent;
}
.about-page--hop .btn-about-cta--red {
    background: var(--color-brand-red);
    color: #fff;
}
.about-page--hop .btn-about-cta--red:hover {
    background: var(--color-brand-red-light);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(178,34,34,0.4);
}
.about-page--hop .btn-about-cta--gold {
    background: var(--color-brand-gold);
    color: var(--color-brand-black);
}
.about-page--hop .btn-about-cta--gold:hover {
    background: #ffea33;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255,225,0,0.4);
}

/* Legacy about styles (for non-HOP pages like leadership) */
.about-content { padding: 3rem 1.5rem 4rem; }
.about-story { max-width: 720px; margin-bottom: 3rem; }
.about-story--with-image { max-width: none; }
.about-story-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2.5rem; align-items: center; }
.about-story-image { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-hover); }
.about-story-image img { width: 100%; height: auto; display: block; aspect-ratio: 4/3; object-fit: cover; }
.about-section-title { margin: 0 0 1rem; font-family: var(--font-heading); font-size: 1.35rem; font-weight: 700; color: var(--color-primary-on-light); letter-spacing: 0.08em; text-transform: uppercase; }
.about-story-body { font-size: 1.05rem; line-height: 1.8; color: var(--color-dark); }
.about-pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-bottom: 3rem; }
.about-pillar { background: #fff; border: 2px solid rgba(255,225,0,0.2); border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow); transition: var(--transition); }
.about-pillar:hover { border-color: rgba(255,225,0,0.5); box-shadow: 0 12px 32px rgba(26,26,26,0.08); transform: translateY(-4px); }
.about-pillar-icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: var(--color-gold-bg); border-radius: var(--radius-sm); color: var(--color-primary-on-light); margin-bottom: 1rem; }
.about-pillar-title { margin: 0 0 0.75rem; font-family: var(--font-heading); font-size: 1.15rem; font-weight: 700; color: var(--color-dark); }
.about-pillar-text { margin: 0; font-size: 0.95rem; line-height: 1.7; color: var(--color-muted); }
.about-cta { display: flex; flex-wrap: wrap; gap: 1rem; }
.leadership-page { padding-top: 0; }
.leadership-grid-wrap { padding: 3rem 1.5rem 4rem; }
.leadership-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}
.leader-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid rgba(255,225,0,0.15);
    transition: var(--transition);
}
.leader-card:hover {
    box-shadow: 0 16px 40px rgba(26,26,26,0.1);
    transform: translateY(-6px);
    border-color: rgba(255,225,0,0.35);
}
.leader-card-photo {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--color-bg);
}
.leader-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.leader-card-body { padding: 1.5rem; }
.leader-card-name {
    margin: 0 0 0.25rem;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
}
.leader-card-title {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
}
.leader-card-bio {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.65;
    color: var(--color-muted);
}
.leader-card-bio p { margin: 0 0 0.75em; }
.leader-card-bio p:last-child { margin-bottom: 0; }
.leader-card-bio ul, .leader-card-bio ol { margin: 0.5em 0; padding-left: 1.25em; }
.leader-card-bio li { margin-bottom: 0.25em; }
.leadership-empty {
    text-align: center;
    padding: 3rem 2rem;
    background: var(--color-gold-bg);
    border-radius: var(--radius);
    border: 1px dashed rgba(255,225,0,0.4);
}
.leadership-empty p { margin: 0 0 1rem; color: var(--color-muted); }

/* I'm New page */
.im-new-page { padding-top: 0; }
.im-new-content { padding: 3rem 1.5rem 4rem; }
.im-new-intro-block { margin-bottom: 2.5rem; }
.im-new-intro-block--with-image .im-new-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 2.5rem;
    align-items: center;
}
.im-new-intro-image { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-hover); }
.im-new-intro-image img { width: 100%; height: auto; display: block; aspect-ratio: 4/3; object-fit: cover; }
.im-new-intro-text .about-story-body { font-size: 1.05rem; line-height: 1.8; color: var(--color-dark); }
@media (max-width: 768px) {
    .im-new-intro-block--with-image .im-new-intro-grid { grid-template-columns: 1fr; }
    .im-new-intro-image { order: -1; }
}
/* ── What to Expect Steps ── */
.im-new-steps-section { margin-bottom: 0.25rem; }
.im-new-steps-eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary-on-light);
    margin: 0 0 0.5rem;
}
.im-new-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
    margin-bottom: 3rem;
    position: relative;
}
/* Horizontal connector line on desktop */
.im-new-steps::before {
    content: '';
    position: absolute;
    top: 2.6rem;
    left: calc(100% / 6);
    width: calc(100% * 4 / 6);
    height: 2px;
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    z-index: 0;
    border-radius: 2px;
}
.im-new-step {
    background: #fff;
    border: 1px solid rgba(255,225,0,0.18);
    border-radius: var(--radius);
    padding: 2rem 1.75rem 1.75rem;
    box-shadow: var(--shadow);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    position: relative;
    overflow: hidden;
}
/* Top gold accent bar */
.im-new-step::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-primary-dark));
    border-radius: var(--radius) var(--radius) 0 0;
}
.im-new-step:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 40px rgba(26,26,26,0.11);
    border-color: rgba(255,225,0,0.45);
}
.im-new-step-top {
    display: flex;
    align-items: center;
    gap: 1rem;
    position: relative;
    z-index: 1;
}
.im-new-step-icon-wrap {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 14px;
    background: var(--color-dark);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(26,26,26,0.18);
}
.im-new-step-num {
    font-family: var(--font-heading);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-primary-on-light);
    letter-spacing: -0.04em;
    margin-left: auto;
    user-select: none;
    opacity: 0.45;
}
.im-new-step-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1;
}
.im-new-step-title {
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
    color: var(--color-dark);
    letter-spacing: -0.01em;
}
.im-new-step-content {
    font-size: 0.955rem;
    line-height: 1.78;
    color: var(--color-muted);
    flex: 1;
}
.im-new-step-content p { margin: 0 0 0.9rem; }
.im-new-step-content p:last-child { margin-bottom: 0; }
.im-new-step-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.85rem;
    background: var(--color-gold-soft);
    color: var(--color-primary-on-light);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 100px;
    align-self: flex-start;
    margin-top: auto;
}
@media (max-width: 900px) {
    .im-new-steps {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    .im-new-steps::before { display: none; }
    .im-new-step-num { font-size: 2.25rem; }
}
@media (min-width: 600px) and (max-width: 900px) {
    .im-new-steps { grid-template-columns: 1fr 1fr; }
}
/* ── Member CTA Banner ── */
.im-new-member-cta {
    margin: 2.5rem 0 3rem;
    background: var(--color-dark);
    border-radius: var(--radius);
    padding: 2rem 2.25rem;
    box-shadow: 0 8px 32px rgba(26,26,26,0.14);
    position: relative;
    overflow: hidden;
}
.im-new-member-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,225,0,0.07) 0%, transparent 60%);
    pointer-events: none;
}
.im-new-member-cta-inner {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    position: relative;
    z-index: 1;
    flex-wrap: wrap;
}
.im-new-member-cta-icon {
    width: 3.5rem;
    height: 3.5rem;
    background: rgba(255,225,0,0.1);
    border: 1px solid rgba(255,225,0,0.25);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
}
.im-new-member-cta-title {
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.35rem;
}
.im-new-member-cta-desc {
    color: rgba(255,255,255,0.65);
    font-size: 0.93rem;
    line-height: 1.6;
    margin: 0;
    max-width: 480px;
}
.im-new-member-cta > div > div:nth-child(2) { flex: 1; min-width: 220px; }
.im-new-member-cta-btn {
    flex-shrink: 0;
    white-space: nowrap;
}
@media (max-width: 640px) {
    .im-new-member-cta { padding: 1.5rem 1.25rem; }
    .im-new-member-cta-inner { gap: 1rem; }
    .im-new-member-cta-icon { display: none; }
    .im-new-member-cta-btn { width: 100%; text-align: center; justify-content: center; }
}
.im-new-next-steps-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
}
.im-new-form-centered {
    margin-left: auto;
    margin-right: auto;
}
.im-new-cta-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}
.im-new-cta-card {
    background: var(--color-bg-warm);
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 2rem;
    transition: var(--transition);
}
.im-new-cta-card:hover { border-color: rgba(255,225,0,0.4); box-shadow: var(--shadow-hover); }
.im-new-cta-card h3, .im-new-cta-card .im-new-cta-title { margin: 0 0 0.75rem; font-family: var(--font-heading); font-size: 1.2rem; color: var(--color-dark); }
.im-new-cta-card p, .im-new-cta-card .im-new-cta-body { margin: 0 0 1.25rem; color: var(--color-muted); font-size: 0.98rem; line-height: 1.65; }
.im-new-cta-card .im-new-cta-body p { margin: 0 0 0.75rem; }
.im-new-cta-card .im-new-cta-body p:last-child { margin-bottom: 0; }
.im-new-detail-sections { margin: 2.5rem 0; }
.im-new-detail { margin-bottom: 2rem; }
.im-new-detail-title { font-family: var(--font-heading); font-size: 1.25rem; color: var(--color-dark); margin: 0 0 0.75rem; }
.im-new-detail-body { color: var(--color-muted); line-height: 1.7; max-width: 720px; }
.im-new-expect-section { margin: 2rem 0; }
.im-new-section-title { font-family: var(--font-heading); font-size: 1.15rem; color: var(--color-dark); margin: 0 0 1rem; }
.im-new-expect-list ul { margin: 0; padding-left: 1.25rem; color: var(--color-muted); line-height: 1.7; }
.im-new-next-steps { margin: 1.5rem 0; color: var(--color-muted); line-height: 1.7; }
.im-new-next-steps p { margin: 0 0 0.5rem; }
.im-new-faq-cta { margin: 1.5rem 0; }
.im-new-visitor-form-section { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgba(255,225,0,0.2); max-width: 480px; }
.im-new-form-intro { color: var(--color-muted); margin-bottom: 1.25rem; font-size: 0.95rem; }
.im-new-visitor-form .form-group { margin-bottom: 1rem; }
.im-new-visitor-form label { display: block; margin-bottom: 0.25rem; font-weight: 500; font-size: 0.9rem; }
.im-new-visitor-form input, .im-new-visitor-form textarea { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--color-border, #e8e6e3); border-radius: 6px; font-family: inherit; }
.im-new-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 540px) { .im-new-form-row { grid-template-columns: 1fr; } }
.im-new-msg { padding: 1rem; border-radius: var(--radius); margin-bottom: 1rem; }
.im-new-msg--success { background: #f0fdf4; color: #166534; }
.im-new-msg--error { background: #fef2f2; color: #b91c1c; }

/* Services page - redesigned v2 */
.services-page { padding-top: 0; }
.services-content { padding: 2.5rem 1.5rem 4rem; }

/* Intro block with quick info bar */
.services-intro-block {
    max-width: 720px;
    margin: 0 auto 3rem;
    text-align: center;
}
.services-lead {
    font-size: 1.1rem;
    line-height: 1.75;
    color: var(--color-muted);
    margin: 0;
}

/* Service cards - two-column, distinctive */
.services-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    margin-bottom: 3rem;
}
@media (max-width: 768px) {
    .services-cards { grid-template-columns: 1fr; }
}
.services-card {
    border-radius: var(--radius);
    overflow: hidden;
    transition: var(--transition);
    position: relative;
}
.services-card::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.06;
    pointer-events: none;
}
.services-card-inner {
    padding: 2.25rem 2rem;
    min-height: 320px;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
}
.services-card--sunday {
    background: #1e40af;
    border: 2px solid rgba(255,255,255,0.15);
}
.services-card--sunday::before {
    background: radial-gradient(circle at 85% 15%, rgba(255,225,0,0.2) 0%, transparent 45%);
}
.services-card--sunday:hover {
    border-color: rgba(255,255,255,0.3);
    box-shadow: 0 12px 40px rgba(30,64,175,0.4);
    transform: translateY(-4px);
}
.services-card--thursday {
    background: #0e7490;
    border: 2px solid rgba(255,255,255,0.15);
}
.services-card--thursday::before {
    background: radial-gradient(circle at 15% 85%, rgba(255,225,0,0.18) 0%, transparent 45%);
}
.services-card--thursday:hover {
    border-color: rgba(255,255,255,0.3);
    box-shadow: 0 12px 40px rgba(14,116,144,0.45);
    transform: translateY(-4px);
}
.services-card-day {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 0.5rem;
}
.services-card-title {
    margin: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.02em;
}
.services-card-time {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-primary-light);
    margin-bottom: 1rem;
    letter-spacing: -0.01em;
}
.services-card-desc {
    flex: 1;
    font-size: 0.95rem;
    line-height: 1.65;
    color: rgba(255,255,255,0.92);
}
.services-card-desc p { margin: 0 0 0.75em; }
.services-card-desc p:last-child { margin-bottom: 0; }
.services-card-desc a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.services-card-desc a:hover { color: var(--color-primary-light); }
.services-card-inner .btn {
    margin-top: 1.5rem;
    align-self: flex-start;
}
.services-card-inner .btn-accent {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.services-card-inner .btn-accent:hover {
    background: rgba(255,225,0,0.15);
    color: var(--color-primary-light);
    border-color: var(--color-primary-light);
}

/* Bottom: location card + CTA strip */
.services-bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 2rem;
}
@media (max-width: 700px) {
    .services-bottom { grid-template-columns: 1fr; }
    .services-cta-strip { flex-direction: row; flex-wrap: wrap; min-width: 0; }
}
.services-location-card {
    display: flex;
    gap: 1.25rem;
    padding: 1.5rem 1.75rem;
    background: #fff;
    border: 2px solid rgba(166,125,15,0.2);
    border-radius: var(--radius);
}
.services-location-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(166,125,15,0.1);
    border-radius: var(--radius-sm);
    color: var(--color-brand-accent, #A67D0F);
}
.services-location-title {
    margin: 0 0 0.35rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
}
.services-location-address {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    color: var(--color-muted);
    line-height: 1.5;
}
.services-cta-strip {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 180px;
}
.services-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
}

/* Membership page */
.membership-page { padding-top: 0; }
.membership-content { padding: 3rem 1.5rem 4rem; }
.membership-intro { max-width: 720px; margin-bottom: 2.5rem; }
/* Academy sign-up section - when first, no top border; when after content, top border */
.academy-signup-section { margin-top: 3.5rem; padding-top: 3rem; border-top: 2px solid rgba(255,225,0,0.18); }
.membership-content > .academy-signup-section:first-child { margin-top: 0; padding-top: 0; border-top: none; margin-bottom: 3rem; padding-bottom: 3rem; border-bottom: 2px solid rgba(255,225,0,0.18); }
.academy-signup-header { max-width: 620px; margin-bottom: 2rem; }
.academy-signup-sub { margin: 0.5rem 0 0; color: var(--color-muted); font-size: 0.98rem; line-height: 1.6; }
.academy-signup-success { display: flex; align-items: flex-start; gap: 1rem; background: var(--color-gold-bg); border: 2px solid rgba(212,160,23,0.35); border-radius: var(--radius); padding: 1.5rem; max-width: 600px; }
.academy-signup-success svg { flex-shrink: 0; color: var(--color-primary-on-light); margin-top: 0.1rem; }
.academy-signup-success strong { display: block; font-size: 1.05rem; margin-bottom: 0.25rem; color: var(--color-dark); }
.academy-signup-success p { margin: 0; color: var(--color-muted); font-size: 0.95rem; }
.academy-signup-error { background: #fef2f2; color: #b91c1c; border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.25rem; max-width: 600px; font-size: 0.95rem; }
.academy-signup-form { max-width: 720px; }
.academy-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin-bottom: 1.5rem; }
.academy-form-full { grid-column: 1 / -1; }
.academy-form-grid .form-group label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; color: var(--color-dark); }
.academy-form-grid .form-group input,
.academy-form-grid .form-group textarea { width: 100%; padding: 0.75rem 1rem; border: 2px solid rgba(26,26,26,0.12); border-radius: var(--radius-sm); font-family: var(--font-sans); font-size: 1rem; color: var(--color-dark); background: #fff; transition: var(--transition); box-sizing: border-box; }
.academy-form-grid .form-group input:focus,
.academy-form-grid .form-group textarea:focus { outline: none; border-color: var(--color-primary); }
.academy-form-grid .form-group textarea { resize: vertical; min-height: 90px; }
.form-optional { font-weight: 400; color: var(--color-muted); font-size: 0.85em; }
.academy-form-grid .form-group select { width: 100%; padding: 0.75rem 1rem; border: 2px solid rgba(26,26,26,0.12); border-radius: var(--radius-sm); font-family: var(--font-sans); font-size: 1rem; color: var(--color-dark); background: #fff; transition: var(--transition); box-sizing: border-box; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.9rem center; padding-right: 2.5rem; }
.academy-form-grid .form-group select:focus { outline: none; border-color: var(--color-primary); }
@keyframes academy-select-pulse { 0%,100% { border-color: var(--color-primary); box-shadow: 0 0 0 0 rgba(212,160,23,0); } 50% { border-color: var(--color-primary); box-shadow: 0 0 0 5px rgba(212,160,23,0.25); } }
.academy-select-highlight { animation: academy-select-pulse 0.7s ease 2; }
.membership-join-btn { margin-top: 1rem; font-size: 0.9rem; color: var(--color-primary-on-light); }
.membership-join-btn:hover { background: var(--color-gold-bg); color: var(--color-dark); }
.academy-signup-btn { margin-top: 0.5rem; padding-left: 2rem; padding-right: 2rem; }
@media (max-width: 640px) { .academy-form-grid { grid-template-columns: 1fr; } }

/* About page - beliefs & FAQs */
.about-beliefs { max-width: 720px; margin-bottom: 2.5rem; }
.about-faqs { margin-bottom: 2.5rem; }
.faq-list--inline { max-width: 720px; }

/* Contact page */
.contact-page { padding-top: 0; }
.page-hero--giving {
    background: linear-gradient(135deg, var(--color-dark) 0%, #1e2a3a 50%, #252525 100%);
    background-image: radial-gradient(ellipse 120% 80% at 50% 0%, rgba(255,225,0,0.12), transparent 60%), linear-gradient(135deg, var(--color-dark) 0%, #252525 100%);
}
.page-hero--contact {
    background: linear-gradient(135deg, var(--color-dark) 0%, #1e2a3a 50%, #252525 100%);
    background-image: radial-gradient(ellipse 120% 80% at 50% 0%, rgba(255,225,0,0.12), transparent 60%), linear-gradient(135deg, var(--color-dark) 0%, #252525 100%);
}
.contact-content { padding: 2.5rem 1.5rem 4rem; }
.contact-intro { text-align: center; margin-bottom: 2.5rem; }
.contact-lead {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.7;
    color: var(--color-muted);
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 2.5rem;
    align-items: start;
    margin-bottom: 3rem;
}
.contact-form-card {
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 2rem 2.25rem;
    box-shadow: var(--shadow);
}
.contact-form-title {
    margin: 0 0 1.5rem;
    font-family: var(--font-heading);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: 0.03em;
}
.contact-msg {
    padding: 1rem 1.25rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
}
.contact-msg-icon { display: inline-block; margin-right: 0.5rem; font-weight: 700; }
.contact-msg--success { background: rgba(34,197,94,0.15); color: #15803d; }
.contact-msg--error { background: rgba(239,68,68,0.12); color: #b91c1c; }
.contact-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.contact-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.contact-form-field { display: flex; flex-direction: column; gap: 0.4rem; }
.contact-form label { font-weight: 600; font-size: 0.9rem; color: var(--color-dark); }
.contact-form input,
.contact-form textarea {
    padding: 0.85rem 1rem;
    border: 2px solid rgba(26,26,26,0.1);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 1rem;
    transition: var(--transition);
}
.contact-form input:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: var(--color-primary-on-light);
    box-shadow: 0 0 0 3px rgba(154,123,0,0.15);
}
.contact-form-submit {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.25rem;
}
.contact-sidebar { display: flex; flex-direction: column; }
.contact-card {
    background: #fff;
    border: 2px solid rgba(166,125,15,0.2);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow);
}
.contact-card-title {
    margin: 0 0 1.25rem;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: 0.03em;
}
.contact-card-rows { display: flex; flex-direction: column; gap: 0; }
.contact-card-row {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 0;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid rgba(26,26,26,0.06);
    transition: var(--transition);
}
.contact-card-row:last-of-type { border-bottom: none; }
.contact-card-row:hover {
    color: var(--color-primary-on-light);
}
.contact-card-row:hover .contact-card-row-action { color: var(--color-primary-on-light); text-decoration: underline; }
.contact-card-row-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: rgba(166,125,15,0.1);
    border-radius: var(--radius-sm);
    color: var(--color-brand-accent, #A67D0F);
}
.contact-card-row-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.contact-card-row-value {
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--color-muted);
}
.contact-card-row-action {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    transition: var(--transition);
}
.contact-card-times {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(26,26,26,0.08);
}
.contact-card-times-value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-dark);
}
.btn-block { width: 100%; justify-content: center; }
.contact-map-section { margin-top: 0; }
.contact-map-title {
    margin: 0 0 1rem;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
}
.contact-map-wrap { border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.contact-map {
    aspect-ratio: 21/9;
    min-height: 300px;
}
.contact-map iframe { width: 100%; height: 100%; display: block; }
@media (max-width: 900px) {
    .contact-grid { grid-template-columns: 1fr; }
    .contact-form-row { grid-template-columns: 1fr; }
}

/* FAQ page */
.faq-page { padding-top: 0; }
.faq-content { padding: 3rem 1.5rem 4rem; }
.faq-list { max-width: 720px; margin: 0 auto 2.5rem; }
.faq-item {
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    margin-bottom: 0.75rem;
    overflow: hidden;
    transition: var(--transition);
}
.faq-item:hover { border-color: rgba(255,225,0,0.35); }
.faq-item.is-open .faq-question { color: var(--color-primary-on-light); }
.faq-item.is-open .faq-icon { transform: rotate(180deg); }
.faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: none;
    text-align: left;
    font-family: var(--font-sans);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--color-dark);
    cursor: pointer;
    transition: var(--transition);
}
.faq-question:hover { background: var(--color-gold-bg); }
.faq-icon {
    flex-shrink: 0;
    transition: transform 0.3s ease;
}
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.faq-item.is-open .faq-answer { max-height: 500px; }
.faq-answer-inner {
    padding: 0 1.5rem 1.25rem;
    font-size: 0.98rem;
    line-height: 1.7;
    color: var(--color-muted);
}
.faq-empty-state { max-width: 480px; margin: 0 auto 2rem; padding: 2rem; text-align: center; color: var(--color-muted); background: var(--color-gold-bg); border: 1px solid rgba(255,225,0,0.3); border-radius: var(--radius); }
.faq-empty-state p { margin: 0; font-size: 1.05rem; }
.faq-empty-state a { color: var(--color-primary-on-light); font-weight: 600; }
.faq-empty-state a:hover { text-decoration: underline; }
.faq-cta {
    text-align: center;
    padding: 2rem;
    background: var(--color-gold-bg);
    border-radius: var(--radius);
}
.faq-cta p { margin: 0 0 1rem; font-weight: 600; color: var(--color-dark); }

/* Giving page */
.giving-page { padding-top: 0; }
.giving-content { padding: 3rem 1.5rem 4rem; max-width: 1120px; margin: 0 auto; }
.giving-intro { margin-bottom: 2.5rem; }
.giving-intro--below { margin-top: 2.5rem; margin-bottom: 0; padding-top: 2rem; border-top: 1px solid rgba(212,160,23,0.2); }
.giving-intro--below .giving-intro-lead { font-size: 1rem; }
.giving-intro-lead { font-size: 1.2rem; line-height: 1.7; color: var(--color-dark); margin: 0 0 1rem; font-weight: 500; }
.giving-intro-supports { font-size: 1rem; font-weight: 600; margin: 0 0 0.5rem; color: var(--color-dark); }
.giving-intro-list { margin: 0 0 0 1.25rem; padding: 0; list-style: disc; color: var(--color-muted); line-height: 1.8; }
.giving-msg { padding: 1rem 1.25rem; border-radius: var(--radius); margin-bottom: 1.5rem; }
.giving-msg--error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.giving-options-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-bottom: 2.5rem;
    align-items: start;
}
.giving-options-grid--two {
    grid-template-columns: 1.4fr 1fr; /* Stripe wider; PayPal compact */
}
@media (max-width: 768px) {
    .giving-options-grid--two { grid-template-columns: 1fr; }
}
.giving-option-card {
    background: #fff;
    border: 2px solid rgba(255,225,0,0.25);
    border-radius: var(--radius);
    padding: 2rem;
    transition: var(--transition);
    box-shadow: var(--shadow);
}
.giving-option-card:hover { border-color: rgba(255,225,0,0.5); }
.giving-option-card--stripe { }
.giving-option-card--interac {
    display: flex;
    flex-direction: column;
}
.giving-interac-steps { display: flex; flex-direction: column; gap: 0.85rem; margin-top: 0.25rem; }
.giving-interac-step { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0; font-size: 0.95rem; color: var(--color-dark); line-height: 1.55; }
.giving-interac-step-text { flex: 1; min-width: 0; text-align: left; }
.giving-interac-step-num { flex-shrink: 0; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--color-gold-bg); border: 2px solid rgba(212,160,23,0.35); font-size: 0.78rem; font-weight: 700; color: var(--color-primary-on-light); display: flex; align-items: center; justify-content: center; margin-top: 0.1rem; }
.giving-interac-account { background: var(--color-bg-warm); border: 2px solid rgba(212,160,23,0.35); border-radius: var(--radius-sm); padding: 0.9rem 1.1rem; display: flex; flex-direction: column; gap: 0.25rem; margin: 0.25rem 0; }
.giving-interac-account-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-muted); }
.giving-interac-account-email { font-size: 1.05rem; font-weight: 700; color: var(--color-dark); word-break: break-all; letter-spacing: 0.01em; }
.giving-option-header { margin-bottom: 1.5rem; }
.giving-option-badge { display: inline-block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-primary-on-light); background: var(--color-gold-bg); padding: 0.25rem 0.6rem; border-radius: 4px; margin-bottom: 0.75rem; }
.giving-option-title { margin: 0 0 0.5rem; font-family: var(--font-heading); font-size: 1.35rem; color: var(--color-dark); }
.giving-option-desc { margin: 0 0 0.5rem; font-size: 0.95rem; color: var(--color-muted); line-height: 1.5; }
.giving-option-email { margin: 0.5rem 0 0; font-size: 1rem; }
.giving-option-email a { color: var(--color-primary-on-light); font-weight: 600; text-decoration: underline; }
.giving-stripe-form .form-row { margin-bottom: 1.25rem; }
.giving-stripe-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.giving-stripe-form-row .form-row { margin-bottom: 0; }
@media (max-width: 600px) {
    .giving-stripe-form-row { grid-template-columns: 1fr; }
    .giving-stripe-form-row .form-row { margin-bottom: 1.25rem; }
    .giving-stripe-form-row .form-row:last-child { margin-bottom: 0; }
}
.giving-stripe-form label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; color: var(--color-dark); }
.giving-stripe-form input, .giving-stripe-form select {
    width: 100%; padding: 0.75rem 1rem; border: 2px solid rgba(26,26,26,0.12); border-radius: var(--radius-sm);
    font-size: 1rem; font-family: var(--font-sans);
}
.giving-stripe-form input:focus, .giving-stripe-form select:focus {
    outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(255,225,0,0.25);
}
.form-row--amount .amount-input-wrap { display: flex; align-items: center; border: 2px solid rgba(26,26,26,0.12); border-radius: var(--radius-sm); overflow: hidden; }
.form-row--amount .amount-prefix { padding: 0.75rem 1rem; background: var(--color-bg-warm); font-weight: 600; color: var(--color-muted); }
.form-row--amount input { border: none !important; flex: 1; }
.btn-giving-submit { width: 100%; margin-top: 0.5rem; padding: 0.9rem 1.5rem; font-size: 1rem; }
.btn-giving-cta { display: block; text-align: center; padding: 0.9rem 1.5rem; }
/* Footer: other giving options + Contact Us – below both cards, compact */
.giving-footer {
    text-align: center;
    padding: 1.5rem 1rem;
    background: var(--color-bg-warm);
    border-radius: var(--radius);
    border: 1px solid rgba(255,225,0,0.2);
}
.giving-footer-text {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    color: var(--color-muted);
    line-height: 1.6;
}
.giving-footer-text a { color: var(--color-primary-on-light); text-decoration: underline; }
.giving-footer .btn-outline {
    background: transparent;
    color: var(--color-primary-on-light);
    border: 2px solid var(--color-primary);
}
.giving-footer .btn-outline:hover {
    background: var(--color-gold-bg);
    color: var(--color-dark);
    border-color: var(--color-primary-on-light);
}
/* Giving success page */
.giving-success-page { padding: 4rem 1.5rem; min-height: 50vh; display: flex; align-items: center; }
.giving-success-content { max-width: 480px; margin: 0 auto; }
.giving-success-card { background: #fff; border: 2px solid rgba(255,225,0,0.3); border-radius: var(--radius); padding: 3rem; text-align: center; box-shadow: var(--shadow); }
.giving-success-icon { color: #22c55e; margin-bottom: 1rem; }
.giving-success-title { margin: 0 0 0.5rem; font-family: var(--font-heading); font-size: 2rem; color: var(--color-dark); }
.giving-success-amount { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 700; color: var(--color-primary-on-light); }
.giving-success-message { margin: 0 0 1.5rem; color: var(--color-muted); line-height: 1.6; }

/* Prayer page */
.prayer-page { padding-top: 0; }
.prayer-content { padding: 3rem 1.5rem 4rem; }
.prayer-success {
    background: var(--color-gold-bg);
    border: 2px solid rgba(255,225,0,0.4);
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 2rem;
}
.prayer-success p { margin: 0; font-weight: 600; color: var(--color-primary-on-light); }
.prayer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; }
.prayer-grid--wall {
    grid-template-columns: 1fr 1.2fr;
    gap: 2.5rem;
    align-items: start;
}
@media (max-width: 900px) {
    .prayer-grid--wall { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 380px) {
    .prayer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}
.prayer-submit-card, .prayer-wall-card {
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 2rem;
    box-shadow: var(--shadow);
}
.prayer-desc { margin: 0 0 1.5rem; color: var(--color-muted); font-size: 0.98rem; line-height: 1.65; }
.prayer-form .form-group { margin-bottom: 1.25rem; }
.prayer-form label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; color: var(--color-dark); }
.prayer-form input, .prayer-form textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid rgba(26,26,26,0.1);
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 1rem;
    transition: var(--transition);
}
.prayer-form input:focus, .prayer-form textarea:focus {
    outline: none;
    border-color: var(--color-primary);
}
.prayer-form textarea { resize: vertical; min-height: 120px; }
.prayer-wall-card .btn { margin-bottom: 1rem; }
.prayer-wall-form .form-group { margin-bottom: 1.25rem; }
.prayer-wall-form .form-group label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; color: var(--color-dark); }
.prayer-wall-form .form-check { display: flex; align-items: center; gap: 0.5rem; }
.prayer-wall-form .form-check input { width: auto; }
.prayer-wall-form input[type="text"],
.prayer-wall-form textarea {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid rgba(26,26,26,0.1);
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 1rem;
    color: var(--color-dark);
    background: #fff;
    transition: var(--transition);
}
.prayer-wall-form input[type="text"]:focus,
.prayer-wall-form textarea:focus {
    outline: none;
    border-color: var(--color-primary);
}
.prayer-wall-form input[type="text"]::placeholder {
    color: var(--color-muted);
    opacity: 0.8;
}
.prayer-wall-form textarea { min-height: 100px; resize: vertical; }
.prayer-quill-wrap { margin-bottom: 0; }
.prayer-quill-wrap .quill-editor-wrap,
.prayer-quill-editor-wrap {
    background: #fff;
    border: 2px solid rgba(26,26,26,0.1);
    border-radius: var(--radius-sm);
    min-height: 160px;
}
.prayer-quill-editor-wrap .ql-container { border: none; font-family: var(--font-sans); font-size: 1rem; }
.prayer-quill-editor-wrap .ql-editor { min-height: 140px; }
.prayer-quill-editor-wrap .ql-toolbar { border: none; border-bottom: 1px solid rgba(26,26,26,0.1); background: var(--color-bg-warm); border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.prayer-msg { padding: 1rem; border-radius: var(--radius); margin-bottom: 1rem; }
.prayer-msg--error { background: #fef2f2; color: #b91c1c; }
.prayer-wall-posts { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(255,225,0,0.2); }
.prayer-grid--wall .prayer-wall-posts { margin-top: 0; padding-top: 0; border-top: none; }
.prayer-wall-posts .about-section-title { margin-bottom: 1.5rem; }
.prayer-wall-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.25rem; }
.prayer-wall-item { background: var(--color-bg-warm); padding: 1.25rem 1.5rem; border-radius: var(--radius); border: 2px solid rgba(255,225,0,0.15); display: flex; flex-direction: column; text-decoration: none; color: inherit; transition: var(--transition); }
.prayer-wall-item:hover { border-color: var(--color-primary); box-shadow: 0 4px 16px rgba(212,160,23,0.15); transform: translateY(-2px); }
.prayer-wall-item-title { margin: 0 0 0.5rem; font-size: 0.98rem; font-weight: 700; color: var(--color-dark); line-height: 1.35; }
.prayer-wall-item-excerpt { margin: 0; color: var(--color-dark); line-height: 1.6; font-size: 0.93rem; flex: 1; }
.prayer-wall-item-footer { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: 0.85rem; padding-top: 0.75rem; border-top: 1px solid rgba(255,225,0,0.25); flex-wrap: wrap; }
.prayer-wall-item-meta { margin: 0; font-size: 0.8rem; color: var(--color-muted); }
.prayer-wall-read-more { font-size: 0.82rem; color: var(--color-primary-on-light); font-weight: 600; white-space: nowrap; }
.prayer-char-hint { font-size: 0.8rem; color: var(--color-muted); font-weight: 400; margin-left: 0.25rem; }
/* Prayer single view page */
.prayer-view-wrap { max-width: 720px; margin: 0 auto; }
.prayer-view-back { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; font-weight: 600; color: var(--color-primary-on-light); text-decoration: none; margin-bottom: 1.75rem; transition: var(--transition); }
.prayer-view-back:hover { color: var(--color-primary-dark); gap: 0.6rem; }
.prayer-view-card { background: #fff; border: 2px solid rgba(255,225,0,0.2); border-radius: var(--radius); padding: 2rem 2.25rem; box-shadow: var(--shadow); }
.prayer-view-header { margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 2px solid rgba(255,225,0,0.2); }
.prayer-view-title { margin: 0 0 0.85rem; font-size: 1.5rem; line-height: 1.3; color: var(--color-dark); }
.prayer-view-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.prayer-view-author, .prayer-view-date { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.88rem; color: var(--color-muted); }
.prayer-view-anon-badge { display: inline-block; font-size: 0.78rem; font-weight: 600; color: var(--color-primary-on-light); background: var(--color-gold-bg); border-radius: 99px; padding: 0.15rem 0.65rem; }
.prayer-view-body { line-height: 1.75; color: var(--color-dark); font-size: 1rem; }
.prayer-view-body p { margin: 0 0 1rem; }
.prayer-view-body p:last-child { margin-bottom: 0; }
.prayer-view-cta { margin-top: 2rem; text-align: center; padding: 1.75rem; background: var(--color-bg-warm); border-radius: var(--radius); border: 2px solid rgba(255,225,0,0.15); }
.prayer-view-cta p { margin: 0 0 1rem; color: var(--color-muted); font-size: 0.95rem; }
.prayer-note { margin: 0; font-size: 0.9rem; color: var(--color-muted); }
.prayer-note a { color: var(--color-primary-on-light); text-decoration: none; }
.prayer-note a:hover { text-decoration: underline; }
.prayer-pagination { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.prayer-pagination-info { font-size: 0.9rem; color: var(--color-muted); }
.prayer-pagination-links { display: flex; align-items: center; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.prayer-pagination-links li { margin: 0; }
.prayer-pagination-link { display: inline-block; padding: 0.4rem 0.75rem; border: 2px solid rgba(26,26,26,0.15); border-radius: var(--radius-sm); color: var(--color-dark); text-decoration: none; font-size: 0.9rem; transition: var(--transition); }
.prayer-pagination-link:hover { border-color: var(--color-primary); color: var(--color-primary-dark); }
.prayer-pagination-current { display: inline-block; padding: 0.4rem 0.75rem; font-weight: 600; color: var(--color-primary-dark); background: var(--color-gold-bg); border-radius: var(--radius-sm); font-size: 0.9rem; }

/* Testimonies page (user-submitted stories) */
.testimonies-page { padding-top: 0; }
.testimonies-content { padding: 3rem 1.5rem 4rem; }
.testimonies-success { background: var(--color-gold-bg); border: 2px solid rgba(255,225,0,0.4); border-radius: var(--radius); padding: 1.5rem; margin-bottom: 2rem; }
.testimonies-intro-section { margin-bottom: 2rem; padding: 1.5rem 1.75rem; background: var(--color-bg-warm); border-radius: var(--radius); border: 2px solid rgba(255,225,0,0.15); }
.testimonies-intro-section .testimonies-desc { margin: 0; }
.testimonies-success p { margin: 0; font-weight: 600; color: var(--color-primary-on-light); }
.testimonies-msg { padding: 1rem; border-radius: var(--radius); margin-bottom: 1rem; }
.testimonies-msg--error { background: #fef2f2; color: #b91c1c; }
.testimonies-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; }
.testimonies-grid--wall { grid-template-columns: 1fr 1.2fr; gap: 2.5rem; align-items: start; }
@media (max-width: 900px) { .testimonies-grid--wall { grid-template-columns: 1fr; gap: 2rem; } }
.testimonies-submit-card { background: #fff; border: 2px solid rgba(255,225,0,0.2); border-radius: var(--radius); padding: 2rem; box-shadow: var(--shadow); }
.testimonies-desc { margin: 0 0 1.5rem; color: var(--color-muted); font-size: 0.98rem; line-height: 1.65; }
.testimonies-form .form-group { margin-bottom: 1.25rem; }
.testimonies-form .form-group label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; color: var(--color-dark); }
.testimonies-word-count { font-weight: 400; font-size: 0.85rem; color: var(--color-muted); }
.testimonies-form input[type="text"],
.testimonies-form .testimonies-name-input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 2px solid rgba(26,26,26,0.1);
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 1rem;
    color: var(--color-dark);
    background: #fff;
    transition: var(--transition);
}
.testimonies-form input[type="text"]:focus,
.testimonies-form .testimonies-name-input:focus {
    outline: none;
    border-color: var(--color-primary);
}
.testimonies-form input[type="text"]::placeholder,
.testimonies-form .testimonies-name-input::placeholder {
    color: var(--color-muted);
    opacity: 0.8;
}
.testimonies-quill-wrap { margin-bottom: 0; }
.testimonies-quill-wrap .quill-editor-wrap, .testimonies-quill-editor-wrap { background: #fff; border: 2px solid rgba(26,26,26,0.1); border-radius: var(--radius-sm); min-height: 180px; }
.testimonies-quill-editor-wrap .ql-container { border: none; font-family: var(--font-sans); font-size: 1rem; }
.testimonies-quill-editor-wrap .ql-editor { min-height: 160px; }
.testimonies-quill-editor-wrap .ql-toolbar { border: none; border-bottom: 1px solid rgba(26,26,26,0.1); background: var(--color-bg-warm); border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.testimonies-list-wrap { margin-top: 0; }
.testimonies-list-wrap .about-section-title { margin-bottom: 1.5rem; }
.testimonies-list { display: flex; flex-direction: column; gap: 1.25rem; }
.testimonies-item { background: var(--color-bg-warm); padding: 1.25rem 1.5rem; border-radius: var(--radius); border: 2px solid rgba(255,225,0,0.15); }
.testimonies-item-text { margin: 0 0 0.5rem; color: var(--color-dark); line-height: 1.65; }
.testimonies-item-meta { margin: 0; font-size: 0.875rem; color: var(--color-muted); }
.testimonies-note { margin: 0; font-size: 0.9rem; color: var(--color-muted); }
.testimonies-pagination { margin-top: 1.5rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.testimonies-pagination-info { font-size: 0.9rem; color: var(--color-muted); }
.testimonies-pagination-links { display: flex; align-items: center; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.testimonies-pagination-links li { margin: 0; }
.testimonies-pagination-link { display: inline-block; padding: 0.4rem 0.75rem; border: 2px solid rgba(26,26,26,0.15); border-radius: var(--radius-sm); color: var(--color-dark); text-decoration: none; font-size: 0.9rem; transition: var(--transition); }
.testimonies-pagination-link:hover { border-color: var(--color-primary); color: var(--color-primary-dark); }
.testimonies-pagination-current { display: inline-block; padding: 0.4rem 0.75rem; font-weight: 600; color: var(--color-primary-dark); background: var(--color-gold-bg); border-radius: var(--radius-sm); font-size: 0.9rem; }

/* Ministries page */
.ministries-page { padding-top: 0; }
.ministries-content { padding: 3rem 1.5rem 4rem; }
.ministries-intro { max-width: 560px; margin: 0 auto 2rem; color: var(--color-muted); font-size: 1.05rem; text-align: center; }
.ministries-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.ministry-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.ministry-card:hover {
    border-color: rgba(255,225,0,0.5);
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}
.ministry-card:hover .link-arrow { color: var(--color-primary-dark); }
.ministry-card-img {
    aspect-ratio: 16/9;
    overflow: hidden;
    background-color: var(--color-bg);
}
.ministry-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.ministry-card-body {
    padding: 1.25rem;
}
.ministry-card-body h3 { margin: 0 0 0.5rem; font-family: var(--font-heading); font-size: 1.2rem; color: var(--color-dark); }
.ministry-card-body p { margin: 0 0 0.75rem; font-size: 0.95rem; color: var(--color-muted); }
.ministry-card-body .ministry-card-tagline { margin: 0 0 0.75rem; font-size: 0.95rem; color: var(--color-muted); }
.ministry-card-tagline p { margin: 0 0 0.5em; }
.ministry-card-tagline p:last-child { margin-bottom: 0; }

/* Small groups page - full-content cards, distinct colors */
.small-groups-page { padding-top: 0; }
.small-groups-content { padding: 3rem 1.5rem 4rem; }
.small-groups-intro { max-width: 560px; margin: 0 auto 2rem; color: var(--color-muted); font-size: 1.05rem; text-align: center; }
.small-groups-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Small group card - modern, colored, full content */
.small-group-card {
    border-radius: var(--radius);
    overflow: hidden;
    border: none;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: transform var(--transition), box-shadow var(--transition);
    position: relative;
}
.small-group-card::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.08;
    pointer-events: none;
    z-index: 0;
}
.small-group-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.14);
}
.small-group-card-inner {
    padding: 2rem;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    z-index: 1;
}
.small-group-card-header {
    flex-shrink: 0;
}
.small-group-card-title {
    margin: 0 0 0.35rem;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff !important;
}
.small-group-card-tagline {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    line-height: 1.5;
    color: rgba(255,255,255,0.92) !important;
}
.small-group-card-tagline p { margin: 0 0 0.35em; }
.small-group-card-tagline p:last-child { margin-bottom: 0; }
.small-group-card-meta {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.2);
    color: #fff;
}
.small-group-card-body {
    flex: 1;
    font-size: 0.95rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.95) !important;
}
.small-group-card-body p { margin: 0 0 0.75em; }
.small-group-card-body p:last-child { margin-bottom: 0; }
.small-group-card-body a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.small-group-card-body a:hover { color: var(--color-primary-light); }
.small-group-card-body ul, .small-group-card-body ol {
    margin: 0 0 0.75em;
    padding-left: 1.25rem;
}
.small-group-card-body li { margin-bottom: 0.25em; }
.small-group-card-body blockquote {
    margin: 0.75em 0;
    padding-left: 1rem;
    border-left: 3px solid rgba(255,255,255,0.4);
    font-style: italic;
}
.small-group-card-body h1, .small-group-card-body h2, .small-group-card-body h3, .small-group-card-body h4 {
    margin: 1em 0 0.5em;
    font-size: 1em;
    font-weight: 700;
    color: #fff !important;
}
.small-group-card-body h1:first-child, .small-group-card-body h2:first-child, .small-group-card-body h3:first-child, .small-group-card-body h4:first-child {
    margin-top: 0;
}

/* Color variants */
.small-group-card--blue {
    background: #1e40af;
}
.small-group-card--blue::before {
    background: radial-gradient(circle at 85% 15%, rgba(255,225,0,0.18) 0%, transparent 45%);
}
.small-group-card--green {
    background: #166534;
}
.small-group-card--green::before {
    background: radial-gradient(circle at 15% 85%, rgba(255,225,0,0.15) 0%, transparent 45%);
}
.small-group-card--teal {
    background: #0e7490;
}
.small-group-card--teal::before {
    background: radial-gradient(circle at 80% 80%, rgba(255,225,0,0.14) 0%, transparent 50%);
}
.small-group-card--amber {
    background: #92400e;
}
.small-group-card--amber::before {
    background: radial-gradient(circle at 20% 20%, rgba(255,225,0,0.16) 0%, transparent 45%);
}
.small-group-card--violet {
    background: #6b21a8;
}
.small-group-card--violet::before {
    background: radial-gradient(circle at 90% 50%, rgba(255,225,0,0.12) 0%, transparent 45%);
}
.small-group-card--indigo {
    background: #3730a3;
}
.small-group-card--indigo::before {
    background: radial-gradient(circle at 10% 90%, rgba(255,225,0,0.15) 0%, transparent 45%);
}

@media (max-width: 600px) {
    .small-groups-grid { gap: 1.25rem; }
    .small-group-card-inner { padding: 1.5rem; }
    .small-group-card-title { font-size: 1.2rem; }
}

/* Jobs page */
.jobs-page { padding-top: 0; }
.jobs-content { padding: 3rem 1.5rem 4rem; }
.jobs-intro { max-width: 560px; margin: 0 auto 2rem; color: var(--color-muted); font-size: 1.05rem; text-align: center; }
.jobs-list { display: flex; flex-direction: column; gap: 0.75rem; }
.job-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1.5rem 2rem;
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.job-card:hover { border-color: rgba(255,225,0,0.5); transform: translateX(4px); box-shadow: var(--shadow-hover); }
.job-card-main h3 { margin: 0 0 0.25rem; font-family: var(--font-heading); font-size: 1.15rem; color: var(--color-dark); }
.job-type { font-size: 0.9rem; color: var(--color-primary-on-light); font-weight: 600; }

/* Job detail & apply form */
.job-view-page { padding-top: 0; }
.job-view-content { padding: 2rem 1.5rem 4rem; }
.job-desc { margin: 1.5rem 0; color: var(--color-muted); line-height: 1.75; }
.job-desc p { margin: 0 0 1rem; }
.job-apply-cta { margin: 0 0 2rem; display: inline-block; }

/* Job apply page - professional layout */
.job-apply-page { padding-top: 0; }
.job-apply-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}
.job-apply-breadcrumb a {
    color: rgba(255,255,255,0.8);
    text-decoration: none;
    transition: var(--transition);
}
.job-apply-breadcrumb a:hover { color: var(--color-primary); }
.job-apply-breadcrumb-sep { color: rgba(255,255,255,0.5); }
.job-apply-breadcrumb-current { color: var(--color-primary); font-weight: 600; }
.job-apply-wrapper { padding: 2.5rem 1.5rem 4rem; }
.job-apply-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 2.5rem;
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}
.job-apply-main { min-width: 0; }

/* Apply cards */
.job-apply-card {
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 2rem 2.25rem;
    box-shadow: var(--shadow);
}
.job-apply-success-card {
    text-align: center;
    padding: 3rem 2.5rem;
}
.job-apply-success-icon {
    color: #16a34a;
    margin: 0 auto 1.25rem;
    display: flex;
    justify-content: center;
}
.job-apply-success-title {
    margin: 0 0 0.75rem;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-dark);
}
.job-apply-success-text {
    margin: 0 0 1.75rem;
    color: var(--color-muted);
    line-height: 1.7;
    max-width: 42ch;
    margin-left: auto;
    margin-right: auto;
}
.job-apply-success-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}
.job-apply-success-actions .btn-outline {
    background: transparent;
    color: var(--color-primary-on-light);
    border: 2px solid var(--color-primary-on-light);
}
.job-apply-success-actions .btn-outline:hover {
    background: var(--color-gold-bg);
    border-color: var(--color-primary-on-light);
    color: var(--color-primary-on-light);
}

.job-apply-msg-card {
    padding: 2rem;
}
.job-apply-msg-icon {
    display: flex;
    margin-bottom: 1rem;
    color: #b91c1c;
}
.job-apply-msg-title {
    margin: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
}
.job-apply-msg-card p { margin: 0 0 1.25rem; color: var(--color-muted); line-height: 1.6; }
.job-apply-msg-card .btn { margin-top: 0; }
.job-apply-msg {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
    background: rgba(239,68,68,0.08);
    color: #b91c1c;
    border: 1px solid rgba(239,68,68,0.2);
}
.job-apply-msg-icon-sm {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(239,68,68,0.15);
    border-radius: 50%;
    font-weight: 700;
    font-size: 0.85rem;
}

/* Form card */
.job-apply-form-card { margin-top: 0; }
.job-apply-form-header { margin-bottom: 1.75rem; }
.job-apply-form-title {
    margin: 0 0 0.35rem;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: 0.02em;
}
.job-apply-form-lead {
    margin: 0;
    font-size: 0.95rem;
    color: var(--color-muted);
    line-height: 1.5;
}
.job-apply-required { color: var(--color-torch-red); }
.job-apply-optional { font-weight: 400; color: var(--color-muted); font-size: 0.9em; }

/* Form fields */
.job-apply-fieldset {
    margin: 0 0 2rem;
    padding: 0;
    border: none;
}
.job-apply-fieldset:last-of-type { margin-bottom: 1.5rem; }
.job-apply-legend {
    display: block;
    margin: 0 0 1rem;
    padding: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    letter-spacing: 0.04em;
    border-bottom: 2px solid rgba(255,225,0,0.25);
}
.job-apply-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.25rem;
}
.job-apply-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.job-apply-field label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--color-dark);
}
.job-apply-form input,
.job-apply-form select,
.job-apply-form textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border: 2px solid rgba(26,26,26,0.12);
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 1rem;
    transition: var(--transition);
    background: #fff;
}
.job-apply-form input:hover,
.job-apply-form select:hover,
.job-apply-form textarea:hover {
    border-color: rgba(26,26,26,0.2);
}
.job-apply-form input:focus,
.job-apply-form select:focus,
.job-apply-form textarea:focus {
    outline: none;
    border-color: var(--color-primary-on-light);
    box-shadow: 0 0 0 3px rgba(154,123,0,0.12);
}
.job-apply-form input::placeholder,
.job-apply-form textarea::placeholder {
    color: #9ca3af;
}
.job-apply-form select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235c5c5c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
}
.job-apply-form textarea {
    resize: vertical;
    min-height: 120px;
}
/* File upload - styled wrapper */
.job-apply-field--file .job-apply-file-wrap {
    position: relative;
    padding: 1.25rem;
    border: 2px dashed rgba(26,26,26,0.18);
    border-radius: var(--radius-sm);
    background: var(--color-bg);
    transition: var(--transition);
}
.job-apply-field--file .job-apply-file-wrap:hover {
    border-color: rgba(255,225,0,0.4);
    background: var(--color-gold-bg);
}
.job-apply-field--file input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    padding: 0;
}
.job-apply-file-label {
    display: block;
    font-weight: 600;
    color: var(--color-primary-on-light);
    font-size: 0.95rem;
    margin-bottom: 0.25rem;
}
.job-apply-file-hint {
    font-size: 0.85rem;
    color: var(--color-muted);
}
.job-apply-form-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
}
.job-apply-submit {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem 1.75rem;
    font-weight: 600;
}
.job-apply-cancel {
    font-size: 0.9rem;
    color: var(--color-muted);
    text-decoration: none;
    transition: var(--transition);
}
.job-apply-cancel:hover { color: var(--color-primary-on-light); }

/* Sidebar */
.job-apply-sidebar {
    position: sticky;
    top: calc(96px + 1.5rem);
}
.job-apply-sidebar-card {
    background: #fff;
    border: 2px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 1.5rem;
    margin-bottom: 1.25rem;
    box-shadow: var(--shadow);
}
.job-apply-sidebar-title {
    margin: 0 0 0.75rem;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: 0.03em;
}
.job-apply-sidebar-job {
    margin: 0 0 0.25rem;
    font-weight: 600;
    color: var(--color-dark);
    font-size: 1.05rem;
}
.job-apply-sidebar-type {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
    color: var(--color-primary-on-light);
}
.job-apply-sidebar-link {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    text-decoration: none;
    transition: var(--transition);
}
.job-apply-sidebar-link:hover { color: var(--color-primary-dark); text-decoration: underline; }
.job-apply-sidebar-list {
    margin: 0;
    padding-left: 1.25rem;
    font-size: 0.9rem;
    color: var(--color-muted);
    line-height: 1.7;
}

@media (max-width: 900px) {
    .job-apply-layout { grid-template-columns: 1fr; }
    .job-apply-sidebar { position: static; }
}
@media (max-width: 600px) {
    .job-apply-grid { grid-template-columns: 1fr; }
    .job-apply-wrapper { padding: 1.5rem 1rem 3rem; }
    .job-apply-card { padding: 1.5rem 1.25rem; }
    .job-apply-success-card { padding: 2rem 1.5rem; }
}

/* Events/Media with page hero - no gap between header and hero */
.events-page { padding-top: 0; }
.events-page .brand-shell, .media-page .media-shell { padding-top: 2rem; }

/* Events grid - cards with images */
.events-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1.5rem;
}
.event-card-event {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 2px solid rgba(255,225,0,0.15);
    transition: var(--transition);
}
.event-card-event:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
    border-color: rgba(255,225,0,0.35);
}
.event-card-event-img {
    aspect-ratio: 16/9;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg);
}
.event-card-event-body {
    padding: 1.25rem;
}
.event-card-event-date {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    margin-bottom: 0.5rem;
}
/* "Coming Soon" badge on the events listing page */
.event-card-coming-soon {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 0.2rem 0.65rem;
    border-radius: 100px;
    background: #fef9c3;
    color: #854d0e;
    margin-bottom: 0.5rem;
}
/* "Coming Soon" in event detail page meta row */
.event-detail-coming-soon {
    font-size: 0.85rem;
    font-weight: 600;
    font-style: italic;
    color: var(--color-primary-on-light);
}
.event-card-event-body h3 {
    margin: 0 0 0.5rem;
    font-family: var(--font-heading);
    font-size: 1.15rem;
    color: var(--color-dark);
}
.event-card-event-body p {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    color: var(--color-muted);
    line-height: 1.5;
}
.event-card-event-body .link-arrow {
    font-size: 0.9rem;
}

/* Event detail page */
.event-detail-page .container { max-width: 800px; padding-top: 2.5rem; }
.event-detail-back {
    display: inline-block;
    margin-bottom: 1.5rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    text-decoration: none;
    transition: var(--transition);
}
.event-detail-back:hover { color: var(--color-primary-dark); }

/* Event flier image — full natural dimensions, nothing cropped */
.event-detail-hero {
    width: 100%;
    max-width: 720px;
    margin: 0 auto 0;
    padding: 0 1.5rem;
    box-sizing: border-box;
    line-height: 0;
}
.event-detail-hero img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius);
    box-shadow: 0 8px 32px rgba(0,0,0,0.14);
}

/* Ministry detail page */
.ministry-detail-page .container { max-width: 800px; padding-top: 2rem; }
.ministry-detail-image {
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: var(--shadow);
}
.ministry-detail-image img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.event-detail-body h1 {
    margin: 0 0 1rem;
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    color: var(--color-dark);
}
.event-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
    color: var(--color-muted);
}
.event-detail-meta span:not(:last-child)::after {
    content: ' · ';
    margin-left: 0.25rem;
    color: var(--color-muted);
}
.event-detail-desc {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--color-dark);
}
.event-detail-desc p { margin: 0 0 1rem; }

.brand-empty-wrap { margin-top: 1rem; }

@media (max-width: 600px) {
    .page-subnav .container { flex-wrap: wrap; }
    .page-subnav-link { padding: 0.75rem 1rem; }
}

/* Inner page brand signature system */
.brand-page .section-title-bar {
    background:
        linear-gradient(120deg, rgba(255,251,245,0.98) 0%, rgba(255,255,255,0.98) 40%, rgba(255,251,245,0.98) 100%);
}
.brand-shell {
    display: grid;
    gap: 1rem;
}
.brand-kicker {
    margin: 0;
    font-size: 0.9rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--color-primary-on-light);
}
.brand-sub {
    margin: 0 auto 0.5rem;
    max-width: 56ch;
    color: var(--color-muted);
    font-size: 1.05rem;
    text-align: center;
}
.brand-kicker { text-align: center; }
.brand-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}
.brand-card {
    background: #fff;
    border: 1px solid rgba(255,225,0,0.2);
    border-radius: var(--radius);
    padding: 1.25rem;
    box-shadow: var(--shadow);
    transition: var(--transition);
}
.brand-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 34px rgba(26,26,26,0.12);
    border-color: rgba(255,225,0,0.45);
}
.brand-card h3 {
    margin: 0 0 0.45rem;
    font-family: var(--font-heading);
    font-size: 1.15rem;
    letter-spacing: -0.01em;
}
.brand-card p {
    margin: 0;
    color: var(--color-muted);
}
.brand-card-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: var(--color-gold-bg);
    color: var(--color-primary-on-light);
    font-family: var(--font-heading);
    font-weight: 800;
    font-size: 1.1rem;
    border-radius: 50%;
    margin-bottom: 1rem;
}
.brand-card-title { font-family: var(--font-heading); font-size: 1.15rem; font-weight: 700; margin: 0 0 0.5rem; color: var(--color-dark); }
.brand-card-text { font-size: 0.95rem; line-height: 1.65; color: var(--color-muted); margin: 0; }
.brand-meta {
    font-size: 0.92rem;
}
.brand-link-card {
    text-decoration: none;
    color: inherit;
}
.brand-link-card:hover h3 {
    color: var(--color-primary-dark);
}
.brand-empty {
    margin: 0.25rem 0 0;
    color: var(--color-muted);
}
.brand-back {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.5rem;
    font-weight: 600;
    color: var(--color-primary-on-light);
    text-decoration: none;
    transition: var(--transition);
}
.brand-back:hover {
    color: var(--color-primary-dark);
    transform: translateX(-2px);
}

/* Main content */
.main-content { width: 100%; min-height: 50vh; overflow-x: hidden; padding-top: 140px; }

/* Footer - Believers House multi-column */
.site-footer { width: 100%; background: var(--color-dark); color: #fff; padding: 4rem 1.5rem 2rem; overflow-x: hidden; }
.footer-inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.2fr 2fr; grid-template-rows: auto auto; gap: 2rem 3rem; align-items: start; }
.footer-brand .logo { display: inline-flex; align-items: flex-start; }
.footer-brand .logo img {
    height: 56px;
    max-width: 200px;
    width: auto;
    object-fit: contain;
    object-position: left top;
    display: block;
}
.footer-brand .logo img.footer-logo-invert { filter: invert(1); }
.footer-social-wrap { margin: 1rem 0; }
.footer-social-label { display: block; font-family: var(--font-heading); font-size: 0.8rem; color: rgba(255,255,255,0.6); letter-spacing: 0.1em; margin-bottom: 0.5rem; }
.footer-social { display: flex; gap: 1rem; }
.footer-social a { color: rgba(255,255,255,0.85); padding: 0.25rem; transition: var(--transition); }
.footer-social a:hover { color: var(--color-primary); }
.footer-social svg { display: block; }
.footer-tagline { font-family: var(--font-heading); font-size: 1.1rem; color: var(--color-primary); margin: 0.5rem 0 1rem; letter-spacing: 0.02em; }
.copyright { font-size: 0.85rem; color: rgba(255,255,255,0.6); margin: 0; }
.footer-nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; }
.btn-prayer { color: #fff !important; border-color: rgba(255,255,255,0.6); margin-top: 1rem; padding: 0.6rem 1.25rem; font-size: 0.9rem; }
.btn-prayer:hover { background: rgba(255,255,255,0.1) !important; color: #fff !important; border-color: #fff; }
.footer-col h4 { font-family: var(--font-heading); font-size: 0.9rem; color: var(--color-primary); margin: 0 0 1rem; letter-spacing: 0.1em; }
.footer-col a { display: block; color: rgba(255,255,255,0.85); text-decoration: none; margin-bottom: 0.5rem; font-size: 0.95rem; }
.footer-col a:hover { color: var(--color-primary); }
.footer-contact-ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1rem; }
.footer-contact-ctas .btn { font-size: 0.85rem; padding: 0.6rem 1.25rem; }
.footer-contact-ctas .btn-watch {
    padding-right: 3.25rem;
    padding-left: 1.25rem;
    color: var(--color-dark) !important;
}
.footer-contact-ctas .btn-watch::after { width: 2.5rem; }
@media (max-width: 900px) {
    .bh-footer .footer-inner { grid-template-columns: 1fr; text-align: center; }
    .bh-footer .footer-nav { grid-template-columns: repeat(2, 1fr); text-align: left; }
    .bh-footer .footer-contact-ctas { justify-content: center; }
    .bh-footer .footer-brand .footer-social { justify-content: center; }
    .bh-footer .footer-brand .btn-prayer { display: inline-block; }
}
@media (max-width: 540px) {
    .bh-footer .footer-nav { grid-template-columns: 1fr; text-align: center; gap: 1.5rem; }
    .bh-footer .footer-col { text-align: center; }
    .bh-footer .footer-contact-ctas { justify-content: center; }
}

/* ── Member Registration Page ── */
.register-page { padding: 4rem 0 5rem; background: var(--color-bg-warm); }
.register-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
    max-width: 1020px;
}
.register-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 2.5rem 2.25rem;
    box-shadow: 0 12px 40px rgba(26,26,26,0.09);
    border: 1px solid rgba(255,225,0,0.15);
}
.register-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.75rem;
}
.register-logo { max-height: 48px; max-width: 140px; object-fit: contain; }
.register-logo-svg { width: 48px; height: 48px; color: var(--color-primary-on-light); }
.register-title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    margin: 0 0 0.4rem;
    letter-spacing: -0.02em;
}
.register-sub {
    color: var(--color-muted);
    font-size: 0.975rem;
    margin: 0 0 1.75rem;
    line-height: 1.55;
}
.register-alert {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1.5rem;
    font-size: 0.9rem;
    line-height: 1.5;
}
.register-alert--error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.register-alert--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.register-form-group { margin-bottom: 1.1rem; }
.register-form-group label {
    display: block;
    margin-bottom: 0.375rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--color-dark);
}
.register-required { color: var(--color-torch-red); }
.register-form-group input {
    width: 100%;
    padding: 0.65rem 0.95rem;
    border: 1.5px solid #e4e2de;
    border-radius: var(--radius-sm);
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--color-dark);
    transition: border-color 0.18s, box-shadow 0.18s;
    background: #fafafa;
}
.register-form-group input:focus {
    outline: none;
    border-color: var(--color-primary-on-light);
    box-shadow: 0 0 0 3px rgba(154,123,0,0.12);
    background: #fff;
}
.register-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.register-input-wrap { position: relative; }
.register-input-wrap input { padding-right: 2.75rem; }
.register-toggle-pw {
    position: absolute;
    right: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-muted);
    padding: 0.25rem;
    display: flex;
    align-items: center;
    width: auto;
}
.register-toggle-pw:hover { color: var(--color-dark); }
.register-strength {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    min-height: 1.25rem;
}
.register-strength-bar {
    flex: 1;
    height: 5px;
    background: #e8e5e0;
    border-radius: 100px;
    overflow: hidden;
}
.register-strength-fill {
    height: 100%;
    width: 0;
    border-radius: 100px;
    transition: width 0.3s ease, background 0.3s ease;
}
.register-strength-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-muted);
    min-width: 60px;
    text-align: right;
}
.register-submit {
    width: 100%;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.8rem 1.5rem;
    font-size: 1rem;
    font-weight: 700;
    margin-top: 0.25rem;
    display: flex;
    align-items: center;
}
.register-footer {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #f0ede8;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.register-footer p { margin: 0; font-size: 0.875rem; color: var(--color-muted); }
.register-footer a { color: var(--color-primary-on-light); font-weight: 600; text-decoration: none; }
.register-footer a:hover { text-decoration: underline; }
/* Benefits column */
.register-benefits { padding-top: 0.5rem; }
.register-benefits-title {
    font-family: var(--font-heading);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 1.75rem;
    letter-spacing: -0.01em;
}
.register-benefits-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.register-benefits-list li {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.register-benefit-icon {
    width: 2.5rem;
    height: 2.5rem;
    background: var(--color-dark);
    color: var(--color-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.register-benefits-list li > div strong {
    display: block;
    font-size: 0.975rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 0.2rem;
}
.register-benefits-list li > div p {
    margin: 0;
    font-size: 0.905rem;
    color: var(--color-muted);
    line-height: 1.55;
}
@media (max-width: 860px) {
    .register-container { grid-template-columns: 1fr; gap: 2.5rem; max-width: 560px; }
    .register-benefits { order: -1; }
}
@media (max-width: 540px) {
    .register-card { padding: 1.75rem 1.25rem; }
    .register-form-row { grid-template-columns: 1fr; }
}
