div.csc-default, div.csc-max-width {
    /* This is crucial to keep it readable. */
    max-width: 540pt;
}
div.csc-unrestricted {
    /* Nothing. */
}
div.csc-static-full-width {
    width: 540pt;
}
div.csc-static-half-width {
    width: 270pt;
}

/* Floatstack performs automatic left-aligned floating of contained DIVs. */
div.csc-floatstack > div {
    float: left;
    margin-bottom: 5pt;
    margin-right: 10pt;
    width: 270pt;
}
div.csc-shrinkfloatstack > div {
    float: left;
    margin-bottom: 5pt;
    margin-right: 10pt;
}
div.csc-floatstack, div.csc-shrinkfloatstack,
div.csc-floatstack > p, div.csc-shrinkfloatstack > p,
div.csc-floatstack > h1, div.csc-shrinkfloatstack > h1,
div.csc-floatstack > h2, div.csc-shrinkfloatstack > h2,
div.csc-floatstack > h3, div.csc-shrinkfloatstack > h3,
div.csc-floatstack > h4, div.csc-shrinkfloatstack > h4,
div.csc-floatstack > h5, div.csc-shrinkfloatstack > h5,
div.csc-floatstack > h6, div.csc-shrinkfloatstack > h6,
div.csc-floatstack > img, div.csc-shrinkfloatstack > img,
div.csc-floatstack > div.csc-header, div.csc-shrinkfloatstack > div.csc-header {
    clear: both;
    float: none;
}

/* Quite like csc-shrinkfloatstack, but applies baseline-adjustment.
 * For the latter to work, this cannot use floating, but applies the
 * CSS 2.1 feature 'inline-block'.
 */
div.csc-basefloatstack > div {
    display: inline-block;
    margin-bottom: 5pt;
    margin-right: 10pt;
}
div.csc-basefloatstack > div.csc-header {
    display: block;
}

/* MSIE < 8 does not properly support inline-block. Fall back to floating,
 * although that will not properly align content at the baseline.
 */
body.msie-pre8-browser div.csc-basefloatstack > div {
    display: block;
    float: left;
}
body.msie-pre8-browser div.csc-basefloatstack,
body.msie-pre8-browser div.csc-basefloatstack > p,
body.msie-pre8-browser div.csc-basefloatstack > h1,
body.msie-pre8-browser div.csc-basefloatstack > h2,
body.msie-pre8-browser div.csc-basefloatstack > h3,
body.msie-pre8-browser div.csc-basefloatstack > h4,
body.msie-pre8-browser div.csc-basefloatstack > h5,
body.msie-pre8-browser div.csc-basefloatstack > h6,
body.msie-pre8-browser div.csc-basefloatstack > img,
body.msie-pre8-browser div.csc-basefloatstack > div.csc-header {
    clear: both;
    float: none;
}

div.csc-lhswrap {
    clear: both;
    float: left;
    width: 50%;
    min-width: 180pt;
}
div.csc-lhs {
    margin-right: 10pt;
    max-width: 540pt;
}
div.csc-rhswrap {
    float: right;
    width: 50%;
    min-width: 180pt;
}
div.csc-rhs {
    margin-left: 10pt;
    max-width: 540pt;
}

/* No floating across section boundaries (floatstack or other). */
div.csc-wrap {
    clear: both;
    overflow: auto;
}

/* Overflow handling for content primitives that may contain images and have
 * a clear outer frame that would otherwise be affected.
 * 
 * Attention: This may hurt float handling, so it must not be enabled for eg
 * all paragraphs and all DIVs. Framed paragraphs and DIVs break floating
 * deliberately (to avoid overlaps between floated items and frame), so it does
 * not create problems to apply them there.
 */
div.csc-wrap-text .csc-frame-frame1,
div.csc-wrap-text .csc-frame-frame2,
div.csc-wrap-text .with-frame {
    overflow: auto;
}
