/*
Theme Name: Hello Elementor
Theme URI: https://elementor.com/hello-theme/
Description: Hello Elementor - A plain vanilla theme for Elementor page builder.
Version: 3.2.28
Author: Elementor Team
Author URI: https://elementor.com/
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: hello-elementor
Tags: elementor, elementor-support, full-width, header-footer-builder, custom-background, custom-logo, rtl-language-support, translation-ready, accessibility-ready
*/

:root {
    --primary-color: #86b572;
    --primary-light: #a1c58e;
    --primary-dark: #6a2708;
    --accent-color: #f0613b;
    --accent-light: #ff8b6b;
    --accent-dark: #d94d2e;
    --secondary-color: #6a2708;
    --light-bg: #f5f8f3;
    --white: #ffffff;
    --text-color: #3b2116;
    --text-light: #665348;
    --text-muted: #89796f;
    --border-color: #e6d8cf;
    --shadow: 0 2px 12px rgba(106, 39, 8, 0.06);
    --shadow-hover: 0 8px 32px rgba(106, 39, 8, 0.12);
    --shadow-strong: 0 16px 48px rgba(106, 39, 8, 0.16);
    }

body {
    margin: 0;
    padding: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    color: var(--text-color);
    line-height: 1.6;
    background-color: var(--white);
}

.site {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.site-content {
    flex: 1;
}

/* Header - Transparent over hero */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: transparent;
    transition: all 0.4s ease;
}

.site-header.scrolled {
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 2px 20px rgba(134, 181, 114, 0.06);
    border-bottom: 1px solid var(--border-color);
}

/* Header over a dark image hero - switch to light text for contrast */
.site-header.has-dark-hero:not(.scrolled) .main-navigation ul.nav-menu > li > a {
    color: rgba(255, 255, 255, 0.88);
}

.site-header.has-dark-hero:not(.scrolled) .main-navigation ul.nav-menu > li > a:hover {
    color: var(--accent-light);
    background-color: rgba(255, 255, 255, 0.14);
}

.site-header.has-dark-hero:not(.scrolled) .main-navigation ul.nav-menu > li.menu-item-has-children > a::after {
    color: rgba(255, 255, 255, 0.7);
}

.site-header.has-dark-hero:not(.scrolled) .site-logo svg text {
    fill: #ffffff;
}

.site-header.has-dark-hero:not(.scrolled) .menu-icon-bar {
    background-color: #ffffff;
}

/* Once scrolled the header is solid light, so restore dark elements */
.site-header.scrolled .site-logo svg text {
    fill: #6a2708;
}

.header-top-bar {
    background: #6a2708;
    color: var(--white);
    font-size: 12px;
    padding: 6px 0;
    transition: all 0.3s ease;
    letter-spacing: 0.03em;
}

.site-header.scrolled .header-top-bar {
    display: none;
}

.header-top-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-bar-left {
    display: flex;
    gap: 28px;
    align-items: center;
}

.top-bar-text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    opacity: 0.9;
    font-weight: 400;
}

.top-bar-social a {
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background-color: transparent;
    border-radius: 50%;
    transition: color 0.2s ease;
}

.top-bar-social a:hover {
    color: var(--accent-color);
}

/* Header Main */
.header-main {
    background: transparent;
    transition: all 0.3s ease;
}

.site-header.scrolled .header-main {
    background: transparent;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
    padding: 14px 32px;
}

.site-logo svg,
.site-logo img {
    height: 44px;
    width: auto;
    transition: all 0.3s ease;
}

.site-header.scrolled .site-logo svg,
.site-header.scrolled .site-logo img {
    height: 40px;
}

/* Navigation Menu - Clean, minimal */
.main-navigation ul.nav-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 2px;
}

.main-navigation ul.nav-menu > li {
    position: relative;
}

.main-navigation ul.nav-menu > li.menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 5px;
    padding-right: 20px;
}

.main-navigation ul.nav-menu > li.menu-item-has-children > a::after {
    content: '\f107';
    font-family: 'Font Awesome 6 Free';
    font-weight: 600;
    font-size: 10px;
    color: var(--text-muted);
    transition: transform 0.3s ease, color 0.3s ease;
    margin-left: 4px;
}

.main-navigation ul.nav-menu > li.menu-item-has-children > a {
    padding-right: 14px;
}

.main-navigation ul.nav-menu > li.menu-item-has-children:hover > a::after {
    transform: rotate(180deg);
    color: var(--primary-color);
}

.main-navigation ul.nav-menu > li > a {
    text-decoration: none;
    color: var(--text-color);
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0.04em;
    padding: 10px 14px;
    border-radius: 8px;
    position: relative;
    transition: all 0.2s ease;
    display: block;
    text-transform: uppercase;
}

.site-header:not(.scrolled) .main-navigation ul.nav-menu > li > a:hover {
    color: var(--accent-light);
    background-color: rgba(255, 255, 255, 0.1);
}

.site-header.scrolled .main-navigation ul.nav-menu > li > a:hover {
    color: var(--primary-color);
    background-color: rgba(134, 181, 114, 0.05);
}

.main-navigation ul.nav-menu > li > a::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--accent-color);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.main-navigation ul.nav-menu > li > a:hover::after {
    width: 50%;
}

/* Dropdown Menu */
.main-navigation ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 240px;
    border-radius: 14px;
    box-shadow: var(--shadow-strong);
    padding: 10px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 999;
    border: 1px solid var(--border-color);
    margin-top: 8px;
}

.main-navigation ul.nav-menu > li:hover > ul.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.main-navigation ul.sub-menu li {
    margin: 0;
    position: relative;
}

.main-navigation ul.sub-menu li.menu-item-has-children > a::after {
    content: '\f105';
    font-family: 'Font Awesome 6 Free';
    font-weight: 600;
    font-size: 11px;
    color: var(--text-muted);
    float: right;
    transition: transform 0.3s ease;
}

.main-navigation ul.sub-menu li.menu-item-has-children:hover > a::after {
    transform: translateX(4px);
}

.main-navigation ul.sub-menu li:hover > ul.sub-menu {
    top: 0;
    left: 100%;
    margin-top: -10px;
    margin-left: 8px;
    border-radius: 14px;
}

.main-navigation ul.sub-menu a {
    padding: 12px 24px;
    display: block;
    color: var(--text-color);
    font-size: 13px;
    font-weight: 400;
    transition: all 0.2s ease;
    border-radius: 0;
}

.main-navigation ul.sub-menu a:hover {
    background-color: var(--primary-color);
    color: var(--white);
    padding-left: 28px;
}

.main-navigation ul.sub-menu li:first-child a {
    border-radius: 14px 14px 0 0;
}

.main-navigation ul.sub-menu li:last-child a {
    border-radius: 0 0 14px 14px;
}

/* =====================================================
   Header CTA Buttons - unified button system
   Lead = gold pill, Secondary = outline pill
   ===================================================== */
.header-cta {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Lead action - gold pill with dark ink text */
.donate-button {
    background: #f0613b;
    color: #3b2116;
    border: none;
    padding: 13px 30px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
    box-shadow: 0 4px 16px rgba(240, 97, 59, 0.32);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    cursor: pointer;
}

.donate-button:hover {
    background: #d94d2e;
    color: #3b2116;
    transform: translateY(-2px);
    box-shadow: 0 8px 26px rgba(240, 97, 59, 0.42);
}

.donate-button .donate-text {
    font-weight: 600;
}

/* Secondary - outline pill */
.contact-button {
    background: transparent;
    color: #6a2708;
    border: 2px solid rgba(106, 39, 8, 0.28);
    padding: 11px 24px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.03em;
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    cursor: pointer;
}

.contact-button:hover {
    background: #6a2708;
    color: #ffffff;
    border-color: #6a2708;
    transform: translateY(-2px);
}

/* On a dark hero the outline goes white so it stays readable */
.site-header.has-dark-hero:not(.scrolled) .contact-button {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.45);
}

.site-header.has-dark-hero:not(.scrolled) .contact-button:hover {
    background: #ffffff;
    color: #6a2708;
    border-color: #ffffff;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    transition: background 0.3s ease;
}

.mobile-menu-toggle:hover {
    background: rgba(134, 181, 114, 0.08);
}

.site-header:not(.scrolled) .mobile-menu-toggle:hover {
    background: rgba(255, 255, 255, 0.15);
}

.menu-icon-bar {
    width: 22px;
    height: 2px;
    background-color: var(--text-color);
    transition: all 0.3s ease;
    border-radius: 2px;
}

.site-header:not(.scrolled) .menu-icon-bar {
    background-color: var(--white);
}

/* Mobile Menu - Full screen slide */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--primary-dark);
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
    overflow-y: auto;
}

.mobile-menu.active {
    opacity: 1;
    visibility: visible;
}

.mobile-menu-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--primary-dark);
}

.mobile-menu-content {
    position: relative;
    z-index: 1;
    max-width: 480px;
    margin: 0 auto;
    padding: 100px 24px 60px;
    text-align: left;
}

.mobile-menu-close {
    position: absolute;
    top: 32px;
    right: 24px;
    background: none;
    border: none;
    cursor: pointer;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    transition: background 0.3s ease;
}

.mobile-menu-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

.mobile-menu-close span {
    width: 28px;
    height: 2px;
    background-color: var(--white);
    transition: all 0.3s ease;
    transform-origin: center;
    display: block;
}

.mobile-menu-close span:nth-child(1) {
    transform: rotate(45deg) translate(2px, 2px);
}

.mobile-menu-close span:nth-child(2) {
    opacity: 1;
    transform: rotate(-45deg) translate(2px, -2px);
}

.mobile-menu-close span:nth-child(3) {
    transform: rotate(-45deg) translate(2px, -2px);
}

.mobile-nav-menu {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
}

.mobile-nav-menu li {
    margin-bottom: 8px;
}

.mobile-nav-menu a {
    color: var(--white);
    text-decoration: none;
    font-size: 28px;
    font-weight: 400;
    line-height: 1.2;
    display: block;
    padding: 8px 0;
    transition: color 0.3s ease, transform 0.3s ease;
    opacity: 0.9;
}

.mobile-nav-menu a:hover {
    color: var(--accent-light);
    transform: translateX(8px);
    opacity: 1;
}

/* Mobile Sub-menu */
.mobile-nav-menu .sub-menu {
    list-style: none;
    padding: 16px 0 0 16px;
    margin: 0;
    border-left: 2px solid rgba(240, 97, 59, 0.3);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.mobile-nav-menu .sub-menu li {
    margin-bottom: 12px;
}

.mobile-nav-menu .sub-menu a {
    font-size: 16px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.7);
}

.mobile-nav-menu .sub-menu a:hover {
    color: var(--accent-light);
}

.mobile-nav-menu li.sub-menu-open > .sub-menu {
    max-height: 500px;
}

/* Mobile Buttons */
.mobile-menu-buttons {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Mobile menu CTA buttons - same system as the header */
.mobile-donate, .mobile-contact {
    text-align: center;
    padding: 15px 32px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    cursor: pointer;
}

.mobile-donate {
    background: #f0613b;
    color: #3b2116;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(240, 97, 59, 0.32);
}

.mobile-donate:hover {
    background: #d94d2e;
    color: #3b2116;
    transform: translateY(-2px);
    box-shadow: 0 8px 26px rgba(240, 97, 59, 0.42);
}

.mobile-contact {
    background: transparent;
    color: #ffffff;
    text-decoration: none;
    border: 2px solid rgba(255, 255, 255, 0.35);
}

.mobile-contact:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: #6a2708;
    transform: translateY(-2px);
}

/* Sections */
.elementor-section {
    margin-bottom: 0;
}

.main-navigation ul.nav-menu > li > a:hover {
    color: var(--primary-color);
    background-color: rgba(106, 39, 8, 0.06);
}

/* Dropdown Menu */
.main-navigation ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 220px;
    border-radius: 10px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 999;
    border: 1px solid var(--border-color);
    margin-top: 8px;
}

.main-navigation ul.nav-menu > li:hover > ul.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.main-navigation ul.sub-menu li {
    margin: 0;
    position: relative;
}

.main-navigation ul.sub-menu li.menu-item-has-children > a::after {
    content: '\f105';
    font-family: 'Font Awesome 6 Free';
    font-weight: 600;
    font-size: 14px;
    color: var(--light-text);
    float: right;
    transition: transform 0.3s ease;
}

.main-navigation ul.sub-menu li.menu-item-has-children:hover > a::after {
    transform: translateX(4px);
}

.main-navigation ul.sub-menu li:hover > ul.sub-menu {
    top: 0;
    left: 100%;
    margin-top: -8px;
    margin-left: 8px;
    border-radius: 10px;
}

.main-navigation ul.sub-menu a {
    padding: 10px 18px;
    display: block;
    color: var(--text-color);
    font-size: 13px;
    font-weight: 400;
    transition: all 0.2s ease;
    border-radius: 0;
}

.main-navigation ul.sub-menu a:hover {
    background-color: var(--primary-color);
    color: var(--white);
    padding-left: 25px;
}

.main-navigation ul.sub-menu li:first-child a {
    border-radius: 10px 10px 0 0;
}

.main-navigation ul.sub-menu li:last-child a {
    border-radius: 0 0 10px 10px;
}

