/* Keep content images complete in both the editor and published components. */
.dx-wrap { max-width:100%; box-sizing:border-box; }
.preview-component:is([data-type="section_title"], [data-type="news_carousel"], [data-type="zone_group"], [data-type="dual_col"], [data-type="triple_zone"], [data-type="association_carousel"], [data-type="video_show"], [data-type="tab_topic"], [data-type="image_carousel"]) { max-width:1200px; }
.preview-component:is([data-type="news_combo"], [data-type="promo_module"], [data-type="column_container"]) { max-width:100%; }
.section-title-block .st-subs { min-width:0; max-width:100%; }
/* News carousel: keep a real 16:9 image frame instead of stretching to the news height. */
.dx-nc, .preview-component[data-type="news_carousel"] .nc-split { display:grid; grid-template-columns:minmax(0,35fr) minmax(0,65fr); gap:20px; align-items:stretch; height:auto; }
.dx-nc .dx-nc-left, .preview-component[data-type="news_carousel"] .nc-left { box-sizing:border-box; width:auto; min-width:0; padding:0 16px 0 0; border-right:1px solid #e6e6e6; display:flex; flex-direction:column; }
.dx-nc .dx-nc-list { flex:1; display:flex; flex-direction:column; justify-content:space-between; }
.preview-component[data-type="news_carousel"] .nc-left-list { flex:1; display:flex; flex-direction:column; justify-content:space-between; }
.preview-component[data-type="news_carousel"] .nc-news-item:first-child .nc-news-title { font-size:22px; font-weight:bold; }
.dx-nc .dx-nc-mid { position:relative; inset:auto; display:block; min-width:0; align-self:start; }
.dx-nc .dx-nc-slides { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 40px; height:auto; }
.dx-nc .dx-nc-slide { grid-area:1 / 1; width:100%; height:auto; aspect-ratio:16 / 9; }
.dx-nc .dx-nc-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.dx-nc .dx-nc-bar { position:static; grid-area:2 / 1; height:40px; box-sizing:border-box; background:#555; }
.preview-component[data-type="news_carousel"] .nc-right { align-self:start; min-width:0; min-height:0; }
.preview-component[data-type="news_carousel"] .nc-right .carousel-container { display:flex; flex-direction:column; height:auto; }
.preview-component[data-type="news_carousel"] .nc-right .carousel-images { width:100%; height:auto; aspect-ratio:16 / 9; flex:none; }
.preview-component[data-type="news_carousel"] .nc-right .carousel-bar { position:static; height:40px; flex:0 0 40px; box-sizing:border-box; background:#555; }
.preview-component.has-custom-height[data-type="news_carousel"] > .component-preview > .nc-split { height:auto; }
.dx-nc:not(:has(.dx-nc-slide)) { grid-template-columns:minmax(0,1fr); }
.dx-nc:not(:has(.dx-nc-slide)) .dx-nc-mid { display:none; }
@media (max-width:860px) {
    .dx-nc, .preview-component[data-type="news_carousel"] .nc-split { grid-template-columns:minmax(0,1fr); }
    .dx-nc .dx-nc-left, .preview-component[data-type="news_carousel"] .nc-left { border-right:0; padding-right:0; }
}
.preview-component[data-type="image_carousel"] .component-preview { display:block; width:100%; }
.dx-image-carousel { height:400px; margin-bottom:20px; }
.dx-image-carousel .dx-nc-slides { height:100%; }
.dx-image-carousel .dx-nc-slide { height:calc(100% - 40px); }
.dx-image-carousel .dx-nc-bar { height:40px; box-sizing:border-box; }
.preview-component[data-type="image_carousel"] .carousel-images { height:calc(100% - 40px); }
.preview-component[data-type="image_carousel"] .carousel-bar { height:40px; box-sizing:border-box; }
.dx-layout-fixed > .dx-layout-inner > .dx-image-carousel { height:100%; margin-bottom:0; }
.dx-promo-overlay { position:relative; width:100%; height:auto; opacity:1; }
.dx-triple .dx-tri-col { min-width:0; flex:1 1 0; box-sizing:border-box; }
.dx-triple .dx-tri-col:first-child { flex-grow:1.25; }
@media (max-width:860px) {
    .dx-triple, .triple-zone-container { flex-direction:column; }
    .dx-triple .dx-tri-col, .triple-zone-container .tz-col { flex-basis:auto; width:100%; margin-right:0; }
}
.dx-news-combo *, .dx-promo-module * { box-sizing:border-box; }
.dx-news-combo .dx-nc-image_list .dx-nc-items { gap:10px; }
.dx-news-combo .dx-nc-feature-img { height:auto; aspect-ratio:16 / 7; }
.dx-news-combo .dx-nc-thumb { flex:0 0 96px; width:96px; height:68px; }
.dx-news-combo .dx-nc-image_list .dx-nc-thumb { width:100%; height:auto; aspect-ratio:4 / 3; }
.dx-news-combo :is(.dx-nc-feature-img, .dx-nc-thumb) img,
.dx-promo-module :is(.dx-promo-hero-media, .dx-promo-card-media) img { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; object-position:center; transform:none; }

/* The same fitting rule applies to the other image cards and news slides. */
:is(.carousel-images, .dx-nc-slide, .assoc-card, .dx-as-card, .tt-card-media, .dx-tt-card-media, .tt-imgs, .dx-tt-imgs, .zone-item, .dx-zc-ico, .dc-left-top-img, .dx-dc-top-img, .dc-left-bcard-img, .dx-dc-bcard-img) img,
.dx-column-container :is(.dx-cc-feature-image, .dx-cc-thumb) img { object-fit:contain; transform:none; }
:is(.dx-nc-slide, .assoc-card, .dx-as-card, .dx-zc-ico, .dx-tri-img, .dx-tt-card-media, .dx-tt-imgs li, .dc-left-top-img, .dx-dc-top-img, .dc-left-bcard-img, .dx-dc-bcard-img):hover img { transform:none; }
.zone-item.image-item img { object-fit:contain !important; }
.dx-tri-img img { height:auto; object-fit:contain; transform:none; }
.dx-wrap:is(.dx-image-show, .dx-img-row, .dx-img-row2) img { transform:none; }
.dx-cc-feature-image { display:block; height:auto; aspect-ratio:16 / 7; overflow:hidden; }
.dx-column-container .dx-cc-thumb { flex:0 0 88px; width:88px; height:62px; overflow:hidden; }
.dx-column-container .dx-cc-feature-image img, .dx-column-container .dx-cc-thumb img { display:block; width:100%; height:100%; }

/* Fixed-height text/image modules can scroll instead of cutting off their content. */
.preview-component.has-custom-height:not([data-type="image_show"]):not([data-type="image_row"]):not([data-type="image_row2"]):not([data-type="image_multi_row"]):not([data-type="image_carousel"]) > .component-preview,
.dx-layout-fixed > .dx-layout-inner:not(:has(> :is(.dx-image-show, .dx-img-row, .dx-img-row2, .dx-multi-row, .dx-image-carousel))) { overflow:auto; }
