.section-carousel {
    width: 100%;
    max-width: 100%;
    /* 作为 flex item 时 min-width 默认 auto，会被内容撑宽而溢出视口 */
    min-width: 0;
    /* 条高是模版的固定排版，不开放调节：交付给客户后只允许换图标与文案。
       曾经把 44/36px 写在板块的「自定义CSS」里（属配置层），客户一旦删掉板块重新添加
       就会丢失、回落到默认值，所以搬进代码作为真正的默认。 */
    height: 44px;
    background: var(--background-color, #F7F7F7);
    white-space: nowrap;
    /* 只写 overflow-x:hidden 时 overflow-y 会被算成 auto，内容超高仍会露出条外 */
    overflow: hidden;
    display: flex;
}

.section-carousel_scroll {
    /* 轨道是 flex item，默认 flex-shrink:1 会被压缩；一旦压缩，
       translateX(-100%) 的位移就短于内容实际宽度，接缝处必然错位 */
    flex: 0 0 auto;
    /* 宽度必须贴合内容：给 min-width:100% 会把轨道拉伸到容器宽，
       内容不够时右侧留出大片空白，四条轨道也就接不上了 */
    width: max-content;
    animation: scroll var(--carousel-speed, 20s) linear infinite normal;
    display: flex;
}

.section-carousel:hover .section-carousel_scroll {
    animation-play-state: paused;
}

.section-carousel_item {
    display: inline-flex;
    align-items: center;
    height: 100%;
    margin-left: 60px;
}

.section-carousel_item_icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    /* 必须给确定高度：子元素的 max-height:100% 若父高为 auto 会被当作 none，兜底就失效了。
       这条链是 .section-carousel(36/44px) -> _scroll(stretch) -> _item(100%) -> 这里(100%) */
    height: 100%;
    margin-right: 10px;
}

.section-carousel_item_icon img,
.section-carousel_item_icon svg,
.section-carousel_item_icon-default {
    /* 按条高的比例取图标尺寸，不用固定 px、不依赖 media query。
       这样任何机型、任何断点下图标都只占条高的 55%，上下各留一段余量，
       永远不会顶出背景条。
       取 55% 而非原来的 66%，是为了等价于此前「自定义CSS」里手工调的
       44px 条配 24px 图标（54.5%）、36px 条配 20px 图标（55.6%）——
       搬进代码后视觉不变，但条高一改图标自动跟随，不再需要人工同步两个固定值。 */
    height: 55%;
    width: auto;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.section-carousel_item_icon-default {
    background-color: #ddd;
    aspect-ratio: 1 / 1;
}

.section-carousel_item_text {
    font-size: 16px;
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    color: var(--color-text, #4B3C8B);
}

@keyframes scroll {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-100%);
    }
}

/* 移动端适配 */
@media screen and (max-width: 768px) {
  .section-carousel {
    height: 36px;
  }

  .section-carousel_scroll {
    /* 不能靠 var() fallback：--carousel-speed 由 inline style 赋值，一直有值。
       改用独立的移动端变量，未设置时按 PC 速度的 0.75 倍自动提速 */
    animation-duration: var(--carousel-speed-mobile, calc(var(--carousel-speed, 20s) * 0.75));
  }

  .section-carousel_item {
    margin-left: 30px;
  }

  /* 图标与文字的间距不再分断点：PC 与移动端统一用基础的 10px，
     少一处需要人工同步的值。原来 PC 14px / 移动 8px 的分档已被
     「自定义CSS」里一条无断点的 10px !important 抹平，此处对齐现状。 */

  .section-carousel_item_text {
    font-size: 14px;
    line-height: 20px;
    color: #4B3C8B;
    white-space: nowrap;
  }
}