/* Header CTA buttons are defined once above (see "Header CTA Buttons"). */

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    flex-direction: column;
    gap: 5px;
    padding: 5px;
    width: 36px;
    height: 28px;
    position: relative;
}

.menu-icon-bar {
    width: 25px;
    height: 2px;
    background-color: var(--primary-color);
    transition: all 0.3s ease;
    border-radius: 2px;
}

/* Mobile Menu */
.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.85);
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
    overflow-y: auto;
}

.mobile-menu.active {
    opacity: 1;
    visibility: visible;
}

.mobile-menu-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
}

.mobile-menu-content {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 20px;
    text-align: center;
}

.mobile-menu-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    cursor: pointer;
    width: 40px;
    height: 40px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0;
}

.mobile-menu-close span {
    width: 30px;
    height: 2px;
    background-color: var(--white);
    transition: all 0.3s ease;
    transform-origin: center;
}

.mobile-menu-close span:first-child {
    transform: rotate(45deg) translate(5px, 5px);
}

.mobile-menu-close span:last-child {
    transform: rotate(-45deg) translate(5px, -5px);
}

.mobile-nav-menu {
    list-style: none;
    padding: 0;
    margin: 40px 0;
}

.mobile-nav-menu li {
    margin-bottom: 15px;
}

.mobile-nav-menu a {
    color: var(--white);
    text-decoration: none;
    font-size: 18px;
    font-weight: 500;
    display: block;
    padding: 10px 0;
    transition: color 0.3s ease;
}

.mobile-nav-menu a:hover {
    color: var(--accent-color);
}

.mobile-menu-buttons {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 30px;
}

/* Mobile CTA buttons are styled once above (see "Mobile menu CTA buttons"). */

/* Sections */
.elementor-section {
    margin-bottom: 0;
}

/* Counter Widgets */
.elementor-counter {
    background: var(--white);
    border-radius: 12px;
    padding: 30px;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
    text-align: center;
}

.elementor-counter:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

.elementor-counter-title {
    font-size: 16px;
    color: var(--light-text);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.elementor-counter-number {
    font-size: 42px;
    font-weight: 700;
    color: var(--primary-color);
}

/* Icon Box Widgets */
.elementor-icon-box {
    background: var(--white);
    border-radius: 12px;
    padding: 40px;
    text-align: center;
    box-shadow: var(--shadow);
    height: 100%;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.elementor-icon-box:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-hover);
}

.elementor-icon-box .elementor-icon {
    font-size: 48px;
    color: var(--primary-color);
    margin-bottom: 20px;
}

.elementor-icon-box .elementor-icon-box-title {
    font-size: 20px;
    color: var(--primary-color);
    margin-bottom: 15px;
    flex: 0 0 auto;
}

.elementor-icon-box .elementor-icon-box-description {
    color: var(--light-text);
    flex: 1;
}

/* Testimonial Widgets */
.elementor-testimonial {
    background: var(--white);
    border-radius: 12px;
    padding: 30px;
    box-shadow: var(--shadow);
    height: 100%;
    transition: all 0.3s ease;
}

.elementor-testimonial:hover {
    box-shadow: var(--shadow-hover);
}

/* Social Icons */
.elementor-social-icons {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 15px;
}

.elementor-social-icon {
    background-color: transparent !important;
    color: var(--primary-dark) !important;
    margin: 0 !important;
    border-radius: 50% !important;
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--primary-dark) !important;
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease !important;
}

.elementor-social-icon:hover {
    background-color: var(--primary-dark) !important;
    color: var(--white) !important;
    border-color: var(--primary-dark) !important;
}

/* Google Maps */
.elementor-google-maps {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow);
}

/* Icon List */
.elementor-icon-list-items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.elementor-icon-list-item {
    margin-bottom: 12px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.elementor-icon-list-item .elementor-icon {
    color: var(--accent-color);
    font-size: 18px;
    margin-top: 2px;
}

/* Buttons */
.elementor-button {
    border-radius: 30px;
    font-weight: 600;
    padding: 14px 32px;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.elementor-button:hover {
    transform: translateY(-2px);
}

.elementor-widget-button .elementor-button {
    box-shadow: 0 4px 15px rgba(106, 39, 8, 0.3);
}

/* Icons List - inline */
.elementor-icon-list--layout-inline .elementor-icon-list-items {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

/* Divider */
.elementor-divider {
    margin: 30px 0;
}

.elementor-divider .elementor-divider-wrapper {
    width: 50px;
    margin: 0 auto;
}

.elementor-divider .elementor-divider-scenario {
    border-color: var(--accent-color);
}

/* =====================================================
   Hero Background Slider
   ===================================================== */

/* Prevent FOUC - hide slides until they're ready */
.hero-slider-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 0;
    overflow: hidden;
}

.hero-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
}

.hero-slide.active {
    opacity: 1;
}

.hero-slider-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(48, 27, 16, 0.92);
    z-index: 1;
}

/* Navigation dots */
.hero-slider-dots {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 10;
}

.hero-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
    padding: 0;
    box-sizing: border-box;
}

.hero-dot.active {
    background: var(--accent-color);
    transform: scale(1.2);
}

/* Arrow navigation (created dynamically by hero-slider.js) */
.hero-nav-btn {
    position: absolute;
    top: 50%;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: var(--white);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-family: Arial, sans-serif;
    line-height: 1;
    user-select: none;
    transform: translateY(-50%);
    z-index: 10;
}

.hero-nav-btn:hover {
    background: var(--accent-color);
    color: var(--primary-dark);
    transform: translateY(-50%) scale(1.1);
    border-color: var(--accent-color);
}

.hero-prev {
    left: 20px;
}

.hero-next {
    right: 20px;
}

/* Ensure hero section content renders above the slider */
.elementor-section#hero-section .elementor-widget-wrap > .elementor-element:not(.elementor-element-hero-slider) {
    position: relative;
    z-index: 2;
}

/* Slider dots and nav buttons should be above everything */
.hero-slider-dots {
    z-index: 10;
}

/* Align hero content with header width (max-width: 1400px, padding: 32px) */
.elementor-section#hero-section .elementor-column {
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 32px !important;
    box-sizing: border-box;
}

/* Offset hero content below the fixed header on home page */
body.home .elementor-section#hero-section {
    scroll-margin-top: 120px;
}

/* Ensure the slider starts below the header area */
.elementor-section#hero-section .elementor-widget-wrap {
    padding-top: 120px;
}

/* Adjust dot position to account for shape divider */
.elementor-section#hero-section .hero-slider-dots {
    bottom: 100px;
}

/* Mobile adjustments */
@media (max-width: 992px) {
    .elementor-section#hero-section .hero-slider-dots {
        bottom: 80px;
    }

    .elementor-section#hero-section .hero-nav-btn {
        width: 48px;
        height: 48px;
        font-size: 16px;
    }

    .hero-prev {
        left: 12px;
    }

    .hero-next {
        right: 12px;
    }
}

/* =====================================================
   Footer - Clean, light, editorial
   ===================================================== */
.site-footer {
    background: #fbfaf7;
    color: var(--text-light);
    position: relative;
}

.footer-accent-bar {
    height: 3px;
    background: var(--accent-color);
    position: relative;
    z-index: 1;
}

.footer-top {
    position: relative;
    z-index: 1;
    padding: 64px 0 52px;
}

.footer-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.4fr;
    gap: 56px;
}

/* Brand column */
.footer-column.footer-brand {
    padding-right: 24px;
}

.footer-logo {
    margin-bottom: 20px;
}

.footer-logo svg,
.footer-logo img {
    height: 44px;
    width: auto;
}

.footer-tagline {
    color: var(--primary-dark);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    max-width: 300px;
    margin: 0 0 14px;
}

.footer-description {
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.7;
    max-width: 340px;
    margin: 0 0 24px;
}

.footer-column h3 {
    color: var(--primary-dark);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 20px;
    padding-bottom: 12px;
    position: relative;
}

.footer-column h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 24px;
    height: 2px;
    background: var(--accent-color);
    border-radius: 2px;
}

.footer-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-column ul li {
    margin-bottom: 11px;
}

.footer-column a {
    color: var(--text-light);
    text-decoration: none;
    font-size: 14.5px;
    transition: color 0.2s ease;
}

.footer-column ul li a {
    display: inline-block;
}

.footer-column ul li a:hover {
    color: var(--accent-color);
}

/* Contact info block */
.contact-info li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--text-light);
    font-size: 14.5px;
    line-height: 1.7;
}

.contact-info li i {
    color: var(--accent-color);
    font-size: 13px;
    margin-top: 4px;
    width: 14px;
    flex-shrink: 0;
    text-align: center;
}

.contact-info li a:hover {
    color: var(--accent-color);
}

.footer-hours {
    color: var(--text-muted);
    font-size: 13px;
    margin: 18px 0 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-hours i {
    color: var(--accent-color);
}

/* Footer CTA button */
.footer-cta-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
    padding: 14px 30px;
    background: var(--primary-dark);
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.03em;
    border-radius: 100px;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}

.footer-cta-button:hover {
    background: var(--accent-color);
    color: var(--primary-dark);
    transform: translateY(-2px);
}

/* Footer bottom bar */
.footer-bottom {
    background: #f0ede7;
    border-top: 1px solid var(--border-color);
    padding: 22px 0;
    position: relative;
    z-index: 1;
}

.footer-bottom-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    color: var(--text-muted);
    font-size: 13px;
}

.footer-bottom-container p {
    margin: 0;
}

.footer-bottom-links {
    display: flex;
    gap: 24px;
}

.footer-bottom a {
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer-bottom a:hover {
    color: var(--accent-color);
}

/* =====================================================
   Inline buttons (cards + newsletter form)
   ===================================================== */

/* "Learn more" link inside programme cards */
.ecrdi-card-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 22px;
    border: 2px solid rgba(240, 97, 59, 0.45);
    border-radius: 100px;
    color: #6a2708;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.ecrdi-card-link:hover {
    background: #f0613b;
    border-color: #f0613b;
    color: #3b2116;
    transform: translateY(-2px);
}

.ecrdi-card-link i {
    font-size: 13px;
    transition: transform 0.25s ease;
}

.ecrdi-card-link:hover i {
    transform: translateX(3px);
}

/* Newsletter submit button */
.ecrdi-submit {
    background: #f0613b;
    color: #3b2116;
    border: none;
    padding: 16px 38px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 0.02em;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(240, 97, 59, 0.30);
    transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.ecrdi-submit:hover {
    background: #ff8b6b;
    color: #3b2116;
    transform: translateY(-2px);
    box-shadow: 0 8px 26px rgba(240, 97, 59, 0.42);
}

/* Responsive */
@media (max-width: 992px) {
    .main-navigation ul {
        gap: 20px;
    }

    .footer-container {
        grid-template-columns: 1fr 1fr;
        gap: 40px 32px;
    }

    .footer-column.footer-brand {
        grid-column: 1 / -1;
        padding-right: 0;
    }

    .footer-tagline,
    .footer-description {
        max-width: 100%;
    }
}

/* Footer - Tablet */
@media (max-width: 768px) {
    .footer-top {
        padding: 56px 0 44px;
    }

    .footer-container {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .footer-bottom-container {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 768px) {
    .mobile-menu-toggle {
        display: flex;
    }

    .main-navigation {
        display: none;
    }

    .elementor-icon-box {
        padding: 30px 20px;
    }

    .header-container {
        padding: 0 15px;
    }
}

/* Elementor Typography */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6 {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-weight: inherit;
}

/* Page content padding */
.site-content {
    padding-top: 0;
}

/* Hero slider responsive */
@media (max-width: 768px) {
    .hero-slider-dots {
        bottom: 20px;
    }

    .hero-dot {
        width: 10px;
        height: 10px;
    }

    .hero-slider-container {
        height: 100vh;
    }
}

/* Homepage header and image-led hero */
.header-container {
    max-width: 1480px;
    padding: 12px 28px;
    gap: 18px;
}

.site-logo {
    flex: 0 0 auto;
}

.site-logo svg,
.site-logo img {
    height: 42px;
    width: auto;
}

.main-navigation {
    min-width: 0;
}

.main-navigation ul.nav-menu {
    gap: 0;
}

.main-navigation ul.nav-menu > li > a {
    padding: 10px 9px;
    font-size: 11px;
    letter-spacing: 0.025em;
    white-space: nowrap;
}

.main-navigation ul.nav-menu > li.menu-item-has-children > a {
    padding-right: 12px;
}

.header-cta {
    flex: 0 0 auto;
    gap: 8px;
}

.donate-button,
.contact-button {
    padding: 10px 18px;
    font-size: 12px;
}

.contact-button {
    border-width: 1px;
}

body.home .elementor-element-hero-section {
    position: relative;
    min-height: max(760px, 100svh);
    background-color: #23140c;
    background-image: url("../../uploads/ecrdi/hero-community.jpg") !important;
    background-size: cover;
    background-position: center 42%;
    background-repeat: no-repeat;
    overflow: hidden;
    isolation: isolate;
    scroll-margin-top: 0;
}

/* Who We Are page: image led introduction and clear content panels. */
body:not(.home) .elementor-element-wwa-hero {
    position: relative;
    isolation: isolate;
    min-height: 390px;
    display: flex;
    align-items: center;
    background-color: #6a2708 !important;
    background-image: url("../../uploads/ecrdi/hero-who-we-are.jpg") !important;
    background-size: cover !important;
    background-position: center 44% !important;
    padding-top: 90px !important;
    padding-bottom: 76px !important;
}

.elementor-element-wwa-hero .elementor-container,
.elementor-element-wwa-hero .elementor-column,
.elementor-element-wwa-hero .elementor-widget-wrap {
    width: 100%;
}

.elementor-element-wwa-hero .elementor-heading-title {
    color: #fff !important;
    font-size: clamp(42px, 6vw, 68px) !important;
    letter-spacing: -.035em;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .2);
}

.elementor-element-wwa-hero .elementor-widget-text-editor {
    max-width: 680px;
    margin: 0 auto;
}

.elementor-element-wwa-hero .elementor-widget-text-editor p {
    color: rgba(255, 255, 255, .92) !important;
    font-size: clamp(17px, 2vw, 21px) !important;
    line-height: 1.65;
}

.elementor-element-wwa-intro {
    padding-top: 64px !important;
    padding-bottom: 48px !important;
    background: #f5f8f3;
}

.elementor-element-wwa-intro .elementor-widget-text-editor {
    max-width: 940px;
    margin: 0 auto;
    padding: 30px 36px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .08);
    border-left: 4px solid #f0613b;
    border-radius: 14px;
    box-shadow: 0 14px 38px rgba(28, 56, 39, .07);
}

.elementor-element-wwa-intro p,
.elementor-element-wwa-story p,
.elementor-element-wwa-vm p {
    color: #665348;
    font-size: 17px;
    line-height: 1.85;
}

.elementor-element-wwa-story {
    align-items: center;
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}

.elementor-element-wwa-story .elementor-heading-title,
.elementor-element-wwa-different .elementor-heading-title,
.elementor-element-wwa-values .elementor-heading-title {
    color: #6a2708 !important;
    letter-spacing: -.025em;
}

.elementor-element-wwa-story .elementor-widget-image img {
    width: 100%;
    max-height: 440px;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 20px 48px rgba(28, 56, 39, .16);
}

.elementor-element-wwa-different {
    padding-top: 68px !important;
    padding-bottom: 18px !important;
    background: #f5f8f3;
}

.elementor-element-wwa-different-grid {
    padding-top: 14px !important;
    padding-bottom: 72px !important;
    background: #f5f8f3;
}

.elementor-element-wwa-different-grid > .elementor-container {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.elementor-element-wwa-different-grid > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
    padding: 26px 22px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .08);
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(28, 56, 39, .06);
    transition: transform .2s ease, box-shadow .2s ease;
}

