.elementor .elementor-element.ccrc-home-section { --padding-left: 24px; --padding-right: 24px; }
.elementor .elementor-element.ccrc-home-section .elementor-widget-text-editor { color: #34443c; font-family: Poppins, sans-serif; }
.elementor .elementor-element.ccrc-home-support .elementor-widget-text-editor { color: #fff; }
.elementor .elementor-element.ccrc-home-intro .elementor-widget,
.elementor .elementor-element.ccrc-home-newsletter .elementor-widget { text-align: center; align-self: center; }
.elementor .elementor-element.ccrc-home-intro .elementor-widget-text-editor p { max-width: 810px; margin-inline: auto; }
.elementor .elementor-element.ccrc-home-section { --container-max-width: 1200px; padding: 54px 24px; color: #34443c; font-family: Poppins, sans-serif; }
.elementor .elementor-element.ccrc-home-section > .e-con-inner { gap: 24px; }
.elementor .elementor-element.ccrc-home-section .elementor-heading-title { color: #285b48; font-size: clamp(26px, 3vw, 34px); line-height: 1.3; font-weight: 500; margin: 0; }
.elementor .elementor-element.ccrc-home-section .elementor-widget-text-editor { font-size: 17px; line-height: 1.75; }
.elementor .elementor-element.ccrc-home-section .elementor-widget-text-editor p { margin: 0; }
.elementor .elementor-element.ccrc-home-section .elementor-button { background: #285b48; color: #fff; border-radius: 4px; padding: 14px 24px; font-family: inherit; font-size: 15px; font-weight: 500; }
.elementor .elementor-element.ccrc-home-section .elementor-button:hover { background: #1d4435; color: #fff; }
.elementor .elementor-element.ccrc-home-section a:focus-visible { outline: 3px solid #398dc4; outline-offset: 4px; }
.elementor .elementor-element.ccrc-home-intro { text-align: center; }
.elementor .elementor-element.ccrc-home-intro .elementor-widget-text-editor { max-width: 810px; margin-inline: auto; }
.ccrc-home-projects { background: #f1f5f0; }
.elementor .elementor-element.ccrc-home-section .home-section-header { padding: 0; flex-direction: row; align-items: center; justify-content: space-between; gap: 18px; }
.home-section-header .elementor-widget-heading { flex: 1; }
.home-section-header .elementor-widget-button { width: auto; }
.elementor .elementor-element.ccrc-home-section .home-text-link .elementor-button { padding: 0; background: transparent; color: #285b48; text-decoration: underline; text-underline-offset: 4px; line-height: 1.6; }
.elementor .elementor-element.ccrc-home-section .elementor-widget-shortcode { width: 100%; }
.elementor .elementor-element.ccrc-home-support { background: #285b48; border-bottom: 5px solid #d5df45; color: #fff; }
.elementor .elementor-element.ccrc-home-support .elementor-heading-title { color: #fff; }
.elementor .elementor-element.ccrc-home-support .elementor-widget-text-editor { max-width: 800px; }
.elementor .elementor-element.ccrc-home-support .elementor-button { background: #fff; color: #285b48; }
.elementor .elementor-element.ccrc-home-support .elementor-button:hover { background: #edf2e7; color: #183f32; }
.elementor .elementor-element.ccrc-home-newsletter { text-align: center; background: #fafbf6; }
.elementor .elementor-element.ccrc-home-newsletter .elementor-widget-text-editor { max-width: 700px; margin-inline: auto; }
@media(max-width: 767px) {
 .elementor .elementor-element.ccrc-home-section { --padding-left: 20px; --padding-right: 20px; }
 .elementor .elementor-element.ccrc-home-section { padding: 36px 20px; }
 .elementor .elementor-element.ccrc-home-section .home-section-header { flex-direction: column; align-items: flex-start; gap: 14px; }
}


/* Homepage additions use the shared project/news cards and site palette. */
.elementor .elementor-element.ccrc-home-section .elementor-button { border-radius: 999px; padding: 15px 26px; min-height: 48px; border: 1px solid transparent; box-shadow: 0 3px 8px #183f3218; transition: background .15s, box-shadow .15s; }
.elementor .elementor-element.ccrc-home-section .elementor-button-content-wrapper { align-items: center; gap: 20px; }
.elementor .elementor-element.ccrc-home-section .elementor-button:hover { box-shadow: 0 5px 12px #183f3228; }
.elementor .elementor-element.ccrc-home-intro { position: relative; overflow: hidden; isolation: isolate; }
.ccrc-home-intro::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: -1; opacity: .55; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E%3Cg stroke='%23bed3bd'%3E%3Ccircle cx='220' cy='250' r='165' opacity='.48'/%3E%3Ccircle cx='410' cy='365' r='180' opacity='.48'/%3E%3Ccircle cx='315' cy='490' r='110' opacity='.48'/%3E%3Cpath d='M350 22 A235 235 0 1 0 540 360' stroke-width='2' opacity='.8'/%3E%3C/g%3E%3Cg fill='%23dbe6c6'%3E%3Ccircle cx='175' cy='210' r='6'/%3E%3Ccircle cx='445' cy='195' r='6'/%3E%3C/g%3E%3C/svg%3E") right -120px center / 620px no-repeat; }
.elementor .elementor-element.ccrc-home-section.home-split { padding: 0; --padding-left: 0px; --padding-right: 0px; }
.elementor .elementor-element.ccrc-home-section.home-split > .e-con-inner { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; align-items: stretch; width: 100%; max-width: 100%; padding: 0; }
.elementor .elementor-element.ccrc-home-section .home-split-copy { padding: 64px clamp(28px,5vw,80px); gap: 24px; text-align: left; justify-content: center; min-height: 440px; }
.elementor .elementor-element.ccrc-home-section.home-split .elementor-widget { text-align: left; align-self: auto; }
.elementor .elementor-element.ccrc-home-section .home-split-photo { height: 100%; min-height: 440px; position: relative; }
.elementor .elementor-element.ccrc-home-section .home-split-photo .elementor-widget-container { height: 100%; }
.elementor .elementor-element.ccrc-home-section .home-split-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; border-radius: 0; display: block; }
.elementor .elementor-element.ccrc-home-section .home-section-header .elementor-button { background: transparent; color: #285b48; border: 1px solid #285b48; box-shadow: none; }
.elementor .elementor-element.ccrc-home-section .home-section-header .elementor-button:hover { background: #285b48; color: #fff; }
.elementor .elementor-element.ccrc-home-section.home-split .elementor-heading-title { font-size: clamp(28px,3vw,38px); }
.elementor .elementor-element.ccrc-home-section.home-split .home-split-copy { align-items: flex-start; }
.elementor .elementor-element.ccrc-home-section.home-split .home-split-copy .elementor-heading-title { font-family: Poppins, sans-serif; font-size: clamp(28px,2.5vw,36px); line-height: 1.3; text-wrap: balance; }
.elementor .elementor-element.ccrc-home-section.home-split .home-split-copy .elementor-widget-text-editor { margin: 0; font-weight: 400; line-height: 1.7; }
.elementor .elementor-element.ccrc-home-section.home-split .home-split-copy p { max-width: 42ch; text-align: left; text-wrap: pretty; }
.elementor .elementor-element.ccrc-home-newsletter .home-split-photo img { object-position: 50% 65%; }
.elementor .elementor-element.ccrc-home-support .home-split-photo img { object-position: 50% 45%; }
.ccrc-home-hero .home-video-control { position: absolute; right: 24px; bottom: 20px; width: auto; z-index: 3; }
.home-video-toggle { border: 1px solid #ffffff80; border-radius: 999px; padding: 10px 18px; background: #183e31cc; color: #fff; font: 13px Poppins,sans-serif; cursor: pointer; }
.home-video-toggle[hidden] { display: none; }
.home-video-toggle:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.ccrc-home-hero.home-video-paused .elementor-background-video-container { visibility: hidden; }
.ccrc-home-section .ccrc-project-card-more { text-transform: capitalize; }
.elementor .elementor-element.ccrc-home-hero { background-position: 50% 65%; }
@media(max-width:767px) { .ccrc-home-hero .home-video-control { display: none; } }
@media(max-width:767px) { .elementor .elementor-element.ccrc-home-section.home-split > .e-con-inner { grid-template-columns: 1fr; gap: 0; } .elementor .elementor-element.ccrc-home-section .home-split-copy { padding: 40px 24px; min-height: 0; } .elementor .elementor-element.ccrc-home-section .home-split-photo { order: 2; min-height: 280px; } }
@media(prefers-reduced-motion:reduce) { .ccrc-home-hero .elementor-background-video-container { display: none; } }

