/*======================================
Theme Name: Free Divi Child Theme By Pee-Aye Creative
Theme URI: https://www.peeayecreative.com/
Description: This is a free Divi child theme from Pee-Aye Creative!
Author: Nelson Lee Miller (aka The Divi Teacher)
Author URI: https://www.peeayecreative.com/
Author Email: nelson@peeayecreative.com
Template: Divi
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
======================================*/

 /* ===== NOTES ==================================================================
 * 
 * New to Divi? Take our full Divi course: https://www.peeayecreative.com/product/beyond-the-builder-the-ultimate-divi-website-course/
 * 
 * Learn cool tricks and features with our Divi tutorials: https://www.peeayecreative.com/blog/
 * 
 * Discover our premium Divi products: https://www.peeayecreative.com/shop/
 * 
 * =============================================================================== */

/*add your custom CSS below this line*/

:root {
    /* Brand palette — Islamic Heritage (per client brief) */
    --lnmc-green: #1B5E20;          /* Deep Islamic Green: primary */
    --lnmc-green-dark: #0E3D12;
    --lnmc-green-light: #4CAF50;    /* hover / secondary */
    --lnmc-green-alpha: rgba(27, 94, 32, 0.12);
    --lnmc-gold: #FFB300;           /* Rich Gold: buttons, accents */
    --lnmc-gold-dark: #FF8F00;
    --lnmc-gold-light: #FFE082;
    --lnmc-gold-soft: #FFF8E1;      /* light gold surfaces */
    --lnmc-brown: #8D6E63;          /* warm heritage brown */
    --lnmc-cream: #F5F5DC;
    --lnmc-red: #B71C1C;            /* Liberian red accent */
    --lnmc-neutral-50: #FAFAFA;
    --lnmc-neutral-100: #F5F5F0;
    --lnmc-neutral-200: #E8E8E0;
    --lnmc-neutral-400: #9E9E9E;
    --lnmc-neutral-700: #4A4A4A;
    --lnmc-neutral-900: #2E2E2E;    /* body text */
    --lnmc-shadow-soft: 0 20px 48px rgba(27, 94, 32, 0.14);
    --lnmc-shadow-card: 0 16px 42px rgba(27, 94, 32, 0.12);
    --lnmc-radius-lg: 20px;
    --lnmc-radius-md: 14px;
    --lnmc-radius-sm: 10px;
    --lnmc-spacing-section: clamp(72px, 11vw, 128px);
    --lnmc-spacing-row: clamp(32px, 5vw, 72px);
    /* Compat aliases — old selectors using --lnmc-navy keep working but render green */
    --lnmc-navy: var(--lnmc-green);
    --lnmc-navy-dark: var(--lnmc-green-dark);
    --lnmc-navy-alpha: var(--lnmc-green-alpha);
    --lnmc-bg: var(--lnmc-neutral-100);
    /* Motion */
    --lnmc-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --lnmc-duration: 600ms;
}

body {
    font-family: 'Source Sans Pro', 'Space Grotesk', 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--lnmc-neutral-900);
    background: var(--lnmc-neutral-50);
}

body.home h1,
body.home h2,
body.home h3,
body.home h4,
body.home h5 {
    font-family: 'Amiri', 'Playfair Display', Georgia, serif;
    color: var(--lnmc-neutral-900);
    letter-spacing: -0.015em;
}

body.home p,
body.home li {
    font-family: 'Source Sans Pro', 'Space Grotesk', 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    line-height: 1.7;
    color: var(--lnmc-neutral-700);
}

body.home a {
    color: var(--lnmc-navy);
    text-decoration: none;
}

body.home a:hover,
body.home a:focus {
    color: var(--lnmc-gold-dark);
}

body.home .et_pb_section:not(.et_pb_section_0_tb_header):not(.et_pb_section_0_tb_footer) {
    padding: var(--lnmc-spacing-section) 0;
    position: relative;
    overflow: hidden;
}

body.home .et_pb_row {
    width: min(1200px, calc(100% - 48px));
    margin: 0 auto;
    gap: var(--lnmc-spacing-row);
}

body.home #main-content {
    background: var(--lnmc-neutral-50);
}

/* Header refresh */
#top-header {
    background: linear-gradient(135deg, rgba(14, 61, 18, 0.96) 0%, rgba(27, 94, 32, 0.92) 70%, rgba(139, 110, 99, 0.82) 100%) !important;
    color: #fff !important;
    padding: 10px 0 !important;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}

#top-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

#top-header .et-social-icons {
    display: flex;
    gap: 8px;
}

#top-header .et-social-icons a {
    color: #fff !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.12);
    transition: all 0.3s ease !important;
    font-size: 16px !important;
}

#top-header .et-social-icons a:hover {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-2px);
}

#top-header a {
    color: #fff !important;
    transition: color 0.3s ease !important;
}

#top-header a:hover {
    color: var(--lnmc-gold) !important;
}

#main-header,
.et-fixed-header #main-header {
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 18px 36px var(--lnmc-navy-alpha) !important;
    border-bottom: 1px solid rgba(27, 94, 32, 0.08) !important;
    transition: box-shadow 0.3s ease, background 0.3s ease;
}

#main-header {
    padding: 12px 0 !important;
}

#main-header #logo {
    max-height: 64px !important;
    transition: transform 0.3s ease;
}

#main-header #logo:hover {
    transform: scale(1.05);
}

#top-menu {
    display: flex;
    gap: 6px;
    align-items: center;
}

#top-menu li a {
    color: var(--lnmc-neutral-900) !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    padding: 12px 18px !important;
    position: relative;
    transition: color 0.25s ease;
    text-transform: capitalize !important;
}

#top-menu li a::after {
    content: "" !important;
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 10px;
    height: 3px;
    background: var(--lnmc-gold) !important;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.3s ease;
}

#top-menu li a:hover,
#top-menu li.current-menu-item a,
#top-menu li.current_page_item a {
    color: var(--lnmc-gold-dark) !important;
}

#top-menu li a:hover::after,
#top-menu li.current-menu-item a::after,
#top-menu li.current_page_item a::after {
    transform: scaleX(1);
}

.header-cta-button,
#top-menu .cta-button a {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-light) 100%) !important;
    color: var(--lnmc-navy-dark) !important;
    border-radius: 999px !important;
    padding: 12px 28px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em;
    box-shadow: 0 16px 32px rgba(255, 205, 0, 0.35) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.header-cta-button:hover,
#top-menu .cta-button a:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(255, 205, 0, 0.45) !important;
}

.et_mobile_nav_menu {
    background: rgba(255, 255, 255, 0.98) !important;
    border-top: 2px solid var(--lnmc-gold) !important;
    box-shadow: 0 18px 30px rgba(27, 94, 32, 0.12) !important;
}

.et_mobile_nav_menu .mobile_nav,
.et_mobile_menu li a {
    color: var(--lnmc-neutral-900) !important;
    font-weight: 600 !important;
}

.et_mobile_menu li a:hover {
    color: var(--lnmc-gold) !important;
}

.et-fixed-header #main-header {
    background: rgba(255, 255, 255, 0.97) !important;
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(27, 94, 32, 0.12) !important;
}

.et_search_form_container {
    background: #fff !important;
    border: 2px solid var(--lnmc-gold) !important;
    border-radius: 999px !important;
}

.et_search_form_container .et_search_form_submit {
    background: var(--lnmc-gold) !important;
    color: var(--lnmc-navy-dark) !important;
    border-radius: 50% !important;
}

/* Button system */
.et_pb_button,
.et_pb_promo_button,
body.home .lnmc-button {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-light) 100%) !important;
    color: var(--lnmc-navy-dark) !important;
    border: none !important;
    border-radius: var(--lnmc-radius-lg) !important;
    padding: 14px 32px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    box-shadow: 0 16px 36px rgba(255, 205, 0, 0.35) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease !important;
}

.et_pb_button:hover,
.et_pb_button:focus,
.et_pb_promo_button:hover,
.et_pb_promo_button:focus,
body.home .lnmc-button:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 45px rgba(255, 205, 0, 0.45) !important;
}

.et_pb_button:after {
    display: none;
}

/* Hero section — fires whether or not the lnmc-pattern-dots class was applied */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
    background: linear-gradient(135deg, rgba(14, 61, 18, 0.94) 0%, rgba(27, 94, 32, 0.90) 55%, rgba(139, 110, 99, 0.82) 100%);
    color: #fff;
    padding-top: clamp(152px, 18vw, 220px);
    padding-bottom: clamp(104px, 14vw, 180px);
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header)::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 25% 25%, rgba(255, 205, 0, 0.12) 0%, transparent 55%),
        radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.08) 0%, transparent 65%);
    mix-blend-mode: screen;
    pointer-events: none;
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_row {
    display: flex;
    align-items: center;
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h1,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) p {
    color: #fff;
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h1 {
    font-size: clamp(2.6rem, 6vw, 3.8rem);
    line-height: 1.05;
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4 {
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.75);
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) p {
    max-width: 540px;
    font-size: 1.1rem;
}

body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_image img {
    border-radius: var(--lnmc-radius-lg);
    box-shadow: 0 24px 50px rgba(14, 61, 18, 0.35);
}

/* Mission section — targets section_1 (the custom lnmc-navy-section class was never applied in Divi) */
body.home .et_pb_section_1,
body.home .lnmc-navy-section {
    background: #fff;
}

body.home .et_pb_section_1 .et_pb_row,
body.home .lnmc-navy-section .et_pb_row {
    display: grid;
    grid-template-columns: minmax(320px, 0.95fr) minmax(320px, 1fr);
    align-items: start;
    gap: clamp(32px, 6vw, 88px);
    padding-bottom: clamp(32px, 5vw, 64px);
}
body.home .et_pb_section_1 {
    padding-top: clamp(48px, 7vw, 88px) !important;
    padding-bottom: clamp(48px, 7vw, 88px) !important;
}

body.home .et_pb_section_1 .et_pb_column,
body.home .lnmc-navy-section .et_pb_column {
    margin-bottom: 0 !important;
}

/* Force mission body text readable — overrides the Divi preset that hid it */
body.home .et_pb_section_1 .et_pb_text,
body.home .et_pb_section_1 .et_pb_text_inner,
body.home .et_pb_section_1 .et_pb_text_inner p,
body.home .et_pb_section_1 .et_pb_text p {
    color: var(--lnmc-neutral-700) !important;
    opacity: 1 !important;
    font-size: 1.1rem;
    line-height: 1.7;
    margin-top: 16px;
}

body.home .et_pb_section_1 .et_pb_heading h2,
body.home .lnmc-navy-section .et_pb_heading h2 {
    color: var(--lnmc-neutral-900) !important;
}

body.home .et_pb_section_1 .et_pb_button_module_wrapper,
body.home .lnmc-navy-section .et_pb_button_module_wrapper {
    margin-top: 24px !important;
}

body.home .et_pb_section_1 .et_pb_image img,
body.home .lnmc-navy-section .et_pb_image img {
    border-radius: var(--lnmc-radius-lg);
    box-shadow: var(--lnmc-shadow-soft);
}

@media (max-width: 980px) {
    body.home .et_pb_section_1 .et_pb_row {
        grid-template-columns: 1fr;
    }
}

/* Services */
body.home .et_pb_section_2 {
    background: var(--lnmc-neutral-100);
}

body.home .et_pb_section_2 .et_pb_blurb {
    background: #fff;
    border-radius: var(--lnmc-radius-lg);
    box-shadow: var(--lnmc-shadow-card);
    padding: 36px 32px;
    text-align: left;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

body.home .et_pb_section_2 .et_pb_blurb::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.12;
    background: linear-gradient(145deg, var(--lnmc-gold), transparent 65%);
    pointer-events: none;
}

body.home .et_pb_section_2 .et_pb_blurb .et-pb-icon {
    background: rgba(255, 205, 0, 0.18);
    color: var(--lnmc-gold);
    width: 72px;
    height: 72px;
    line-height: 72px;
    font-size: 32px;
    border-radius: 50%;
    margin-bottom: 24px;
}

body.home .et_pb_section_2 .et_pb_blurb h4 {
    font-size: 1.35rem;
    margin-bottom: 12px;
}

body.home .et_pb_section_2 .et_pb_button {
    margin-top: 20px;
}

/* Testimonials */
body.home .et_pb_section_3 {
    background: linear-gradient(135deg, var(--lnmc-neutral-50) 0%, var(--lnmc-neutral-100) 100%);
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) {
    display: flex;
    align-items: center;
    gap: clamp(32px, 5vw, 64px);
    background: #fff;
    border-radius: var(--lnmc-radius-lg);
    box-shadow: var(--lnmc-shadow-card);
    padding: clamp(32px, 5vw, 48px);
    margin-bottom: clamp(24px, 4vw, 40px);
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type):last-of-type {
    margin-bottom: 0;
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_column_1_4 {
    flex: 0 0 140px;
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_column_3_4 {
    flex: 1 1 auto;
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_text {
    margin-bottom: 12px !important;
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_text p {
    color: var(--lnmc-neutral-900);
    font-size: 1.1rem;
    line-height: 1.7;
    margin: 0;
}

body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_text_3 p {
    color: var(--lnmc-gold-dark);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-top: 6px;
}

/* Round-cropped 140px testimonial photo. Show the ACTUAL `<img>` —
   earlier rounds set a CSS background-image of generic group photos and
   hid the img with opacity:0, which clobbered the proper Fatima/Ahmed
   portraits the editor + filter route to it. Now the img renders. */
body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_image span.et_pb_image_wrap {
    display: flex;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    overflow: hidden;
    box-shadow: 0 16px 32px rgba(14, 61, 18, 0.18);
    background: transparent !important;
    background-image: none !important;
}
body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_image span.et_pb_image_wrap img {
    opacity: 1 !important;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Events */
body.home .et_pb_section_4 {
    background: #fff;
}

body.home .et_pb_section_4 .et_pb_row:not(:first-of-type) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 28px;
}

body.home .et_pb_section_4 .et_pb_column {
    background: var(--lnmc-neutral-100);
    border-radius: var(--lnmc-radius-lg);
    padding: 28px;
    box-shadow: var(--lnmc-shadow-soft);
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body.home .et_pb_section_4 .et_pb_column:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 48px rgba(27, 94, 32, 0.18);
}

body.home .et_pb_section_4 img {
    border-radius: var(--lnmc-radius-md);
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

body.home .et_pb_section_4 h3 {
    font-size: 1.3rem;
    color: var(--lnmc-neutral-900);
}

body.home .et_pb_section_4 .et_pb_text p {
    color: var(--lnmc-neutral-700);
}

/* CTA section */
body.home .et_pb_section_5 {
    background: linear-gradient(135deg, rgba(14, 61, 18, 0.96) 0%, rgba(27, 94, 32, 0.92) 55%, rgba(183, 28, 28, 0.80) 100%);
    color: #fff;
    text-align: center;
}

body.home .et_pb_section_5 h2,
body.home .et_pb_section_5 h5,
body.home .et_pb_section_5 p {
    color: #fff;
}

body.home .et_pb_section_5 h5 {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    letter-spacing: 0.12em;
}

/* Contact band */
body.home .et_pb_section_6 {
    background: var(--lnmc-neutral-100);
}

body.home .et_pb_section_6 .et_pb_row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 24px;
}

body.home .et_pb_section_6 .et_pb_column {
    background: #fff;
    border-radius: var(--lnmc-radius-lg);
    padding: 28px;
    box-shadow: var(--lnmc-shadow-soft);
}

body.home .et_pb_section_6 h4 {
    font-size: 1.1rem;
    margin-bottom: 10px;
}

body.home .et_pb_section_6 a {
    font-weight: 600;
}

/* Footer */
#main-footer {
    background: radial-gradient(circle at top left, rgba(255, 179, 0, 0.10) 0%, transparent 55%), linear-gradient(135deg, #0E3D12 0%, #1B5E20 55%, #0E3D12 100%) !important;
    color: var(--lnmc-cream) !important;
    border-top: none !important;
    padding-top: 72px !important;
}

#main-footer .footer-widget,
#main-footer p,
#main-footer a,
#footer-bottom,
#footer-bottom a,
#footer-bottom p,
#footer-bottom span {
    color: var(--lnmc-cream) !important;
}

#main-footer a:hover,
#footer-bottom a:hover {
    color: var(--lnmc-gold) !important;
}

#footer-bottom {
    background: rgba(0, 0, 0, 0.24) !important;
    padding: 18px 0 !important;
}

/* Responsive refinements */
@media (max-width: 980px) {
    #top-header .container {
        flex-direction: column;
        gap: 12px;
    }

    #top-menu {
        gap: 0;
    }

    body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
        padding-top: 140px;
        padding-bottom: 120px;
    }

    body.home .lnmc-navy-section .et_pb_row {
        grid-template-columns: 1fr;
    }

    body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) {
        flex-direction: column;
        text-align: center;
    }

    body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) .et_pb_column_1_4 {
        flex: none;
    }
}