.elementor-element-wwa-different-grid > .elementor-container > .elementor-column:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 38px rgba(28, 56, 39, .11);
}

.elementor-element-wwa-different-grid .elementor-icon {
    color: #6a2708;
}

.elementor-element-wwa-different-grid .elementor-icon-box-title {
    color: #6a2708;
    font-size: 18px;
}

.elementor-element-wwa-different-grid .elementor-icon-box-description {
    color: #665348;
    line-height: 1.7;
}

.elementor-element-wwa-vm {
    gap: 22px;
    padding-top: 72px !important;
    padding-bottom: 72px !important;
    background: #f5f8f3 !important;
}

.elementor-element-wwa-vm > .elementor-container {
    gap: 22px;
}

.elementor-element-wwa-vm > .elementor-container > .elementor-column {
    width: calc(50% - 11px) !important;
    padding: 34px;
    background: #fff;
    border-radius: 16px;
    border-top: 3px solid #f0613b;
    box-shadow: 0 12px 32px rgba(28, 56, 39, .07);
}

.elementor-element-wwa-vm .elementor-heading-title {
    color: #6a2708 !important;
}

.elementor-element-wwa-values {
    padding-top: 72px !important;
    padding-bottom: 78px !important;
}

.elementor-element-wwa-values .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 20px;
    max-width: 1000px;
    margin: 0 auto;
}

.elementor-element-wwa-values .elementor-icon-list-item {
    padding: 16px 18px;
    background: #f5f8f3;
    border-radius: 10px;
    color: #665348;
}

@media (max-width: 767px) {
    .elementor-element-wwa-hero {
        min-height: 320px;
        padding: 70px 18px 54px !important;
        background-position: 58% center !important;
    }

    .elementor-element-wwa-intro .elementor-widget-text-editor {
        padding: 22px;
    }

    .elementor-element-wwa-story,
    .elementor-element-wwa-different,
    .elementor-element-wwa-values {
        padding: 48px 18px !important;
    }

    .elementor-element-wwa-different-grid > .elementor-container,
    .elementor-element-wwa-values .elementor-icon-list-items {
        grid-template-columns: 1fr;
    }

    .elementor-element-wwa-vm > .elementor-container > .elementor-column {
        width: 100% !important;
        padding: 26px 22px;
    }
}

/* What We Do page: programme areas presented as a consistent visual grid. */
body:not(.home) .elementor-element-wwa-intro {
    padding: 64px 24px !important;
    background: var(--light-bg);
}

body:not(.home) .elementor-element-wwa-intro > .elementor-container {
    max-width: 1180px;
}

body:not(.home) .elementor-element-wwa-intro .elementor-widget-text-editor {
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.ecrdi-about-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
    align-items: center;
    gap: 42px;
}

.ecrdi-about-intro-grid p,
.elementor-element-wwa-story p {
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.8;
}

.ecrdi-about-intro-grid p + p {
    margin-top: 16px;
}

.ecrdi-about-intro-grid figure,
.ecrdi-about-story-photo {
    overflow: hidden;
    margin: 0;
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    background: var(--border-color);
}

.ecrdi-about-intro-grid img,
.ecrdi-about-story-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.elementor-element-wwa-story > .elementor-container {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr);
    align-items: center;
    gap: 42px;
    max-width: 1180px;
}

.elementor-element-wwa-story > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
}

.elementor-element-wwa-story .elementor-widget-text-editor > .elementor-widget-container {
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.8;
}

.elementor-element-wwa-different {
    background: var(--light-bg);
}

.elementor-element-wwa-different > .elementor-container {
    max-width: 1180px;
}

.ecrdi-about-differences-grid,
.ecrdi-about-objectives-grid,
.ecrdi-about-approach-grid,
.ecrdi-about-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.ecrdi-about-differences-grid article,
.ecrdi-about-objectives-grid article,
.ecrdi-about-approach-grid article,
.ecrdi-about-values-grid article {
    padding: 22px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--white);
}

.ecrdi-about-differences-grid article:last-child,
.ecrdi-about-objectives-grid article:last-child,
.ecrdi-about-approach-grid article:last-child {
    grid-column: 2;
}

.ecrdi-about-eyebrow,
.ecrdi-about-goal > p:first-child {
    margin: 0 0 10px;
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 700;
}

.ecrdi-about-differences-grid article p:last-child,
.ecrdi-about-objectives-grid article p,
.ecrdi-about-approach-grid article p {
    margin: 0;
    color: var(--text-light);
    font-size: 15px;
    line-height: 1.7;
}

.ecrdi-about-differences-grid article .ecrdi-about-eyebrow {
    color: var(--primary-dark);
}

.elementor-element-wwa-vm > .elementor-container > .elementor-column {
    border-radius: 6px;
}

.elementor-element-wwa-values {
    background: var(--white);
}

.ecrdi-about-values-grid article {
    display: flex;
    min-height: 108px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
}

.ecrdi-about-values-grid i {
    color: var(--accent-color);
    font-size: 20px;
}

.ecrdi-about-values-grid h3,
.ecrdi-about-objectives-grid h3,
.ecrdi-about-approach-grid h3 {
    margin: 0 0 10px;
    color: var(--primary-dark);
    font-size: 17px;
    line-height: 1.4;
}

.ecrdi-about-goal {
    max-width: 920px;
    margin: 0 auto 28px;
    padding: 24px 28px;
    border-left: 4px solid var(--accent-color);
    background: var(--light-bg);
}

.ecrdi-about-goal > p:last-child {
    margin: 0;
    color: var(--primary-dark);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.6;
}

.ecrdi-about-objectives-grid article > span {
    display: block;
    margin-bottom: 14px;
    color: var(--accent-color);
    font-size: 14px;
    font-weight: 700;
}

.ecrdi-about-served-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 24px;
    margin: 22px 0;
    padding: 0;
    list-style: none;
}

.ecrdi-about-served-list li {
    padding: 12px 0 12px 20px;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-light);
    line-height: 1.6;
}

.ecrdi-about-served-list li::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin: 0 12px 2px -20px;
    border-radius: 50%;
    background: var(--accent-color);
}

.ecrdi-about-related-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 24px;
}

.ecrdi-about-related-links a {
    color: var(--primary-dark);
    font-weight: 600;
    text-decoration-color: var(--accent-color);
    text-underline-offset: 4px;
}

.elementor-element-wwa-who-we-serve .elementor-widget-text-editor > .elementor-widget-container,
.elementor-element-wwa-governance .elementor-widget-text-editor > .elementor-widget-container {
    max-width: 980px;
    margin: 0 auto;
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.8;
}

@media (max-width: 767px) {
    .ecrdi-about-intro-grid,
    .elementor-element-wwa-story > .elementor-container {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .ecrdi-about-differences-grid,
    .ecrdi-about-objectives-grid,
    .ecrdi-about-approach-grid,
    .ecrdi-about-values-grid,
    .ecrdi-about-served-list {
        grid-template-columns: 1fr;
    }

    .ecrdi-about-differences-grid article:last-child,
    .ecrdi-about-objectives-grid article:last-child,
    .ecrdi-about-approach-grid article:last-child {
        grid-column: auto;
    }
}

/* What We Do page: programme areas presented as a consistent visual grid. */
.elementor-element-wwd-hero {
    position: relative;
    isolation: isolate;
    min-height: 390px;
    display: flex;
    align-items: center;
    background-color: #6a2708 !important;
    background-image: url("../../uploads/ecrdi/hero-what-we-do.jpg") !important;
    background-size: cover !important;
    background-position: center 45% !important;
    padding: 90px 20px 76px !important;
}

.elementor-element-wwd-hero .elementor-heading-title {
    color: #fff !important;
    font-size: clamp(42px, 6vw, 68px) !important;
    letter-spacing: -.035em;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .2);
}

.elementor-element-wwd-hero .elementor-widget-text-editor {
    max-width: 720px;
    margin: 0 auto;
}

.elementor-element-wwd-hero .elementor-widget-text-editor p {
    color: rgba(255, 255, 255, .94) !important;
    font-size: clamp(17px, 2vw, 21px) !important;
    line-height: 1.65;
}

.elementor-element-wwd-intro {
    padding: 56px 24px 48px !important;
    background: var(--white);
}

.elementor-element-wwd-intro .elementor-widget-text-editor {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
}

.elementor-element-wwd-intro p {
    color: var(--text-light);
    font-size: 18px;
    line-height: 1.75;
}

body:not(.home) .elementor-element-wwd-intro {
    padding: 64px 24px !important;
    background: var(--light-bg);
}

body:not(.home) .elementor-element-wwd-intro > .elementor-container,
body:not(.home) .elementor-element-wwd-featured-projects > .elementor-container {
    max-width: 1200px;
}

body:not(.home) .elementor-element-wwd-intro .elementor-widget-text-editor,
body:not(.home) .elementor-element-wwd-featured-projects .elementor-widget-text-editor {
    max-width: none;
    margin: 0;
    text-align: left;
}

body:not(.home) .elementor-element-wwd-intro .elementor-element-wwd-themes-title .elementor-heading-title,
body:not(.home) .elementor-element-wwd-featured-projects .elementor-element-wwd-projects-title .elementor-heading-title {
    margin-bottom: 26px;
    color: var(--primary-dark);
    font-size: 34px;
}

.ecrdi-work-theme-grid,
.ecrdi-work-project-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 18px;
}

.ecrdi-work-card {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    grid-column: span 2;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--white);
}

.ecrdi-work-card:nth-child(4) {
    grid-column: 2 / span 2;
}

.ecrdi-work-card:nth-child(5) {
    grid-column: 4 / span 2;
}

.ecrdi-work-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.ecrdi-work-card-content {
    flex: 1 1 auto;
    padding: 22px 24px 26px;
}

.ecrdi-work-card-label {
    margin: 0 0 10px;
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

.ecrdi-work-card h3 {
    margin: 0 0 12px;
    color: var(--primary-dark);
    font-size: 20px;
    line-height: 1.4;
}

.ecrdi-work-card-content > p:last-child {
    margin: 0;
    color: var(--text-light);
    font-size: 15px;
    line-height: 1.7;
}

.elementor-element-wwd-featured-projects {
    padding: 72px 24px !important;
    background: var(--white);
}

.elementor-element-wwd-featured-projects .elementor-element-wwd-projects-title .elementor-heading-title {
    font-size: 36px;
}

.elementor-element-wwd-related {
    padding: 52px 24px !important;
    background: var(--light-bg);
}

.elementor-element-wwd-related .elementor-container {
    max-width: 1120px;
}

.ecrdi-work-related-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
}

.ecrdi-work-related-links a {
    padding: 8px 0;
    border-bottom: 2px solid var(--accent-color);
    color: var(--primary-dark);
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 900px) {
    .ecrdi-work-theme-grid,
    .ecrdi-work-project-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ecrdi-work-card,
    .ecrdi-work-card:nth-child(4) {
        grid-column: auto;
    }

    .ecrdi-work-card:nth-child(5) {
        grid-column: 1 / -1;
        width: calc(50% - 9px);
        justify-self: center;
    }
}

