.content {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.page-image {
    flex: 0 0 400px;
    max-width: 100%;
    height: auto;
}

.page-text {
    flex: 1;
}
@media (max-width: 768px) {

    .content {
        flex-direction: column;
    }

    .page-image {
        width: 100%;
        max-width: 100%;
    }
}
<!--sample htmml -->
<div class="content">

    <img src="first_to_go.jpg"
         class="page-image"
         alt="Front of house before renovation">

    <div class="page-text">

        <p>
            Clearly the <b>hideous aluminum awning</b> and
            <b>repugnant front door</b> were doing little to enhance
            the facade of the house...
        </p>

        <p>
            With considerable sweat but much glee, we
            <b>removed these offending items</b> one week into
            the renovation.
        </p>

    </div>

</div>
<!-- refined css -->
.page-image {
    flex: 0 1 400px;
    max-width: 45%;
    height: auto;
}
This means:

On a large monitor, the image won't grow ridiculously large.
On a medium-sized laptop, the image can shrink a bit to give text more room.
On a phone, it still drops below the breakpoint and becomes full width.

For a renovation diary with lots of photos and commentary, I find 40–45% image / 55–60% text usually feels better than a rigid 400px column because some of your text blocks look fairly long. The page breathes more naturally across different desktop screen sizes.
