.csct-projects {
    font-family: Helvetica, Arial, sans-serif;
}

.csct-project-card__image,
.csct-project-card__image img {
    background: #fff;
}

.section-title-accent .qodef-m-title::after {
    display: block;
    width: 48px;
    height: 3px;
    margin-top: 11px;
    background: linear-gradient(90deg, #718b25 0%, #a3b84b 100%);
    border-radius: 3px;
    content: "";
}

.csct-project-card__image--left img { object-position: left center; }
.csct-project-card__image--center img { object-position: center center; }
.csct-project-card__image--right img { object-position: right center; }

.csct-projects__viewport { width: 100%; overflow: visible; }
.csct-projects__grid { grid-template-columns: repeat(var(--csct-project-columns, 3), minmax(0, 1fr)); }
.csct-projects__controls { display: flex; justify-content: flex-end; gap: 8px; margin: -64px 0 24px; }
.csct-projects__prev,
.csct-projects__next { display: grid; width: 42px; height: 42px; padding: 0; place-items: center; color: var(--csct-navy); font-size: 30px; line-height: 1; background: #fff; border: 1px solid #cbd4b8; border-radius: 50%; cursor: pointer; }
.csct-projects__prev:hover,
.csct-projects__next:hover { color: #fff; background: var(--csct-dark-green); }
.csct-projects__prev:disabled,
.csct-projects__next:disabled { opacity: .35; cursor: default; }
.csct-projects--no-overflow .csct-projects__controls { display: none; }
.csct-projects--carousel .csct-projects__viewport { overflow: hidden; }
.csct-projects--carousel .csct-projects__grid { display: flex; gap: 22px; transition: transform 420ms ease; }
.csct-projects--carousel.csct-projects--columns-1 .csct-project-card { flex: 0 0 100%; }
.csct-projects--carousel.csct-projects--columns-2 .csct-project-card { flex: 0 0 calc((100% - 22px) / 2); }
.csct-projects--carousel.csct-projects--columns-3 .csct-project-card { flex: 0 0 calc((100% - 44px) / 3); }

.csct-projects--columns-1 .csct-project-card { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); }
.csct-projects--columns-1 .csct-project-card__image { height: 100%; min-height: 420px; aspect-ratio: auto; background: #fff; }
.csct-projects--columns-1 .csct-project-card__image img { object-fit: contain; object-position: center; }
.csct-projects--columns-1 .csct-project-card:hover .csct-project-card__image img { transform: none; }

@media (max-width: 1024px) {
    .csct-projects--columns-3:not(.csct-projects--carousel) .csct-projects__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .csct-projects--carousel { --csct-project-columns: 2 !important; }
    .csct-projects--carousel.csct-projects--columns-3 .csct-project-card { flex-basis: calc((100% - 22px) / 2); }
    .csct-projects--columns-1 { --csct-project-columns: 1 !important; }
    .csct-projects--columns-1 .csct-project-card { grid-template-columns: 1fr; }
    .csct-projects--columns-1 .csct-project-card__image { min-height: 0; height: auto; }
    .csct-projects--columns-1 .csct-project-card__image img { height: auto; max-height: 620px; }
}

@media (max-width: 700px) {
    .csct-projects { --csct-project-columns: 1 !important; }
    .csct-projects:not(.csct-projects--carousel) .csct-projects__grid { grid-template-columns: 1fr; }
    .csct-projects__controls { margin: 0 0 18px; }
    .csct-projects--carousel .csct-projects__grid { gap: 16px; }
    .csct-projects--carousel .csct-project-card { flex-basis: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .csct-projects--carousel .csct-projects__grid { transition: none; }
}
