.cms-article {
    padding-block:clamp(36px,6vw,88px);
    max-width:1100px;
}
.cms-banner {
    max-width:100%;
    margin-bottom:48px;
}
.cms-banner h1 {
    font-size:clamp(2.5rem,6vw,5rem);
    line-height:1.06;
    letter-spacing:-.035em;
    text-wrap:balance;
    max-width:20ch;
}
.cms-banner>p {
    max-width:65ch;
    font-size:1.2rem;
    line-height:1.6;
    margin-top:24px;
}
.cms-prose {
    max-width:72ch;
    line-height:1.75;
    overflow-wrap:anywhere;
}
.cms-prose>*+* {
    margin-top:1.25em;
}
.cms-prose h2,.cms-prose h3 {
    margin-top:2em;
    line-height:1.2;
    letter-spacing:-.02em;
}
.cms-prose ul,.cms-prose ol {
    padding-left:1.5em;
}
.cms-prose a,.cms-related a {
    text-decoration:underline;
    text-underline-offset:4px;
}
.cms-prose img,.cms-image img {
    width:100%;
    height:auto;
    display:block;
}
.cms-image {
    margin-block:28px;
}
.cms-image figcaption {
    font-size:.875rem;
    margin-top:12px;
}
.cms-prose pre {
    overflow:auto;
    max-width:100%;
    padding:16px;
    background:#e9eff7;
}
.cms-prose table {
    display:block;
    overflow:auto;
    border-collapse:collapse;
}
.cms-prose td,.cms-prose th {
    padding:12px;
    border:1px solid #bac8da;
}
.cms-related {
    padding-block:32px;
    border-top:1px solid #d8e2ef;
}
.cms-related ul {
    display:flex;
    gap:16px 32px;
    flex-wrap:wrap;
    list-style:none;
    padding:0;
    margin-top:20px;
}
.cms-tags {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    list-style:none;
    padding:0;
    margin-top:40px;
    font-size:.875rem;
}
.cms-breadcrumbs ol {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    list-style:none;
    padding:0;
    margin-bottom:32px;
}
.cms-menu {
    position:relative;
}
.cms-menu summary {
    cursor:pointer;
    padding:12px;
}
.cms-submenu {
    position:absolute;
    z-index:10;
    min-width:220px;
    background:#f6f9ff;
    padding:20px;
    border:1px solid #d8e2ef;
    border-radius:12px;
    display:grid;
    gap:18px;
}
.cms-submenu a {
    display:block;
}
.cms-prose blockquote {
    margin-inline:0;
    padding:20px;
    background:#eef3fa;
}
.cms-template-image {
    margin-block:24px;
}
.cms-byline {
    font-size:.9rem!important;
}
@media(max-width:900px) {
    .cms-submenu {
        position:static;
        min-width:0;
    }
    .cms-menu {
        width:100%;
    }
    .cms-banner {
        margin-bottom:32px;
    }
    .cms-related ul {
        display:grid;
    }
    .cms-prose {
        width:100%;
    }
}