@media (max-width: 600px) {
    body:not(.home) .elementor-element-wwd-intro,
    .elementor-element-wwd-featured-projects {
        padding: 48px 20px !important;
    }

    .ecrdi-work-theme-grid,
    .ecrdi-work-project-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .ecrdi-work-card,
    .ecrdi-work-card:nth-child(4),
    .ecrdi-work-card:nth-child(5) {
        width: 100%;
        grid-column: auto;
    }

    .ecrdi-work-card-content {
        padding: 18px 20px 22px;
    }

    .ecrdi-work-related-links {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}

.elementor-element-wwd-p1,
.elementor-element-wwd-p2,
.elementor-element-wwd-p3,
.elementor-element-wwd-p4,
.elementor-element-wwd-p5 {
    padding: 56px 24px !important;
    background: var(--white);
    border-top: 1px solid var(--border-color);
}

.elementor-element-wwd-p1 .elementor-container,
.elementor-element-wwd-p2 .elementor-container,
.elementor-element-wwd-p3 .elementor-container,
.elementor-element-wwd-p4 .elementor-container,
.elementor-element-wwd-p5 .elementor-container {
    max-width: 920px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 28px;
    align-items: start;
}

.elementor-element-wwd-p1 .elementor-column,
.elementor-element-wwd-p2 .elementor-column,
.elementor-element-wwd-p3 .elementor-column,
.elementor-element-wwd-p4 .elementor-column,
.elementor-element-wwd-p5 .elementor-column {
    width: auto !important;
    min-width: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.elementor-element-wwd-p1 .elementor-icon,
.elementor-element-wwd-p2 .elementor-icon,
.elementor-element-wwd-p3 .elementor-icon,
.elementor-element-wwd-p4 .elementor-icon,
.elementor-element-wwd-p5 .elementor-icon {
    color: var(--accent-color);
    background: none;
    border-radius: 0;
    padding: 0;
    font-size: 40px;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: 50%;
}

.elementor-element-wwd-p1 .elementor-icon-box-title,
.elementor-element-wwd-p2 .elementor-icon-box-title,
.elementor-element-wwd-p3 .elementor-icon-box-title,
.elementor-element-wwd-p4 .elementor-icon-box-title,
.elementor-element-wwd-p5 .elementor-icon-box-title {
    color: var(--primary-dark);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 8px;
}

.elementor-element-wwd-p1 .elementor-icon-box-description,
.elementor-element-wwd-p2 .elementor-icon-box-description,
.elementor-element-wwd-p3 .elementor-icon-box-description,
.elementor-element-wwd-p4 .elementor-icon-box-description,
.elementor-element-wwd-p5 .elementor-icon-box-description {
    color: var(--text-light);
    font-size: 15px;
    line-height: 1.7;
}

.elementor-element-wwd-p5 {
    padding-bottom: 76px !important;
}

.elementor-element-wwd-cta {
    padding: 72px 24px !important;
    background: var(--light-bg);
}

.elementor-element-wwd-cta > .elementor-container {
    max-width: 720px;
    margin: 0 auto;
    padding: 48px 32px;
    background: var(--white);
    border: 1px solid var(--border-color);
    border-top: 3px solid var(--accent-color);
    border-radius: 0;
    box-shadow: none;
    text-align: center;
}

.elementor-element-wwd-cta .elementor-heading-title {
    color: var(--primary-dark) !important;
    font-size: clamp(28px, 4vw, 38px) !important;
}

.elementor-element-wwd-cta .elementor-widget-text-editor p {
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.7;
    text-align: center;
}

@media (max-width: 767px) {
    .elementor-element-wwd-hero {
        min-height: 320px;
        padding: 70px 18px 54px !important;
        background-position: 58% center !important;
    }

    .elementor-element-wwd-intro {
        padding-top: 42px !important;
        padding-inline: 18px !important;
    }

    .elementor-element-wwd-intro .elementor-widget-text-editor {
        text-align: left;
    }

    .elementor-element-wwd-p1,
    .elementor-element-wwd-p2,
    .elementor-element-wwd-p3,
    .elementor-element-wwd-p4,
    .elementor-element-wwd-p5 {
        padding: 40px 18px !important;
    }

    .elementor-element-wwd-p1 .elementor-container,
    .elementor-element-wwd-p2 .elementor-container,
    .elementor-element-wwd-p3 .elementor-container,
    .elementor-element-wwd-p4 .elementor-container,
    .elementor-element-wwd-p5 .elementor-container {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .elementor-element-wwd-p1 .elementor-icon,
    .elementor-element-wwd-p2 .elementor-icon,
    .elementor-element-wwd-p3 .elementor-icon,
    .elementor-element-wwd-p4 .elementor-icon,
    .elementor-element-wwd-p5 .elementor-icon {
        display: none;
    }

    .elementor-element-wwd-cta {
        padding: 52px 18px !important;
    }

    .elementor-element-wwd-cta > .elementor-container {
        padding: 30px 20px;
    }
}

body.home .elementor-element-hero-section > .elementor-container {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: none;
    min-height: inherit;
}

body.home .elementor-element-hero-section > .elementor-container > .elementor-column {
    width: 100%;
    max-width: none !important;
    min-height: inherit;
    padding: 0 !important;
}

body.home .elementor-element-hero-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    max-width: 1320px;
    min-height: inherit;
    margin: 0 auto;
    padding: clamp(155px, 18vh, 205px) 40px 150px;
    box-sizing: border-box;
}

body.home .elementor-element-hero-section .elementor-element-hero-slider {
    position: absolute !important;
    top: 0;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    z-index: 0 !important;
    width: 100vw;
    height: 100%;
    margin: 0;
    pointer-events: none;
}

body.home .elementor-element-hero-section .hero-slider-container {
    position: absolute;
    top: 0;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100vw;
    height: 100%;
    max-width: none;
}

body.home .elementor-element-hero-section .hero-slide {
    background-position: center 42%;
    transform: scale(1.015);
    transition: opacity 1.2s ease-in-out, transform 7s ease;
}

body.home .elementor-element-hero-section .hero-slide.active {
    transform: scale(1.07);
}

body.home .elementor-element-hero-section .hero-slider-overlay {
    background: rgba(35, 20, 12, 0.68);
}

body.home .elementor-element-hero-section .elementor-element-hero-tagline {
    width: 100%;
    max-width: 760px;
    margin: 0 0 12px !important;
}

body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
    color: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.5;
    text-transform: uppercase;
}

body.home .elementor-element-hero-section .elementor-element-hero-accent {
    width: 56px;
    height: 3px;
    margin: 0 0 22px !important;
    background: var(--accent-color);
}

body.home .elementor-element-hero-section .elementor-element-hero-accent .elementor-widget-container {
    height: 3px;
    background: var(--accent-color);
}

body.home .elementor-element-hero-section .elementor-element-hero-title {
    width: 100%;
    max-width: 1100px;
    margin: 0 0 20px !important;
}

body.home .elementor-element-hero-section .elementor-element-hero-title .elementor-heading-title {
    color: #ffffff;
    font-size: clamp(44px, 4.7vw, 66px);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 1.06;
}

body.home .elementor-element-hero-section .elementor-element-hero-text {
    width: 100%;
    max-width: 680px;
    margin: 0 0 24px !important;
}

body.home .elementor-element-hero-section .elementor-element-hero-text p {
    max-width: 660px !important;
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: clamp(16px, 1.35vw, 19px) !important;
    line-height: 1.7 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons {
    width: auto;
    max-width: 100%;
    margin: 0 0 4px;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons > .elementor-container {
    display: flex;
    width: auto;
    max-width: none;
    gap: 12px;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column {
    width: auto !important;
    flex: 0 0 auto;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-widget-wrap {
    min-height: 0;
    padding: 0;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-button {
    min-height: 50px;
    padding: 14px 26px;
    border: 1px solid var(--accent-color);
    border-radius: 999px;
    background: var(--accent-color);
    color: #3b2116;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    font-size: 14px;
}

body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:last-child .elementor-button {
    border-color: rgba(255, 255, 255, 0.68);
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    box-shadow: none;
}

body.home .elementor-element-hero-section .elementor-element-hero-trust {
    width: 100%;
    margin: 12px 0 0 !important;
}

body.home .elementor-element-hero-section .elementor-element-hero-trust p {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

body.home .elementor-element-hero-section .elementor-shape-bottom {
    position: absolute;
    left: 0;
    right: 0;
    top: auto !important;
    bottom: 0;
    z-index: 2;
    height: 72px;
    opacity: 0.45;
    pointer-events: none;
}

body.home .elementor-element-hero-section .elementor-shape-bottom .elementor-shape-fill {
    fill: #6a2708;
}

body.home .elementor-element-hero-section .hero-slider-dots {
    bottom: 32px;
    pointer-events: auto;
}

body.home .elementor-element-hero-section .hero-dot {
    width: 9px;
    height: 9px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.34);
}

body.home .elementor-element-hero-section .hero-dot.active {
    width: 26px;
    border-color: var(--accent-color);
    border-radius: 99px;
    background: var(--accent-color);
    transform: none;
}

body.home .elementor-element-hero-section .hero-nav-btn {
    width: 46px;
    height: 46px;
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(35, 20, 12, 0.35);
    backdrop-filter: blur(8px);
    pointer-events: auto;
    cursor: pointer;
}

body.home .elementor-element-hero-section .hero-nav-btn:focus-visible,
body.home .elementor-element-hero-section .hero-dot:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 4px;
}

@media (max-width: 1100px) {
    .main-navigation {
        display: none;
    }

    .mobile-menu-toggle {
        display: flex;
    }

    .header-container {
        max-width: none;
        padding: 10px 24px;
    }

    .header-cta .contact-button {
        display: none;
    }

    .site-header.has-dark-hero:not(.scrolled) .header-main {
        background: rgba(35, 20, 12, 0.35);
        backdrop-filter: blur(12px);
    }
}

@media (max-width: 767px) {
    .header-top-bar {
        display: none;
    }

    .header-container {
        padding: 10px 18px;
    }

    .site-logo svg,
.site-logo img {
        height: 38px;
    }

    .header-cta {
        gap: 8px;
    }

    .header-cta .donate-button {
        padding: 9px 15px;
        font-size: 11px;
    }

    body.home .elementor-element-hero-section {
        min-height: max(740px, 100svh);
    }

    body.home .elementor-element-hero-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
        padding: 132px 24px 145px;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-tagline {
        max-width: 100%;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
        font-size: 10px;
        letter-spacing: 0.12em;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-title .elementor-heading-title {
        font-size: clamp(40px, 11vw, 54px);
    }

    body.home .elementor-element-hero-section .elementor-element-hero-text {
        max-width: 560px;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-text p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-buttons > .elementor-container {
        flex-wrap: wrap;
        gap: 10px;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-button {
        min-height: 46px;
        padding: 12px 19px;
        font-size: 13px;
    }

    body.home .elementor-element-hero-section .elementor-element-hero-trust p {
        font-size: 9px !important;
        letter-spacing: 0.08em !important;
    }

    body.home .elementor-element-hero-section .hero-slider-dots {
        bottom: 25px;
    }

    body.home .elementor-element-hero-section .hero-nav-btn {
        top: auto;
        bottom: 16px;
        width: 38px;
        height: 38px;
        transform: none;
    }

    body.home .elementor-element-hero-section .hero-nav-btn:hover {
        transform: scale(1.05);
    }

    body.home .elementor-element-hero-section .hero-prev {
        left: 18px;
    }

    body.home .elementor-element-hero-section .hero-next {
        right: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.home .elementor-element-hero-section .hero-slide {
        transition: opacity 0.2s ease;
        transform: none;
    }
}

/* Keep Elementor's inline homepage accents aligned with the logo palette. */
.elementor-element [style*="#1b4d3e"] {
    color: #6a2708 !important;
}

.elementor-element [style*="#5a6f64"] {
    color: #665348 !important;
}

.elementor-element [style*="#e8b82c"] {
    color: #f0613b !important;
}

.elementor-element [style*="#0d7377"] {
    color: #86b572 !important;
}

.elementor-element [style*="#2d6b4f"] {
    color: #6a2708 !important;
}

.elementor-element [style*="width:56px"][style*="background:rgba"] {
    background: rgba(134, 181, 114, 0.16) !important;
}

.elementor-element [style*="width:56px"][style*="background:rgba(232,184,44"] {
    background: rgba(240, 97, 59, 0.13) !important;
}

.elementor-element [style*="background:#e8b82c"],
.elementor-element [style*="background: #e8b82c"],
.elementor-element [style*="background-color:#e8b82c"],
.elementor-element [style*="background-color: #e8b82c"] {
    background-color: var(--accent-color) !important;
}

.elementor-element .elementor-divider-separator {
    border-color: var(--accent-color) !important;
}

/* Shared Elementor styling for interior pages and homepage sections. */
.elementor-widget-heading .elementor-heading-title {
    color: var(--primary-dark);
    line-height: 1.2;
}

.elementor-widget-text-editor,
.elementor-widget-icon-list {
    color: var(--text-light);
}

.elementor-widget-icon .elementor-icon,
.elementor-icon-list-item .elementor-icon {
    color: var(--primary-color);
}

.elementor-widget-button .elementor-button {
    border-radius: 999px !important;
    background: var(--accent-color);
    color: #3b2116;
    box-shadow: 0 6px 18px rgba(106, 39, 8, 0.14);
}

.elementor-widget-button .elementor-button:hover {
    background: var(--accent-dark);
    color: #ffffff;
    box-shadow: 0 9px 24px rgba(106, 39, 8, 0.2);
}

.elementor-widget-form input,
.elementor-widget-form textarea,
.elementor-widget-form select,
.elementor-widget-text-editor input,
.elementor-widget-text-editor textarea,
.elementor-widget-text-editor select {
    border: 1px solid var(--border-color);
    border-radius: 12px;
    background: #ffffff;
    color: var(--text-color);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.elementor-widget-form input:focus,
.elementor-widget-form textarea:focus,
.elementor-widget-form select:focus,
.elementor-widget-text-editor input:focus,
.elementor-widget-text-editor textarea:focus,
.elementor-widget-text-editor select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(134, 181, 114, 0.2);
    outline: none;
}

body.home .elementor-element-home-who-we-are {
    background: #f5f8f3;
}

body.home .elementor-element-home-who-we-are > .elementor-container {
    align-items: center;
    gap: 36px;
    max-width: 1240px;
}

body.home .elementor-element-home-who-we-are > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
}

body.home .elementor-element-home-who-we-are-intro-column {
    flex: 1.15 1 0;
}

body.home .elementor-element-home-who-we-are-context-column {
    flex: 0.85 1 0;
}

body.home .elementor-element-home-who-we-are .elementor-heading-title {
    color: var(--primary-dark);
    font-size: 36px;
    line-height: 1.2;
}

body.home .elementor-element-home-who-we-are .elementor-widget-text-editor p {
    margin: 0 0 16px;
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.8;
}

body.home .elementor-element-home-who-we-are .elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

body.home .ecrdi-home-who-we-are-photo {
    overflow: hidden;
    margin: 0;
    aspect-ratio: 4 / 5;
    border-radius: 6px;
    background: var(--border-color);
}

body.home .ecrdi-home-who-we-are-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 767px) {
    body.home .elementor-element-home-who-we-are {
        padding: 52px 20px;
    }

    body.home .elementor-element-home-who-we-are > .elementor-container {
        gap: 20px;
        flex-direction: column;
    }

    body.home .elementor-element-home-who-we-are > .elementor-container > .elementor-column {
        width: 100% !important;
        flex: 0 0 auto;
    }

    body.home .elementor-element-home-who-we-are .elementor-heading-title {
        font-size: 30px;
    }

    body.home .ecrdi-home-who-we-are-photo {
        aspect-ratio: 16 / 10;
    }
}

/* Homepage impact, programme, story, and signup sections. */
body.home .elementor-element-impact-stats {
    padding: 72px 24px 80px;
    background: #f5f8f3;
}

body.home .elementor-element-impact-stats-grid {
    padding: 18px 24px 56px;
    background: #f5f8f3;
}

body.home .elementor-element-impact-stats-grid .elementor-container {
    gap: 18px;
}

body.home .elementor-element-impact-stats-grid .elementor-column {
    padding: 0 8px;
}

body.home .elementor-element-impact-stats-grid .elementor-widget-wrap {
    height: 100%;
    padding: 26px 18px;
    border: 1px solid rgba(106, 39, 8, 0.08);
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(106, 39, 8, 0.06);
    text-align: center;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

body.home .elementor-element-impact-stats-grid .elementor-column:hover .elementor-widget-wrap {
    transform: translateY(-4px);
    box-shadow: 0 14px 32px rgba(106, 39, 8, 0.11);
}

body.home .elementor-element-impact-stats-grid [data-id$="-icon"] > .elementor-widget-container > div {
    margin-right: auto;
    margin-left: auto;
}

body.home .elementor-element-impact-stats-grid [data-id$="-value"] > .elementor-widget-container > div {
    font-size: clamp(34px, 3vw, 46px) !important;
}

body.home .elementor-element-impact-stats {
    text-align: center;
}

body.home .elementor-element-impact-stats .elementor-element-impact-stats-title {
    margin-bottom: 8px;
}

body.home .elementor-element-impact-stats .elementor-element-impact-stats-title .elementor-heading-title {
    margin-bottom: 32px;
    color: var(--primary-dark);
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vision-mission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
    text-align: left;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vision-card,
body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card {
    min-height: 220px;
    padding: 30px 32px;
    border-radius: 6px;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vision-card {
    border: 1px solid var(--border-color);
    border-top: 4px solid var(--accent-color);
    background: #ffffff;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card {
    border: 1px solid var(--primary-dark);
    background: var(--primary-dark);
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vm-label-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vm-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 50%;
    background: var(--light-bg);
    color: var(--primary-dark);
    font-size: 17px;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vm-label {
    margin: 0;
    color: var(--primary-dark);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card .ecrdi-vm-icon {
    background: rgba(255, 139, 107, 0.16);
    color: var(--accent-light);
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card .ecrdi-vm-label {
    color: var(--accent-light);
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-vm-statement {
    margin: 0;
    color: var(--text-color);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.65;
}

body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card .ecrdi-vm-statement {
    color: #ffffff;
}

body.home .elementor-element-home-core-values {
    background: #ffffff;
}

body.home .elementor-element-home-core-values > .elementor-container {
    max-width: 1240px;
}

body.home .elementor-element-home-core-values .elementor-heading-title {
    color: var(--primary-dark);
    font-size: 36px;
    line-height: 1.2;
}

body.home .elementor-element-home-core-values .elementor-element-home-core-values-items > .elementor-widget-container {
    max-width: 1120px;
    margin: 0 auto;
}

body.home .ecrdi-core-values-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

body.home .ecrdi-core-value {
    display: flex;
    min-height: 108px;
    align-items: center;
    gap: 16px;
    padding: 20px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: var(--light-bg);
}

body.home .ecrdi-core-value-icon {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 50%;
    background: var(--light-bg);
    color: var(--primary-dark);
    font-size: 18px;
}

body.home .ecrdi-core-value h3 {
    margin: 0;
    color: var(--text-color);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.45;
}

@media (max-width: 767px) {
    body.home .elementor-element-impact-stats {
        padding: 52px 20px 56px;
    }

    body.home .elementor-element-impact-stats .elementor-element-impact-stats-title .elementor-heading-title {
        margin-bottom: 24px;
        font-size: 30px;
    }

    body.home .elementor-element-impact-stats-subtitle .ecrdi-vision-mission-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    body.home .elementor-element-impact-stats-subtitle .ecrdi-vision-card,
    body.home .elementor-element-impact-stats-subtitle .ecrdi-mission-card {
        min-height: 0;
        padding: 24px;
    }

    body.home .elementor-element-impact-stats-subtitle .ecrdi-vm-statement {
        font-size: 18px;
    }

    body.home .elementor-element-home-core-values {
        padding: 52px 20px;
    }

    body.home .elementor-element-home-core-values .elementor-heading-title {
        font-size: 30px;
    }

    body.home .ecrdi-core-values-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    body.home .ecrdi-core-value {
        min-height: 88px;
        padding: 16px;
    }
}

body.home .elementor-element-programmes {
    padding: 76px 24px 18px;
    background: #ffffff;
    text-align: center;
}

body.home .elementor-element-programmes .elementor-element-programmes-title .elementor-heading-title {
    font-size: clamp(32px, 3.2vw, 42px);
    font-weight: 700;
    letter-spacing: -0.035em;
}

body.home .elementor-element-programmes .elementor-element-programmes-subtitle p {
    margin: 10px auto 0;
    color: var(--text-light);
    font-size: 16px;
}

body.home .elementor-element-programmes-grid,
body.home .elementor-element-programmes-grid-2 {
    padding: 18px 24px 12px;
    background: #ffffff;
}

body.home .elementor-element-programmes-grid .elementor-container,
body.home .elementor-element-programmes-grid-2 .elementor-container {
    gap: 20px;
    align-items: stretch;
}

body.home .elementor-element-programmes-grid-2 .elementor-container {
    justify-content: center;
}

body.home .elementor-element-programmes-grid-2 .elementor-column {
    width: calc(50% - 10px) !important;
    flex: 0 0 calc(50% - 10px) !important;
}

body.home .elementor-element-programmes-grid .elementor-column,
body.home .elementor-element-programmes-grid-2 .elementor-column {
    padding: 0 8px;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] .elementor-widget-container > div,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] .elementor-widget-container > div {
    display: flex;
    flex-direction: column;
    min-height: 280px;
    padding: 30px 28px !important;
    border: 1px solid rgba(106, 39, 8, 0.09) !important;
    border-radius: 20px !important;
    background: #ffffff !important;
    box-shadow: 0 8px 24px rgba(106, 39, 8, 0.06) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"]:hover .elementor-widget-container > div,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"]:hover .elementor-widget-container > div {
    transform: translateY(-5px);
    border-color: rgba(134, 181, 114, 0.55) !important;
    box-shadow: 0 16px 34px rgba(106, 39, 8, 0.12) !important;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] h3,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] h3 {
    margin: 20px 0 10px;
    color: var(--primary-dark) !important;
    font-size: 20px;
    line-height: 1.3;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] p,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] p {
    color: var(--text-light) !important;
    font-size: 15px;
    line-height: 1.7;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] .ecrdi-card-link,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] .ecrdi-card-link {
    align-self: flex-start;
    margin-top: auto;
}

body.home .elementor-element-programmes-cta {
    padding: 28px 24px 76px;
    background: #ffffff;
}

body.home .elementor-element-programmes-cta .elementor-container {
    justify-content: center;
    gap: 12px;
}

body.home .elementor-element-programmes-cta .elementor-column {
    width: auto !important;
    flex: 0 0 auto;
}

body.home .elementor-element-programmes-cta .elementor-button {
    min-height: 48px;
    padding: 13px 24px;
}

body.home .elementor-element-programmes-cta [data-id="prog-btn-2"] .elementor-button {
    border: 1px solid rgba(106, 39, 8, 0.3);
    background: #ffffff;
    color: var(--primary-dark);
    box-shadow: none;
}

body.home .elementor-element-programmes-cta [data-id="prog-btn-2"] .elementor-button:hover {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
    color: #ffffff;
}

body.home .elementor-element-home-featured-projects {
    padding: 72px 24px;
    background: #f5f8f3;
}

body.home .elementor-element-home-featured-projects > .elementor-container {
    max-width: 1160px;
}

body.home .elementor-element-home-featured-projects .elementor-heading-title {
    color: var(--primary-dark);
    font-size: 36px;
    line-height: 1.2;
}

body.home .ecrdi-featured-project-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 1000px;
    margin: 0 auto;
}

body.home .ecrdi-featured-project-card {
    display: flex;
    min-height: 330px;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: #ffffff;
}

body.home .ecrdi-featured-project-card:nth-child(5) {
    grid-column: 1 / -1;
    width: calc(50% - 8px);
    justify-self: center;
}

body.home .ecrdi-featured-project-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

body.home .ecrdi-featured-project-card-content {
    flex: 1 1 auto;
    padding: 20px 22px 24px;
}

body.home .ecrdi-featured-project-label {
    margin: 0 0 10px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

body.home .ecrdi-featured-project-card h3 {
    margin: 0;
    color: var(--primary-dark);
    font-size: 20px;
    line-height: 1.45;
}

@media (max-width: 767px) {
    body.home .elementor-element-home-featured-projects {
        padding: 52px 20px;
    }

    body.home .elementor-element-home-featured-projects .elementor-heading-title {
        font-size: 30px;
    }

    body.home .ecrdi-featured-project-grid {
        grid-template-columns: 1fr;
    }

    body.home .ecrdi-featured-project-card:nth-child(5) {
        grid-column: auto;
        width: 100%;
    }

    body.home .ecrdi-featured-project-card {
        min-height: 0;
    }
}

body.home .elementor-element-home-impact-numbers {
    padding: 72px 24px;
    background: #ffffff;
}

body.home .elementor-element-home-impact-numbers > .elementor-container {
    max-width: 1160px;
}

body.home .elementor-element-home-impact-numbers .elementor-heading-title {
    margin-bottom: 32px;
    color: var(--primary-dark);
    font-size: 36px;
    line-height: 1.2;
}

body.home .ecrdi-impact-numbers-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

body.home .ecrdi-impact-number {
    display: flex;
    min-height: 150px;
    flex-direction: column;
    justify-content: center;
    padding: 22px 18px;
    border: 1px solid var(--border-color);
    border-top: 3px solid var(--accent-color);
    border-radius: 6px;
    background: var(--light-bg);
    text-align: center;
}

body.home .ecrdi-impact-icon {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    align-self: center;
    margin-bottom: 12px;
    border-radius: 50%;
    background: var(--white);
    color: var(--primary-dark);
    font-size: 17px;
}

body.home .ecrdi-impact-value {
    margin: 0 0 10px;
    color: var(--primary-dark);
    font-size: 32px;
    font-weight: 700;
    line-height: 1.15;
}

body.home .ecrdi-impact-label {
    margin: 0;
    color: var(--text-light);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

@media (max-width: 900px) {
    body.home .ecrdi-impact-numbers-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    body.home .elementor-element-home-impact-numbers {
        padding: 52px 20px;
    }

    body.home .elementor-element-home-impact-numbers .elementor-heading-title {
        margin-bottom: 24px;
        font-size: 30px;
    }

    body.home .ecrdi-impact-numbers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    body.home .ecrdi-impact-number {
        min-height: 128px;
        padding: 18px 12px;
    }

    body.home .ecrdi-impact-value {
        font-size: 26px;
    }

    body.home .ecrdi-impact-label {
        font-size: 13px;
    }
}

body.home .elementor-element-impact-story {
    padding: 76px 24px;
    background: #f5f8f3;
}

body.home .elementor-element-impact-story > .elementor-container {
    align-items: center;
    gap: 52px;
    max-width: 1240px;
}

body.home .elementor-element-impact-story .elementor-element-story-image .elementor-widget-container > div {
    min-height: 440px !important;
    border: 8px solid #ffffff;
    border-radius: 24px !important;
    box-shadow: 0 18px 46px rgba(106, 39, 8, 0.14);
}

body.home .elementor-element-impact-story .elementor-element-story-tag .elementor-heading-title {
    color: var(--accent-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body.home .elementor-element-impact-story .elementor-element-story-title .elementor-heading-title {
    color: var(--primary-dark);
    font-size: clamp(32px, 3.5vw, 46px);
    font-weight: 700;
    letter-spacing: -0.035em;
}

body.home .elementor-element-impact-story .elementor-element-story-text p {
    color: var(--text-light) !important;
    font-size: 17px !important;
    line-height: 1.8 !important;
}

body.home .elementor-element-impact-story .elementor-element-story-quote blockquote {
    border-left-color: var(--accent-color) !important;
    color: var(--primary-dark) !important;
}

body.home .elementor-element-impact-story .elementor-element-story-author .elementor-widget-wrap {
    background: var(--primary-dark) !important;
}

body.home .elementor-element-newsletter {
    position: relative;
    overflow: hidden;
    padding: 68px 24px 74px;
    background: #4b1e0b !important;
    text-align: center;
}

body.home .elementor-element-newsletter::before,
body.home .elementor-element-newsletter::after {
    position: absolute;
    width: 300px;
    height: 300px;
    border: 1px solid rgba(134, 181, 114, 0.2);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

body.home .elementor-element-newsletter::before {
    top: -205px;
    left: -90px;
}

body.home .elementor-element-newsletter::after {
    right: -90px;
    bottom: -220px;
}

body.home .elementor-element-newsletter > .elementor-container {
    position: relative;
    z-index: 1;
}

body.home .elementor-element-newsletter .elementor-element-newsletter-title .elementor-heading-title {
    color: #ffffff;
    font-size: clamp(32px, 3.5vw, 44px);
    font-weight: 700;
    letter-spacing: -0.035em;
}

body.home .elementor-element-newsletter .elementor-element-newsletter-text p {
    color: rgba(255, 255, 255, 0.84) !important;
    font-size: 17px !important;
}

body.home .elementor-element-newsletter #newsletter-form {
    gap: 12px;
}

body.home .elementor-element-newsletter #newsletter-form input {
    min-height: 54px;
    padding: 14px 20px !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    color: var(--text-color) !important;
}

body.home .elementor-element-newsletter #newsletter-form input::placeholder {
    color: #756960;
}

body.home .elementor-element-newsletter .ecrdi-submit {
    min-height: 54px;
    padding: 14px 30px;
}

/* Functional contact and newsletter forms */
.ecrdi-form {
    width: 100%;
}

.ecrdi-newsletter-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    max-width: 560px;
    margin: 0 auto;
}

.ecrdi-newsletter-form > input[type="email"] {
    width: 100%;
    min-height: 54px;
    box-sizing: border-box;
}

.ecrdi-consent {
    grid-column: 1 / -1;
    color: rgba(255, 255, 255, .86);
    font-size: 13px;
    text-align: left;
}

.ecrdi-consent a {
    color: #fff;
    text-decoration: underline;
}

.ecrdi-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.ecrdi-form-message {
    margin: 0 0 16px;
    padding: 12px 16px;
    border: 1px solid rgba(134, 181, 114, .45);
    border-radius: 10px;
    background: #f4f8f1;
    color: #6a2708;
}

.ecrdi-newsletter-form .ecrdi-form-message {
    grid-column: 1 / -1;
}

.ecrdi-contact-form-section {
    padding: 64px 20px 78px;
    background: #f5f8f3;
}

.ecrdi-contact-form-card {
    max-width: 760px;
    margin: 0 auto;
    padding: 38px;
    border: 1px solid rgba(106, 39, 8, .1);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(28, 56, 39, .08);
}

.ecrdi-contact-form-card h2 {
    margin: 0 0 10px;
    color: #6a2708;
    font-size: clamp(26px, 3vw, 34px);
}

.ecrdi-contact-form-card > p {
    margin: 0 0 24px;
    color: #665348;
}

.ecrdi-contact-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ecrdi-contact-form label:not(.ecrdi-honeypot) {
    display: grid;
    gap: 7px;
    color: #665348;
    font-size: 14px;
    font-weight: 600;
}

.ecrdi-contact-form label:nth-of-type(4) {
    grid-column: 1 / -1;
}

.ecrdi-contact-form input,
.ecrdi-contact-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 15px;
    border: 1px solid #e6d8cf;
    border-radius: 10px;
    background: #fff;
    color: #3b2116;
    font: inherit;
}

.ecrdi-contact-form textarea {
    resize: vertical;
}

.ecrdi-contact-form input:focus,
.ecrdi-contact-form textarea:focus {
    border-color: #6a2708;
    outline: 3px solid rgba(104, 134, 91, .16);
}

.ecrdi-contact-form .ecrdi-submit {
    justify-self: start;
    min-height: 48px;
    padding: 12px 26px;
}

.ecrdi-newsletter-form-fallback {
    padding: 24px;
    background: #6a2708;
}

@media (max-width: 767px) {
    body.home .elementor-element-newsletter #newsletter-form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ecrdi-newsletter-form {
        grid-template-columns: 1fr;
    }

    .ecrdi-contact-form-card {
        padding: 26px 20px;
    }

    .ecrdi-contact-form {
        grid-template-columns: 1fr;
    }

    .ecrdi-contact-form label:nth-of-type(4) {
        grid-column: auto;
    }

    .ecrdi-contact-form .ecrdi-submit {
        width: 100%;
    }
}

@media (max-width: 767px) {
    body.home .elementor-element-impact-stats {
        padding: 44px 18px 8px;
    }

    body.home .elementor-element-impact-stats-grid {
        padding: 12px 18px 36px;
    }

    body.home .elementor-element-impact-stats-grid .elementor-container {
        gap: 10px;
    }

    body.home .elementor-element-impact-stats-grid .elementor-column {
        width: 50%;
        padding: 5px;
    }

    body.home .elementor-element-impact-stats-grid .elementor-widget-wrap {
        padding: 20px 10px;
    }

    body.home .elementor-element-impact-stats-grid [data-id$="-value"] > .elementor-widget-container > div {
        font-size: 34px !important;
    }

    body.home .elementor-element-programmes {
        padding: 52px 18px 12px;
    }

    body.home .elementor-element-programmes-grid,
    body.home .elementor-element-programmes-grid-2 {
        padding: 10px 18px;
    }

    body.home .elementor-element-programmes-grid .elementor-column,
    body.home .elementor-element-programmes-grid-2 .elementor-column {
        width: 100%;
        padding: 6px 0;
    }

    body.home .elementor-element-programmes-grid [data-id^="prog-"] .elementor-widget-container > div,
    body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] .elementor-widget-container > div {
        min-height: 0;
        padding: 26px 24px !important;
    }

    body.home .elementor-element-programmes-cta {
        padding: 20px 18px 52px;
    }

    body.home .elementor-element-programmes-cta .elementor-container {
        flex-wrap: wrap;
    }

    body.home .elementor-element-programmes-cta .elementor-element-prog-cta {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
    }

    body.home .elementor-element-programmes-cta .elementor-element-prog-cta > .elementor-container {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: 100%;
        gap: 10px;
    }

    body.home .elementor-element-programmes-cta .elementor-element-prog-cta .elementor-column {
        width: auto !important;
        max-width: 100%;
        flex: 0 1 auto;
    }

    body.home .elementor-element-impact-story {
        padding: 48px 20px;
    }

    body.home .elementor-element-impact-story > .elementor-container {
        gap: 28px;
    }

    body.home .elementor-element-impact-story .elementor-element-story-image .elementor-widget-container > div {
        min-height: 300px !important;
        border-width: 5px;
    }

    body.home .elementor-element-newsletter {
        padding: 52px 20px 58px;
    }

    body.home .elementor-element-newsletter #newsletter-form {
        flex-direction: column;
    }

    body.home .elementor-element-newsletter #newsletter-form input,
    body.home .elementor-element-newsletter .ecrdi-submit {
        width: 100%;
        box-sizing: border-box;
    }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-widget-button .elementor-button,
    body.home .elementor-element-impact-stats-grid .elementor-widget-wrap,
    body.home .elementor-element-programmes-grid [data-id^="prog-"] .elementor-widget-container > div,
    body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] .elementor-widget-container > div {
        transition: none;
    }
}

/* Give interior pages a clear title banner below the fixed site header. */
body:not(.home) .site-header.has-dark-hero:not(.scrolled) {
    background: rgba(70, 30, 11, 0.96);
    box-shadow: 0 8px 24px rgba(48, 27, 16, 0.12);
}

body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero) {
    position: relative;
    z-index: 0;
    isolation: isolate;
    display: flex;
    align-items: flex-end;
    min-height: 310px;
    padding: 142px 24px 46px;
    overflow: hidden;
    box-sizing: border-box;
    background-color: var(--primary-dark);
    color: #ffffff;
}

body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero)::before {
    display: none;
}

body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero) > .elementor-container {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1240px;
}

body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero) .elementor-heading-title {
    color: #ffffff;
    font-size: clamp(38px, 5vw, 58px);
    font-weight: 700;
    letter-spacing: -0.04em;
}

body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero) .elementor-widget-text-editor p {
    color: rgba(255, 255, 255, 0.86) !important;
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.7;
}