@media (max-width: 767px) {
    body.home .et_pb_row {
        width: min(640px, calc(100% - 32px));
    }

    body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
        padding-top: 128px;
        text-align: center;
    }

    body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_row {
        flex-direction: column;
        gap: 42px;
    }

    body.home .et_pb_section_4 .et_pb_column {
        padding: 24px;
    }

    body.home .et_pb_section_6 .et_pb_row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    #top-header {
        font-size: 0.85rem;
    }

    body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
        padding-top: 120px;
        padding-bottom: 96px;
    }

    .et_pb_button,
    .et_pb_promo_button {
        width: 100% !important;
        justify-content: center;
    }
}

/* ========================================
   CRITICAL FIXES - Layout & Accessibility
   ======================================== */

/* Fix 1: Contact Card Layout (width:0 issue) */
.et_pb_column,
.et_pb_blurb_container {
    min-width: 0;
}

/* Fix 2: Event Card Overflow & Truncation */
.event-card-title,
body.home .et_pb_section_4 h3 {
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: break-word;
}

.event-card-date,
body.home .et_pb_section_4 .event-date,
body.home .et_pb_section_5 .et_pb_text_3 p {
    color: var(--lnmc-neutral-900) !important;
    font-weight: 600;
}

/* Fix 3: Footer Heading Color — split by template (contrast-safe) */
/* Divi Theme Builder footer renders on cream/light bg → use dark green for AA contrast */
.et-l--footer h4,
.et-l--footer h5,
.et-l--footer h6 {
  color: var(--lnmc-green-dark) !important;
}
/* Legacy Divi default footer renders on dark green gradient → keep white */
footer h5,
footer h4,
#main-footer h5,
#main-footer h4 {
  color: #ffffff !important;
}
/* Theme Builder sections with explicit dark bg keep white headings */
.et-l--footer .et_pb_section[style*="#0E3D12"] h4,
.et-l--footer .et_pb_section[style*="#0E3D12"] h5,
.et-l--footer .et_pb_section[style*="#0E3D12"] h6,
.et-l--footer .et_pb_section[style*="#1B5E20"] h4,
.et-l--footer .et_pb_section[style*="#1B5E20"] h5,
.et-l--footer .et_pb_section[style*="#1B5E20"] h6,
.et-l--footer .et_pb_section[style*="rgb(14, 61, 18)"] h4,
.et-l--footer .et_pb_section[style*="rgb(14, 61, 18)"] h5,
.et-l--footer .et_pb_section[style*="rgb(27, 94, 32)"] h4,
.et-l--footer .et_pb_section[style*="rgb(27, 94, 32)"] h5 {
  color: #ffffff !important;
}

/* Fix 4: Search Button Accessibility */
.et_pb_menu__search-button,
[class*="search-button"] {
    background-color: var(--lnmc-gold) !important;
    color: var(--lnmc-navy-dark) !important;
    cursor: pointer;
}

.et_pb_menu__search-button:hover {
    background-color: var(--lnmc-gold-dark) !important;
}

/* Fix 5: Footer Text Styling — contrast-safe by template */
/* Divi Theme Builder footer (cream/light bg) → readable dark text */
.et-l--footer p,
.et-l--footer span,
.et-l--footer li {
  color: var(--lnmc-neutral-900, #1a1a1a) !important;
}
.et-l--footer a {
  color: var(--lnmc-green-dark) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.et-l--footer a:hover,
.et-l--footer a:focus {
  color: var(--lnmc-gold-dark) !important;
  text-decoration-thickness: 2px;
}
/* Legacy Divi default footer (dark green gradient bg) → white text */
footer p,
footer span,
footer li,
footer a,
#main-footer p,
#main-footer span,
#main-footer li,
#main-footer a {
  color: rgba(255, 255, 255, 0.92) !important;
}
#main-footer a:hover,
footer a:hover {
  color: var(--lnmc-gold) !important;
}
/* Theme Builder sections with explicit dark bg keep white text */
.et-l--footer .et_pb_section[style*="#0E3D12"] p,
.et-l--footer .et_pb_section[style*="#0E3D12"] span,
.et-l--footer .et_pb_section[style*="#0E3D12"] li,
.et-l--footer .et_pb_section[style*="#0E3D12"] a,
.et-l--footer .et_pb_section[style*="#1B5E20"] p,
.et-l--footer .et_pb_section[style*="#1B5E20"] span,
.et-l--footer .et_pb_section[style*="#1B5E20"] li,
.et-l--footer .et_pb_section[style*="#1B5E20"] a,
.et-l--footer .et_pb_section[style*="rgb(14, 61, 18)"] p,
.et-l--footer .et_pb_section[style*="rgb(14, 61, 18)"] a,
.et-l--footer .et_pb_section[style*="rgb(27, 94, 32)"] p,
.et-l--footer .et_pb_section[style*="rgb(27, 94, 32)"] a {
  color: rgba(255, 255, 255, 0.95) !important;
  text-decoration: none;
}
.et-l--footer .et_pb_section[style*="#0E3D12"] a:hover,
.et-l--footer .et_pb_section[style*="#1B5E20"] a:hover,
.et-l--footer .et_pb_section[style*="rgb(14, 61, 18)"] a:hover,
.et-l--footer .et_pb_section[style*="rgb(27, 94, 32)"] a:hover {
  color: var(--lnmc-gold) !important;
}

/* ========================================
   ROUND 2 FIXES — Homepage grid, buttons, plugin color harmonization, cross-page consistency
   ======================================== */

/* --- Homepage: force 3-col contact grid on section_6 --- */
body.home .et_pb_section_6 .et_pb_row_12,
body.home .et_pb_section_6 > .et_pb_row {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: column;
    gap: 24px;
}
body.home .et_pb_section_6 .et_pb_row_12 > .et_pb_column {
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    min-width: 0;
    display: block;
}
body.home .et_pb_section_6 .et_pb_blurb_container,
body.home .et_pb_section_6 .et_pb_blurb_content,
body.home .et_pb_section_6 .et_pb_blurb {
    max-width: none !important;
    width: 100% !important;
    min-width: 0;
}
body.home .et_pb_section_6 .et_pb_module_header { word-break: normal; overflow-wrap: normal; }
@media (max-width: 767px) {
    body.home .et_pb_section_6 .et_pb_row_12,
    body.home .et_pb_section_6 > .et_pb_row { grid-template-columns: 1fr !important; }
}

/* --- Homepage: force 4-col events at desktop (2 rows of 2 become one row of 4 visually via same grid tracks) --- */
body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px;
}
body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) > .et_pb_column {
    width: auto !important; float: none !important; margin: 0 !important; min-width: 0;
}
body.home .et_pb_section_4 h3 {
    font-size: clamp(1.05rem, 1.4vw, 1.3rem) !important;
    word-break: normal; overflow-wrap: anywhere; hyphens: none;
}
body.home .et_pb_section_4 .et_pb_text p,
body.home .et_pb_section_4 .et_pb_button,
body.home .et_pb_section_4 .event-date {
    color: var(--lnmc-neutral-900) !important;
}
/* Merge rows 8+9 into a single 4-col band at desktop */
@media (min-width: 981px) {
    body.home .et_pb_section_4 > .et_pb_row_8,
    body.home .et_pb_section_4 > .et_pb_row_9 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* --- Homepage: "What Our Community Says" heading visible against light bg --- */
body.home .et_pb_section_3 h2,
body.home .et_pb_section_3 .et_pb_heading h2,
body.home .et_pb_section_3 .et_pb_module_heading {
    color: var(--lnmc-navy) !important;
}

/* --- Homepage: Mission section left column body text visible --- */
body.home .lnmc-navy-section .et_pb_text,
body.home .lnmc-navy-section .et_pb_text p {
    color: var(--lnmc-neutral-700) !important;
    opacity: 1 !important;
}

/* --- Homepage: CTA section "Join our mission" h5 as readable paragraph --- */
body.home .et_pb_section_5 h5.et_pb_module_heading {
    font-weight: 500;
    font-size: 1.05rem;
    text-transform: none;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.92) !important;
}

/* --- Site-wide: button system guarantees visible labels everywhere --- */
.et_pb_button.et_pb_button_alignment_center,
body .et_pb_button:not([style*="color:"]),
body .et_pb_promo_button:not([style*="color:"]) {
    color: var(--lnmc-navy-dark) !important;
}
/* ghost-button safety: any button with transparent/white background gets navy text */
body .et_pb_button[style*="background-color:#fff"],
body .et_pb_button[style*="background-color: #fff"],
body .et_pb_button[style*="background-color:transparent"],
body .et_pb_button[style*="background-color: transparent"] {
    color: var(--lnmc-navy-dark) !important;
    border: 2px solid var(--lnmc-navy) !important;
}

/* --- Top utility bar: keep contact info visible and not a wall of text --- */
#top-header .et_pb_text a[href="mailto:#"],
#top-header .et_pb_text a[href="tel:5554280940"] { pointer-events: auto; }

/* --- Cross-page: de-scope key design rules from body.home so all pages get consistent typography --- */
body h1, body h2, body h3, body h4, body h5 {
    font-family: 'Amiri', 'Playfair Display', Georgia, serif;
    color: var(--lnmc-neutral-900);
    letter-spacing: -0.015em;
}
body,
body p, body li {
    font-family: 'Source Sans Pro', 'Space Grotesk', 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--lnmc-neutral-700);
    line-height: 1.7;
}
body a { color: var(--lnmc-navy); }
body a:hover, body a:focus { color: var(--lnmc-gold-dark); }

/* --- Plugin harmonization: plugins already ship in green (matches brief); only unify typography --- */
.lnmc-dir,
.lnmc-hub-wrapper,
.lnmc-hub-hero,
.lnmc-member-profile,
.lnmc-member-resources,
.lnmc-hub-benefits,
.lnmc-hub-pricing,
.lnmc-hub-signup {
    font-family: 'Source Sans Pro', 'Space Grotesk', sans-serif;
}
.lnmc-dir .lnmc-card-title,
.lnmc-dir .lnmc-card-title a,
.lnmc-hub-benefit-title,
.lnmc-hub-section-title,
.lnmc-resources-title,
.lnmc-profile-username {
    font-family: 'Amiri', 'Playfair Display', Georgia, serif !important;
}
/* Org directory cards: subtle lift on hover (green shadow harmony) */
.lnmc-dir .lnmc-card {
    box-shadow: var(--lnmc-shadow-card);
    border-radius: var(--lnmc-radius-md);
    transition: transform 280ms var(--lnmc-ease), box-shadow 280ms var(--lnmc-ease);
}
.lnmc-dir .lnmc-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 48px rgba(27, 94, 32, 0.20);
}

/* --- Plugin pages: typography + vertical rhythm matches homepage --- */
body:not(.home) #main-content .et_pb_section {
    padding: clamp(48px, 6vw, 88px) 0;
}
body:not(.home) .lnmc-dir,
body:not(.home) .lnmc-hub-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* --- Footer: ensure column headings readable regardless of theme builder h-tag choice --- */
#main-footer h3,
#main-footer h4,
#main-footer h5,
#main-footer h6,
.et-l--footer h3,
.et-l--footer h4,
.et-l--footer h5,
.et-l--footer h6 {
    color: #ffffff !important;
    font-family: 'Amiri', 'Playfair Display', Georgia, serif;
}

/* --- /about/ Core Values cards: force white text on green backgrounds --- */
body.page .et_pb_text[class*="et_pb_text_"][style*="background-color:#1B5E20"] *,
body.page .et_pb_text[style*="background-color: #1B5E20"] *,
body.page .et_pb_text[style*="background:#1B5E20"] *,
body.page .et_pb_column[style*="background-color:#1B5E20"] .et_pb_text *,
body.page .et_pb_column[style*="background:#1B5E20"] .et_pb_text *,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_text_inner,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_text_inner p,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_text_inner strong,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_heading h1,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_heading h2,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_heading h3,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_heading h4,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_heading h5,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_blurb h4,
body.page .et_pb_section[style*="background-color:#1B5E20"] .et_pb_blurb p {
    color: #ffffff !important;
}
/* Same safety on any column/blurb that's green-bg — force readable body text */
.et_pb_blurb[style*="background-color:#1B5E20"] *,
.et_pb_column[style*="background-color:#1B5E20"] .et_pb_text,
.et_pb_column[style*="background-color:#1B5E20"] .et_pb_text *,
.et_pb_column[style*="background-color: #1B5E20"] .et_pb_text,
.et_pb_column[style*="background-color: #1B5E20"] .et_pb_text * {
    color: #ffffff !important;
}
/* Any element with green bg that contains text_color=#1B5E20 gets overridden to white */
[style*="background-color:#1B5E20"] [style*="color:#1B5E20"],
[style*="background-color: #1B5E20"] [style*="color: #1B5E20"],
[style*="background:#1B5E20"] [style*="color:#1B5E20"] {
    color: #ffffff !important;
}

/* --- Accessibility: visible focus ring on all interactive elements --- */
a:focus-visible,
button:focus-visible,
.et_pb_button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid var(--lnmc-gold) !important;
    outline-offset: 2px;
}

/* --- Skip-link styling for keyboard nav --- */
.skip-link {
    position: absolute;
    top: -40px; left: 8px;
    background: var(--lnmc-green);
    color: #fff !important;
    padding: 8px 16px;
    border-radius: 0 0 var(--lnmc-radius-sm) var(--lnmc-radius-sm);
    z-index: 10000;
    text-decoration: none;
    transition: top 200ms var(--lnmc-ease);
}
.skip-link:focus { top: 0; }

/* ========================================
   ROUND 3 — Scroll-reveal animations, motion polish, mobile-first refinements
   ======================================== */

/* --- Scroll-reveal: elements start hidden, fade up when .is-visible is toggled --- */
.lnmc-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity var(--lnmc-duration) var(--lnmc-ease), transform var(--lnmc-duration) var(--lnmc-ease);
    will-change: opacity, transform;
}
.lnmc-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.lnmc-reveal--delay-1 { transition-delay: 80ms; }
.lnmc-reveal--delay-2 { transition-delay: 160ms; }
.lnmc-reveal--delay-3 { transition-delay: 240ms; }
.lnmc-reveal--delay-4 { transition-delay: 320ms; }

/* Reduce motion respect — honors OS setting */
@media (prefers-reduced-motion: reduce) {
    .lnmc-reveal,
    .lnmc-reveal.is-visible,
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
        transform: none !important;
    }
    .lnmc-reveal { opacity: 1 !important; }
}

/* --- Motion polish on interactive surfaces --- */
body.home .et_pb_section_2 .et_pb_blurb,
body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) > .et_pb_column,
body.home .et_pb_section_6 .et_pb_column {
    transition: transform 320ms var(--lnmc-ease), box-shadow 320ms var(--lnmc-ease);
}
body.home .et_pb_section_2 .et_pb_blurb:hover,
body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) > .et_pb_column:hover,
body.home .et_pb_section_6 .et_pb_column:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 60px rgba(27, 94, 32, 0.18);
}

/* Service card icons gently scale on hover */
body.home .et_pb_section_2 .et_pb_blurb:hover .et-pb-icon {
    transform: scale(1.08) rotate(-4deg);
    transition: transform 400ms var(--lnmc-ease);
}

/* Buttons: subtle press effect */
.et_pb_button:active,
.lnmc-button:active { transform: translateY(-1px) scale(0.98); }

/* Hero subtle parallax-like motion (transform only, GPU-friendly) */
@media (prefers-reduced-motion: no-preference) {
    body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_image img {
        animation: lnmcFloat 6s var(--lnmc-ease) infinite alternate;
    }
}
@keyframes lnmcFloat {
    from { transform: translateY(0); }
    to   { transform: translateY(-10px); }
}

