.lcp-carousel { --lcp-ink: #18221f; --lcp-line: #dfe7e1; color: var(--lcp-ink); margin: 3rem auto; max-width: 1200px; font-family: inherit; }
.lcp-carousel-top { align-items: center; display: flex; justify-content: space-between; margin-bottom: 1.25rem; }
.lcp-carousel h2 { font-size: clamp(1.15rem, 2vw, 1.6rem); letter-spacing: 0; margin: 0; }
.lcp-viewport { overflow: hidden; }
.lcp-track { display: flex; gap: var(--lcp-gap); transition: transform .5s cubic-bezier(.2,.8,.2,1); will-change: transform; }
.lcp-slide { box-sizing: border-box; flex: 0 0 calc((100% - (var(--lcp-gap) * (var(--lcp-desktop) - 1))) / var(--lcp-desktop)); min-width: 0; }
.lcp-logo-card { align-items: center; aspect-ratio: 3 / 3; border: 1px solid var(--lcp-line); display: flex; justify-content: center; padding: 1rem 1.35rem; transition: border-color .2s, box-shadow .2s; }
.lcp-logo-card:hover { border-color: #8aa995; box-shadow: 0 8px 24px rgba(24,34,31,.08); }
.lcp-logo-card a { align-items: center; display: flex; height: 100%; justify-content: center; width: 100%; }
.lcp-logo-card img { display: block; height: auto; max-height: 62%; max-width: 88%; object-fit: contain; width: auto; }
.lcp-grayscale .lcp-logo-card img { filter: grayscale(1); opacity: .62; transition: filter .2s, opacity .2s; }
.lcp-grayscale .lcp-logo-card:hover img, .lcp-grayscale .lcp-logo-card a:focus img { filter: grayscale(0); opacity: 1; }
.lcp-navigation { display: flex; gap: .5rem; }
.lcp-arrow { background: transparent; border: 1px solid var(--lcp-line); color: var(--lcp-ink); cursor: pointer; font-size: 1.25rem; height: 2.4rem; line-height: 1; width: 2.4rem; }
.lcp-arrow:hover, .lcp-arrow:focus { background: #18221f; color: #fff; }
.lcp-dots { display: flex; gap: .4rem; justify-content: center; margin-top: 1.25rem; }
.lcp-dots button { background: #c3d0c6; border: 0; border-radius: 50%; cursor: pointer; height: .45rem; padding: 0; width: .45rem; }
.lcp-dots button.is-active { background: #18221f; transform: scale(1.4); }
@media (max-width: 900px) { .lcp-slide { flex-basis: calc((100% - (var(--lcp-gap) * (var(--lcp-tablet) - 1))) / var(--lcp-tablet)); } }
@media (max-width: 600px) { .lcp-carousel { margin: 2rem auto; } .lcp-slide { flex-basis: calc((100% - (var(--lcp-gap) * (var(--lcp-mobile) - 1))) / var(--lcp-mobile)); } .lcp-logo-card { padding: .75rem; } }
@media (prefers-reduced-motion: reduce) { .lcp-track, .lcp-logo-card img { transition: none; } }