* {
    box-sizing: border-box;
}

html {
    font-size: 100%;
}

p:not(:last-child) {
    margin-bottom: 1rem;
}

.box {
    background-color: #ddd;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
    
    width: 70%;
    margin: 0 auto;
    padding: 0 1.25rem 1.25rem 1.25rem;
}

.box_heading {
    color: #fff;
    font-weight: normal;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
    
    font-size: 1.5rem;
    line-height: 1.5em;
    margin: 0 0 1rem 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right;
    padding-right: 1.375rem;
    margin: 0 0 1rem -1.8rem;
    width: calc(100% + 20px + 1.375rem + 1.8rem);
    background-image: url(../images/ribbon_right.png);
}

.box_heading span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    background-image: url(../images/ribbon_left.png);
    padding-left: 1.8rem;
    display: block;
    height: 3.0625rem; /* height of the PNGs (49px) */
}