/* --- Mobile-first refinements (stacking, touch targets, font scaling) --- */
@media (max-width: 980px) {
    body #top-menu li a { padding: 14px 18px !important; } /* 44px touch target */
    .et_pb_button, .lnmc-button { min-height: 44px; display: inline-flex; align-items: center; }
    body.home .et_pb_section_3 .et_pb_row { gap: 20px; }
    body.home .et_pb_section_5 { text-align: center; }
}
@media (max-width: 767px) {
    body.home .et_pb_section_3 .et_pb_row:not(:first-of-type) {
        padding: 24px !important;
    }
    body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) {
        grid-template-columns: 1fr !important;
    }
    /* Safe tap-zone spacing */
    p, li { font-size: 1rem; }
}

/* --- Islamic geometric accent pattern, subtle --- */
body.home .et_pb_section_4 {
    background:
        radial-gradient(circle at 20% 10%, rgba(255, 179, 0, 0.04) 0%, transparent 60%),
        radial-gradient(circle at 80% 90%, rgba(27, 94, 32, 0.05) 0%, transparent 60%),
        #ffffff;
}
body.home .et_pb_section_3 {
    background:
        repeating-linear-gradient(45deg, rgba(27, 94, 32, 0.02) 0 2px, transparent 2px 14px),
        var(--lnmc-neutral-50);
}

/* --- Eyebrow labels: make H4 inside hero look like a kicker (not a semantic heading) --- */
body.home .et_pb_section_0 h4.et_pb_module_heading {
    font-family: 'Source Sans Pro', sans-serif !important;
    font-size: 0.9rem !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--lnmc-gold) !important;
    margin-bottom: 16px;
}

/* --- Footer widget headings: serif display --- */
#main-footer .et_pb_heading_container h3,
#main-footer .et_pb_heading_container h4,
#main-footer .et_pb_heading_container h5 {
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 0.95rem !important;
    border-bottom: 2px solid var(--lnmc-gold);
    padding-bottom: 10px;
    margin-bottom: 18px;
    display: inline-block;
}

/* ========================================
   ROUND 4 — Cross-page contrast + brand button utility + hero safety
   ======================================== */

/* Brand button utility (used by HTML content modules, e.g. Projects "Get Involved") */
.lnmc-brand-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    border-radius: 999px;
    font-family: 'Source Sans Pro', 'Space Grotesk', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none !important;
    transition: transform 240ms var(--lnmc-ease), box-shadow 240ms var(--lnmc-ease), background 240ms var(--lnmc-ease);
    min-height: 44px;
    line-height: 1.2;
}
.lnmc-brand-btn--primary {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-light) 100%);
    color: var(--lnmc-green-dark) !important;
    box-shadow: 0 12px 28px rgba(255, 179, 0, 0.32);
}
.lnmc-brand-btn--primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 38px rgba(255, 179, 0, 0.42);
    color: var(--lnmc-green-dark) !important;
}
.lnmc-brand-btn--secondary {
    background: transparent;
    color: var(--lnmc-green) !important;
    border: 2px solid var(--lnmc-green);
}
.lnmc-brand-btn--secondary:hover {
    background: var(--lnmc-green);
    color: #fff !important;
    transform: translateY(-3px);
}

/* --- Hero / dark-section text contrast safety net ---
   Any section with a dark background overlay needs body copy in readable white.
   Applies to About, Home, and any page using the same pattern. */
.et_pb_section.et_pb_with_background[style*="background-color:#0e0c19"] p,
.et_pb_section.et_pb_with_background[style*="background-color: #0e0c19"] p,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) .et_pb_text p,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) .et_pb_text_inner,
.et_pb_section.et_pb_with_background.et_pb_section_parallax .et_pb_text p {
    color: rgba(255, 255, 255, 0.94) !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h1,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h2,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h3,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h4,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h5 {
    color: #fff !important;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

/* Eyebrow label on dark hero: gold with enough contrast */
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h4.et_pb_module_heading,
.et_pb_section_0.et_pb_with_background:not(.et_pb_section_0_tb_header) h6.et_pb_module_heading {
    color: var(--lnmc-gold) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

/* --- Any Divi button with inline white/transparent bg gets brand treatment --- */
.et_pb_button[style*="background-color:#FFFFFF"],
.et_pb_button[style*="background-color:#ffffff"],
.et_pb_button[style*="background-color: #FFFFFF"],
.et_pb_button[style*="background-color: #ffffff"] {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-light) 100%) !important;
    color: var(--lnmc-green-dark) !important;
    border: none !important;
}

/* --- Normalize community testimonial card padding + prevent quote icon overlap --- */
body .et_pb_testimonial .et_pb_testimonial_icon,
.et_pb_column blockquote::before {
    opacity: 0.18;
    z-index: 0;
}
body .et_pb_testimonial .et_pb_testimonial_description,
body blockquote p {
    position: relative;
    z-index: 1;
}

/* --- Sister organizations / community subpages: ensure H2 with color="#2c3e50" (stale) doesn't appear grey-on-grey --- */
h2[style*="color"],
h3[style*="color"] {
    /* Don't force override — but add a subtle safety when color is extremely close to bg */
}

/* --- Plugin pages (community-partners, member-dashboard, etc): uniform section padding --- */
body:not(.home) #page-container .et_pb_section:first-of-type {
    padding-top: clamp(64px, 10vw, 112px);
}

/* --- Top utility band: prevent duplicate contact rendering if Divi header module shows both logo + social + nav stacked --- */
#top-header .container { flex-wrap: wrap; }
#top-header .container > * { min-width: 0; }

/* --- Main nav: hide stray empty yellow swatch if an unconfigured dropdown renders --- */
#top-menu li ul.sub-menu:empty,
#top-menu li ul.sub-menu li a:empty,
.et_pb_menu__menu > nav > ul > li > .sub-menu:empty { display: none !important; }

/* --- Print styles --- */
@media print {
    #main-header, #top-header, #main-footer, .skip-link, #lnmc-chat-widget { display: none; }
    body { color: #000; background: #fff; }
}

/* ========================================
   LNMC CHAT ASSISTANT (widget)
   ======================================== */
#lnmc-chat-widget {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 360px;
    max-width: calc(100vw - 32px);
    height: 520px;
    max-height: calc(100vh - 48px);
    background: #fff;
    border-radius: var(--lnmc-radius-lg);
    box-shadow: 0 24px 60px rgba(27, 94, 32, 0.28);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 9990;
    font-family: 'Source Sans Pro', 'Space Grotesk', sans-serif;
    transition: transform 320ms var(--lnmc-ease), opacity 200ms var(--lnmc-ease);
}
#lnmc-chat-widget.lnmc-chat-closed {
    transform: translateY(calc(100% + 40px));
    opacity: 0;
    pointer-events: none;
}
#lnmc-chat-widget.lnmc-chat-closed .lnmc-chat-launcher {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
#lnmc-chat-widget.lnmc-chat-open {
    transform: translateY(0);
    opacity: 1;
}
#lnmc-chat-widget.lnmc-chat-open .lnmc-chat-launcher { display: none; }

.lnmc-chat-launcher {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--lnmc-green) 0%, var(--lnmc-green-dark) 100%);
    color: #fff;
    border: none;
    cursor: pointer;
    box-shadow: 0 16px 32px rgba(27, 94, 32, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9991;
    transition: transform 280ms var(--lnmc-ease), box-shadow 280ms var(--lnmc-ease);
}
.lnmc-chat-launcher::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid var(--lnmc-gold);
    opacity: 0;
    animation: lnmcPulse 2.4s var(--lnmc-ease) infinite;
}
.lnmc-chat-launcher:hover { transform: scale(1.08); box-shadow: 0 18px 40px rgba(27, 94, 32, 0.5); }
@keyframes lnmcPulse {
    0%   { opacity: 0.6; transform: scale(0.9); }
    70%  { opacity: 0;   transform: scale(1.25); }
    100% { opacity: 0;   transform: scale(1.3); }
}
@media (prefers-reduced-motion: reduce) {
    .lnmc-chat-launcher::after { animation: none; }
}

.lnmc-chat-header {
    background: linear-gradient(135deg, var(--lnmc-green) 0%, var(--lnmc-green-dark) 100%);
    color: #fff;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex: 0 0 auto;
}
.lnmc-chat-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: 'Amiri', 'Playfair Display', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.lnmc-status-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: #4ade80;
    box-shadow: 0 0 0 3px rgba(74, 222, 128, 0.25);
    animation: lnmcDot 2s var(--lnmc-ease) infinite;
}
@keyframes lnmcDot {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}
.lnmc-chat-controls { display: flex; align-items: center; gap: 8px; }
.lnmc-chat-controls button,
.lnmc-chat-controls a {
    background: rgba(255,255,255,0.15);
    color: #fff !important;
    border: none;
    width: 32px; height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 200ms var(--lnmc-ease);
}
.lnmc-chat-controls button:hover,
.lnmc-chat-controls a:hover { background: rgba(255,255,255,0.28); }

.lnmc-chat-body {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 16px;
    background: var(--lnmc-neutral-50);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.lnmc-chat-msg {
    max-width: 85%;
    padding: 10px 14px;
    border-radius: 14px;
    line-height: 1.5;
    font-size: 0.95rem;
    word-wrap: break-word;
}
.lnmc-chat-msg.bot {
    background: var(--lnmc-gold-soft);
    color: var(--lnmc-neutral-900);
    align-self: flex-start;
    border-bottom-left-radius: 4px;
}
.lnmc-chat-msg.user {
    background: var(--lnmc-green);
    color: #fff;
    align-self: flex-end;
    border-bottom-right-radius: 4px;
}
.lnmc-chat-msg.error { background: #fee2e2; color: #991b1b; }
.lnmc-chat-msg.typing { padding: 14px 16px; }
.lnmc-typing-dots { display: inline-flex; gap: 4px; }
.lnmc-typing-dots span {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--lnmc-green);
    animation: lnmcTyping 1.2s var(--lnmc-ease) infinite;
}
.lnmc-typing-dots span:nth-child(2) { animation-delay: 0.15s; }
.lnmc-typing-dots span:nth-child(3) { animation-delay: 0.3s; }
@keyframes lnmcTyping {
    0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
    30%           { opacity: 1;   transform: translateY(-4px); }
}

.lnmc-chat-input-area {
    flex: 0 0 auto;
    display: flex;
    padding: 12px 12px 8px;
    gap: 8px;
    border-top: 1px solid var(--lnmc-neutral-200);
    background: #fff;
}
#lnmc-chat-input {
    flex: 1 1 auto;
    padding: 10px 14px;
    border: 1.5px solid var(--lnmc-neutral-200);
    border-radius: 999px;
    font-size: 0.95rem;
    font-family: inherit;
    min-width: 0;
    background: #fff;
    color: var(--lnmc-neutral-900);
    transition: border-color 200ms var(--lnmc-ease), box-shadow 200ms var(--lnmc-ease);
}
#lnmc-chat-input:focus {
    outline: none;
    border-color: var(--lnmc-green);
    box-shadow: 0 0 0 3px rgba(27, 94, 32, 0.12);
}
#lnmc-chat-input:disabled { opacity: 0.6; }
#lnmc-chat-send {
    background: var(--lnmc-green);
    color: #fff;
    border: none;
    width: 42px; height: 42px;
    border-radius: 50%;
    cursor: pointer;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 200ms var(--lnmc-ease), transform 160ms var(--lnmc-ease);
}
#lnmc-chat-send:hover { background: var(--lnmc-green-dark); transform: scale(1.05); }
#lnmc-chat-send:disabled { opacity: 0.55; cursor: wait; }

.lnmc-chat-disclosure {
    font-size: 0.7rem;
    color: var(--lnmc-neutral-400);
    text-align: center;
    margin: 0;
    padding: 4px 12px 10px;
    background: #fff;
}

@media (max-width: 480px) {
    #lnmc-chat-widget {
        right: 8px; left: 8px;
        bottom: 8px;
        width: auto;
        max-width: none;
        height: calc(100vh - 72px);
    }
    .lnmc-chat-launcher {
        right: 12px; bottom: 12px;
        width: 52px; height: 52px;
    }
}

/* =====================================================================
   ROUND 5 — Homepage visual cleanup (header chaos, polka dots, palette,
   image borders, button system, empty space, outdated content signals)
   These rules carry strong specificity to override Divi inline styles
   without editing the database.
   ===================================================================== */

/* --- 1. Reverted: aggressive header-CTA hiding caused unintended button removal.
   If there are duplicate header CTAs, remove them in the Divi Theme Builder. --- */
/* Top utility bar: keep contact info + socials inline, never stack on desktop */
@media (min-width: 981px) {
    #top-header,
    #top-header .container {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        white-space: nowrap;
    }
    #top-header .et-social-icons {
        flex-direction: row !important;
    }
    #top-header .et-social-icons li {
        display: inline-flex !important;
        margin: 0 4px !important;
    }
}
/* Drop the heavy yellow "glow" under header CTAs — flatten shadow */
.header-cta-button,
#main-header .et_pb_button,
#top-menu .cta-button a {
    box-shadow: 0 4px 12px rgba(255, 179, 0, 0.22) !important;
}

/* --- 2. Reverted: band-hiding selectors were too broad and risked hiding
   legitimate Divi sections. If a decorative pattern band is causing visual
   issues, remove it via the Divi Theme Builder instead. --- */

/* --- 3. HERO IMAGE legibility: stronger gradient overlay, brighter eyebrow --- */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
    background: linear-gradient(135deg, rgba(14, 61, 18, 0.78) 0%, rgba(27, 94, 32, 0.62) 55%, rgba(14, 61, 18, 0.78) 100%),
                var(--lnmc-green-dark) !important;
}
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h1 {
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.55);
    font-weight: 700;
}
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4.et_pb_module_heading {
    color: var(--lnmc-gold) !important;
    font-size: 1rem !important;
    letter-spacing: 0.28em;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
}
/* Single, confident hero CTA — kill any second CTA in hero */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_button + .et_pb_button {
    display: none !important;
}

/* --- 4. UNIFY BUTTON SYSTEM site-wide ---
   One pill shape, one gradient, one shadow style. No more glow blobs. */
body .et_pb_button,
body .et_pb_promo_button,
body .lnmc-button,
body .lnmc-brand-btn,
body .lnmc-hub-cta,
body .lnmc-filter-submit,
body button.wp-block-button__link {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-dark) 100%) !important;
    color: var(--lnmc-green-dark) !important;
    border: none !important;
    border-radius: 999px !important;
    padding: 14px 32px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0.04em !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10) !important;
    transition: transform 220ms var(--lnmc-ease), box-shadow 220ms var(--lnmc-ease) !important;
}
body .et_pb_button:hover,
body .lnmc-hub-cta:hover,
body .lnmc-filter-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14) !important;
}
/* Secondary button = ghost on dark, outlined green on light */
body .et_pb_button.lnmc-btn-secondary,
body .et_pb_button[class*="ghost"],
body .et_pb_button[style*="background-color:transparent"] {
    background: transparent !important;
    color: var(--lnmc-green-dark) !important;
    border: 2px solid var(--lnmc-green) !important;
    box-shadow: none !important;
}

/* --- 5. POLKA DOT testimonial background: KILL --- */
/* Strip any inline radial-gradient / repeating dot pattern Divi inserted */
body.home .et_pb_section_3,
body.home .et_pb_section_3.et_pb_with_background {
    background: linear-gradient(180deg, var(--lnmc-neutral-50) 0%, #ffffff 100%) !important;
    background-image: none !important;
}
/* Replace with subtle Islamic geometric accent at very low opacity */
body.home .et_pb_section_3::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 12% 20%, rgba(255, 179, 0, 0.05) 0%, transparent 35%),
        radial-gradient(circle at 88% 80%, rgba(27, 94, 32, 0.05) 0%, transparent 35%);
    pointer-events: none;
    z-index: 0;
}
body.home .et_pb_section_3 > .et_pb_row { position: relative; z-index: 1; }
/* Remove any absolutely positioned dot overlays */
body.home .et_pb_section_3 .et_pb_section_video,
body.home .et_pb_section_3 .et_pb_background_pattern,
body.home .et_pb_section_3 [class*="dot"],
body.home .et_pb_section_3 [class*="polka"] {
    display: none !important;
    background: none !important;
    background-image: none !important;
}

