.cms-page-container {
    padding: 40px 0;
    min-height: 60vh;
    overflow-x: hidden;
}
.cms-page-header {
    margin-bottom: 30px;
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
}
.cms-page-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.5rem;
    color: #212529;
    font-weight: 700;
    line-height: 1.2;
    word-wrap: break-word;
}
.cms-page-content {
    line-height: 1.7;
    font-size: 1.1rem;
    color: #444;
}
/* Force responsiveness for inline-styled HTML */
.cms-page-content div {
    max-width: 100% !important;
}
.cms-page-content img {
    max-width: 100% !important;
    height: auto !important;
    display: block;
    margin: 10px auto;
}
/* Fix for the non-standard <r> tag and bold text */
.cms-page-content r, .cms-page-content b, .cms-page-content strong {
    word-wrap: break-word;
    display: inline-block;
    max-width: 100%;
}

@media (max-width: 1200px) {
    /* Override the 1020px fixed width from HTML */
    .cms-page-content div[style*="width:1020px"],
    .cms-page-content div[style*="width: 1020px"] {
        width: 100% !important;
        padding-left: 0 !important;
        float: none !important;
    }
    .cms-page-content div[style*="width:350px"],
    .cms-page-content div[style*="width: 350px"] {
        width: 100% !important;
        float: none !important;
        text-align: center;
    }
    .cms-page-content div[style*="display: inline-block"] {
        display: block !important;
        margin-bottom: 30px;
    }
}

@media (max-width: 768px) {
    .cms-page-title { font-size: 1.8rem; }
    .cms-page-content { font-size: 1rem; }
}