.df-content-page { max-width: 1100px; margin: 28px 0 65px; line-height: 1.65; }
.df-content-page img, .df-content-page video, .df-content-page iframe { max-width: 100%; height: auto; }
.df-content-page h2, .df-content-page h3 { margin: 1.5em 0 .5em; }
.df-content-page p, .df-content-page ul, .df-content-page ol { margin: 0 0 1.2em; }
.df-content-page table { display: block; max-width: 100%; overflow-x: auto; }
.df-editorial-layout { min-width: 0; margin-bottom: 2em; align-items: start; }
.df-editorial-layout .df-content-page { min-width: 0; max-width: none; margin: 0; line-height: inherit; }
.df-editorial-layout .df-content-page p { margin-bottom: 0; }
.df-editorial-layout .df-content-page h4 { margin: 0 0 .3em; }
.df-editorial-layout .df-content-page ul { margin-bottom: 0; }
.df-editorial-layout .df-content-plain { display: block; white-space: pre-line; }
.df-editorial-layout .right-sidebar, .df-editorial-layout .author-desc { min-width: 0; }
.df-editorial-layout .product-unit { min-width: 0; }
.df-editorial-layout .product-init_img img { width: 100%; height: auto; aspect-ratio: 275/196; object-fit: contain; }
.df-editorial-layout .product-unit_price-btn { flex-wrap: wrap; gap: 8px; }
/* Embedded source promotion products use the same cards as the catalogue. */
.df-content-page .row:has(.df-promotion-products) { margin: 0; display: block; }
.df-content-page .df-promotion-products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 28px 0; }
.df-content-page .df-promotion-card { position: relative; display: flex; flex-direction: column; line-height: 1.35; }
.df-content-page .df-promotion-card .product-init_img img { width: 100%; height: auto; aspect-ratio: 275 / 196; object-fit: contain; }
.df-content-page .df-promotion-card .product-unit_desc { flex: 1; gap: 18px; }
.df-content-page .df-promotion-card .product-unit_features { margin: 0; padding: 0; }
.df-content-page .df-promotion-card .product-unit_features img { width: 18px; height: 18px; }
.df-content-page .df-promotion-card .df-all-specifications { margin-top: auto; }
.df-content-page .df-promotion-card .product-unit_price-btn { align-items: center; justify-content: space-between; margin-top: 0; }
.df-promotion-prices { display: flex; flex-direction: column; gap: 4px; }
.df-promotion-prices del { font-size: 14px; color: #75697e; }
@media (max-width: 540px) { .df-content-page .df-promotion-products { grid-template-columns: 1fr; } }

.df-gallery-hub .container-fluid > .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0; }
.df-gallery-hub .container-fluid > .row > div { min-width: 0; padding: 0; }
.df-gallery-hub .container-fluid > .row > div > a { display: flex; min-height: 280px; align-items: center; justify-content: center; flex-direction: column; background: #f7f5f8; }
.df-gallery-hub img { display: block; width: auto; max-width: 100%; height: auto; max-height: 280px; object-fit: contain; }
.df-gallery-hub h2, .df-gallery-hub h3 { font-size: 20px; margin: 12px 0 0; }
@media (max-width: 600px) { .df-gallery-hub .container-fluid > .row { grid-template-columns: 1fr; } .df-gallery-hub .container-fluid > .row > div > a { min-height: 0; background: transparent; } .df-gallery-hub img { height: auto; max-height: 280px; } }

/* Avoid stacking grid, editorial and contact spacing after promotion cards. */
.df-editorial-layout:has(.df-promotion-products) { margin-bottom: 0; }
.df-content-page .df-promotion-products { margin-bottom: 0; }