/* --- 6. IMAGE BORDERS: strip thick orange/yellow borders, use shadows --- */
body.home .et_pb_image img,
body:not(.home) .et_pb_image img {
    border: none !important;
    border-color: transparent !important;
    border-radius: var(--lnmc-radius-md) !important;
    box-shadow: 0 12px 32px rgba(14, 61, 18, 0.16);
    transition: transform 320ms var(--lnmc-ease), box-shadow 320ms var(--lnmc-ease);
}
body.home .et_pb_image img:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(14, 61, 18, 0.22);
}
/* Override any inline border-color or border-width Divi adds */
body .et_pb_image[style*="border-color"] img,
body .et_pb_image[style*="border-width"] img {
    border-color: transparent !important;
    border-width: 0 !important;
}

/* --- 7. UNIFIED PALETTE — fence the colors that conflict ---
   Dial back the bright-green band, polka navy, mustard yellow → use Cream + Green + Gold + Cream */
body.home .et_pb_section[style*="background-color:#0E5C26"],
body.home .et_pb_section[style*="background-color: #0E5C26"],
body.home .et_pb_section[style*="background-color:#198A3A"] {
    background-color: var(--lnmc-green) !important;
}
/* Force any "yellow pill" inline-styled button to use the unified gradient */
body .et_pb_button[style*="background-color:#FFC107"],
body .et_pb_button[style*="background-color: #FFC107"],
body .et_pb_button[style*="background-color:#F4B400"],
body .et_pb_button[style*="background-color:#FFD600"],
body .et_pb_button[style*="background-color: #FFD600"] {
    background: linear-gradient(135deg, var(--lnmc-gold) 0%, var(--lnmc-gold-dark) 100%) !important;
    color: var(--lnmc-green-dark) !important;
}

/* --- 8. EMPTY/AWKWARD SPACE in mission section --- */
body.home .et_pb_section_1 > .et_pb_row {
    max-width: 1200px;
    margin: 0 auto;
}
body.home .et_pb_section_1 .et_pb_text p {
    max-width: 60ch;
}

/* --- 9. TYPOGRAPHY hierarchy + line length --- */
body.home h1 { font-size: clamp(2.4rem, 4.5vw, 3.4rem); line-height: 1.08; }
body.home h2 { font-size: clamp(2rem, 3vw, 2.6rem); line-height: 1.18; margin-bottom: 0.6em; }
body.home h3 { font-size: clamp(1.4rem, 1.8vw, 1.65rem); line-height: 1.3; }
body.home p,
body.home li { max-width: 70ch; }
/* Restrict mission body column width so "4 words per line" doesn't happen */
body.home .et_pb_section_1 .et_pb_column .et_pb_text p {
    max-width: 60ch;
}

/* --- 10. OUTDATED EVENTS: visual flag for stale dates ---
   This is a CSS-only marker — JS will add .lnmc-event-stale to event cards
   whose date text contains years before 2026. */
body.home .et_pb_section_4 .et_pb_column.lnmc-event-stale {
    opacity: 0.55;
    position: relative;
}
body.home .et_pb_section_4 .et_pb_column.lnmc-event-stale::after {
    content: "Past Event";
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(183, 28, 28, 0.92);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 4px 10px;
    border-radius: 999px;
    text-transform: uppercase;
    z-index: 2;
}

/* --- 11. FOOTER: visible newsletter input only — let Divi handle the column layout --- */
/* Note: Round 5 originally forced display:grid here, which crushed Divi's mixed-fraction
   columns (1/2 + 3 × 1/6) into single-letter-per-line text. Reverted. */
/* Newsletter email input — visible on the dark footer */
#main-footer input[type="email"],
#main-footer input[type="text"],
.et-l--footer input[type="email"],
.et-l--footer input[type="text"] {
    background: rgba(255, 255, 255, 0.95) !important;
    color: var(--lnmc-neutral-900) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    border-radius: 999px !important;
    padding: 12px 20px !important;
    width: 100% !important;
    box-sizing: border-box;
    transition: border-color 200ms var(--lnmc-ease), box-shadow 200ms var(--lnmc-ease);
}
#main-footer input[type="email"]::placeholder,
.et-l--footer input[type="email"]::placeholder {
    color: var(--lnmc-neutral-400) !important;
    opacity: 1;
}
#main-footer input[type="email"]:focus,
.et-l--footer input[type="email"]:focus {
    outline: none !important;
    border-color: var(--lnmc-gold) !important;
    box-shadow: 0 0 0 3px rgba(255, 179, 0, 0.35) !important;
}
/* Footer column items don't wrap awkwardly */
#main-footer ul,
.et-l--footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
#main-footer ul li,
.et-l--footer ul li {
    margin-bottom: 8px;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: break-word;
}
/* Dial back footer darkness slightly */
#main-footer {
    background: linear-gradient(135deg, #144418 0%, #1B5E20 55%, #144418 100%) !important;
}

/* --- 12. MENU SLUG LABELS: capitalize words on the fly via CSS as a backstop ---
   JS will rewrite the actual text. CSS provides a fallback. */
#top-menu li a,
.et_mobile_menu li a {
    text-transform: capitalize !important;
}
/* Replace hyphens visually for menu slugs (CSS fallback only — JS does real fix) */
#top-menu li a[href$="community-partners"],
#top-menu li a[href$="collaboration-opportunities"],
#top-menu li a[href$="sister-organizations"] {
    /* nothing visual to do at CSS level beyond the JS rewrite */
}

/* --- 13. ADDRESS PLACEHOLDER: hide if it contains "to be provided" --- */
/* JS will tag elements containing "[Address to be provided]" with .lnmc-hide-placeholder */
.lnmc-hide-placeholder { display: none !important; }

/* =====================================================================
   ROUND 6 — SURGICAL FIXES (post-diagnosis via Chrome DevTools)
   Each rule below targets a confirmed root cause, not a guess.
   ===================================================================== */

/* --- A. ORANGE/GOLD IMAGE RING — root cause: lnmc-member-hub plugin's
   global-scripts.js adds .lnmc-geometric-border to every .et_pb_image_wrap,
   and the plugin CSS gives it 8px gold gradient padding. Strip it. --- */
body span.et_pb_image_wrap.lnmc-geometric-border,
body .et_pb_image_wrap.lnmc-geometric-border {
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: 0 8px 22px rgba(14, 61, 18, 0.14) !important;
    border-radius: 12px !important;
}
body .et_pb_image_wrap.lnmc-geometric-border img,
body .lnmc-geometric-border img {
    border-radius: 12px !important;
}

/* --- B. CUSTOMIZER CACHED OVERRIDES — these styles load AFTER my child theme
   in source order, so I need higher specificity (body + #id + .class) to win.
   The customizer has these problematic rules:
     #main-footer .footer-widget h4 { color:#22577a } — invisible teal
     #main-footer { background: linear-gradient(... #37474f) } — clashes
     body { color:#3c3a47 } — purple-grey body text
     h1..h6 { color:#0e0c19 } — almost-black headings (low contrast on dark) --- */
body #main-footer .footer-widget h1,
body #main-footer .footer-widget h2,
body #main-footer .footer-widget h3,
body #main-footer .footer-widget h4,
body #main-footer .footer-widget h5,
body #main-footer .footer-widget h6,
body #main-footer .widget_block h1,
body #main-footer .widget_block h2,
body #main-footer .widget_block h3,
body #main-footer .widget_block h4,
body #main-footer .widget_block h5,
body #main-footer .widget_block h6,
body #main-footer .et_pb_widget h1,
body #main-footer .et_pb_widget h2,
body #main-footer .et_pb_widget h3,
body #main-footer .et_pb_widget h4,
body #main-footer .et_pb_widget h5,
body #main-footer .et_pb_widget h6,
body .et-l--footer h1,
body .et-l--footer h2,
body .et-l--footer h3,
body .et-l--footer h4,
body .et-l--footer h5,
body .et-l--footer h6 {
    color: #FFFFFF !important;
}

body #page-container #main-footer {
    background: linear-gradient(135deg, #144418 0%, #1B5E20 55%, #144418 100%) !important;
}

/* Body / heading customizer color overrides via higher specificity */
html body.home,
html body.home p,
html body.home li {
    color: var(--lnmc-neutral-700) !important;
}
html body.home h1,
html body.home h2,
html body.home h3,
html body.home h4,
html body.home h5,
html body.home h6 {
    color: var(--lnmc-neutral-900);
}

/* --- C. BUTTON CONTRAST — Discover More etc. were rendering with #1B5E20
   text (4.0:1 borderline) instead of #0E3D12 (6.6:1). Force darker text. --- */
body #page-container .et_pb_section a.et_pb_button,
body #page-container .et_pb_section .et_pb_button_module_wrapper a.et_pb_button,
body #page-container .et_pb_section .et_pb_button {
    color: #0E3D12 !important;
    background-color: #FFB300 !important;
    background-image: linear-gradient(135deg, #FFCD00 0%, #FFB300 100%) !important;
    text-shadow: none !important;
}
body #page-container .et_pb_section a.et_pb_button:hover {
    color: #0E3D12 !important;
}

/* --- D. FOOTER SOCIAL ICONS — gold-on-gold invisible. Make icons dark on gold. --- */
body #main-footer .et-social-icons a,
body .et-l--footer .et-social-icons a {
    background-color: #FFB300 !important;
    color: #0E3D12 !important;
}
body #main-footer .et-social-icons a:hover,
body .et-l--footer .et-social-icons a:hover {
    background-color: #FFE082 !important;
}

/* --- E. SECTION_5 (Get Involved) — cap image height so 1280×720 doesn't
   create a ~700px tall block that looks like empty space when scanned. --- */
body.home .et_pb_section_5 .et_pb_image,
body.home .et_pb_section_5 .et_pb_image_wrap {
    text-align: center;
}
body.home .et_pb_section_5 .et_pb_image img {
    max-height: 380px !important;
    width: auto !important;
    margin: 0 auto !important;
    object-fit: cover;
}
/* Tighten section_5 padding so heading + button sit close to the image */
body.home .et_pb_section_5 {
    padding: clamp(48px, 6vw, 88px) 0 !important;
}

/* --- F. SECTION_1 (Mission) — force a clean two-column 1fr 1fr split so
   the body text doesn't wrap at 6 words/line. Override Divi's column
   fraction classes that may be pinning the text column to 1/4 width. --- */
body.home .et_pb_section_1 > .et_pb_row > .et_pb_column {
    width: auto !important;
    margin-right: 0 !important;
}
body.home .et_pb_section_1 > .et_pb_row {
    grid-template-columns: 1fr 1fr !important;
    gap: clamp(40px, 6vw, 80px);
}
body.home .et_pb_section_1 .et_pb_text p {
    max-width: none;
    font-size: 1.05rem;
    line-height: 1.7;
}

/* --- G. HERO ALIGNMENT — title was centered while sub/para/button were left.
   Force everything to LEFT in the hero for visual cohesion. --- */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_text,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_heading,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) .et_pb_button_module_wrapper,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h1,
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4 {
    text-align: left !important;
}
/* Hero subheading "Connecting Hearts Across Continents" — bump size + spacing */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4.et_pb_module_heading {
    font-size: 1.05rem !important;
    color: var(--lnmc-gold-light) !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
    margin-bottom: 14px !important;
}

/* --- H. CTA SECTION HEADING H5 — "Join our mission..." was rendering with
   default uppercase + small caps; restore as readable paragraph-style. --- */
body.home .et_pb_section_5 h5.et_pb_module_heading {
    font-size: 1.05rem !important;
    line-height: 1.6 !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.92) !important;
}

/* --- I. PAST EVENT BADGE: keep styled but render the section title clearly
   so visitors don't see "Upcoming" above past events. JS-driven label edit
   adds .lnmc-events-stale-section to the title heading when 50%+ are stale. --- */
body.home .et_pb_section_4 h2.lnmc-events-stale-section::after {
    content: " (Past)";
    font-size: 0.7em;
    color: #B71C1C;
    margin-left: 8px;
    font-weight: 600;
    letter-spacing: 0.05em;
}

/* --- J. ROOT CAUSE: 143px green band between header and hero is from a
   div.lnmc-islamic-divider injected by the lnmc-member-hub plugin's JS.
   It uses 40px margin-top + 60px height. Hide it on the homepage. --- */
body .lnmc-islamic-divider {
    display: none !important;
}

/* --- K. DUPLICATE HEADER CTA: Theme Builder header has both
   et_pb_button_0_tb_header (Explore Now) and et_pb_button_1_tb_header
   (Learn More). Hide the second one — keep one strong primary CTA. --- */
body .et_pb_section_0_tb_header .et_pb_button_1_tb_header,
body .et_pb_section_0_tb_header .et_pb_button_module_wrapper:has(.et_pb_button_1_tb_header) {
    display: none !important;
}

/* --- L. SECTION_4 EVENT CARDS — currently 685px tall x 4 cards = ~1989px
   total. Compress: smaller image, tighter padding, shorter line-height. --- */
body.home .et_pb_section_4 > .et_pb_row:not(:first-of-type) > .et_pb_column {
    padding: 18px !important;
    gap: 10px !important;
}
body.home .et_pb_section_4 .et_pb_image img,
body.home .et_pb_section_4 img {
    aspect-ratio: 16 / 10 !important;
    max-height: 220px !important;
    width: 100% !important;
    object-fit: cover !important;
    border-radius: 10px !important;
}
body.home .et_pb_section_4 h3 {
    font-size: 1.1rem !important;
    margin: 0 !important;
    line-height: 1.25 !important;
}
body.home .et_pb_section_4 .et_pb_text p {
    margin: 0 !important;
    font-size: 0.92rem !important;
}
body.home .et_pb_section_4 .et_pb_button_module_wrapper {
    margin-top: 4px !important;
}
body.home .et_pb_section_4 .et_pb_button {
    padding: 10px 20px !important;
    font-size: 0.85rem !important;
}
/* Tighter section padding so the events block reads as a compact strip */
body.home .et_pb_section_4 {
    padding: clamp(48px, 6vw, 80px) 0 !important;
}

/* =====================================================================
   ROUND 7 — Production presentation layer (paired with lnmc-design.js)
   - .lnmc-fade-in / .visible reveal classes
   - .lnmc-header-scrolled drop-shadow + density on scroll
   - Huge-text fluid clamps and reading-width caps (web copy best practice)
   - Final contrast hardening on hero, CTAs, footer
   ===================================================================== */

/* --- A. Reveal classes used by lnmc-design.js -------------------- */
.lnmc-fade-in {
    opacity: 0;
    transform: translateY(30px);
    filter: blur(5px);
    transition:
        opacity 740ms var(--lnmc-ease),
        transform 780ms var(--lnmc-ease),
        filter 740ms var(--lnmc-ease);
    will-change: opacity, transform, filter;
}
.lnmc-fade-in.visible {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}
@media (prefers-reduced-motion: reduce) {
    .lnmc-fade-in,
    .lnmc-fade-in.visible {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }
}

/* --- B. Header scroll state -------------------------------------- */
#main-header.lnmc-header-scrolled,
.et-l--header.lnmc-header-scrolled #main-header {
    box-shadow: 0 12px 32px rgba(14, 61, 18, 0.18);
    background: rgba(255, 255, 255, 0.97) !important;
    backdrop-filter: saturate(140%) blur(8px);
}
#main-header.lnmc-header-scrolled {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}
#main-header.lnmc-header-scrolled #logo {
    max-height: 52px !important;
    transition: max-height 220ms var(--lnmc-ease);
}

/* --- C. Web-copy reading widths (combat huge-text wall-of-text) -- */
/* Caps long-form prose at ~65 characters per line — Bringhurst's
   recommended range for sustained reading. Headlines may go wider
   for impact but body copy never should. */
body.home p,
body.home li,
body:not(.home) #main-content p,
body:not(.home) #main-content li {
    max-width: 65ch;
}
/* Section heading-paragraph pairs (intro copy under H2) get a slightly
   wider cap so a 2-3 sentence sub-deck doesn't look cramped. */
