/* CMS content, variable-length titles and nested navigation. */
.cms-content { overflow-wrap: anywhere; }
.cms-content img, .cms-content video { max-width: 100%; height: auto; }
.cms-content table { display: block; max-width: 100%; overflow-x: auto; }
.home-product-card h2, .guide-card h3 { overflow-wrap: anywhere; }
.banner-slide > a { display: block; }
.applications-grid > a { position: relative; }
.applications-grid > a > span { display: block; padding: 8px; color: #222; text-align: center; }
.theme-page { padding-top: 48px; padding-bottom: 64px; min-height: 50vh; }
.theme-page h1 { margin-bottom: 28px; }
.theme-column-image { max-width: 100%; height: auto; margin-bottom: 24px; }
.theme-archive-cover { display: block; max-width: 100%; max-height: 480px; object-fit: contain; margin: 24px auto; }
.theme-pagination { display: flex; flex-wrap: wrap; gap: 16px; padding: 24px 0; }
.theme-pagination [aria-current] { color: #d71920; font-weight: bold; }
.main-nav .sub-dropdown-panel .nav-sub-dropdown { position: relative; }
@media (min-width: 1021px) { .sub-dropdown-panel .sub-dropdown-panel { left: 100%; top: 0; } }
@media (max-width: 767px) { .theme-page { padding-top: 28px; padding-bottom: 36px; } }

.theme-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.banner-slide > a { height: 100%; }

/* The homepage header and banner together fill the visible viewport. */
.cnsollant-home .banner {
    --home-header-height: 96px;
    aspect-ratio: auto;
    height: max(0px, calc(100vh - var(--home-header-height)));
    height: max(0px, calc(100dvh - var(--home-header-height)));
}
@media (max-width: 1020px) {
    .cnsollant-home .banner { --home-header-height: 80px; }
}
@media (max-width: 600px) {
    .cnsollant-home .banner { --home-header-height: 72px; }
}