body:not(.home) .site-content .elementor-widget-text-editor p {
    color: var(--text-light);
    font-size: 16px;
    line-height: 1.8;
}

body:not(.home) .site-content .elementor-top-section:not(:first-child) .elementor-heading-title {
    color: var(--primary-dark);
}

@media (max-width: 767px) {
    body:not(.home) .site-content .elementor-top-section:first-child:not(.ec-contact-hero) {
        min-height: 280px;
        padding: 124px 22px 34px;
    }
}

/* Home page layout refinements: keep the impact and programme grids even. */
body.home .elementor-element-impact-stats-grid > .elementor-container {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

body.home .elementor-element-impact-stats-grid > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
}

body.home .elementor-element-programmes-grid > .elementor-container,
body.home .elementor-element-programmes-grid-2 > .elementor-container {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

body.home .elementor-element-programmes-grid > .elementor-container > .elementor-column,
body.home .elementor-element-programmes-grid-2 > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] .elementor-widget-container > div,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] .elementor-widget-container > div {
    height: 100%;
    box-sizing: border-box;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] a,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    align-self: flex-start;
    margin-top: auto;
    padding: 9px 16px;
    border: 1px solid rgba(240, 97, 59, .45);
    border-radius: 999px;
    color: #6a2708 !important;
    font-weight: 600;
    text-decoration: none !important;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

