/* Xinhua-style photo carousels; shared by the editor and published PC pages. */
.dx-carousel { position:relative; display:block; width:100%; min-width:0; height:auto; aspect-ratio:16 / 9; overflow:hidden; border-radius:0; background:#e8edf6; text-align:left; container-type:inline-size; }
.dx-carousel *, .dx-carousel *::before, .dx-carousel *::after { box-sizing:border-box; }
.dx-carousel .carousel-images { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; }
.preview-component .dx-carousel .carousel-images,
.preview-component .nc-right .dx-carousel .carousel-images { height:100%; aspect-ratio:auto; }
.dx-carousel .dx-carousel-slide { position:absolute; inset:0; display:block; width:100%; height:100%; margin:0; padding:0; aspect-ratio:auto; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .6s ease,visibility 0s linear .6s; }
.dx-carousel .dx-carousel-slide.is-active { z-index:1; opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.dx-carousel .dx-carousel-slide img, .dx-carousel img.dx-carousel-slide { display:block; width:100%; height:100%; max-width:100%; object-fit:cover; object-position:center; transform:none; }
.dx-carousel .dx-carousel-arrow { position:absolute; top:50%; z-index:3; display:flex; align-items:center; justify-content:center; width:clamp(32px,4cqw,50px); height:clamp(60px,8cqw,108px); padding:0; border:0; background:rgba(255,255,255,.58); color:#555; transform:translateY(-50%); cursor:pointer; transition:background .2s; }
.dx-carousel .dx-carousel-arrow:hover { background:rgba(255,255,255,.82); }
.dx-carousel .dx-carousel-prev { left:0; border-radius:0 7px 7px 0; }
.dx-carousel .dx-carousel-next { right:0; border-radius:7px 0 0 7px; }
.dx-carousel .dx-carousel-arrow span { width:clamp(12px,1.6cqw,20px); height:clamp(12px,1.6cqw,20px); border-top:2px solid currentColor; border-right:2px solid currentColor; }
.dx-carousel .dx-carousel-prev span { transform:translateX(3px) rotate(-135deg); }
.dx-carousel .dx-carousel-next span { transform:translateX(-3px) rotate(45deg); }
.dx-carousel .dx-carousel-caption { position:absolute; inset:auto 0 0; z-index:2; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; min-height:90px; padding:40px 20px 20px; background:linear-gradient(transparent,rgba(0,0,0,.72)); color:#fff; pointer-events:none; }
.dx-carousel .dx-carousel-title { flex:1; min-width:0; color:#fff; font-family:"Microsoft YaHei","PingFang SC",sans-serif; font-size:clamp(16px,2.5cqw,32px); font-weight:400; line-height:1.4; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-shadow:0 1px 3px rgba(0,0,0,.2); }
.dx-carousel .dx-carousel-dots { flex:0 1 auto; display:flex; justify-content:flex-end; flex-wrap:wrap; align-items:center; gap:7px; max-width:45%; margin-left:auto; padding:4px 0; pointer-events:auto; }
.dx-carousel .dx-carousel-dot { flex:0 0 auto; display:block; width:10px; height:10px; margin:0; padding:0; border:0; border-radius:999px; background:#d3d3d3; cursor:pointer; transition:width .2s,background .2s; }
.dx-carousel .dx-carousel-dot.is-active { width:24px; background:#3494f0; }
.dx-carousel .dx-carousel-dot:hover { background:#fff; }
.dx-carousel :is(.dx-carousel-arrow,.dx-carousel-dot):focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.dx-carousel .dx-carousel-dot:focus-visible { outline-offset:3px; }
.dx-carousel [hidden] { display:none !important; }
.dx-nc .dx-carousel, .preview-component[data-type="news_carousel"] .nc-right .dx-carousel { display:block; height:auto; aspect-ratio:16 / 9; }
.dx-image-carousel { height:auto; }
.dx-image-carousel .dx-carousel { height:auto; }
.dx-layout-fixed > .dx-layout-inner > .dx-image-carousel .dx-carousel,
.preview-component.has-custom-height[data-type="image_carousel"] .dx-carousel { height:100%; aspect-ratio:auto; }
@container (max-width:640px) {
    .dx-carousel .dx-carousel-caption { flex-direction:column; align-items:stretch; gap:6px; min-height:70px; padding:22px 12px 12px; }
    .dx-carousel .dx-carousel-dots { max-width:100%; padding:2px 0; gap:6px; }
    .dx-carousel .dx-carousel-dot { width:8px; height:8px; }
    .dx-carousel .dx-carousel-dot.is-active { width:20px; }
}
.dx-layout-fixed .dx-carousel .dx-carousel-caption,
.preview-component.has-custom-height .dx-carousel .dx-carousel-caption { min-height:0; padding-top:16px; padding-bottom:8px; }
@media (prefers-reduced-motion:reduce) {
    .dx-carousel .dx-carousel-slide, .dx-carousel .dx-carousel-arrow, .dx-carousel .dx-carousel-dot { transition:none; }
}