body .et_pb_section .et_pb_heading + .et_pb_text p:first-child,
body .et_pb_section h2 + .et_pb_text p:first-child {
    max-width: 72ch;
    font-size: 1.075rem;
    color: var(--lnmc-neutral-700);
}
/* Big numbers, stat counters, and pull-quotes are display copy — no max. */
body .et_pb_number_counter,
body .et_pb_blurb h4,
body blockquote,
body .et_pb_testimonial_description p {
    max-width: none;
}

/* --- D. Hero / display headlines: fluid clamps so a 64px line on
       desktop becomes 32-40px on mobile without authoring multiple
       overrides. Replaces previously fixed sizes that overflowed. ----- */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h1,
body .lnmc-hero-section h1 {
    font-size: clamp( 2.2rem, 5.2vw + 0.5rem, 3.75rem ) !important;
    line-height: 1.06 !important;
    letter-spacing: -0.018em;
    max-width: 18ch;
}
body .et_pb_section h2.et_pb_module_heading,
body .et_pb_section h2 {
    font-size: clamp( 1.75rem, 2.6vw + 0.5rem, 2.5rem );
    line-height: 1.18;
    max-width: 22ch;
}
body .et_pb_section h3 {
    font-size: clamp( 1.2rem, 1.4vw + 0.6rem, 1.5rem );
    line-height: 1.28;
}

/* --- E. CTA button contrast — final lock-down ------------------- */
/* Web Almanac data: 3:1 is the floor for non-text UI; text-on-pill
   should be 4.5:1+. We pin button label colour to the dark forest
   green which gives 6.6:1 on the gold gradient and 12+ on hover. */
body a.et_pb_button,
body .et_pb_button,
body .lnmc-brand-btn {
    color: #0E3D12 !important;
    background-color: #FFB300 !important;
    background-image: linear-gradient(135deg, #FFCD00 0%, #FFB300 100%) !important;
    -webkit-text-fill-color: #0E3D12; /* iOS Safari */
    text-shadow: none !important;
}
body a.et_pb_button:hover,
body .et_pb_button:hover {
    background-image: linear-gradient(135deg, #FFE082 0%, #FFB300 100%) !important;
    color: #0E3D12 !important;
}
/* Dark-bg buttons (e.g. on hero / CTA section): keep gold pill but
   add subtle inset shadow for tactility on photographic backgrounds. */
.lnmc-hero-section a.et_pb_button,
.lnmc-cta-section a.et_pb_button {
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32),
                inset 0 -2px 0 rgba(0, 0, 0, 0.10) !important;
}

/* --- F. Hero overlay readability + eyebrow ---------------------- */
/* Increased gradient opacity so any cultural image used as hero
   background reaches AA contrast for the H1. */
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) {
    background: linear-gradient(135deg,
        rgba(14, 61, 18, 0.86) 0%,
        rgba(27, 94, 32, 0.74) 55%,
        rgba(14, 61, 18, 0.86) 100% ) !important;
}
body.home .et_pb_section_0:not(.et_pb_section_0_tb_header) h4.et_pb_module_heading {
    color: #FFE082 !important; /* gold-light = 6.5:1 on dark green */
    font-weight: 600 !important;
    letter-spacing: 0.24em !important;
    font-size: 0.95rem !important;
    text-transform: uppercase;
}

/* --- G. Footer column readability + grid sanity ----------------- */
/* Defensive: lock the footer body text to high-contrast cream so
   any plugin-injected inline styles can't dim it back to grey. */
body #main-footer p,
body #main-footer li,
body #main-footer a:not(.et_pb_button),
body .et-l--footer p,
body .et-l--footer li {
    color: #FFF8E1 !important;
}
body #main-footer .et_pb_widget li {
    line-height: 1.55;
    margin-bottom: 6px;
}
/* List bullets shouldn't overpower link text on the dark footer. */
body #main-footer ul li::marker {
    color: rgba(255, 248, 225, 0.55);
}

/* --- H. Service / blurb cards: better hierarchy + breathing room  */
body.home .et_pb_section_2 .et_pb_blurb h4,
body.home .lnmc-services-section .et_pb_blurb h4 {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    letter-spacing: -0.01em;
}
body.home .et_pb_section_2 .et_pb_blurb_description,
body.home .lnmc-services-section .et_pb_blurb_description {
    font-size: 1rem !important;
    line-height: 1.7 !important;
    color: var(--lnmc-neutral-700);
}

/* --- I. Honor reduced motion globally -------------------------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
    html { scroll-behavior: auto !important; }
}

/* --- J. Print: drop fixed/floating chrome ---------------------- */
@media print {
    #lnmc-chat-widget,
    .lnmc-chat-launcher,
    .skip-link,
    #top-header,
    .et_pb_section_0_tb_header,
    .et_pb_section_0_tb_footer { display: none !important; }
    body { background: #fff !important; color: #000 !important; }
    a::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #444; }
}

/* =====================================================================
   ROUND 8 — Dark-bg auto-readability + accessibility hardening
   Set by lnmc-design.js: every Divi container whose effective background
   luminance is < 0.30 gets `.lnmc-on-dark`. CSS forces a readable cream/
   white foreground for ALL descendants — including headings, which the
   Divi customizer cached <style> normally pins to near-black.
   ===================================================================== */
.lnmc-on-dark,
.lnmc-on-dark p,
.lnmc-on-dark li,
.lnmc-on-dark span,
.lnmc-on-dark a:not(.et_pb_button),
.lnmc-on-dark .et_pb_text_inner,
.lnmc-on-dark .et_pb_blurb_description,
.lnmc-on-dark .et_pb_blurb_description p,
.lnmc-on-dark blockquote,
.lnmc-on-dark .et_pb_module_header {
    color: #FFF8E1 !important; /* cream — 12+:1 on dark green */
}
/* Headings need !important AND high specificity to beat the customizer's
   cached `h1..h6 { color:#0e0c19 }` rule. */
body .lnmc-on-dark h1,
body .lnmc-on-dark h2,
body .lnmc-on-dark h3,
body .lnmc-on-dark h4,
body .lnmc-on-dark h5,
body .lnmc-on-dark h6,
body .lnmc-on-dark .et_pb_heading_container h1,
body .lnmc-on-dark .et_pb_heading_container h2,
body .lnmc-on-dark .et_pb_heading_container h3,
body .lnmc-on-dark .et_pb_heading_container h4,
body .lnmc-on-dark .et_pb_heading_container h5,
body .lnmc-on-dark .et_pb_heading_container h6 {
    color: #FFFFFF !important;
}
/* Strong / emphasis labels on dark bg should be bright gold (high contrast)
   not the muted #FFB300 which loses against rgba(255,255,255,0.1) cards. */
body .lnmc-on-dark strong,
body .lnmc-on-dark b,
body .lnmc-on-dark .et_pb_text_inner strong {
    color: #FFE082 !important; /* gold-light = 6.5:1 on dark green */
}
/* Inline-styled gold strong labels (Divi outputs <strong style="color:#FFB300">)
   need explicit override to brighten on dark cards. */
body .lnmc-on-dark [style*="color:#FFB300"],
body .lnmc-on-dark [style*="color: #FFB300"] {
    color: #FFE082 !important;
}
/* Links on dark backgrounds: gold underline on hover — not the dark green
   the global rule sets, which is invisible. */
.lnmc-on-dark a:not(.et_pb_button) {
    color: #FFE082 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.lnmc-on-dark a:not(.et_pb_button):hover {
    color: #FFFFFF !important;
}
/* Bullet markers + the gold underline of footer headings stay visible. */
.lnmc-on-dark ul li::marker,
.lnmc-on-dark ol li::marker {
    color: rgba(255, 248, 225, 0.7);
}
/* Cards with `rgba(255,255,255,0.1)` backgrounds inside dark sections —
   common pattern on the partnership-criteria column. Bump opacity slightly
   so the box is visible without overwhelming. */
.lnmc-on-dark [style*="rgba(255,255,255"] ,
.lnmc-on-dark [style*="rgba(255, 255, 255"] {
    background-color: rgba(255, 255, 255, 0.08) !important;
    border-radius: 12px;
}

/* Extra defensive: any element on `.lnmc-on-dark` that has an INLINE
   `style="color:#0E..."` near-black sets should be overridden. */
.lnmc-on-dark [style*="color:#0e0c19"],
.lnmc-on-dark [style*="color: #0e0c19"],
.lnmc-on-dark [style*="color:#000"],
.lnmc-on-dark [style*="color:#1B5E20"],
.lnmc-on-dark [style*="color:#0E3D12"] {
    color: #FFFFFF !important;
}

/* CTA buttons routed by JS get a tiny visual tell (dotted underline on
   focus only) so editors can audit which destinations are programmatic. */
a.et_pb_button[data-lnmc-routed="1"]:focus-visible {
    outline: 3px dotted var(--lnmc-gold) !important;
    outline-offset: 4px;
}

/* Client handover preference: keep non-hero content off dark section
   backgrounds. The runtime dark detector still preserves hero contrast,
   while interior dark bands become light editorial panels with dark text. */
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) {
    background-color: #F8FDF8 !important;
    background-image: none !important;
}
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0),
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) p,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) li,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) span,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) .et_pb_text_inner,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) .et_pb_blurb_description,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) .et_pb_module_header {
    color: var(--lnmc-neutral-900) !important;
}
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h1,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h2,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h3,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h4,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h5,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) h6,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) strong,
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) b {
    color: var(--lnmc-green-dark) !important;
}
body #main-content .et_pb_section.lnmc-on-dark:not(.et_pb_section_0) a:not(.et_pb_button) {
    color: var(--lnmc-green) !important;
}

/* =====================================================================
   ROUND 8.5 — Symmetric dark/light readability
   `.lnmc-on-light` is set by lnmc-design.js on any light-bg card that
   sits inside an `.lnmc-on-dark` container (e.g. white testimonial
   cards inside a dark green section). Without this RESET the dark-bg
   `color: cream` rule inherits into the light card, producing
   cream-on-white text — illegible. We re-pin foreground to dark.
   ===================================================================== */
.lnmc-on-light,
.lnmc-on-light p,
.lnmc-on-light li,
.lnmc-on-light span,
.lnmc-on-light .et_pb_text_inner,
.lnmc-on-light .et_pb_blurb_description,
.lnmc-on-light .et_pb_blurb_description p,
.lnmc-on-light .et_pb_testimonial_description,
.lnmc-on-light .et_pb_testimonial_description p,
.lnmc-on-light blockquote,
.lnmc-on-light .et_pb_module_header,
/* Override the cascade explicitly when `.lnmc-on-light` is nested
   inside `.lnmc-on-dark` — same parent path, but light card wins. */
.lnmc-on-dark .lnmc-on-light,
.lnmc-on-dark .lnmc-on-light p,
.lnmc-on-dark .lnmc-on-light li,
.lnmc-on-dark .lnmc-on-light span,
.lnmc-on-dark .lnmc-on-light .et_pb_text_inner,
.lnmc-on-dark .lnmc-on-light .et_pb_blurb_description,
.lnmc-on-dark .lnmc-on-light .et_pb_testimonial_description,
.lnmc-on-dark .lnmc-on-light blockquote {
    color: var(--lnmc-neutral-900) !important;
}
body .lnmc-on-light h1,
body .lnmc-on-light h2,
body .lnmc-on-light h3,
body .lnmc-on-light h4,
body .lnmc-on-light h5,
body .lnmc-on-light h6,
body .lnmc-on-dark .lnmc-on-light h1,
body .lnmc-on-dark .lnmc-on-light h2,
body .lnmc-on-dark .lnmc-on-light h3,
body .lnmc-on-dark .lnmc-on-light h4,
body .lnmc-on-dark .lnmc-on-light h5,
body .lnmc-on-dark .lnmc-on-light h6 {
    color: var(--lnmc-neutral-900) !important;
}
/* Strong / emphasis on light cards — green not gold. */
.lnmc-on-light strong,
.lnmc-on-light b,
.lnmc-on-dark .lnmc-on-light strong,
.lnmc-on-dark .lnmc-on-light b {
    color: var(--lnmc-green) !important;
}
/* Links on light cards — green underline; reset the dark-cascade gold. */
.lnmc-on-dark .lnmc-on-light a:not(.et_pb_button) {
    color: var(--lnmc-green) !important;
    text-decoration: underline;
}
.lnmc-on-dark .lnmc-on-light a:not(.et_pb_button):hover {
    color: var(--lnmc-green-dark) !important;
}

/* =====================================================================
   ROUND 10 - Final production UX hardening
   Homepage/footer/chat/plugin shortcode polish for the 2026-05-02 pass.
   ===================================================================== */

/* Footer contrast lock: Divi customizer and inline module colors can leak
   teal/dark green into the dark footer. Pin all footer reading surfaces. */
body #main-footer,
body #main-footer .et_pb_widget,
body #main-footer .footer-widget,
body #main-footer .et_pb_text_inner,
body .et-l--footer,
body .et-l--footer .et_pb_text_inner {
    color: #FFF8E1 !important;
}
body #main-footer h1, body #main-footer h2, body #main-footer h3,
body #main-footer h4, body #main-footer h5, body #main-footer h6,
body .et-l--footer h1, body .et-l--footer h2, body .et-l--footer h3,
body .et-l--footer h4, body .et-l--footer h5, body .et-l--footer h6 {
    color: #FFFFFF !important;
}
body #main-footer p, body #main-footer li, body #main-footer span,
body .et-l--footer p, body .et-l--footer li, body .et-l--footer span {
    color: #FFF8E1 !important;
}
body #main-footer a:not(.et_pb_button),
body .et-l--footer a:not(.et_pb_button) {
    color: #FFF8E1 !important;
    text-decoration: none;
}
body #main-footer a:not(.et_pb_button):hover,
body .et-l--footer a:not(.et_pb_button):hover {
    color: #FFE082 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
body #main-footer [style*="color:#22577a"],
body #main-footer [style*="color: #22577a"],
body #main-footer [style*="color:#1b5e20"],
body #main-footer [style*="color: #1b5e20"],
body #main-footer [style*="color:#0e0c19"],
body #main-footer [style*="color: #0e0c19"],
body .et-l--footer [style*="color:#22577a"],
body .et-l--footer [style*="color: #22577a"],
body .et-l--footer [style*="color:#1b5e20"],
body .et-l--footer [style*="color: #1b5e20"],
body .et-l--footer [style*="color:#0e0c19"],
body .et-l--footer [style*="color: #0e0c19"] {
    color: #FFF8E1 !important;
}
body #main-footer .et_pb_social_media_follow,
body .et-l--footer .et_pb_social_media_follow,
body #main-footer .et-social-icons,
body .et-l--footer .et-social-icons {
    display: flex !important;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}
body #main-footer .et_pb_social_icon a,
body .et-l--footer .et_pb_social_icon a,
body #main-footer .et-social-icons a,
body .et-l--footer .et-social-icons a {
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, 0.12) !important;
    color: #FFFFFF !important;
    font-size: 18px !important;
    transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}
body #main-footer .et_pb_social_icon a:hover,
body .et-l--footer .et_pb_social_icon a:hover,
body #main-footer .et-social-icons a:hover,
body .et-l--footer .et-social-icons a:hover {
    background: #FFB300 !important;
    color: #0E3D12 !important;
    transform: translateY(-2px);
}
body #main-footer .et_pb_social_icon a::before,
body #main-footer .et-social-icons a::before,
body .et-l--footer .et_pb_social_icon a::before,
body .et-l--footer .et-social-icons a::before {
    color: inherit !important;
}

/* Faded events were being interpreted as a global opacity bug. Keep stale
   context via a badge, but do not dim the whole card. */
body.home .et_pb_section_4 .et_pb_column.lnmc-event-stale {
    opacity: 1 !important;
}
body.home .et_pb_section_4 .et_pb_column.lnmc-event-stale::after {
    background: #B71C1C;
    box-shadow: 0 6px 16px rgba(183, 28, 28, 0.24);
}
body.home .et_pb_section_4 h2.lnmc-events-stale-section::after {
    content: " (Past Events)";
    color: #B71C1C;
}

/* Safety net for reveal animation: content should never remain invisible if
   the browser delays or skips IntersectionObserver callbacks. */
