/* R7.2: constrain long brand names and keep scrolling inside carousels. */
html { overflow-x: hidden; }
@supports (overflow: clip) { html { overflow-x: clip; } }
.public-site { width: 100%; max-width: 100%; }
.public-site main, .site-header, .site-footer { min-width: 0; max-width: 100%; }
.nav-shell > .site-brand { min-width: 0; flex: 0 1 260px; }
.nav-shell .brand-mark { flex: 0 0 34px; }
.nav-shell > .site-brand > span:not(.brand-mark) {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.nav-tools { flex: 0 0 auto; }
.site-footer .site-brand { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.nav-links { min-width: 0; }
.horizontal-carousel, .banner-carousel, .banner-viewport, .article-track {
    min-width: 0;
    max-width: 100%;
    width: 100%;
}
.banner-viewport, .article-track { overscroll-behavior-x: contain; }
.brand-card, .post-card, .service-card, .review-card, .product-card { overflow-wrap: anywhere; }
.section-heading > div { min-width: 0; }
@media (max-width: 1000px) {
    .nav-shell { gap: 12px; }
    .nav-shell > .site-brand { flex: 1 1 0%; font-size: 16px; gap: 8px; }
    .nav-tools { margin-inline-start: auto; }
    .nav-tools > * { flex-shrink: 0; }
    .nav-links { width: 100%; }
}
@media (max-width: 420px) {
    .nav-shell { gap: 8px; }
    .nav-shell > .site-brand { font-size: 13px; gap: 6px; }
    .nav-shell .brand-mark { flex-basis: 30px; width: 30px; height: 30px; }
    .nav-shell .nav-tools { gap: 4px; }
    .nav-shell .language-link { padding-inline: 6px; }
}
