{"id":5511,"date":"2026-01-30T03:06:00","date_gmt":"2026-01-30T03:06:00","guid":{"rendered":"https:\/\/loveworldnorthampton.org\/stg\/february-2026-global-communion-service-with-pastor-chris\/"},"modified":"2026-08-18T00:50:38","modified_gmt":"2026-08-18T00:50:38","slug":"february-2026-global-communion-service-with-pastor-chris","status":"publish","type":"post","link":"https:\/\/loveworldnorthampton.org\/stg\/february-2026-global-communion-service-with-pastor-chris\/","title":{"rendered":"February 2026 Global Communion Service with Pastor Chris"},"content":{"rendered":"\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    \/* Font families (matches production site loveworldnorthampton.org) *\/\n    --lwn-font-body: Verdana, Geneva, sans-serif;           \/* body text, menu, logo *\/\n    --lwn-font-heading: 'Open Sans', arial, sans-serif;    \/* headings, post titles, footer, meta *\/\n    --lwn-font-hero: Poppins, sans-serif;                  \/* hero\/slider text only *\/\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item,\n.kadence-header-menu .menu-item,\n.header-navigation .menu-item {\n    margin: 0 2px !important;\n}\n\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 12px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n    position: relative;\n    z-index: 2;\n    white-space: nowrap !important;\n}\n\n\/* Center the desktop menu so the last item isn't cut off at the right edge.\n   Kadence's default layout has the menu right-aligned in the header section.\n   We use flexbox to center the menu container within its section. *\/\n@media (min-width: 1025px) {\n    \/* Change the header row from grid to flexbox so justify-content works *\/\n    .site-main-header-inner-wrap.site-header-row-has-sides.site-header-row-no-center {\n        display: flex !important;\n        justify-content: space-between !important;\n        align-items: center !important;\n    }\n    \/* The left section (logo) should only take as much space as it needs *\/\n    .site-header-main-section-left.site-header-section.site-header-section-left {\n        flex: 0 0 auto !important;\n    }\n    \/* The right section (containing the menu) takes all remaining space\n       and centers its content *\/\n    .site-header-main-section-right.site-header-section.site-header-section-right {\n        flex: 1 1 auto !important;\n        justify-content: center !important;\n        display: flex !important;\n        padding-right: 20px !important;\n    }\n    \/* The navigation item inside the right section should be centered *\/\n    .site-header-item-main-navigation.header-navigation-layout-stretch-false {\n        width: auto !important;\n        max-width: 100% !important;\n        margin: 0 auto !important;\n    }\n    \/* Center the actual menu list within the navigation *\/\n    .main-navigation .primary-menu-container,\n    .header-navigation .header-menu-container {\n        display: flex !important;\n        justify-content: center !important;\n    }\n    .main-navigation .primary-menu-container > ul,\n    .header-navigation .header-menu-container > ul {\n        margin: 0 auto !important;\n        flex-wrap: nowrap !important;\n    }\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n    padding: 0.6em 0.5em !important;\n    border-radius: 0 !important;\n    box-shadow: none !important;\n    border: none !important;\n    outline: none !important;\n    position: relative !important;\n}\n.main-header-menu .menu-item.current-menu-item a::after,\n.kadence-header-menu .menu-item.current-menu-item a::after,\n.header-navigation .menu-item.current-menu-item a::after,\n.main-header-menu .menu-item.current_page_item a::after {\n    content: \"\" !important;\n    position: absolute !important;\n    left: 0.5em !important;\n    right: 0.5em !important;\n    bottom: 0.2em !important;\n    height: 2px !important;\n    background: #4DB2EC !important;\n    border-radius: 1px !important;\n    display: block !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer \u2014 charcoal overlay on LoveWorld background image === *\/\n.lwn-footer {\n    background: #222222 !important;\n    background-image: url('https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2022\/08\/over-7-billion-people-participate-in-healing-streams-live-healing-services-with-pastor-chris_62ea8083b922a.jpeg') !important;\n    background-size: cover !important;\n    background-position: center !important;\n    background-repeat: no-repeat !important;\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n\/* Charcoal black overlay with low opacity \u2014 the background image shows through *\/\n.lwn-footer::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(34, 34, 34, 0.88);\n    z-index: 0;\n}\n\n\/* Ensure footer content sits above the overlay *\/\n.lwn-footer-inner,\n.lwn-footer-bottom {\n    position: relative;\n    z-index: 1;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 4px;\n    background: #4DB2EC;\n    z-index: 2;\n}\n\n.lwn-footer-inner {\n    max-width: 1200px;\n    margin: 0 auto;\n    padding: 0 40px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1fr;\n    gap: 40px;\n}\n\n.lwn-footer-col {\n    display: flex;\n    flex-direction: column;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: #4DB2EC;\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 12px;\n    font-size: 16px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n.lwn-footer-title {\n    color: #4DB2EC !important;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 16px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 8px;\n}\n\n.lwn-footer a {\n    color: #E0E0E0;\n    text-decoration: none;\n    transition: color 0.2s, padding-left 0.2s;\n    display: block;\n    padding: 5px 0;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: #4DB2EC;\n    padding-left: 4px;\n}\n\n.lwn-footer p {\n    color: #E0E0E0;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 14px;\n    line-height: 1.7;\n    margin: 0;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.5);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 13px;\n    color: #B0B0B0;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: #4DB2EC;\n    color: #FFFFFF;\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n    text-decoration: none;\n}\n\n\/* Style the SVG icons inside social links *\/\n.lwn-footer-social a svg {\n    width: 20px;\n    height: 20px;\n    fill: #FFFFFF;\n    display: block;\n}\n\n\/* Brand-colored hover states for each social icon *\/\n.lwn-footer-social a[href*=\"facebook\"]:hover {\n    background: #1877F2;  \/* Facebook blue *\/\n}\n.lwn-footer-social a[href*=\"youtube\"]:hover {\n    background: #FF0000;  \/* YouTube red *\/\n}\n.lwn-footer-social a[href*=\"instagram\"]:hover {\n    background: #E4405F;  \/* Instagram pink\/red *\/\n}\n.lwn-footer-social a[href*=\"feed=rss\"]:hover,\n.lwn-footer-social a[href*=\"rss\"]:hover {\n    background: #FFA500;  \/* RSS orange *\/\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 32px;\n        padding: 0 24px;\n    }\n    .lwn-footer-col {\n        text-align: center;\n        align-items: center;\n    }\n    .lwn-footer-col img {\n        margin: 0 auto 16px auto !important;\n    }\n    .lwn-footer-social {\n        justify-content: center;\n    }\n    .lwn-footer a {\n        text-align: center;\n    }\n    .lwn-footer-bottom {\n        padding: 16px 20px;\n        font-size: 12px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n\/* Force the slider AND its parent containers to fill the full viewport width.\n   The slider's parent div has max-width: 1200px which constrains the slider\n   and creates dark gaps on the sides. We override this to make the slider\n   truly full-viewport-width. *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100vw !important;\n    width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: 0 !important;\n}\n\n\/* Also force the slider's immediate parent (the 1200px container) to be full width *\/\n.home .rs-module-wrap > div,\n.home .rs-fullwidth-wrap > div,\n.home rs-module-wrap + div {\n    max-width: 100% !important;\n    width: 100% !important;\n}\n\n\/* Force the parent div that contains the slider to break out of the 1200px container *\/\n.home .entry-content > div:has(.rs-module-wrap),\n.home .entry-content > div:has(.rs-module),\n.home .entry-content > div:has(#rev_slider) {\n    max-width: 100vw !important;\n    width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: 0 !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n\/* === FIX: Print & Publishing quote form labels \u2014 white text on dark background === *\/\n\/* The quote form section has a charcoal background (#222222) but the Fluent Form\n   labels default to dark text (#212121), making them nearly invisible.\n   Force all form labels and field text to white\/light colors. *\/\n#quote-form-section label,\n#quote-form-section .ff-el-form-label,\n#quote-form-section .ff-el-form-check-label {\n    color: #FFFFFF !important;\n}\n\n#quote-form-section .ff-el-group .ff-el-form-control,\n#quote-form-section input,\n#quote-form-section select,\n#quote-form-section textarea {\n    color: #222222 !important;\n    background: #FFFFFF !important;\n}\n\n#quote-form-section .ff-el-input--content input::placeholder,\n#quote-form-section .ff-el-input--content textarea::placeholder {\n    color: #757575 !important;\n}\n\n\/* Also style any heading\/paragraph in the quote section that might be dark *\/\n#quote-form-section h1,\n#quote-form-section h2,\n#quote-form-section h3,\n#quote-form-section h4 {\n    color: #FFFFFF !important;\n}\n\n#quote-form-section p {\n    color: #E0E0E0 !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Fix: Make Slider Revolution full viewport width (remove dark side gaps)\n\/\/ The slider's parent div has max-width: 1200px which constrains the slider.\n\/\/ We force the slider and its parent containers to be 100vw (full viewport width).\nfunction fixSliderWidth() {\n    var slider = document.querySelector('#rev_slider_8_1_wrapper, .rs-module-wrap, rs-module-wrap');\n    if (!slider) return;\n    \n    \/\/ Force the slider itself to be full width\n    slider.style.maxWidth = '100vw';\n    slider.style.width = '100vw';\n    slider.style.marginLeft = 'calc(-50vw + 50%)';\n    slider.style.marginRight = '0';\n    \n    \/\/ Walk up the parent chain and force all ancestors up to .entry-content to be full width\n    var el = slider.parentElement;\n    var safety = 0;\n    while (el && safety < 5) {\n        if (el.classList &#038;&#038; (el.classList.contains('entry-content') || \n            el.classList.contains('entry-content-wrap') ||\n            el.tagName === 'ARTICLE')) {\n            break;\n        }\n        \/\/ Force this ancestor to be full viewport width\n        el.style.maxWidth = '100vw';\n        el.style.width = '100vw';\n        el.style.marginLeft = 'calc(-50vw + 50%)';\n        el.style.marginRight = '0';\n        el.style.paddingLeft = '0';\n        el.style.paddingRight = '0';\n        el = el.parentElement;\n        safety++;\n    }\n}\n\n\/\/ Run on DOMContentLoaded and after load (Slider Revolution initializes late)\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', fixSliderWidth);\n} else {\n    fixSliderWidth();\n}\nwindow.addEventListener('load', function() {\n    fixSliderWidth();\n    setTimeout(fixSliderWidth, 500);\n    setTimeout(fixSliderWidth, 1500);\n    setTimeout(fixSliderWidth, 3000);\n});\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related &#038;&#038; related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    \/* Font families (matches production site loveworldnorthampton.org) *\/\n    --lwn-font-body: Verdana, Geneva, sans-serif;           \/* body text, menu, logo *\/\n    --lwn-font-heading: 'Open Sans', arial, sans-serif;    \/* headings, post titles, footer, meta *\/\n    --lwn-font-hero: Poppins, sans-serif;                  \/* hero\/slider text only *\/\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item,\n.kadence-header-menu .menu-item,\n.header-navigation .menu-item {\n    margin: 0 2px !important;\n}\n\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 12px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n    position: relative;\n    z-index: 2;\n    white-space: nowrap !important;\n}\n\n\/* Center the desktop menu so the last item isn't cut off at the right edge.\n   Kadence's default layout has the menu right-aligned in the header section.\n   We use flexbox to center the menu container within its section. *\/\n@media (min-width: 1025px) {\n    \/* Change the header row from grid to flexbox so justify-content works *\/\n    .site-main-header-inner-wrap.site-header-row-has-sides.site-header-row-no-center {\n        display: flex !important;\n        justify-content: space-between !important;\n        align-items: center !important;\n    }\n    \/* The left section (logo) should only take as much space as it needs *\/\n    .site-header-main-section-left.site-header-section.site-header-section-left {\n        flex: 0 0 auto !important;\n    }\n    \/* The right section (containing the menu) takes all remaining space\n       and centers its content *\/\n    .site-header-main-section-right.site-header-section.site-header-section-right {\n        flex: 1 1 auto !important;\n        justify-content: center !important;\n        display: flex !important;\n        padding-right: 20px !important;\n    }\n    \/* The navigation item inside the right section should be centered *\/\n    .site-header-item-main-navigation.header-navigation-layout-stretch-false {\n        width: auto !important;\n        max-width: 100% !important;\n        margin: 0 auto !important;\n    }\n    \/* Center the actual menu list within the navigation *\/\n    .main-navigation .primary-menu-container,\n    .header-navigation .header-menu-container {\n        display: flex !important;\n        justify-content: center !important;\n    }\n    .main-navigation .primary-menu-container > ul,\n    .header-navigation .header-menu-container > ul {\n        margin: 0 auto !important;\n        flex-wrap: nowrap !important;\n    }\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer \u2014 charcoal overlay on LoveWorld background image === *\/\n.lwn-footer {\n    background: #222222 !important;\n    background-image: url('https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2022\/08\/over-7-billion-people-participate-in-healing-streams-live-healing-services-with-pastor-chris_62ea8083b922a.jpeg') !important;\n    background-size: cover !important;\n    background-position: center !important;\n    background-repeat: no-repeat !important;\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n\/* Charcoal black overlay with low opacity \u2014 the background image shows through *\/\n.lwn-footer::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(34, 34, 34, 0.88);\n    z-index: 0;\n}\n\n\/* Ensure footer content sits above the overlay *\/\n.lwn-footer-inner,\n.lwn-footer-bottom {\n    position: relative;\n    z-index: 1;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 4px;\n    background: #4DB2EC;\n    z-index: 2;\n}\n\n.lwn-footer-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;\n    gap: 40px;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: var(--lwn-gold);\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 16px;\n    font-size: 18px;\n}\n\n.lwn-footer a {\n    color: var(--lwn-cream);\n    text-decoration: none;\n    transition: color 0.2s;\n    display: block;\n    padding: 4px 0;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: var(--lwn-gold);\n}\n\n.lwn-footer p {\n    color: var(--lwn-cream);\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.4);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-size: 13px;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: #4DB2EC;\n    color: #FFFFFF;\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n    text-decoration: none;\n}\n\n\/* Style the SVG icons inside social links *\/\n.lwn-footer-social a svg {\n    width: 20px;\n    height: 20px;\n    fill: #FFFFFF;\n    display: block;\n}\n\n\/* Brand-colored hover states for each social icon *\/\n.lwn-footer-social a[href*=\"facebook\"]:hover {\n    background: #1877F2;  \/* Facebook blue *\/\n}\n.lwn-footer-social a[href*=\"youtube\"]:hover {\n    background: #FF0000;  \/* YouTube red *\/\n}\n.lwn-footer-social a[href*=\"instagram\"]:hover {\n    background: #E4405F;  \/* Instagram pink\/red *\/\n}\n.lwn-footer-social a[href*=\"feed=rss\"]:hover,\n.lwn-footer-social a[href*=\"rss\"]:hover {\n    background: #FFA500;  \/* RSS orange *\/\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    margin: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related && related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    \/* Font families (matches production site loveworldnorthampton.org) *\/\n    --lwn-font-body: Verdana, Geneva, sans-serif;           \/* body text, menu, logo *\/\n    --lwn-font-heading: 'Open Sans', arial, sans-serif;    \/* headings, post titles, footer, meta *\/\n    --lwn-font-hero: Poppins, sans-serif;                  \/* hero\/slider text only *\/\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item,\n.kadence-header-menu .menu-item,\n.header-navigation .menu-item {\n    margin: 0 2px !important;\n}\n\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 12px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n    position: relative;\n    z-index: 2;\n    white-space: nowrap !important;\n}\n\n\/* Center the desktop menu so the last item isn't cut off at the right edge.\n   Kadence's default layout has the menu right-aligned in the header section.\n   We use flexbox to center the menu container within its section. *\/\n@media (min-width: 1025px) {\n    \/* Change the header row from grid to flexbox so justify-content works *\/\n    .site-main-header-inner-wrap.site-header-row-has-sides.site-header-row-no-center {\n        display: flex !important;\n        justify-content: space-between !important;\n        align-items: center !important;\n    }\n    \/* The left section (logo) should only take as much space as it needs *\/\n    .site-header-main-section-left.site-header-section.site-header-section-left {\n        flex: 0 0 auto !important;\n    }\n    \/* The right section (containing the menu) takes all remaining space\n       and centers its content *\/\n    .site-header-main-section-right.site-header-section.site-header-section-right {\n        flex: 1 1 auto !important;\n        justify-content: center !important;\n        display: flex !important;\n        padding-right: 20px !important;\n    }\n    \/* The navigation item inside the right section should be centered *\/\n    .site-header-item-main-navigation.header-navigation-layout-stretch-false {\n        width: auto !important;\n        max-width: 100% !important;\n        margin: 0 auto !important;\n    }\n    \/* Center the actual menu list within the navigation *\/\n    .main-navigation .primary-menu-container,\n    .header-navigation .header-menu-container {\n        display: flex !important;\n        justify-content: center !important;\n    }\n    .main-navigation .primary-menu-container > ul,\n    .header-navigation .header-menu-container > ul {\n        margin: 0 auto !important;\n        flex-wrap: nowrap !important;\n    }\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer \u2014 charcoal overlay on LoveWorld background image === *\/\n.lwn-footer {\n    background: #222222 !important;\n    background-image: url('https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2022\/08\/over-7-billion-people-participate-in-healing-streams-live-healing-services-with-pastor-chris_62ea8083b922a.jpeg') !important;\n    background-size: cover !important;\n    background-position: center !important;\n    background-repeat: no-repeat !important;\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n\/* Charcoal black overlay with low opacity \u2014 the background image shows through *\/\n.lwn-footer::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(34, 34, 34, 0.88);\n    z-index: 0;\n}\n\n\/* Ensure footer content sits above the overlay *\/\n.lwn-footer-inner,\n.lwn-footer-bottom {\n    position: relative;\n    z-index: 1;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 4px;\n    background: #4DB2EC;\n    z-index: 2;\n}\n\n.lwn-footer-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;\n    gap: 40px;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: var(--lwn-gold);\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 16px;\n    font-size: 18px;\n}\n\n.lwn-footer a {\n    color: var(--lwn-cream);\n    text-decoration: none;\n    transition: color 0.2s;\n    display: block;\n    padding: 4px 0;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: var(--lwn-gold);\n}\n\n.lwn-footer p {\n    color: var(--lwn-cream);\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.4);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-size: 13px;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: #4DB2EC;\n    color: #FFFFFF;\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n    text-decoration: none;\n}\n\n\/* Style the SVG icons inside social links *\/\n.lwn-footer-social a svg {\n    width: 20px;\n    height: 20px;\n    fill: #FFFFFF;\n    display: block;\n}\n\n\/* Brand-colored hover states for each social icon *\/\n.lwn-footer-social a[href*=\"facebook\"]:hover {\n    background: #1877F2;  \/* Facebook blue *\/\n}\n.lwn-footer-social a[href*=\"youtube\"]:hover {\n    background: #FF0000;  \/* YouTube red *\/\n}\n.lwn-footer-social a[href*=\"instagram\"]:hover {\n    background: #E4405F;  \/* Instagram pink\/red *\/\n}\n.lwn-footer-social a[href*=\"feed=rss\"]:hover,\n.lwn-footer-social a[href*=\"rss\"]:hover {\n    background: #FFA500;  \/* RSS orange *\/\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    margin: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related && related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    \/* Font families (matches production site loveworldnorthampton.org) *\/\n    --lwn-font-body: Verdana, Geneva, sans-serif;           \/* body text, menu, logo *\/\n    --lwn-font-heading: 'Open Sans', arial, sans-serif;    \/* headings, post titles, footer, meta *\/\n    --lwn-font-hero: Poppins, sans-serif;                  \/* hero\/slider text only *\/\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item,\n.kadence-header-menu .menu-item,\n.header-navigation .menu-item {\n    margin: 0 2px !important;\n}\n\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 12px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n    position: relative;\n    z-index: 2;\n    white-space: nowrap !important;\n}\n\n\/* Center the desktop menu so the last item isn't cut off at the right edge.\n   Kadence's default layout has the menu right-aligned in the header section.\n   We use flexbox to center the menu container within its section. *\/\n@media (min-width: 1025px) {\n    \/* Change the header row from grid to flexbox so justify-content works *\/\n    .site-main-header-inner-wrap.site-header-row-has-sides.site-header-row-no-center {\n        display: flex !important;\n        justify-content: space-between !important;\n        align-items: center !important;\n    }\n    \/* The left section (logo) should only take as much space as it needs *\/\n    .site-header-main-section-left.site-header-section.site-header-section-left {\n        flex: 0 0 auto !important;\n    }\n    \/* The right section (containing the menu) takes all remaining space\n       and centers its content *\/\n    .site-header-main-section-right.site-header-section.site-header-section-right {\n        flex: 1 1 auto !important;\n        justify-content: center !important;\n        display: flex !important;\n        padding-right: 20px !important;\n    }\n    \/* The navigation item inside the right section should be centered *\/\n    .site-header-item-main-navigation.header-navigation-layout-stretch-false {\n        width: auto !important;\n        max-width: 100% !important;\n        margin: 0 auto !important;\n    }\n    \/* Center the actual menu list within the navigation *\/\n    .main-navigation .primary-menu-container,\n    .header-navigation .header-menu-container {\n        display: flex !important;\n        justify-content: center !important;\n    }\n    .main-navigation .primary-menu-container > ul,\n    .header-navigation .header-menu-container > ul {\n        margin: 0 auto !important;\n        flex-wrap: nowrap !important;\n    }\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer \u2014 charcoal overlay on LoveWorld background image === *\/\n.lwn-footer {\n    background: #222222;\n    background-image: url('https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2022\/08\/over-7-billion-people-participate-in-healing-streams-live-healing-services-with-pastor-chris_62ea8083b922a.jpeg');\n    background-size: cover;\n    background-position: center;\n    background-repeat: no-repeat;\n    background-attachment: scroll;\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n\/* Charcoal black overlay with low opacity \u2014 the background image shows through *\/\n.lwn-footer::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(34, 34, 34, 0.88);\n    z-index: 0;\n}\n\n\/* Ensure footer content sits above the overlay *\/\n.lwn-footer-inner,\n.lwn-footer-bottom {\n    position: relative;\n    z-index: 1;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 4px;\n    background: #4DB2EC;\n    z-index: 2;\n}\n\n.lwn-footer-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;\n    gap: 40px;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: var(--lwn-gold);\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 16px;\n    font-size: 18px;\n}\n\n.lwn-footer a {\n    color: var(--lwn-cream);\n    text-decoration: none;\n    transition: color 0.2s;\n    display: block;\n    padding: 4px 0;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: var(--lwn-gold);\n}\n\n.lwn-footer p {\n    color: var(--lwn-cream);\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.4);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-size: 13px;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: #4DB2EC;\n    color: #FFFFFF;\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n    text-decoration: none;\n}\n\n\/* Style the SVG icons inside social links *\/\n.lwn-footer-social a svg {\n    width: 20px;\n    height: 20px;\n    fill: #FFFFFF;\n    display: block;\n}\n\n\/* Brand-colored hover states for each social icon *\/\n.lwn-footer-social a[href*=\"facebook\"]:hover {\n    background: #1877F2;  \/* Facebook blue *\/\n}\n.lwn-footer-social a[href*=\"youtube\"]:hover {\n    background: #FF0000;  \/* YouTube red *\/\n}\n.lwn-footer-social a[href*=\"instagram\"]:hover {\n    background: #E4405F;  \/* Instagram pink\/red *\/\n}\n.lwn-footer-social a[href*=\"feed=rss\"]:hover,\n.lwn-footer-social a[href*=\"rss\"]:hover {\n    background: #FFA500;  \/* RSS orange *\/\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    margin: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related && related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    \/* Font families (matches production site loveworldnorthampton.org) *\/\n    --lwn-font-body: Verdana, Geneva, sans-serif;           \/* body text, menu, logo *\/\n    --lwn-font-heading: 'Open Sans', arial, sans-serif;    \/* headings, post titles, footer, meta *\/\n    --lwn-font-hero: Poppins, sans-serif;                  \/* hero\/slider text only *\/\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item,\n.kadence-header-menu .menu-item,\n.header-navigation .menu-item {\n    margin: 0 2px !important;\n}\n\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 12px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 13px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n    position: relative;\n    z-index: 2;\n    white-space: nowrap !important;\n}\n\n\/* Center the desktop menu so the last item isn't cut off at the right edge.\n   Kadence's default layout has the menu right-aligned in the header section.\n   We use flexbox to center the menu container within its section. *\/\n@media (min-width: 1025px) {\n    \/* Change the header row from grid to flexbox so justify-content works *\/\n    .site-main-header-inner-wrap.site-header-row-has-sides.site-header-row-no-center {\n        display: flex !important;\n        justify-content: space-between !important;\n        align-items: center !important;\n    }\n    \/* The left section (logo) should only take as much space as it needs *\/\n    .site-header-main-section-left.site-header-section.site-header-section-left {\n        flex: 0 0 auto !important;\n    }\n    \/* The right section (containing the menu) takes all remaining space\n       and centers its content *\/\n    .site-header-main-section-right.site-header-section.site-header-section-right {\n        flex: 1 1 auto !important;\n        justify-content: center !important;\n        display: flex !important;\n        padding-right: 20px !important;\n    }\n    \/* The navigation item inside the right section should be centered *\/\n    .site-header-item-main-navigation.header-navigation-layout-stretch-false {\n        width: auto !important;\n        max-width: 100% !important;\n        margin: 0 auto !important;\n    }\n    \/* Center the actual menu list within the navigation *\/\n    .main-navigation .primary-menu-container,\n    .header-navigation .header-menu-container {\n        display: flex !important;\n        justify-content: center !important;\n    }\n    .main-navigation .primary-menu-container > ul,\n    .header-navigation .header-menu-container > ul {\n        margin: 0 auto !important;\n        flex-wrap: nowrap !important;\n    }\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer (if not injected via Kadence) === *\/\n.lwn-footer {\n    background: var(--lwn-navy);\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 6px;\n    background: var(--lwn-gold-gradient);\n}\n\n.lwn-footer-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;\n    gap: 40px;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: var(--lwn-gold);\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 16px;\n    font-size: 18px;\n}\n\n.lwn-footer a {\n    color: var(--lwn-cream);\n    text-decoration: none;\n    transition: color 0.2s;\n    display: block;\n    padding: 4px 0;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: var(--lwn-gold);\n}\n\n.lwn-footer p {\n    color: var(--lwn-cream);\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-size: 13px;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: #4DB2EC;\n    color: #FFFFFF;\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n    text-decoration: none;\n}\n\n\/* Style the SVG icons inside social links *\/\n.lwn-footer-social a svg {\n    width: 20px;\n    height: 20px;\n    fill: #FFFFFF;\n    display: block;\n}\n\n\/* Brand-colored hover states for each social icon *\/\n.lwn-footer-social a[href*=\"facebook\"]:hover {\n    background: #1877F2;  \/* Facebook blue *\/\n}\n.lwn-footer-social a[href*=\"youtube\"]:hover {\n    background: #FF0000;  \/* YouTube red *\/\n}\n.lwn-footer-social a[href*=\"instagram\"]:hover {\n    background: #E4405F;  \/* Instagram pink\/red *\/\n}\n.lwn-footer-social a[href*=\"feed=rss\"]:hover,\n.lwn-footer-social a[href*=\"rss\"]:hover {\n    background: #FFA500;  \/* RSS orange *\/\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    margin: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related && related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n\n<style>\n\n\/* === LoveWorld Northampton \u2014 Charcoal & Sky Blue Theme === *\/\n\/* Matches production site loveworldnorthampton.org color scheme *\/\n\n\/* Hide site title text GLOBALLY \u2014 keep only logo image in navbar *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title,\n.site-header .site-branding .site-title-text,\n.site-header .site-title-link .site-title-text {\n    display: none !important;\n    position: absolute !important;\n    width: 1px !important;\n    height: 1px !important;\n    overflow: hidden !important;\n    clip: rect(1px, 1px, 1px, 1px) !important;\n}\n\n\/* === Color Variables \u2014 Charcoal & Sky Blue (matches production site) === *\/\n:root {\n    \/* Primary palette *\/\n    --lwn-charcoal: #222222;        \/* navbar, footer, buttons, post category badges *\/\n    --lwn-charcoal-light: #2D3032;  \/* hover states, borders on dark *\/\n    --lwn-skyblue: #4DB2EC;         \/* links, accents, CTA, footer headings *\/\n    --lwn-skyblue-dark: #02A9D3;    \/* link hover, active states *\/\n    --lwn-skyblue-light: #E6F4FB;   \/* subtle section backgrounds, focus glow *\/\n    --lwn-white: #FFFFFF;\n    --lwn-cream: #F5F5F5;           \/* subtle section backgrounds *\/\n    --lwn-surface: #FFFFFF;\n    --lwn-text: #222222;            \/* body text = charcoal *\/\n    --lwn-text-muted: #757575;      \/* meta text, captions *\/\n    --lwn-skyblue-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-skyblue-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n    \/* Legacy aliases (for backward compatibility with existing rules) *\/\n    --lwn-navy: #222222;            \/* was purple, now charcoal *\/\n    --lwn-navy-light: #2D3032;      \/* was light purple, now light charcoal *\/\n    --lwn-gold: #4DB2EC;            \/* was gold, now sky blue *\/\n    --lwn-gold-soft: #E6F4FB;       \/* was soft gold, now light sky blue *\/\n    --lwn-orange: #02A9D3;          \/* was amber orange, now dark sky blue *\/\n    --lwn-gold-gradient: linear-gradient(135deg, #4DB2EC 0%, #02A9D3 100%);\n    --lwn-gold-gradient-soft: linear-gradient(135deg, #E6F4FB 0%, #FFFFFF 100%);\n}\n\n\/* === Navbar Styling \u2014 charcoal black (matches production) === *\/\n.site-header {\n    background: #222222 !important;\n    position: relative;\n    margin-bottom: 0 !important;\n    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n}\n\n\/* Production site has a flat navbar \u2014 remove the wavy gradient *\/\n.site-header::after {\n    display: none !important;\n}\n\n\/* Navbar menu items \u2014 interactive *\/\n.main-header-menu .menu-item a,\n.kadence-header-menu .menu-item a,\n.header-navigation .menu-item a {\n    color: var(--lwn-white) !important;\n    padding: 10px 18px !important;\n    border-radius: 6px;\n    transition: all 0.3s ease !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 15px !important;\n    position: relative;\n    z-index: 2;\n}\n\n\/* Hover state \u2014 sky blue background *\/\n.main-header-menu .menu-item a:hover,\n.kadence-header-menu .menu-item a:hover,\n.header-navigation .menu-item a:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(77, 178, 236, 0.3);\n}\n\n\/* Active\/current page state \u2014 white bg + charcoal text (matches production) *\/\n.main-header-menu .menu-item.current-menu-item a,\n.kadence-header-menu .menu-item.current-menu-item a,\n.header-navigation .menu-item.current-menu-item a,\n.main-header-menu .menu-item.current_page_item a {\n    background: transparent !important;\n    color: #4DB2EC !important;\n}\n\n\/* Click effect *\/\n.main-header-menu .menu-item a:active,\n.kadence-header-menu .menu-item a:active,\n.header-navigation .menu-item a:active {\n    transform: translateY(0);\n    box-shadow: 0 2px 6px rgba(77, 178, 236, 0.4);\n}\n\n\/* Mobile menu toggle *\/\n.menu-toggle, .kadence-menu-toggle {\n    color: #FFFFFF !important;\n    background: transparent;\n    border: 2px solid #4DB2EC;\n    border-radius: 6px;\n}\n\n\/* === MOBILE NAVIGATION: Force desktop nav hidden + hamburger visible on mobile === *\/\n\/* Kadence's responsive CSS should handle this, but our aggressive header styling\n   can interfere. These rules ensure the desktop nav is hidden and the hamburger\n   is visible on screens \u2264 1024px. *\/\n@media (max-width: 1024px) {\n    \/* Hide desktop navigation *\/\n    .site-header-item-main-navigation,\n    .main-navigation,\n    .primary-menu-container,\n    .header-navigation {\n        display: none !important;\n    }\n    \/* Show mobile toggle (hamburger) *\/\n    .site-header-item-navgation-popup-toggle,\n    .mobile-toggle-open-container {\n        display: block !important;\n    }\n    \/* Ensure the hamburger button itself is visible *\/\n    .menu-toggle-open {\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n        min-width: 44px !important;\n        min-height: 44px !important;\n    }\n}\n\n\/* === Page Content Areas === *\/\n.site-content,\n.content-area,\n#primary,\n.entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide Kadence page title bar *\/\n.entry-header,\n.kadence-page-title-wrap {\n    display: none !important;\n}\n\n\/* Keep breadcrumbs visible (we'll add our own) *\/\n.kadence-breadcrumbs,\n.lwn-breadcrumbs {\n    display: block !important;\n}\n\n\/* Kadence rowlayout container width *\/\n.wp-block-kadence-rowlayout {\n    max-width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n\/* === Brand Typography === *\/\nh1, h2, h3, h4, h5, h6 {\n    font-family: 'Open Sans', arial, sans-serif;\n    color: var(--lwn-navy);\n}\n\nbody, p, li {\n    font-family: Verdana, Geneva, sans-serif;\n    color: var(--lwn-text);\n    line-height: 1.7;\n}\n\n\/* === Buttons === *\/\n.wp-block-button__link {\n    background: var(--lwn-navy) !important;\n    color: var(--lwn-white) !important;\n    border-radius: 6px !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 600 !important;\n    padding: 14px 28px !important;\n    transition: all 0.3s ease !important;\n    border: none !important;\n}\n\n.wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 20px rgba(77, 178, 236, 0.35);\n}\n\n\/* Outline button style *\/\n.is-style-outline .wp-block-button__link {\n    background: transparent !important;\n    color: var(--lwn-navy) !important;\n    border: 2px solid var(--lwn-navy) !important;\n}\n\n.is-style-outline .wp-block-button__link:hover {\n    background: var(--lwn-gold-gradient) !important;\n    color: var(--lwn-navy) !important;\n    border-color: var(--lwn-gold) !important;\n}\n\n\/* === Breadcrumbs === *\/\n.lwn-breadcrumbs {\n    background: var(--lwn-cream);\n    padding: 14px 0;\n    border-bottom: 3px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n    font-family: Verdana, Geneva, sans-serif;\n    font-size: 14px;\n    color: var(--lwn-navy);\n}\n\n.lwn-breadcrumbs .lwn-breadcrumbs-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n}\n\n.lwn-breadcrumbs a {\n    color: var(--lwn-navy);\n    text-decoration: none;\n    transition: color 0.2s;\n    font-weight: 500;\n}\n\n.lwn-breadcrumbs a:hover {\n    color: var(--lwn-orange);\n}\n\n.lwn-breadcrumbs .separator {\n    color: var(--lwn-gold);\n    font-weight: bold;\n    margin: 0 4px;\n}\n\n.lwn-breadcrumbs .current {\n    color: var(--lwn-navy);\n    font-weight: 700;\n    border-bottom: 2px solid var(--lwn-gold);\n    padding-bottom: 2px;\n}\n\n.lwn-breadcrumbs .home-icon {\n    font-size: 16px;\n}\n\n\/* === Hero Section Gradient (page headers) === *\/\n.wp-block-kadence-rowlayout:first-of-type .wp-block-heading {\n    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n}\n\n\/* === Card Hover Effects === *\/\n.lwn-post-card,\n.ministry-logo-card,\n.wp-block-image {\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.lwn-post-card:hover,\n.ministry-logo-card:hover {\n    transform: translateY(-4px);\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n\/* === Section Dividers === *\/\n.wp-block-kadence-rowlayout + .wp-block-kadence-rowlayout {\n    position: relative;\n}\n\n\/* === ARMember Form Styling === *\/\n.arm_form_shortcode {\n    max-width: 600px;\n    margin: 0 auto;\n    background: var(--lwn-white);\n    padding: 32px;\n    border-radius: 12px;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);\n    border-top: 4px solid;\n    border-image: var(--lwn-gold-gradient) 1;\n}\n\n\/* === Video Embed === *\/\n.video-embed {\n    position: relative;\n    padding-bottom: 56.25%;\n    height: 0;\n    overflow: hidden;\n    max-width: 100%;\n    border-radius: 12px;\n    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.video-embed iframe {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    border: none;\n}\n\n\/* === Ministry Logos Grid === *\/\n.ministry-logos-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 32px;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n}\n\n.ministry-logo-card {\n    display: block;\n    text-align: center;\n    padding: 24px;\n    background: var(--lwn-white);\n    border: 2px solid var(--lwn-surface);\n    border-radius: 12px;\n    transition: all 0.3s ease;\n}\n\n.ministry-logo-card:hover {\n    border-color: var(--lwn-gold);\n    box-shadow: 0 8px 24px rgba(77, 178, 236, 0.2);\n}\n\n@media (max-width: 768px) {\n    .ministry-logos-grid {\n        grid-template-columns: repeat(2, 1fr);\n        gap: 20px;\n    }\n}\n\n@media (max-width: 480px) {\n    .ministry-logos-grid {\n        grid-template-columns: 1fr;\n        gap: 16px;\n    }\n}\n\n\/* === Footer (if not injected via Kadence) === *\/\n.lwn-footer {\n    background: var(--lwn-navy);\n    color: var(--lwn-cream);\n    padding: 60px 0 0;\n    margin-top: 60px;\n    position: relative;\n}\n\n.lwn-footer::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 6px;\n    background: var(--lwn-gold-gradient);\n}\n\n.lwn-footer-inner {\n    max-width: 100%;\n    margin: 0 auto;\n    padding: 0 20px;\n    display: grid;\n    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;\n    gap: 40px;\n}\n\n.lwn-footer h3, .lwn-footer h4 {\n    color: var(--lwn-gold);\n    font-family: 'Open Sans', arial, sans-serif;\n    margin-bottom: 16px;\n    font-size: 18px;\n}\n\n.lwn-footer a {\n    color: var(--lwn-cream);\n    text-decoration: none;\n    transition: color 0.2s;\n    display: block;\n    padding: 4px 0;\n    font-size: 14px;\n}\n\n.lwn-footer a:hover {\n    color: var(--lwn-gold);\n}\n\n.lwn-footer p {\n    color: var(--lwn-cream);\n    font-size: 14px;\n    line-height: 1.6;\n}\n\n.lwn-footer-bottom {\n    background: rgba(0, 0, 0, 0.2);\n    padding: 20px 0;\n    margin-top: 40px;\n    text-align: center;\n    font-size: 13px;\n}\n\n.lwn-footer-social {\n    display: flex;\n    gap: 12px;\n    margin-top: 16px;\n}\n\n.lwn-footer-social a {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 40px;\n    height: 40px;\n    border-radius: 50%;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    font-size: 18px;\n    transition: all 0.3s;\n    padding: 0;\n}\n\n.lwn-footer-social a:hover {\n    transform: translateY(-3px) scale(1.1);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n.lwn-newsletter-form {\n    display: flex;\n    gap: 8px;\n    margin-top: 16px;\n}\n\n.lwn-newsletter-form input[type=\"email\"] {\n    flex: 1;\n    padding: 10px 14px;\n    border: 2px solid var(--lwn-gold);\n    border-radius: 6px;\n    background: var(--lwn-navy-light);\n    color: var(--lwn-white);\n    font-size: 14px;\n}\n\n.lwn-newsletter-form input[type=\"email\"]::placeholder {\n    color: rgba(255, 255, 255, 0.6);\n}\n\n.lwn-newsletter-form button {\n    padding: 10px 20px;\n    background: var(--lwn-gold-gradient);\n    color: var(--lwn-navy);\n    border: none;\n    border-radius: 6px;\n    font-weight: 700;\n    cursor: pointer;\n    transition: all 0.3s;\n    font-size: 14px;\n}\n\n.lwn-newsletter-form button:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.4);\n}\n\n@media (max-width: 768px) {\n    .lwn-footer-inner {\n        grid-template-columns: 1fr;\n        gap: 30px;\n    }\n}\n\n\/* === Smooth scroll === *\/\nhtml {\n    scroll-behavior: smooth;\n}\n\n\/* === Custom scrollbar === *\/\n::-webkit-scrollbar {\n    width: 10px;\n}\n\n::-webkit-scrollbar-track {\n    background: var(--lwn-cream);\n}\n\n::-webkit-scrollbar-thumb {\n    background: var(--lwn-gold-gradient);\n    border-radius: 5px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n    background: var(--lwn-orange);\n}\n\n\/* === Logo swap: white-text version on desktop only === *\/\n\n}\n\n\/* === Full-width body: remove container constraints === *\/\n.wp-block-kadence-rowlayout,\n.wp-block-kadence-rowlayout .kt-row-column-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n}\n\n\/* Inner content padding for readability *\/\n.wp-block-kadence-column .kt-inside-inner-col {\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n}\n\n\/* Full-width content containers *\/\n.site-content,\n.content-area,\n#primary,\n#content,\n#main,\n.entry-content {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* === Full-width footer === *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 100% !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n}\n\n\/* === Remove white gap below footer === *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.site-footer,\n#colophon {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Ensure content area doesn't have extra bottom padding *\/\n.site-content {\n    padding-bottom: 0 !important;\n    margin-bottom: 0 !important;\n}\n\n.entry-content {\n    margin-bottom: 0 !important;\n}\n\n\/* Hide any trailing empty elements after our footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* Remove default WordPress\/Kadence margins on the main wrapper *\/\n#wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* === FORCE HIDE Kadence Default Footer (multi-technique approach) === *\/\n\/* The previous display:none alone was overridden by Kadence's own CSS. *\/\n\/* Apply !important + multiple hiding techniques + higher specificity *\/\n\n\/* Target by ID (highest specificity) *\/\nfooter#colophon,\n#colophon,\nfooter#colophon.site-footer,\n#colophon.site-footer {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    top: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    max-width: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    pointer-events: none !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Target by class *\/\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap,\n.site-footer-row-container,\n.site-footer-row-container-inner,\n.site-footer-row,\n.kadence-footer,\n.footer-html,\n.footer-html-inner,\n.site-info,\n.site-info-inner,\n.footer-widget-area {\n    display: none !important;\n    visibility: hidden !important;\n    position: absolute !important;\n    left: -99999px !important;\n    width: 0 !important;\n    height: 0 !important;\n    max-height: 0 !important;\n    overflow: hidden !important;\n    opacity: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Extra-aggressive: target any footer element that contains \"Kadence WP\" text *\/\n\/* We can't target by text content in CSS, but we can hide ALL footers except our .lwn-footer *\/\nfooter:not(.lwn-footer) {\n    display: none !important;\n}\n\n\/* === REMOVE ALL BOTTOM SPACING (global) === *\/\nhtml,\nbody,\n.site,\n#wrapper,\n#inner-wrap,\n#main,\n#primary,\n#content,\n.site-content,\n.content-area,\n.entry-content,\narticle {\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Hide any element that comes after our custom footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip),\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* === STICKY NAVBAR === *\/\n\/* Make the site header sticky on scroll *\/\n.site-header,\n#masthead,\n.kadence-header,\n.wp-block-kadence-header {\n    position: sticky !important;\n    top: 0 !important;\n    z-index: 9999 !important;\n    width: 100% !important;\n    background: #222222 !important;\n    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15) !important;\n    transition: all 0.3s ease !important;\n}\n\n\/* Sticky header on scroll \u2014 slightly smaller *\/\n.site-header.scrolled,\n#masthead.scrolled {\n    padding-top: 8px !important;\n    padding-bottom: 8px !important;\n    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;\n}\n\n\/* Add subtle scroll effect via CSS only (no JS) *\/\n\/* When body is scrolled, the header sticks naturally with position:sticky *\/\n\/* This is the most reliable approach \u2014 no JS needed *\/\n\n\/* Ensure content doesn't go under the sticky header *\/\n\/* (position:sticky doesn't need padding offset, unlike position:fixed) *\/\nbody {\n    padding-top: 0 !important;\n}\n\n\/* === Fix: Make sure our custom footer is positioned correctly above the hidden Kadence footer === *\/\n.lwn-footer {\n    position: relative !important;\n    z-index: 10 !important;\n    margin-bottom: -1px !important;  \/* Pull up by 1px to overlap any sub-pixel gap *\/\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    margin: 0 !important;\n    padding: 20px 0 !important;\n    border-bottom: none !important;\n}\n\n\n\n\n\n\/* === FIX: Logo swap via JavaScript (CSS content:url doesn't work on <img>) === *\/\n\/* The JS below replaces the src attribute of .custom-logo *\/\n\n\/* === FIX: Hamburger menu icon \u2014 white === *\/\n\/* Target the ACTUAL Kadence toggle button class *\/\n.menu-toggle-open,\n.menu-toggle-open .kadence-svg-iconset,\n.menu-toggle-open .kadence-svg-icon,\n.menu-toggle-open svg,\n.menu-toggle-open .menu-toggle-icon,\n.menu-toggle-open .kadence-menu-svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n    stroke: #FFFFFF !important;\n}\n\n\/* Also target the close button *\/\n.menu-toggle-close,\n.menu-toggle-close .kadence-svg-iconset,\n.menu-toggle-close .kadence-svg-icon,\n.menu-toggle-close svg {\n    color: #FFFFFF !important;\n    fill: #FFFFFF !important;\n}\n\n\/* === FIX: Mobile menu \u2014 purple background, amber hover === *\/\n\/* Kadence mobile drawer *\/\n.popup-drawer,\n#mobile-drawer,\n.popup-drawer .drawer-inner,\n.popup-drawer .drawer-content {\n    background: #222222 !important;\n}\n\n\/* Ensure mobile drawer appears ABOVE the sticky navbar (z-index 9999) *\/\n.popup-drawer {\n    z-index: 100000 !important;\n}\n\n\/* CRITICAL: Force the mobile drawer to display when Kadence's JS adds the\n   .show-drawer \/ .active class. Without this, the old #mobile-drawer\n   { display: none } rule (from page content CSS, which we can't easily\n   remove) overrides Kadence's .popup-drawer.show { display: block } due\n   to ID specificity (1,0,0) being higher than class specificity (0,2,0).\n   Using !important here ensures the drawer ALWAYS shows when toggled. *\/\n.popup-drawer.show-drawer,\n.popup-drawer.active,\n#mobile-drawer.show-drawer,\n#mobile-drawer.active,\n.popup-drawer.show,\n#mobile-drawer.show {\n    display: block !important;\n}\n\n.popup-drawer .menu-item a,\n#mobile-drawer .menu-item a,\n.popup-drawer .header-menu-container .menu-item a {\n    color: #FFFFFF !important;\n    background: #222222 !important;\n    padding: 14px 24px !important;\n    border-bottom: 1px solid rgba(77, 178, 236, 0.2) !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    font-weight: 500 !important;\n    font-size: 16px !important;\n    transition: all 0.3s ease !important;\n}\n\n.popup-drawer .menu-item a:hover,\n#mobile-drawer .menu-item a:hover {\n    background: linear-gradient(135deg, #4DB2EC, #02A9D3, #E6F4FB) !important;\n    color: #222222 !important;\n}\n\n.popup-drawer .menu-item.current-menu-item a,\n#mobile-drawer .menu-item.current-menu-item a {\n    background: #02A9D3 !important;\n    color: #FFFFFF !important;\n}\n\n\/* Mobile drawer header *\/\n.popup-drawer .drawer-header {\n    background: #222222 !important;\n    border-bottom: 2px solid #4DB2EC !important;\n}\n\n\/* === FIX: Logo padding (both mobile and desktop) === *\/\n.site-branding,\n.site-logo,\n.custom-logo-link,\n.brand.has-logo-image {\n    padding: 10px 15px !important;\n}\n\n.custom-logo {\n    padding: 5px !important;\n    max-height: 70px !important;\n    width: auto !important;\n}\n\n\/* === FIX: Hero text visibility === *\/\n\/* Kadence uses #kt-layout-id{uniqueID} not #{uniqueID} *\/\n\/* Target the hero section by its Kadence layout ID *\/\n#kt-layout-idprint-hero h1,\n#kt-layout-idprint-hero h2,\n#kt-layout-idprint-hero h3,\n#kt-layout-idprint-hero p {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-hero .has-text-color,\n#kt-layout-idprint-hero [style*=\"color\"] {\n    color: #FFFFFF !important;\n}\n\n\/* Also target by column class *\/\n.kadence-columnprint-hero-col-1 h1,\n.kadence-columnprint-hero-col-1 p {\n    color: #FFFFFF !important;\n}\n\n\/* Quote form section *\/\n#kt-layout-idquote-form-section h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idquote-form-section p {\n    color: #4DB2EC !important;\n}\n\n\/* CTA section *\/\n#kt-layout-idprint-cta h2 {\n    color: #FFFFFF !important;\n}\n\n#kt-layout-idprint-cta p {\n    color: #F5F5F5 !important;\n}\n\n\/* All hero sections with purple background \u2014 ensure white text *\/\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h1,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h2,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] h3,\n.wp-block-kadence-rowlayout[style*=\"#222222\"] p {\n    color: #FFFFFF !important;\n}\n\n\/* Content sections with light background \u2014 ensure dark text *\/\n#kt-layout-idprint-products-title h2,\n#kt-layout-idhow-it-works-title h2 {\n    color: #222222 !important;\n}\n\n#kt-layout-idprint-products-title p,\n#kt-layout-idhow-it-works-title p {\n    color: #212121 !important;\n}\n\n\n\n\/* === FIX: Force purple background on hero sections === *\/\n#kt-layout-idprint-hero,\n#kt-layout-idprint-cta,\n#kt-layout-idquote-form-section {\n    background: #222222 !important;\n}\n\n#kt-layout-idprint-hero .kt-row-column-wrap,\n#kt-layout-idprint-cta .kt-row-column-wrap,\n#kt-layout-idquote-form-section .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\/* Force purple background on ALL sections that should have it *\/\n\/* (applies to all hero sections with navy\/purple background on all pages) *\/\n.wp-block-kadence-rowlayout[style*=\"4A148C\"],\n.wp-block-kadence-rowlayout[style*=\"4a148c\"] {\n    background: #222222 !important;\n}\n\n\/* Also force via the kt-layout-id pattern for all pages *\/\n\/* Hero sections on inner pages use uniqueIDs like about-hero, vision-hero, etc *\/\n[id^=\"kt-layout-id\"][id*=\"hero\"],\n[id^=\"kt-layout-id\"][id*=\"cta\"],\n[id^=\"kt-layout-id\"][id*=\"quote-form\"] {\n    background: #222222 !important;\n}\n\n[id^=\"kt-layout-id\"][id*=\"hero\"] .kt-row-column-wrap,\n[id^=\"kt-layout-id\"][id*=\"cta\"] .kt-row-column-wrap {\n    background: #222222 !important;\n}\n\n\n\n\n\n\n\n\/* === CORRECTED LAYOUT: Full-width backgrounds, centered content === *\/\n\/* Container: 100% width so section backgrounds span full browser *\/\n\/* Inner content: max-width 1200px centered so text isn't overstretched *\/\n\n.content-container,\n.site-container,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#primary,\n#main,\n#content,\n.site-main,\n.wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content divs \u2014 constrained to 1200px, centered *\/\n.entry-content > div,\n.entry-content > div > div {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    box-sizing: border-box !important;\n}\n\n\/* Section background divs \u2014 full browser width *\/\n\/* These are the divs with style=\"background:...; width:100%\" *\/\n\/* They need to break out of the container to span the full browser width *\/\n.entry-content > div > div[style*=\"background:#222222\"],\n.entry-content > div > div[style*=\"background:#FFFFFF\"],\n.entry-content > div > div[style*=\"background:#F5F5F5\"],\n.entry-content div[style*=\"background:#222222\"],\n.entry-content div[style*=\"background:#FFFFFF\"],\n.entry-content div[style*=\"background:#F5F5F5\"] {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    box-sizing: border-box !important;\n}\n\n\/* Inner content within sections \u2014 max 1200px centered *\/\n.entry-content div[style*=\"background:#222222\"] > div,\n.entry-content div[style*=\"background:#FFFFFF\"] > div,\n.entry-content div[style*=\"background:#F5F5F5\"] > div,\n.entry-content div[style*=\"width:100%\"] > div,\n.entry-content div[style*=\"width: 100%\"] > div {\n    max-width: 1200px !important;\n    width: 100% !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Also target inner divs that have inline width:100% *\/\ndiv[style*=\"max-width:100%\"]:not([style*=\"background\"]) {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    box-sizing: border-box !important;\n}\n\n\/* Body background \u2014 milky white (was navy to prevent white gap below footer,\n   but it caused purple side borders on single posts where content is narrower\n   than viewport) *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* Navbar full-width *\/\n.site-header {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Breadcrumbs full-width *\/\n.lwn-breadcrumbs {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n}\n\n\/* Footer full-width (already handled but reinforce) *\/\n.lwn-footer {\n    width: 100vw !important;\n    max-width: 100vw !important;\n    margin-left: calc(-50vw + 50%) !important;\n    margin-right: calc(-50vw + 50%) !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n.lwn-footer .lwn-footer-inner {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n    padding: 0 20px !important;\n}\n\n.lwn-footer .lwn-footer-bottom {\n    max-width: 1200px !important;\n    margin: 0 auto !important;\n}\n\n\/* Remove ALL bottom spacing *\/\n\/* IMPORTANT: use overflow-x: clip (NOT hidden) because overflow: hidden on\n   a parent element breaks position: sticky on children (#masthead).\n   overflow-x: clip prevents horizontal scroll without creating a new\n   scroll context, so sticky positioning continues to work. *\/\n.site,\n#wrapper,\n#inner-wrap {\n    margin: 0 !important;\n    padding: 0 !important;\n    overflow-x: clip;\n}\n\n\/* Hide Kadence default footer *\/\n#colophon,\n.site-footer,\n.site-footer-wrap,\n.site-bottom-footer-wrap {\n    display: none !important;\n}\n\n\/* Prevent horizontal scroll on body \u2014 overflow-x: clip preserves\n   position: sticky on descendant elements. *\/\nbody {\n    overflow-x: clip !important;\n}\n\n\n\n\/* === FIX: Remove ALL gaps === *\/\n\n\/* 1. Remove gap below navbar \u2014 override Kadence's margin-top on .content-area *\/\n.content-area,\n.content-container,\n.site-container,\n#primary,\n#main,\n.site-main,\n.content-wrap,\n.entry-content-wrap,\n.entry-content,\n.single-content,\n#content,\n.site-content,\n#inner-wrap,\n.wrap {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n    margin-bottom: 0 !important;\n    padding-bottom: 0 !important;\n}\n\n\/* Also override Kadence's responsive margin-top rules *\/\n@media (min-width: 1025px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 1024px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n@media (max-width: 767px) {\n    .content-area { margin-top: 0 !important; padding-top: 0 !important; }\n}\n\n\/* 2. Remove gap below footer \u2014 hide Kadence mobile drawer on DESKTOP only.\n   The mobile drawer (#mobile-drawer) renders after the footer and creates\n   a white gap at the bottom of the page on desktop view.\n   IMPORTANT: Only hide on desktop (min-width: 1025px). On mobile, Kadence's\n   JS toggles the drawer via the .show class. If we use #mobile-drawer\n   { display: none } globally (without media query), the ID selector\n   (specificity 1,0,0) overrides Kadence's .popup-drawer.show class\n   selector (specificity 0,2,0), so the drawer NEVER shows when the\n   hamburger is clicked. *\/\n@media (min-width: 1025px) {\n    #mobile-drawer {\n        display: none !important;\n    }\n}\n\n\/* 3. Body background \u2014 milky white (was #222222 purple, which showed\n      through as purple side borders on single post pages where the\n      content was narrower than the viewport). Milky white gives a\n      softer, warmer feel than pure white. *\/\nhtml,\nbody {\n    background: #FAFAF5 !important;  \/* milky white *\/\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\/* 4. Remove any trailing empty elements after footer *\/\n.lwn-footer ~ *:not(.flatpickr-calendar):not(.flatpickr-wrapper):not(.lity):not(.lity-active):not([role=\"dialog\"]):not(.cropper-container):not(.cropper-crop-box):not(.ff-modal):not(.fancybox-container):not(.ui-datepicker):not(.select2-container):not(.chosen-container):not(.modal):not(.popover):not(.tooltip) {\n    display: none !important;\n}\n\n\/* 5. Remove padding on site wrapper *\/\n\/* Use overflow-x: clip instead of hidden to preserve position: sticky\n   on #masthead (the sticky navbar). *\/\n.site,\n#wrapper {\n    padding: 0 !important;\n    margin: 0 !important;\n    overflow-x: clip !important;\n}\n\n\/* 6. Remove Kadence content padding \u2014 but ONLY for page content areas,\n   NOT for post cards in archive grids (which need their padding to\n   prevent text from clashing against card edges). *\/\n.entry-content-wrap:not(.loop-entry .entry-content-wrap) {\n    padding: 0 !important;\n}\n\n\/* Restore Kadence's default post card padding inside archive grids *\/\n.loop-entry .entry-content-wrap {\n    padding: 1.5rem 2rem !important;\n}\n\n\/* Ensure post cards have proper spacing, fixed height, and clean layout *\/\n.loop-entry {\n    overflow: hidden !important;\n    border-radius: 8px !important;\n    background: #FFFFFF !important;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;\n    transition: box-shadow 0.2s ease, transform 0.2s ease !important;\n}\n\n.loop-entry:hover {\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12) !important;\n    transform: translateY(-2px) !important;\n}\n\n\/* Post card title \u2014 clean typography *\/\n.loop-entry .entry-title {\n    font-family: 'Open Sans', arial, sans-serif !important;\n    color: #222222 !important;\n    font-size: 1.25rem !important;\n    line-height: 1.3 !important;\n    margin: 0.5rem 0 0.75rem 0 !important;\n}\n\n.loop-entry .entry-title a {\n    color: inherit !important;\n    text-decoration: none !important;\n}\n\n.loop-entry .entry-title a:hover {\n    color: #4DB2EC !important;\n}\n\n\/* Post card excerpt \u2014 limit to 3 lines, no overflow *\/\n.loop-entry .entry-summary,\n.loop-entry .entry-content {\n    color: #424242 !important;\n    font-size: 0.9rem !important;\n    line-height: 1.5 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n}\n\n\/* Post card thumbnail \u2014 consistent aspect ratio *\/\n.loop-entry .post-thumbnail {\n    display: block !important;\n    aspect-ratio: 16 \/ 9 !important;\n    overflow: hidden !important;\n}\n\n.loop-entry .post-thumbnail img {\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    display: block !important;\n}\n\n\/* Post card meta \u2014 clean spacing *\/\n.loop-entry .entry-meta {\n    font-size: 0.8rem !important;\n    color: #757575 !important;\n    margin: 0.5rem 0 !important;\n}\n\n\/* Post card category links \u2014 styled *\/\n.loop-entry .entry-taxonomies {\n    margin-bottom: 0.5rem !important;\n}\n\n.loop-entry .entry-taxonomies a {\n    color: #02A9D3 !important;\n    text-decoration: none !important;\n    font-size: 0.75rem !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.5px !important;\n}\n\n\/* 7. Remove Kadence post padding (for blog posts) *\/\n.single-content {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 8. Remove article padding *\/\narticle {\n    padding: 0 !important;\n    margin: 0 !important;\n}\n\n\/* 9. Force the content area to start immediately after navbar *\/\n#inner-wrap {\n    padding-top: 0 !important;\n    margin-top: 0 !important;\n}\n\n\/* 10. Remove WooCommerce message container padding *\/\n.woocommerce-notices-wrapper {\n    margin: 0 !important;\n    padding: 0 !important;\n}\n\n\n\n\/* === Next LWN block === *\/\n\n\n\/* Hide site title text \u2014 keep only logo image *\/\n.site-header .site-title,\n.site-header .site-description,\n.kadence-site-title-wrap .site-title,\n.site-branding .site-title {\n    display: none !important;\n}\n\n\/* Remove gap between navbar and slider on homepage *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home .entry-content {\n    margin-top: 0 !important;\n    padding-top: 0 !important;\n}\n.home .wp-block-kadence-rowlayout:first-of-type {\n    margin-top: 0 !important;\n}\n.site-header {\n    margin-bottom: 0 !important;\n}\n\n\/* === Make slider section truly full-width (break out of content container) === *\/\n.home .site-content,\n.home .content-area,\n.home #primary,\n.home #content,\n.home .entry-content,\n.home #main {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution container \u2014 force full width *\/\n.home #hero-slider,\n.home #hero-slider .wp-block-kadence-column,\n.home #hero-slider .kt-inside-inner-col,\n.home .wp-block-kadence-rowlayout:first-of-type,\n.home .wp-block-kadence-rowlayout:first-of-type .wp-block-kadence-column,\n.home .wp-block-kadence-rowlayout:first-of-type .kt-inside-inner-col {\n    max-width: 100% !important;\n    width: 100% !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n}\n\n\/* Slider Revolution module \u2014 full width *\/\n.home .rs-module-wrap,\n.home .rs-module,\n.home .rs-fullwidth-wrap {\n    max-width: 100% !important;\n    width: 100% !important;\n    margin: 0 !important;\n}\n\n\/* === LWN Post Grid Styles === *\/\n.lwn-post-grid {\n    margin: 20px 0;\n}\n.lwn-loading {\n    text-align: center;\n    padding: 40px 0;\n    color: #8b8881;\n    font-style: italic;\n}\n.lwn-grid-inner {\n    display: grid;\n    gap: 24px;\n}\n.lwn-grid-4col .lwn-grid-inner { grid-template-columns: repeat(4, 1fr); }\n.lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(5, 1fr); }\n.lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n\n@media (max-width: 1024px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner { grid-template-columns: repeat(3, 1fr); }\n}\n@media (max-width: 768px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 480px) {\n    .lwn-grid-4col .lwn-grid-inner,\n    .lwn-grid-5col .lwn-grid-inner,\n    .lwn-grid-3col .lwn-grid-inner { grid-template-columns: 1fr; }\n}\n\n.lwn-post-card {\n    background: #FFFFFF;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.06);\n    transition: box-shadow 0.2s ease, transform 0.2s ease;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-card:hover {\n    box-shadow: 0 4px 12px rgba(0,0,0,0.10);\n    transform: translateY(-2px);\n}\n.lwn-post-thumb {\n    display: block;\n    overflow: hidden;\n    background: #EEEEEE;\n}\n.lwn-post-thumb img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n    transition: transform 0.3s ease;\n}\n.lwn-post-card:hover .lwn-post-thumb img {\n    transform: scale(1.05);\n}\n.lwn-post-content {\n    padding: 16px;\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n}\n.lwn-post-title {\n    margin: 0 0 8px;\n    font-family: 'Open Sans', arial, sans-serif;\n    font-size: 18px;\n    font-weight: 600;\n    line-height: 1.3;\n    color: #222222;\n}\n.lwn-post-title a {\n    color: inherit;\n    text-decoration: none;\n}\n.lwn-post-title a:hover {\n    color: #4DB2EC;\n}\n.lwn-post-meta {\n    font-size: 12px;\n    text-transform: uppercase;\n    letter-spacing: 0.04em;\n    color: #4DB2EC;\n    margin-bottom: 8px;\n    font-weight: 500;\n}\n.lwn-post-excerpt {\n    font-size: 14px;\n    line-height: 1.5;\n    color: #212121;\n    margin: 0 0 12px;\n    flex: 1;\n    \/* Clamp excerpt to 3 lines so cards in the same row have equal height\n       and text doesn't clash between adjacent cards. *\/\n    display: -webkit-box !important;\n    -webkit-line-clamp: 3 !important;\n    -webkit-box-orient: vertical !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n    word-wrap: break-word !important;\n    overflow-wrap: break-word !important;\n}\n.lwn-post-readmore {\n    font-size: 13px;\n    font-weight: 600;\n    color: #222222;\n    text-decoration: none;\n    align-self: flex-start;\n}\n.lwn-post-readmore:hover {\n    color: #4DB2EC;\n    text-decoration: underline;\n}\n\n\/* === SINGLE POST LAYOUT \u2014 match homepage boxed layout size === *\/\n\/* The homepage uses content-width-normal (~1290px), single posts use\n   content-width-narrow (~842px). Override to make single posts match. *\/\n\n\/* Override the narrow width to use the normal content width *\/\n.content-width-narrow .content-container.site-container,\n.content-width-narrow .hero-container.site-container,\n.content-width-narrow .entry-content-wrap,\n.content-width-narrow .entry-content,\n.content-width-narrow .single-content,\n.content-width-narrow .entry-hero {\n    max-width: var(--global-content-width, 1290px) !important;\n    width: 100% !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n    padding-left: 2rem !important;\n    padding-right: 2rem !important;\n    box-sizing: border-box !important;\n}\n\n\/* Remove the negative margins that Kadence adds for .alignwide in narrow layouts *\/\n.content-width-narrow .wp-site-blocks .content-container .alignwide,\n.content-width-narrow .wp-site-blocks .content-container .alignfull {\n    margin-left: 0 !important;\n    margin-right: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Responsive: slightly narrower padding on tablets and mobiles *\/\n@media (max-width: 1024px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1.5rem !important;\n        padding-right: 1.5rem !important;\n    }\n}\n\n@media (max-width: 768px) {\n    .content-width-narrow .content-container.site-container,\n    .content-width-narrow .hero-container.site-container,\n    .content-width-narrow .entry-content-wrap,\n    .content-width-narrow .entry-content,\n    .content-width-narrow .single-content {\n        padding-left: 1rem !important;\n        padding-right: 1rem !important;\n    }\n}\n\n\n\/* === FLUENT FORMS SUBMIT BUTTON FIX === *\/\n\/* The Fluent Forms custom_submit_button renders with empty inner text\n   (the text is only in the `value` attribute). This CSS forces the\n   text to show via ::after { content: attr(value) } and applies the\n   LWN purple theme. *\/\n\n\/* Force the submit button to display its text from the value attribute *\/\n.ff-btn-submit,\n.ff_btn_submit,\nbutton[type=\"submit\"].ff-btn,\nform.frm-fluent-form button[type=\"submit\"] {\n    background: #222222 !important;\n    color: #FFFFFF !important;\n    border: 2px solid #222222 !important;\n    border-radius: 6px !important;\n    padding: 14px 32px !important;\n    font-size: 1rem !important;\n    font-weight: 600 !important;\n    font-family: Verdana, Geneva, sans-serif !important;\n    cursor: pointer !important;\n    min-width: 200px !important;\n    min-height: 50px !important;\n    display: inline-block !important;\n    text-transform: none !important;\n    letter-spacing: normal !important;\n    transition: all 0.3s ease !important;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;\n    position: relative !important;\n    overflow: visible !important;\n}\n\n\/* Force the button text to show (uses the value attribute as content) *\/\n.ff-btn-submit::after,\n.ff_btn_submit::after,\nbutton[type=\"submit\"].ff-btn::after,\nform.frm-fluent-form button[type=\"submit\"]::after {\n    content: attr(value) !important;\n    color: #FFFFFF !important;\n    font-weight: 600 !important;\n    display: inline !important;\n}\n\n\/* Hover effect \u2014 sky blue *\/\n.ff-btn-submit:hover,\n.ff_btn_submit:hover,\nbutton[type=\"submit\"].ff-btn:hover,\nform.frm-fluent-form button[type=\"submit\"]:hover {\n    background: #4DB2EC !important;\n    color: #FFFFFF !important;\n    border-color: #4DB2EC !important;\n    transform: translateY(-2px) !important;\n    box-shadow: 0 6px 16px rgba(77, 178, 236, 0.3) !important;\n}\n\n.ff-btn-submit:hover::after,\n.ff_btn_submit:hover::after,\nbutton[type=\"submit\"].ff-btn:hover::after,\nform.frm-fluent-form button[type=\"submit\"]:hover::after {\n    color: #FFFFFF !important;\n}\n\n\/* Ensure the submit button container has proper spacing *\/\n.ff_submit_btn_wrapper,\n.ff-el-form-footer,\n.ff-form-submit-button {\n    margin-top: 24px !important;\n    text-align: center !important;\n}\n\n\/* === FLUENT FORMS GENERAL STYLING === *\/\n\/* Style all form inputs, selects, and textareas with LWN theme *\/\nform.frm-fluent-form .ff-el-input--content input,\nform.frm-fluent-form .ff-el-input--content select,\nform.frm-fluent-form .ff-el-input--content textarea {\n    border: 2px solid #E0E0E0 !important;\n    border-radius: 6px !important;\n    padding: 12px 16px !important;\n    font-size: 0.95rem !important;\n    transition: border-color 0.2s ease !important;\n    width: 100% !important;\n    box-sizing: border-box !important;\n}\n\nform.frm-fluent-form .ff-el-input--content input:focus,\nform.frm-fluent-form .ff-el-input--content select:focus,\nform.frm-fluent-form .ff-el-input--content textarea:focus {\n    border-color: #4DB2EC !important;\n    outline: none !important;\n    box-shadow: 0 0 0 3px rgba(77, 178, 236, 0.15) !important;\n}\n\n\/* Style form labels *\/\nform.frm-fluent-form .ff-el-form-check-label,\nform.frm-fluent-form label.ff-el-form-label {\n    color: #222222 !important;\n    font-weight: 600 !important;\n    font-size: 0.9rem !important;\n    margin-bottom: 6px !important;\n    display: block !important;\n}\n\n\/* Style form field containers *\/\nform.frm-fluent-form .ff-el-group {\n    margin-bottom: 20px !important;\n}\n\n\/* Style the form wrapper *\/\nform.frm-fluent-form {\n    background: transparent !important;\n}\n\n<\/style>\n<script>\n(function() {\n    function swapLogo() {\n        var logoUrl = 'https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png';\n        \/\/ Find all logo images\n        var logos = document.querySelectorAll('.custom-logo, .site-logo img, .site-branding img, .brand img');\n        logos.forEach(function(img) {\n            if (img.src !== logoUrl) {\n                img.src = logoUrl;\n            }\n        });\n    }\n\n    \/\/ Run on DOMContentLoaded\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', swapLogo);\n    } else {\n        swapLogo();\n    }\n\n    \/\/ Run again after load (in case Kadence loads logo dynamically)\n    window.addEventListener('load', function() {\n        swapLogo();\n        setTimeout(swapLogo, 500);\n    });\n})();\n\n\/\/ Move the LWN custom footer to AFTER the \"Similar Posts\" widget on single blog posts.\n\/\/ On the homepage (no .entry-related), the footer stays where it is (in content).\n(function() {\n    function positionFooter() {\n        var footer = document.querySelector('footer.lwn-footer');\n        if (!footer) return;\n        var related = document.querySelector('.entry-related');\n        if (related && related.parentNode) {\n            \/\/ If footer is currently BEFORE related or INSIDE the article, move it after related.\n            if (footer !== related.nextSibling) {\n                \/\/ Insert footer right after .entry-related\n                related.parentNode.insertBefore(footer, related.nextSibling);\n            }\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', positionFooter);\n    } else {\n        positionFooter();\n    }\n    \/\/ Run again after load (Kadence may render .entry-related late via carousel JS)\n    window.addEventListener('load', function() {\n        positionFooter();\n        setTimeout(positionFooter, 500);\n        setTimeout(positionFooter, 1500);\n    });\n})();\n\n<\/script>\n\n\n<p><strong>IT&#8217;S FEBRUARY GLOBAL COMMUNION SERVICE WITH PASTOR CHRIS<\/strong><\/p>\n\n\n\n<p>Get ready to partake of the Holy Communion and receive God\u2019s word for this new month of February from our dear Man of God, Rev Chris Oyakhilome, DSc.Dsc. DD.<\/p>\n\n\n\n<p>Date is the 1st February 2026 at 3:00Pm GMT +1<\/p>\n\n\n\n<p>It would be showing live on this platform, on all Loveworld networks and designated ministry platforms.<\/p>\n\n\n\n<p><\/p>\n\n<div style=\"margin-top: 40px; padding: 20px; background: #F5F5F5; border-radius: 8px; font-size: 14px; color: #757575;\">\n<p><strong>Source:<\/strong> <a href=\"https:\/\/christembassy.org\/february-2026-global-communion-service-with-pastor-chris\/\">https:\/\/christembassy.org\/february-2026-global-communion-service-with-pastor-chris\/<\/a><\/p>\n<p><strong>Originally published:<\/strong> 2026-01-30T03:06:00 by qNw1UHSvtX<\/p>\n<p><em>This article was originally published on Christ Embassy and is reproduced here with permission.<\/em><\/p>\n<\/div>\n\n\n\n<footer class=\"lwn-footer\">\n    <div class=\"lwn-footer-inner\">\n        <!-- Column 1: Church info -->\n        <div class=\"lwn-footer-col\">\n            <img decoding=\"async\" src=\"https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/logo-white-text-real.png\" alt=\"LoveWorld Northampton\" style=\"max-width: 220px; height: auto; margin-bottom: 16px; display: block;\" \/>\n            <h4 class=\"lwn-footer-title\">Location:<\/h4>\n            <p>64 Harborough Road<br>Kingsthorpe<br>Northampton<br>NN2 7SH<\/p>\n            <h4 class=\"lwn-footer-title\" style=\"margin-top: 20px;\">Service Times:<\/h4>\n            <p>\n                Sunday Worship: 10:00 AM<br>\n                Midweek: Wednesday 6:30 PM\n            <\/p>\n            <div class=\"lwn-footer-social\">\n                <a href=\"https:\/\/facebook.com\/loveworldnorthampton\" target=\"_blank\" rel=\"noopener\" title=\"Facebook\" aria-label=\"Facebook\">\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"\/><\/svg>\n                <\/a>\n                <a href=\"https:\/\/youtube.com\/loveworldnorthampton\" target=\"_blank\" rel=\"noopener\" title=\"YouTube\" aria-label=\"YouTube\">\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"\/><\/svg>\n                <\/a>\n                <a href=\"https:\/\/instagram.com\/loveworldnorthampton\" target=\"_blank\" rel=\"noopener\" title=\"Instagram\" aria-label=\"Instagram\">\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z\"\/><\/svg>\n                <\/a>\n                <a href=\"\/stg\/?feed=rss2\" title=\"RSS\" aria-label=\"RSS\">\n                    <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19.199 24C19.199 13.467 10.533 4.8 0 4.8V0c13.165 0 24 10.835 24 24h-4.801zM3.291 17.415a3.299 3.299 0 0 1 3.293 3.295A3.303 3.303 0 0 1 3.283 24C1.47 24 0 22.526 0 20.71s1.475-3.295 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727 0 15.909 7.184 15.909 15.91z\"\/><\/svg>\n                <\/a>\n            <\/div>\n        <\/div>\n\n        <!-- Column 2: Quick Links -->\n        <div class=\"lwn-footer-col\">\n            <h4 class=\"lwn-footer-title\">Quick Links<\/h4>\n            <a href=\"\/stg\/\">Home<\/a>\n            <a href=\"\/stg\/about-pastor-chris\/\">About Pastor Chris<\/a>\n            <a href=\"\/stg\/our-vision\/\">Our Vision<\/a>\n            <a href=\"\/stg\/our-statement-of-faith\/\">Statement of Faith<\/a>\n            <a href=\"\/stg\/prayer-of-salvation\/\">Prayer of Salvation<\/a>\n            <a href=\"\/stg\/contact-us\/\">Contact Us<\/a>\n        <\/div>\n\n        <!-- Column 3: Watch & Read -->\n        <div class=\"lwn-footer-col\">\n            <h4 class=\"lwn-footer-title\">Watch &#038; Read<\/h4>\n            <a href=\"\/stg\/?post_type=post\">Sermons<\/a>\n            <a href=\"\/stg\/events\/\">Events<\/a>\n            <a href=\"\/stg\/virtualchurch\/\">Virtual Church<\/a>\n            <a href=\"\/stg\/category\/newsletters\/\">Newsletters<\/a>\n            <a href=\"\/stg\/category\/daily-devotional\/\">Daily Devotional<\/a>\n            <a href=\"\/stg\/category\/ministry-news\/\">Ministry News<\/a>\n        <\/div>\n\n        <!-- Column 4: Get Involved -->\n        <div class=\"lwn-footer-col\">\n            <h4 class=\"lwn-footer-title\">Get Involved<\/h4>\n            <a href=\"\/stg\/partnership\/\">Become a Partner<\/a>\n            <a href=\"\/stg\/start\/\">Welcome to Church<\/a>\n            <a href=\"\/stg\/login\/\">Member Login<\/a>\n            <a href=\"\/stg\/register\/\">Register<\/a>\n        <\/div>\n    <\/div>\n    <div class=\"lwn-footer-bottom\">\n        <p>&copy; 2026 Christ Embassy (LoveWorld). All rights reserved. | <a href=\"\/stg\/privacy-policy\/\" style=\"display:inline; color: #4DB2EC;\">Privacy Policy<\/a><\/p>\n    <\/div>\n<\/footer>\n\n\n","protected":false},"excerpt":{"rendered":"<p>IT\u2019S FEBRUARY GLOBAL COMMUNION SERVICE WITH PASTOR CHRIS Get ready to partake of the Holy Communion and receive God\u2019s word for this new month of February from our dear Man of God, Rev Chris Oyakhilome, DSc.Dsc. DD. Date is the 1st February 2026 at 3:00Pm GMT +1 It would be showing live on this platf<\/p>\n","protected":false},"author":1,"featured_media":5510,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[19,24],"tags":[],"class_list":["post-5511","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ministry-news","category-special-messages"],"taxonomy_info":{"category":[{"value":19,"label":"Ministry News"},{"value":24,"label":"Special Messages"}]},"featured_image_src_large":["https:\/\/loveworldnorthampton.org\/stg\/wp-content\/uploads\/2026\/06\/ChatGPT-Image-Jan-31-2026-03_21_38-AM-2-1024x683.png",1024,683,true],"author_info":{"display_name":"loveworld","author_link":"https:\/\/loveworldnorthampton.org\/stg\/author\/loveworld_admin\/"},"comment_info":0,"category_info":[{"term_id":19,"name":"Ministry News","slug":"ministry-news","term_group":0,"term_taxonomy_id":19,"taxonomy":"category","description":"Latest news, announcements, and updates from LoveWorld Northampton.","parent":0,"count":48,"filter":"raw","cat_ID":19,"category_count":48,"category_description":"Latest news, announcements, and updates from LoveWorld Northampton.","cat_name":"Ministry News","category_nicename":"ministry-news","category_parent":0},{"term_id":24,"name":"Special Messages","slug":"special-messages","term_group":0,"term_taxonomy_id":24,"taxonomy":"category","description":"Special messages and announcements from LoveWorld Northampton.","parent":0,"count":10,"filter":"raw","cat_ID":24,"category_count":10,"category_description":"Special messages and announcements from LoveWorld Northampton.","cat_name":"Special Messages","category_nicename":"special-messages","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/posts\/5511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/comments?post=5511"}],"version-history":[{"count":22,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/posts\/5511\/revisions"}],"predecessor-version":[{"id":6991,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/posts\/5511\/revisions\/6991"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/media\/5510"}],"wp:attachment":[{"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/media?parent=5511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/categories?post=5511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loveworldnorthampton.org\/stg\/wp-json\/wp\/v2\/tags?post=5511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}