body .lnmc-fade-in {
    min-height: 1px;
}
body .lnmc-fade-in:not(.visible) {
    transition-delay: 0ms;
}
@media (prefers-reduced-motion: no-preference) {
    body .lnmc-fade-in:not(.visible) {
        animation: lnmc-round10-reveal-fallback 1ms linear 1600ms forwards;
    }
}
@keyframes lnmc-round10-reveal-fallback {
    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

/* Chat disabled/configuring state. */
#lnmc-chat-input:disabled,
#lnmc-chat-send:disabled {
    cursor: not-allowed;
}
#lnmc-chat-send[aria-disabled="true"] {
    background: #9E9E9E !important;
}

/* Shortcode surfaces: make plugin output feel like part of the Divi site
   without changing plugin business logic. */
body .lnmc-dir,
body .lnmc-member-hub,
body .lnmc-pricing-table,
body .lnmc-member-dashboard,
body .lnmc-membership-form {
    font-family: 'Source Sans 3', 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif !important;
    color: var(--lnmc-neutral-900);
}
body .lnmc-dir {
    --lnmc-navy: var(--lnmc-green);
    --lnmc-navy-light: var(--lnmc-green-light);
    --lnmc-gold: #FFB300;
    margin: clamp(28px, 5vw, 56px) auto;
}
body .lnmc-filters,
body .lnmc-card,
body .lnmc-pricing-table,
body .lnmc-member-dashboard,
body .lnmc-membership-form {
    border-radius: 10px !important;
    border-color: rgba(27, 94, 32, 0.14) !important;
    box-shadow: 0 14px 36px rgba(27, 94, 32, 0.12) !important;
}
body .lnmc-card::before {
    background: linear-gradient(90deg, #1B5E20, #FFB300) !important;
}
body .lnmc-filter-submit,
body .lnmc-pricing-button,
body .lnmc-submit-button {
    color: #0E3D12 !important;
    background: linear-gradient(135deg, #FFCD00 0%, #FFB300 100%) !important;
    border-radius: 999px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
body .lnmc-filter-clear {
    border-radius: 999px !important;
}
body .lnmc-results-header h2,
body .lnmc-pricing-title,
body .lnmc-membership-title,
body .lnmc-dashboard-title {
    font-family: 'Amiri', 'Playfair Display', Georgia, serif !important;
    color: var(--lnmc-green) !important;
    letter-spacing: 0 !important;
}
body .lnmc-grid {
    gap: clamp(18px, 3vw, 28px);
}

/* Non-home Divi content polish: pages still using older builder presets should
   inherit the current green/gold typographic system. */
body:not(.home) #main-content .et_pb_section:not(.lnmc-on-dark) p,
body:not(.home) #main-content .et_pb_section:not(.lnmc-on-dark) li {
    color: var(--lnmc-neutral-700) !important;
}
body:not(.home) #main-content .et_pb_section h1,
body:not(.home) #main-content .et_pb_section h2,
body:not(.home) #main-content .et_pb_section h3,
body:not(.home) #main-content .et_pb_section h4,
body:not(.home) #main-content .et_pb_section h5,
body:not(.home) #main-content .et_pb_section h6 {
    letter-spacing: 0 !important;
}

@media (max-width: 767px) {
    body #main-footer .et_pb_column,
    body .et-l--footer .et_pb_column {
        margin-bottom: 18px !important;
    }
    body .lnmc-filter-row,
    body .lnmc-card-header,
    body .lnmc-dashboard-field {
        display: block !important;
    }
    body .lnmc-card-acronym {
        display: inline-block;
        margin-top: 8px;
    }
}

/* Footer Theme Builder columns are tagged .lnmc-on-light by the runtime
   contrast helper because their own background is translucent. In the footer,
   translucent columns sit on dark green, so footer-specific contrast wins. */
/* Commented out to allow standard dark text on light backgrounds inside the footer
body #page-container #main-footer .lnmc-on-light,
body #page-container #main-footer .lnmc-on-light p,
body #page-container #main-footer .lnmc-on-light li,
body #page-container #main-footer .lnmc-on-light span,
body #page-container #main-footer .lnmc-on-light .et_pb_text_inner,
body #page-container #main-footer .lnmc-on-light .et_pb_module_header,
body #page-container .et-l--footer .lnmc-on-light,
body #page-container .et-l--footer .lnmc-on-light p,
body #page-container .et-l--footer .lnmc-on-light li,
body #page-container .et-l--footer .lnmc-on-light span,
body #page-container .et-l--footer .lnmc-on-light .et_pb_text_inner,
body #page-container .et-l--footer .lnmc-on-light .et_pb_module_header,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light p,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light li,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light span,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light .et_pb_text_inner {
    color: #FFF8E1 !important;
}
body #page-container #main-footer .lnmc-on-light h1,
body #page-container #main-footer .lnmc-on-light h2,
body #page-container #main-footer .lnmc-on-light h3,
body #page-container #main-footer .lnmc-on-light h4,
body #page-container #main-footer .lnmc-on-light h5,
body #page-container #main-footer .lnmc-on-light h6,
body #page-container .et-l--footer .lnmc-on-light h1,
body #page-container .et-l--footer .lnmc-on-light h2,
body #page-container .et-l--footer .lnmc-on-light h3,
body #page-container .et-l--footer .lnmc-on-light h4,
body #page-container .et-l--footer .lnmc-on-light h5,
body #page-container .et-l--footer .lnmc-on-light h6,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h1,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h2,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h3,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h4,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h5,
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light h6 {
    color: #FFFFFF !important;
}
body #page-container #main-footer .lnmc-on-light a:not(.et_pb_button),
body #page-container .et-l--footer .lnmc-on-light a:not(.et_pb_button),
body #page-container .et-l--footer .lnmc-on-dark .lnmc-on-light a:not(.et_pb_button) {
    color: #FFF8E1 !important;
}
*/

/* Newsletter/social footer band: the Divi module used #4CAF50, which is too
   light for white headings. Use dark green, then pin form/button colors. */
body #page-container #main-footer .et_pb_signup,
body #page-container .et-l--footer .et_pb_signup,
body #page-container #main-footer .et_pb_column:has(.et_pb_signup),
body #page-container .et-l--footer .et_pb_column:has(.et_pb_signup),
body #page-container #main-footer .et_pb_column_4_tb_footer,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer {
    background-color: #0E3D12 !important;
}
body #page-container #main-footer .et_pb_column_4_tb_footer h1,
body #page-container #main-footer .et_pb_column_4_tb_footer h2,
body #page-container #main-footer .et_pb_column_4_tb_footer h3,
body #page-container #main-footer .et_pb_column_4_tb_footer h4,
body #page-container #main-footer .et_pb_column_4_tb_footer h5,
body #page-container #main-footer .et_pb_column_4_tb_footer h6,
body #page-container #main-footer .et_pb_column_4_tb_footer p,
body #page-container #main-footer .et_pb_column_4_tb_footer label,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h1,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h2,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h3,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h4,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h5,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h6,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer p,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer label,
body #page-container #main-footer .et_pb_signup h1,
body #page-container #main-footer .et_pb_signup h2,
body #page-container #main-footer .et_pb_signup h3,
body #page-container #main-footer .et_pb_signup h4,
body #page-container #main-footer .et_pb_signup h5,
body #page-container #main-footer .et_pb_signup h6,
body #page-container #main-footer .et_pb_signup p,
body #page-container #main-footer .et_pb_signup label,
body #page-container .et-l--footer .et_pb_signup h1,
body #page-container .et-l--footer .et_pb_signup h2,
body #page-container .et-l--footer .et_pb_signup h3,
body #page-container .et-l--footer .et_pb_signup h4,
body #page-container .et-l--footer .et_pb_signup h5,
body #page-container .et-l--footer .et_pb_signup h6,
body #page-container .et-l--footer .et_pb_signup p,
body #page-container .et-l--footer .et_pb_signup label {
    color: #FFF8E1 !important;
}
body #page-container #main-footer .et_pb_signup .et_pb_newsletter_button,
body #page-container #main-footer .et_pb_signup .et_pb_newsletter_button_text,
body #page-container #main-footer .et_pb_signup a.et_pb_button,
body #page-container #main-footer .et_pb_column_4_tb_footer .et_pb_newsletter_button,
body #page-container #main-footer .et_pb_column_4_tb_footer .et_pb_newsletter_button_text,
body #page-container #main-footer .et_pb_column_4_tb_footer a.et_pb_button,
body #page-container #main-footer a.et_pb_button,
body #page-container #main-footer .et_pb_button,
body #page-container .et-l--footer .et_pb_signup .et_pb_newsletter_button,
body #page-container .et-l--footer .et_pb_signup .et_pb_newsletter_button_text,
body #page-container .et-l--footer .et_pb_signup a.et_pb_button,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer .et_pb_newsletter_button,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer .et_pb_newsletter_button_text,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer a.et_pb_button,
body #page-container .et-l--footer a.et_pb_button,
body #page-container .et-l--footer .et_pb_button {
    color: #0E3D12 !important;
    background-color: #FFB300 !important;
    background: linear-gradient(135deg, #FFCD00 0%, #FFB300 100%) !important;
}
body #page-container #main-footer .et_pb_newsletter_button_wrap a.et_pb_newsletter_button.et_pb_button,
body #page-container .et-l--footer .et_pb_newsletter_button_wrap a.et_pb_newsletter_button.et_pb_button {
    color: #0E3D12 !important;
    background-color: #FFB300 !important;
    background-image: linear-gradient(135deg, #FFCD00 0%, #FFB300 100%) !important;
    -webkit-text-fill-color: #0E3D12 !important;
}
body #page-container #main-footer .et_pb_newsletter_button_wrap a.et_pb_newsletter_button.et_pb_button span,
body #page-container .et-l--footer .et_pb_newsletter_button_wrap a.et_pb_newsletter_button.et_pb_button span {
    color: #0E3D12 !important;
    -webkit-text-fill-color: #0E3D12 !important;
}
body #page-container #main-footer .et_pb_social_media_follow li,
body #page-container .et-l--footer .et_pb_social_media_follow li {
    color: #FFF8E1 !important;
}
body #page-container #main-footer .et_pb_social_icon a,
body #page-container .et-l--footer .et_pb_social_icon a {
    background: #FFF8E1 !important;
    color: #0E3D12 !important;
}
body #page-container #main-footer .et_pb_social_icon a:hover,
body #page-container .et-l--footer .et_pb_social_icon a:hover {
    background: #FFB300 !important;
    color: #0E3D12 !important;
}

/* ROUND 10 - Projects page pre-footer CTA polish
   Tightens the "Get Involved" band and turns loose inline links into a
   deliberate action group without editing Divi page content. */
body.page-id-50 #main-content .et_pb_section_2 {
    padding: clamp(48px, 6vw, 76px) 0 !important;
    background:
        linear-gradient(135deg, rgba(247, 250, 246, 0.98) 0%, rgba(255, 248, 225, 0.92) 100%) !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_row {
    width: min(1040px, calc(100% - 40px)) !important;
    max-width: 1040px !important;
    padding: 0 !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text {
    margin: 0 !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text.lnmc-fade-in {
    opacity: 1 !important;
    transform: none !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "title actions"
        "copy actions";
    align-items: center;
    column-gap: clamp(32px, 6vw, 72px);
    row-gap: 10px;
    text-align: left !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner h2 {
    grid-area: title;
    max-width: none;
    margin: 0 !important;
    color: #2E2E2E !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner p {
    grid-area: copy;
    max-width: 58ch;
    margin: 0 !important;
    color: #454545 !important;
    font-size: clamp(1rem, 1.2vw, 1.125rem) !important;
    line-height: 1.7 !important;
    text-align: left !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner > div {
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px;
    max-width: 410px;
    margin: 0 !important;
    text-align: right !important;
}

body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner > div br {
    display: none !important;
}

body.page-id-50 #main-content .et_pb_section_2 .lnmc-brand-btn {
    color: #0E3D12 !important;
    min-width: 132px;
    min-height: 48px;
    margin: 0 !important;
    padding: 13px 24px !important;
    font-size: 0.95rem !important;
    line-height: 1.15 !important;
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(14, 61, 18, 0.14) !important;
    -webkit-text-fill-color: #0E3D12 !important;
}

body.page-id-50 #main-content .et_pb_section_2 .lnmc-brand-btn--secondary {
    color: #0E3D12 !important;
    background: transparent !important;
    background-image: none !important;
    border: 2px solid #1B5E20 !important;
    box-shadow: none !important;
}

body.page-id-50 #main-content .et_pb_section_2 .lnmc-brand-btn--secondary:hover {
    color: #FFFFFF !important;
    background: #1B5E20 !important;
    background-image: none !important;
}

@media (max-width: 980px) {
    body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "copy"
            "actions";
        text-align: center !important;
    }

    body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner h2,
    body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner p {
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
    }

    body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner > div {
        justify-content: center;
        max-width: none;
        margin-top: 12px !important;
        text-align: center !important;
    }
}

@media (max-width: 560px) {
    body.page-id-50 #main-content .et_pb_section_2 {
        padding: 40px 0 !important;
    }

    body.page-id-50 #main-content .et_pb_section_2 .et_pb_text_inner > div {
        flex-direction: column;
        align-items: stretch;
        width: min(100%, 280px);
        margin-left: auto !important;
        margin-right: auto !important;
    }

body.page-id-50 #main-content .et_pb_section_2 .lnmc-brand-btn {
        width: 100%;
    }
}

/* ROUND 10 - About page CTA contrast repair
   Divi marks these promo modules as light text contexts incorrectly after
   the runtime surface pass. Keep the dark panels readable. */
body.page-id-42 #main-content .et_pb_cta_0,
body.page-id-42 #main-content .et_pb_cta_1 {
    color: #FFF8E1 !important;
}

body.page-id-42 #main-content .et_pb_cta_0 h1,
body.page-id-42 #main-content .et_pb_cta_0 h2,
body.page-id-42 #main-content .et_pb_cta_0 h3,
body.page-id-42 #main-content .et_pb_cta_0 .et_pb_module_header,
body.page-id-42 #main-content .et_pb_cta_1 h1,
body.page-id-42 #main-content .et_pb_cta_1 h2,
body.page-id-42 #main-content .et_pb_cta_1 h3,
body.page-id-42 #main-content .et_pb_cta_1 .et_pb_module_header {
    color: #FFFFFF !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.34) !important;
}

body.page-id-42 #main-content .et_pb_cta_0 p,
body.page-id-42 #main-content .et_pb_cta_0 .et_pb_promo_description,
body.page-id-42 #main-content .et_pb_cta_1 p,
body.page-id-42 #main-content .et_pb_cta_1 .et_pb_promo_description {
    color: #FFF8E1 !important;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.36) !important;
}

body.page-id-42 #page-container #main-content .et_pb_section_6 .et_pb_cta_0.et_pb_promo .et_pb_promo_description,
body.page-id-42 #page-container #main-content .et_pb_section_6 .et_pb_cta_0.et_pb_promo .et_pb_promo_description p,
body.page-id-42 #page-container #main-content .et_pb_section_8 .et_pb_cta_1.et_pb_promo .et_pb_promo_description,
body.page-id-42 #page-container #main-content .et_pb_section_8 .et_pb_cta_1.et_pb_promo .et_pb_promo_description p {
    color: #FFF8E1 !important;
    text-shadow: 0 1px 5px rgba(0, 0, 0, 0.36) !important;
}

body.page-id-42 #main-content .et_pb_cta_0 a.et_pb_button,
body.page-id-42 #main-content .et_pb_cta_1 a.et_pb_button {
    color: #0E3D12 !important;
    -webkit-text-fill-color: #0E3D12 !important;
}

body.page-id-42 #main-content .et_pb_cta_0 a.et_pb_button:hover,
body.page-id-42 #main-content .et_pb_cta_1 a.et_pb_button:hover {
    color: #0E3D12 !important;
    -webkit-text-fill-color: #0E3D12 !important;
}