body.home .elementor-element-programmes-grid [data-id^="prog-"] a:hover,
body.home .elementor-element-programmes-grid-2 [data-id^="prog-"] a:hover {
    transform: translateY(-2px);
    background: #f0613b;
    color: #3b2116 !important;
}

body.home .elementor-element-impact-story > .elementor-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.home .elementor-element-impact-story > .elementor-container > .elementor-column {
    width: auto !important;
    min-width: 0;
}

@media (max-width: 1024px) and (min-width: 768px) {
    body.home .elementor-element-impact-stats-grid > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.home .elementor-element-programmes-grid > .elementor-container,
    body.home .elementor-element-programmes-grid-2 > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    body.home .elementor-element-impact-stats-grid > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.home .elementor-element-impact-stats-grid > .elementor-container > .elementor-column {
        width: auto !important;
    }

    body.home .elementor-element-programmes-grid > .elementor-container,
    body.home .elementor-element-programmes-grid-2 > .elementor-container,
    body.home .elementor-element-impact-story > .elementor-container {
        grid-template-columns: 1fr;
    }

    body.home .elementor-element-programmes-grid > .elementor-container > .elementor-column,
    body.home .elementor-element-programmes-grid-2 > .elementor-container > .elementor-column {
        width: auto !important;
    }
}

/* Frame each homepage photograph around its subject and keep the motion subtle. */
body.home .elementor-element-hero-section .hero-slide {
    background-size: cover;
    background-repeat: no-repeat;
    transform: scale(1.005);
    transition: opacity 1.2s ease-in-out, transform 9s ease;
}

body.home .elementor-element-hero-section .hero-slide.active {
    transform: scale(1.035);
}

body.home .elementor-element-hero-section .hero-slide[style*="hero-community.jpg"] {
    background-position: center 48%;
}

