/* Product detail layout fixes. Keep sidebar cards in normal flow so they never overlap while scrolling. */
.download-box {
    position: relative;
    top: auto;
    background: #fff;
    overflow: hidden;
}

.download-box h4,
.download-box dd {
    overflow-wrap: anywhere;
}

.cookie-consent{position:fixed;left:20px;right:20px;bottom:20px;z-index:1080;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:980px;margin:auto;padding:18px 20px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;box-shadow:0 20px 60px #0f172a33}.cookie-consent p{color:#64748b}@media(max-width:767px){.cookie-consent{align-items:stretch;flex-direction:column;left:10px;right:10px;bottom:10px}.cookie-consent .d-flex .btn{flex:1}}

.download-box dl div {
    gap: 18px;
}

.download-box dt {
    flex: 0 0 auto;
}

.download-box dd {
    margin-bottom: 0;
    text-align: right;
}

/* Keep every product card title, metadata and action aligned across a row. */
.product-card-body h5 {
    min-height: 3rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

.product-card-body .tags small {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Let flex inputs shrink inside narrow phones instead of widening the page. */
.hero-search input,
.newsletter input {
    min-width: 0;
    width: 100%;
}

.hero-search button,
.newsletter button {
    flex-shrink: 0;
}

.tags {
    flex-wrap: wrap;
}

.content-body,
.article-content {
    overflow-wrap: anywhere;
    min-width: 0;
}

.content-body pre,
.article-content pre {
    max-width: 100%;
    overflow-x: auto;
}

@media (max-width: 575.98px) {
    /* section-space resets horizontal padding when placed on the container itself. */
    .container.section-space {
        padding-inline: 12px;
    }

    /* Bootstrap g-5 has wider negative margins than the mobile container padding. */
    .container > .row.g-5 {
        --bs-gutter-x: 1.5rem;
    }

    .newsletter {
        padding: 24px;
    }

    .newsletter form {
        flex-direction: column;
        gap: 8px;
        min-width: 0;
        width: 100%;
    }

    .section-head {
        flex-wrap: wrap;
        gap: 12px;
    }
}