/* ROUND 10 - Homepage hero cinematic rebuild
   Uses an approved local still with lightweight ambient motion instead of a
   heavy autoplay video. Compact, mobile-first, and reduced-motion aware. */
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section:not(.et_pb_section_0_tb_header) {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: clamp(520px, calc(100svh - 104px), 680px);
    padding: clamp(46px, 6vw, 78px) 0 clamp(42px, 5vw, 66px) !important;
    background-color: #0E3D12 !important;
    background-image: none !important;
    box-shadow: inset 0 -1px 0 rgba(255, 248, 225, 0.12);
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section::before {
    content: "";
    position: absolute;
    inset: -5%;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(3, 26, 8, 0.9) 0%, rgba(14, 61, 18, 0.72) 42%, rgba(14, 61, 18, 0.18) 70%, rgba(3, 26, 8, 0.72) 100%),
        radial-gradient(circle at 24% 22%, rgba(255, 205, 0, 0.22) 0 12%, transparent 34%),
        url('/wp-content/uploads/2026/04/heritage-preservation-project-1024x683.jpg');
    background-size: cover, cover, cover;
    background-position: center, center, 64% 50%;
    transform: scale(1.03);
    animation: lnmcHeroDrift 22s ease-in-out infinite alternate;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(3, 26, 8, 0.28) 0%, transparent 35%, rgba(3, 26, 8, 0.36) 100%),
        repeating-linear-gradient(45deg, rgba(255, 248, 225, 0.055) 0 1px, transparent 1px 18px);
    mix-blend-mode: soft-light;
}

@keyframes lnmcHeroDrift {
    0% {
        transform: scale(1.03) translate3d(-0.8%, -0.4%, 0);
        filter: saturate(0.95);
    }
    100% {
        transform: scale(1.09) translate3d(1.2%, 0.8%, 0);
        filter: saturate(1.12);
    }
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_row_0 {
    position: relative;
    z-index: 2;
    width: min(1120px, calc(100% - 40px)) !important;
    max-width: 1120px !important;
    padding: 0 !important;
    margin: 0 auto !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_column_0 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 620px;
    padding: clamp(22px, 3.2vw, 36px);
    border-left: 3px solid rgba(255, 205, 0, 0.88);
    background: linear-gradient(135deg, rgba(3, 26, 8, 0.56), rgba(14, 61, 18, 0.28));
    border-radius: 0 22px 22px 0;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.26);
    backdrop-filter: blur(2px);
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_heading,
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text,
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_button_module_wrapper {
    width: 100%;
    max-width: 620px;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section h6.et_pb_module_heading {
    display: inline-flex;
    width: auto;
    margin: 0 0 16px !important;
    padding: 7px 12px 6px;
    border: 1px solid rgba(255, 205, 0, 0.38);
    border-radius: 999px;
    background: rgba(255, 205, 0, 0.10);
    color: #FFCD00 !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    font-size: clamp(0.72rem, 0.8vw, 0.86rem) !important;
    font-weight: 800 !important;
    letter-spacing: 0.16em !important;
    line-height: 1.15 !important;
    text-transform: uppercase;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45) !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section h1.et_pb_module_heading {
    max-width: 12.2ch;
    margin: 0 !important;
    color: #FFFFFF !important;
    font-size: clamp(3rem, 5.4vw, 4.9rem) !important;
    line-height: 0.96 !important;
    letter-spacing: 0 !important;
    text-wrap: balance;
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.52) !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0 {
    margin-top: clamp(20px, 3vw, 30px) !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0,
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0 .et_pb_text_inner,
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0 p {
    color: #FFF8E1 !important;
    font-size: clamp(1.02rem, 1.15vw, 1.14rem) !important;
    line-height: 1.68 !important;
    font-weight: 600;
    text-align: left !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.46) !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_button_module_wrapper {
    margin-top: clamp(22px, 3.5vw, 34px) !important;
}

body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section a.et_pb_button {
    min-height: 52px;
    padding: 15px 30px !important;
    border-radius: 999px !important;
    color: #0E3D12 !important;
    -webkit-text-fill-color: #0E3D12 !important;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.24), inset 0 -2px 0 rgba(14, 61, 18, 0.12) !important;
}

@media (max-width: 980px) {
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section:not(.et_pb_section_0_tb_header) {
        min-height: clamp(520px, calc(100svh - 70px), 650px);
        padding: 54px 0 48px !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section::before {
        background:
            linear-gradient(180deg, rgba(3, 26, 8, 0.84) 0%, rgba(14, 61, 18, 0.78) 52%, rgba(3, 26, 8, 0.78) 100%),
            radial-gradient(circle at 50% 14%, rgba(255, 205, 0, 0.18) 0 12%, transparent 38%),
            url('/wp-content/uploads/2026/04/heritage-preservation-project-768x512.jpg');
        background-size: cover, cover, cover;
        background-position: center, center, 52% 50%;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_row_0 {
        width: min(100% - 28px, 680px) !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_column_0 {
        align-items: center;
        max-width: none;
        padding: 24px 20px 26px;
        border-left: 0;
        border-top: 3px solid rgba(255, 205, 0, 0.88);
        border-radius: 20px;
        text-align: center;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_heading,
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text,
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_button_module_wrapper,
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0 p {
        text-align: center !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section h1.et_pb_module_heading {
        max-width: 11ch;
        margin-left: auto !important;
        margin-right: auto !important;
        font-size: clamp(2.75rem, 11vw, 4.2rem) !important;
    }
}

@media (max-width: 520px) {
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section:not(.et_pb_section_0_tb_header) {
        min-height: auto;
        padding: 38px 0 38px !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section h6.et_pb_module_heading {
        max-width: 100%;
        justify-content: center;
        white-space: normal;
        font-size: 0.68rem !important;
        letter-spacing: 0.12em !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section h1.et_pb_module_heading {
        font-size: clamp(2.35rem, 12.2vw, 3.35rem) !important;
        line-height: 0.98 !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0,
    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section .et_pb_text_0 p {
        font-size: 1rem !important;
        line-height: 1.65 !important;
    }

    body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section a.et_pb_button {
        width: 100%;
        max-width: 280px;
    }
}

@media (prefers-reduced-motion: reduce) {
body.home #page-container #main-content .et_pb_section_0.lnmc-hero-section::before {
        animation: none;
        transform: scale(1.03);
    }
}

/* ROUND 10 - Homepage middle-section refinement
   Header, hero, and footer are intentionally untouched. This pass tightens
   mission/services/testimonials/events/CTA/contact and preserves all links. */
body.home #page-container .main-content .et_pb_section_1,
body.home #page-container .main-content .et_pb_section_2,
body.home #page-container .main-content .et_pb_section_3,
body.home #page-container .main-content .et_pb_section_4,
body.home #page-container .main-content .et_pb_section_5,
body.home #page-container .main-content .et_pb_section_6 {
    overflow: hidden;
}

body.home #page-container .main-content .et_pb_section_1 .lnmc-fade-in,
body.home #page-container .main-content .et_pb_section_2 .lnmc-fade-in,
body.home #page-container .main-content .et_pb_section_3 .lnmc-fade-in,
body.home #page-container .main-content .et_pb_section_4 .lnmc-fade-in,
body.home #page-container .main-content .et_pb_section_5 .lnmc-fade-in,
body.home #page-container .main-content .et_pb_section_6 .lnmc-fade-in {
    opacity: 1 !important;
    transform: none !important;
}

body.home #page-container .main-content .et_pb_section_1 {
    padding: clamp(64px, 7vw, 96px) 0 !important;
    background:
        linear-gradient(180deg, #FFFFFF 0%, #F8FDF8 100%) !important;
}

body.home #page-container .main-content .et_pb_section_1 > .et_pb_row_1 {
    display: grid !important;
    grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1fr) !important;
    align-items: center !important;
    gap: clamp(34px, 5vw, 72px) !important;
    width: min(1120px, calc(100% - 40px)) !important;
    max-width: 1120px !important;
    padding: 0 !important;
}

body.home #page-container .main-content .et_pb_section_1 .et_pb_column_1 {
    padding: clamp(20px, 3vw, 34px);
    border-left: 3px solid #FFB300;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 24px 60px rgba(14, 61, 18, 0.08);
}

body.home #page-container .main-content .et_pb_section_1 h2 {
    max-width: 12ch;
    margin-bottom: 18px !important;
    color: #0E3D12 !important;
}

body.home #page-container .main-content .et_pb_section_1 p {
    max-width: 58ch !important;
    color: #3B3B3B !important;
    font-size: 1.08rem !important;
    line-height: 1.72 !important;
}

body.home #page-container .main-content .et_pb_section_1 .et_pb_image,
body.home #page-container .main-content .et_pb_section_1 .et_pb_image_wrap {
    width: 100%;
}

body.home #page-container .main-content .et_pb_section_1 .et_pb_image img {
    width: 100% !important;
    height: clamp(360px, 48vw, 560px) !important;
    object-fit: cover !important;
    object-position: center 36% !important;
    border-radius: 18px !important;
    box-shadow: 0 28px 70px rgba(14, 61, 18, 0.18) !important;
}

body.home #page-container .main-content .et_pb_section_2 {
    padding: clamp(64px, 7vw, 96px) 0 !important;
    background:
        linear-gradient(180deg, #F8FDF8 0%, #FFFFFF 100%) !important;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 24px;
    width: min(1080px, calc(100% - 40px)) !important;
    max-width: 1080px !important;
    margin-bottom: 28px !important;
    padding: clamp(26px, 4vw, 42px) !important;
    border-radius: 18px;
    background:
        linear-gradient(90deg, rgba(3, 26, 8, 0.76), rgba(14, 61, 18, 0.52)),
        url('/wp-content/uploads/2026/04/mariam-conteh-classroom-1024x683.jpg');
    background-size: cover;
    background-position: center 42%;
    box-shadow: 0 24px 60px rgba(14, 61, 18, 0.14);
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2 h2 {
    margin: 0 !important;
    color: #FFFFFF !important;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.45);
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_row_3 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
    width: min(1080px, calc(100% - 40px)) !important;
    max-width: 1080px !important;
    padding: 0 !important;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_row_3 > .et_pb_column {
    display: flex !important;
    flex-direction: column;
    width: auto !important;
    min-width: 0;
    min-height: 100%;
    padding: 0 !important;
    margin-right: 0 !important;
    background: #FFFFFF;
    border: 1px solid rgba(14, 61, 18, 0.10);
    border-radius: 16px;
    box-shadow: 0 18px 42px rgba(14, 61, 18, 0.10);
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb {
    flex: 1 1 auto;
    margin: 0 !important;
    padding: 30px 28px 18px !important;
    border-radius: 16px 16px 0 0 !important;
    box-shadow: none !important;
    text-align: left !important;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb .et_pb_blurb_container,
body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb .et_pb_blurb_description,
body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb .et_pb_blurb_description p {
    width: auto !important;
    max-width: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-align: left !important;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb .et_pb_blurb_content {
    max-width: none;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_main_blurb_image {
    margin-bottom: 18px !important;
    text-align: left;
}

body.home #page-container .main-content .et_pb_section_2 .et-pb-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: #0E3D12 !important;
    color: #FFCD00 !important;
    box-shadow: 0 12px 24px rgba(14, 61, 18, 0.18);
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb h4 {
    color: #0E3D12 !important;
    font-size: 1.25rem !important;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_blurb_description {
    color: #3D3D3D !important;
    line-height: 1.65;
}

body.home #page-container .main-content .et_pb_section_2 .et_pb_row_3 .et_pb_button_module_wrapper {
    margin-top: auto !important;
    padding: 0 28px 28px;
    text-align: left !important;
}

body.home #page-container .main-content .et_pb_section_3 {
    padding: clamp(64px, 7vw, 96px) 0 !important;
    background:
        radial-gradient(circle at 18% 10%, rgba(255, 205, 0, 0.12), transparent 30%),
        linear-gradient(180deg, #FFFFFF 0%, #F8FDF8 100%) !important;
}

body.home #page-container .main-content .et_pb_section_3 .et_pb_row_4,
body.home #page-container .main-content .et_pb_section_4 .et_pb_row_7 {
    width: min(1080px, calc(100% - 40px)) !important;
    max-width: 1080px !important;
    padding: 0 !important;
    margin-bottom: 28px !important;
}

body.home #page-container .main-content .et_pb_section_3 h2,
body.home #page-container .main-content .et_pb_section_4 h2 {
    color: #0E3D12 !important;
}

body.home #page-container .main-content .et_pb_section_3 .et_pb_row_5,
body.home #page-container .main-content .et_pb_section_3 .et_pb_row_6 {
    width: min(920px, calc(100% - 40px)) !important;
    max-width: 920px !important;
    margin: 0 auto 20px !important;
    padding: clamp(24px, 4vw, 34px) !important;
    border: 1px solid rgba(14, 61, 18, 0.08);
    border-radius: 16px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 48px rgba(14, 61, 18, 0.10) !important;
}

body.home #page-container .main-content .et_pb_section_3 .et_pb_row_5::before,
body.home #page-container .main-content .et_pb_section_3 .et_pb_row_6::before {
    content: "\201C";
    flex: 0 0 auto;
    color: rgba(255, 179, 0, 0.55);
    font-family: 'Amiri', serif;
    font-size: 5rem;
    line-height: 0.75;
}

body.home #page-container .main-content .et_pb_section_3 .et_pb_text p {
    color: #2E2E2E !important;
}

body.home #page-container .main-content .et_pb_section_3 .et_pb_text_3 p,
body.home #page-container .main-content .et_pb_section_3 .et_pb_text_5 p {
    color: #0E3D12 !important;
    text-transform: none !important;
    font-weight: 800 !important;
}

body.home #page-container .main-content .et_pb_section_4 {
    padding: clamp(64px, 7vw, 96px) 0 !important;
    background:
        linear-gradient(180deg, #F8FDF8 0%, #FFFFFF 100%) !important;
}

body.home #page-container .main-content .et_pb_section_4 h2.lnmc-events-stale-section::after {
    content: "" !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_row_8,
body.home #page-container .main-content .et_pb_section_4 .et_pb_row_9 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    width: min(1080px, calc(100% - 40px)) !important;
    max-width: 1080px !important;
    padding: 0 !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_row_8 {
    margin-bottom: 22px !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_row_8 > .et_pb_column,
body.home #page-container .main-content .et_pb_section_4 .et_pb_row_9 > .et_pb_column {
    min-height: 0 !important;
    padding: 18px !important;
    border: 1px solid rgba(14, 61, 18, 0.08);
    border-radius: 16px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 42px rgba(14, 61, 18, 0.10) !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_heading h3,
body.home #page-container .main-content .et_pb_section_4 h3 {
    color: #0E3D12 !important;
    font-size: 1.16rem !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_text {
    margin-bottom: 10px !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_text p {
    color: #454545 !important;
    font-size: 0.96rem !important;
    font-weight: 700;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_text p:only-child {
    display: inline-flex;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_text p:has(strong),
body.home #page-container .main-content .et_pb_section_4 .et_pb_text_7 p,
body.home #page-container .main-content .et_pb_section_4 .et_pb_text_9 p,
body.home #page-container .main-content .et_pb_section_4 .et_pb_text_11 p,
body.home #page-container .main-content .et_pb_section_4 .et_pb_text_13 p {
    padding: 5px 11px;
    border-radius: 999px;
    background: rgba(255, 179, 0, 0.16);
    color: #0E3D12 !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_image {
    width: 100%;
    margin: 8px 0 14px !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_image img {
    display: block !important;
    width: 100% !important;
    height: 190px !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    background-size: cover !important;
    background-position: center !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_row_9 .et_pb_column_16 .et_pb_image img {
    background-image: url('/wp-content/uploads/2026/04/economic-empowerment-program-1024x683.jpg') !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_row_9 .et_pb_column_17 .et_pb_image img {
    background-image: url('/wp-content/uploads/2026/04/abdul-kamara-community-683x1024.jpg') !important;
}

body.home #page-container .main-content .et_pb_section_4 .et_pb_column.lnmc-event-stale::after {
    top: 18px !important;
    right: 18px !important;
}

body.home #page-container .main-content .et_pb_section_5 {
    position: relative;
    isolation: isolate;
    padding: clamp(58px, 7vw, 84px) 0 !important;
    background:
        linear-gradient(90deg, rgba(3, 26, 8, 0.88), rgba(14, 61, 18, 0.74)),
        url('/wp-content/uploads/2026/04/mohammed-sesay-mosque-1024x683.jpg') !important;
    background-size: cover !important;
    background-position: center 42% !important;
}

body.home #page-container .main-content .et_pb_section_5 .et_pb_row_10 {
    display: none !important;
}

body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 28px;
    width: min(1080px, calc(100% - 40px)) !important;
    max-width: 1080px !important;
    padding: clamp(28px, 4vw, 42px) !important;
    border-left: 3px solid #FFB300;
    border-radius: 0 18px 18px 0;
    background: rgba(3, 26, 8, 0.48);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22);
}

body.home #page-container .main-content .et_pb_section_5 h2,
body.home #page-container .main-content .et_pb_section_5 h5 {
    color: #FFFFFF !important;
    text-align: left !important;
}

body.home #page-container .main-content .et_pb_section_5 h5 {
    color: #FFF8E1 !important;
}

