/* Sportsuite 2.0.6: size the profile columns instead of clipping overflowing text.
   Scope excludes E-commerce's .ssp-product-page and its modals. */
.ssp-single .ssp-content-column {
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    max-width: 100%;
    overflow: visible;
}

.ssp-single .ssp-main-grid > *,
.ssp-single .ssp-content-column > *,
.ssp-single .ssp-sidebar > *,
.ssp-single .ssp-identity-copy,
.ssp-single .ssp-rich-content,
.ssp-single .ssp-section-heading > div,
.ssp-single .ssp-services-grid article > div,
.ssp-single .ssp-review-card > div,
.ssp-single .ssp-side-card-head > div {
    min-width: 0;
    max-width: 100%;
}

.ssp-single .ssp-rich-content {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* Includes fixed widths pasted from the editor. This does not constrain a
   slider's internal track: only its outer wrapper must fit the card. */
.ssp-single .ssp-rich-content > *,
.ssp-single .ssp-rich-content :where(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote, .wp-block-group, .wp-block-column, .wpb_wrapper, .wpb_text_column, .wpb_content_element, .vc_column-inner, .vc_column_container) {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

.ssp-single .ssp-rich-content :where(.gallery, .wp-block-gallery, .ssg) {
    min-width: 0;
    max-width: 100%;
}

/* Full-width rows embedded in a profile belong to its card, not the browser. */
.ssp-single .ssp-rich-content > .vc_row,
.ssp-single .ssp-rich-content .vc_row[data-vc-full-width] {
    width: 100% !important;
    max-width: 100% !important;
    left: auto !important;
    right: auto !important;
    margin-inline: 0 !important;
}

.ssp-single .ssp-rich-content .vc_row[data-vc-full-width] {
    padding-inline: 0 !important;
}

.ssp-single .ssp-rich-content > img,
.ssp-single .ssp-rich-content p img,
.ssp-single .ssp-rich-content .wp-block-image img,
.ssp-single .ssp-rich-content .wpb_single_image img {
    max-width: 100% !important;
    height: auto !important;
}

.ssp-single .ssp-rich-content :where(iframe, video, embed, object) {
    max-width: 100% !important;
}

.ssp-single .ssp-rich-content :where(.wpb_gallery, .wpb_gallery_slides, .flexslider, .flex-viewport) {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Wide data retains a local scrollbar rather than widening the whole profile. */
.ssp-single .ssp-rich-content table,
.ssp-single .ssp-rich-content pre {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
}

.ssp-single .ssp-rich-content pre,
.ssp-single .ssp-rich-content pre * {
    white-space: pre !important;
    overflow-wrap: normal;
}

@media (max-width: 900px) {
    .ssp-single .ssp-main-grid,
    .ssp-single .ssp-sidebar {
        grid-template-columns: minmax(0, 1fr);
    }

    .ssp-single .ssp-card,
    .ssp-single .ssp-side-card,
    .ssp-single .ssp-identity-copy,
    .ssp-single .ssp-section-heading,
    .ssp-single .ssp-services-grid,
    .ssp-single .ssp-product-body,
    .ssp-single .ssp-story-body,
    .ssp-single .ssp-event-body,
    .ssp-single .ssp-review-card,
    .ssp-single .ssp-contact-list {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    /* Raw text nodes (without <p>) also inherit normal wrapping. */
    .ssp-single .ssp-rich-content {
        width: 100%;
        white-space: normal;
    }

    .ssp-single .ssp-rich-content :where(p, h1, h2, h3, h4, h5, h6, li, blockquote, a, span, strong, em, .wpb_wrapper, .wpb_text_column) {
        white-space: normal !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .ssp-single .ssp-rich-content :where(.alignleft, .alignright, .alignwide, .alignfull) {
        float: none;
        max-width: 100% !important;
        margin-inline: 0 !important;
    }

    .ssp-single .ssp-services-grid article {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .ssp-single .ssp-section-heading {
        align-items: flex-start;
    }

    .ssp-single .ssp-button {
        min-width: 0;
        max-width: 100%;
        white-space: normal !important;
        line-height: 1.35 !important;
        padding-block: 12px !important;
        text-align: center;
    }
}

@media (max-width: 700px) {
    .ssp-single .ssp-identity,
    .ssp-single .ssp-hero-actions,
    .ssp-single .ssp-services-grid,
    .ssp-single .ssp-products-grid,
    .ssp-single .ssp-stories-grid,
    .ssp-single .ssp-related-grid,
    .ssp-single .ssp-rating-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .ssp-single .ssp-card {
        padding: clamp(16px, 4.5vw, 21px);
    }

    .ssp-single .ssp-rich-content {
        font-size: 16px;
        line-height: 1.75;
    }

    .ssp-single .ssp-section-heading h2 {
        font-size: clamp(21px, 5.4vw, 24px);
        line-height: 1.2;
    }
}

/* 2.0.6: WPBakery columns must fill the mobile card, not keep their desktop
   fraction, offset or horizontal design-option padding. Keep the scope on the
   description; do not touch the header, forms or a gallery's internal track. */
@media (max-width: 900px) {
    .ssp-single .ssp-rich-content {
        min-width: 0;
        max-width: 100%;
        margin-inline: 0;
        padding-inline: 0;
        text-align: start;
    }

    .ssp-single .ssp-rich-content > div:not(.ssg),
    .ssp-single .ssp-rich-content :where(.vc_row, .wpb_row, .wpb_column, .vc_column_container, .vc_column-inner, .wpb_wrapper, .wpb_text_column, .wp-block-columns, .wp-block-column) {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        float: none !important;
        left: auto !important;
        right: auto !important;
        box-sizing: border-box !important;
    }

    .ssp-single .ssp-rich-content :where(.wpb_column, .vc_column_container, .wp-block-column) {
        flex: 0 0 100% !important;
    }

    .ssp-single .ssp-rich-content :where(.vc_row, .wpb_row, .wp-block-columns) {
        flex-wrap: wrap !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .ssp-single .ssp-rich-content p {
        width: auto !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        text-indent: 0 !important;
        text-align: start !important;
    }

    /* WPBakery Image Carousel is distinct from a core WordPress gallery.
       This is a scrollable, no-JavaScript fallback until the mobile adapter
       is ready; the desktop slider is left in place and never rewritten. */
    .ssp-single .ssp-rich-content .wpb_images_carousel,
    .ssp-single .ssp-rich-content .wpb_images_carousel .vc_slide,
    .ssp-single .ssp-rich-content .wpb_images_carousel .vc_carousel-inner {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: none !important;
        box-sizing: border-box !important;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) .vc_carousel-inner {
        display: block !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        scrollbar-width: thin;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) :where(.vc_carousel-slideline, .vc_carousel-slideline-inner) {
        position: relative !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        left: 0 !important;
        transform: none !important;
        transition: none !important;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) .vc_item {
        position: relative !important;
        display: block !important;
        flex: 0 0 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        float: none !important;
        left: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        scroll-snap-align: start;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) :where(.vc_inner, .vc_inner > a, .vc_inner picture) {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) .vc_inner img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        max-height: 440px;
        aspect-ratio: 4 / 3;
        object-fit: contain !important;
        margin: 0 auto !important;
        background: #edf1f5;
    }

    .ssp-single .ssp-rich-content .wpb_images_carousel:not(.ssg-vc-adapted) :where(.vc_carousel-control, .vc_carousel-indicators),
    .ssp-single .ssp-rich-content .wpb_images_carousel.ssg-vc-adapted .ssg-vc-source {
        display: none !important;
    }

    .ssp-single .ssp-rich-content .ssg--vc-mobile {
        margin: 16px 0 24px !important;
    }
}

@media (min-width: 901px) {
    /* Resizing back to desktop restores the original WPBakery carousel. */
    .ssp-single .ssp-rich-content .ssg--vc-mobile {
        display: none !important;
    }
}