body.home .elementor-element-hero-section .hero-slide[style*="hero-what-we-do.jpg"] {
    background-position: center 53%;
}

body.home .elementor-element-hero-section .hero-slide[style*="hero-our-impact.jpg"] {
    background-position: center 56%;
}

body.home .elementor-element-hero-section .hero-slide[style*="hero-who-we-are.jpg"] {
    background-position: center 58%;
}

body.home .elementor-element-hero-section .hero-slider-dots,
body.home .elementor-element-hero-section .hero-dot {
    pointer-events: auto;
}

@media (max-width: 767px) {
    body.home .elementor-element-hero-section .hero-slide[style*="hero-community.jpg"] {
        background-position: center 50%;
    }

    body.home .elementor-element-hero-section .hero-slide[style*="hero-what-we-do.jpg"] {
        background-position: center 55%;
    }

    body.home .elementor-element-hero-section .hero-slide[style*="hero-our-impact.jpg"] {
        background-position: center 57%;
    }

    body.home .elementor-element-hero-section .hero-slide[style*="hero-who-we-are.jpg"] {
        background-position: center 60%;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.home .elementor-element-hero-section .hero-slide,
    body.home .elementor-element-hero-section .hero-slide.active {
        transform: none;
        transition: opacity .2s ease;
    }
}

/* Shared visual treatment for the remaining primary navigation pages. */
.elementor-element-oi-hero,
.elementor-element-gi-hero,
.elementor-element-cu-hero {
    position: relative;
    isolation: isolate;
    min-height: 370px;
    display: flex;
    align-items: center;
    padding: 90px 20px 74px !important;
    background-color: #6a2708 !important;
    background-size: cover !important;
    background-position: center 45% !important;
}

.elementor-element-oi-hero {
    background-image: rgba(55, 26, 10, 0.72), url("../../uploads/ecrdi/hero-our-impact.jpg") !important;
}

.elementor-element-gi-hero {
    background-image: rgba(255, 255, 255, 0.85), url("../../uploads/ecrdi/hero-get-involved.jpg") !important;
    background-color: rgba(255, 255, 255, 0.92) !important;
}
.elementor-element-gi-hero .elementor-heading-title { color: #1f4524 !important; text-shadow: none !important; }
.elementor-element-gi-hero .elementor-widget-text-editor p { color: #334036 !important; }

.elementor-element-cu-hero {
    background-image: none !important;
    background-color: #6a2708 !important;
}

/* Contact title banner uses one solid colour, without the shared hero overlays. */
body:not(.home) .site-content .elementor-top-section.elementor-element-cu-hero::before,
.elementor-element-cu-hero > .elementor-background-overlay {
    display: none;
}

.elementor-element-oi-hero .elementor-heading-title,
.elementor-element-gi-hero .elementor-heading-title,
.elementor-element-cu-hero .elementor-heading-title {
    color: #fff !important;
    font-size: clamp(40px, 5.5vw, 64px) !important;
    letter-spacing: -.035em;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .2);
}

.elementor-element-oi-hero .elementor-widget-text-editor p,
.elementor-element-gi-hero .elementor-widget-text-editor p,
.elementor-element-cu-hero .elementor-widget-text-editor p {
    color: rgba(255, 255, 255, .94) !important;
    font-size: clamp(17px, 2vw, 21px) !important;
    line-height: 1.65;
}

.elementor-element-oi-intro,
.elementor-element-gi-intro {
    padding: 58px 18px 42px !important;
    background: #f5f8f3;
}

.elementor-element-oi-intro .elementor-widget-text-editor,
.elementor-element-gi-intro .elementor-widget-text-editor {
    max-width: 920px;
    margin: 0 auto;
    padding: 28px 34px;
    background: #fff;
    border-left: 4px solid #f0613b;
    border-radius: 14px;
    box-shadow: 0 14px 38px rgba(28, 56, 39, .07);
}

.elementor-element-oi-intro p,
.elementor-element-gi-intro p {
    color: #665348;
    font-size: 18px;
    line-height: 1.75;
}

/* Our Impact */
.elementor-element-oi-stats {
    padding: 26px 18px 72px !important;
    background: #f5f8f3 !important;
}

.elementor-element-oi-stats > .elementor-container {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.elementor-element-oi-stats > .elementor-container > .elementor-column {
    width: auto !important;
    padding: 28px 18px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .08);
    border-radius: 16px;
    box-shadow: 0 12px 30px rgba(28, 56, 39, .06);
}

.elementor-element-oi-stats .elementor-counter-number,
.elementor-element-oi-stats .elementor-counter-number-prefix,
.elementor-element-oi-stats .elementor-counter-number-suffix {
    color: #6a2708;
    font-weight: 700;
}

.elementor-element-oi-stats .elementor-counter-title {
    color: #665348;
    font-size: 14px;
}

.elementor-element-oi-story {
    padding: 76px 18px !important;
    background: #fff;
}

.elementor-element-oi-story > .elementor-container {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
    align-items: center;
    gap: 42px;
}

.elementor-element-oi-story > .elementor-container > .elementor-column {
    width: auto !important;
}

.elementor-element-oi-story .elementor-heading-title,
.elementor-element-oi-evidence .elementor-heading-title {
    color: #6a2708 !important;
}

.elementor-element-oi-story p {
    color: #665348;
    font-size: 15px;
    line-height: 1.8;
}

.elementor-element-oi-story p strong {
    color: #6a2708;
}

.elementor-element-oi-story .elementor-widget-image img {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 20px 48px rgba(28, 56, 39, .16);
}

.elementor-element-oi-evidence {
    padding: 68px 20px !important;
    background: #f5f8f3;
}

.elementor-element-oi-evidence > .elementor-container {
    max-width: 960px;
    padding: 38px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(28, 56, 39, .07);
}

.elementor-element-oi-evidence .elementor-icon-list-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.elementor-element-oi-evidence .elementor-icon-list-item {
    padding: 12px 14px;
    background: #f5f8f3;
    border-radius: 9px;
}

/* Get Involved */
.elementor-element-gi-volunteer,
.elementor-element-gi-donate,
.elementor-element-gi-partner {
    padding: 48px 20px 24px !important;
}

.elementor-element-gi-volunteer > .elementor-container,
.elementor-element-gi-donate > .elementor-container,
.elementor-element-gi-partner > .elementor-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 36px;
    max-width: 1080px;
    padding: 34px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .08);
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(28, 56, 39, .07);
}

.elementor-element-gi-volunteer > .elementor-container > .elementor-column,
.elementor-element-gi-donate > .elementor-container > .elementor-column,
.elementor-element-gi-partner > .elementor-container > .elementor-column {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    grid-column: span 1;
}

.elementor-element-gi-donate {
    background: #f5f8f3;
}

.elementor-element-gi-volunteer .elementor-heading-title,
.elementor-element-gi-donate .elementor-heading-title,
.elementor-element-gi-partner .elementor-heading-title {
    color: #6a2708 !important;
    font-size: clamp(26px, 3vw, 34px) !important;
}

.elementor-element-gi-volunteer p,
.elementor-element-gi-donate p,
.elementor-element-gi-partner p {
    color: #665348;
    font-size: 16px;
    line-height: 1.8;
}

.elementor-element-gi-volunteer .elementor-icon-list-item,
.elementor-element-gi-donate .elementor-icon-list-item,
.elementor-element-gi-partner .elementor-icon-list-item {
    padding: 8px 0;
    color: #665348;
}

.elementor-element-gi-volunteer-cta,
.elementor-element-gi-donate-cta,
.elementor-element-gi-partner-cta {
    padding: 0 20px 34px !important;
}

.elementor-element-gi-cta {
    padding: 62px 18px !important;
    background: #f5f8f3 !important;
}

.elementor-element-gi-cta > .elementor-container {
    max-width: 960px;
    padding: 40px 34px;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(28, 56, 39, .07);
}

.elementor-element-gi-cta .elementor-heading-title {
    color: #6a2708 !important;
}

/* Contact Us */
.elementor-element-cu-info {
    padding: 64px 20px 78px !important;
    background: #f5f8f3;
}

.elementor-element-cu-info > .elementor-container {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 24px;
    max-width: 1120px;
}

.elementor-element-cu-info > .elementor-container > .elementor-column {
    width: auto !important;
    padding: 32px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .08);
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(28, 56, 39, .07);
}

.elementor-element-cu-info .elementor-heading-title {
    color: #6a2708 !important;
}

.elementor-element-cu-info p {
    color: #665348;
    font-size: 15px;
    line-height: 1.8;
}

.elementor-element-cu-info .elementor-widget-google_maps iframe {
    min-height: 300px;
    border: 0;
    border-radius: 12px;
}

@media (max-width: 767px) {
    .elementor-element-oi-hero,
    .elementor-element-gi-hero,
    .elementor-element-cu-hero {
        min-height: 310px;
        padding: 70px 18px 54px !important;
        background-position: 58% center !important;
    }

    .elementor-element-oi-intro,
    .elementor-element-gi-intro {
        padding-top: 40px !important;
    }

    .elementor-element-oi-intro .elementor-widget-text-editor,
    .elementor-element-gi-intro .elementor-widget-text-editor {
        padding: 22px;
    }

    .elementor-element-oi-stats > .elementor-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .elementor-element-oi-story > .elementor-container,
    .elementor-element-oi-evidence .elementor-icon-list-items,
    .elementor-element-gi-volunteer > .elementor-container,
    .elementor-element-gi-donate > .elementor-container,
    .elementor-element-gi-partner > .elementor-container,
    .elementor-element-cu-info > .elementor-container {
        grid-template-columns: 1fr;
    }

    .elementor-element-oi-story > .elementor-container,
    .elementor-element-gi-volunteer > .elementor-container,
    .elementor-element-gi-donate > .elementor-container,
    .elementor-element-gi-partner > .elementor-container {
        gap: 20px;
        padding: 24px;
    }

    .elementor-element-oi-evidence > .elementor-container,
    .elementor-element-gi-cta > .elementor-container {
        padding: 26px 20px;
    }

    .elementor-element-cu-info > .elementor-container > .elementor-column {
        padding: 24px;
    }
}

/* Get Involved page refinements: clarify each action and make the next step stand out. */
.elementor-element-gi-intro {
    padding-bottom: 56px !important;
}

.elementor-element-gi-intro .elementor-widget-text-editor {
    position: relative;
    padding-top: 34px;
    padding-bottom: 34px;
    text-align: center;
}

.elementor-element-gi-intro .elementor-widget-text-editor::before {
    content: 'MAKE A DIFFERENCE';
    display: block;
    margin-bottom: 10px;
    color: #6a2708;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
}

.elementor-element-gi-volunteer,
.elementor-element-gi-donate,
.elementor-element-gi-partner {
    padding-top: 34px !important;
    padding-bottom: 18px !important;
}

.elementor-element-gi-volunteer > .elementor-container,
.elementor-element-gi-donate > .elementor-container,
.elementor-element-gi-partner > .elementor-container {
    position: relative;
    overflow: hidden;
    padding: 42px;
    border: 1px solid rgba(106, 39, 8, .1);
    box-shadow: 0 18px 48px rgba(28, 56, 39, .085);
}

.elementor-element-gi-volunteer > .elementor-container::before,
.elementor-element-gi-donate > .elementor-container::before,
.elementor-element-gi-partner > .elementor-container::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: #6a2708;
}

.elementor-element-gi-donate > .elementor-container::before {
    background: #f0613b;
}

.elementor-element-gi-partner > .elementor-container::before {
    background: #86b572;
}

.elementor-element-gi-volunteer .elementor-heading-title::before,
.elementor-element-gi-donate .elementor-heading-title::before,
.elementor-element-gi-partner .elementor-heading-title::before {
    display: block;
    margin-bottom: 10px;
    color: #6a2708;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .15em;
}

.elementor-element-gi-volunteer .elementor-heading-title::before {
    content: '01  /  GIVE YOUR TIME';
}

.elementor-element-gi-donate .elementor-heading-title::before {
    content: '02  /  SHARE RESOURCES';
}

.elementor-element-gi-partner .elementor-heading-title::before {
    content: '03  /  WORK TOGETHER';
}

.elementor-element-gi-volunteer .elementor-widget-icon-list,
.elementor-element-gi-donate .elementor-widget-icon-list,
.elementor-element-gi-partner .elementor-widget-icon-list {
    padding: 20px 22px;
    background: #f5f8f3;
    border-radius: 12px;
}

.elementor-element-gi-volunteer .elementor-icon-list-icon i,
.elementor-element-gi-donate .elementor-icon-list-icon i,
.elementor-element-gi-partner .elementor-icon-list-icon i {
    color: #6a2708;
}

.elementor-element-gi-volunteer-cta,
.elementor-element-gi-donate-cta,
.elementor-element-gi-partner-cta {
    position: relative;
    z-index: 1;
    margin-top: -18px;
    padding: 0 20px 44px !important;
    background: #fff;
}

.elementor-element-gi-donate-cta {
    background: #f5f8f3;
}

.elementor-element-gi-volunteer-cta > .elementor-container,
.elementor-element-gi-donate-cta > .elementor-container,
.elementor-element-gi-partner-cta > .elementor-container {
    max-width: 1080px;
    padding: 8px 42px 24px;
    background: #fff;
    border: 1px solid rgba(106, 39, 8, .1);
    border-top: 0;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 18px 40px rgba(28, 56, 39, .06);
}