body.home #page-container .main-content .et_pb_section_6 {
    padding: clamp(56px, 7vw, 82px) 0 !important;
    background: #F8FDF8 !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_row_12 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    justify-content: center;
    gap: 22px !important;
    width: min(760px, calc(100% - 40px)) !important;
    max-width: 760px !important;
    padding: 0 !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_column_23 {
    display: none !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_column_21,
body.home #page-container .main-content .et_pb_section_6 .et_pb_column_22 {
    width: auto !important;
    min-width: 0;
    min-height: 150px;
    padding: 28px !important;
    border: 1px solid rgba(14, 61, 18, 0.08);
    border-radius: 16px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 42px rgba(14, 61, 18, 0.10) !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_blurb {
    margin: 0 !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_module_header {
    color: #0E3D12 !important;
}

body.home #page-container .main-content .et_pb_section_6 .et_pb_blurb_description,
body.home #page-container .main-content .et_pb_section_6 .et_pb_blurb_description p,
body.home #page-container .main-content .et_pb_section_6 a {
    color: #2E2E2E !important;
    font-weight: 700;
}

@media (max-width: 980px) {
    body.home #page-container .main-content .et_pb_section_1 > .et_pb_row_1,
    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2,
    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_3,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11,
    body.home #page-container .main-content .et_pb_section_6 .et_pb_row_12 {
        grid-template-columns: 1fr !important;
    }

    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11,
    body.home #page-container .main-content .et_pb_section_5 h2,
    body.home #page-container .main-content .et_pb_section_5 h5 {
        text-align: center !important;
    }

    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2 .et_pb_button_module_wrapper,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_button_module_wrapper {
        text-align: center !important;
    }

    body.home #page-container .main-content .et_pb_section_4 .et_pb_row_8,
    body.home #page-container .main-content .et_pb_section_4 .et_pb_row_9 {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    body.home #page-container .main-content .et_pb_section_1,
    body.home #page-container .main-content .et_pb_section_2,
    body.home #page-container .main-content .et_pb_section_3,
    body.home #page-container .main-content .et_pb_section_4,
    body.home #page-container .main-content .et_pb_section_5,
    body.home #page-container .main-content .et_pb_section_6 {
        padding: 48px 0 !important;
    }

    body.home #page-container .main-content .et_pb_section_1 .et_pb_column_1,
    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11 {
        border-left: 0;
        border-top: 3px solid #FFB300;
        border-radius: 16px;
    }

    body.home #page-container .main-content .et_pb_section_1 h2 {
        max-width: none;
    }

    body.home #page-container .main-content .et_pb_section_1 .et_pb_image img {
        height: 360px !important;
    }

    body.home #page-container .main-content .et_pb_section_3 .et_pb_row_5,
    body.home #page-container .main-content .et_pb_section_3 .et_pb_row_6 {
        flex-direction: column !important;
        text-align: center !important;
    }

    body.home #page-container .main-content .et_pb_section_6 .et_pb_row_12 {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: 1fr !important;
        width: min(100% - 28px, 360px) !important;
    }

    body.home #page-container .main-content .et_pb_section_6 .et_pb_column_21,
    body.home #page-container .main-content .et_pb_section_6 .et_pb_column_22 {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.home #page-container .main-content .et_pb_section_6 a[href^="tel:"] {
        white-space: nowrap;
    }

    body.home #page-container .main-content .et_pb_section_3 .et_pb_row_5::before,
    body.home #page-container .main-content .et_pb_section_3 .et_pb_row_6::before {
        display: none;
    }

    body.home #page-container .main-content .et_pb_section_5 a.et_pb_button,
    body.home #page-container .main-content .et_pb_section_6 a.et_pb_button {
        width: 100%;
        max-width: 280px;
    }
}

/* ROUND 11 - Functional Motion
   Cinematic but useful motion, owned by the child theme. The JS layer adds
   .lnmc-motion-ready and .lnmc-motion-in; the legacy animation shim forces
   .lnmc-motion-in if anything is delayed so content never stays hidden. */
@media (prefers-reduced-motion: no-preference) {
    .lnmc-motion-ready {
        --lnmc-motion-delay: 0ms;
        opacity: 0;
        transform: translate3d(0, 44px, 0) scale(0.97);
        filter: blur(10px);
        transition:
            opacity 900ms cubic-bezier(0.22, 1, 0.36, 1) var(--lnmc-motion-delay),
            transform 1040ms cubic-bezier(0.22, 1, 0.36, 1) var(--lnmc-motion-delay),
            filter 900ms cubic-bezier(0.22, 1, 0.36, 1) var(--lnmc-motion-delay),
            box-shadow 260ms ease,
            border-color 260ms ease;
        will-change: opacity, transform, filter;
    }

    .lnmc-motion-ready.lnmc-motion-in {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
        filter: blur(0);
    }

    body.home .lnmc-motion-ready.lnmc-motion-depth,
    #main-content .lnmc-motion-ready.lnmc-motion-depth {
        transform: translate3d(0, 52px, 0) scale(0.965) rotateX(3deg);
        transform-origin: center bottom;
    }

    body.home .lnmc-motion-ready.lnmc-motion-depth.lnmc-motion-in,
    #main-content .lnmc-motion-ready.lnmc-motion-depth.lnmc-motion-in {
        transform: translate3d(0, 0, 0) scale(1) rotateX(0deg);
    }

    body.home #page-container .main-content .et_pb_section_5,
    body.page-id-42 #main-content .et_pb_section,
    body.page-id-50 #main-content .et_pb_section {
        animation: lnmc-round11-ambient-band 24s ease-in-out infinite alternate;
    }

    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11,
    body.page-id-42 #main-content .et_pb_promo,
    body.page-id-50 #main-content .et_pb_promo {
        position: relative;
        isolation: isolate;
        overflow: hidden;
    }

    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2::after,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11::after,
    body.page-id-42 #main-content .et_pb_promo::after,
    body.page-id-50 #main-content .et_pb_promo::after {
        content: "";
        position: absolute;
        inset: -40% -20%;
        z-index: -1;
        background: linear-gradient(110deg, transparent 0%, rgba(255, 205, 0, 0.16) 46%, transparent 62%);
        transform: translateX(-45%) rotate(8deg);
        animation: lnmc-round11-light-sweep 9s ease-in-out infinite;
        pointer-events: none;
    }

    body.home #page-container .main-content .lnmc-motion-image-pan img,
    #main-content .lnmc-motion-image-pan img {
        transform: scale(1.035);
        transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1), filter 320ms ease;
        will-change: transform;
    }

    body.home #page-container .main-content .lnmc-motion-image-pan.lnmc-motion-in img,
    #main-content .lnmc-motion-image-pan.lnmc-motion-in img {
        transform: scale(1);
    }

    body.home #page-container .main-content .lnmc-motion-depth:hover,
    body.home #page-container .main-content .lnmc-motion-depth:focus-within,
    #main-content .lnmc-dir .lnmc-card:hover,
    #main-content .lnmc-grid .lnmc-card:hover,
    #main-content .lnmc-member-hub:hover,
    #main-content .lnmc-pricing-table:hover {
        transform: translate3d(0, -8px, 0) scale(1.012);
        border-color: rgba(255, 179, 0, 0.42) !important;
        box-shadow: 0 26px 66px rgba(14, 61, 18, 0.16) !important;
    }

    body.home #page-container .main-content .lnmc-motion-depth:hover img,
    body.home #page-container .main-content .lnmc-motion-depth:focus-within img,
    #main-content .lnmc-card:hover img,
    #main-content .lnmc-pricing-table:hover img {
        transform: scale(1.045);
    }

    body #page-container a.et_pb_button,
    body #page-container .lnmc-pricing-button,
    body #page-container .lnmc-submit-button,
    body #page-container button {
        transition:
            transform 180ms ease,
            box-shadow 220ms ease,
            background-position 260ms ease,
            border-color 220ms ease;
    }

    body #page-container a.et_pb_button:hover,
    body #page-container a.et_pb_button:focus-visible,
    body #page-container .lnmc-pricing-button:hover,
    body #page-container .lnmc-pricing-button:focus-visible,
    body #page-container .lnmc-submit-button:hover,
    body #page-container .lnmc-submit-button:focus-visible {
        transform: translate3d(0, -2px, 0) scale(1.015);
        box-shadow: 0 16px 30px rgba(255, 179, 0, 0.24), 0 8px 22px rgba(14, 61, 18, 0.16) !important;
    }

    body #page-container a.et_pb_button:active,
    body #page-container .lnmc-pricing-button:active,
    body #page-container .lnmc-submit-button:active {
        transform: translate3d(0, 0, 0) scale(0.985);
    }
}

@keyframes lnmc-round11-ambient-band {
    from { background-position: center 40%; }
    to { background-position: center 52%; }
}

@keyframes lnmc-round11-light-sweep {
    0%, 22% { transform: translateX(-58%) rotate(8deg); opacity: 0; }
    42%, 70% { opacity: 1; }
    100% { transform: translateX(58%) rotate(8deg); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .lnmc-motion-ready,
    .lnmc-motion-ready.lnmc-motion-depth,
    .lnmc-motion-ready.lnmc-motion-in {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
        animation: none !important;
    }

    body.home #page-container .main-content .et_pb_section_5,
    body.page-id-42 #main-content .et_pb_section,
    body.page-id-50 #main-content .et_pb_section,
    body.home #page-container .main-content .et_pb_section_2 .et_pb_row_2::after,
    body.home #page-container .main-content .et_pb_section_5 .et_pb_row_11::after,
    body.page-id-42 #main-content .et_pb_promo::after,
    body.page-id-50 #main-content .et_pb_promo::after {
        animation: none !important;
    }
}

@media (max-width: 640px) and (prefers-reduced-motion: no-preference) {
    .lnmc-motion-ready {
        transform: translate3d(0, 18px, 0) scale(0.99);
        filter: blur(4px);
    }

    body.home #page-container .main-content .lnmc-motion-depth:hover,
    body.home #page-container .main-content .lnmc-motion-depth:focus-within,
    #main-content .lnmc-dir .lnmc-card:hover,
    #main-content .lnmc-grid .lnmc-card:hover,
    #main-content .lnmc-member-hub:hover,
    #main-content .lnmc-pricing-table:hover {
        transform: translate3d(0, -4px, 0) scale(1.006);
    }
}

@media (max-width: 300px) {
    body.home #page-container .main-content .et_pb_section_4 .et_pb_column.lnmc-event-stale::after {
        position: absolute !important;
        top: 18px !important;
        right: 12px !important;
        max-width: 78px;
        text-align: center;
        font-size: 0.66rem;
        line-height: 1.1;
    }

    body.home #page-container .main-content .et_pb_section_4 .et_pb_column.lnmc-event-stale h3 {
        max-width: calc(100% - 82px);
    }

    body.home #page-container .main-content .et_pb_section_6 a {
        font-size: 0.74rem !important;
        white-space: nowrap;
    }
}

/* ROUND 12 - late override for the homepage CTA band. Earlier homepage
   section styling is intentionally specific, so this final rule keeps the
   handover "no dark background" preference applied after those rules. */
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark {
    background: #F8FDF8 !important;
    background-image: none !important;
}
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark p,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark li,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark span,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark .et_pb_text_inner,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark .et_pb_blurb_description {
    color: var(--lnmc-neutral-900) !important;
}
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h1,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h2,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h3,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h4,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h5,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark h6,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark strong,
body.home #page-container #main-content .et_pb_section_5.lnmc-on-dark b {
    color: var(--lnmc-green-dark) !important;
}

/* ==========================================================================
   LNMC CUSTOM FOOTER UI & CONTRAST FIXES
   ========================================================================== */

/* --- Light Columns (1, 2, and 3: Quick Links, Chapters, Resources) --- */
body #page-container .et-l--footer .et_pb_column_1_tb_footer,
body #page-container .et-l--footer .et_pb_column_2_tb_footer,
body #page-container .et-l--footer .et_pb_column_3_tb_footer {
    background-color: rgba(0, 0, 0, 0.03) !important; /* Soft backdrop for columns */
    border-radius: var(--lnmc-radius-md, 14px) !important;
    padding: 24px !important;
}

/* Headings in Light Columns */
body #page-container .et-l--footer .et_pb_column_1_tb_footer h1,
body #page-container .et-l--footer .et_pb_column_1_tb_footer h2,
body #page-container .et-l--footer .et_pb_column_1_tb_footer h3,
body #page-container .et-l--footer .et_pb_column_1_tb_footer h4,
body #page-container .et-l--footer .et_pb_column_1_tb_footer h5,
body #page-container .et-l--footer .et_pb_column_1_tb_footer h6,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h1,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h2,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h3,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h4,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h5,
body #page-container .et-l--footer .et_pb_column_2_tb_footer h6,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h1,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h2,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h3,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h4,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h5,
body #page-container .et-l--footer .et_pb_column_3_tb_footer h6 {
    color: var(--lnmc-green-dark, #0E3D12) !important;
    font-weight: 700 !important;
}

/* Text & Links in Light Columns */
body #page-container .et-l--footer .et_pb_column_1_tb_footer p,
body #page-container .et-l--footer .et_pb_column_1_tb_footer li,
body #page-container .et-l--footer .et_pb_column_1_tb_footer span,
body #page-container .et-l--footer .et_pb_column_2_tb_footer p,
body #page-container .et-l--footer .et_pb_column_2_tb_footer li,
body #page-container .et-l--footer .et_pb_column_2_tb_footer span,
body #page-container .et-l--footer .et_pb_column_3_tb_footer p,
body #page-container .et-l--footer .et_pb_column_3_tb_footer li,
body #page-container .et-l--footer .et_pb_column_3_tb_footer span {
    color: var(--lnmc-neutral-900, #2E2E2E) !important;
}

body #page-container .et-l--footer .et_pb_column_1_tb_footer a,
body #page-container .et-l--footer .et_pb_column_2_tb_footer a,
body #page-container .et-l--footer .et_pb_column_3_tb_footer a {
    color: var(--lnmc-green, #1B5E20) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color 0.25s ease;
}

body #page-container .et-l--footer .et_pb_column_1_tb_footer a:hover,
body #page-container .et-l--footer .et_pb_column_2_tb_footer a:hover,
body #page-container .et-l--footer .et_pb_column_3_tb_footer a:hover {
    color: var(--lnmc-gold-dark, #FF8F00) !important;
    text-decoration: underline !important;
}

/* --- Dark Column (4: Stay Connected / Newsletter) --- */
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer {
    background-color: var(--lnmc-green-dark, #0E3D12) !important;
    border-radius: var(--lnmc-radius-lg, 20px) !important;
    padding: 36px 32px !important;
    box-shadow: var(--lnmc-shadow-soft);
}

/* Heading in Dark Column (Stay Connected) */
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h1,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h2,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h3,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h4,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h5,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer h6 {
    color: #ffffff !important;
    font-weight: 700 !important;
}

/* Text, Labels, and Links in Dark Column */
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer p,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer li,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer span,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer label {
    color: var(--lnmc-cream, #F5F5DC) !important;
}

body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer a {
    color: var(--lnmc-gold, #FFB300) !important;
    text-decoration: none !important;
    transition: color 0.25s ease;
}

body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer a:hover {
    color: #ffffff !important;
    text-decoration: underline !important;
}

/* Newsletter Input field correction */
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer input.input,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer .et_pb_signup_fields input {
    color: var(--lnmc-neutral-900, #2E2E2E) !important;
    background-color: rgba(255, 255, 255, 0.95) !important;
    border: 1px solid var(--lnmc-neutral-200, #E8E8E0) !important;
    border-radius: var(--lnmc-radius-sm, 10px) !important;
    padding: 12px 16px !important;
    font-weight: 500 !important;
}

body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer input::placeholder,
body #page-container #main-content .et-l--footer .et_pb_column_4_tb_footer .et_pb_signup_fields input::placeholder {
    color: rgba(0, 0, 0, 0.4) !important;
}

