/* 
 * CM Collection - Adaptive Container System
 */

/* 
 * 1. Fluid Container
 * Adapts based on variables.css constraints.
 */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--cmc-container-padding);
    padding-left: var(--cmc-container-padding);
}

.container {
    max-width: var(--cmc-container-max);
}

/* 
 * 2. Component Contract: Zero Overflow Strategy
 * Any element that could break out of its container MUST be contained.
 */
img, svg, video, canvas, audio, iframe, embed, object {
    max-width: 100%;
    height: auto;
}

/* Ensure nothing forces width beyond viewport */
html, body {
    max-width: 100vw;
    overflow-x: hidden; /* Secondary protection */
}

/* Reset basic structural elements to avoid hidden overlaps */
*, *::before, *::after {
    box-sizing: border-box;
}

/* Avoid text clipping out of rigid containers */
p, h1, h2, h3, h4, h5, h6, li, blockquote {
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: auto;
}
