/* Catalogue and detail pages reuse the site's typography, colours and sidebar components. */
:is(.page-products,.page-product-detail,.page-insights,.page-article) main .container { max-width:1240px; }
.insight-cards { gap:40px 32px; }
.insight-cards .article-card { display:flex; flex-direction:column; border:0; padding:0; background:none; }
.insight-card-image { display:block; margin-bottom:24px; overflow:hidden; }
.insight-card-image img,.insight-image-empty { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; background:#111; }
.insight-cards .post-item-body { display:flex; flex:1; flex-direction:column; }
.insight-cards h2 { font-size:23px; line-height:1.35; margin:0 0 8px; }
.insight-cards h2 a { color:#34383c; }
.insight-cards h2 a:hover { color:var(--accent-color); }
.insight-cards .article-meta { font-size:14px; color:#777; margin:0 0 20px; }
.insight-cards .insight-card-excerpt { color:#606368; font-size:16px; line-height:1.7; margin:0 0 16px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.insight-cards .card-link { margin-top:auto; width:fit-content; }
.article-detail .article-body { max-width:none; }
.article-detail .article-copy { font-size:16px; line-height:1.8; }
.article-copy :is(ul,ol) { padding-left:24px; margin-bottom:24px; }
.article-copy li { margin-bottom:8px; }
.article-detail .categories-widget a { align-items:center; font-size:15px; line-height:1.5; }
.article-detail .categories-widget a i { flex-shrink:0; }
.article-detail .service-sidebar { top:128px; }

/* Four compact product cards on desktop. */
.page-products .content-grid.product-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; max-width:none; }
.page-products .product-cards .product-card { width:100%; max-width:none; }
.page-products .product-visual img { height:220px; aspect-ratio:auto; object-fit:contain; padding:12px; }
.page-products .product-image-placeholder { min-height:220px; aspect-ratio:auto; }
.page-products .product-card-content { padding:20px; }
.page-products .product-card-content h2 { font-size:20px; line-height:1.3; }
.page-products .product-card-content p { font-size:14px; margin-bottom:20px; }
.page-products .product-card-content .btn-default { font-size:14px; padding-left:12px; padding-right:40px; }
.page-products .product-cards .sector-label { font-size:10px; padding:6px 10px; }

/* Product summary on the left, image and editable copy on the right. */
.product-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.3fr); gap:48px; align-items:start; }
.product-detail-layout > * { min-width:0; }
.product-summary .sidebar-widget { background:#fff; border:1px solid #e5e7eb; padding:24px; margin-bottom:24px; }
.product-summary-info h2 { font-size:22px; line-height:1.35; margin:0 0 24px; }
.product-summary-info .product-category-label { font-size:12px; text-transform:uppercase; letter-spacing:1px; color:#777; margin:0 0 8px; }
.product-summary-info > a { display:block; font-size:15px; }
.product-thumbnail { margin:0 0 24px; padding:16px; background:#f4f4f4; }
.product-thumbnail img { display:block; width:100%; height:200px; object-fit:contain; }
.product-thumbnail .product-image-placeholder { min-height:180px; aspect-ratio:auto; }
.product-contact h3 { font-size:22px; }
.product-contact p { font-size:14px; }
.product-contact > a:not(.btn-default) { display:flex; align-items:center; gap:12px; font-size:14px; padding:12px 0; overflow-wrap:anywhere; }
.product-contact > a i { flex-shrink:0; color:#666; }
.product-contact .btn-default { display:block; text-align:center; margin-top:20px; font-size:14px; }
.product-overview .product-detail-image { background:#f4f4f4; border-radius:0; padding:24px; margin-bottom:40px; }
.product-overview .product-detail-image img { display:block; width:100%; height:440px; object-fit:contain; }
.product-overview :is(.product-description,.product-features) { margin:0 0 40px; }
.product-overview h2 { font-size:32px; line-height:1.25; margin-bottom:24px; }
.product-overview p,.product-features li { font-size:16px; line-height:1.8; }
.product-features ul { padding-left:22px; margin:0; }
.product-features li { padding-left:4px; margin-bottom:8px; overflow-wrap:anywhere; }
@media(max-width:991px) {
 .page-products .content-grid.product-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .product-detail-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:24px; }
 .product-summary .sidebar-widget { padding:20px; }
 .product-overview .product-detail-image img { height:340px; }
}
@media(max-width:767px) {
 .insight-cards { gap:40px; }
 .insight-cards h2 { font-size:22px; }
 .article-detail .service-sidebar { margin-top:40px; }
 .product-detail-layout { grid-template-columns:1fr; gap:32px; }
 .product-thumbnail img { height:180px; }
 .product-overview .product-detail-image img { height:300px; }
 .product-overview h2 { font-size:28px; }
 .product-summary-info { text-align:center; }
}
@media(max-width:575px) {
 .page-products .content-grid.product-cards { grid-template-columns:1fr; max-width:360px; margin-inline:auto; }
}