.elementor-element-gi-volunteer-cta .elementor-inner-section > .elementor-container,
.elementor-element-gi-donate-cta .elementor-inner-section > .elementor-container,
.elementor-element-gi-partner-cta .elementor-inner-section > .elementor-container,
.elementor-element-gi-cta .elementor-inner-section > .elementor-container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.elementor-element-gi-volunteer-cta .elementor-inner-section .elementor-column,
.elementor-element-gi-donate-cta .elementor-inner-section .elementor-column,
.elementor-element-gi-partner-cta .elementor-inner-section .elementor-column,
.elementor-element-gi-cta .elementor-inner-section .elementor-column {
    width: auto !important;
}

.elementor-element-gi-volunteer-cta .elementor-widget-button,
.elementor-element-gi-donate-cta .elementor-widget-button,
.elementor-element-gi-partner-cta .elementor-widget-button {
    text-align: center;
}

.elementor-element-gi-volunteer-cta .elementor-button,
.elementor-element-gi-donate-cta .elementor-button,
.elementor-element-gi-partner-cta .elementor-button,
.elementor-element-gi-cta .elementor-button {
    min-width: 170px;
    justify-content: center;
    box-shadow: 0 8px 18px rgba(28, 56, 39, .12);
    transition: transform .2s ease, box-shadow .2s ease;
}

.elementor-element-gi-volunteer-cta .elementor-button:hover,
.elementor-element-gi-donate-cta .elementor-button:hover,
.elementor-element-gi-partner-cta .elementor-button:hover,
.elementor-element-gi-cta .elementor-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(28, 56, 39, .18);
}

.elementor-element-gi-cta > .elementor-container {
    padding: 48px 42px;
    border-top: 4px solid #f0613b;
}

.elementor-element-gi-cta .elementor-widget-text-editor {
    max-width: 680px;
    margin: 0 auto;
}

@media (max-width: 767px) {
    .elementor-element-gi-volunteer > .elementor-container,
    .elementor-element-gi-donate > .elementor-container,
    .elementor-element-gi-partner > .elementor-container {
        padding: 30px 22px 24px;
    }

    .elementor-element-gi-volunteer-cta > .elementor-container,
    .elementor-element-gi-donate-cta > .elementor-container,
    .elementor-element-gi-partner-cta > .elementor-container {
        padding: 4px 22px 22px;
    }

    .elementor-element-gi-volunteer-cta .elementor-inner-section > .elementor-container,
    .elementor-element-gi-donate-cta .elementor-inner-section > .elementor-container,
    .elementor-element-gi-partner-cta .elementor-inner-section > .elementor-container,
    .elementor-element-gi-cta .elementor-inner-section > .elementor-container {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .elementor-element-gi-volunteer .elementor-widget-icon-list,
    .elementor-element-gi-donate .elementor-widget-icon-list,
    .elementor-element-gi-partner .elementor-widget-icon-list {
        padding: 16px;
    }

    .elementor-element-gi-volunteer-cta .elementor-button,
    .elementor-element-gi-donate-cta .elementor-button,
    .elementor-element-gi-partner-cta .elementor-button,
    .elementor-element-gi-cta .elementor-button {
        min-width: 0;
        width: 100%;
    }
}

/* Site review: accessible navigation, readable details, and responsive controls. */
html { scroll-padding-top: 110px; }
*, *::before, *::after { box-sizing: border-box; }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible {
    outline: 3px solid #6a2708;
    outline-offset: 4px;
}
.skip-link {
    position: fixed;
    top: 12px;
    left: 16px;
    z-index: 10000;
    padding: 12px 20px;
    background: #fff;
    color: #6a2708;
    border-radius: 8px;
    font-weight: 700;
    transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }
.header-top-bar a.top-bar-text { color: #fff; text-decoration: none; }
.header-top-bar a.top-bar-text:hover { text-decoration: underline; }
.main-navigation a[aria-current="page"] {
    text-decoration: underline;
    text-decoration-color: #f0613b;
    text-decoration-thickness: 3px;
    text-underline-offset: 8px;
}
.mobile-nav-menu a[aria-current="page"] { color: #a1c58e; }
.mobile-menu { height: 100dvh; overscroll-behavior: contain; }
.mobile-menu-toggle, .mobile-menu-close {
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
}
.mobile-menu-close span { position: absolute; }
.mobile-menu-close span:first-child { transform: rotate(45deg); }
.mobile-menu-close span:last-child { transform: rotate(-45deg); }
.site-logo { flex-shrink: 0; }
.site-logo img { max-width: 100%; object-fit: contain; }
.site-header:not(.has-dark-hero):not(.scrolled) { background: #fff; }
.site-header:not(.has-dark-hero) .main-navigation ul.nav-menu > li > a:hover {
    color: #6a2708;
    background: #f5f8f3;
}
.footer-column a { overflow-wrap: anywhere; }
.footer-column ul a { display: inline-block; padding-block: 5px; }
.footer-bottom-links a { padding-block: 10px; }
.site-content .elementor-widget-text-editor a:not(.elementor-button):not(.ecrdi-card-link) {
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}
body.home .elementor-element-hero-section .hero-pause {
    position: absolute;
    z-index: 12;
    right: 24px;
    bottom: 24px;
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid rgba(255,255,255,.65);
    border-radius: 24px;
    background: rgba(55, 26, 10,.82);
    color: #fff;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    pointer-events: auto;
}
body.home .elementor-element-hero-section .hero-pause:hover { background: #6a2708; }
@media (min-width: 1101px) and (max-width: 1280px) {
    .header-container { padding-inline: 20px; gap: 12px; }
    .main-navigation ul.nav-menu > li > a { padding-inline: 9px; letter-spacing: .01em; }
}
@media (max-width: 767px) {
    html { scroll-padding-top: 85px; }
    .site-logo img { height: 42px !important; max-width: 145px; }
    .header-cta .donate-button { min-height: 44px; display: inline-flex; align-items: center; }
    body.home .elementor-element-hero-section .elementor-element-hero-trust p {
        font-size: 12px !important;
        line-height: 1.6 !important;
        letter-spacing: .04em !important;
    }
    body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
        font-size: 12px;
        line-height: 1.6;
    }
    body.home .elementor-element-hero-section .hero-pause {
        right: 50%;
        bottom: 68px;
        transform: translateX(50%);
    }
    body.home .elementor-element-hero-section .hero-nav-btn { width: 44px; height: 44px; }
    .site-content input, .site-content textarea, .site-content select { font-size: 16px; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .site-header, .mobile-menu, .site-content .elementor-button,
    .site-content .elementor-widget-wrap, .site-content .hero-slide {
        animation: none !important;
        transition: none !important;
    }
}
/* Keep the visible carousel dots small while providing a full touch target. */
body.home .elementor-element-hero-section .hero-slider-dots { gap: 0; }
body.home .elementor-element-hero-section .hero-dot,
body.home .elementor-element-hero-section .hero-dot.active {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
body.home .elementor-element-hero-section .hero-dot::before {
    content: '';
    width: 10px;
    height: 10px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: rgba(255,255,255,.3);
}
body.home .elementor-element-hero-section .hero-dot.active::before { background: #a1c58e; border-color: #a1c58e; }
/* Let photograph controls receive clicks through the hero's content wrapper. */
body.home .elementor-element-hero-section > .elementor-container { pointer-events: none; }
body.home .elementor-element-hero-section > .elementor-container a,
body.home .elementor-element-hero-section > .elementor-container button { pointer-events: auto; }

/* A useful recovery path for missing URLs, with space below the fixed header. */
.ecrdi-not-found { max-width: 900px; margin: 0 auto; padding: 190px 24px 90px; }
.ecrdi-not-found h1 { color: #6a2708; font-size: clamp(36px, 6vw, 56px); line-height: 1.15; }
.ecrdi-not-found p { max-width: 65ch; }
.ecrdi-not-found a { color: #6a2708; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 767px) { .ecrdi-not-found { padding-top: 125px; } }

/* Final homepage hero: concise copy, clear actions, and an uncluttered photo frame. */
body.home .elementor-element-hero-section {
    min-height: clamp(620px, 88svh, 820px) !important;
}
body.home .elementor-element-hero-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding: 170px max(32px, 5vw) 130px;
}
body.home .elementor-element-hero-section .elementor-element-hero-tagline {
    max-width: 650px;
    margin-bottom: 20px !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
    font-size: 12px !important;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.6;
    color: #a1c58e;
    text-align: left !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-title {
    max-width: 850px;
    margin-bottom: 24px !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-title .elementor-heading-title {
    font-size: clamp(44px, 5.2vw, 72px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.045em;
    text-align: left !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-text {
    max-width: 520px;
    margin-bottom: 32px !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-text p {
    font-size: 19px !important;
    line-height: 1.65 !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-button {
    min-height: 50px;
    padding: 15px 26px;
    font-weight: 600;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:first-child .elementor-button {
    background: #a1c58e;
    border-color: #a1c58e;
    color: #23140c;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:first-child .elementor-button:hover {
    background: #ff8b6b;
    border-color: #ff8b6b;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:last-child .elementor-button:hover {
    background: #fff;
    color: #6a2708;
}
body.home .elementor-element-hero-section .hero-nav-btn { top: auto; bottom: 24px; transform: none; }
body.home .elementor-element-hero-section .hero-prev { left: max(24px, 5vw); }
body.home .elementor-element-hero-section .hero-next { left: calc(max(24px, 5vw) + 56px); right: auto; }
body.home .elementor-element-hero-section .hero-slider-dots { bottom: 24px; }
body.home .elementor-element-hero-section .hero-pause { right: max(24px, 5vw); }
body.home .elementor-element-hero-section .elementor-shape-bottom { display: none; }
@media (max-width: 767px) {
    body.home .elementor-element-hero-section { min-height: 640px !important; }
    body.home .elementor-element-hero-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
        padding: 130px 24px 155px;
    }
    body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
        font-size: 10px !important;
        letter-spacing: .09em;
    }
    body.home .elementor-element-hero-section .elementor-element-hero-title .elementor-heading-title {
        font-size: clamp(34px, 8.6vw, 54px) !important;
        line-height: 1.12 !important;
    }
    body.home .elementor-element-hero-section .elementor-element-hero-text p { font-size: 17px !important; }
    body.home .elementor-element-hero-section .elementor-element-hero-buttons > .elementor-container {
        gap: 12px;
        flex-wrap: wrap;
    }
    body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-button {
        padding: 13px 18px;
        font-size: 13px;
    }
    body.home .elementor-element-hero-section .hero-prev { left: 18px; bottom: 16px; }
    body.home .elementor-element-hero-section .hero-next { left: auto; right: 18px; bottom: 16px; }
    body.home .elementor-element-hero-section .hero-slider-dots { bottom: 16px; }
    body.home .elementor-element-hero-section .hero-pause { right: 50%; bottom: 70px; }
}

/* Keep slideshow controls outside the background's stacking context. */
body.home .elementor-element-hero-section > .hero-controls {
    position: absolute;
    inset: 0;
    z-index: 20;
    pointer-events: none;
}
body.home .elementor-element-hero-section > .hero-controls button,
body.home .elementor-element-hero-section > .hero-controls .hero-slider-dots {
    pointer-events: auto;
}
body.home .elementor-element-hero-section .hero-slide,
body.home .elementor-element-hero-section .hero-slider-overlay {
    pointer-events: none;
}

/* Logo palette: brown anchors, green surfaces, orange highlights. */
:root {
    --brand-brown: #6a2708;
    --brand-green: #86b572;
    --brand-orange: #f0613b;
}
.main-navigation ul.nav-menu > li > a:hover,
.site-header.scrolled .main-navigation ul.nav-menu > li > a:hover {
    color: var(--brand-brown);
    background-color: #f5f8f3;
}
.site-content .elementor-widget-button .elementor-button,
.header-cta .donate-button, .mobile-donate, .ecrdi-submit {
    background-color: var(--brand-brown) !important;
    border-color: var(--brand-brown) !important;
    color: #fff !important;
}
.site-content .elementor-widget-button .elementor-button:hover,
.header-cta .donate-button:hover, .mobile-donate:hover, .ecrdi-submit:hover {
    background-color: #3b2116 !important;
    border-color: #3b2116 !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:first-child .elementor-button {
    background: var(--brand-orange) !important;
    border-color: var(--brand-orange) !important;
    color: #23140c !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:first-child .elementor-button:hover {
    background: #ff8b6b !important;
    border-color: #ff8b6b !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:last-child .elementor-button {
    background: transparent !important;
    border-color: #fff !important;
    color: #fff !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-buttons .elementor-column:last-child .elementor-button:hover {
    background: #fff !important;
    color: var(--brand-brown) !important;
}
body.home .elementor-element-hero-section .elementor-element-hero-tagline .elementor-heading-title {
    color: #a1c58e !important;
}
.site-content .ecrdi-card-link { color: var(--brand-brown) !important; }
/* Match Elementor's system colours on existing production databases too. */
body[class*="elementor-kit-"] {
    --e-global-color-primary: #6a2708;
    --e-global-color-secondary: #86b572;
    --e-global-color-text: #665348;
    --e-global-color-accent: #f0613b;
}
