.acc-carousel {
  --acc-spv: 4.5;
  --acc-gap: 22px;
  width: 100%;
  position: relative;
}
.acc-carousel *, .acc-carousel *::before, .acc-carousel *::after { box-sizing: border-box; }
.acc-viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  padding-top: 28px;
  padding-bottom: 18px;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
}
.acc-viewport::-webkit-scrollbar { display: none; }
.acc-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--acc-gap);
  width: max-content;
  min-width: 100%;
}
.acc-card {
  --acc-item-accent: #15945f;
  position: relative;
  flex: 0 0 calc((100vw - 0px) / var(--acc-spv));
  width: calc((100% - (var(--acc-gap) * (var(--acc-spv) - 1))) / var(--acc-spv));
  max-width: calc((var(--acc-container-width, 1000px) - (var(--acc-gap) * (var(--acc-spv) - 1))) / var(--acc-spv));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: #fff;
  border: 1px solid #d9e4dd;
  border-radius: 20px;
  transition: transform .32s ease, background-color .32s ease, border-color .32s ease, box-shadow .32s ease, color .32s ease;
  scroll-snap-align: center;
  overflow: hidden;
  cursor: pointer;
}
/* Width is finalized by JS so it always respects the actual Elementor widget width. */
.acc-card__top { width: 100%; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.acc-card__media { width: 68px; height: 68px; border-radius: 999px; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: 0 0 auto; }
.acc-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acc-card__media i { font-size: 27px; }
.acc-card__media svg { width: 42%; height: 42%; }
.acc-card__number { margin-bottom: 10px; font-weight: 700; font-size: 18px; color: var(--acc-item-accent); }
.acc-card__title { margin: 0 0 14px; font-size: 22px; line-height: 1.18; font-weight: 700; color: #17231c; }
.acc-card__description { margin: 0 0 14px; font-size: 15px; line-height: 1.55; color: #66736b; }
.acc-card__list { margin: 2px 0 18px; padding-left: 18px; font-size: 14px; line-height: 1.55; color: #66736b; }
.acc-card__list li { margin-bottom: 2px; }
.acc-card__statement { width: 100%; margin-top: auto; padding: 12px 14px; font-size: 13px; line-height: 1.4; font-weight: 600; background: #eef6f2; color: #123d2b; }
.acc-card__button { margin-top: auto; display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 12px 15px; text-decoration: none; background: #123d2b; color: #fff; border-radius: 12px; }
.acc-card.is-active .acc-card__media { background: rgba(255,255,255,.92); }
.acc-card.is-active .acc-card__media i, .acc-card.is-active .acc-card__media svg { color: #123d2b; fill: #123d2b; }
.acc-card.is-active .acc-card__statement { background: rgba(255,255,255,.12); color: inherit; }
.acc-details-active-only .acc-card:not(.is-active) .acc-card__details { display: none; }
.acc-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 14px; position: relative; }
.acc-arrows { display: flex; align-items: center; gap: 10px; }
.acc-arrow { width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #d9e4dd; border-radius: 999px; background: transparent; color: #123d2b; cursor: pointer; font-size: 20px; transition: opacity .2s ease, transform .2s ease, background-color .2s ease; }
.acc-arrow:hover { transform: translateY(-2px); }
.acc-arrow:disabled { opacity: .3; cursor: default; transform: none; }
.acc-progress { position: absolute; right: 0; display: flex; gap: 5px; align-items: baseline; font-size: 13px; letter-spacing: .08em; }
.acc-progress-current { font-weight: 700; }
.acc-footer-cta-wrap { display: flex; justify-content: center; margin-top: 18px; }
.acc-footer-cta { min-width: min(100%, 380px); display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 22px; text-decoration: none; background: #123d2b; color: #fff; border-radius: 12px; }
@media (max-width: 767px) {
  .acc-viewport { padding-top: 18px; }
  .acc-card__title { font-size: 20px; }
  .acc-card__description { font-size: 14px; }
  .acc-progress { position: static; }
  .acc-controls { justify-content: space-between; }
  .acc-footer-cta { width: 100%; min-width: 0; }
}
